:root{--bg:#f7f8fa;--surface:#fff;--surface-sunken:#eff1f5;--text:#0f172a;--text-muted:#64748b;--border:#e2e5eb;--accent:#4f46e5;--accent-strong:#3f37c9;--accent-soft:#e7e6fb;--gold:var(--accent);--gold-soft:var(--accent-soft);--ok:#047857;--ok-soft:#d1fae5;--maybe:#b45309;--maybe-soft:#fef3c7;--noshow:#854d0e;--noshow-soft:#fef08a;--no:#b91c1c;--no-soft:#fee2e2;--unanswered:#cbd5e1;--mgr-a:var(--accent);--mgr-a-soft:var(--accent-soft);--mgr-b:#0e7490;--mgr-b-soft:#e0f5f9;--mgr-c:#7c3aed;--mgr-c-soft:#ede6fe;--mgr-d:#c026d3;--mgr-d-soft:#f9e4fc;--mgr-e:#db2777;--mgr-e-soft:#fce4ef;--shadow:0 1px 2px #0f172a0a, 0 3px 8px -3px #0f172a0f, 0 14px 28px -16px #0f172a1a;--font-jp:"Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", "Noto Sans JP", "Segoe UI", sans-serif;--font-util:ui-monospace, "SF Mono", "Sarasa Mono J", Menlo, Consolas, monospace;--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#0b0f19;--surface:#131826;--surface-sunken:#1a2032;--text:#e5e9f0;--text-muted:#94a0b4;--border:#262e42;--accent:#8783f0;--accent-strong:#a5a1f5;--accent-soft:#211f3d;--gold:var(--accent);--gold-soft:var(--accent-soft);--ok:#34d399;--ok-soft:#123023;--maybe:#fbbf24;--maybe-soft:#332811;--noshow:#fde047;--noshow-soft:#302b0c;--no:#f87171;--no-soft:#331a1a;--unanswered:#37415a;--mgr-a:var(--accent);--mgr-a-soft:var(--accent-soft);--mgr-b:#4dd0e1;--mgr-b-soft:#12262b;--mgr-c:#c4b5fd;--mgr-c-soft:#241e38;--mgr-d:#e879f9;--mgr-d-soft:#341735;--mgr-e:#f472b6;--mgr-e-soft:#351826;--shadow:0 1px 2px #0006, 0 8px 24px -12px #0009}}:root[data-theme=dark]{--bg:#0b0f19;--surface:#131826;--surface-sunken:#1a2032;--text:#e5e9f0;--text-muted:#94a0b4;--border:#262e42;--accent:#8783f0;--accent-strong:#a5a1f5;--accent-soft:#211f3d;--gold:var(--accent);--gold-soft:var(--accent-soft);--ok:#34d399;--ok-soft:#123023;--maybe:#fbbf24;--maybe-soft:#332811;--noshow:#fde047;--noshow-soft:#302b0c;--no:#f87171;--no-soft:#331a1a;--unanswered:#37415a;--mgr-a:var(--accent);--mgr-a-soft:var(--accent-soft);--mgr-b:#4dd0e1;--mgr-b-soft:#12262b;--mgr-c:#c4b5fd;--mgr-c-soft:#241e38;--mgr-d:#e879f9;--mgr-d-soft:#341735;--mgr-e:#f472b6;--mgr-e-soft:#351826;--shadow:0 1px 2px #0006, 0 8px 24px -12px #0009}:root[data-theme=light],.gf-theme-light{--bg:#f7f8fa;--surface:#fff;--surface-sunken:#eff1f5;--text:#0f172a;--text-muted:#64748b;--border:#e2e5eb;--accent:#4f46e5;--accent-strong:#3f37c9;--accent-soft:#e7e6fb;--gold:var(--accent);--gold-soft:var(--accent-soft);--ok:#047857;--ok-soft:#d1fae5;--maybe:#b45309;--maybe-soft:#fef3c7;--noshow:#854d0e;--noshow-soft:#fef08a;--no:#b91c1c;--no-soft:#fee2e2;--unanswered:#cbd5e1;--mgr-a:var(--accent);--mgr-a-soft:var(--accent-soft);--mgr-b:#0e7490;--mgr-b-soft:#e0f5f9;--mgr-c:#7c3aed;--mgr-c-soft:#ede6fe;--mgr-d:#c026d3;--mgr-d-soft:#f9e4fc;--mgr-e:#db2777;--mgr-e-soft:#fce4ef;--shadow:0 1px 2px #0f172a0a, 0 3px 8px -3px #0f172a0f, 0 14px 28px -16px #0f172a1a}.gf-theme-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-jp);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit}.app{max-width:1040px;margin:0 auto;padding:0 20px 64px}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding:20px 0 16px;display:flex}.brand{align-items:baseline;gap:10px;display:flex}.brand h1{letter-spacing:.02em;margin:0;font-size:20px;font-weight:800}.brand .tag{font-family:var(--font-util);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);background:var(--gold-soft);border-radius:999px;padding:3px 9px;font-size:10.5px}.role-indicator{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.role-indicator strong{color:var(--text);font-weight:700}.admin-nav-primary{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.admin-nav-card{border:1.5px solid var(--accent);background:var(--accent-soft);border-radius:12px;flex-direction:column;gap:4px;padding:16px 18px;text-decoration:none;transition:transform .1s,box-shadow .15s;display:flex}.admin-nav-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.admin-nav-title{color:var(--accent);font-size:15px;font-weight:800}.admin-nav-desc{color:var(--text-muted);font-size:12px;line-height:1.5}.admin-nav-secondary{flex-wrap:wrap;gap:10px;display:flex}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;padding:9px 16px;font-family:inherit;font-size:13.5px;font-weight:600;transition:border-color .15s,background .15s,transform .1s}.btn:hover{border-color:var(--accent)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-ghost{background:0 0;border-color:#0000;padding:8px 10px}.btn-ghost:hover{background:var(--surface-sunken)}.btn-sm{padding:6px 11px;font-size:12.5px}.btn-danger{color:var(--no)}.btn:disabled{opacity:.6;cursor:not-allowed}.room-delete-btn{width:22px;height:22px;padding:0;font-size:15px;line-height:1}.staff-action-row{flex-wrap:nowrap;gap:8px;margin-top:12px;display:flex}.manual-btn,.expense-btn{justify-content:center;align-items:center;gap:6px;font-weight:700;text-decoration:none;display:inline-flex}.staff-action-row .manual-btn,.staff-action-row .expense-btn{text-overflow:ellipsis;flex:0 auto;min-width:0;margin-top:0;overflow:hidden}@media (max-width:480px){.staff-action-row .manual-btn,.staff-action-row .expense-btn{flex:1 1 0;gap:4px;padding:8px;font-size:12.5px}}.manual-btn{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-strong);margin-top:12px}.manual-btn:hover{border-color:var(--accent)}.expense-btn{background:var(--ok-soft);border-color:var(--ok-soft);color:var(--ok);margin-top:12px}.expense-btn:hover{border-color:var(--ok)}.auth-shell{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-card{width:100%;max-width:360px}.auth-card .brand{justify-content:center;margin-bottom:20px}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-error{color:var(--no);background:var(--no-soft);border-radius:7px;padding:8px 10px;font-size:12.5px}.auth-success{color:var(--ok);background:var(--ok-soft);border-radius:7px;padding:8px 10px;font-size:12.5px}.page-heading{margin:20px 0 4px;font-size:14px;font-weight:800}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px 22px}.skel-line{background:var(--surface-sunken);border-radius:6px;height:11px;animation:1.3s ease-in-out infinite skel-pulse}.skel-line+.skel-line{margin-top:10px}.skel-btn{background:var(--surface-sunken);border-radius:8px;height:34px;animation:1.3s ease-in-out infinite skel-pulse;display:inline-block}.skel-line.tall{height:15px}.skel-line.w40{width:40%}.skel-line.w60{width:60%}.skel-line.w75{width:75%}.skel-line.w90{width:90%}.skel-line:nth-child(2){animation-delay:.12s}.skel-line:nth-child(3){animation-delay:.24s}.skel-line:nth-child(4){animation-delay:.36s}@keyframes skel-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.skel-line,.skel-btn{opacity:.75;animation:none}}.panel h3{align-items:center;gap:8px;margin:0 0 4px;font-size:14px;font-weight:800;display:flex}.panel .sub{color:var(--text-muted);margin:0 0 16px;font-size:12.5px}.toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{font-size:11px;font-family:var(--font-util);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}select,input[type=date],input[type=text],input[type=email],input[type=password],textarea{color:var(--text);background:var(--surface-sunken);border:1px solid var(--border);border-radius:7px;min-width:160px;padding:8px 10px;font-family:inherit;font-size:13.5px}textarea{resize:vertical;width:100%}select:focus-visible,input[type=text]:focus-visible,input[type=email]:focus-visible,input[type=password]:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.add-form{border-top:1px dashed var(--border);margin-top:18px;padding-top:16px}.add-form-title{margin-bottom:10px;font-size:12.5px;font-weight:700}.add-form-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.add-form-row input[type=text]{flex:1;min-width:180px}.checkbox-field{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.checkbox-field input{accent-color:var(--accent);width:15px;height:15px}.property-edit{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px}.calendar-tools{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:flex-start;gap:0 24px;margin-top:14px;display:flex}.calendar-tools>.property-edit{border-top:none;flex:220px;margin-top:0}.calendar-tools>.property-edit[open]{flex-basis:100%}.property-edit summary{cursor:pointer;color:var(--text-muted);font-size:12.5px;font-weight:700}.property-edit summary:hover{color:var(--text)}.property-edit .field{margin-top:12px}.danger-zone{border-top:1px dashed var(--no);margin-top:16px;padding-top:12px}.danger-zone .add-form-title{color:var(--no)}.checklist-entry{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding-top:8px;display:flex}.checklist-entry-label{min-width:0;color:var(--text-muted);white-space:nowrap;flex-direction:column;gap:1px;font-size:11px;display:flex}.checklist-entry-count{color:var(--text);font-size:14px;font-weight:700}.checklist-entry .btn{white-space:nowrap;flex-shrink:0}.checklist-entry.off .checklist-entry-count{color:var(--text-muted);font-weight:400}.editor-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.toggle-status{align-items:center;gap:10px;display:flex}.toggle-pill{font-family:var(--font-util);letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:700}.toggle-pill.on{background:var(--ok-soft);color:var(--ok)}.toggle-pill.off{background:var(--surface-sunken);color:var(--text-muted)}.item-editor-list{flex-direction:column;gap:10px;display:flex}.item-editor-row{border:1px solid var(--border);background:var(--surface-sunken);border-radius:10px;align-items:center;gap:12px;padding:14px 16px;transition:transform .15s,box-shadow .15s,opacity .15s;display:flex}.item-editor-row input[type=text]{background:var(--surface);width:100%;padding:10px 12px;font-size:14.5px}.item-add-row{border-top:1px dashed var(--border);gap:10px;margin-top:16px;padding-top:16px;display:flex}.item-add-row input[type=text]{flex:1;padding:10px 12px;font-size:14.5px}.empty-hint{color:var(--text-muted);text-align:center;border:1.5px dashed var(--border);border-radius:10px;margin:0;padding:24px;font-size:13px}.item-drag{width:30px;height:30px;color:var(--text-muted);cursor:grab;touch-action:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.item-drag:hover{background:var(--surface);color:var(--accent)}.item-drag:active{cursor:grabbing}.item-drag svg{pointer-events:none}.item-editor-row.dragging{opacity:.94;box-shadow:var(--shadow);border-color:var(--accent);background:var(--surface);cursor:grabbing}.item-editor-row.drop-before{border-top:2px solid var(--accent)}.item-editor-row.drop-after{border-bottom:2px solid var(--accent)}.copy-row{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.copy-label{color:var(--text-muted);white-space:nowrap;font-size:12.5px}.copy-row select{min-width:190px}.roster-row{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 0;display:flex}.roster-row:last-child{border-bottom:none}.roster-row-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.roster-name{align-items:center;gap:8px;font-size:13.5px;font-weight:700;display:flex}.roster-note-field{flex-direction:column;gap:4px;display:flex}.roster-note-field label{font-size:10.5px;font-family:var(--font-util);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.roster-note-field input[type=text]{width:100%}.legend{color:var(--text-muted);flex-wrap:wrap;gap:14px;margin-bottom:16px;font-size:12.5px;display:flex}.legend .item{align-items:center;gap:6px;display:flex}.dot{border-radius:5px;width:14px;height:14px;display:inline-block}.dot.ok{background:var(--ok)}.dot.maybe{background:var(--maybe)}.dot.no{background:var(--no)}.dot.unanswered{border:1.5px dashed var(--unanswered);background:0 0}.dot.mgr-a{background:var(--mgr-a);border-radius:50%}.dot.mgr-b{background:var(--mgr-b);border-radius:50%}.dot.mgr-c{background:var(--mgr-c);border-radius:50%}.dot.mgr-d{background:var(--mgr-d);border-radius:50%}.dot.mgr-e{background:var(--mgr-e);border-radius:50%}.mgr-chip{font-family:var(--font-util);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:10.5px;display:inline-flex}.mgr-chip:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.mgr-chip.mgr-a{background:var(--mgr-a-soft);color:var(--mgr-a)}.mgr-chip.mgr-b{background:var(--mgr-b-soft);color:var(--mgr-b)}.mgr-chip.mgr-c{background:var(--mgr-c-soft);color:var(--mgr-c)}.mgr-chip.mgr-d{background:var(--mgr-d-soft);color:var(--mgr-d)}.mgr-chip.mgr-e{background:var(--mgr-e-soft);color:var(--mgr-e)}.mgr-chip.neutral{background:var(--surface-sunken);color:var(--text-muted)}.mgr-chip.neutral:before{display:none}.cal-head{font-family:var(--font-util);letter-spacing:.03em;color:var(--text-muted);margin-bottom:10px;font-size:13px}.cal-head strong{color:var(--text);font-weight:700}.month-nav{align-items:center;gap:4px;display:flex}.month-nav .cal-head{text-align:center;min-width:84px;margin-bottom:0}.month-nav-btn{justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:14px;line-height:1;display:inline-flex}.calendar,.job-calendar{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.job-cell{border:1px solid var(--border);background:var(--surface-sunken);min-width:0;min-height:76px;color:var(--text);border-radius:8px;flex-direction:column;gap:3px;padding:5px 5px 6px;text-decoration:none;transition:border-color .15s;display:flex}.job-cell:hover{border-color:var(--accent)}.job-cell.selected{outline:2px solid var(--accent);outline-offset:1px}.job-cell-day{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.job-cell.today{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.job-cell.today .job-cell-day{color:var(--surface);background:var(--accent);border-radius:999px;align-self:flex-start;align-items:baseline;gap:4px;padding:2px 8px;display:inline-flex}.job-cell-today-label{letter-spacing:.04em;font-size:10px;font-weight:700}@media (max-width:640px){.job-cell-today-label{display:none}.job-cell.today .job-cell-day{padding:2px 6px}}.job-card{border-radius:5px;flex-direction:column;gap:1px;padding:3px 5px;font-size:10.5px;line-height:1.25;display:flex;position:relative;overflow:hidden}.job-card.unassigned{background:var(--no-soft);color:var(--no)}.job-card.assigned{background:var(--accent-soft);color:var(--accent)}.job-card.assigned.done{background:var(--ok-soft);color:var(--ok)}.job-card.assigned.no-show{background:var(--noshow-soft);color:var(--noshow)}.job-card.assigned.booking-gone{background:var(--maybe-soft);color:var(--maybe)}.job-card-gone{font-size:9.5px;font-weight:700;font-family:var(--font-util)}.booking-gone-notice{color:var(--maybe);background:var(--maybe-soft);border-radius:var(--radius);margin:10px 0 0;padding:10px 12px;font-size:12.5px;line-height:1.7}.supply-move-form{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.supply-move-form input[type=text]{flex:120px;min-width:0}.qty-input{flex:none;width:74px}.num-cell{font-variant-numeric:tabular-nums;white-space:nowrap}.supply-card .room-row-top{align-items:baseline}.supply-stock{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.supply-log-row{border-top:1px solid var(--border);flex-wrap:wrap;gap:4px 10px;padding:8px 0;font-size:12.5px;display:flex}.supply-log-date{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none}.supply-log-body{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;display:flex}.supply-log-item{font-weight:700}.supply-log-delta{font-variant-numeric:tabular-nums;color:var(--ok);font-weight:700}.supply-log-delta.minus{color:var(--no)}.supply-log-note{color:var(--text-muted)}.expense-row{align-items:flex-start;gap:12px;display:flex}.expense-row-admin{border-top:1px solid var(--border);padding:10px 0}.expense-main{flex:auto;min-width:0}.receipt-thumb-link{flex:none;display:block}.receipt-thumb{object-fit:cover;background:var(--surface-sunken);border-radius:8px;width:64px;height:64px;display:block}.receipt-thumb-missing{display:inline-block}.receipt-preview{border-radius:var(--radius);max-width:100%;max-height:260px;margin-top:8px;display:block}.expense-review-form{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.expense-review-form input[type=text]{flex:160px;min-width:0}.payroll-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.payroll-total{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.payroll-table td:last-child{text-align:right}.payroll-sum-row td{border-top:2px solid var(--border);font-weight:700}.pay-rate-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 16px;margin-bottom:4px;display:grid}.allowance-block{border-top:1px dashed var(--border);margin-top:14px;padding-top:10px}.allowance-row{align-items:center;gap:12px;padding:6px 0;font-size:13px;display:flex}.allowance-row form{margin-left:auto}.cancelled-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.cancelled-main{flex-direction:column;gap:2px;min-width:0;display:flex}.cancelled-actions{flex-shrink:0;gap:8px;display:flex}.job-card-room{font-weight:700}.job-card-who{white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;overflow:hidden}.job-card-check{font-size:9.5px;font-family:var(--font-util)}.job-card-memo-dot{opacity:.8;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:3px;right:3px}.cal-dow{text-align:center;font-size:11px;font-family:var(--font-util);color:var(--text-muted);padding-bottom:4px}.cal-cell{aspect-ratio:1/.82;border:1.5px dashed var(--unanswered);background:var(--surface-sunken);cursor:pointer;color:var(--text);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;font-family:inherit;transition:transform .1s,border-color .15s;display:flex;position:relative}.cal-cell:hover{transform:translateY(-1px)}.cal-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cal-cell .d{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.cal-cell .s{font-size:10.5px;font-family:var(--font-util)}.cal-cell.ok{background:var(--ok-soft);border-style:solid;border-color:var(--ok);color:var(--ok)}.cal-cell.maybe{background:var(--maybe-soft);border-style:solid;border-color:var(--maybe);color:var(--maybe)}.cal-cell.no{background:var(--no-soft);border-style:solid;border-color:var(--no);color:var(--no)}.cal-cell.selected{outline:2px solid var(--accent);outline-offset:2px}.cal-cell.bulk-selected{border:2px solid var(--mgr-b);background:var(--mgr-b-soft)}.cal-cell .bulk-check{background:var(--mgr-b);color:#fff;text-align:center;border-radius:50%;width:14px;height:14px;font-size:9px;line-height:14px;position:absolute;top:4px;right:4px}.bulk-banner{border:1.5px dashed var(--mgr-b);background:var(--mgr-b-soft);border-radius:10px;flex-direction:column;gap:10px;margin-bottom:16px;padding:12px 14px;display:flex}.bulk-banner-steps{color:var(--mgr-b);flex-wrap:wrap;gap:16px;font-size:12px;font-weight:700;display:flex}.bulk-banner-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bulk-count{font-family:var(--font-util);background:var(--mgr-b);color:#fff;white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.calendar-bulk-active{outline:2px dashed var(--mgr-b);outline-offset:8px;border-radius:10px}.note-dot{background:var(--accent);border-radius:50%;display:inline-block}.cal-cell .note-dot{width:6px;height:6px;position:absolute;bottom:4px;left:4px}.legend .note-dot{width:8px;height:8px}.day-detail{border:1px solid var(--border);background:var(--surface-sunken);border-radius:8px;margin-top:16px;padding:14px 16px}.day-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.day-detail-title{font-size:13.5px;font-weight:700}.day-detail input[type=text]{width:100%;min-width:0}.day-detail input[type=text]:disabled{opacity:.6;cursor:not-allowed}.today-panel .sub{margin-bottom:12px}.today-item{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:9px 0;font-size:13px;display:flex}.today-item:last-child{border-bottom:none}.today-loc{font-weight:700}.today-loc .room{color:var(--text-muted);font-weight:500;font-family:var(--font-util);margin-left:4px;font-size:12px}.today-staff{color:var(--text-muted)}.today-remark{color:var(--text-muted);flex-basis:100%;font-size:11.5px}.submit-row{align-items:center;gap:12px;margin-top:20px;display:flex}.submit-note{color:var(--text-muted);font-size:12px}.scrollx{border:1px solid var(--border);border-radius:8px;overflow-x:auto}table.matrix{border-collapse:collapse;width:100%;font-size:12px}table.matrix th,table.matrix td{text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 6px}table.matrix thead th{font-family:var(--font-util);color:var(--text-muted);background:var(--surface-sunken);font-weight:600;position:sticky;top:0}table.matrix th.staff-col,table.matrix td.staff-col{background:var(--surface);text-align:left;z-index:1;border-right:1px solid var(--border);padding-left:10px;font-weight:700;position:sticky;left:0}table.matrix thead th.staff-col{background:var(--surface-sunken);z-index:2}.staff-count{font-size:10.5px;font-weight:400;font-family:var(--font-util);color:var(--text-muted);margin-top:2px;display:block}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 16px;display:grid}.detail-label{color:var(--text-muted);margin-bottom:2px;font-size:11px}.detail-value{color:var(--text);font-size:15px}.checklist-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.checklist-item{cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:8px 6px;font-size:13px;display:flex}.checklist-item:hover{background:var(--surface-sunken)}.checklist-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--ok);flex-shrink:0}.checklist-item.done{background:var(--ok-soft);color:var(--ok)}.checklist-item.done:hover{background:var(--ok-soft)}.checklist-item.read-only{cursor:default}.checklist-mark{font-family:var(--font-util);flex-shrink:0;width:1em}.staff-note-callout{background:var(--accent-soft);border-color:var(--accent)}.staff-note-label{font-family:var(--font-util);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-size:10.5px}.staff-note-body{color:var(--text);margin:0;font-size:13.5px}.admin-memo-panel textarea{margin-top:4px}.guest-memo-box{border-top:1px dashed var(--border);margin-top:18px;padding-top:16px}.memo-hint{color:var(--text-muted);margin:0 0 10px;font-size:12px}.memo-warning{color:var(--maybe);background:var(--maybe-soft);border-radius:var(--radius);margin:0 0 10px;padding:10px 12px;font-size:12.5px;line-height:1.7}.memo-warning strong{font-weight:800}.follow-badge{font-family:var(--font-util);background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10.5px}.visible-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.visible-toggle input{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0;margin:0}.home-job-row{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:11px 4px;text-decoration:none;display:flex}.home-job-row:last-child{border-bottom:none}.home-job-row:hover{background:var(--surface-sunken)}.home-job-left{flex-direction:column;gap:2px;min-width:0;display:flex}.home-job-room{font-size:13.5px;font-weight:700}.home-job-who{color:var(--text-muted);font-size:12px}.home-job-memo{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.home-job-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.job-link{color:var(--text);cursor:pointer;text-decoration:none;transition:border-color .15s;display:block}.job-link:hover{border-color:var(--accent)}.job-link-chevron{color:var(--text-muted);font-size:18px;line-height:1}.job-link-foot{min-height:20px;margin-top:8px}.back-link{color:var(--text-muted);margin-bottom:12px;font-size:12.5px;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.badge{width:20px;height:20px;font-family:var(--font-util);border-radius:6px;justify-content:center;align-items:center;font-size:10.5px;font-weight:700;display:inline-flex}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.maybe{background:var(--maybe-soft);color:var(--maybe)}.badge.no{background:var(--no-soft);color:var(--no)}.badge.unanswered{color:var(--unanswered)}.badge-wrap{display:inline-flex;position:relative}.assign-dot{border:1.5px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;right:-3px}.assign-dot.mgr-a{background:var(--mgr-a)}.assign-dot.mgr-b{background:var(--mgr-b)}.assign-dot.mgr-c{background:var(--mgr-c)}.assign-dot.mgr-d{background:var(--mgr-d)}.assign-dot.mgr-e{background:var(--mgr-e)}.badge-wrap .remark-dot{background:var(--accent);border:1.5px solid var(--surface);border-radius:50%;width:8px;height:8px;position:absolute;bottom:-3px;left:-3px}.staff-select{position:relative}.staff-select-btn{text-align:left;width:100%;color:var(--text);background:var(--surface-sunken);border:1px solid var(--border);cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13.5px;display:flex}.staff-select-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.staff-select-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.staff-select-dot.ok{background:var(--ok)}.staff-select-dot.maybe{background:var(--maybe)}.staff-select-dot.unanswered{background:var(--unanswered)}.staff-select-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);max-height:280px;margin:0;padding:5px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.staff-select-option{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-family:inherit;font-size:13.5px;display:flex}.staff-select-option:hover{background:var(--surface-sunken)}.staff-select-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.staff-select-option.ok{background:var(--ok-soft)}.staff-select-option.maybe{background:var(--maybe-soft)}.staff-select-option.ok:hover,.staff-select-option.maybe:hover{filter:brightness(.97)}.staff-select-option.selected{box-shadow:inset 0 0 0 1.5px var(--accent);font-weight:700}.property-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.property-card{border:1px solid var(--border);background:var(--surface-sunken);border-radius:8px;padding:13px 14px}.property-card .pname{margin-bottom:8px;font-size:13.5px;font-weight:700}.room-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font-family:var(--font-util);background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:3px 9px;font-size:11px}.assign-row{border-bottom:1px solid var(--border);grid-template-columns:1.4fr 1fr 1.6fr;align-items:center;gap:12px;padding:10px 0;display:grid}.assign-row:last-child{border-bottom:none}.assign-row .loc{font-size:13.5px;font-weight:700}.assign-row .loc .room{color:var(--text-muted);font-weight:500;font-family:var(--font-util);margin-left:6px;font-size:12px}.assign-row .status-tag{flex-direction:column;align-items:flex-start;gap:4px;font-size:11.5px;display:flex}.assign-row form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assign-row form select{flex:1;min-width:140px}@media (max-width:640px){.assign-row{grid-template-columns:1fr;gap:6px}.assign-row form select{min-width:0}.assign-row form{align-items:stretch}}.req-tag{font-family:var(--font-util);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10.5px}.req-tag.ok{background:var(--ok-soft);color:var(--ok)}.req-tag.maybe{background:var(--maybe-soft);color:var(--maybe)}.req-tag.no,.req-tag.none{background:var(--surface-sunken);color:var(--text-muted)}table.confirmed{border-collapse:collapse;width:100%;font-size:13px}table.confirmed th{text-align:left;font-family:var(--font-util);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:11px}table.confirmed td{border-bottom:1px solid var(--border);padding:9px 10px}table.confirmed tbody tr:hover{background:var(--surface-sunken)}.confirmed-room-link{color:var(--text);margin:-4px 0;padding:4px 0;text-decoration:none;display:block}.confirmed-room-link:hover{color:var(--accent);text-decoration:underline}.empty-row td{color:var(--text-muted);text-align:center;padding:20px;font-size:13px}.room-row{border-bottom:1px solid var(--border);padding:8px 0;font-size:13px}.room-row:last-child{border-bottom:none}.room-row-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.room-number{font-weight:700}.room-row-detail{color:var(--text-muted);font-family:var(--font-util);word-break:break-all;margin-top:6px;font-size:12px}.toast{background:var(--accent-strong);color:#fff;box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:50;border-radius:999px;padding:12px 20px;font-size:13.5px;font-weight:600;transition:opacity .2s,transform .2s;position:fixed;bottom:26px;left:50%;transform:translate(-50%)translateY(10px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){.role-card,.cal-cell,.toast,.btn{transition:none}}@media (max-width:640px){.app{padding-left:14px;padding-right:14px}.panel{padding-left:16px;padding-right:16px}.brand h1{font-size:17px}}.admin-shell{grid-template-columns:236px 1fr;min-height:100dvh;display:grid}:root[data-admin-sidebar=collapsed] .admin-shell{grid-template-columns:64px 1fr}.admin-side{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100dvh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.admin-main{background:var(--bg);min-width:0;padding:24px 28px 64px}.admin-brand{align-items:center;gap:6px;padding:4px 4px 12px;display:flex}.admin-brand-link{color:var(--text);align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.admin-mark{background:var(--accent);color:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:15px;font-weight:800;display:grid}.admin-brand-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.admin-brand-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:800;overflow:hidden}.admin-brand-sub{color:var(--text-muted);letter-spacing:.04em;font-size:10.5px}.admin-collapse-btn{appearance:none;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;margin-left:auto;padding:5px;display:grid}.admin-collapse-btn:hover{background:var(--surface-sunken);color:var(--text)}.admin-collapse-btn svg{transition:transform .15s}:root[data-admin-sidebar=collapsed] .admin-collapse-btn svg{transform:rotate(180deg)}.admin-nav{flex-direction:column;gap:2px;display:flex}.admin-item{color:var(--text-muted);border-radius:9px;align-items:center;gap:11px;padding:9px 11px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex;position:relative}.admin-item:hover{background:var(--surface-sunken);color:var(--text)}.admin-item-ic{flex:none;place-items:center;display:grid;position:relative}.admin-item-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin-item.on{background:var(--accent-soft);color:var(--accent-strong);font-weight:800}.admin-item.on:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:0}.admin-badge{background:var(--no);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;flex:none;place-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:11px;font-weight:800;display:grid}.admin-badge-dot{background:var(--no);border:1.5px solid var(--surface);border-radius:999px;width:7px;height:7px;display:none;position:absolute;top:-2px;right:-3px}.admin-side-group-label{color:var(--text-muted);white-space:nowrap;align-items:center;gap:8px;padding:14px 11px 4px;font-size:11px;font-weight:700;display:flex}.admin-side-group-label:after{content:"";background:var(--border);flex:1;height:1px}.admin-item-ext{opacity:.7;flex:none;place-items:center;margin-left:auto;display:grid}.admin-side-foot{margin-top:auto;padding-top:8px}.admin-acct{appearance:none;font:inherit;color:inherit;text-align:left;border:0;border-top:1px solid var(--border);cursor:pointer;background:0 0;border-radius:0 0 10px 10px;align-items:center;gap:10px;width:100%;padding:12px 6px 8px;display:flex}.admin-acct:hover,.admin-acct.on{background:var(--surface-sunken)}.admin-acct:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.admin-acct-chevron{color:var(--text-muted);place-items:center;margin-left:auto;display:grid}.admin-avatar{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-strong);border-radius:999px;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.admin-acct-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.admin-acct-name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:700;overflow:hidden}.admin-acct-role{color:var(--text-muted);font-size:10.5px}.admin-menu-scrim{z-index:60;position:fixed;inset:0}.admin-menu{z-index:61;background:var(--surface);border:1px solid var(--border);width:232px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:2px;padding:6px;display:flex;position:fixed;bottom:12px;left:244px}:root[data-admin-sidebar=collapsed] .admin-menu{left:72px}.admin-menu-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.admin-menu .admin-acct-text{display:flex}.admin-menu-item{appearance:none;font:inherit;width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:10px;font-size:13.5px;font-weight:600;text-decoration:none;display:flex}.admin-menu-item svg{color:var(--text-muted);flex:none}.admin-menu-item:hover{background:var(--surface-sunken)}.admin-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.admin-menu-item.danger:hover,.admin-menu-item.danger:hover svg{color:var(--no)}.admin-menu-sep{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}:root[data-admin-sidebar=collapsed] .admin-side{align-items:stretch;padding:16px 8px}:root[data-admin-sidebar=collapsed] .admin-brand-text,:root[data-admin-sidebar=collapsed] .admin-side .admin-acct-text,:root[data-admin-sidebar=collapsed] .admin-acct-chevron,:root[data-admin-sidebar=collapsed] .admin-item-label,:root[data-admin-sidebar=collapsed] .admin-side-group-label,:root[data-admin-sidebar=collapsed] .admin-item-ext,:root[data-admin-sidebar=collapsed] .admin-badge{display:none}:root[data-admin-sidebar=collapsed] .admin-badge-dot{display:block}:root[data-admin-sidebar=collapsed] .admin-brand{flex-direction:column;gap:8px;padding:0 0 12px}:root[data-admin-sidebar=collapsed] .admin-collapse-btn{margin-left:0}:root[data-admin-sidebar=collapsed] .admin-item{justify-content:center;padding:9px 0}:root[data-admin-sidebar=collapsed] .admin-acct{justify-content:center;padding:12px 0 8px}.admin-topbar,.admin-scrim{display:none}.admin-menu-btn{appearance:none;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:6px;display:grid}.admin-topbar-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:800;overflow:hidden}@media (max-width:768px){.admin-shell,:root[data-admin-sidebar=collapsed] .admin-shell{grid-template-columns:1fr}.admin-topbar{z-index:30;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 12px;display:flex;position:sticky;top:0}.admin-side{z-index:50;width:252px;box-shadow:var(--shadow);transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%)}.admin-side.open{transform:none}:root[data-admin-sidebar=collapsed] .admin-side{padding:16px 12px}:root[data-admin-sidebar=collapsed] .admin-brand-text,:root[data-admin-sidebar=collapsed] .admin-side .admin-acct-text,:root[data-admin-sidebar=collapsed] .admin-acct-chevron,:root[data-admin-sidebar=collapsed] .admin-item-label,:root[data-admin-sidebar=collapsed] .admin-badge{display:initial}:root[data-admin-sidebar=collapsed] .admin-badge{display:grid}:root[data-admin-sidebar=collapsed] .admin-side-group-label{display:flex}:root[data-admin-sidebar=collapsed] .admin-item-ext{display:grid}:root[data-admin-sidebar=collapsed] .admin-badge-dot{display:none}:root[data-admin-sidebar=collapsed] .admin-brand{flex-direction:row;padding:4px 4px 12px}:root[data-admin-sidebar=collapsed] .admin-item{justify-content:flex-start;padding:9px 11px}:root[data-admin-sidebar=collapsed] .admin-acct{justify-content:flex-start;padding:12px 6px 8px}.admin-menu,:root[data-admin-sidebar=collapsed] .admin-menu{bottom:70px;left:10px}.admin-collapse-btn{display:none}.admin-scrim{z-index:40;background:#0f172a73;display:block;position:fixed;inset:0}.admin-main{padding:16px 14px 64px}}.dash-hello{margin:4px 0 2px;font-size:22px;font-weight:800}.dash-sub{color:var(--text-muted);margin:0 0 20px;font-size:13px}.dash-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:15px;flex-direction:column;gap:6px;padding:18px;transition:transform .12s,box-shadow .15s;display:flex}.stat-tile:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.stat-ic{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:10px;place-items:center;margin-bottom:4px;display:grid}.stat-ic.no{background:var(--no-soft);color:var(--no)}.stat-ic.ok{background:var(--ok-soft);color:var(--ok)}.stat-num{font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:1.2}.stat-num.ok{color:var(--ok);font-size:19px}.stat-label{color:var(--text-muted);font-size:12px}@media (prefers-reduced-motion:reduce){.stat-tile,.admin-side,.admin-collapse-btn svg{transition:none}.stat-tile:hover{transform:none}}.area-switcher{align-items:center;gap:8px;min-width:0;display:flex}.area-switcher-label{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.area-switcher-select{border-radius:8px;flex:auto;min-width:0;padding:5px 8px;font-size:13px}.area-badge{background:var(--surface-sunken);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.admin-side-area{border-top:1px solid var(--border);padding:14px 12px 10px;overflow:hidden}.admin-side-area .area-switcher-select{width:100%}html[data-admin-sidebar=collapsed] .admin-side-area{display:none}@media (max-width:768px){html[data-admin-sidebar=collapsed] .admin-side-area{display:block}}.section-heading{align-items:flex-start;gap:12px;margin:28px 4px 10px;display:flex}.section-heading h2{margin:0 0 2px;font-size:16px;font-weight:700}.section-heading .sub{margin:0}.section-kicker{width:26px;height:26px;font-size:13px;font-weight:700;font-family:var(--font-util);background:var(--accent-soft);color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.cta-details>summary{cursor:pointer;list-style:none;display:inline-flex}.cta-details>summary::-webkit-details-marker{display:none}.cta-details[open]>summary{margin-bottom:12px}.cta-details-body{border-top:1px dashed var(--border);padding-top:12px}.property-links{flex-wrap:wrap;gap:4px 16px;margin:0 0 8px;display:flex}.panel-head-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.panel-head-row h3{margin:0}.toolbar-roomy{align-items:flex-end;gap:14px 32px}.toolbar-roomy .month-nav{gap:12px}.topbar-nav{flex:100%}.topbar-nav-end{margin-left:auto}.card-stretch{position:relative}.card-stretch-link{color:inherit;text-decoration:none}.card-stretch-link:after{content:"";border-radius:inherit;position:absolute;inset:0}.card-stretch-link:focus-visible{outline:none}.card-stretch-link:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.card-stretch .staff-action-row{z-index:1;position:relative}.room-section-title{font-size:11px;font-family:var(--font-util);letter-spacing:.08em;color:var(--text-muted);margin:18px 0 8px}.room-block{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px 14px;font-size:13px}.room-block+.room-block{margin-top:12px}.room-badge{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-block}.room-key-form{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin-top:12px;display:grid}.room-key-form label{min-width:0;color:var(--text-muted);flex-direction:column;gap:4px;font-size:11px;display:flex}.room-key-form input[type=text]{width:100%;min-width:0;font-family:var(--font-util);background:var(--surface-sunken);font-size:14px}.room-key-form .btn{grid-column:1/-1;justify-self:end}.archive-zone{border-top:1px dashed var(--border);margin-top:18px;padding-top:14px}.room-source{border-top:1px dashed var(--border);gap:8px;margin-top:12px;padding-top:12px;display:grid}.room-source-head{align-items:center;gap:8px;display:flex}.room-source-label{color:var(--text-muted);font-size:12px}.room-source-note{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.6}.room-source-note.warn{color:var(--maybe);font-weight:700}.admin-side-foot>.admin-item{margin-bottom:8px}.job-toggles{flex-wrap:wrap;gap:8px 20px;display:flex}.job-card.no-cleaning{background:var(--surface-sunken);color:var(--text-muted);border:1px dashed var(--border);padding:2px 4px}.job-card.no-cleaning .job-card-who{font-weight:700}.job-card.moved-out{background:var(--surface-sunken);color:var(--text-muted);border:1px dashed var(--border);padding:2px 4px}.job-card.moved-out:hover{color:var(--text)}.job-card-moved{font-size:9.5px;font-weight:700;font-family:var(--font-util);opacity:.85;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.job-card.early-arrival{box-shadow:inset 0 0 0 1.5px var(--no)}.move-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.move-form .field{margin:0}.move-form input[type=date]{min-width:170px}.move-origin{border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-strong);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.6;display:flex}.move-origin strong{font-weight:700}.move-origin form{margin-left:auto}.move-done{color:var(--ok);margin:0 0 12px;font-size:13px}.early-row{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.early-label{color:var(--text-muted);font-size:13px}.early-row input[type=time]{width:auto;min-width:120px}.job-card-early{font-size:9.5px;font-weight:700;font-family:var(--font-util);white-space:nowrap}.early-deadline{color:var(--maybe);background:var(--maybe-soft);border-radius:var(--radius);margin:8px 0 0;padding:8px 10px;font-size:13px;font-weight:700}.cal-cleaning{background:var(--accent-soft);color:var(--accent-strong);border:1px solid var(--accent);white-space:nowrap;border-radius:4px;padding:2px 4px;font-size:10px;font-weight:700;line-height:1}.calendar.has-cleanings .cal-cell .note-dot{top:4px;bottom:auto}@media (max-width:480px){.calendar.has-cleanings .cal-cell{aspect-ratio:auto;gap:2px;min-height:58px}.calendar.has-cleanings .cal-cleaning{padding:2px 3px;font-size:9.5px}}.day-cleanings{margin:4px 0 12px}.day-cleanings-label{color:var(--text-muted);margin-bottom:4px;font-size:11px}.day-cleaning-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:6px 0;font-size:13px;font-weight:700;display:flex}.day-cleaning-in{color:var(--maybe);font-size:11.5px;font-weight:600}.panel.collapsible:not(.open){padding-bottom:20px}.panel .collapsible-heading{margin:0;display:block}.collapsible-toggle{appearance:none;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:0;display:flex}.collapsible-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.collapsible-title{font-size:14px;font-weight:800}.collapsible-state{color:var(--text-muted);margin-left:auto;font-size:12px;font-weight:600}.collapsible-switch{background:var(--unanswered);border-radius:999px;flex:none;width:40px;height:22px;transition:background .15s;position:relative}.collapsible-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.panel.collapsible.open .collapsible-switch{background:var(--accent)}.panel.collapsible.open .collapsible-knob{transform:translate(18px)}.panel.collapsible.open .collapsible-state{color:var(--accent-strong)}.collapsible-body{margin-top:14px}@media (prefers-reduced-motion:reduce){.collapsible-switch,.collapsible-knob{transition:none}}.month-picker{flex-wrap:wrap;gap:8px}.month-picker select{width:auto;min-width:124px;padding:6px 10px;font-weight:700}
