:root{color:#172033;background:#f6f7fb;font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f6f7fb}a{color:inherit;text-decoration:none}.admin-shell{display:grid;min-height:100vh;grid-template-rows:auto auto minmax(0,1fr)}.site-top{background:#1c2d4f;color:#fff;padding:14px max(16px,env(safe-area-inset-left)) 14px max(16px,env(safe-area-inset-right))}.top-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.top-inner>div{min-width:0}.brand-mark{margin:0;color:inherit;font-size:16px;font-weight:800;overflow-wrap:anywhere}.top-subtitle,.section-label,.login-copy{color:#6c7788}.top-subtitle{margin:4px 0 0;color:#ffffffb8;font-size:12px}.top-nav{display:flex;gap:6px;overflow:auto;scrollbar-width:none;position:sticky;top:0;z-index:10;border-bottom:1px solid #e4e8f0;background:#fff;padding:8px 12px;scroll-snap-type:x proximity}.top-nav::-webkit-scrollbar{display:none}.top-nav a{display:inline-flex;min-height:40px;align-items:center;white-space:nowrap;border-radius:8px;padding:0 12px;color:#526071;font-size:14px;scroll-snap-align:start}.top-nav a.active{background:#1c2d4f;color:#fff}.top-nav a:hover:not(.active){background:#edf1f7}.mobile-nav-drawer{display:none}.main-pane{display:grid;align-content:start;gap:12px;width:100%;padding:16px}.topbar,.overview-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:28px;line-height:1.25}h2{margin-bottom:14px;font-size:18px}.warm-panel,.login-panel{min-width:0;border:1px solid #e4e8f0;border-radius:8px;background:#fff;padding:14px}.user-list,.status-list{display:grid;gap:10px;margin:0;padding:0}.status-list{padding-left:18px}.user-row{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #eee8dc;padding-bottom:10px;font-size:14px}.user-row:last-child{border-bottom:0;padding-bottom:0}table{min-width:640px;width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid #e4e8f0;padding:8px;text-align:left;vertical-align:top}th{background:#fbfcff;color:#6c7788;font-size:12px;font-weight:600}th:first-child,td:first-child{width:86px;white-space:nowrap}.table-scroll{overflow-x:auto}.permission-cards{display:none}.bookings-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.count-pill{border:1px solid #dce3ee;border-radius:999px;background:#fff;color:#526071;padding:6px 10px;font-size:13px;font-weight:700;white-space:nowrap}.filter-panel{display:grid;grid-template-columns:150px 170px minmax(220px,1fr) auto auto;gap:10px;align-items:end;border:1px solid #e4e8f0;border-radius:8px;background:#fff;padding:12px}.filter-panel label{display:grid;gap:5px;color:#526071;font-size:12px;font-weight:700}.filter-panel input,.filter-panel select,.announcement-form input,.announcement-form select,.announcement-form textarea{min-height:40px;min-width:0;border:1px solid #dce3ee;border-radius:8px;background:#fff;color:#172033;padding:0 10px;font:inherit}.announcement-form textarea{min-height:112px;padding:9px 10px;resize:vertical}.secondary-action{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border:1px solid #dce3ee;border-radius:8px;background:#fff;color:#526071;padding:0 14px;font-size:13px;font-weight:700}.danger-action{border-color:#f0c9c9;color:#9b2f2f}.booking-card-list,.announcement-card-list{display:none}.booking-card,.room-card,.announcement-card{display:grid;gap:10px;border:1px solid #e4e8f0;border-radius:8px;background:#fff;padding:14px}.booking-card-main,.booking-card-time,.booking-card-details,.room-card-main,.room-card-details,.announcement-card-main,.announcement-card-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.booking-card-main>div,.room-card-main>div,.announcement-card-main>div,.booking-card-time{min-width:0}.booking-card-main span,.room-card-main span,.announcement-card-main span,.booking-card-details,.room-card-details,.announcement-card-meta,.booking-note{color:#526071;font-size:13px}.booking-card-main>div,.room-card-main>div,.announcement-card-main>div{display:grid;gap:3px}.booking-card-time strong{font-size:16px}.booking-card-details,.room-card-details,.announcement-card-meta{flex-wrap:wrap;justify-content:flex-start}.booking-card-details span,.room-card-details span,.announcement-card-meta span{border-radius:999px;background:#f4f7fb;padding:5px 8px}.booking-note{margin:0;border-top:1px solid #edf1f7;padding-top:10px}.announcement-editor-panel h2{margin-bottom:12px}.announcement-form{display:grid;grid-template-columns:minmax(180px,2fr) minmax(120px,1fr) minmax(130px,1fr) minmax(110px,1fr) 90px auto;gap:10px;align-items:end}.announcement-form label{display:grid;gap:5px;color:#526071;font-size:12px;font-weight:700}.announcement-body-field{grid-column:1 / -2}.inline-editor{border-top:1px solid #edf1f7;padding-top:10px}.inline-editor summary{cursor:pointer;color:#1c2d4f;font-size:13px;font-weight:800}.inline-editor .announcement-form{margin-top:10px}.delete-inline-form{display:flex;justify-content:flex-end}.announcement-edit-row>td{border-top:0;padding-top:0}.desktop-announcement-table th:nth-child(2),.desktop-announcement-table td:nth-child(2){width:46%}.desktop-announcement-table th:nth-child(3),.desktop-announcement-table td:nth-child(3),.desktop-announcement-table th:nth-child(5),.desktop-announcement-table td:nth-child(5){white-space:nowrap}.status-editor{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:8px;align-items:end;min-width:190px}.status-editor label{display:grid;gap:4px;color:#526071;font-size:12px;font-weight:700}.status-editor select{min-height:36px;min-width:0;border:1px solid #dce3ee;border-radius:8px;background:#fff;color:#172033;padding:0 9px;font:inherit}.status-save{min-height:36px;border:0;border-radius:8px;background:#1c2d4f;color:#fff;padding:0 10px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.status-badge{flex:0 0 auto;border-radius:999px;background:#edf1f7;color:#526071;padding:5px 8px;font-size:12px;font-weight:800}.status-new{background:#e8f1ff;color:#245da8}.status-confirmed{background:#e9f8ef;color:#247343}.status-pending_deposit{background:#fff7df;color:#8a5a00}.status-cancelled{background:#f1f3f6;color:#7b8794}.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#526071;font-size:14px}.pager a{border:1px solid #dce3ee;border-radius:8px;background:#fff;padding:8px 10px;font-weight:700}.room-card-list{display:none}.staff-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.staff-module-card{display:grid;gap:8px;min-width:0;border:1px solid #e4e8f0;border-radius:8px;background:#fff;padding:14px}.staff-module-card span{color:#6c7788;font-size:12px;font-weight:800}.staff-module-card strong{color:#172033;font-size:18px}.staff-module-card p,.staff-placeholder p{margin-bottom:0;color:#526071;font-size:14px;line-height:1.55}.staff-module-card:hover{border-color:#b8c6dc;background:#fbfcff}.staff-placeholder{display:grid;gap:10px}.staff-placeholder-note{border-top:1px solid #edf1f7;padding-top:10px}.staff-toolbar,.staff-filter,.staff-form-actions,.staff-row-actions{display:flex;align-items:center;gap:8px}.staff-toolbar{justify-content:space-between}.staff-month-nav{display:flex;align-items:center;justify-content:center;gap:12px}.staff-month-nav strong{color:#172033;font-size:18px}.staff-filter{flex-wrap:wrap}.staff-filter label{display:grid;gap:5px;color:#526071;font-size:12px;font-weight:700}.staff-filter input{min-height:40px;border:1px solid #dce3ee;border-radius:8px;background:#fff;color:#172033;padding:0 10px;font:inherit}.staff-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.staff-form label{display:grid;gap:5px;color:#526071;font-size:12px;font-weight:700}.staff-form input,.staff-form select{min-height:40px;min-width:0;border:1px solid #dce3ee;border-radius:8px;background:#fff;color:#172033;padding:0 10px;font:inherit}.staff-checkbox-line{display:inline-flex;align-items:center;gap:8px;color:#172033;font-size:14px}.staff-checkbox-line input{min-height:auto}.staff-form-actions{align-self:end}.staff-card-list{display:none}.staff-card{display:grid;gap:10px;border:1px solid #e4e8f0;border-radius:8px;background:#fff;padding:14px}.staff-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.staff-card strong,.staff-card span{overflow-wrap:anywhere}.staff-card span,.staff-card p,.staff-muted{color:#526071;font-size:13px}.staff-card p,.staff-message,.staff-error{margin-bottom:0}.staff-message,.staff-error{border-radius:8px;padding:10px 12px;font-size:14px;font-weight:700}.staff-message{background:#e9f8ef;color:#247343}.staff-error{background:#fff0f0;color:#9b2f2f}.staff-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.staff-day-card{display:grid;gap:10px;min-width:0;border:1px solid #e4e8f0;border-radius:8px;background:#fff;padding:12px}.staff-day-head,.staff-attendance-row,.staff-availability-row,.staff-schedule-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.staff-day-head span{color:#6c7788;font-size:12px;font-weight:800}.staff-attendance-list,.staff-availability-list,.staff-schedule-list{display:grid;gap:6px}.staff-attendance-row,.staff-availability-row,.staff-schedule-row{grid-template-columns:minmax(0,1fr) auto auto;border-top:1px solid #edf1f7;padding-top:6px;color:#526071;font-size:13px}.staff-attendance-row span:first-child,.staff-availability-row span:first-child,.staff-schedule-row span:first-child{overflow-wrap:anywhere}.staff-availability-row,.staff-schedule-row{grid-template-columns:minmax(0,1fr) auto}.staff-schedule-editor,.staff-add-shift{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:6px;align-items:center;border-top:1px solid #edf1f7;padding-top:6px}.staff-schedule-editor span{color:#526071;font-size:13px;overflow-wrap:anywhere}.staff-schedule-editor input,.staff-add-shift select{min-height:36px;min-width:0;border:1px solid #dce3ee;border-radius:8px;background:#fff;color:#172033;padding:0 8px;font:inherit}.staff-add-shift{grid-template-columns:minmax(0,1fr) auto}.staff-ok{color:#247343}.staff-bad{color:#9b2f2f}.liff-shell{display:grid;gap:16px;min-height:100vh;background:#f7f3ea;padding:18px 14px 28px}.liff-header{display:grid;gap:4px;border-bottom:1px solid #e3d8c7;padding-bottom:14px}.liff-header p,.liff-header span{margin:0;color:#6c5f4f;font-size:13px;font-weight:800}.liff-header h1,.liff-game-section h2,.liff-success h2{margin:0;color:#1f2a24}.liff-message,.liff-error{border-radius:8px;margin:0;padding:10px 12px;font-size:14px}.liff-message{background:#fff8e8;color:#7a5b1b}.liff-error{background:#fff0f0;color:#9b2f2f}.liff-selection-bar{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid #e3d8c7;border-radius:8px;background:#fffdf8f5;padding:10px;box-shadow:0 8px 24px #4e3d2614}.liff-selection-bar span{color:#4c4237;font-weight:800}.liff-selection-bar button:disabled{opacity:.5}.liff-game-section{display:grid;gap:10px}.liff-game-section h2{font-size:18px}.liff-game-grid{display:grid;gap:10px}.liff-game-card{display:grid;gap:5px;width:100%;min-height:98px;border:1px solid #e3d8c7;border-radius:8px;background:#fffdf8;padding:14px;color:#1f2a24;text-align:left;font:inherit}.liff-game-card.selected{border-color:#2d6f4f;background:#eef8f2;box-shadow:inset 0 0 0 1px #2d6f4f}.liff-game-card.digital{background:#edf0f2;color:#67707a}.liff-game-card span,.liff-game-card small{color:#6c5f4f;font-size:13px}.liff-game-card em{justify-self:start;border-radius:999px;background:#dfe5ea;padding:4px 8px;color:#53606b;font-size:12px;font-style:normal;font-weight:800}.liff-success{display:grid;gap:12px;border:1px solid #d5e7d9;border-radius:8px;background:#f2fbf4;padding:18px}.liff-success p{margin:0;color:#526071}.muted-cell{margin-top:3px;color:#6c7788;font-size:12px}.primary-action,.logout-action{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border-radius:8px;padding:0 14px;font-size:13px;font-weight:700}.primary-action{background:#1c2d4f;color:#fff}.logout-action{flex:0 0 auto;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;color:#fff}.login-page,.empty-state{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{width:min(100%,420px)}.login-panel h1{margin-top:18px}@media(max-width:760px){.overview-grid,.topbar{grid-template-columns:1fr}.site-top{padding-top:12px;padding-bottom:12px}.brand-mark{font-size:15px}.top-subtitle{font-size:11px}.top-nav{display:none}.mobile-nav-drawer{display:block;position:sticky;top:0;z-index:10;border-bottom:1px solid #e4e8f0;background:#fff}.mobile-nav-drawer summary{display:flex;min-height:52px;cursor:pointer;list-style:none;align-items:center;justify-content:space-between;padding:0 16px;color:#172033;font-weight:800}.mobile-nav-drawer summary::-webkit-details-marker{display:none}.mobile-nav-drawer summary span:last-child{border:1px solid #dce3ee;border-radius:999px;color:#526071;padding:6px 10px;font-size:13px;font-weight:700}.mobile-nav-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border-top:1px solid #edf1f7;padding:10px 12px 12px}.mobile-nav-list a{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid #e4e8f0;border-radius:8px;background:#fff;color:#26344d;font-size:14px}.mobile-nav-list a.active{border-color:#1c2d4f;background:#1c2d4f;color:#fff}.main-pane{gap:14px;padding:14px 16px 28px}h1{font-size:26px}h2{font-size:18px}.user-row{align-items:flex-start;flex-direction:column;gap:4px}.permission-cards{display:grid;gap:10px}.permission-card{display:grid;gap:10px;border-top:1px solid #edf1f7;padding-top:12px}.permission-card:first-child{border-top:0;padding-top:0}.permission-card-head{display:grid;gap:3px}.permission-card-head span{color:#6c7788;font-size:13px;overflow-wrap:anywhere}.tab-chip-list{display:flex;flex-wrap:wrap;gap:6px}.tab-chip{border:1px solid #dce3ee;border-radius:999px;background:#f8fafc;color:#26344d;padding:6px 9px;font-size:13px;line-height:1.2}.table-scroll{display:none}.bookings-head{align-items:flex-start}.filter-panel{grid-template-columns:1fr 1fr;gap:9px;padding:10px}.filter-search,.filter-panel .primary-action,.filter-panel .secondary-action{grid-column:1 / -1}.filter-panel input,.filter-panel select,.filter-panel .primary-action,.filter-panel .secondary-action{min-height:44px}.announcement-form{grid-template-columns:1fr 1fr}.announcement-form label:first-of-type,.announcement-body-field,.announcement-form .primary-action{grid-column:1 / -1}.announcement-form input,.announcement-form select,.announcement-form textarea{min-height:44px}.booking-card-list,.announcement-card-list,.room-card-list{display:grid;gap:10px}.staff-module-grid{grid-template-columns:1fr}.staff-module-card{min-height:104px;padding:14px}.staff-toolbar,.staff-filter,.staff-form-actions,.staff-row-actions{align-items:stretch;flex-direction:column}.staff-form{grid-template-columns:1fr}.staff-form input,.staff-filter input,.staff-form select,.staff-schedule-editor input,.staff-add-shift select,.staff-filter .primary-action,.staff-filter .secondary-action,.staff-form .primary-action,.staff-form .secondary-action,.staff-row-actions .primary-action,.staff-row-actions .secondary-action,.staff-month-nav .primary-action,.staff-month-nav .secondary-action,.staff-schedule-editor .secondary-action,.staff-add-shift .secondary-action{min-height:44px;width:100%}.staff-month-nav,.staff-schedule-editor,.staff-add-shift{align-items:stretch;grid-template-columns:1fr}.staff-month-nav{flex-direction:column}.staff-desktop-table{display:none}.staff-card-list{display:grid;gap:10px}.staff-calendar{grid-template-columns:1fr}.status-editor{grid-template-columns:minmax(0,1fr) auto;min-width:0;border-top:1px solid #edf1f7;padding-top:10px}.status-editor select,.status-save{min-height:44px}.desktop-booking-table,.desktop-room-table,.desktop-announcement-table{display:none}.pager{justify-content:center}}
