@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.block{display:block}.flex{display:flex}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--vacant:#10b981;--vacant-bg:#ecfdf5;--vacant-text:#065f46;--dirty:#f59e0b;--dirty-bg:#fffbeb;--dirty-text:#92400e;--occupied:#3b82f6;--occupied-bg:#eff6ff;--occupied-text:#1e40af;--reserved:#ef4444;--reserved-bg:#fef2f2;--reserved-text:#991b1b;--ooo:#333;--ooo-bg:#f3f3f3;--ooo-text:#333;--karaoke:#8b5cf6;--karaoke-bg:#f5f3ff;--karaoke-text:#5b21b6;--bg:#f0f2f5;--card:#fff;--text:#1a1a2e;--sub:#6b7280;--muted:#9ca3af;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 10px 40px #0000001f}*{-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;overflow-x:hidden}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}.header{color:#fff;padding:16px 20px;padding-top:max(16px, env(safe-area-inset-top));z-index:50;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-title{letter-spacing:-.3px;white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:700;overflow:hidden}.header-user{color:#ffffffb3;cursor:pointer;white-space:nowrap;background:#ffffff1f;border-radius:20px;flex-shrink:0;margin-left:10px;padding:6px 12px;font-size:12px}.header-user:active{background:#fff3}.tabs{background:var(--card);z-index:40;display:flex;position:sticky;top:56px;box-shadow:0 1px #0000000f}.tab{text-align:center;color:var(--muted);border-bottom:2.5px solid #0000;flex:1;padding:14px 0;font-size:14px;font-weight:600;transition:all .2s}.tab.active{color:#1a1a2e;border-bottom-color:#1a1a2e}.tab-orders{position:relative}.tab-badge{color:#fff;background:#ef4444;border-radius:10px;min-width:16px;padding:1px 6px;font-size:10px;font-weight:800;line-height:1.5;position:absolute;top:5px;right:max(6px,50% - 40px)}.rs-popup-overlay{z-index:90;background:#00000080;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.rs-popup{color:#fff;text-align:center;background:#1d4ed8;border-radius:20px;width:100%;max-width:360px;padding:26px 22px;box-shadow:0 16px 48px #1d4ed873}.rs-popup-icon{margin-bottom:6px;font-size:40px}.rs-popup h2{margin-bottom:10px;font-size:18px;font-weight:800}.rs-popup-room{font-size:20px;font-weight:800}.rs-popup-room span{opacity:.85;margin-left:8px;font-size:13px;font-weight:600}.rs-popup-items{opacity:.9;margin-top:8px;font-size:13px;line-height:1.5}.rs-popup-total{margin-top:6px;font-size:17px;font-weight:800}.rs-popup-actions{gap:8px;margin-top:18px;display:flex}.rs-popup-view{color:#1d4ed8;background:#fff;border-radius:12px;flex:1;padding:12px 0;font-size:15px;font-weight:800}.rs-popup-later{color:#fff;background:#ffffff26;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600}.orders-frame-wrap{height:calc(100vh - 106px);margin:-16px}.orders-frame{background:#fff;border:0;width:100%;height:100%;display:block}.content{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));min-height:70vh}.summary{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.sum-card{background:var(--card);text-align:center;box-shadow:var(--shadow);border-radius:12px;padding:12px 8px}.sum-num{font-size:24px;font-weight:800;line-height:1}.sum-label{letter-spacing:.5px;margin-top:4px;font-size:10px;font-weight:700}.floor-tabs{gap:8px;margin-bottom:14px;display:flex}.floor-tab{text-align:center;letter-spacing:.2px;background:var(--card);color:var(--sub);box-shadow:var(--shadow);border-radius:10px;flex:1;padding:10px 0;font-size:13px;font-weight:700}.floor-tab.active{color:#fff;background:#1a1a2e}.floor-tab-urgent{justify-content:center;align-items:center;gap:5px;display:inline-flex}.floor-tab-urgent.has-urgent{color:var(--band-urgent)}.floor-tab-urgent.has-urgent.active{background:var(--band-urgent);color:#fff}.floor-tab-count{background:var(--band-urgent);color:#fff;border-radius:999px;min-width:17px;padding:0 4px;font-size:11px;font-weight:800;line-height:17px}.floor-tab-urgent.active .floor-tab-count{color:var(--band-urgent);background:#fff}.urgent-note{color:var(--band-urgent);background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:14px;padding:9px 11px;font-size:12px;font-weight:600;line-height:1.45}.room-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (min-width:640px){.room-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:639px){.room-card.room-card-family{grid-row:span 2}}@media (min-width:640px){.room-card.room-card-family{grid-column:span 2}}.room-family-tag{color:var(--karaoke-text);background:var(--karaoke-bg);border-radius:8px;margin-bottom:6px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}@media (max-width:639px){.room-grid{grid-auto-flow:dense}.room-card.side-road{grid-column:1}.room-card.side-inner{grid-column:2}}.room-card{background:var(--card);text-align:center;box-shadow:var(--shadow);cursor:pointer;border-left:8px solid #0000;border-radius:14px;padding:16px 10px;transition:transform .15s;position:relative;overflow:hidden}.room-card:active{transform:scale(.96)}.room-num{letter-spacing:-.5px;margin-bottom:2px;font-size:26px;font-weight:800}.room-type{color:var(--muted);letter-spacing:.3px;margin-bottom:6px;font-size:10px;font-weight:600}.room-badge{letter-spacing:.5px;border-radius:20px;margin-bottom:8px;padding:4px 14px;font-size:12px;font-weight:700;display:inline-block}.room-preview{color:var(--muted);min-height:14px;font-size:11px;font-weight:500}.room-remaining{margin-top:2px;font-size:11px;font-weight:700}.room-note{color:var(--sub);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:4px;font-size:10px;font-weight:600;overflow:hidden}.room-note .note-flag{color:var(--reserved);font-weight:800}.room-card.urgent{box-shadow:var(--shadow), 0 0 0 2px var(--dirty)}.room-card.overdue,.room-card.has-pending{box-shadow:var(--shadow), 0 0 0 2px var(--reserved)}.pending-badge{background:var(--reserved);color:#fff;letter-spacing:.2px;z-index:1;border-radius:0 14px 0 10px;padding:3px 8px;font-size:10px;font-weight:800;position:absolute;top:0;right:0}.remaining-ok{color:var(--occupied)}.remaining-urgent{color:var(--dirty)}.remaining-overdue{color:var(--reserved);animation:1.5s infinite pulse}.bl-vacant{border-left-color:var(--vacant)}.bl-dirty{border-left-color:var(--dirty)}.bl-occupied{border-left-color:var(--occupied)}.bl-reserved{border-left-color:var(--reserved)}.bl-ooo{border-left-color:var(--ooo)}.bg-vacant{background:var(--vacant-bg);color:var(--vacant-text)}.bg-dirty{background:var(--dirty-bg);color:var(--dirty-text)}.bg-occupied{background:var(--occupied-bg);color:var(--occupied-text)}.bg-reserved{background:var(--reserved-bg);color:var(--reserved-text)}.bg-ooo{background:var(--ooo-bg);color:var(--ooo-text)}.bg-karaoke{background:var(--karaoke-bg);color:var(--karaoke-text)}.overlay{z-index:100;-webkit-backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--card);width:100%;max-width:500px;padding:8px 20px 20px;padding-bottom:max(20px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-height:90vh;animation:.25s ease-out slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-handle{background:#ddd;border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.modal-title{text-align:center;margin-bottom:4px;font-size:22px;font-weight:800}.modal-sub{color:var(--sub);text-align:center;margin-bottom:20px;font-size:13px}.modal-section-title{color:var(--sub);letter-spacing:.3px;margin:18px 0 10px;font-size:13px;font-weight:800}.status-error{background:var(--reserved-bg);color:var(--reserved-text);text-align:center;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:600}.dirty-notice{background:var(--dirty-bg);border:2px solid var(--dirty);text-align:center;border-radius:14px;margin:14px 0;padding:20px 16px}.dirty-notice-icon{margin-bottom:8px;font-size:32px}.dirty-notice-title{color:var(--dirty-text);margin-bottom:6px;font-size:16px;font-weight:800}.dirty-notice-sub{color:var(--dirty-text);font-size:13px;line-height:1.5}.status-btn{border:2px solid #f0f0f0;border-radius:14px;align-items:center;gap:14px;width:100%;margin-bottom:10px;padding:16px 18px;font-size:15px;font-weight:700;transition:all .15s;display:flex}.status-btn:active{transform:scale(.98)}.status-btn.current{opacity:.3;pointer-events:none}.status-btn.disabled{opacity:.4;pointer-events:none;color:var(--muted)}.status-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.status-label{text-align:left;flex:1}.status-sub{color:var(--sub);font-size:11px;font-weight:500}.form-group{margin-bottom:14px}.form-label{color:var(--text);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.required-mark{color:var(--reserved-text)}.form-input,.form-select{width:100%;color:var(--text);background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;font-size:14px}.form-input:focus,.form-select:focus{background:#f0f9ff;border-color:#3b82f6;outline:none}.form-textarea{resize:vertical;background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;min-height:60px;padding:10px 12px;font-size:14px}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-row .form-group,.form-input{min-width:0}.amount-summary{background:var(--bg);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;padding:12px 8px;display:grid}.amount-summary>div{flex-direction:column;align-items:center;gap:2px;display:flex}.amount-label{color:var(--muted);letter-spacing:.4px;font-size:10px;font-weight:700}.amount-value{color:var(--text);font-size:15px;font-weight:800}.amount-paid{color:var(--vacant-text)}.amount-pending{color:var(--reserved-text)}.amount-discount{color:#b45309}.security-toggle{gap:8px;display:flex}.sec-btn{color:var(--sub);background:#fff;border:2px solid #e5e7eb;border-radius:10px;flex:1;padding:12px 0;font-size:14px;font-weight:700;transition:all .15s}.sec-btn:active{transform:scale(.98)}.sec-btn.active{border-color:var(--occupied);background:var(--occupied-bg);color:var(--occupied-text)}.quick-hint{color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.quick-row{gap:8px;margin-bottom:14px;display:flex}.clear-btn{background:var(--bg);color:var(--sub);border:1px solid #e5e7eb}.clear-btn:active{background:#e5e7eb}.quick-btn{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;flex:1;padding:10px 0;font-size:13px;font-weight:700}.quick-btn:active{background:#dbeafe}.btn-row{gap:10px;margin-top:6px;display:flex}.btn-save{color:#fff;background:#10b981;border-radius:10px;flex:1;padding:12px;font-weight:600}.btn-save:active{background:#059669}.cancel-btn{background:var(--bg);color:var(--sub);border-radius:10px;flex:1;padding:12px;font-weight:600}.btn-checkout{color:#92400e;background:#fffbeb;border:1.5px solid #fcd34d;border-radius:10px;width:100%;margin-bottom:14px;padding:12px;font-weight:700}.btn-checkout:active{background:#fef3c7}.sum-num-sm{padding-top:5px;font-size:15px}.stat-title{color:var(--sub);letter-spacing:.3px;margin:20px 0 10px;font-size:13px;font-weight:800}.stat-row{background:var(--card);box-shadow:var(--shadow);border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 14px;font-size:13px;display:flex}.stat-label{width:64px;color:var(--sub);flex-shrink:0;font-size:12px;font-weight:600}.stat-bar-wrap{background:var(--bg);border-radius:6px;flex:1;height:14px;display:block;overflow:hidden}.stat-bar{background:var(--occupied);border-radius:6px;height:100%;display:block}.stat-bar-month{background:var(--vacant)}.stat-count{text-align:right;min-width:28px;font-weight:800}.stat-revenue{text-align:right;min-width:72px;color:var(--sub);font-size:12px}.search-row{align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.search-field{flex:1;min-width:0}.search-btn{color:#fff;background:#1a1a2e;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:700}.search-btn:active{background:#16213e}.search-btn:disabled{opacity:.5}.search-summary{color:var(--text);margin-bottom:10px;font-size:13px;font-weight:700}.sale-amount{font-size:14px;font-weight:800}.charge-add{gap:8px;margin-bottom:8px;display:flex}.charge-add .form-input:first-child{flex:1;min-width:0}.charge-amt{text-align:right;flex-shrink:0;width:84px}.charge-btns{gap:8px;margin-bottom:12px;display:flex}.charge-btn{border:1.5px solid #0000;border-radius:10px;flex:1;padding:11px 0;font-size:13px;font-weight:700}.charge-btn:active{transform:scale(.98)}.charge-btn:disabled{opacity:.4}.charge-btn.paid{background:var(--vacant-bg);color:var(--vacant-text);border-color:#a7f3d0}.charge-btn.unpaid{background:var(--reserved-bg);color:var(--reserved-text);border-color:#fecaca}.charge-list{margin-bottom:14px}.charge-item{background:var(--bg);border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:9px 12px;font-size:13px;display:flex}.charge-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.charge-tag{color:var(--occupied-text);flex-shrink:0;font-size:12px;font-weight:700}.charge-del{width:22px;height:22px;color:var(--sub);background:#e5e7eb;border-radius:50%;flex-shrink:0;font-size:14px;font-weight:800;line-height:1}.payment-list{margin-bottom:10px}.payment-item{background:var(--bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;padding:9px 12px;font-size:12px;display:flex}.payment-method-tag{border-radius:8px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:800}.pm-cash{background:var(--vacant-bg);color:var(--vacant-text)}.pm-card,.pm-credit_card{background:var(--occupied-bg);color:var(--occupied-text)}.pm-debit_card{color:#155e75;background:#cffafe}.pm-gcash{color:#5b21b6;background:#ede9fe}.pm-bank_transfer{background:var(--dirty-bg);color:var(--dirty-text)}.pm-agoda_prepaid{color:#3730a3;background:#e0e7ff}.pm-discount{color:#b45309;background:#fef3c7}.payment-amount{flex-shrink:0;font-weight:700}.payment-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-style:italic;overflow:hidden}.payment-time{color:var(--muted);flex-shrink:0;font-size:10px}.shift-summary-list{background:var(--bg);border-radius:10px;margin-bottom:14px;padding:10px 14px}.shift-summary-row{border-bottom:1px solid #e5e7eb;justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.shift-summary-row:last-child{border-bottom:none}.shift-summary-amount{font-weight:700}.shift-summary-total{border-top:1.5px solid var(--text);margin-top:4px;padding-top:8px;font-size:14px;font-weight:800}.log-item{background:var(--card);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:14px;margin-bottom:8px;padding:14px 16px;display:flex}.log-room-num{min-width:38px;font-size:18px;font-weight:800}.log-body{flex:1}.log-change{align-items:center;gap:6px;margin-bottom:4px;display:flex}.log-arrow{color:var(--muted);font-size:14px}.log-meta{color:var(--muted);font-size:11px}.log-badge{border-radius:10px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.login{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-icon{margin-bottom:16px;font-size:48px}.login-logo{border-radius:26px;margin-bottom:16px;box-shadow:0 8px 30px #00000059}.login-title{color:#fff;text-align:center;margin-bottom:6px;font-size:26px;font-weight:800}.login-sub{color:#fff9;margin-bottom:24px;font-size:14px}.login-form{width:100%;max-width:340px}.login-label{color:#ffffffb3;margin-bottom:8px;font-size:12px;font-weight:600;display:block}.login-input{color:#fff;background:#ffffff1a;border:1px solid #fff3;border-radius:10px;width:100%;padding:12px 14px;font-size:15px}.login-input::placeholder{color:#ffffff59}.login-input:focus{border-color:#ffffff80;outline:none}.login-btn{color:#fff;background:#ffffff26;border:1px solid #ffffff4d;border-radius:10px;width:100%;padding:14px;font-size:16px;font-weight:600;transition:all .15s}.login-btn:active{background:#ffffff40;transform:scale(.98)}.login-btn:disabled{opacity:.5}.error-msg{color:#fca5a5;text-align:center;min-height:16px;margin-bottom:12px;font-size:12px}.vacancy-count{margin:18px 0 8px;font-size:96px;font-weight:800;line-height:1}.vacancy-count--open{color:#4ade80;text-shadow:0 0 40px #4ade8059}.vacancy-count--full{color:#f87171;text-shadow:0 0 40px #f8717159}.vacancy-status{color:#fff;text-align:center;margin-bottom:8px;font-size:20px;font-weight:700}.vacancy-hint{color:#ffffff8c;text-align:center;max-width:280px;font-size:13px}.vacancy-loading{color:#fff9;text-align:center;margin:40px 0;font-size:15px;line-height:1.6}.vacancy-notice{color:#ffffff73;text-align:center;max-width:300px;margin-top:22px;font-size:12px;line-height:1.6}.vacancy-updated{bottom:max(20px, env(safe-area-inset-bottom));color:#fff6;font-size:12px;position:fixed}.toast{color:#fff;z-index:200;opacity:0;box-shadow:var(--shadow-lg);pointer-events:none;background:#1a1a2e;border-radius:12px;padding:12px 24px;font-size:14px;font-weight:600;transition:all .3s;position:fixed;top:80px;left:50%;transform:translate(-50%)translateY(-20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.empty{text-align:center;color:var(--muted);padding:60px 20px}.empty-icon{opacity:.3;margin-bottom:12px;font-size:40px}.empty-text{font-size:14px}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:100vh;padding:32px 24px;display:flex}.error-icon{margin-bottom:6px;font-size:48px}.error-title{font-size:20px;font-weight:800}.error-sub{color:var(--sub);margin-bottom:16px;font-size:14px}.error-retry{color:#fff;background:#1a1a2e;border-radius:12px;width:100%;max-width:320px;padding:14px 0;font-size:15px;font-weight:700}.error-reload{width:100%;max-width:320px;color:var(--text);background:#fff;border:2px solid #e5e7eb;border-radius:12px;margin-top:4px;padding:14px 0;font-size:15px;font-weight:700}.alert-overlay{z-index:300;-webkit-backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:24px;animation:.25s alertFade;display:flex;position:fixed;inset:0}.alert-box{text-align:center;border:3px solid var(--dirty);width:100%;max-width:380px;box-shadow:var(--shadow-lg);background:#fff;border-radius:22px;padding:26px 22px;animation:.35s alertPop}.alert-overlay.reservation .alert-box{border-color:#3b82f6}.alert-icon{font-size:52px;line-height:1;animation:1s infinite alertRing;display:inline-block}.alert-title{letter-spacing:-.3px;margin:10px 0 14px;font-size:22px;font-weight:800}.alert-room{background:var(--dirty-bg);color:var(--dirty-text);border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:14px 16px;font-size:20px;font-weight:800;display:flex}.alert-overlay.reservation .alert-room{background:var(--occupied-bg);color:var(--occupied-text)}.alert-time{color:var(--dirty-text);text-align:right;font-size:13px;font-weight:700}.alert-time.overdue{color:var(--reserved)}.alert-overlay.reservation .alert-time{color:var(--occupied-text)}.alert-dismiss{color:#fff;background:#1a1a2e;border-radius:14px;width:100%;margin-top:12px;padding:15px 0;font-size:16px;font-weight:700}.alert-dismiss:active{transform:scale(.98)}@keyframes alertFade{0%{opacity:0}to{opacity:1}}@keyframes alertPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes alertRing{0%,to{transform:rotate(0)}20%{transform:rotate(-18deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-9deg)}80%{transform:rotate(5deg)}}.refresh-bar{color:var(--muted);justify-content:center;align-items:center;gap:6px;padding:8px;font-size:11px;display:flex}.pulse{background:var(--vacant);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}.pulse.offline{background:var(--reserved);animation:none}@keyframes pulse{50%{opacity:.5}}.btn-reservations-folder{width:100%;color:var(--text);background:linear-gradient(135deg,#e0e7ff 0%,#f0f9ff 100%);border:2px solid #c7d2fe;border-radius:14px;align-items:center;gap:10px;margin-bottom:14px;padding:14px 16px;font-size:14px;font-weight:700;transition:all .15s;display:flex;position:relative}.btn-reservations-folder:active{background:linear-gradient(135deg,#c7d2fe 0%,#dbeafe 100%);transform:scale(.98)}.folder-icon{font-size:18px}.folder-text{text-align:left;flex:1}.badge{color:#fff;text-align:center;background:#ef4444;border-radius:12px;flex-shrink:0;min-width:20px;padding:3px 8px;font-size:11px;font-weight:800}.reservation-modal{max-height:85vh;overflow-y:auto}.btn-add-reservation{color:#fff;background:#3b82f6;border-radius:12px;width:100%;margin-bottom:12px;padding:12px 0;font-size:14px;font-weight:700;transition:all .15s}.btn-add-reservation:active{background:#2563eb;transform:scale(.98)}.reservation-form-modal{border-bottom:1px solid #e5e7eb;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;padding-bottom:14px;display:grid}.reservation-form-modal input{color:var(--text);background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;font-size:13px}.reservation-form-modal input:focus{background:#f0f9ff;border-color:#3b82f6;outline:none}.reservation-form-modal .notes-input-full{grid-column:1/-1}.reservation-form-modal .form-label{grid-column:1/-1;margin-bottom:-4px}.time-picker-row{grid-column:1/-1;align-items:center;gap:6px;display:flex}.time-picker-row input[type=date]{color:var(--text);background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:1.4;padding:10px 8px;font-size:13px}.time-picker-row select{color:var(--text);background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:.7;padding:10px 4px;font-size:13px}.btn-confirm-time{background:var(--occupied);color:#fff;white-space:nowrap;border-radius:10px;flex:none;padding:10px 14px;font-size:12px;font-weight:700}.btn-confirm-time:disabled{opacity:.4}.confirmed-time{color:var(--occupied);grid-column:1/-1;margin-top:-4px;font-size:12px;font-weight:700}.form-button-group{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;display:grid}.form-button-group .btn-save,.form-button-group .cancel-btn{padding:10px 0}.reservation-empty{text-align:center;color:var(--muted);padding:30px 20px;font-size:13px}.reservation-list-section{margin-bottom:14px}.reservation-items{flex-direction:column;gap:8px;display:flex}.reservation-item-modal{background:var(--bg);border-left:4px solid #3b82f6;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.reservation-item-modal.urgent{border-left-color:var(--dirty);background:var(--dirty-bg)}.reservation-item-modal.assigned{border-left-color:var(--occupied)}.reservation-info{flex:1;min-width:0}.reservation-guest{color:var(--text);font-size:13px;font-weight:700}.reservation-times{color:var(--sub);margin-top:2px;font-size:11px}.reservation-notes{color:var(--muted);margin-top:4px;font-size:10px;font-style:italic}.reservation-room{color:var(--occupied);margin-top:4px;font-size:10px;font-weight:700}.reservation-btn-group{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.btn-assign{color:#fff;background:#3b82f6;border-radius:8px;flex-shrink:0;padding:8px 12px;font-size:12px;font-weight:700;transition:all .15s}.btn-assign:active{background:#2563eb;transform:scale(.96)}.btn-unassign{background:var(--dirty);color:#fff;white-space:nowrap;border-radius:8px;flex-shrink:0;padding:8px 12px;font-size:11px;font-weight:700;transition:all .15s}.btn-unassign:active{background:#d97706;transform:scale(.96)}.btn-delete-sm{color:#fff;white-space:nowrap;background:#ef4444;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:11px;font-weight:700;transition:all .15s}.btn-delete-sm:active{background:#dc2626;transform:scale(.96)}.room-selector-inline{flex-shrink:0;align-items:center;gap:6px;display:flex}.room-selector-inline select{color:var(--text);background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:6px 8px;font-size:12px}.btn-assign-confirm{color:#fff;background:#10b981;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;transition:all .15s}.btn-assign-confirm:active{background:#059669;transform:scale(.96)}.btn-assign-cancel{background:var(--muted);color:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;transition:all .15s}.btn-assign-cancel:active{background:#6b7280;transform:scale(.96)}:root{--grami-hatch:var(--ooo);--cleaning:#3b82f6;--cleaning-bg:#dbeafe;--cleaning-text:#1d4ed8;--occupied-dirty:#ca8a04;--occupied-dirty-bg:#fef3c7;--occupied-dirty-text:#92400e;--band-urgent:#b91c1c;--band-stayover:#f97316;--band-normal:#eab308}.bg-cleaning{background:var(--cleaning-bg);color:var(--cleaning-text)}.bl-cleaning{border-left-color:var(--cleaning)}.bg-occupied-dirty{background:var(--occupied-dirty-bg);color:var(--occupied-dirty-text)}.bl-occupied-dirty{border-left-color:var(--occupied-dirty)}.clean-icon{vertical-align:-2px;margin-left:4px;font-size:16px;line-height:1}.clean-icon-urgent{vertical-align:-5px;filter:drop-shadow(0 0 1px var(--band-urgent)) drop-shadow(0 0 3px var(--band-urgent)) drop-shadow(0 0 7px var(--band-urgent));margin-left:5px;font-size:24px;animation:1.1s ease-in-out infinite broom-blink}@keyframes broom-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.clean-icon-urgent{animation:none}}.hk-table-wrap{-webkit-overflow-scrolling:touch;margin-bottom:6px;overflow-x:auto}.hk-table{border-collapse:collapse;width:100%;min-width:380px;font-size:13px}.hk-table th,.hk-table td{white-space:nowrap;border-bottom:1px solid #eef0f3;padding:9px 10px}.hk-table th{color:var(--sub);text-align:left;background:#fafbfc;font-size:11px;font-weight:700;position:sticky;top:0}.hk-table th.num,.hk-table td.num{text-align:right;font-variant-numeric:tabular-nums}.hk-table td.strong{font-weight:800}.hk-table tbody tr:last-child td{border-bottom:none}.hk-name{font-weight:700}.hk-sub{color:var(--muted);font-size:11px;font-weight:500}.hk-flag{background:var(--dirty-bg);color:var(--dirty-text);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.hk-note{color:var(--sub);margin:2px 2px 4px;font-size:11px;line-height:1.6}.status-btn.action-start,.status-btn.action-finish{color:#fff;text-align:center;border-color:#0000;justify-content:center;padding:22px 18px;font-size:18px;font-weight:800}.status-btn.action-start{background:var(--cleaning)}.status-btn.action-finish{background:var(--reserved)}.status-btn.action-start .status-sub,.status-btn.action-finish .status-sub{color:#ffffffd9;font-size:12px}.status-btn.action-start .status-label,.status-btn.action-finish .status-label{text-align:center}.status-btn.action-start:active{background:#2563eb}.status-btn.action-finish:active{background:#dc2626}.depart-mark{background:var(--band-urgent);color:#fff;letter-spacing:.4px;z-index:1;border-radius:6px;padding:2px 5px;font-size:8px;font-weight:800;position:absolute;top:4px;right:4px}.depart-mark-inline{vertical-align:middle;margin-left:8px;position:static}.frontdesk-legend{color:var(--sub);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.frontdesk-legend .legend-item{align-items:center;gap:5px;display:inline-flex}.frontdesk-legend .depart-mark{position:static}.frontdesk-legend .clean-icon-urgent{vertical-align:-3px;font-size:17px;animation:none}.legend-urgent{background:var(--band-urgent)}.legend-stayover{background:var(--band-stayover)}.legend-normal{background:var(--band-normal)}.room-card.grami-hatch,.frontdesk-card.grami-hatch{background-image:repeating-linear-gradient(45deg, var(--grami-hatch) 0, var(--grami-hatch) 2px, transparent 2px, transparent 8px);background-color:var(--ooo-bg)}.stay-preview-3day{justify-content:center;gap:4px;margin-top:6px;display:flex}.stay-preview-cell{text-align:center;background:var(--bg);color:var(--muted);border-radius:6px;flex:1;padding:3px 0;font-size:9px;font-weight:700;position:relative;overflow:hidden}.spc-fill{position:absolute;inset:0}.spc-left{right:50%}.spc-right{left:50%}.spc-num{z-index:1;position:relative}.stay-preview-cell.has-fill .spc-num{color:var(--text);background:#ffffffe0;border-radius:4px;padding:0 3px}.stay-preview-cell.is-today{outline:1.5px solid var(--text);outline-offset:-1.5px}.spc-fill.day-checked-in{background:#15803d}.spc-fill.day-reserved{background:#86efac}.spc-fill.day-checked-out{background-color:#fee2e2;background-image:repeating-linear-gradient(45deg,#fca5a5 0 1.5px,#0000 1.5px 5px)}.rooms-floor-view{display:block}.rooms-full-view{display:none}@media (min-width:640px){.rooms-floor-view{display:none}.rooms-full-view{display:block}}.rooms-full-actions{gap:10px;margin-bottom:14px;display:flex}.rooms-full-actions .btn-reservations-folder,.rooms-full-actions .btn-grami-stays-folder{margin-bottom:0}.frontdesk-overview{flex-direction:column;gap:14px;display:flex}.frontdesk-floor-label{color:var(--sub);margin-bottom:6px;font-size:12px;font-weight:800}.frontdesk-row{grid-template-columns:repeat(7,minmax(60px,1fr));gap:6px;margin-bottom:6px;display:grid}.frontdesk-card{background:var(--card);text-align:center;box-shadow:var(--shadow);border-left:6px solid #0000;border-radius:10px;padding:8px 4px;font-size:11px;position:relative;overflow:hidden}.frontdesk-card.room-card-family{grid-column:span 2}.frontdesk-card .room-num{font-size:12px;font-weight:800}.frontdesk-card .room-badge{margin-bottom:2px;padding:2px 8px;font-size:9px}.room-notes-box{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;margin-bottom:14px;padding:10px 12px}.room-note-item{border-bottom:1px dashed #fde68a;padding:6px 0}.room-note-item:last-child{border-bottom:0}.room-note-text{color:var(--text);white-space:pre-wrap;font-size:13px;font-weight:600}.room-note-author{color:var(--muted);text-align:right;margin-top:2px;font-size:11px;font-weight:600}.day-use-tag{letter-spacing:.5px;background:var(--karaoke-bg);color:var(--karaoke-text);border-radius:8px;margin-bottom:4px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.frontdesk-card .day-use-tag{margin-bottom:2px;padding:1px 5px;font-size:8px}.btn-day-use{width:100%;color:var(--text);background:linear-gradient(135deg,#ede9fe 0%,#f5f3ff 100%);border:2px solid #ddd6fe;border-radius:14px;align-items:center;gap:10px;margin-bottom:14px;padding:14px 16px;font-size:14px;font-weight:700;transition:all .15s;display:flex}.btn-day-use:active{background:linear-gradient(135deg,#ddd6fe 0%,#ede9fe 100%);transform:scale(.98)}.btn-grami-stays-folder{width:100%;color:var(--text);background:linear-gradient(135deg,#fef3c7 0%,#fffbeb 100%);border:2px solid #fde68a;border-radius:14px;align-items:center;gap:10px;margin-bottom:14px;padding:14px 16px;font-size:14px;font-weight:700;transition:all .15s;display:flex}.btn-grami-stays-folder:active{background:linear-gradient(135deg,#fde68a 0%,#fef3c7 100%);transform:scale(.98)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
