@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Marcellus;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marcellus-latin-ext-400-normal-DkjSXVBo.woff2)format("woff2"),url(/assets/marcellus-latin-ext-400-normal-D06jIo1e.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Marcellus;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marcellus-latin-400-normal-86dSXJnk.woff2)format("woff2"),url(/assets/marcellus-latin-400-normal-AvMY561b.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--kumkum-50:#eaf3fb;--kumkum-100:#6f8fa8;--kumkum-400:#4f97cc;--kumkum-500:#2b7bc4;--kumkum-600:#1e5f99;--kumkum-700:#184b7a;--gold-100:#16324a;--gold-300:#2b4f6b;--gold-400:#8fc1e3;--gold-500:#5a9cc9;--gold-600:#3f7ab0;--sanctum-900:#eef6fb;--sanctum-800:#f6fbfd;--sanctum-700:#dceefb;--sanctum-600:#cfe6f5;--ivory-50:#fff;--ivory-100:#f7fbfd;--ivory-200:#eef6fb;--ivory-300:#dbe9f2;--ink-900:#16324a;--ink-700:#2d5a78;--ink-500:#5b7186;--ink-300:#a9bece;--navy-ink:#16324a;--success:#2f7d4f;--success-bg:#e4f3ea;--danger:#b3261e;--danger-bg:#fbeae9;--warning:#a3671a;--warning-bg:#faf0dd;--bg:var(--ivory-100);--surface:var(--ivory-50);--surface-alt:var(--ivory-200);--border:var(--ivory-300);--text:var(--ink-900);--text-muted:var(--ink-500);--accent:var(--kumkum-500);--accent-strong:var(--kumkum-600);--accent-rgb:43, 123, 196;--accent-strong-rgb:30, 95, 153;--gold:var(--gold-400);--shadow:0 1px 2px #16324a0f, 0 8px 24px -12px #16324a29;--radius:10px;--sans:"Manrope Variable", "Segoe UI", system-ui, Roboto, sans-serif;--serif:"Marcellus", "Palatino Linotype", Georgia, serif}:root[data-brand=classic]{--kumkum-50:#fdf1ee;--kumkum-100:#fbdbd4;--kumkum-400:#c14a3f;--kumkum-500:#a3342c;--kumkum-600:#8a2620;--kumkum-700:#6e1c18;--gold-100:#f7ecc8;--gold-300:#e6c569;--gold-400:#d4af37;--gold-500:#b8942a;--gold-600:#93761f;--sanctum-900:#1c0f10;--sanctum-800:#2b1416;--sanctum-700:#3a1c1e;--sanctum-600:#4a2528;--ivory-50:#fffdf8;--ivory-100:#fbf6ea;--ivory-200:#f4ecd8;--ivory-300:#e9dcbf;--ink-900:#241a15;--ink-700:#4a3a30;--ink-500:#7a6a5c;--ink-300:#b3a493;--navy-ink:#1c0f10;--accent-rgb:163, 52, 44;--accent-strong-rgb:138, 38, 32;--shadow:0 1px 2px #241a150f, 0 8px 24px -12px #241a152e}:root[data-theme=dusk]{--bg:#0f2438;--surface:#163348;--surface-alt:#1c3f57;--border:#2a4d66;--text:#eaf3fb;--text-muted:#a9c4d6;--accent:#4f97cc;--accent-strong:#6faedd;--accent-rgb:79, 151, 204;--accent-strong-rgb:111, 174, 221;--kumkum-500:#2f6da3;--kumkum-600:#275c8a;--sanctum-900:#081625;--sanctum-800:#0e2233;--sanctum-700:#16354e;--sanctum-600:#1d425f;--gold-100:#d9e8f4;--gold-300:#9cc3e0;--ivory-100:#12293f;--ivory-200:#1a3850;--shadow:0 1px 2px #0000004d, 0 8px 24px -12px #00000080}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sans);background:radial-gradient(1100px 500px at 75% -10%, rgba(var(--accent-rgb), .055), transparent 70%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0}h1,h2,h3{font-family:var(--serif);letter-spacing:.015em;margin:0;font-weight:400}h4{letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}button,input,select,textarea{font-family:inherit;font-size:14px}a{color:var(--accent-strong)}.app-shell{min-height:100vh;display:flex}.sanctum{background:linear-gradient(180deg, var(--sanctum-800), var(--sanctum-900));width:248px;color:var(--gold-100);flex-direction:column;flex:none;gap:4px;padding:20px 14px;display:flex}.sanctum-brand{color:var(--gold-300);align-items:flex-start;gap:10px;padding:6px 10px 20px;display:flex}.sanctum-brand .glyph{background:radial-gradient(circle at 35% 30%, var(--gold-300), var(--gold-600));width:34px;height:34px;color:var(--sanctum-900);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:1px;font-weight:700;display:flex}.sanctum-brand .name{font-family:var(--serif);letter-spacing:.03em;background:linear-gradient(120deg, var(--gold-300), var(--gold-100) 55%, var(--gold-300));-webkit-text-fill-color:transparent;color:var(--gold-100);-webkit-background-clip:text;background-clip:text;font-size:12.5px;font-weight:400;line-height:1.4}.sanctum-section{text-transform:uppercase;letter-spacing:.08em;color:var(--kumkum-100);opacity:.55;padding:14px 12px 4px;font-size:11px}.sanctum-link{color:var(--gold-100);opacity:.85;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;text-decoration:none;transition:background .12s,opacity .12s;display:flex}.sanctum-link:hover{background:rgba(var(--accent-rgb), .08);opacity:1}.sanctum-link.active{background:linear-gradient(90deg, var(--kumkum-600), var(--kumkum-500));color:#fff;opacity:1;box-shadow:0 2px 8px rgba(var(--accent-strong-rgb), .3)}.sanctum-link .icon{opacity:.9;flex:none;justify-content:center;align-items:center;width:18px;font-size:16px;display:flex}.courtyard{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:14px 28px;display:flex;position:relative}.topbar:after{content:"";background:linear-gradient(90deg, var(--gold-400), transparent 45%);opacity:.7;pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0}.topbar .title{font-family:var(--serif);letter-spacing:.02em;color:var(--text);font-size:19px;font-weight:400}.topbar .user-chip{color:var(--text-muted);align-items:center;gap:10px;font-size:13px;display:flex}.content{flex:1;padding:24px 28px 40px;overflow-y:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.page-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex;position:relative}.page-header:after{content:"";background:linear-gradient(90deg, var(--kumkum-500), var(--gold-400));border-radius:3px;width:56px;height:3px;position:absolute;bottom:-1px;left:0}.page-header h1{color:var(--text);font-size:26px}.page-header .subtitle{color:var(--text-muted);margin-top:4px;font-size:13.5px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:600;transition:filter .12s,background .12s,transform .12s,box-shadow .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--kumkum-500), var(--kumkum-600));color:#fff;box-shadow:inset 0 1px 0 #ffffff38, 0 2px 6px -2px rgba(var(--accent-strong-rgb), .5)}.btn-primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:inset 0 1px 0 #ffffff38, 0 5px 14px -4px rgba(var(--accent-strong-rgb), .55);transform:translateY(-1px)}.btn-gold{background:linear-gradient(135deg, var(--gold-400), var(--gold-500));color:var(--navy-ink);box-shadow:inset 0 1px #ffffff59}.btn-gold:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.btn-secondary{background:var(--surface-alt);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#b3261e40}.btn-danger:hover:not(:disabled){filter:brightness(.97)}.btn-sm{padding:6px 12px;font-size:12.5px}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{color:var(--text-muted);font-size:12.5px;font-weight:600}.field .hint{color:var(--text-muted);font-size:11.5px}.field .error{color:var(--danger);font-size:11.5px}input[type=text],input[type=password],input[type=number],input[type=date],input[type=time],input[type=tel],input[type=email],select,textarea{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:7px;outline:none;padding:9px 11px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .14)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 18px;display:grid}.hero-band{border-radius:var(--radius);background-color:var(--surface-alt);height:132px;margin-bottom:22px;position:relative;overflow:hidden}.hero-scene-layer{background-position:50% 35%;background-size:cover;position:absolute;inset:0}.hero-scene-layer.photo{background-image:linear-gradient(180deg, #fff0 40%, var(--bg) 96%), linear-gradient(180deg, #2b7bc438, #143c5a47), var(--hero-photo,none)}.hero-scene-layer.classic{background-image:linear-gradient(180deg, #a3342c24, var(--bg) 92%)}:root[data-brand=classic] .hero-scene-layer.photo,:root:not([data-brand=classic]) .hero-scene-layer.classic{display:none}.hero-band .hero-text{z-index:1;position:absolute;bottom:16px;left:22px}.hero-band .hero-text .title{letter-spacing:.02em;color:var(--navy-ink);text-shadow:0 1px 10px #ffffffbf;font-size:24px;font-weight:400}.hero-band .hero-text .subtitle{color:var(--ink-700);text-shadow:0 1px 10px #ffffffbf;margin-top:3px;font-size:12.5px}.hero-band .hero-actions{z-index:1;position:absolute;top:16px;right:18px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:22px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:14px;padding:16px 18px 16px 22px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.stat-tile .stat-icon{width:40px;height:40px;color:var(--accent-strong);background:rgba(var(--accent-rgb), .1);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:20px;display:flex}.stat-tile:before{content:"";background:linear-gradient(180deg, var(--gold-400), var(--kumkum-500));width:4px;position:absolute;top:0;bottom:0;left:0}.stat-tile:hover{transform:translateY(-2px);box-shadow:0 4px 10px #241a151a,0 12px 28px -12px #241a1538}.stat-tile .value{font-family:var(--serif);font-variant-numeric:tabular-nums;color:var(--accent-strong);font-size:30px;font-weight:400;line-height:1.15}.stat-tile .label{color:var(--text-muted);margin-top:3px;font-size:12.5px}table.grid{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13.5px}table.grid th{text-align:left;background:var(--surface-alt);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 12px;font-size:11.5px}table.grid td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 12px}table.grid tr:hover td{background:var(--surface-alt)}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.badge-success{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-neutral{background:var(--surface-alt);color:var(--text-muted)}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.room-tile{border:2px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;padding:12px 10px;transition:border-color .12s,transform .1s,box-shadow .1s;position:relative}.room-tile:hover{border-color:var(--gold-400);transform:translateY(-2px);box-shadow:0 6px 14px -6px #241a1540}.room-tile.selected{border-color:var(--accent);background:var(--kumkum-50)}.room-tile .room-no{padding-right:22px;font-size:15px;font-weight:700}.room-tile .room-meta{color:var(--text-muted);margin-top:4px;font-size:11.5px}.room-cat-badge{border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:8px;right:8px}.room-cat-ac{color:#2b7bc4;background:#388bd229}.room-cat-non{color:#c07a1e;background:#d6851e29}.room-cat-lux{color:#93761f;background:#b8942a33}.room-cat-hall{color:#7a5aa8;background:#7a5aa829}.room-cat-other{background:var(--surface-alt);color:var(--text-muted);letter-spacing:.02em;font-size:8.5px}.room-cat-pill{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.room-cat-pill.room-cat-other{letter-spacing:normal;font-size:12px}.room-tile .room-price{color:var(--accent-strong);margin-top:6px;font-size:12.5px;font-weight:700}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex}.tab{color:var(--text-muted);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 16px;font-size:13.5px;font-weight:600}.tab.active{color:var(--accent-strong);border-bottom-color:var(--accent)}.brand-switch{background:var(--surface-alt);border:1px solid var(--border);border-radius:999px;padding:3px;display:inline-flex}.brand-switch button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-family:inherit;font-size:12px;font-weight:700;transition:background .15s,color .15s;display:inline-flex}.brand-switch button .dot{border-radius:50%;flex:none;width:8px;height:8px}.brand-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.brand-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-switch button.mode-toggle{padding:7px 9px;font-size:14px}.brand-switch button.mode-toggle[aria-pressed=true]{background:var(--surface);color:var(--gold-500)}.empty-state .empty-art{color:var(--ink-300);justify-content:center;margin-bottom:10px;display:flex}.banner{border-radius:8px;margin-bottom:16px;padding:11px 14px;font-size:13px}.banner-error{background:var(--danger-bg);color:var(--danger)}.banner-success{background:var(--success-bg);color:var(--success)}.banner-info{background:var(--surface-alt);color:var(--text-muted)}.login-shell{background:var(--sanctum-900);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-scene-layer{background-position:50% 30%;background-size:cover;position:absolute;inset:0}.login-scene-layer.photo{background-image:linear-gradient(180deg, #0a1e326b, #0f2d4626 45%, #143c5a80), linear-gradient(180deg, #2b7bc447, #2b7bc414), var(--login-photo,none)}.login-scene-layer.classic{background-image:radial-gradient(circle at 20% 20%,#d4af371f,#0000 40%),radial-gradient(circle at 80% 80%,#a3342c1f,#0000 40%)}:root[data-brand=classic] .login-scene-layer.photo,:root:not([data-brand=classic]) .login-scene-layer.classic{display:none}:root[data-brand=classic] .login-card{background:var(--surface);-webkit-backdrop-filter:none;border:1px solid var(--gold-400)}:root[data-brand=classic] .login-scene-credit{display:none}.login-theme-dock{z-index:2;position:absolute;top:20px;right:20px}.login-card{z-index:1;-webkit-backdrop-filter:blur(14px)saturate(140%);background:#ffffffd9;border:1px solid #fff9;border-radius:16px;width:380px;padding:34px 32px;position:relative;box-shadow:0 30px 60px -20px #12335066}.login-glyph{background:radial-gradient(circle at 35% 30%, #fff, var(--gold-400) 60%, var(--kumkum-500) 140%);width:56px;height:56px;color:var(--navy-ink);border:1px solid #fffc;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:24px;font-weight:700;display:flex}.login-scene-credit{z-index:1;color:#fffc;text-shadow:0 1px 3px #00000080;letter-spacing:.02em;font-size:10.5px;position:absolute;bottom:12px;left:16px}.checkbox-row{align-items:center;gap:8px;font-size:13px;display:flex}.divider{background:var(--border);height:1px;margin:18px 0}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:13.5px}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.content>*{animation:.25s ease-out page-in}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.banner{animation:.22s ease-out banner-in}@keyframes banner-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg, var(--surface-alt) 25%, var(--border) 50%, var(--surface-alt) 75%);background-size:200% 100%;border-radius:8px;animation:1.2s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;display:grid}.login-scene-layer.photo{animation:36s ease-in-out infinite alternate kenburns}@keyframes kenburns{0%{transform:scale(1)}to{transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){.content>*,.banner,.skeleton,.login-scene-layer.photo,.donut-arc{animation:none}}.dash-split{grid-template-columns:300px 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.dash-split{grid-template-columns:1fr}}.donut-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.donut-arc{animation:.9s ease-out donut-in}@keyframes donut-in{0%{stroke-dasharray:0 999}}.donut-pct{fill:var(--accent-strong);font-size:27px;font-weight:400;font-family:var(--serif)}.donut-sub{fill:var(--text-muted);font-size:11px;font-family:var(--sans)}.donut-legend{color:var(--text-muted);gap:16px;font-size:12.5px;display:flex}.donut-legend span{align-items:center;gap:6px;display:inline-flex}.donut-legend strong{color:var(--text)}.dash-map-link{text-align:center;margin-top:14px;font-size:13px;font-weight:600;text-decoration:none;display:block}.dash-map-link:hover{text-decoration:underline}.room-map-legend{color:var(--text-muted);flex-wrap:wrap;gap:18px;margin-bottom:16px;font-size:13px;display:flex}.room-map-legend-item{align-items:center;gap:7px;display:inline-flex}.room-map-legend-item strong{color:var(--text)}.room-map-dot{border-radius:50%;flex:none;width:10px;height:10px}.room-map-dot.available{background:#37a566}.room-map-dot.occupied{background:#d05348}.room-map-dot.expiring{background:#e5a13a}.room-map-dot.other{background:#9aa7b1}.room-map-layout{grid-template-columns:1fr 280px;align-items:start;gap:16px;display:grid}@media (width<=1000px){.room-map-layout{grid-template-columns:1fr}}.room-map-detail{position:sticky;top:12px}.room-map-floor-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.room-map-floor-head h3{font-size:17px}.room-map-floor-count{color:var(--text-muted);font-size:12.5px}.room-map-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;display:grid}.room-map-tile{cursor:pointer;text-align:left;border:1.5px solid #0000;border-radius:9px;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;font-family:inherit;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.room-map-tile:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.room-map-tile .room-no{font-size:13.5px;font-weight:700;line-height:1.2}.room-map-tile .room-cat{opacity:.8;text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.room-map-tile.available{color:#1d5c38;background:#e5f4eb;border-color:#bfe3cd}.room-map-tile.occupied{color:#7e2d26;background:#fbe9e7;border-color:#f0c8c3}.room-map-tile.expiring{color:#7a5416;background:#fdf3e0;border-color:#f0d9a8}.room-map-tile.other{background:var(--surface-alt);color:var(--text-muted);border-color:var(--border)}.room-map-tile.selected{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .18)}.room-map-skeleton-tile{height:52px}.room-map-detail-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.room-map-detail-no{font-family:var(--serif);color:var(--text);margin-bottom:6px;font-size:28px;font-weight:400}.room-map-state-chip{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11.5px;font-weight:700}.room-map-state-chip.available{color:#1d5c38;background:#e5f4eb}.room-map-state-chip.occupied{color:#7e2d26;background:#fbe9e7}.room-map-state-chip.expiring{color:#7a5416;background:#fdf3e0}.room-map-state-chip.other{background:var(--surface-alt);color:var(--text-muted)}.room-map-facts{flex-direction:column;gap:7px;margin:0;display:flex}.room-map-facts>div{justify-content:space-between;gap:12px;font-size:13px;display:flex}.room-map-facts dt{color:var(--text-muted)}.room-map-facts dd{color:var(--text);text-align:right;margin:0;font-weight:600}.receipt-overlay{z-index:60;background:#0a141e8c;justify-content:center;align-items:flex-start;padding:30px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.receipt-sheet{color:#241a15;background:#fffdf8;border:1px solid #e9dcbf;border-radius:10px;width:100%;max-width:460px;padding:28px 30px 22px;box-shadow:0 24px 60px -20px #00000080}.receipt-head{text-align:center}.receipt-glyph{color:#241a15;background:radial-gradient(circle at 35% 30%,#f7ecc8,#d4af37 70%);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 10px;font-size:20px;font-weight:700;display:flex}.receipt-name-telugu{color:#8a2620;margin-bottom:4px;font-size:11.5px}.receipt-name-english{font-family:var(--serif);color:#6e1c18;font-size:15.5px;line-height:1.35}.receipt-reg{color:#7a6a5c;margin-top:5px;font-size:10.5px}.receipt-rule{background:linear-gradient(90deg,#0000,#d4af37 20% 80%,#0000) top/100% 1px no-repeat,linear-gradient(90deg,#0000,#d4af37 35% 65%,#0000) bottom/100% 1px no-repeat;height:3px;margin:14px 0}.receipt-title-row{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.receipt-title-row h2{font-size:18px}.receipt-meta{text-align:right;color:#7a6a5c;font-size:11.5px}.receipt-lines{flex-direction:column;gap:7px;margin:0 0 16px;display:flex}.receipt-lines>div{border-bottom:1px dotted #e9dcbf;justify-content:space-between;gap:14px;padding-bottom:6px;font-size:13px;display:flex}.receipt-lines dt{color:#7a6a5c}.receipt-lines dd{text-align:right;margin:0;font-weight:600}.receipt-amount{text-align:center;background:#fbf6ea;border:1px solid #e9dcbf;border-radius:8px;margin-bottom:18px;padding:12px 14px}.receipt-amount .label{text-transform:uppercase;letter-spacing:.08em;color:#7a6a5c;font-size:11px}.receipt-amount .value{font-family:var(--serif);color:#8a2620;margin:2px 0;font-size:30px}.receipt-amount .words{color:#4a3a30;font-size:11.5px;font-style:italic}.receipt-foot{color:#7a6a5c;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;font-size:10.5px;display:flex}.receipt-foot .sign{text-align:center}.receipt-foot .sign-line{border-bottom:1px solid #b3a493;width:130px;height:28px;margin-bottom:4px}.receipt-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.receipt-print-opts{color:#4a3a30;align-items:center;gap:16px;font-size:12.5px;display:flex}.receipt-offset{align-items:center;gap:6px;display:inline-flex}.receipt-offset input{width:58px;padding:4px 6px}.receipt-print-hint{color:#7a6a5c;text-align:center;max-width:340px;font-size:11px}.receipt-sheet.stationery .receipt-head,.receipt-sheet.stationery .receipt-rule{opacity:.4}@media print{body *{visibility:hidden}.receipt-overlay{background:0 0;padding:0;position:static;overflow:visible}.receipt-sheet,.receipt-sheet *{visibility:visible}.receipt-sheet{width:100%;max-width:none;box-shadow:none;background:0 0;border:none;border-radius:0;position:absolute;top:0;left:0}.receipt-actions{display:none}.receipt-sheet.stationery{padding-top:var(--receipt-top,45mm)}.receipt-sheet.stationery .receipt-head,.receipt-sheet.stationery .receipt-rule{display:none}.receipt-sheet.stationery .receipt-amount{background:0 0}}
