:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;--blue:#2468f2;--blue-hover:#1557db;--border:#e4e9f1;--muted:#71809a;--sidebar-width:212px;--topbar-height:62px;--drawer-width:408px;background:#f7f9fc;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;height:100%;min-height:100%;margin:0;overflow:hidden}body{background:#f7f9fc;min-height:100dvh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{outline:none}::selection{color:#fff;background:var(--blue)}.login-page{background:#f6f8fb;place-items:center;min-height:100dvh;padding:24px;display:grid}.login-panel{border:1px solid var(--border);background:#fff;border-radius:10px;width:min(100%,430px);padding:34px;box-shadow:0 18px 50px #1c335414}.login-logo,.brand{align-items:center;gap:12px;display:flex}.login-logo svg,.brand svg{color:var(--blue)}.login-logo strong,.brand strong{color:#14203a;letter-spacing:-.02em;font-size:18px}.login-copy{margin:42px 0 28px}.login-copy>span{color:var(--blue);font-size:13px;font-weight:650}.login-copy h1{color:#111a2c;letter-spacing:-.03em;margin:8px 0 9px;font-size:27px}.login-copy p{color:var(--muted);margin:0;font-size:14px}.login-panel form{gap:11px;display:grid}.login-panel form label{color:#39455c;font-size:13px;font-weight:600}.login-panel input{background:#fff;border:1px solid #d9e0eb;border-radius:7px;min-height:44px;padding:0 13px}.login-panel input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2468f21a}.login-panel .primary-button{margin-top:6px}.form-message{color:#169653;margin:15px 0 0;font-size:13px}.form-message.error{color:#e23b45}.admin-app{background:#fff;min-height:100dvh}.topbar{z-index:50;height:var(--topbar-height);border-bottom:1px solid var(--border);background:#fffffffa;justify-content:space-between;align-items:center;padding:0 25px;display:flex;position:fixed;inset:0 0 auto}.topbar-actions{align-items:center;gap:15px;height:100%;display:flex}.profile-button,.logout-button,.icon-button,.sidebar-close{color:#51617d;background:0 0;border:0}.profile-button{align-items:center;gap:9px;padding:0;display:flex}.profile-button strong{color:#36415a;font-size:14px}.avatar{color:#fff;background:#303d58;border-radius:50%;place-items:center;width:36px;height:36px;font-size:14px;display:grid}.logout-button{place-items:center;width:34px;height:34px;display:none}.icon-button.mobile-menu{display:none}.sidebar{inset:var(--topbar-height) auto 0 0;z-index:40;width:var(--sidebar-width);border-right:1px solid var(--border);background:#f7f9fc;position:fixed}.sidebar nav{gap:8px;padding:24px 9px;display:grid}.sidebar nav button{color:#4c5b76;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:17px;min-height:50px;padding:0 25px;font-size:15px;display:flex;position:relative}.sidebar nav button:before{content:"";background:0 0;border-radius:0 3px 3px 0;width:4px;position:absolute;inset:0 auto 0 -9px}.sidebar nav button:hover{color:#2468f2;background:#edf3ff}.sidebar nav button.active{color:#1763ea;background:#e7efff;font-weight:650}.sidebar nav button.active:before{background:#2468f2}.version{color:#7b879e;background:#eef2f8;border-radius:6px;padding:13px 15px;font-size:12px;position:absolute;bottom:32px;left:20px;right:20px}.sidebar-close,.sidebar-scrim{display:none}.workspace{height:100dvh;min-height:100dvh;margin-left:var(--sidebar-width);padding-top:var(--topbar-height);overflow-y:auto}.workspace-inner{padding:30px 20px 40px 28px;position:relative}.page-heading{margin-bottom:30px}.page-heading h1{color:#111827;letter-spacing:-.035em;margin:0 0 7px;font-size:28px;line-height:1.25}.page-heading p{color:#6d7b94;margin:0;font-size:14px;line-height:1.65}.toast{z-index:80;color:#147846;background:#edfff5;border:1px solid #bfe8d0;border-radius:7px;align-items:center;gap:8px;max-width:460px;padding:10px 12px;font-size:13px;display:flex;position:fixed;top:73px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #1f37581a}.toast.error{color:#c92e3b;background:#fff1f2;border-color:#ffd0d4}.toast button{color:currentColor;background:0 0;border:0;place-items:center;padding:0;display:grid}.activity-tabs{border-bottom:1px solid var(--border);gap:27px;margin-bottom:28px;display:flex}.activity-tabs button{color:#2e3b53;background:0 0;border:0;min-width:122px;padding:13px 3px 14px;font-size:15px;font-weight:600;position:relative}.activity-tabs button:after{content:"";background:0 0;border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:0;right:0}.activity-tabs button:hover,.activity-tabs button.active{color:var(--blue)}.activity-tabs button.active:after{background:var(--blue)}.compact-tabs{margin-bottom:24px}.toolbar,.simple-toolbar{grid-template-columns:288px 140px minmax(220px,1fr) 114px 114px;align-items:center;gap:13px;margin-bottom:20px;display:grid}.simple-toolbar{grid-template-columns:minmax(260px,420px) 160px 92px}.reservation-toolbar{grid-template-columns:minmax(210px,1.3fr) 168px 154px minmax(188px,1fr) 132px 82px;gap:10px}.search-control,.select-control{color:#62718b;background:#fff;border:1px solid #d9e1ed;border-radius:7px;align-items:center;min-height:44px;display:flex}.search-control:focus-within,.select-control:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2468f214}.date-range-picker{width:100%}.date-range-picker .n-input,.reservation-date-picker .n-input{--n-height:44px!important;--n-border-radius:7px!important}.reservation-date-picker{width:100%}.search-control{gap:9px;padding:0 13px}.search-control input{color:#344158;background:0 0;border:0;width:100%;min-width:0;padding:0;font-size:13px}.search-control input::placeholder{color:#9ca7ba}.select-control{padding:0;position:relative}.select-control>.n-select{width:100%}.select-control .n-base-selection{min-height:42px}.select-control .n-base-selection-label{padding-inline:13px}.select-control.compact{min-width:72px;min-height:36px}.select-control.compact .n-base-selection{min-height:34px}.primary-button,.secondary-button{border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:0 17px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.toolbar .primary-button,.toolbar .secondary-button{white-space:nowrap;padding-left:10px;padding-right:10px}.primary-button{border:1px solid var(--blue);color:#fff;background:var(--blue);box-shadow:0 3px 8px #2468f22b}.primary-button:hover{border-color:var(--blue-hover);background:var(--blue-hover)}.secondary-button{color:#40506a;background:#fff;border:1px solid #d6deea}.secondary-button:hover{background:#f8faff;border-color:#aebbd0}.table-shell{border:1px solid var(--border);background:#fff;border-radius:7px;overflow-x:auto}.table-shell.loading{opacity:.55}.session-table{border-collapse:collapse;table-layout:fixed;color:#43516a;width:100%;font-size:13px}.table-shell:not(.reservation-table-shell) .session-table{min-width:1140px}.table-shell:not(.reservation-table-shell) .session-table th,.table-shell:not(.reservation-table-shell) .session-table td{padding-left:10px;padding-right:10px}.session-table th{color:#2e3a51;text-align:left;white-space:nowrap;background:#f5f7fa;height:50px;padding:0 15px;font-weight:650}.session-table td{border-top:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap;height:50px;padding:0 15px}.session-table tbody tr:hover{background:#f9fbff}.session-table th:first-child{width:96px}.session-table th:nth-child(2){width:114px}.session-table th:nth-child(3){width:72px}.session-table th:nth-child(4){width:76px}.session-table th:nth-child(5),.session-table th:nth-child(6),.session-table th:nth-child(7){width:108px}.session-table th:nth-child(8){width:84px}.session-table th:nth-child(9){width:275px}.session-table th:nth-child(10){width:300px}.table-shell:not(.reservation-table-shell) .session-table th:last-child,.table-shell:not(.reservation-table-shell) .session-table td:last-child{z-index:2;background:#fff;position:sticky;right:0;box-shadow:-1px 0 #e4e9f1}.table-shell:not(.reservation-table-shell) .session-table th:last-child{z-index:3;background:#f5f7fa}.table-shell:not(.reservation-table-shell) .session-table tbody tr:hover td:last-child{background:#f9fbff}.full-count{color:#f02e3d}.status-pill,.record-status{border-radius:999px;justify-content:center;align-items:center;min-width:68px;min-height:28px;padding:3px 12px;font-size:12px;font-weight:500;display:inline-flex}.status-pill.pending{color:#617087;background:#eef1f5}.status-pill.open{color:#179151;background:#dff7e9}.status-pill.full{color:#e33341;background:#ffe4e6}.status-pill.ended{color:#966b1c;background:#fff2d6}.row-actions{align-items:center;gap:7px;display:flex}.row-actions button,.danger-link{font-size:13px}.row-actions>button{white-space:nowrap;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:30px;padding:0 9px;display:inline-flex}.row-action-users{color:#1f62d5;background:#edf4ff;border-color:#bfd3ff!important}.row-action-occupy{color:#a85a12;background:#fff7e8;border-color:#f0d09f!important}.row-action-edit{color:#27715a;background:#edf8f3;border-color:#bfe1d2!important}.row-action-delete{color:#c83240;background:#fff0f1;border-color:#f0bdc2!important}.row-action-users:hover{background:#e3eeff;border-color:#8fb0ff!important}.row-action-occupy:hover{background:#ffefd2;border-color:#dda95c!important}.row-action-edit:hover{background:#e2f4eb;border-color:#81bda5!important}.row-action-delete:hover{background:#ffe3e6;border-color:#df7f89!important}.row-actions>button:disabled{color:#a5aebd;background:#f3f5f8;border-color:#dfe4eb!important}.supplement-control{align-items:center;gap:10px;display:flex}.supplement-summary{color:#7a8799;flex-direction:column;gap:3px;min-width:198px;font-size:12px;line-height:1.25;display:flex}.supplement-summary strong{color:inherit;font-weight:600}.supplement-summary small{color:#8c97a8;font-size:11px}.supplement-summary.active{color:#a85a12}.openid-cell{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow:hidden}.empty-row{color:#98a3b5;text-align:center;height:180px!important}.table-footer{color:#5f6e87;justify-content:space-between;align-items:center;min-height:88px;font-size:13px;display:flex}.pagination{align-items:center;gap:9px;display:flex}.pagination button{color:#63718a;background:#fff;border:1px solid #dbe2ed;border-radius:6px;place-items:center;width:34px;height:34px;display:grid}.pagination button.active{border-color:var(--blue);color:#fff;background:var(--blue)}.pagination>span{margin-left:17px}.reservation-table th{width:auto!important}.reservation-type{border-radius:5px;align-items:center;min-height:27px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.reservation-type.arena{color:#2764bd;background:#eaf2ff}.reservation-type.supplement{color:#a85a12;background:#fff1dc}.reservation-type.manager{color:#7548b5;background:#f3ebff}.record-status.success{color:#168a4e;background:#e1f7ea}.record-status.verified{color:#1d64ca;background:#e6f0ff}.record-status.cancelled,.record-status.failed{color:#d83c47;background:#ffe8ea}.reservation-actions{white-space:nowrap}.verify-link,.danger-link{margin-right:12px}.verify-link{color:#2563eb;background:0 0;border:0;padding:2px 0}.record-status.expired_no_show,.record-status.applied{color:#93691a;background:#fff3d9}.danger-link{color:#e43a46;background:0 0;border:0;padding:2px 0}.settings-form{border-top:1px solid var(--border);max-width:900px;padding-top:26px}.manager-star-upload{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding:18px 20px;display:flex}.manager-star-upload>div{gap:5px;min-width:0;display:grid}.manager-star-upload strong{color:#1f2c42;font-size:15px}.manager-star-upload small,.upload-meta{color:#76849a;margin:0;font-size:13px;line-height:1.55}.upload-meta{color:#50617c}.settings-form.manager-settings{grid-template-columns:minmax(420px,900px) minmax(320px,1fr);align-items:start;gap:0 32px;max-width:none;display:grid}.manager-settings>:not(.manager-star-panel){grid-column:1}.manager-star-panel{border:1px solid var(--border);border-radius:8px;grid-area:1/2/span 4;position:sticky;top:24px;overflow:hidden}.manager-star-panel h3{margin:0;padding:16px;font-size:16px}.manager-star-scroll{background:#252525;max-height:calc(100vh - 190px);overflow:auto}.manager-star-preview{width:100%;height:auto;display:block}.manager-star-panel a{padding:12px 16px;display:block}@media (width<=1100px){.settings-form.manager-settings{grid-template-columns:minmax(0,1fr)}.manager-star-panel{grid-area:auto/1;position:static}}.launch-switch-row{border:1px solid var(--border);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px;padding:18px 20px;display:flex}.launch-switch-row>div{gap:5px;display:grid}.launch-switch-row strong{color:#1f2c42;font-size:15px}.launch-switch-row small{color:#76849a;font-size:13px;line-height:1.5}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.form-grid label,.textarea-field{gap:9px;display:grid}.form-grid label.wide{grid-column:1/-1}.form-grid label>span,.textarea-field>span{color:#2f3d56;font-size:13px;font-weight:600}.form-grid input,.textarea-field textarea{color:#344158;background:#fff;border:1px solid #d9e1ed;border-radius:7px;width:100%;padding:0 13px}.form-grid .n-date-picker{width:100%}.form-grid .n-date-picker .n-input{--n-height:44px!important;--n-border-radius:7px!important}.form-grid input{min-height:44px}.textarea-field textarea{resize:vertical;padding-top:12px;line-height:1.7}.form-grid input:focus,.textarea-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2468f214}.settings-actions{border-top:1px solid var(--border);justify-content:flex-end;margin-top:28px;padding-top:20px;display:flex}.editor-drawer{border-left:1px solid var(--border);background:#fff;grid-template-rows:65px minmax(0,1fr) 82px;width:100%;height:100%;display:grid;box-shadow:-8px 0 24px #25344d14}.editor-drawer>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 26px;display:flex}.editor-drawer h2{color:#19233a;letter-spacing:-.025em;margin:0;font-size:20px}.icon-button{place-items:center;padding:5px;display:grid}.drawer-body{align-content:start;gap:20px;padding:18px 26px 26px;display:grid;overflow-y:auto}.drawer-body label{color:#2f3b52;gap:8px;font-size:13px;font-weight:600;display:grid}.drawer-body label>span i,.drawer-body legend i{color:#ec3542;font-style:normal}.drawer-body input{color:#364158;background:#fff;border:1px solid #d8e0eb;border-radius:6px;width:100%;min-height:41px;padding:0 12px}.drawer-body input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2468f214}.drawer-body input:disabled{color:#69768c;background:#f6f8fb}.drawer-body .n-date-picker,.drawer-body .n-time-picker{width:100%}.drawer-body .n-date-picker .n-input,.drawer-body .n-time-picker .n-input{--n-height:41px!important;--n-border-radius:6px!important}.two-column{grid-template-columns:1fr 1fr;gap:18px;display:grid}.input-with-icon{position:relative}.input-with-icon input{padding-right:38px}.input-with-icon svg{color:#62718b;pointer-events:none;position:absolute;top:12px;right:12px}.drawer-body fieldset{border:0;gap:13px;margin:0;padding:0;display:grid}.drawer-body legend{color:#2f3b52;margin-bottom:13px;font-size:13px;font-weight:600}.radio-row{cursor:pointer;grid-template-columns:auto 1fr;align-items:flex-start;gap:10px!important;font-weight:400!important;display:flex!important}.radio-row input{width:17px;min-height:17px;accent-color:var(--blue);margin:1px 0 0}.radio-row>span{gap:4px;display:grid}.radio-row b{font-size:13px;font-weight:500}.radio-row small{color:#7b879a;font-size:12px;font-weight:400;line-height:1.5}.rule-hint{color:#77849a;background:#f3f5f8;border-radius:6px;margin:-2px 0 0;padding:10px 12px;font-size:12px;line-height:1.55}.current-status{color:#354258;align-items:center;gap:14px;font-size:13px;display:flex}.manual-hint{color:#69768c;background:#f3f5f8;border-radius:6px;margin:0;padding:10px 12px;font-size:12px;line-height:1.6}.manual-actions{border-top:1px solid var(--border);gap:10px;padding-top:18px;display:flex}.manual-actions button{color:#2468f2;background:#fff;border:1px solid #d6deea;border-radius:6px;flex:1;min-height:39px;font-size:13px}.manual-actions button:last-child{color:#df3945}.editor-drawer>footer{border-top:1px solid var(--border);background:#fff;grid-template-columns:1fr 1fr;gap:14px;padding:17px 26px;display:grid}.drawer-intro{color:#6d7b92;margin:0;font-size:13px;line-height:1.7}.dialog-backdrop{z-index:100;background:#1c273a59;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{background:#fff;border-radius:9px;width:min(100%,390px);padding:24px;box-shadow:0 20px 70px #18284633}.confirm-dialog h2{color:#182136;margin:0 0 10px;font-size:19px}.confirm-dialog p{color:#65738b;margin:0;font-size:14px;line-height:1.65}.confirm-dialog>div{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}@media (width<=1240px){.editor-drawer{box-shadow:-12px 0 40px #1f304c21}.toolbar{grid-template-columns:260px 130px minmax(190px,1fr) 108px 108px;gap:9px}.reservation-toolbar{grid-template-columns:minmax(220px,1fr) 168px 154px}}@media (width<=980px){:root{--sidebar-width:0px}.topbar{padding:0 15px}.icon-button.mobile-menu{display:grid}.brand{margin-left:10px;margin-right:auto}.sidebar{width:230px;transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{place-items:center;padding:7px;display:grid;position:absolute;top:10px;right:9px}.sidebar-scrim{inset:var(--topbar-height) 0 0 0;z-index:35;background:#1d293d40;border:0;display:block;position:fixed}.workspace-inner{padding:26px 20px 40px}.toolbar{grid-template-columns:1fr 150px}.date-range-picker{grid-column:1}.search-control{grid-area:2/1/auto/-1}.batch-button{grid-area:3/1}.add-button{grid-area:3/2}}@media (width<=640px){.brand strong{font-size:15px}.profile-button strong,.profile-button>svg{display:none}.logout-button{display:grid}.page-heading h1{font-size:24px}.activity-tabs{justify-content:space-between;gap:0;overflow-x:auto}.activity-tabs button{min-width:104px;padding-inline:8px}.toolbar,.simple-toolbar{grid-template-columns:1fr 1fr;display:grid}.date-range-picker,.toolbar .select-control,.search-control{grid-column:1/-1}.toolbar .select-control{grid-row:2}.search-control{grid-row:3}.batch-button{grid-area:4/1}.add-button{grid-area:4/2}.simple-toolbar .search-control{grid-row:auto}.simple-toolbar .select-control{grid-column:1}.simple-toolbar .primary-button{grid-column:2}.reservation-toolbar .search-control,.reservation-toolbar .reservation-date-picker{grid-column:1/-1}.reservation-toolbar .select-control{grid-column:auto}.reservation-toolbar .primary-button{grid-column:1/-1}.reservation-table-shell{background:0 0;border:0;overflow:visible}.reservation-table{display:block}.reservation-table thead{display:none}.reservation-table tbody{gap:12px;display:grid}.reservation-table tbody tr{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:16px;display:grid}.reservation-table tbody tr:hover{background:#fff}.reservation-table td{overflow-wrap:anywhere;white-space:normal;border:0;min-width:0;height:auto;padding:0;display:block}.reservation-table td:before{content:attr(data-label);color:#8793a6;margin-bottom:6px;font-size:11px;line-height:1.2;display:block}.reservation-table td:nth-child(3),.reservation-table td:nth-child(7){grid-column:1/-1}.reservation-table .openid-cell{max-width:none}.reservation-table .record-status,.reservation-table .reservation-type{min-height:25px}.reservation-table .empty-reservation-row{padding:0;display:block}.reservation-table .empty-row{place-items:center;min-height:150px;display:grid}.reservation-table .empty-row:before{content:none}.table-footer{flex-direction:column;align-items:flex-start;gap:14px;padding:20px 0}.pagination>span,.pagination .select-control{display:none}.form-grid{grid-template-columns:1fr}.form-grid label.wide{grid-column:auto}.editor-drawer{width:100%}.two-column{grid-template-columns:1fr}}
