:root{color:#0d1b34;font-family:Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif;background:#eaf4ff;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;background:radial-gradient(circle at 82% 14%,rgba(135,202,255,.5),transparent 25%),linear-gradient(180deg,#f7fbff,#e9f4ff 44%,#f8fbff);display:flex;justify-content:center}.phone-stage{width:min(100%,430px);min-height:100vh;background:linear-gradient(180deg,#f7fbff,#eef7ff 31%,#f8fbff);padding-bottom:32px;position:relative;overflow:hidden}.hero{min-height:188px;margin:0 14px;padding:28px 24px 18px;position:relative;overflow:hidden;border:1px solid rgba(218,228,241,.76);border-bottom:0;border-radius:22px 22px 0 0;background:linear-gradient(126deg,#fffffff5,#ecf7ffeb 58%,#429bf4b8)}.hero:before{content:"";position:absolute;right:-68px;bottom:-76px;width:236px;height:236px;border:28px solid rgba(255,255,255,.42);border-radius:50%}.hero-logo{position:absolute;right:24px;top:24px;z-index:2;width:48px;height:48px;border-radius:13px;box-shadow:0 12px 24px #142d4e2e}.hero-copy{position:relative;z-index:1;max-width:100%}.hero-copy p{color:#0e62d8;font-size:17px;font-weight:700;margin:0 0 12px}.hero h1{margin:0;color:#0b2557;font-size:28px;line-height:1.14;letter-spacing:0}.notice-pill{display:inline-flex;align-items:center;gap:7px;margin-top:16px;color:#f4811f;background:#ffffffe0;border:1px solid rgba(255,189,124,.44);border-radius:999px;padding:10px 14px;font-size:14px;font-weight:700}.booking-panel{margin:0 14px;background:#fffffff2;border:1px solid rgba(218,228,241,.76);border-top:0;border-radius:0 0 22px 22px;box-shadow:0 20px 45px #2065b01c;padding:22px 18px 20px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 12px}.panel-title:first-child{margin-top:0}.panel-title div{display:flex;align-items:center;gap:10px;color:#1273ed}.panel-title h2{color:#13213a;font-size:19px;line-height:1.2;margin:0}.panel-title span{color:#8b97a9;font-size:12px;white-space:nowrap}.field-row{min-height:58px;display:grid;grid-template-columns:108px minmax(0,1fr) 20px;align-items:center;border-top:1px solid #e8edf4;color:#17233b;position:relative}.field-label{min-width:0;display:inline-flex;align-items:center;gap:6px;color:#17233b}.field-label svg{flex:0 0 auto;color:#0e73ed}.field-label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700}.field-row input,.field-row select{width:100%;border:0;color:#1a2a44;background:transparent;outline:0;font-size:15px;min-width:0}.field-row input::placeholder{color:#a1adbd}.field-row select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.row-chevron{color:#a5b0bf}.package-grid{display:grid;gap:10px;margin:0 0 20px}.package-card{width:100%;border:1px solid #e5edf7;background:#fbfdff;border-radius:16px;text-align:left;padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;color:#16243a}.package-card.is-selected{border-color:#2789ff;background:#eef7ff;box-shadow:inset 0 0 0 1px #2789ff40}.package-title{font-size:15px;font-weight:800}.package-desc{grid-column:1 / -1;color:#78869b;font-size:13px;line-height:1.35}.package-card strong{grid-row:1;grid-column:2;color:#0e73ed;font-size:17px}.date-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 14px}.date-tab{min-height:58px;border:1px solid #e7edf4;border-radius:15px;background:#f8fbff;color:#607087;display:grid;place-items:center;gap:2px}.date-tab strong{color:#526179;font-size:16px}.date-tab span{font-size:13px}.date-tab.is-selected{background:#edf7ff;border-color:#86bdff;box-shadow:inset 0 0 0 1px #2789ff3d}.date-tab.is-selected strong,.date-tab.is-selected span{color:#0f73ef}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.slot-card{min-height:74px;border:1px solid #e5edf7;border-radius:16px;color:#12233d;background:#fff;position:relative;display:grid;place-items:center;gap:3px;padding:11px 7px}.slot-card strong{font-size:17px;font-weight:750}.slot-card span{color:#0a74ee;font-size:15px;font-weight:700}.slot-card.is-selected{border-color:#258cff;background:#f1f8ff;box-shadow:inset 0 0 0 1px #258cff33}.slot-card.is-tight span{color:#f26e24}.slot-card.is-full{color:#98a3b2;background:#f7f8fa}.slot-card.is-full span{color:#98a3b2}.slot-check{position:absolute;top:-6px;right:-5px;color:#fff;background:#1682fb;border-radius:50%;padding:2px}.remark-box{display:grid;gap:9px;margin-top:18px;color:#17233b}.remark-box span{font-size:15px;font-weight:800}.remark-box textarea{width:100%;resize:vertical;border:1px solid #e5edf7;border-radius:15px;outline:0;background:#fbfdff;color:#17233b;padding:12px;min-height:84px}.remark-box textarea:focus,.field-row input:focus,.field-row select:focus{color:#0f65db}.summary-strip{margin:18px 0 10px;border-radius:16px;background:#f1f8ff;border:1px solid #d9ebff;padding:13px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;color:#0e73ed}.summary-strip div{min-width:0}.summary-strip strong,.summary-strip span{display:block}.summary-strip strong{color:#16243a;font-size:15px}.summary-strip span{color:#718096;font-size:12px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-strip em{color:#0f73ef;font-style:normal;font-weight:800;white-space:nowrap}.primary-button{width:100%;min-height:54px;border:0;border-radius:16px;color:#fff;background:linear-gradient(135deg,#0ea5ff,#1768f2);font-size:19px;font-weight:850;box-shadow:0 14px 28px #1768f242;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary-button:disabled{cursor:not-allowed;opacity:.62}.agree-row{display:flex;align-items:center;justify-content:center;gap:5px;color:#7c899d;font-size:13px;margin-top:13px;flex-wrap:wrap}.agree-row input{width:16px;height:16px;accent-color:#1682fb}.agree-row span{min-width:0}.agree-row button{border:0;background:transparent;color:#0e73ed;font-weight:800;padding:0}.form-error{margin:0 0 10px;color:#e24a20;background:#fff2ee;border-radius:12px;padding:10px 12px;font-size:14px;font-weight:700}.muted-line{margin:0 0 12px;color:#718096;font-size:14px}.admin-entry{border:0;background:transparent;color:#64819f;display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:18px;font-size:14px}.modal-backdrop,.admin-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0a162a57;display:flex;justify-content:center;align-items:flex-end;padding:16px}.result-modal,.admin-panel{width:min(100%,430px);background:#fff;border-radius:24px;box-shadow:0 24px 70px #0c23404d}.result-modal{padding:30px 22px 22px;text-align:center;max-height:88vh;overflow:auto}.notice-modal{width:min(100%,430px);max-height:88vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 24px 70px #0c23404d;padding:20px 18px 18px}.notice-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.notice-head div{min-width:0;display:flex;align-items:center;gap:9px;color:#0e73ed}.notice-head h2{color:#13213a;font-size:21px;margin:0}.notice-head button{border:0;border-radius:999px;background:#eef6ff;color:#0e73ed;font-weight:800;padding:9px 13px}.notice-content{display:grid;gap:10px;margin-bottom:16px}.notice-content article{border:1px solid #e2eef9;border-radius:16px;background:#fbfdff;padding:12px}.notice-content strong{display:block;color:#13213a;font-size:15px;margin-bottom:6px}.notice-content p{margin:0;color:#5f6f86;font-size:13px;line-height:1.58}.success-icon{width:74px;height:74px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0ea5ff,#1768f2)}.result-modal h2{margin:0;font-size:22px}.result-modal p{margin:10px 0 22px;color:#66758b;line-height:1.6}.payment-result{border:1px solid #d9ebff;border-radius:18px;background:#f5fbff;padding:14px;margin:0 0 18px;display:grid;gap:11px}.payment-title{display:flex;align-items:center;justify-content:center;gap:7px;color:#0e73ed}.payment-title strong{font-size:16px}.payment-result img,.empty-qr{width:min(100%,220px);aspect-ratio:1;justify-self:center;border-radius:14px;border:1px solid #e2eef9;background:#fff}.payment-result img{object-fit:contain}.empty-qr{color:#91a0b4;display:grid;place-items:center;align-content:center;gap:8px;font-size:13px}.payment-contact{display:grid;gap:5px;color:#42526b;font-size:14px;text-align:left}.payment-note{margin:0;color:#f26e24;background:#fff7ed;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5;text-align:left}.payment-note strong{color:#db4c11}.admin-panel{max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.login-panel{padding:0 18px 20px}.admin-head{display:flex;justify-content:space-between;align-items:center;padding:20px 18px 12px}.admin-head span{color:#0e73ed;font-size:13px;font-weight:800}.admin-head h2{margin:4px 0 0;font-size:22px}.admin-head button,.admin-tools button,.booking-item button,.config-section-head button,.config-card-head button{border:0;border-radius:999px;background:#eef6ff;color:#0e73ed;font-weight:800;padding:9px 13px}.admin-head button:disabled,.admin-tools button:disabled,.booking-item button:disabled,.config-section-head button:disabled,.config-card-head button:disabled,.switch-row input:disabled{cursor:not-allowed;opacity:.58}.admin-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:0 18px 12px}.admin-tabs button{min-height:38px;border:0;border-radius:999px;background:#f2f7fc;color:#728096;font-weight:800}.admin-tabs button.is-active{color:#fff;background:linear-gradient(135deg,#0ea5ff,#1768f2)}.admin-message{margin:0 18px 10px;border-radius:12px;background:#edf8f2;color:#147a47;padding:9px 12px;font-size:13px;font-weight:750}.admin-message.is-error{background:#fff2ee;color:#e24a20}.admin-input,.config-row{display:grid;gap:7px;color:#17233b;font-size:13px;font-weight:800}.admin-input{margin-bottom:12px}.admin-input input,.config-row input{min-width:0;width:100%;min-height:42px;border:1px solid #e4edf7;border-radius:13px;outline:0;background:#fbfdff;color:#17233b;padding:0 12px;font-weight:650}.upload-box{min-height:48px;border:1px dashed #93c5fd;border-radius:15px;background:#f1f8ff;color:#0e73ed;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:850;position:relative;overflow:hidden}.upload-box input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.payment-preview{border:1px solid #e2eef9;border-radius:16px;background:#fff;padding:12px;display:grid;gap:10px;justify-items:center}.payment-preview img{width:min(100%,210px);aspect-ratio:1;object-fit:contain;border-radius:12px;border:1px solid #edf2f7;background:#fff}.payment-preview button{border:0;border-radius:999px;background:#fff2ee;color:#e24a20;font-weight:800;padding:8px 13px}.admin-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 18px 12px}.search-box{grid-column:1 / -1;min-width:0;min-height:40px;border-radius:999px;background:#f3f7fb;display:flex;align-items:center;gap:8px;color:#7c8aa0;padding:0 12px}.search-box input{min-width:0;width:100%;border:0;background:transparent;outline:0}.admin-tools button{display:inline-flex;align-items:center;justify-content:center;gap:4px}.admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 18px 14px}.stat-card{border:1px solid #e2eef9;background:#f8fbff;border-radius:15px;padding:12px;display:grid;grid-template-columns:auto 1fr;gap:2px 8px;color:#0e73ed}.stat-card span{color:#718096;font-size:12px}.stat-card strong{grid-column:1 / -1;color:#16243a;font-size:20px}.booking-list,.admin-scroll{overflow:auto;padding:0 18px 20px}.config-section{display:grid;gap:10px;margin-bottom:16px}.config-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;background:#fff;padding:3px 0 2px;z-index:1}.config-section-head h3{margin:0;color:#16243a;font-size:17px}.config-section-head button,.config-card-head button{display:inline-flex;align-items:center;justify-content:center;gap:5px}.config-card{border:1px solid #e2eef9;background:#fbfdff;border-radius:17px;padding:12px;display:grid;gap:10px}.config-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.config-card-head strong{min-width:0;color:#16243a;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-card-head .config-title{display:block}.config-title .field-label{max-width:100%}.switch-row,.mini-switch{display:inline-flex;align-items:center;gap:7px;color:#617189;font-size:13px;font-weight:750}.switch-row input,.mini-switch input{width:16px;height:16px;accent-color:#1682fb}.config-two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.save-button{width:100%;min-height:48px;border:0;border-radius:15px;color:#fff;background:linear-gradient(135deg,#0ea5ff,#1768f2);font-size:16px;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:2px}.booking-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px 12px;border:1px solid #e9eef5;border-radius:15px;margin-bottom:10px;cursor:pointer}.booking-item.is-paid{background:#f0fbf5;border-color:#bfe9cf}.booking-item.is-unpaid{background:#fff8f0;border-color:#ffd7a8}.booking-item-title{display:flex;align-items:center;gap:8px}.booking-item-title em{border-radius:999px;padding:4px 8px;color:#b85c00;background:#fff0d8;font-size:11px;font-style:normal;font-weight:850}.booking-item.is-paid .booking-item-title em{color:#147a47;background:#dff6e8}.booking-item strong,.booking-item span,.booking-item small{display:block}.booking-item strong{font-size:16px}.booking-item span{color:#0e73ed;font-size:13px;margin-top:4px;font-weight:750}.booking-item small{color:#76869b;font-size:12px;margin-top:4px;line-height:1.45}.booking-item p{margin:8px 0 0;color:#58677d;font-size:13px;line-height:1.45}.booking-item button{width:36px;height:36px;padding:0;display:grid;place-items:center;color:#e24a20;background:#fff2ee}.booking-detail-modal{width:min(100%,430px);max-height:88vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 24px 70px #0c23404d;padding:20px 18px 18px}.booking-detail-head{border-radius:17px;background:#f6fbff;border:1px solid #dcecfb;padding:13px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.booking-detail-head strong,.booking-detail-head span{display:block}.booking-detail-head strong{color:#13213a;font-size:18px}.booking-detail-head span{color:#69788d;font-size:13px;margin-top:4px}.booking-detail-head em{flex:none;border-radius:999px;padding:7px 10px;font-size:12px;font-style:normal;font-weight:900}.booking-detail-head em.is-paid{color:#147a47;background:#dff6e8}.booking-detail-head em.is-unpaid{color:#b85c00;background:#fff0d8}.booking-detail-grid{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px 12px;border:1px solid #e2eef9;border-radius:17px;padding:13px;margin-bottom:12px}.booking-detail-grid span{color:#7a899d;font-size:13px}.booking-detail-grid strong{min-width:0;color:#17233b;font-size:13px;overflow-wrap:anywhere}.booking-detail-remark{margin:0 0 12px;border-radius:14px;background:#f8fbff;color:#58677d;padding:11px 12px;font-size:13px;line-height:1.55}.booking-detail-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:10px}.booking-detail-actions button{min-height:44px;border:0;border-radius:14px;background:#eef6ff;color:#0e73ed;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:6px}.booking-detail-actions button.is-primary{color:#fff;background:linear-gradient(135deg,#0ea5ff,#1768f2)}.booking-detail-actions button:disabled{cursor:not-allowed;opacity:.55}.empty-state{min-height:210px;display:grid;place-items:center;align-content:center;gap:8px;color:#91a0b4;text-align:center}.empty-state strong{color:#17233b}@media(max-width:370px){.hero{margin-left:10px;margin-right:10px}.hero h1{font-size:26px}.booking-panel{margin-left:10px;margin-right:10px;padding-left:14px;padding-right:14px}.date-tabs{gap:6px}.slot-grid,.admin-tools{grid-template-columns:1fr}}
