:root{--color-nav:#102b50;--color-primary:#1967c2;--color-primary-dark:#1557a4;--color-teal:#087f83;--color-gold:#b58a46;--color-bg:#f3f6fa;--color-surface:#ffffff;--color-text:#172b46;--color-muted:#596a7e;--color-border:#d7e0ea;--color-danger:#a83939;--color-warning-text:#805d22;--color-warning-bg:#faf0dc;--brand:var(--color-teal);--brand-tint:#e1f2ef;--navy:var(--color-nav);--navy-dark:#0b2140;--accent:var(--color-primary);--accent-dark:var(--color-primary-dark);--bg:var(--color-bg);--panel-bg:var(--color-surface);--border:var(--color-border);--surface:#f6f9fc;--surface-alt:#eef3f8;--text:var(--color-text);--text-muted:var(--color-muted);--danger:var(--color-danger);--ok:#1e7a45;--warn:var(--color-gold);--occupied:#e8f1fa;--occupied-border:#9dbfe6;--checkedin:#dcf5e7;--checkedin-border:#6fcf97;--focus:var(--color-gold);--sidebar-w:232px}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.55}html{overflow-x:hidden}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:var(--accent);text-decoration:none}button{font-family:inherit}.app-shell{min-height:100vh;display:block}.app-content{min-width:0}.app-sidebar{display:none;background:linear-gradient(180deg,#102b50,#102b50 45%,#143d74 80%,#0f5f78);color:#fff;width:var(--sidebar-w);position:fixed;top:0;bottom:0;left:0;flex-direction:column;padding:18px 12px 12px;overflow-y:auto;z-index:20}.app-sidebar .brand,.drawer .brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:18px;letter-spacing:-.3px;padding:4px 8px 16px;line-height:1.15}.app-sidebar .brand small,.drawer .brand small{display:block;font-size:10px;letter-spacing:1px;font-weight:400;color:#bacbdd}.brand-logo{width:32px;height:32px;border-radius:7px;display:block;flex:none}.side-nav{display:flex;flex-direction:column;gap:2px}.side-group{margin-bottom:10px}.side-group-title{font-size:10px;letter-spacing:2px;color:#a6b9d0;padding:10px 12px 4px}.side-link{display:flex;align-items:center;min-height:40px;padding:8px 14px;border-radius:6px;color:#d6e1ef;font-size:14px;text-decoration:none}.side-link.active,.side-link:hover{background:#23496e;color:#fff}.side-link.active{font-weight:600;box-shadow:inset 3px 0 var(--color-gold)}.side-foot{margin-top:auto;border-top:1px solid #355070;padding:12px 8px 0;font-size:12px;color:#b3c4d8;display:flex;flex-direction:column;gap:8px}.side-user{overflow-wrap:anywhere}.app-topbar{background:var(--color-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;padding:0 12px;min-height:52px;position:-webkit-sticky;position:sticky;top:0;z-index:15}.app-topbar .spacer{flex:1 1}.topbar-brand{display:flex}.topbar-user{font-size:12px;color:var(--text-muted);white-space:nowrap}.menu-btn{background:transparent;border:1px solid var(--border);border-radius:8px;width:44px;height:40px;font-size:20px;color:var(--color-nav);cursor:pointer}.menu-btn:hover{background:var(--surface)}.app-topbar .facility-name,.app-topbar .facility-switcher{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:13px;font-family:inherit;max-width:240px;min-height:36px}.app-topbar .facility-switcher{cursor:pointer}.app-topbar .facility-switcher option{color:var(--text);background:#fff}.logout-btn{background:transparent;color:inherit;border:1px solid;border-radius:6px;padding:6px 10px;cursor:pointer;font-size:12px;min-height:32px;white-space:nowrap}@media (max-width:599px){.topbar-user{display:none}}.app-topbar .logout-btn{color:var(--text-muted);border-color:var(--border)}.app-topbar .logout-btn:hover{background:var(--surface)}.app-sidebar .logout-btn:hover,.drawer .logout-btn:hover{background:rgba(255,255,255,.12)}.drawer-backdrop{position:fixed;inset:0;background:rgba(16,43,80,.55);z-index:40}.drawer{position:absolute;top:0;bottom:0;left:0;width:min(300px,86vw);background:linear-gradient(180deg,#102b50,#102b50 45%,#143d74 80%,#0f5f78);color:#fff;padding:12px;overflow-y:auto;display:flex;flex-direction:column;box-shadow:4px 0 24px rgba(0,0,0,.3)}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 12px}.drawer-facility{font-weight:600;font-size:14px;overflow-wrap:anywhere}.drawer-close{background:transparent;border:1px solid #355070;color:#fff;border-radius:8px;width:40px;height:40px;font-size:20px;cursor:pointer;flex:none}.app-main{padding:12px;max-width:1500px;margin:0 auto;min-width:0}@media (min-width:1024px){.app-sidebar{display:flex}.app-content{margin-left:var(--sidebar-w)}.menu-btn,.topbar-brand,.topbar-logout,.topbar-user{display:none}.app-topbar{padding:0 24px}.app-main{padding:20px 24px 40px}}.page-title{font-size:22px;font-weight:700;margin:0 0 12px;color:var(--color-nav);letter-spacing:-.3px}.card{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:8px;padding:8px 14px;min-height:38px;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn:hover{background:var(--accent-dark)}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--border);font-weight:500}.btn.secondary:hover{background:var(--surface)}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:#8f2f2f}.btn.sm{padding:4px 10px;min-height:30px;font-size:12px}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table td,.data-table th{border:1px solid var(--border);padding:8px 10px;text-align:left;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.data-table th{background:var(--surface-alt);color:#4a5f77;font-weight:600;white-space:nowrap}@media (max-width:1023px){.data-table{display:block;overflow-x:auto;max-width:100%}}.data-table tr:hover td{background:var(--surface)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.form-field{display:flex;flex-direction:column;gap:4px}.form-field label{font-size:12px;color:var(--text-muted);font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid #b9c8d8;border-radius:7px;padding:8px 10px;min-height:38px;font-size:14px;font-family:inherit;background:#fff;color:var(--text);max-width:100%}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid rgba(25,103,194,.35);border-color:var(--accent)}.error-text{color:var(--danger);font-size:13px;margin:8px 0}.muted{color:var(--text-muted);font-size:12px}.badge{display:inline-block;border-radius:999px;font-size:11px;padding:2px 8px;font-weight:600}.badge.booked{background:var(--occupied);color:#205b9b}.badge.checked_in{background:var(--checkedin);color:#1e7a45}.badge.checked_out{background:#e8e8e8;color:#666}.badge.canceled{background:#fde3e3;color:var(--danger)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#102b50,#1a4f8f 55%,#0f7f83)}.login-box{background:#fff;border-radius:10px;padding:36px;width:380px;box-shadow:0 10px 40px rgba(0,0,0,.3)}.login-box h1{font-size:18px;margin:0 0 4px}.login-box .login-logo{display:block;width:180px;max-width:100%;margin:0 auto 10px}.login-box .sub{color:var(--text-muted);font-size:12px;margin-bottom:24px}.login-box .form-field{margin-bottom:14px}.login-box .btn{width:100%;padding:10px;font-size:14px}.board-toolbar{gap:12px;margin-bottom:12px}.board-toolbar,.date-nav{display:flex;align-items:center;flex-wrap:wrap}.date-nav{gap:6px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px 8px;max-width:100%}.date-nav .current-date{font-weight:700;font-size:15px;min-width:150px;text-align:center}.date-nav a,.date-nav button{background:var(--surface-alt);border:1px solid var(--border);border-radius:6px;padding:6px 10px;min-height:34px;font-size:13px;cursor:pointer;color:var(--text);white-space:nowrap;display:inline-flex;align-items:center}.date-nav .current-date{flex:1 1 auto}.date-nav input[type=date]{border:1px solid var(--border);border-radius:4px;padding:3px 6px;font-family:inherit}.group-tabs,.view-tabs{display:flex;gap:4px;flex-wrap:wrap}.group-tabs button,.view-tabs button{background:#fff;border:1px solid var(--border);border-radius:6px 6px 0 0;padding:7px 14px;font-size:13px;cursor:pointer;color:var(--text-muted)}.group-tabs button.active,.view-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}.board-summary{margin-left:auto;font-size:12px;color:var(--text-muted);display:flex;gap:14px}.kpi-strip{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;margin-bottom:10px}.kpi{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:8px 14px;min-width:128px;display:flex;flex-direction:column;gap:0;text-align:left;font-family:inherit;color:var(--text)}.kpi small{font-size:11px;color:var(--text-muted)}.kpi b{font-size:22px;font-weight:700;letter-spacing:-.5px;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi b span{font-size:12px;font-weight:500;margin-left:3px}.kpi b span,.kpi i{color:var(--text-muted)}.kpi i{font-style:normal;font-size:11px}.kpi-btn{cursor:pointer}.kpi-btn:hover{background:var(--surface)}.kpi-btn.attention{border-color:var(--color-gold);background:var(--color-warning-bg)}.kpi-btn.attention b{color:var(--color-warning-text)}.board-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.board-main{min-width:0}.unalloc-panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:12px}.unalloc-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.unalloc-list{display:flex;flex-direction:column;gap:6px}.unalloc-panel .unalloc-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin:0;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-family:inherit;font-size:13px;color:var(--text);text-align:left;cursor:pointer;min-height:44px}.unalloc-panel .unalloc-chip:hover{background:var(--brand-tint)}.unalloc-panel .unalloc-chip.selected{background:var(--occupied);border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}.unalloc-panel .unalloc-chip:disabled{cursor:default;opacity:.7}.unalloc-name{font-weight:600}@media (min-width:1200px){.board-layout{grid-template-columns:minmax(0,1fr) 280px}.unalloc-panel{position:-webkit-sticky;position:sticky;top:12px}}.layout-switch{margin-left:auto;display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.layout-switch button{border:none;background:#fff;padding:6px 12px;font-size:12px;cursor:pointer;color:var(--text-muted);font-family:inherit}.layout-switch button.active{background:var(--navy);color:#fff;font-weight:600}.room-grid.as-list{grid-template-columns:1fr}.room-grid.as-list:before{content:attr(data-group);font-size:12px;color:var(--text-muted);font-weight:600}.room-grid.as-list .room-panel{min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 12px}.room-grid.as-list .room-panel .room-head{min-width:96px}.room-grid{display:grid;grid-gap:10px;gap:10px;background:var(--panel-bg);border:1px solid var(--border);border-radius:0 8px 8px 8px;padding:14px}.room-panel{border:1px solid var(--border);border-radius:6px;min-height:96px;padding:8px;background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:box-shadow .1s;position:relative}.room-panel:hover{box-shadow:0 2px 8px rgba(10,128,118,.18)}.room-panel.occupied{background:var(--occupied);border-color:var(--occupied-border)}.room-panel.checked-in{background:var(--checkedin);border-color:var(--checkedin-border)}.room-panel.tentative{background:#fff8e1;border-color:#e8c98c;border-style:dashed}.room-panel.important{background:#fde3e3;border-color:#e24b4a}.status-select{border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit;background:#fff}.room-panel.drag-over{outline:2px dashed var(--accent);outline-offset:2px}.room-panel.shop{background:#fdf3e3;border-color:#e8c98c}.room-panel .room-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--text-muted)}.room-panel .room-number{font-weight:700;font-size:15px;color:var(--text)}.room-panel .room-type{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90px}.room-panel .occupant{font-weight:600;font-size:13px;line-height:1.3;overflow:hidden}.room-panel .occupant .sub-line{font-weight:400;font-size:11px;color:var(--text-muted)}.room-panel .empty-label{color:#a8b8b6;font-size:12px;margin:auto}.stay-tag{position:absolute;right:6px;bottom:6px;font-size:10px;background:rgba(9,60,55,.75);color:#fff;border-radius:3px;padding:1px 5px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,25,40,.5);display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;z-index:50}.modal{background:#fff;border-radius:10px;width:520px;max-width:calc(100vw - 32px);max-height:84vh;overflow-y:auto;padding:22px;box-shadow:0 16px 60px rgba(0,0,0,.35)}.modal h2{margin:0 0 14px;font-size:16px}.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.detail-rows{display:grid;grid-template-columns:110px 1fr;grid-gap:6px 12px;gap:6px 12px;font-size:13px;margin-bottom:8px}.detail-rows dt{color:var(--text-muted);font-weight:600}.detail-rows dd{margin:0}.calendar-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:8px}.calendar-table{border-collapse:collapse;min-width:100%}.calendar-table td,.calendar-table th{border:1px solid var(--border);font-size:12px;padding:0;height:40px}.calendar-table th{background:var(--surface-alt);padding:6px 8px;white-space:nowrap}.calendar-table th.sat{color:var(--accent)}.calendar-table th.sun{color:var(--danger)}.calendar-table td.room-label{padding:6px 10px;background:var(--surface);white-space:nowrap;font-weight:600;position:-webkit-sticky;position:sticky;left:0}.calendar-cell{min-width:72px;position:relative}.calendar-bar{background:var(--occupied);border:1px solid var(--occupied-border);color:var(--accent-dark);font-size:11px;border-radius:4px;margin:4px 2px;padding:3px 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block;text-decoration:none;font-weight:600}.calendar-bar:hover{filter:brightness(.95)}.board-viewswitch{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.board-viewswitch a{padding:6px 14px;font-size:13px;color:var(--text-muted);background:#fff;border-right:1px solid var(--border)}.board-viewswitch a:last-child{border-right:none}.board-viewswitch a.active{background:var(--navy);color:#fff;font-weight:600}.room-panel.checked-out{background:var(--surface-alt);border-color:#cfd9d7}.room-panel.blocked{background:repeating-linear-gradient(45deg,#f3f4f6,#f3f4f6 8px,#e8eaed 0,#e8eaed 16px);border-color:#c9ced6;cursor:default}.room-panel.empty-clickable:hover:after{content:"＋ 割り当て";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--accent);font-weight:700;font-size:13px;background:rgba(12,188,171,.12);border-radius:6px}.room-badges{position:absolute;top:6px;right:6px;display:flex;gap:4px}.mini-badge{font-size:9px;font-weight:700;border-radius:3px;padding:1px 4px;line-height:1.5}.mini-badge.clean{background:#dcf5e7;color:#1e7a45}.mini-badge.dirty{background:#fde3e3;color:#c0392b}.mini-badge.cleaning{background:#fdf3e3;color:#b07b1e}.occ-rate{font-weight:700;color:var(--navy)}.unalloc-strip{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:12px}.unalloc-chip{display:inline-flex;align-items:center;gap:8px;background:#fff7e6;border:1px solid #e8c98c;border-radius:6px;padding:5px 10px;margin:4px 6px 4px 0;font-size:12px}.unalloc-chip.selected{outline:2px solid var(--accent)}.gantt-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:8px}.gantt-table{border-collapse:collapse;min-width:100%}.gantt-table td,.gantt-table th{border:1px solid var(--border);font-size:11px;padding:0;height:34px}.gantt-table th{background:var(--surface-alt);padding:5px 6px;white-space:nowrap;min-width:48px}.gantt-table th.sat{color:var(--accent)}.gantt-table th.sun{color:var(--danger)}.gantt-table th.gantt-today{background:var(--brand-tint)}.gantt-roomhead{z-index:2;min-width:130px}.gantt-roomhead,.gantt-roomlabel{position:-webkit-sticky;position:sticky;left:0}.gantt-roomlabel{background:var(--surface);padding:4px 8px;white-space:nowrap;z-index:1;font-weight:600}.gantt-groupname{font-weight:700}.gantt-groupname,.gantt-type{font-size:10px;color:var(--text-muted)}.gantt-type{font-weight:400}.gantt-cell{min-width:48px;position:relative}.gantt-empty{cursor:pointer}.gantt-empty:hover{background:var(--brand-tint)}.gantt-bar{height:26px;margin:4px 2px;border-radius:4px;display:flex;align-items:center;padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;font-weight:600}.gantt-bar.block{background:repeating-linear-gradient(45deg,#e8eaed,#e8eaed 6px,#d5d9df 0,#d5d9df 12px);color:#666;cursor:default;font-weight:400}.master-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px}.tag-note{display:inline-block;margin-left:6px;font-size:10px;color:var(--text-muted);border:1px solid var(--border);border-radius:4px;padding:0 5px;vertical-align:middle}.master-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px}.master-card h3{margin:0 0 10px;font-size:14px;color:var(--navy);border-bottom:2px solid var(--navy);padding-bottom:6px}.master-card ul{list-style:none;margin:0;padding:0}.master-card li{padding:5px 0;font-size:13px}.master-card li span.soon{color:#a8b8b6}@media print{.app-sidebar,.app-topbar,.drawer-backdrop,.no-print{display:none!important}.app-content{margin-left:0!important}.app-main{padding:0;max-width:none}body{background:#fff;font-size:12px}.card{border:none;padding:0;box-shadow:none}.print-page-break{page-break-after:always}}.report-title{font-size:16px;font-weight:700;margin:0 0 4px}.report-sub{color:var(--text-muted);font-size:12px;margin-bottom:12px}.summary-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.summary-tile{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 14px}.summary-tile .label{font-size:11px;color:var(--text-muted);font-weight:600}.summary-tile .value{font-size:20px;font-weight:700;margin-top:2px}.toolbar-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap}.room-grid.font-large .room-panel .room-number{font-size:18px}.room-grid.font-large .room-panel .occupant{font-size:16px}.room-grid.font-large .room-panel .occupant .sub-line{font-size:13px}.room-grid.font-large .room-panel .room-type{font-size:12px}.room-grid.font-small .room-panel{min-height:72px;padding:6px}.room-grid.font-small .room-panel .room-number{font-size:13px}.room-grid.font-small .room-panel .occupant{font-size:11px}.room-grid.font-small .room-panel .occupant .sub-line{font-size:10px}.font-size-switch{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:#fff}.font-size-switch button{border:none;background:transparent;padding:4px 9px;font-size:12px;cursor:pointer;color:var(--text-muted)}.font-size-switch button+button{border-left:1px solid var(--border)}.font-size-switch button.active{background:var(--navy);color:#fff}.btn.has-note{border-color:var(--warn);color:#8a4500}.daily-note{margin-bottom:12px;border-color:var(--warn);background:#fff8e1}.daily-note textarea{border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit}.quick-register{display:flex;flex-direction:column;gap:4px;margin-top:2px}.quick-register input{width:100%;border:1px solid var(--brand);border-radius:4px;padding:5px 7px;font-size:13px;font-family:inherit;outline:2px solid rgba(12,188,171,.25)}.quick-register .quick-actions{display:flex;gap:4px}.quick-register .quick-actions .btn.sm{padding:3px 8px;font-size:11px}.month-panel{padding:0;margin-bottom:12px;overflow:hidden}.month-panel-toggle{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:none;border-bottom:1px solid transparent;padding:10px 14px;font-size:14px;font-family:inherit;color:var(--text);cursor:pointer;text-align:left}.month-panel-toggle:hover{background:var(--brand-tint)}.month-panel-toggle[aria-expanded=true]{border-bottom-color:var(--border)}.month-panel-caret{color:var(--accent);font-size:11px}.month-panel-summary{font-size:12px}.month-panel-hint{margin-left:auto;font-size:12px;color:var(--accent)}.month-panel-body{padding:10px 12px 12px}.month-calendar{padding:0}.month-calendar-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:3px;gap:3px}.month-wd{text-align:center;font-size:11px;color:var(--text-muted);padding:2px 0}.month-wd.sun{color:var(--danger)}.month-wd.sat{color:var(--accent)}.month-cell{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:52px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text);text-decoration:none;font-size:12px;line-height:1.25}.month-cell:hover{box-shadow:0 2px 6px rgba(10,128,118,.18)}.month-cell.empty{border-color:transparent;background:transparent}.month-cell .month-day{font-weight:600;font-size:12px;display:flex;gap:4px;align-items:center}.month-cell.sun .month-day{color:var(--danger)}.month-cell.sat .month-day{color:var(--accent)}.month-cell .month-guests{font-weight:700;font-size:14px}.month-cell .month-sub{font-size:10px;color:var(--text-muted)}.month-cell .month-empty{color:#c4cfcd}.month-cell.lv1{background:#e6f7f5}.month-cell.lv2{background:#c9efe9}.month-cell.lv3{background:#a6e3da}.month-cell.lv4{background:#7fd5cc}.month-cell.today{outline:2px solid var(--warn);outline-offset:-2px}.month-cell.selected{border-color:var(--navy);border-width:2px}.month-note-mark{color:var(--warn);font-size:9px}@media (max-width:700px){.month-cell{min-height:44px;padding:3px 4px}.month-cell .month-sub{display:none}}.reservation-columns{display:grid;grid-template-columns:2fr 1fr;grid-gap:20px;gap:20px}@media (max-width:900px){.reservation-columns{grid-template-columns:1fr}}.night-block{border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:10px;background:var(--surface)}.night-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}.night-head .night-actions{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.night-add{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;padding:8px;margin-bottom:8px;background:#fff;border:1px dashed var(--brand);border-radius:6px}.night-table td{padding:4px 6px;vertical-align:middle}.night-table input,.night-table select{padding:3px 5px;font-size:12px;border:1px solid var(--border);border-radius:4px;font-family:inherit}.reservation-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin:14px -16px -16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:2px solid var(--color-primary);display:flex;gap:12px;align-items:flex-end;box-shadow:0 -4px 12px rgba(0,0,0,.06)}.reservation-form{padding-bottom:0;scroll-margin-top:60px}.footer-save{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.save-state{font-size:11px;color:var(--text-muted);white-space:nowrap}.save-state.dirty{color:var(--color-warning-text);font-weight:600}.save-state.dirty:before{content:"● "}[id^=sec-]{scroll-margin-top:64px}.section-toc{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 12px;position:-webkit-sticky;position:sticky;top:0;z-index:6;background:var(--bg);padding:6px 0}@media (max-width:1023px){.section-toc{top:52px}}.section-toc a{font-size:12px;color:var(--text-muted);border:1px solid var(--border);background:#fff;border-radius:999px;padding:4px 10px;white-space:nowrap;min-height:28px;display:inline-flex;align-items:center}.section-toc a:hover{color:var(--accent);border-color:var(--accent)}.more-menu{position:relative;display:inline-block}.more-menu summary{list-style:none}.more-menu summary::-webkit-details-marker{display:none}.more-menu-body{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:180px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(16,43,80,.15);padding:4px;display:flex;flex-direction:column}.more-menu-body button{background:transparent;border:none;text-align:left;padding:9px 12px;font-size:13px;font-family:inherit;color:var(--text);border-radius:6px;cursor:pointer;min-height:38px}.more-menu-body button:hover{background:var(--surface)}.more-menu-body button.danger{color:var(--danger)}.status-field{display:inline-flex}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.modal-head h2{margin:0 0 12px}.modal-close{background:transparent;border:1px solid var(--border);border-radius:8px;width:36px;height:36px;font-size:18px;cursor:pointer;color:var(--text-muted);flex:none}.modal-close:hover{background:var(--surface)}.reservation-footer .footer-notes{flex:1 1;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.reservation-footer textarea{font-size:12px}@media (max-width:900px){.reservation-footer .footer-notes{grid-template-columns:repeat(2,1fr)}}@media (max-width:599px){.reservation-footer{flex-wrap:wrap}.reservation-footer .footer-notes{grid-template-columns:1fr 1fr;width:100%}.footer-save{flex-direction:row;align-items:center;width:100%;justify-content:space-between}}.sales-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-gap:16px;gap:16px;align-items:start}.sales-side{position:-webkit-sticky;position:sticky;top:12px}.sales-edit .data-table input,.sales-edit .data-table select{padding:3px 5px;font-size:12px;border:1px solid var(--border);border-radius:4px;font-family:inherit}.summary-table{width:100%;border-collapse:collapse;font-size:14px}.summary-table th{text-align:left;font-weight:500;color:var(--text-muted)}.summary-table td,.summary-table th{padding:5px 0;border-bottom:1px dashed var(--border)}.summary-table td{text-align:right}@media (max-width:900px){.sales-layout{grid-template-columns:1fr}.sales-side{position:static}}.receipt-sheet{background:#fff;border:1px solid var(--border);border-radius:8px;padding:32px 36px;margin:0 auto 24px;max-width:720px;font-size:13px;color:#222}.receipt-sheet .receipt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.receipt-sheet .receipt-logo{max-height:56px;max-width:200px;object-fit:contain}.receipt-sheet .receipt-title{text-align:center;font-size:22px;letter-spacing:10px;margin:18px 0 20px;font-weight:700}.receipt-sheet .receipt-addressee{font-size:18px;border-bottom:1px solid #222;padding:4px 8px;margin-bottom:14px}.receipt-sheet .receipt-amount{display:flex;align-items:baseline;gap:12px;border:2px solid #222;padding:8px 14px;font-size:22px;font-weight:700;margin-bottom:8px}.receipt-sheet .receipt-amount small{font-size:12px;font-weight:400}.receipt-sheet table.receipt-lines{width:100%;border-collapse:collapse;margin:14px 0;font-size:12px}.receipt-sheet table.receipt-lines td,.receipt-sheet table.receipt-lines th{border:1px solid #999;padding:4px 6px}.receipt-sheet table.receipt-lines th{background:#f2f2f2;font-weight:600}.receipt-sheet .receipt-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:18px}.receipt-sheet .receipt-stamp{width:84px;height:84px;border:1px dashed #999;display:flex;align-items:center;justify-content:center;font-size:11px;color:#777;text-align:center;white-space:pre-line}.receipt-sheet .receipt-copy-mark{position:relative}.receipt-sheet .receipt-copy-mark:after{content:"控";position:absolute;right:0;top:0;border:2px solid #c33;color:#c33;padding:2px 8px;font-size:14px}@media print{.receipt-sheet{border:none;border-radius:0;margin:0;max-width:none;page-break-after:always}.receipt-sheet:last-child{page-break-after:auto}}.cleaning-app{max-width:640px;margin:0 auto}.cleaning-head{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--bg,#f4f7f7);padding:8px 0 10px;border-bottom:1px solid var(--border);margin-bottom:8px}.cleaning-group{font-weight:700;font-size:13px;color:var(--text-muted);margin:12px 0 4px}.cleaning-card{background:#fff;border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:5px;border-radius:8px;margin-bottom:8px}.cleaning-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;cursor:pointer}.cleaning-detail{border-top:1px dashed var(--border);padding:10px 12px 12px}.cleaning-status-btn{border:none;border-radius:8px;padding:14px 4px;font-size:15px;font-weight:700;cursor:pointer}.cleaning-status-btn:disabled{opacity:.6;cursor:default}.liff-root{min-height:100vh;background:linear-gradient(180deg,var(--brand) 0,var(--brand) 140px,var(--bg) 140px)}.liff-wrap{max-width:440px;margin:0 auto;padding:16px 12px 40px}.liff-card{background:#fff;border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:0 4px 16px rgba(0,0,0,.08)}.liff-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.liff-facility{font-size:12px;color:var(--text-muted)}.liff-title{font-size:18px;font-weight:700;color:var(--accent-dark)}.liff-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover}.liff-name{font-size:18px;font-weight:700;margin-top:10px;display:flex;align-items:center;gap:8px}.liff-no{font-size:13px;color:var(--text-muted);margin-top:2px;letter-spacing:1px}.liff-badge{font-size:11px;background:#eee;color:#666;border-radius:999px;padding:2px 8px;font-weight:600}.liff-badge.ok{background:#dcf5e7;color:#1e7a45}.liff-tabs{display:flex;background:#fff;border-radius:12px;padding:4px;margin-bottom:12px;box-shadow:0 2px 8px rgba(0,0,0,.06)}.liff-tabs button{flex:1 1;border:none;background:transparent;padding:9px 4px;border-radius:9px;font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;font-family:inherit}.liff-tabs button.active{background:var(--brand-tint);color:var(--accent-dark)}.liff-count{display:inline-block;background:var(--danger);color:#fff;border-radius:999px;font-size:10px;padding:0 6px;margin-left:4px}.liff-stats{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:6px;gap:6px;margin:8px 0}.liff-stat-label{font-size:11px;color:var(--text-muted)}.liff-stat-value{font-size:22px;font-weight:700;color:var(--accent-dark)}.liff-stat-value small{font-size:11px;font-weight:400;margin-left:2px;color:var(--text-muted)}.liff-stamps{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}.liff-stamp{width:34px;height:34px;border-radius:50%;border:2px dashed var(--border);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:16px}.liff-stamp.on{background:var(--accent);border-color:var(--accent)}.liff-field{display:block;font-size:13px;font-weight:600;margin-bottom:10px}.liff-field input{display:block;width:100%;margin-top:4px;padding:10px;font-size:16px;border:1px solid var(--border);border-radius:8px;font-family:inherit}.liff-btn{width:100%;padding:12px;font-size:15px;border-radius:10px}.liff-coupon{border:2px dashed var(--accent)}.liff-coupon.used{opacity:.55;border-color:var(--border)}.liff-code{margin-top:8px;background:var(--surface);border-radius:8px;padding:6px 10px;font-size:14px;letter-spacing:2px;text-align:center}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px}.page-actions,.page-head{display:flex;flex-wrap:wrap}.page-actions{gap:8px;align-items:center}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:12px}.filter-field{display:flex;flex-direction:column;gap:4px;min-width:0}.filter-field.grow{flex:1 1 260px}.filter-field>span{font-size:12px;color:var(--text-muted);font-weight:600}.filter-field input,.filter-field select{border:1px solid #b9c8d8;border-radius:7px;padding:8px 10px;min-height:38px;font-size:14px;font-family:inherit;background:#fff;color:var(--text);max-width:100%}.filter-actions{display:flex;gap:8px;align-items:center}.filter-more{flex-basis:100%;margin:0}.filter-more summary{cursor:pointer;color:var(--text-muted);font-size:12px;padding:6px 0;list-style:none}.filter-more summary:before{content:"▸ "}.filter-more[open] summary:before{content:"▾ "}.index-row{display:flex;gap:4px;flex-wrap:wrap;padding:4px 0 2px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:#fff;max-width:100%}.table-wrap .data-table{border:none;display:table}.table-wrap .data-table td:first-child,.table-wrap .data-table th:first-child{border-left:none}.table-wrap .data-table td:last-child,.table-wrap .data-table th:last-child{border-right:none}.table-wrap .data-table thead th{border-top:none}.data-table .num,.data-table th.num{text-align:right}.res-table{min-width:860px}.guest-table{min-width:720px}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.res-name{font-weight:600}.res-actions,.res-dates{white-space:nowrap}.res-actions .btn{margin-right:4px}.res-more{display:inline-block;position:relative}.res-more summary{list-style:none;display:inline-flex}.res-more summary::-webkit-details-marker{display:none}.res-more[open] summary{background:var(--surface-alt)}.res-more-body{position:absolute;right:0;top:calc(100% + 4px);z-index:5;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(16,43,80,.15);padding:10px 12px;margin:0;min-width:240px;white-space:normal;display:grid;grid-template-columns:auto 1fr;grid-gap:4px 10px;gap:4px 10px;font-size:12px;text-align:left}.res-more-body dt{color:var(--text-muted)}.res-more-body dd{margin:0}@media (max-width:767px){.guest-table,.res-table{min-width:0;display:block}.guest-table thead,.res-table thead{display:none}.guest-table tbody,.guest-table td,.guest-table tr,.res-table tbody,.res-table td,.res-table tr{display:block;width:100%;box-sizing:border-box}.guest-table tr,.res-table tr{border-bottom:8px solid var(--bg);padding:10px 12px}.guest-table td,.res-table td{border:none;padding:2px 0}.guest-table td.res-guest,.res-table td.res-guest{font-size:15px}.guest-table td.num,.res-table td.num{text-align:left}.guest-table td.res-actions,.res-table td.res-actions{padding-top:8px}.guest-table td[colspan],.res-table td[colspan]{padding:8px 0}.res-more-body{position:static;box-shadow:none;margin-top:6px}}.form-field label .req{color:var(--danger);border:1px solid;border-radius:4px;font-weight:600}.form-field label .opt,.form-field label .req{display:inline-block;margin-left:6px;font-size:10px;padding:0 4px;line-height:1.5;vertical-align:middle}.form-field label .opt{color:var(--text-muted);border:1px solid var(--border);border-radius:4px}.form-field label .auto{display:inline-block;margin-left:6px;font-size:10px;color:var(--color-teal);border:1px solid;border-radius:4px;padding:0 4px;line-height:1.5;vertical-align:middle}.notice{border-left:3px solid var(--color-gold);background:#fcf8f0;border-radius:6px;padding:10px 12px;margin:12px 0;font-size:13px;color:var(--text)}.report-head{justify-content:space-between;align-items:flex-start;margin-bottom:8px}.report-context,.report-head{display:flex;gap:12px;flex-wrap:wrap}.report-context{align-items:center;font-size:13px;color:var(--text-muted);margin-top:2px}.report-context strong{color:var(--text)}.report-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.report-actions-group{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.report-actions-group.close-group{border-left:3px solid var(--color-gold);padding-left:10px}.print-only{display:none}@media print{.print-only{display:block}}.daily-report{min-width:1600px;font-size:12px}.daily-report tbody td:first-child,.daily-report thead th:first-child{position:-webkit-sticky;position:sticky;left:0;background:#fff;z-index:2}.daily-report tbody td:nth-child(2),.daily-report thead th:nth-child(2){position:-webkit-sticky;position:sticky;left:72px;background:#fff;z-index:2;box-shadow:2px 0 0 var(--border)}.daily-report thead th{position:-webkit-sticky;position:sticky;top:0;z-index:3}.daily-report thead th:first-child,.daily-report thead th:nth-child(2){z-index:4;background:var(--surface-alt)}.daily-report tbody tr:nth-child(2n) td{background:var(--surface)}.daily-report tfoot td{position:-webkit-sticky;position:sticky;bottom:0;background:var(--brand-tint);z-index:2}.daily-report tfoot td:first-child{left:0;z-index:3}.daily-wrap{max-height:70vh;overflow:auto}@media print{.daily-wrap{max-height:none;overflow:visible}.daily-report{min-width:0;font-size:10px}.daily-report td,.daily-report th{position:static!important}}@media (max-width:599px){.form-grid>*{grid-column:auto!important}}.app-main>*,.board-main,.reservation-columns>*,.sales-main,.sales-side{min-width:0}.detail-rows,.night-table{max-width:100%}@media (max-width:699px){.room-grid:not(.as-list){overflow-x:auto;grid-auto-columns:minmax(150px,1fr)}.room-grid:not(.as-list) .room-panel{min-width:150px}}.mail-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;grid-gap:12px;gap:12px;align-items:start}.mail-tabs{display:flex;border-bottom:1px solid var(--border)}.mail-tab{flex:1 1;text-align:center;padding:9px 4px;font-size:13px;color:var(--text-muted);text-decoration:none;border-bottom:2px solid transparent}.mail-tab span{display:inline-block;margin-left:4px;font-size:11px;background:var(--bg);border-radius:9px;padding:0 6px;color:var(--text-muted)}.mail-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.mail-search{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--border)}.mail-search input{flex:1 1;min-width:0}.mail-items{list-style:none;margin:0;padding:0;max-height:calc(100vh - 260px);overflow-y:auto}.mail-item{display:block;padding:8px 12px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}.mail-item:hover{background:var(--bg)}.mail-item.active{background:color-mix(in srgb,var(--color-primary) 10%,var(--panel-bg))}.mail-item.unread .mail-from,.mail-item.unread .mail-subject{font-weight:700}.mail-item-top{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-muted)}.mail-from{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-date{flex:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mail-subject{font-size:13px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-tag{display:inline-block;font-size:11px;font-weight:600;padding:0 6px;border-radius:4px;margin-right:4px;background:var(--color-teal);color:#fff;vertical-align:1px}.mail-tag.res{background:var(--color-primary)}.mail-tag.cancel{background:var(--danger)}.mail-detail{min-height:300px}.mail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}.mail-link{display:inline-flex;gap:6px;align-items:center;font-size:13px}.mail-body{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13px;line-height:1.6;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;max-height:60vh;overflow:auto}.mail-compose{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}@media (max-width:900px){.mail-layout{grid-template-columns:1fr}.mail-items{max-height:40vh}}.booking-wrap{min-height:100vh;background:var(--bg);padding:24px 16px 48px}.booking-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:24px;max-width:720px;margin:0 auto;box-shadow:0 4px 18px rgba(16,43,80,.08)}.booking-card h1{font-size:20px;margin:0 0 2px}.booking-card .sub{color:var(--text-muted);font-size:12px;margin-bottom:16px}.booking-step{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);position:relative}.booking-step h2{font-size:15px;margin:0 0 10px}.booking-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:10px 14px;gap:10px 14px}.booking-grid .form-field input,.booking-grid .form-field select{width:100%;min-width:0}.booking-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.booking-note{background:var(--surface-alt);border-radius:8px;padding:10px 12px;font-size:13px;margin:10px 0}.booking-note.warn{background:var(--color-warning-bg);color:var(--color-warning-text)}.booking-offer{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:8px;flex-wrap:wrap}.booking-offer.selected{border-color:var(--accent);background:var(--brand-tint)}.booking-offer-main{flex:1 1 280px;min-width:0}.booking-offer-title{font-weight:600;font-size:15px;margin-bottom:2px}.booking-offer-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.booking-offer-price{font-size:18px;font-weight:700}.booking-summary{background:var(--surface-alt);border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}.booking-pay label{display:block;margin-bottom:6px}.booking-card textarea{width:100%}@media (max-width:520px){.booking-wrap{padding:8px 8px 32px}.booking-card{padding:16px}.booking-offer-side{width:100%;flex-direction:row;justify-content:space-between;align-items:center}}.inv-table{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}.inv-table td,.inv-table th{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:3px 2px;text-align:center;white-space:nowrap}.inv-sticky{position:-webkit-sticky;position:sticky;left:0;background:var(--panel-bg);text-align:left!important;padding:4px 10px!important;min-width:130px;z-index:1;font-weight:600}.inv-day{min-width:34px;font-weight:600;background:var(--bg)}.inv-day small{display:block;font-weight:400;color:var(--text-muted)}.inv-cell.wd0,.inv-day.wd0{background:#fff2f2}.inv-cell.wd6,.inv-day.wd6{background:#eef5ff}.inv-day.today{outline:2px solid var(--color-primary);outline-offset:-2px}.inv-cell{cursor:pointer;position:relative;height:34px;min-width:34px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.inv-cell:hover{background:color-mix(in srgb,var(--color-primary) 12%,#fff)}.inv-remain{font-weight:700;font-size:14px}.inv-frames{color:var(--text-muted)}.inv-sold{position:absolute;right:2px;bottom:0;font-size:9px;color:var(--color-teal);font-weight:700}.inv-rate{font-size:11px}.inv-cell.full .inv-remain{color:var(--text-muted)}.inv-cell.stop{background:repeating-linear-gradient(45deg,#e6e6e6,#e6e6e6 4px,#f6f6f6 0,#f6f6f6 8px)}.inv-cell.over .inv-remain,.inv-cell.over .inv-sold{color:var(--danger)}.inv-cell.ovr .inv-remain{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.inv-cell.past{opacity:.6}.inv-total td{background:var(--bg);font-weight:600;cursor:default}.inv-total td.over{color:var(--danger)}.inv-total td.under{color:#b56a00}.inv-mini{margin-left:6px;font-size:10px;padding:0 5px;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;color:var(--text-muted)}.inv-mini:hover{color:var(--color-primary);border-color:var(--color-primary)}.inv-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}.booking-hold{background:#fff7e6;border:1px solid #f0c36d;border-radius:8px;padding:8px 12px;margin-bottom:10px;font-size:13px}.booking-hold.expired{background:#fff2f2;border-color:#e0a0a0}.avail-cal{border-collapse:collapse;width:100%;table-layout:fixed;font-size:12px;margin-top:6px}.avail-cal th{font-weight:600;color:var(--text-muted);padding:4px 0}.avail-cal td{text-align:center;padding:2px}.avail-cal button,.avail-cal span.cell{display:block;width:100%;border:1px solid var(--border);border-radius:6px;padding:4px 0 3px;background:#fff;font:inherit;line-height:1.2}.avail-cal button{cursor:pointer}.avail-cal button:hover{border-color:var(--color-primary)}.avail-cal .d{font-size:12px}.avail-cal .a{font-size:13px;font-weight:700;color:var(--color-teal)}.avail-cal .a.few{color:#b56a00}.avail-cal .a.none{color:var(--text-muted);font-weight:400}.avail-cal .past{opacity:.35}.avail-nav{display:flex;align-items:center;gap:8px;margin-top:8px}.order-wrap{min-height:100vh;background:#f6f2ea;padding:12px}.order-card{max-width:560px;margin:0 auto;background:#fffdf8;border-radius:16px;box-shadow:0 2px 14px rgba(16,43,80,.08);padding:18px 16px 90px;font-size:16px;color:#1f2a3a}.order-head{border-bottom:2px solid #b58a46;padding-bottom:12px;margin-bottom:12px}.order-facility{font-size:13px;letter-spacing:.2em;color:#102b50}.order-head h1{margin:4px 0 0;font-size:22px;color:#102b50}.order-notice{margin:8px 0 0;font-size:14px;color:#5a6270;white-space:pre-wrap}.order-alert{background:#fff3e6;border:1px solid #e6b877;border-radius:10px;padding:10px 12px;font-size:15px}.order-verify{padding:8px 0}.order-card h2,.order-verify h2{font-size:19px;color:#102b50;margin:12px 0 8px}.order-input{font-size:20px;padding:12px;border:1px solid #cfc7b8;border-radius:10px;margin-bottom:10px}.order-btn,.order-input{width:100%;box-sizing:border-box;background:#fff}.order-btn{display:block;font-size:18px;padding:14px;border-radius:12px;border:1px solid #cfc7b8;color:#102b50;margin-top:10px;cursor:pointer}.order-btn.primary{background:#102b50;color:#fff;border-color:#102b50;font-weight:600}.order-btn:disabled{opacity:.5;cursor:default}.order-cats{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;margin:8px 0 12px}.order-cat{display:flex;align-items:center;gap:6px;font-size:15px;padding:12px 8px;border-radius:12px;border:1px solid #d9cfba;background:#f3ead8;color:#102b50;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden}.order-cat.active{background:#102b50;color:#fff;border-color:#102b50}.order-cat-icon{font-size:20px;width:24px;text-align:center;flex:none}.order-items{display:flex;flex-direction:column;gap:10px}.order-item{display:grid;grid-template-columns:84px 1fr;grid-template-areas:"img body" "img qty";grid-gap:6px 10px;gap:6px 10px;align-items:start;background:#fff;border:1px solid #e6dfd0;border-radius:14px;padding:10px}.order-item>.order-img{grid-area:img}.order-item>.order-item-body{grid-area:body;min-width:0}.order-item>.order-qty{grid-area:qty;justify-self:end}.order-item.big{grid-template-columns:1fr;grid-template-areas:"img" "body" "qty";border:2px solid #b58a46;background:#fffaf0}.order-item.big .order-img{width:100%;height:160px}.order-img{width:84px;height:84px;border-radius:10px;overflow:hidden;background:#efe8da;display:flex;align-items:center;justify-content:center}.order-img.sm{width:56px;height:56px;flex:none}.order-img img{width:100%;height:100%;object-fit:cover}.order-img-ph{font-size:30px;opacity:.6}.order-item-name{font-size:17px;font-weight:600;color:#1f2a3a}.order-item-desc{font-size:13px;color:#5a6270;margin-top:2px;white-space:pre-wrap}.order-item-price{margin-top:4px;font-size:17px}.order-item-price small{font-size:12px;color:#5a6270;margin-left:2px}.order-save{background:#b58a46;color:#fff;padding:1px 7px}.order-save,.order-tag{font-size:12px;border-radius:10px}.order-tag{display:inline-block;margin-top:4px;margin-right:6px;padding:1px 8px;background:#f3ead8;color:#6b5a2c}.order-tag.out{background:#eee;color:#8a8a8a}.order-qty{display:flex;align-items:center;gap:6px}.order-qbtn{width:44px;height:44px;border-radius:50%;border:1px solid #102b50;background:#fff;color:#102b50;font-size:22px;cursor:pointer}.order-qbtn:disabled{opacity:.35;cursor:default}.order-qnum{min-width:26px;text-align:center;font-size:20px;font-weight:600}.order-cartbar{position:fixed;left:12px;right:12px;bottom:12px;max-width:536px;margin:0 auto;display:block;font-size:18px;font-weight:600;padding:16px;border-radius:14px;border:0;background:#b58a46;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.2);cursor:pointer;z-index:5}.order-cartline{display:grid;grid-template-columns:56px 1fr;grid-template-areas:"img body" "img ctl";grid-column-gap:10px;column-gap:10px;grid-row-gap:6px;row-gap:6px;align-items:center;padding:10px 0;border-bottom:1px solid #ece5d6}.order-cartline .order-img{grid-area:img}.order-cartline-body{grid-area:body;min-width:0}.order-cartline-ctl{grid-area:ctl;display:flex;align-items:center;justify-content:space-between;gap:10px}.order-del{width:40px;height:40px;border-radius:50%;border:1px solid #cfc7b8;background:#fff;cursor:pointer}.order-total{text-align:right;font-size:20px;margin:14px 0}.order-total b{font-size:24px;color:#102b50}.order-summary{background:#f6f2ea;border-radius:12px;padding:6px 12px;margin-bottom:12px}.order-sumrow{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #e6dfd0;font-size:16px}.order-sumrow:last-child{border-bottom:0}.order-sumrow>:last-child{white-space:nowrap;flex:none}.order-sumrow.total{font-size:19px}.order-label{display:block;font-size:15px;margin:10px 0;color:#102b50}.order-done{text-align:center}.order-done .order-summary{text-align:left}.order-check{width:64px;height:64px;margin:10px auto;border-radius:50%;background:#b58a46;color:#fff;font-size:36px;line-height:64px}.order-modal{position:fixed;inset:0;background:rgba(16,43,80,.5);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.order-modal-box{background:#fffdf8;border-radius:16px;padding:20px;max-width:420px;width:100%}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.qr-card{background:#fffdf8;border:2px solid #b58a46;border-radius:14px;padding:16px;text-align:center;page-break-inside:avoid}.qr-card.off{opacity:.5}.qr-facility{font-size:12px;letter-spacing:.2em;color:#102b50}.qr-title{font-size:16px;color:#102b50;margin-top:4px}.qr-room{font-size:30px;font-weight:700;color:#102b50;margin:4px 0 8px}.qr-code{margin-top:8px;font-size:15px;color:#102b50}.qr-code b{font-size:24px;letter-spacing:.2em}.qr-note{font-size:12px;color:#5a6270;margin-top:6px}.qr-actions{margin-top:8px;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.qr-staff-body{display:grid;grid-template-columns:260px 1fr;grid-gap:16px;gap:16px;align-items:center}.qr-card.staff{border-color:#102b50;background:#f6f8fc}@media (max-width:700px){.qr-staff-body{grid-template-columns:1fr}}@media print{.app-nav,.no-print,.sidebar,.topbar{display:none!important}.qr-grid{grid-template-columns:repeat(2,1fr)}body{background:#fff}body.print-rooms .qr-staff,body.print-staff .qr-rooms{display:none}.qr-staff{border:0;padding:0;background:none}}@media (max-width:767px){.orders-table td[data-label]:before{content:attr(data-label);display:inline-block;min-width:4.5em;color:var(--text-muted);font-size:11px}.orders-table td.orders-actions:before,.orders-table td.orders-items:before{display:none}.orders-table td.orders-items{font-size:15px;margin:4px 0}.orders-table td.orders-actions{display:flex;gap:8px;padding-top:10px}.orders-table td.orders-actions .btn{flex:1 1;padding:12px 8px;font-size:15px;text-align:center}.orders-table tr{border-radius:10px}}.board-wrap{min-height:100vh;background:#e9edf4;padding:12px}.board-wrap .order-card{padding-bottom:24px}.order-title{margin:4px 0 8px;font-size:22px;color:#102b50}.board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border-bottom:2px solid #102b50;padding-bottom:10px;margin-bottom:10px}.board-sound{font-size:13px;display:inline-flex;gap:4px;white-space:nowrap}.board-badge{display:inline-block;background:#c0392b;color:#fff;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600;margin-left:8px;vertical-align:middle}.board-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.board-filter{border:1px solid #b9c2d0;background:#fff;color:#102b50;border-radius:999px;padding:8px 14px;font-size:14px;cursor:pointer}.board-filter.on{background:#102b50;color:#fff;border-color:#102b50}.board-order{border:1px solid #d5dbe6;border-radius:12px;padding:12px;margin-bottom:10px;background:#fff}.board-order.new{border-color:#c0392b;background:#fff5f4}.board-order-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.board-room{font-size:22px;font-weight:700;color:#102b50}.board-items{list-style:none;padding:0;margin:8px 0 4px;font-size:17px}.board-items li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed #e3e7ee}.board-total{text-align:right;font-size:14px;color:#5a6270}.board-msg{background:#fff8e1;border-radius:8px;padding:8px 10px;margin-top:6px;font-size:15px}.board-actions{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;margin-top:6px}.board-actions .order-btn{margin-top:4px;font-size:16px;padding:12px 16px;white-space:nowrap}.board-sound{display:flex;gap:6px;align-items:center}.board-sound label{font-size:13px;display:inline-flex;gap:4px;align-items:center;white-space:nowrap}.board-hint{background:#fff8e1;border:1px solid #e6c65c;border-radius:8px;padding:8px 10px;font-size:13px;margin:0 0 10px}.order-histbtn{display:block;width:100%;box-sizing:border-box;text-align:left;border:1px solid #d8cfbd;border-radius:10px;font-size:15px;color:#102b50;cursor:pointer}.order-hist,.order-histbtn{background:#fff;padding:10px 12px;margin-bottom:10px}.order-hist{border:1px solid #e6dfd0;border-radius:12px}.order-hist.canceled{opacity:.55}.order-hist-top{display:flex;align-items:center;gap:10px;margin-bottom:4px;font-size:14px}.order-hist-status{margin-left:auto;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;color:#fff;background:#888}.order-hist-status.s-new{background:#b56a00}.order-hist-status.s-accepted{background:#1f5fa8}.order-hist-status.s-preparing{background:#102b50}.order-hist-status.s-delivered{background:#1f7a63}.order-hist-total{text-align:right;font-weight:600;color:#102b50;margin-top:4px}.order-total small{display:block;font-size:12px;color:#5a6270;font-weight:400}.staging-bar{background:#d97706;color:#fff;font-size:13px;font-weight:600;text-align:center;padding:6px 12px;position:-webkit-sticky;position:sticky;top:0;z-index:30}@media print{.prep-day{page-break-inside:avoid;page-break-after:always;border:0;box-shadow:none}.prep-day:last-of-type{page-break-after:auto}.prep-grid{grid-template-columns:1fr!important}}@media (max-width:900px){.prep-grid{grid-template-columns:1fr!important}}.kiosk-screen{position:fixed;inset:0;overflow-y:auto;overscroll-behavior:none;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;background:linear-gradient(160deg,#102b50,#1a4f8f 55%,#0f7f83);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);touch-action:manipulation;-webkit-tap-highlight-color:transparent;z-index:1000}.kiosk-center{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:24px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.kiosk-center h1{font-size:clamp(30px,6vw,56px);margin:0;letter-spacing:.04em}.kiosk-center .kiosk-welcome{font-size:clamp(26px,5vw,46px);margin:4vh 0 2vh}.kiosk-center .kiosk-note{font-size:clamp(16px,2.6vw,24px);opacity:.9;white-space:pre-wrap;max-width:34em}.kiosk-center .kiosk-pin{background:#fff;color:var(--text,#1c2733);border-radius:14px;padding:28px;width:min(92vw,420px);margin-top:4vh;text-align:left}.kiosk-sheet{flex:1 1;background:#fff;width:100%;max-width:860px;margin:0 auto;padding:clamp(16px,3vw,36px);box-shadow:0 0 40px rgba(0,0,0,.25)}.kiosk-sheet h1{font-size:clamp(20px,3vw,28px);margin:0 0 2px}.kiosk-sheet .sub{color:var(--text-muted);font-size:14px;margin-bottom:14px}.kiosk-screen,.kiosk-screen *{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.kiosk-screen input,.kiosk-screen textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}.kiosk-sign{display:block;width:100%;height:200px;border:2px solid var(--border);border-radius:8px;background:#fff;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.kiosk-logo{max-width:min(70vw,420px);max-height:22vh;object-fit:contain;margin-bottom:3vh}.kiosk-logo.white{filter:brightness(0) invert(1)}.kiosk-sheet .kiosk-logo-small{max-height:48px;max-width:220px;object-fit:contain;display:block;margin-bottom:6px}.kiosk-corner{position:fixed;right:10px;bottom:10px;z-index:1001;opacity:.55;font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.25);color:#fff}