@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap";:root{color:#0a1d37;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f6f8;font-family:Montserrat,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}#root{width:100%;min-height:100vh;overflow-x:hidden}img{max-width:100%;height:auto}:root{--navy:#0a1d37;--navy-hover:#132a4a;--navy-mid:#1a3358;--icon-blue:#3b82c4;--text-muted:#8b93a7;--text-soft:#5c6578;--border:#dce0e8;--border-strong:#c5cad6;--bg:#eef1f6;--bg-soft:#f7f8fb;--white:#fff;--success:#1a7a4c;--success-bg:#e6f4ec;--danger:#b33a3a;--danger-bg:#fceaea;--warn:#9a6b16;--warn-bg:#f8f0de;--sidebar:#0a1d37;--shadow:0 8px 24px #0a1d370f;--shadow-sm:0 2px 8px #0a1d370a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--navy);min-height:100vh;font-family:Montserrat,sans-serif;overflow-x:hidden}button,input,select,textarea{max-width:100%;font-family:inherit}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.login-page{background:#061224;justify-content:center;align-items:center;min-height:100vh;padding:36px 20px;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";opacity:.42;z-index:0;background:url(/login-bg.png) 50%/cover no-repeat;animation:1.1s loginBgIn;position:absolute;inset:0;transform:scale(1.02)}.login-page:after{content:"";z-index:0;background:radial-gradient(70% 55% at 50% 40%,#0a1d3740,#061224b8),linear-gradient(#06122459 0%,#061224a6 100%);position:absolute;inset:0}@keyframes loginBgIn{0%{opacity:0;transform:scale(1.06)}to{opacity:.42;transform:scale(1.02)}}.login-shell{z-index:1;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:440px;animation:.45s fadeUp;display:flex;position:relative}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border:1px solid #ffffff8c;width:100%;padding:0 36px 32px;position:relative;overflow:hidden;box-shadow:0 24px 48px #06122459,inset 0 2px #ffffff80}.login-accent{background:linear-gradient(90deg, var(--navy) 0%, var(--icon-blue) 55%, var(--navy) 100%);height:4px;margin:0 -36px 28px}.login-brand{text-align:center;border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:22px}.login-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--icon-blue);margin:0 0 10px;font-size:.68rem;font-weight:700}.login-brand h1{color:var(--navy);letter-spacing:.14em;font-size:2rem;font-weight:700;line-height:1.1}.login-divider{background:var(--navy);opacity:.35;width:42px;height:2px;margin:14px auto 12px;display:block}.login-brand p{color:var(--text-muted);margin:0;font-size:.88rem;font-weight:500;line-height:1.45}.login-powered{opacity:.35;-webkit-user-select:none;user-select:none;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex}.login-powered span{letter-spacing:.16em;text-transform:uppercase;color:#fff;font-size:.62rem;font-weight:700}.login-powered img{width:92px;height:auto;display:block}.input-wrap input.has-toggle{padding-right:44px}.input-wrap input.has-toggle::-ms-reveal{width:0;height:0;display:none}.input-wrap input.has-toggle::-ms-clear{width:0;height:0;display:none}.input-wrap input.has-toggle::-webkit-credentials-auto-fill-button{visibility:hidden;pointer-events:none;position:absolute;right:0}.input-wrap input.has-toggle::-webkit-strong-password-auto-fill-button{visibility:hidden;pointer-events:none;position:absolute;right:0}.input-toggle{color:var(--text-muted);cursor:pointer;z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex;position:absolute;right:10px}.input-toggle:hover{color:var(--navy)}.login-card .form-footer{gap:10px;margin-top:8px}.login-card .btn-primary,.login-card .btn-secondary{letter-spacing:.06em;text-transform:uppercase;border-radius:4px;flex:auto;gap:9px;height:56px;min-height:56px;font-size:.78rem;font-weight:700;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s,color .18s}.login-card .btn-secondary{background:var(--bg-soft);border:1px solid var(--border);color:var(--navy)}.login-card .btn-secondary:hover{border-color:var(--navy-mid);color:var(--navy);background:#fff;transform:translateY(-1px);box-shadow:0 4px 14px #0a1d3714}.login-card .btn-primary{background:linear-gradient(180deg, #143459 0%, var(--navy) 100%);color:#fff;border:1px solid #0000;box-shadow:0 8px 18px #0a1d3747}.login-card .btn-primary:hover:not(:disabled){background:linear-gradient(180deg, #1c446e 0%, var(--navy-hover) 100%);transform:translateY(-1px);box-shadow:0 10px 22px #0a1d3757}.login-card .btn-primary:active:not(:disabled),.login-card .btn-secondary:active{transform:translateY(0)}.login-card .btn-primary:active:not(:disabled){box-shadow:0 3px 10px #0a1d3733}.login-card .btn-primary:disabled{opacity:.55;box-shadow:none;transform:none}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field label{color:var(--navy);font-size:.88rem;font-weight:700}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .icon{color:var(--icon-blue);pointer-events:none;align-items:center;display:flex;position:absolute;left:14px}.input-wrap input,.input-wrap select{border:1px solid var(--border);background:var(--bg-soft);width:100%;height:48px;color:var(--navy);border-radius:2px;outline:none;padding:0 14px 0 44px;font-size:.9rem;transition:border-color .15s,background .15s}.input-wrap input::placeholder{color:var(--text-muted)}.input-wrap input:focus,.input-wrap select:focus{border-color:var(--icon-blue);background:var(--white)}.form-footer{border-top:1px solid var(--border);gap:12px;margin-top:6px;padding-top:22px;display:flex}.btn-secondary,.btn-primary{cursor:pointer;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:10px;height:56px;min-height:56px;font-size:.9rem;font-weight:700;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s,color .18s;display:inline-flex}.btn-secondary{background:var(--bg-soft);color:var(--navy);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--navy-mid);background:#fff;transform:translateY(-1px);box-shadow:0 4px 14px #0a1d3714}.btn-primary{background:linear-gradient(180deg, #143459 0%, var(--navy) 100%);color:var(--white);border:1px solid #0000;box-shadow:0 8px 18px #0a1d3747}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg, #1c446e 0%, var(--navy-hover) 100%);transform:translateY(-1px);box-shadow:0 10px 22px #0a1d3757}.btn-primary:active:not(:disabled),.btn-secondary:active{transform:translateY(0)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.message{text-align:center;border-radius:2px;margin-top:14px;padding:12px 14px;font-size:.85rem;font-weight:500;animation:.25s fadeUp}.message.ok{background:var(--success-bg);color:var(--success)}.message.err{background:var(--danger-bg);color:var(--danger)}.login-hint{text-align:center;color:var(--text-muted);margin-top:18px;font-size:.75rem}.dashboard{background:var(--bg);min-height:100dvh;display:block}.sidebar{background:linear-gradient(180deg, #0c223f 0%, var(--navy) 55%, #061224 100%);z-index:30;border-right:1px solid #ffffff0a;flex-direction:column;width:236px;height:100dvh;padding:24px 14px 16px;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar-brand{border-bottom:1px solid #ffffff1a;justify-content:center;align-items:center;margin-bottom:18px;padding:6px 8px 22px;display:flex;position:relative}.sidebar-close,.menu-toggle,.sidebar-backdrop{display:none}.sidebar-brand strong{color:var(--white);letter-spacing:.08em;text-transform:uppercase;font-size:1.15rem;font-weight:700}.sidebar-label{letter-spacing:.1em;text-transform:uppercase;color:#ffffff47;padding:0 12px 8px;font-size:.65rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:auto;gap:4px;min-height:0;display:flex;overflow-y:auto}.sidebar-footer{border-top:1px solid #ffffff1a;flex-direction:column;flex-shrink:0;align-items:stretch;gap:12px;margin-top:auto;padding:14px 4px 4px;display:flex}.nav-btn{color:#ffffff85;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:2px;align-items:center;gap:12px;width:100%;height:44px;padding:0 12px;font-size:.84rem;font-weight:600;transition:color .2s,background .2s;display:flex;position:relative}.nav-badge{background:var(--icon-blue);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:.68rem;font-style:normal;font-weight:700;display:inline-flex}.nav-btn .nav-icon{justify-content:center;align-items:center;transition:transform .35s;display:inline-flex}.nav-btn:hover{color:#ffffffe0;background:0 0}.nav-btn:hover .nav-icon{transform:rotate(18deg)}.nav-btn.active{color:#fff;box-shadow:none;background:0 0;font-weight:700}.nav-btn.active .nav-icon{color:var(--icon-blue);animation:.45s navIconSpin}@keyframes navIconSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.logout-btn{color:#ffffff8c;background:#ffffff0a;border:1px solid #ffffff1a;justify-content:center;gap:10px;height:42px}.logout-btn:hover{color:#ffb4b4;background:#b33a3a2e;border-color:#b33a3a59}.powered-by{box-shadow:none;-webkit-user-select:none;user-select:none;pointer-events:none;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px 8px 2px;display:flex}.powered-by-label{letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:.28;font-size:.58rem;font-weight:700}.powered-by-logo{width:96px;height:auto;box-shadow:none;opacity:.32;background:0 0;border:none;display:block}.dash-main{flex-direction:column;gap:16px;min-width:0;min-height:100dvh;margin-left:236px;padding:18px 22px 28px;animation:.35s fadeUp;display:flex}.topbar{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:2px;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.topbar-left{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.search-wrap{flex:1;max-width:340px;position:relative}.search-wrap .icon{color:var(--text-muted);display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-wrap input{border:1px solid var(--border);background:var(--bg-soft);width:100%;height:40px;color:var(--navy);border-radius:2px;outline:none;padding:0 12px 0 38px;font-size:.84rem}.search-wrap input:focus{border-color:var(--icon-blue);background:var(--white)}.live-clock{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.live-chip{background:var(--bg-soft);border:1px solid var(--border);align-items:center;gap:10px;min-width:0;padding:8px 12px 8px 8px;display:flex}.live-chip-icon{flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.live-chip-icon.time{color:var(--icon-blue);background:#3b82c41f}.live-chip-icon.date{color:var(--navy);background:#0a1d3714}.live-chip strong{color:var(--navy);font-variant-numeric:tabular-nums;font-size:.98rem;font-weight:700;line-height:1.15;display:block}.live-chip .live-date{text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:.82rem;overflow:hidden}.live-chip em{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:.66rem;font-style:normal;font-weight:600;display:block}.topbar-right{align-items:center;gap:12px;display:flex}.icon-btn{border:1px solid var(--border);background:var(--white);width:40px;height:40px;color:var(--navy);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn .dot{background:var(--icon-blue);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:8px}.alerts-wrap{position:relative}.alerts-panel{background:var(--white);border:1px solid var(--border);width:280px;box-shadow:var(--shadow);z-index:40;border-radius:2px;animation:.2s fadeUp;position:absolute;top:calc(100% + 8px);right:0}.alerts-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.alerts-head strong{font-size:.82rem;font-weight:700}.alerts-head button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;display:flex}.alerts-panel ul{max-height:220px;list-style:none;overflow-y:auto}.alerts-panel li{color:var(--text-soft);border-bottom:1px solid var(--border);padding:12px 14px;font-size:.78rem;line-height:1.4}.alerts-panel li:last-child{border-bottom:none}.toast{z-index:60;min-width:260px;max-width:min(420px,100vw - 32px);box-shadow:var(--shadow);border-radius:2px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;font-size:.85rem;font-weight:500;animation:.25s fadeUp;display:flex;position:fixed;bottom:22px;right:22px}.toast.ok{background:var(--success-bg);color:var(--success);border:1px solid #c6e6d4}.toast.err{background:var(--danger-bg);color:var(--danger);border:1px solid #f0c8c8}.toast button{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;display:flex}.modal-backdrop{z-index:70;background:#0a1d3773;justify-content:center;align-items:center;padding:20px;animation:.2s fadeUp;display:flex;position:fixed;inset:0}.modal-card{background:var(--white);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:2px;padding:24px}.modal-card h3{margin-bottom:10px;font-size:1.05rem;font-weight:700}.modal-card p{color:var(--text-soft);margin-bottom:20px;font-size:.88rem;line-height:1.5}.modal-actions{gap:10px;display:flex}.modal-actions .btn-secondary,.modal-actions .btn-primary{flex:1;height:42px}.topbar-user{border:1px solid var(--border);background:var(--bg-soft);border-radius:2px;align-items:center;gap:10px;padding:4px 10px 4px 4px;display:flex}.user-avatar{background:var(--navy);width:32px;height:32px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.topbar-user div{flex-direction:column;display:flex}.topbar-user strong{color:var(--navy);font-size:.8rem;font-weight:700;line-height:1.2}.topbar-user span{color:var(--text-muted);font-size:.68rem;font-weight:500}.dash-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.dash-header h1{letter-spacing:.04em;text-transform:uppercase;color:var(--navy);font-size:1.55rem;font-weight:700}.dash-header .greeting{color:var(--text-soft);margin-top:4px;font-size:.9rem}.header-actions{flex-wrap:wrap;gap:10px;display:flex}.btn-square{cursor:pointer;border:1px solid var(--border-strong);background:var(--white);height:42px;color:var(--navy);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.82rem;font-weight:700;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn-square:hover{background:var(--bg)}.btn-square.filled{background:var(--navy);border-color:var(--navy);color:var(--white);box-shadow:0 4px 12px #0a1d372e}.btn-square.filled:hover{background:var(--navy-hover)}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:2px;flex-direction:column;gap:10px;min-height:118px;padding:16px 18px;display:flex}.stat-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.stat-icon{background:var(--bg);width:36px;height:36px;color:var(--navy);border-radius:2px;justify-content:center;align-items:center;display:flex}.stat-icon.blue{color:var(--icon-blue);background:#3b82c41f}.stat-icon.green{background:var(--success-bg);color:var(--success)}.stat-icon.warn{background:var(--warn-bg);color:var(--warn)}.stat-card .label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:600}.stat-card .value{color:var(--navy);font-size:1.7rem;font-weight:700;line-height:1}.stat-card .hint{color:var(--text-muted);font-size:.72rem}.progress{background:var(--bg);border-radius:2px;height:5px;overflow:hidden}.progress>span{background:var(--navy);border-radius:2px;height:100%;display:block}.progress.blue>span{background:var(--icon-blue)}.progress.green>span{background:var(--success)}.dash-grid{grid-template-columns:1.55fr 1fr;align-items:stretch;gap:14px;display:grid}.dash-grid.three{grid-template-columns:1.2fr 1fr .95fr}.charts-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:14px;display:grid}.chart-card{min-width:0;height:100%}.chart-wide{width:100%}.chart-wrap{width:100%;min-height:240px}.chart-wrap-bar{min-height:260px;padding-top:4px}.section-card{background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:2px;flex-direction:column;height:100%;min-height:0;padding:16px 18px;display:flex}.section-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;display:flex}.section-head h2{letter-spacing:.04em;text-transform:uppercase;color:var(--navy);font-size:.88rem;font-weight:700}.section-head span{color:var(--text-muted);font-size:.72rem;font-weight:500}.chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--border);background:var(--bg-soft);height:30px;color:var(--text-soft);cursor:pointer;border-radius:2px;padding:0 12px;font-size:.74rem;font-weight:600}.chip.active{background:var(--navy);border-color:var(--navy);color:var(--white)}.rooms-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.room-cell{border:1px solid var(--border);text-align:center;background:var(--bg-soft);cursor:pointer;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;min-height:72px;padding:10px 8px;font-family:inherit;transition:transform .12s,border-color .12s,background .12s;display:flex}.room-cell:hover{border-color:var(--icon-blue);transform:translateY(-1px)}.room-cell.occupied{background:var(--navy);border-color:var(--navy);color:var(--white)}.room-cell.occupied:hover{background:var(--navy-hover);border-color:var(--navy-hover)}.room-cell .num{font-size:.9rem;font-weight:700}.room-cell .status{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.65rem;font-weight:600}.room-cell.occupied .status{color:#ffffffa6}.room-cell .guest-mini{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 4px;font-size:.68rem;font-weight:500;overflow:hidden}.guests-only{width:100%}.guests-only .guest-list-rich{max-width:100%}.rooms-module{flex-direction:column;gap:14px;animation:.35s fadeUp;display:flex}.rooms-hero{color:#fff;box-shadow:var(--shadow-sm);background:linear-gradient(120deg,#071628 0%,#0f2a4d 55%,#153a63 100%);border:1px solid #ffffff0f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.rooms-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#3b82c447,#0000 70%);border-radius:50%;width:220px;height:220px;position:absolute;top:-80px;right:-60px}.rooms-hero-main{z-index:1;align-items:center;gap:18px;min-width:0;display:flex;position:relative}.rooms-gauge{flex-shrink:0;width:78px;height:78px;position:relative}.rooms-gauge-svg{width:78px;height:78px;transform:rotate(-90deg)}.rooms-gauge-track,.rooms-gauge-value{fill:none;stroke-width:7px}.rooms-gauge-track{stroke:#ffffff1f}.rooms-gauge-value{stroke:#5aa6e0;stroke-linecap:round;transition:stroke-dashoffset .6s}.rooms-gauge-label{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rooms-gauge-label strong{letter-spacing:.01em;font-size:.95rem;font-weight:700;line-height:1}.rooms-gauge-label span{letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;margin-top:3px;font-size:.58rem;font-weight:600}.rooms-hero-main h3{letter-spacing:.04em;text-transform:uppercase;font-size:1.05rem;font-weight:700}.rooms-hero-main p{color:#ffffff9e;max-width:360px;margin-top:4px;font-size:.82rem;line-height:1.4}.rooms-hero-metrics{z-index:1;flex-wrap:wrap;gap:10px;display:flex;position:relative}.rooms-metric{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff12;border:1px solid #ffffff1a;min-width:88px;padding:12px 14px}.rooms-metric span{letter-spacing:.06em;text-transform:uppercase;color:#ffffff80;margin-bottom:4px;font-size:.68rem;display:block}.rooms-metric strong{font-size:1.35rem;font-weight:700;line-height:1}.rooms-metric.free strong{color:#9ad4b5}.rooms-metric.busy strong{color:#9ec5ea}.rooms-layout{grid-template-columns:1.45fr .9fr;align-items:start;gap:14px;display:grid}.rooms-side{flex-direction:column;gap:14px;display:flex}.rooms-side .form-footer,.panel-form .form-footer{flex-direction:column;gap:10px}.rooms-side .form-footer .btn-primary,.rooms-side .form-footer .btn-secondary,.panel-form .form-footer .btn-primary,.panel-form .form-footer .btn-secondary{flex:none;width:100%;height:56px;min-height:56px}.rooms-map-panel{min-height:420px}.rooms-empty-rich{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:42px 20px;display:flex}.rooms-empty-rich.compact{padding:24px 12px}.rooms-empty-icon{width:56px;height:56px;color:var(--icon-blue);background:#3b82c41f;place-items:center;margin-bottom:6px;display:grid}.rooms-empty-rich strong{color:var(--navy);font-size:.98rem}.rooms-empty-rich p{max-width:280px;color:var(--text-muted);font-size:.82rem;line-height:1.45}.rooms-zones{flex-direction:column;gap:16px;display:flex}.rooms-zone-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.rooms-live-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;display:grid}.room-tile{border:1px solid var(--border);background:var(--bg-soft);text-align:left;cursor:pointer;flex-direction:column;gap:6px;min-height:96px;padding:12px;font-family:inherit;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;animation:.35s both fadeUp;display:flex}.room-tile:hover{border-color:var(--icon-blue);transform:translateY(-3px);box-shadow:0 10px 20px #0a1d3714}.room-tile.is-busy{background:var(--navy);border-color:var(--navy);color:#fff}.room-tile.is-busy:hover{background:var(--navy-hover);border-color:var(--navy-hover)}.room-tile-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.room-tile-top strong{font-size:1.05rem;font-weight:700}.room-dot{border-radius:50%;width:8px;height:8px}.room-dot.free{background:var(--success);box-shadow:0 0 0 4px #1a7a4c26}.room-dot.busy{background:#7eb6e8;box-shadow:0 0 0 4px #7eb6e833}.room-tile-type{color:var(--text-muted);font-size:.72rem;font-weight:600}.room-tile.is-busy .room-tile-type{color:#ffffff8c}.room-tile-foot{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:auto;font-size:.72rem;font-weight:500;overflow:hidden}.room-tile.is-busy .room-tile-foot{color:#ffffffbf}.rooms-footer-bar{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:12px;display:flex}.rooms-footer-bar p{color:var(--text-muted);font-size:.72rem}.rooms-list-card{max-height:460px;overflow:auto}.room-admin-list{flex-direction:column;gap:10px;list-style:none;display:flex}.room-card{border:1px solid var(--border);background:#fff;justify-content:space-between;align-items:stretch;gap:12px;padding:14px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.room-card:before{content:"";width:3px;position:absolute;top:0;bottom:0;left:0}.room-card.is-free:before{background:var(--success)}.room-card.is-busy:before{background:var(--icon-blue)}.room-card:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 8px 18px #0a1d370f}.room-card-body{flex:1;min-width:0;padding-left:6px}.room-card-title-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.room-card-number{color:var(--navy);letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.room-status-pill{letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;padding:4px 8px;font-size:.66rem;font-weight:700}.room-status-pill.free{background:var(--success-bg);color:var(--success)}.room-status-pill.busy{color:#2f6ea3;background:#3b82c424}.room-card-meta{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.room-card-meta span{color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--border);padding:3px 8px;font-size:.72rem;font-weight:600}.room-card-guest{color:var(--navy);align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:inline-flex}.room-card-guest.muted{color:var(--text-muted);font-weight:500}.room-card-actions{flex-direction:column;justify-content:center;gap:6px;display:flex}.room-icon-btn{border:1px solid var(--border);background:var(--bg-soft);width:34px;height:34px;color:var(--navy);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.room-icon-btn:hover{border-color:var(--icon-blue);color:var(--icon-blue);background:#fff}.room-icon-btn.danger{color:var(--danger)}.room-icon-btn.danger:hover:not(:disabled){background:var(--danger-bg);border-color:#e2b4b4}.room-icon-btn:disabled{opacity:.4;cursor:not-allowed}.tile-btn.danger{color:var(--danger);border-color:#e2b4b4}.tile-btn.danger:hover:not(:disabled){background:var(--danger-bg)}.tile-btn:disabled{opacity:.45;cursor:not-allowed}.rooms-hint{color:var(--text-muted);margin-top:10px;font-size:.72rem;font-weight:500}@media (width<=1100px){.rooms-layout{grid-template-columns:1fr}}.guest-list-rich{flex-direction:column;flex:1;gap:10px;min-height:0;list-style:none;display:flex;overflow-y:auto}.guest-card{border:1px solid var(--border);background:#fff;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid;position:relative;overflow:hidden}.guest-card:before{content:"";width:3px;position:absolute;top:0;bottom:0;left:0}.guest-card.is-in:before{background:var(--success)}.guest-card.is-out:before{background:var(--text-muted)}.guest-card:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 8px 18px #0a1d370f}.guest-avatar{color:#fff;letter-spacing:.02em;background:linear-gradient(145deg,#123255,#0a1d37);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:.8rem;font-weight:700;display:flex}.guest-card-body{min-width:0}.guest-card-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.guest-card-name{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;overflow:hidden}.guest-status-pill{letter-spacing:.04em;text-transform:uppercase;flex-shrink:0;padding:4px 8px;font-size:.66rem;font-weight:700}.guest-status-pill.in{background:var(--success-bg);color:var(--success)}.guest-status-pill.out{color:var(--text-muted);background:#eef0f3}.guest-card-meta{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.guest-card-meta span{color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--border);align-items:center;gap:5px;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.guest-card-times{color:var(--text-muted);font-size:.74rem;line-height:1.4}.guest-card-note{color:var(--text-soft);margin-top:6px;font-size:.74rem;font-style:italic}.guest-checkout-btn{background:linear-gradient(180deg, #143459 0%, var(--navy) 100%);color:#fff;letter-spacing:.03em;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;gap:8px;height:44px;min-height:44px;padding:0 16px;font-size:.78rem;font-weight:700;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex;box-shadow:0 6px 14px #0a1d3738}.guest-checkout-btn:hover{background:linear-gradient(180deg, #1c446e 0%, var(--navy-hover) 100%);transform:translateY(-1px);box-shadow:0 8px 18px #0a1d374d}.guest-checkout-btn:active{transform:translateY(0);box-shadow:0 3px 10px #0a1d3733}.guest-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.tile-btn{border:1px solid var(--border-strong);background:var(--white);height:36px;min-height:36px;color:var(--navy);cursor:pointer;white-space:nowrap;border-radius:4px;padding:0 14px;font-size:.74rem;font-weight:700;transition:transform .15s,background .15s,border-color .15s}.tile-btn:hover{background:var(--bg);border-color:var(--navy-mid);transform:translateY(-1px)}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:36px 16px;font-size:.85rem;display:flex}.empty-state strong{color:var(--navy);margin-bottom:6px;font-size:.95rem;display:block}.activity-list{flex-direction:column;flex:1;gap:0;min-height:180px;list-style:none;display:flex;position:relative;overflow-y:auto}.activity-list:before{content:"";background:var(--border);width:1px;position:absolute;top:18px;bottom:18px;left:27px}.activity-item{grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:10px 4px;display:grid;position:relative}.activity-icon{background:var(--navy);width:34px;height:34px;color:var(--white);z-index:1;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.activity-icon.out{background:var(--bg);color:var(--navy);border:1px solid var(--border)}.activity-item strong{color:var(--navy);font-size:.84rem;font-weight:700;display:block}.activity-item p{color:var(--text-muted);margin-top:3px;font-size:.72rem;line-height:1.4}.badge{letter-spacing:.03em;text-transform:uppercase;border-radius:2px;align-items:center;padding:4px 8px;font-size:.66rem;font-weight:700;display:inline-flex}.badge.in{background:var(--success-bg);color:var(--success)}.badge.out{color:var(--text-muted);background:#eef0f3}.summary-box{flex-direction:column;gap:10px;display:flex}.summary-row{border:1px solid var(--border);background:var(--bg-soft);border-radius:2px;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.summary-row strong{font-size:.95rem;font-weight:700}.summary-row span{color:var(--text-muted);font-size:.75rem}.panel-form .mode-tabs,.mode-tabs.ios-seg{background:#e7eaef;border:none;border-radius:999px;gap:4px;margin-bottom:18px;padding:4px;display:flex;overflow:visible}.panel-form .mode-tabs button,.mode-tabs.ios-seg button{color:var(--text-soft);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:8px;padding:11px 14px;font-size:.84rem;font-weight:700;transition:background .2s,color .2s,box-shadow .2s,transform .15s;display:inline-flex}.panel-form .mode-tabs button+button,.mode-tabs.ios-seg button+button{border-left:none}.panel-form .mode-tabs button.active,.mode-tabs.ios-seg button.active{background:var(--white);color:var(--navy);box-shadow:0 2px 8px #0a1d371f}.panel-form .mode-tabs button:not(.active):hover,.mode-tabs.ios-seg button:not(.active):hover{color:var(--navy)}.notifs-module{flex-direction:column;gap:14px;animation:.35s fadeUp;display:flex}.notifs-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.notifs-summary-card{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff;padding:14px 16px}.notifs-summary-card span{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:.68rem;font-weight:700;display:block}.notifs-summary-card strong{color:var(--navy);font-size:1.4rem;line-height:1}.notif-list{flex-direction:column;gap:8px;list-style:none;display:flex}.notif-item{border:1px solid var(--border);cursor:pointer;background:#fff;grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative}.notif-item:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 8px 16px #0a1d370d}.notif-item.is-unread{background:#f7faff;border-color:#c9daf0}.notif-item.pending{cursor:default;background:#fff8f0;border-color:#f0d9b8}.notif-item.is-read{opacity:.78}.notif-icon{flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.notif-icon.in{background:var(--success-bg);color:var(--success)}.notif-icon.out{color:var(--navy);background:#eef0f3}.notif-icon.room{color:var(--icon-blue);background:#3b82c41f}.notif-icon.alert{background:var(--warn-bg);color:var(--warn)}.notif-body{min-width:0}.notif-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.notif-top strong{color:var(--navy);font-size:.9rem}.notif-top time{color:var(--text-muted);white-space:nowrap;font-size:.7rem}.notif-body p{color:var(--text-soft);font-size:.8rem;line-height:1.4}.notif-tag{letter-spacing:.04em;text-transform:uppercase;background:var(--warn-bg);color:var(--warn);padding:3px 8px;font-size:.66rem;font-weight:700}.notif-dot{background:var(--icon-blue);border-radius:50%;width:8px;height:8px;margin-top:8px}.legend{flex-wrap:wrap;gap:14px;margin-top:12px;display:flex}.legend span{color:var(--text-muted);align-items:center;gap:6px;font-size:.72rem;font-weight:500;display:inline-flex}.legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.legend .occ{background:var(--navy)}.legend .free{background:var(--bg-soft);border:1px solid var(--border)}@media (width<=1200px){.dash-grid.three{grid-template-columns:1fr 1fr}.dash-grid.three .span-full{grid-column:1/-1}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.charts-row{grid-template-columns:1fr}.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=980px){.dashboard{background:var(--bg)}.dash-main{margin-left:0}.sidebar-backdrop{z-index:40;opacity:0;pointer-events:none;cursor:pointer;background:#0612248c;border:none;margin:0;padding:0;transition:opacity .25s;display:block;position:fixed;inset:0}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.sidebar{z-index:50;width:min(280px,86vw);height:100dvh;box-shadow:none;transition:transform .28s;position:fixed;top:0;left:0;transform:translate(-105%)}.sidebar.is-open{transform:translate(0);box-shadow:16px 0 40px #06122459}.sidebar-brand{justify-content:space-between;padding-right:4px}.sidebar-close{color:#fff;cursor:pointer;background:#ffffff14;border:none;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.sidebar-close:hover{background:#ffffff24}.menu-toggle{border:1px solid var(--border);background:var(--bg-soft);width:40px;height:40px;color:var(--navy);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.menu-toggle:hover{border-color:var(--icon-blue);color:var(--icon-blue)}.dash-main{width:100%;padding:14px 14px 24px}.dash-grid,.dash-grid.three{grid-template-columns:1fr}.live-clock,.topbar-user div{display:none}.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.notifs-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-wrap:wrap}}@media (width<=720px){.login-page{justify-content:center;align-items:center;min-height:100dvh;padding:24px 14px 36px}.login-shell{margin-top:10vh}.login-card{padding:0 22px 24px}.login-accent{margin:0 -22px 22px}.login-brand h1{font-size:1.65rem}.form-footer{flex-direction:column;gap:10px}.form-footer .btn-primary,.form-footer .btn-secondary,.login-card .btn-primary,.login-card .btn-secondary,.rooms-side .form-footer .btn-primary,.rooms-side .form-footer .btn-secondary,.panel-form .form-footer .btn-primary,.panel-form .form-footer .btn-secondary,.modal-actions .btn-primary,.modal-actions .btn-secondary{flex:none;width:100%;height:58px;min-height:58px;font-size:.9rem}.stats{grid-template-columns:1fr 1fr}.rooms-hero{padding:16px}.rooms-hero-main,.rooms-hero-metrics{width:100%}.rooms-metric{flex:1;min-width:0}.rooms-live-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.room-card{flex-direction:column;align-items:stretch}.guest-card{grid-template-columns:auto 1fr}.guest-actions{flex-direction:row;grid-column:1/-1;justify-content:stretch;align-items:center}.guest-checkout-btn,.guest-actions .tile-btn{flex:1;grid-column:1/-1;justify-content:center;width:100%;height:48px;min-height:48px}.notif-item{grid-template-columns:auto 1fr}.notif-dot{margin:0;position:absolute;top:14px;right:14px}.notif-top{flex-direction:column;align-items:flex-start}.notif-top time{white-space:normal}.panel-form .mode-tabs button,.mode-tabs.ios-seg button{gap:6px;padding:10px 8px;font-size:.78rem}.modal-card{margin:16px}.modal-actions{flex-direction:column}.modal-actions .btn-secondary,.modal-actions .btn-primary{width:100%}}@media (width<=560px){.dash-main{gap:12px;padding:10px 10px 20px}.toast{min-width:0;max-width:none;bottom:10px;left:10px;right:10px}.topbar{flex-wrap:wrap;gap:10px;padding:10px}.topbar-left{width:100%}.search-wrap{flex:1;max-width:none}.topbar-right{margin-left:auto}.dash-header h1{font-size:1.25rem}.dash-header .greeting{font-size:.8rem}.header-actions,.header-actions .btn-square{width:100%}.stats{grid-template-columns:1fr}.stat-card .value{font-size:1.45rem}.section-card{padding:14px}.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rooms-hero-main{flex-direction:column;align-items:flex-start}.rooms-hero-metrics{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.notifs-summary{grid-template-columns:1fr 1fr}.notifs-summary-card strong{font-size:1.2rem}.chart-wrap,.chart-wrap-bar{min-height:220px}.chips{gap:6px}.chip{height:28px;padding:0 10px;font-size:.7rem}.btn-square{height:40px;padding:0 14px;font-size:.78rem}}@media (width<=380px){.rooms-hero-metrics,.notifs-summary{grid-template-columns:1fr}.rooms-grid{grid-template-columns:1fr 1fr}.login-brand h1{font-size:1.45rem}}
