:root{font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;color:#26384d;background:#f3f5fa;font-size:14px}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select{font:inherit}button{padding:10px 16px;border:1px solid #ccd4e0;border-radius:4px;background:#fff;color:#314560;cursor:pointer}button:hover{border-color:#5576a8}button:disabled{opacity:.5;cursor:wait}.primary{background:#1593ad;color:white;border-color:#1593ad}.danger{background:#ca5a5f;color:white;border-color:#ca5a5f}input,select{padding:10px;border:1px solid #cfd5e0;border-radius:4px;max-width:100%;background:#fff;color:#26384d}label{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}h1,h2,h3{margin:0 0 18px}p{line-height:1.7}.error{color:#b33340}.subtle{color:#6c7b90;font-size:12px}.login-panel{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,#0e2346,#294a7e)}.login-panel form{width:min(460px,94vw);background:white;border-radius:10px;padding:36px;box-shadow:0 15px 50px #0003}.login-panel button{width:100%}.wordmark{color:#ff3b30;font-size:30px;font-weight:bold;margin-bottom:28px}.wordmark span{color:#193052;font-size:25px;margin-left:14px}.brand{height:88px;display:flex;align-items:center;gap:12px;padding:18px;background:#102347;color:white}.brand b{font-size:25px;color:#ff3b30}.brand>span{font-size:25px;font-weight:bold}.brand small{display:block;font-size:10px;letter-spacing:1px;margin-top:8px}aside{position:fixed;inset:0 auto 0 0;width:220px;background:#142b54;color:#c4cfe2;display:flex;flex-direction:column}nav{overflow-y:auto;flex:1;padding:12px 0}nav button{display:block;width:100%;text-align:left;border:0;border-radius:0;background:transparent;color:inherit;padding:18px 24px}nav button.active{background:#304e7c;color:white;border-left:4px solid #ffd767;padding-left:20px}.side-foot{padding:22px;font-size:11px;line-height:1.8;color:#8fa6c8}.shell{margin-left:220px}header{position:sticky;top:0;min-height:88px;display:flex;align-items:center;gap:20px;background:#102347;padding:14px 24px;color:white;z-index:2}header>div{flex:1}header b{font-size:20px}header small{display:block;color:#acbdd8;margin-top:8px}.store-label{font-size:11px;margin:0;min-width:150px;gap:4px}#identity{font-size:12px}.scope-note{background:#fff8df;color:#756236;padding:12px 25px;font-size:12px;line-height:1.7;border-bottom:1px solid #e9dfbd}main{padding:26px;min-height:calc(100vh - 176px)}footer{position:sticky;bottom:0;background:#eef1f6;border-top:1px solid #cbd1df;padding:10px 24px;display:flex;justify-content:space-between;font-size:12px;color:#60718b}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px}.toolbar h2{flex:1;margin:0}.toolbar label{margin:0}.panel{background:white;padding:22px;border:1px solid #dde3ed;border-radius:5px;margin-bottom:22px}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.room{padding:0;overflow:hidden;text-align:left;height:145px;border:0;background:#8dd8e7;color:#234256;border-radius:5px;position:relative}.room .room-type{display:block;background:#354359;color:white;font-size:12px;padding:7px 10px}.room strong{display:block;font-size:26px;padding:12px 12px 4px}.room span:not(.room-type){display:block;padding:0 12px;font-size:12px;line-height:1.6}.room.occupied{background:#a5c67b}.room.reserved{background:#f3d395}.room.dirty{background:#d6d8dd}.room.maintenance{background:#e3b4b6}.room.disabled{opacity:.45}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:22px}.metric{background:#fff;padding:18px;border:1px solid #dce3ed;border-top:3px solid #5b84ba;border-radius:4px}.metric label{color:#687c96;margin:0 0 12px;font-size:12px}.metric strong{font-size:25px}.table-wrap{overflow:auto}table{border-collapse:collapse;min-width:100%;white-space:nowrap}th,td{padding:12px 14px;border-bottom:1px solid #e0e5ed;text-align:left;font-size:13px}th{background:#edeef7;color:#5e6e8a}td button{padding:6px 10px;margin-right:5px}tbody tr:nth-child(even){background:#f8faff}.empty{padding:50px;text-align:center;color:#8b96a7}.tag{font-size:11px;padding:4px 7px;background:#e9eef5;border-radius:3px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 22px}.form-grid .wide{grid-column:1/-1}dialog{width:min(800px,94vw);border:0;padding:0;border-radius:7px;max-height:90vh;color:inherit;box-shadow:0 18px 60px #0005}dialog::backdrop{background:#0c1d37a0}.modal-head{padding:18px 24px;border-bottom:1px solid #dbe0ea;display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:19px;margin:0}.modal-head button{font-size:23px;border:0;padding:0 4px}#modalBody{padding:24px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.notice{font-size:12px;color:#6b7c92;background:#f0f4fa;padding:12px;border-left:3px solid #7f9dc9}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:20px 0}.detail-grid label{font-size:11px;color:#74839a;margin-bottom:6px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}#toast{position:fixed;bottom:45px;left:50%;transform:translateX(-50%);background:#142b54;color:white;padding:12px 22px;border-radius:4px;z-index:20;max-width:85vw}.device-card{padding:22px;border:1px dashed #bdc9db;background:#fafcff;margin-bottom:16px}.device-card b{display:block;margin-bottom:12px}@media(max-width:900px){aside{width:170px}.shell{margin-left:170px}.brand{gap:6px;padding:12px}.brand b{font-size:20px}.brand>span{font-size:20px}header{flex-wrap:wrap;gap:10px}header>div{flex-basis:100%}main{padding:16px}.form-grid{grid-template-columns:1fr}}@media print{aside,header,footer,.scope-note,#pageTools,button,.toolbar input,.toolbar label{display:none!important}.shell{margin:0}main{padding:0}body{background:#fff;color:#000}dialog{position:absolute;max-height:none;overflow:visible;box-shadow:none;width:100%;inset:0}.modal-head{border:0}dialog::backdrop{background:white}.panel{border:0}.metrics{break-inside:avoid}table{white-space:normal}}

@media print{body:has(dialog[open]) #workspace{display:none!important}dialog[open]{display:block!important}.modal-head button{display:none!important}}
/* Keep sidebar scrolling independent of the page and preserve the brand area. */
#workspace{--sidebar-width:260px;--brand-height:104px}#workspace.sidebar-collapsed{--sidebar-width:76px}#workspace aside{width:var(--sidebar-width);height:100dvh;overflow:hidden}#workspace .brand{height:var(--brand-height);min-height:var(--brand-height);flex-shrink:0;padding:18px;gap:10px}#workspace .brand b{font-size:27px;letter-spacing:-1px}#workspace .brand>span{font-size:25px;white-space:nowrap}#workspace .brand small{font-size:10px;letter-spacing:1px}#workspace .shell{margin-left:var(--sidebar-width);min-width:0}#workspace header{display:block;padding:0;min-height:0;width:100%;box-shadow:0 2px 5px #13284b24}#workspace .top-row{display:flex;align-items:center;height:var(--brand-height);gap:12px;min-width:0;padding:9px 16px 8px 10px}.sidebar-toggle{flex:0 0 40px;padding:10px 7px;font-size:25px;background:transparent;color:#a9bde1;border-color:transparent}.sidebar-toggle:hover{background:#294a7c;color:white}#topNav{display:flex;flex:1;align-items:stretch;gap:7px;overflow-x:auto;overflow-y:hidden;min-width:0;padding:0 0 5px;scrollbar-width:thin;scrollbar-color:#8395b5 #122b52}#topNav button{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 112px;width:auto;text-align:center;gap:9px;padding:9px 7px;border:1px solid #8a9abc;border-radius:7px 7px 0 0;background:linear-gradient(#8294b2 0%,#17355e 28%,#10264c 80%,#284672 100%);color:#fff;font-size:14px;white-space:nowrap;box-shadow:inset 0 0 6px #fff6}#topNav button svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#topNav button:hover{background:linear-gradient(#96a9cc,#305482 40%,#17355e)}#topNav button.active{background:linear-gradient(#fff0b3,#ffdb5b 40%,#ffc928);border-color:#ffe394;color:#733500;box-shadow:inset 0 0 6px #fff9}#workspace .context-row{display:flex;align-items:center;gap:20px;min-height:76px;padding:12px 24px;background:#17355b;border-top:1px solid #355177}.page-context{flex:1;min-width:120px}.page-context b{font-size:18px}.page-context small{font-size:11px;margin-top:5px}#workspace .context-row #identity{max-width:310px;line-height:1.6}#nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0;scrollbar-width:thin;scrollbar-color:#617caa transparent}#nav .nav-group{border-bottom:1px solid #ffffff09}#nav summary{display:flex;align-items:center;gap:12px;padding:19px 21px;background:#284c7e;color:#d7e1f2;cursor:pointer;list-style:none;user-select:none;font-size:16px;font-weight:600}#nav summary::-webkit-details-marker{display:none}#nav summary:hover{background:#345a90}#nav .group-symbol{display:flex;align-items:center;flex-shrink:0}#nav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#nav .chevron{margin-left:auto;font-size:25px;line-height:1;transition:transform .15s}#nav details[open] .chevron{transform:rotate(90deg)}#nav .nav-children{padding:6px 0 8px}#nav button{display:flex;align-items:center;gap:10px;padding:15px 18px 15px 32px;font-size:14px;border:0;border-left:4px solid transparent;min-height:48px}#nav button svg{width:17px;height:17px;opacity:.8}#nav button:hover{background:#213f6d;color:white}#nav button.active{border-left-color:#ffdc64;background:#304e7c;color:white}#nav summary:focus-visible,#nav button:focus-visible,#topNav button:focus-visible,.sidebar-toggle:focus-visible{outline:2px solid #ffdc64;outline-offset:-3px}#workspace .side-foot{flex-shrink:0;line-height:1.8;padding:16px 22px;background:#142b54}#workspace.sidebar-collapsed .brand{padding:10px 4px;justify-content:center}#workspace.sidebar-collapsed .brand b{font-size:15px;letter-spacing:-.8px}#workspace.sidebar-collapsed .brand>span,#workspace.sidebar-collapsed #nav .nav-label,#workspace.sidebar-collapsed #nav .chevron,#workspace.sidebar-collapsed .side-foot{display:none}#workspace.sidebar-collapsed #nav summary{justify-content:center;padding:17px 5px}#workspace.sidebar-collapsed #nav button{justify-content:center;padding:14px 5px;border-left-width:3px}#workspace.sidebar-collapsed #nav button svg{width:20px;height:20px;opacity:1}@media(max-width:1100px){#workspace{--sidebar-width:228px}#workspace.sidebar-collapsed{--sidebar-width:76px}#workspace .brand{padding:12px;gap:8px}#workspace .brand b{font-size:24px}#workspace .brand>span{font-size:23px}#workspace .context-row{gap:12px;padding:10px 16px}#workspace .context-row #identity{max-width:180px}#topNav button{flex-basis:104px;font-size:13px}}@media(max-width:700px){#workspace{--sidebar-width:184px}#workspace.sidebar-collapsed{--sidebar-width:64px}#workspace .brand{padding:10px;gap:7px}#workspace .brand b{font-size:19px}#workspace .brand>span{font-size:20px}#workspace .brand small{font-size:8px;letter-spacing:0}#workspace .context-row{flex-wrap:wrap;gap:10px}#workspace .context-row .page-context{flex-basis:100%}#workspace .context-row .store-label{min-width:0;flex:1}#workspace .context-row #identity{max-width:none}#nav summary{padding:17px 12px}#nav button{padding-left:18px;font-size:12px}#topNav button{flex-basis:100px}.scope-note{padding:10px 14px}}@media(prefers-reduced-motion:reduce){#nav .chevron{transition:none}}@media print{#topNav{display:none!important}#workspace .shell{margin:0!important}}

/* Compact room overview only; finance metrics and navigation keep their sizes. */
.room-metrics{grid-template-columns:repeat(4,minmax(0,160px));gap:8px;margin-bottom:14px;max-width:664px}
.room-metrics .metric{padding:9px 12px;border-top-width:3px;min-width:0}
.room-metrics .metric label{font-size:12px;margin-bottom:5px;line-height:1.4}
.room-metrics .metric strong{font-size:22px;line-height:1.15}
.compact-room-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,118px),1fr));gap:8px}
.compact-room-grid .room{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:118px;min-width:0}
.compact-room-grid .room .room-type{font-size:12px;line-height:18px;padding:5px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.compact-room-grid .room strong{font-size:23px;line-height:28px;padding:6px 9px 2px}
.compact-room-grid .room span:not(.room-type){padding:0 9px;font-size:11px;line-height:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.room-metrics{grid-template-columns:repeat(2,minmax(0,160px))}.compact-room-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,112px),1fr))}}

/* v0.18.1 homepage, using the authenticated store and user. */
#nav .nav-home{padding:18px 22px;font-size:15px;border-bottom:1px solid #ffffff15}
.home-welcome{text-align:center;border:1px solid #e0e7f1;border-radius:5px}
.home-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:22px 0}
.home-links button{min-height:94px;text-align:left;padding:18px;background:white;color:#557799;border:1px solid #d9e3f0}
.home-links svg{float:left;width:30px;height:30px;margin:4px 14px 15px 0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.home-links b,.home-links small{display:block}.home-links small{font-size:11px;margin-top:10px;color:#7d90ab}
@media(max-width:1050px){.home-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.home-links{grid-template-columns:1fr}}
/* Homepage brand animation: decorative only; business data and navigation unchanged. */
.home-brand-animated{position:relative;isolation:isolate;overflow:clip;min-height:244px;padding:32px 24px 42px;background:linear-gradient(120deg,#f9fbff,#edf4ff 55%,#fff7f6)}
.home-brand-animated:before,.home-brand-animated:after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;width:320px;height:320px;filter:blur(5px);opacity:.55;animation:shycentAmbient 14s ease-in-out infinite alternate}
.home-brand-animated:before{left:5%;top:-170px;background:radial-gradient(circle,#ccdfff,transparent 70%)}
.home-brand-animated:after{right:3%;bottom:-210px;background:radial-gradient(circle,#ffd7d1,transparent 70%);animation-delay:-7s}
.home-brand-content{animation:shycentWelcome .65s ease-out both}
.home-shycent-wordmark{position:relative;display:inline-block;font:700 clamp(32px,4vw,52px)/1.15 Arial,sans-serif;color:#ff3b30;letter-spacing:-1.5px}
.home-shycent-wordmark:after{content:"";position:absolute;left:16%;right:16%;height:2px;bottom:-9px;background:linear-gradient(90deg,transparent,#ff7d72,transparent);transform-origin:center;animation:shycentUnderline 5s ease-in-out infinite}
.home-brand-animated h2{font-size:clamp(21px,2.2vw,29px);margin:22px 0 14px;color:#3b5680;letter-spacing:2px}
.home-brand-animated p{font-size:12px;margin:9px 0;color:#8292a8}
.home-brand-animated .home-current-hotel{font-size:13px;color:#617893}
.home-motion-toggle{position:absolute;bottom:12px;right:14px;font-size:11px;padding:5px 9px;background:#ffffffb3;color:#6b7f97;border:1px solid #dbe5f0;border-radius:4px}
.home-animation-paused .home-brand-content,.home-animation-paused:before,.home-animation-paused:after,.home-animation-paused .home-shycent-wordmark:after{animation-play-state:paused!important}
@keyframes shycentWelcome{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes shycentAmbient{from{transform:translate(-18px,0) scale(.9)}to{transform:translate(35px,22px) scale(1.15)}}
@keyframes shycentUnderline{0%,100%{transform:scaleX(.6);opacity:.45}50%{transform:scaleX(1);opacity:.85}}
@media(prefers-reduced-motion:reduce){.home-brand-content,.home-brand-animated:before,.home-brand-animated:after,.home-shycent-wordmark:after{animation:none!important}}
@media print{.home-motion-toggle{display:none!important}.home-brand-content,.home-brand-animated:before,.home-brand-animated:after,.home-shycent-wordmark:after{animation:none!important}}

/* Stronger homepage motion, confined to the brand panel. */
.home-brand-content{animation:shycentWelcome 1s cubic-bezier(.16,1,.3,1) both}
.home-brand-animated:before,.home-brand-animated:after{width:470px;height:470px;opacity:.85;filter:blur(2px);animation:shycentAmbient 7s ease-in-out infinite alternate}
.home-brand-animated:before{left:5%;top:-250px;background:radial-gradient(circle,#abcaff 0%,#d6e5ff55 48%,transparent 72%)}
.home-brand-animated:after{right:5%;bottom:-300px;background:radial-gradient(circle,#ffb3a8 0%,#ffe0d755 48%,transparent 72%);animation-delay:-3.5s}
.home-shycent-wordmark{animation:shycentBrandFloat 3.8s ease-in-out infinite;text-shadow:0 4px 18px #ff3b3025}
.home-shycent-wordmark:after{left:-12%;right:-12%;height:3px;bottom:-10px;animation:shycentUnderline 2.6s ease-in-out infinite;background:linear-gradient(90deg,transparent,#ff9e83,#ff3b30,#ff9e83,transparent)}
.home-brand-animated h2{animation:shycentTitleGlow 4s ease-in-out infinite}
.home-animation-paused .home-shycent-wordmark,.home-animation-paused h2{animation-play-state:paused!important}
@keyframes shycentWelcome{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes shycentAmbient{from{transform:translate(-90px,-12px) scale(.8)}to{transform:translate(140px,45px) scale(1.25)}}
@keyframes shycentBrandFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.035)}}
@keyframes shycentUnderline{0%,100%{transform:scaleX(.35);opacity:.35}50%{transform:scaleX(1);opacity:1}}
@keyframes shycentTitleGlow{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 18px #5287c84d}}
@media(prefers-reduced-motion:reduce){.home-brand-content,.home-brand-animated:before,.home-brand-animated:after,.home-shycent-wordmark,.home-shycent-wordmark:after,.home-brand-animated h2{animation:none!important}}
@media print{.home-shycent-wordmark,.home-brand-animated h2{animation:none!important}}

.home-animation-paused .home-brand-content{animation:none!important;opacity:1;transform:none}

/* Hotel atmosphere login; scoped to the signed-out screen. */
.hotel-login{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:clip;background:#172624;color:#fff;padding:56px clamp(28px,7vw,120px) 70px}
.hotel-login .login-backdrop{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#071b1a8c 0%,#13262526 53%,#20160e35 100%),radial-gradient(ellipse at 75% 25%,#e7d7b1 0%,transparent 55%),linear-gradient(125deg,#173f4b 0%,#648b86 55%,#f0e0bc 100%);transform:scale(1.015);filter:blur(1px)}
.hotel-login:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,#07151270,transparent 35%,#07151210)}
.login-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);align-items:center;gap:clamp(40px,8vw,150px);width:100%;max-width:1400px;margin:auto}
.login-story{padding-bottom:28px;text-shadow:0 2px 18px #0003}
.login-story .login-eyebrow{font-size:11px;letter-spacing:3px;color:#e0e8e3;margin:0 0 26px;font-weight:500}
.login-story h2{font-size:clamp(30px,3.5vw,54px);font-weight:400;line-height:1.65;letter-spacing:3px;margin:0 0 20px;color:white}
.login-story .login-story-note{font-size:14px;font-weight:300;color:#e0e8e3;letter-spacing:1px;margin:0}
.login-story-line{display:block;height:2px;width:48px;margin-top:34px;background:#f2f0e0}
.hotel-login .login-card{width:100%;padding:32px 34px 26px;margin:0;border-radius:8px;background:#18201ed1;color:white;border:1px solid #ffffff24;box-shadow:0 20px 70px #0003;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:30px}
.login-brand strong{color:#ff5148;font-size:32px;letter-spacing:-1px;line-height:1.1}
.login-brand>span{font-size:23px;font-weight:600;letter-spacing:2px;line-height:1.15;color:white;border-left:1px solid #ffffff35;padding-left:14px}
.login-brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:400;margin-top:7px;color:#e1e4df}
.login-edition{display:inline-block;border:1px solid #ffffff3b;border-radius:3px;padding:3px 7px;color:#e1e6e1;font-size:10px;letter-spacing:1px;margin-bottom:12px}
.login-intro h1{font-size:23px;font-weight:500;letter-spacing:2px;margin:0 0 9px}
.login-intro p{font-size:12px;color:#c4cec8;line-height:1.7;margin:0 0 24px}
.hotel-login .login-card label{font-size:12px;color:#e1e6e1;letter-spacing:1px;margin:0 0 8px;display:block}
.login-input{display:flex;align-items:center;gap:10px;background:#fffffff5;border:1px solid #dce1e3;border-radius:4px;padding:0 12px;margin-bottom:18px;min-height:46px}
.login-input:focus-within{border-color:#52b6ff;box-shadow:0 0 0 3px #289cff28}
.login-input>svg{height:18px;width:18px;flex-shrink:0;fill:none;stroke:#99a6b1;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hotel-login .login-input input{width:100%;min-width:0;padding:12px 0;font-size:14px;border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;color:#27384b}
.hotel-login .login-input input::placeholder{color:#9aa6b2;font-size:13px}
.hotel-login .password-toggle{width:auto;flex-shrink:0;background:transparent;border:0;padding:7px 0 7px 7px;color:#526b7b;font-size:11px;letter-spacing:1px}
.login-account-note{font-size:10px;line-height:1.8;color:#c4cec8;margin:0 0 8px}
.login-account-note span{margin-right:5px;color:#a2d3ef}
.hotel-login #loginError{font-size:12px;color:#ffc7c0;margin:0 0 10px;line-height:1.6;min-height:0}
.hotel-login #loginError:empty{display:none}
.hotel-login .login-submit{display:flex;align-items:center;justify-content:center;position:relative;width:100%;margin-top:20px;height:46px;font-size:16px;letter-spacing:3px;border:1px solid #2096ed;background:#168deb;border-radius:4px;color:white;box-shadow:0 5px 16px #0875c220}
.hotel-login .login-submit span{position:absolute;right:17px;font-size:19px;font-weight:300}
.hotel-login .login-submit:hover{background:#087fd9;border-color:#087fd9}
.hotel-login .login-submit:disabled{opacity:.65}
.login-help{text-align:center;color:#b7c3bb;font-size:10px;line-height:1.6;margin:16px 0 0}
.login-footer{position:absolute;left:0;right:0;bottom:22px;display:flex;justify-content:center;gap:18px;align-items:center;flex-wrap:wrap;font-size:10px;color:#e0e6decc;letter-spacing:1px}
.hotel-login button:focus-visible{outline:2px solid #8bcdff;outline-offset:3px}
@media(min-width:1600px){.hotel-login .login-card{padding:42px 42px 32px}.login-layout{grid-template-columns:minmax(0,1fr) 430px}}
@media(max-width:900px){.hotel-login{padding:38px 28px 64px}.login-layout{gap:32px;grid-template-columns:minmax(0,1fr) minmax(300px,360px)}.hotel-login .login-card{padding:28px}.login-story h2{font-size:30px;letter-spacing:1px}.login-story .login-story-note{font-size:12px;line-height:1.8}.login-story .login-eyebrow{font-size:9px;letter-spacing:2px}}
@media(max-width:680px){.hotel-login{padding:28px 20px 22px;overflow:visible}.login-layout{display:flex;flex-direction:column;gap:22px;max-width:390px}.login-story{width:100%;padding:0}.login-story .login-eyebrow{margin:0 0 10px}.login-story h2{font-size:24px;line-height:1.45;letter-spacing:2px;margin:0}.login-story h2 br{display:none}.login-story .login-story-note,.login-story-line{display:none}.hotel-login .login-card{padding:27px 25px 24px}.login-brand{margin-bottom:24px}.login-footer{position:static;gap:7px 14px;padding-top:26px;font-size:9px}}
@media(max-height:660px) and (min-width:681px){.hotel-login{padding-top:24px;padding-bottom:52px}.hotel-login .login-card{padding-top:24px;padding-bottom:20px}.login-brand{margin-bottom:20px}.login-intro p{margin-bottom:18px}.login-input{margin-bottom:14px}}

/* A slow camera move and independent daylight drift, confined behind the form. */
.hotel-login .login-scene{position:absolute;inset:0;overflow:clip;z-index:-2;pointer-events:none;contain:paint}
.hotel-login .login-backdrop{z-index:0;transform-origin:55% 45%;animation:loginCameraDrift 18s ease-in-out infinite alternate;will-change:transform}
.login-daylight{position:absolute;inset:-12%;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 70% 30%,#ffe3ab30,transparent 54%),linear-gradient(115deg,transparent 28%,#fff2d615 46%,transparent 66%);mix-blend-mode:screen;animation:loginDaylightDrift 12s ease-in-out infinite alternate;will-change:transform,opacity}
.hotel-login .login-motion-toggle{position:absolute;top:22px;right:clamp(24px,7vw,120px);z-index:1;width:auto;min-height:32px;padding:7px 11px;border:1px solid #ffffff45;border-radius:4px;background:#15201d55;backdrop-filter:blur(8px);color:#f0f2eb;font-size:11px;letter-spacing:.5px}
.hotel-login .login-motion-toggle:hover{background:#15201d99;border-color:#ffffff80}
.hotel-login .login-motion-toggle:disabled{opacity:.8;cursor:default}
.login-motion-paused .login-backdrop,.login-motion-paused .login-daylight,.hotel-login[hidden] .login-backdrop,.hotel-login[hidden] .login-daylight{animation-play-state:paused!important}
@keyframes loginCameraDrift{from{transform:scale(1.04) translate(-1.1%,.3%)}to{transform:scale(1.15) translate(1.2%,-1%)}}
@keyframes loginDaylightDrift{from{transform:translate(-4%,-1%) scale(.98);opacity:.28}to{transform:translate(5%,2%) scale(1.06);opacity:.8}}
@media(max-width:680px){.hotel-login{padding-top:64px}.hotel-login .login-motion-toggle{top:17px;right:20px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.hotel-login .login-backdrop,.hotel-login .login-daylight{animation:none!important;will-change:auto}.hotel-login .login-backdrop{transform:scale(1.04)}.hotel-login .login-daylight{opacity:.25}}

/* Shared report navigation survives switching between all report-center pages. */
.report-switcher{display:flex;flex:initial;flex-wrap:wrap;gap:8px;overflow:visible;padding:0 0 16px;margin:0 0 18px;border-bottom:1px solid #e0e6ef}
.report-switcher button{display:block;flex:0 0 auto;width:auto;padding:9px 12px;border:1px solid #ccd6e5;border-radius:4px;background:white;color:#405773;font-size:13px;line-height:1.5;white-space:nowrap}
.report-switcher button:hover{border-color:#7395c3;background:#f4f8ff}
.report-switcher button.active{border:1px solid #668ac1;padding:9px 12px;background:#e8f0ff;color:#244c88;font-weight:600;box-shadow:inset 0 -2px #668ac1}
.report-switcher button:focus-visible{outline:2px solid #6a92cf;outline-offset:2px}
@media print{.report-switcher{display:none!important}}

/* Video-reference business analytics, isolated from the global sidebar. */
.analysis-workspace{padding:0;min-height:550px;background:white}
.analysis-layout{display:grid;grid-template-columns:180px minmax(0,1fr);min-height:550px}
.analysis-menu{padding:16px 0;border-right:1px solid #dce4ee}
.analysis-menu button{display:block;width:100%;text-align:right;border:0;border-right:3px solid transparent;border-radius:0;background:white;padding:15px 16px 15px 10px;font-size:13px;color:#35475b;line-height:1.6}
.analysis-menu button:hover{color:#168bef;background:#f8fbff}
.analysis-menu button.active{border-right-color:#168bef;color:#168bef;background:#f8fbff;font-weight:600}
.analysis-menu button:focus-visible{outline:2px solid #71a5df;outline-offset:-3px}
.analysis-body{min-width:0;padding:20px}
.analysis-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.analysis-filters label{font-size:12px;color:#66788e;gap:7px;margin:0}.analysis-filters input{max-width:170px;font-size:12px;padding:9px}
.analysis-filters>button{font-size:12px;padding:9px 13px}
.analysis-chart-types{display:flex;flex-wrap:wrap;align-self:flex-end}.analysis-chart-types button{font-size:12px;padding:9px 12px;border-radius:0;margin-left:-1px}.analysis-chart-types button:first-child{border-radius:4px 0 0 4px;margin-left:0}.analysis-chart-types button:last-child{border-radius:0 4px 4px 0}.analysis-chart-types button.active{background:#6269e7;border-color:#6269e7;color:white;position:relative}
.analysis-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.analysis-chart-card{min-width:0;border:1px solid #e0e6ef;border-radius:4px;padding:17px 14px;background:white}
.analysis-chart-card h3{font-size:14px;font-weight:500;margin:0 0 20px;color:#40536b}
.analysis-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:9px 13px;min-height:40px;font-size:11px;color:#607188;margin-bottom:10px}.analysis-legend span{display:inline-flex;align-items:center;gap:5px}.analysis-legend i{display:inline-block;width:17px;height:9px;border-radius:2px}.analysis-legend b{font-weight:500}
.analysis-pie-wrap{display:grid;place-items:center;min-height:240px}.analysis-pie-wrap svg{display:block;width:min(100%,300px);height:auto}
.analysis-no-chart{min-height:200px;display:grid;place-items:center;font-size:12px;color:#8c9aae;background:radial-gradient(circle,transparent 55px,#f1f4f8 56px,#f1f4f8 83px,transparent 84px)}
.analysis-svg-wrap{width:100%;overflow-x:auto}.analysis-svg-wrap svg{display:block;min-width:580px;width:100%;height:auto;min-height:300px}.analysis-svg-wrap text{font:11px Arial,"PingFang SC",sans-serif;fill:#778394}
.analysis-trend{border:0;padding:12px 0}.analysis-trend .analysis-legend{margin-bottom:16px}
.analysis-summary{font-size:13px;color:#718097;padding:0 0 14px}.analysis-summary b{font-size:20px;color:#334c68;margin-left:9px}
.analysis-caption{font-size:11px;color:#8b7a66;line-height:1.6}
.analysis-basis{margin:18px 0 14px;font-size:11px;line-height:1.8}.analysis-detail{border-top:1px solid #e5eaf0;padding-top:12px}.analysis-detail>summary{cursor:pointer;color:#4e729e;font-size:12px;padding:5px 0 12px}.analysis-detail td,.analysis-detail th{font-size:12px;padding:9px 12px}
.analysis-loading{padding:100px 15px;text-align:center;color:#8a99ab;font-size:13px}
@media(max-width:1100px){.analysis-layout{grid-template-columns:155px minmax(0,1fr)}.analysis-menu button{font-size:12px;padding-right:12px}.analysis-body{padding:16px}.analysis-chart-grid{grid-template-columns:1fr}.analysis-pie-wrap{min-height:210px}.analysis-pie-wrap svg{max-width:240px}}
@media(max-width:700px){.analysis-layout{display:block}.analysis-menu{display:flex;flex-wrap:wrap;gap:4px;border-right:0;border-bottom:1px solid #dce4ee;padding:10px}.analysis-menu button{width:auto;flex:1 1 120px;text-align:center;border-right:0;border-bottom:2px solid transparent;padding:9px 5px}.analysis-menu button.active{border-right:0;border-bottom-color:#168bef}.analysis-filters label{width:100%}.analysis-filters input{width:100%;max-width:none}.analysis-body{padding:12px}}
@media print{.analysis-menu,.analysis-filters{display:none!important}.analysis-layout{display:block}.analysis-workspace{min-height:0}.analysis-body{padding:0}.analysis-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-chart-card{break-inside:avoid}.analysis-svg-wrap{overflow:visible}.analysis-svg-wrap svg{min-width:0}.analysis-detail{display:block}.analysis-detail[open]>summary{display:none}.analysis-detail::details-content{content-visibility:visible}}

.analysis-menu{position:sticky;top:calc(var(--brand-height,104px) + 88px);align-self:start}
.analysis-unit{font-size:11px;color:#8491a2;margin:0 0 5px 12px}
@media(max-width:700px){.analysis-menu{position:static}}
@media print{.analysis-menu{position:static}}

/* Compact shortcuts: sidebar expanded keeps all shortcuts beside the menu toggle. */
#workspace{--top-row-height:72px}
#workspace .top-row{height:var(--top-row-height);position:relative;gap:8px;padding:6px 14px 6px 10px}
.quick-nav-toggle{display:flex;align-items:center;gap:16px;background:#294a76;border:1px solid #6c84aa;color:white;padding:10px 14px;font-size:14px}
.quick-nav-toggle:hover{background:#355d90}
.quick-nav-toggle:focus-visible{outline:2px solid #ffdc64;outline-offset:2px}
#workspace:not(.sidebar-collapsed) #topNav{display:none}
#workspace.quick-nav-open:not(.sidebar-collapsed) #topNav{display:grid;position:absolute;left:10px;top:calc(100% - 2px);width:min(610px,calc(100vw - var(--sidebar-width) - 30px));max-height:calc(100dvh - 90px);overflow:auto;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px;padding:12px;background:#132d53;border:1px solid #7187a9;border-radius:8px;box-shadow:0 10px 28px #08182f66;z-index:10}
#workspace #topNav button{flex:0 0 98px;gap:4px;padding:6px 7px;font-size:12px;border-radius:5px;min-height:52px}
#workspace #topNav button svg{width:22px;height:22px}
#workspace.sidebar-collapsed .quick-nav-toggle{display:none}
#workspace.sidebar-collapsed #topNav{padding-bottom:3px}
#workspace.quick-nav-open #quickNavToggle{background:#3d6496;border-color:#ffdc64}
.analysis-menu{top:calc(var(--top-row-height,72px) + 88px)}
@media(max-width:700px){#workspace.quick-nav-open:not(.sidebar-collapsed) #topNav{grid-template-columns:1fr;min-width:0}#workspace #topNav button{font-size:11px;flex-basis:88px}.analysis-menu{position:static}}

/* Shorter quick buttons; labels wrap while every entry remains reachable. */
#workspace #topNav button{flex-basis:82px;width:82px;white-space:normal;font-size:11px;padding:5px 4px;gap:3px;line-height:1.2}
#workspace #topNav button span{max-width:100%;overflow-wrap:anywhere}
#workspace #topNav button svg{flex-shrink:0;width:21px;height:21px}
#workspace.quick-nav-open:not(.sidebar-collapsed) #topNav{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));width:min(490px,calc(100vw - var(--sidebar-width) - 30px))}
#workspace.quick-nav-open #topNav button{width:100%}
@media(max-width:700px){#workspace.quick-nav-open:not(.sidebar-collapsed) #topNav{grid-template-columns:1fr}}

/* Shared account dropdown replaces the former full-width context row. */
.account-menu{position:relative;flex:0 0 auto;margin-left:auto}
#accountToggle{max-width:142px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#294a76;border:1px solid #7188aa;color:white;font-size:12px;padding:10px 12px}
#accountToggle[aria-expanded="true"]{border-color:#ffdc64;background:#3d6496}
#accountPanel{position:absolute;right:0;top:calc(100% + 12px);width:min(350px,calc(100vw - 30px));padding:18px;background:#fff;color:#263950;border:1px solid #c6d2e4;border-radius:8px;box-shadow:0 10px 28px #08182f55;z-index:12}
.account-title{font-size:16px;font-weight:600;margin-bottom:18px}.account-title small{display:block;font-size:11px;color:#71809a;margin-top:5px}
#accountPanel .store-label{display:block;font-size:12px;color:#536985}
#accountPanel select{width:100%;min-width:0;margin-top:7px;font-size:13px;color:#263950;background:white}
#accountPanel #identity{font-size:13px;line-height:1.9;margin:16px 0;color:#536985}
#accountPanel #logout{width:100%;font-size:13px;color:#ad3434;border-color:#e1baba;background:#fff6f6}
#workspace .top-row{overflow:visible}
.analysis-menu{top:calc(var(--top-row-height,72px) + 12px)}
@media(max-width:700px){#accountToggle{max-width:104px;padding:9px 7px;font-size:11px}}
@media print{.account-menu{display:none!important}}

/* Collapsed brand keeps the Chinese name above the English trademark. */
#workspace.sidebar-collapsed .brand{flex-direction:column;gap:5px;align-items:center;justify-content:center;padding:10px 3px}
#workspace.sidebar-collapsed .brand>span{display:block;order:0;font-size:22px;line-height:1.2;letter-spacing:2px;color:#fff}
#workspace.sidebar-collapsed .brand b{order:1;font-size:15px;line-height:1.2;letter-spacing:-.8px}
#workspace.sidebar-collapsed .brand small{display:none}
@media(max-width:700px){#workspace.sidebar-collapsed .brand>span{font-size:20px}#workspace.sidebar-collapsed .brand b{font-size:13px}}

/* The homepage opens directly into its animated brand panel. */
.home-workspace .home-brand-animated{min-height:320px;display:grid;place-items:center;padding:38px 24px 48px}
@media(max-width:700px){.home-workspace .home-brand-animated{min-height:300px;padding:32px 16px 48px}}

/* One-line home shortcuts leave more room for the brand animation. */
.home-workspace .home-links{display:flex;flex-wrap:nowrap;gap:10px;padding:14px 0;overflow-x:auto}
.home-workspace .home-links button{display:flex;flex:1 0 130px;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:10px 12px;white-space:nowrap}
.home-workspace .home-links svg{float:none;flex-shrink:0;width:24px;height:24px;margin:0}
.home-workspace .home-links b{font-size:13px}
.home-workspace .home-links small{display:none}
.home-workspace .home-brand-animated{min-height:clamp(400px,calc(100dvh - 280px),720px)}
@media(max-width:700px){.home-workspace .home-links button{flex-basis:120px;padding:9px;gap:7px}.home-workspace .home-brand-animated{min-height:360px}}

/* Reference-style room filters, control panel, and guest master. */
.rec-filters{background:#f8f9fe;border:1px solid #e0e5ef;padding:14px;margin-bottom:16px;border-radius:5px}
.rec-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.rec-filter-row>b{min-width:64px;color:#65758d;font-size:12px}
.rec-filter-row button{padding:7px 10px;font-size:12px;border-color:#8993cd;color:#51627d;background:#fff}
.rec-filter-row button.active{background:#6369df;color:white;border-color:#6369df}
.rec-filter-row small{font-size:10px;background:#eff1f6;color:#596c87;border-radius:10px;padding:1px 5px}
.rec-filters .toolbar{margin:0}.rec-filters input{min-width:240px}.rec-filters .toolbar span{font-size:12px;color:#71809b}
.rec-room-group{margin-bottom:16px}.rec-room-group>summary{font-weight:600;color:#64768d;padding:8px 0;cursor:pointer}
.rec-room-group>summary small{font-weight:400;margin-left:8px}
.rec-room-wrap{position:relative;min-width:0}.rec-room-wrap .rec-room{width:100%;height:134px;text-align:left}
.rec-room-pick{position:absolute;top:5px;left:5px;z-index:1;margin:0;display:block}
.rec-room-pick input{width:14px;height:14px;margin:0;cursor:pointer}
.rec-room .room-type{padding-left:24px!important;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.rec-room .rec-room-flags{font-size:10px;color:#7f2525;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-hourly{position:absolute;right:3px;top:3px;font-style:normal;background:#ed9d21;color:white;padding:0 3px;border-radius:2px}
.room.selfuse{background:#c8b3df}.rec-bottom{position:sticky;bottom:34px;background:#fffef8;z-index:1;padding:10px;border:1px solid #dce4ee;border-radius:4px}
.rec-bottom button{font-size:12px;padding:8px 10px}
.rec-inline{display:inline-flex;flex-direction:row;align-items:center;gap:7px;font-size:12px;margin:0!important;padding:6px}
.rec-inline input{width:auto}.rec-guest-tabs{gap:0}.rec-guest-tabs button{border-radius:0;margin-right:-1px}
.rec-pagination{justify-content:flex-end;margin-top:14px;font-size:12px}
.rec-control>div:first-child{padding:14px;background:#e7f4f7;border-radius:5px}.rec-control p{margin:4px 0}
.rec-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:18px 0}
.rec-action-grid button{padding:12px 6px;background:#f0f7fa;border-color:#c4dce4;font-size:13px}
.rec-section-title{font-size:14px;margin:12px 0;padding:9px;background:#eeeffe;color:#5e65ce}
.rec-companion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;padding:15px;border:1px solid #dce3ed;margin-bottom:12px;border-radius:5px}
.rec-companion>b{grid-column:1/-1}.rec-companion label{min-width:0}.rec-companion button{align-self:end;margin-bottom:14px}
@media(max-width:700px){.rec-filter-row{gap:5px}.rec-filter-row button{font-size:11px;padding:6px}.rec-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rec-companion{display:block}.rec-filters input{min-width:0;width:100%}.rec-bottom{position:static}}
@media print{.rec-filters,.rec-bottom,.rec-room-pick,.rec-guest-tabs,.rec-inline,.rec-pagination{display:none!important}.rec-room-group{break-inside:avoid}.rec-room{print-color-adjust:exact}.rec-room-group:not([open]){display:none}}

.rec-action-grid button{display:flex;flex-direction:column;align-items:center;gap:7px}.rec-action-grid svg{width:29px;height:29px;padding:4px;box-sizing:content-box;border:1px solid #a5c4ce;border-radius:50%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Softer blue navigation palette; preserve sizing and the yellow selection. */
#workspace aside,#workspace .brand,#workspace header,#workspace .side-foot{background:#42658d}
#workspace aside{color:#eef3fa}
#workspace .side-foot{color:#d4e0ef}
#nav{scrollbar-color:#91abc9 transparent}
#nav summary{background:#52769e;color:#fff}
#nav summary:hover{background:#5e82a9}
#nav button{color:#eef3fa}
#nav button:hover{background:#5379a2;color:#fff}
#nav button.active{background:#5d81aa;color:#fff;border-left-color:#ffdc64}
#workspace .sidebar-toggle{color:#e3edf9}
#workspace .sidebar-toggle:hover{background:#567ba3;color:#fff}
#topNav{scrollbar-color:#a5bad3 #42658d}
#topNav button{background:linear-gradient(#adc0d8 0%,#54789f 28%,#3d6088 80%,#6e90b4 100%);border-color:#a9bfd8;color:#fff}
#topNav button:hover{background:linear-gradient(#bdcee2,#678bb0 40%,#4c7098)}
#topNav button.active{background:linear-gradient(#fff0b3,#ffdb5b 40%,#ffc928);border-color:#ffe394;color:#733500}
#workspace .quick-nav-toggle,#workspace #accountToggle{background:#52769e;border-color:#9eb5d0;color:#fff}
#workspace .quick-nav-toggle:hover,#workspace #accountToggle[aria-expanded=true],#workspace.quick-nav-open #quickNavToggle{background:#6286ae}
#workspace.quick-nav-open:not(.sidebar-collapsed) #topNav{background:#42658d;border-color:#9eb5d0}

@media(min-width:701px){.rec-action-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:12px 0}.rec-action-grid button{padding:8px 4px;font-size:12px;gap:4px}.rec-action-grid svg{width:23px;height:23px;padding:4px}.rec-control>div:first-child{padding:10px 12px}.rec-control h3{margin-bottom:6px}.rec-control>div:first-child p{font-size:12px}.rec-control .detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.rec-control .detail-grid b{font-size:12px;overflow-wrap:anywhere}}

/* Primary guest fields stay together; reader controls sit beside them. */
.rec-primary-guest{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:18px;align-items:start}
.rec-primary-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 18px}
#modal .rec-reader-tools{position:static;inset:auto;width:auto;height:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:#f1f5fb;color:#324d70;border:1px solid #d5dfed;border-radius:5px}
.rec-reader-tools button{text-align:center;padding:10px 6px;font-size:13px}
.rec-reader-tools small{font-size:11px;line-height:1.7}
.rec-reader-box{border:1px solid #b8cde4;border-radius:5px;background:#f5f9ff;padding:14px}
.rec-reader-box p{font-size:12px;line-height:1.7}.rec-reader-box textarea{width:100%;font-family:inherit}.rec-reader-box .toolbar{margin:10px 0}.rec-reader-box #readerApply{background:#1293aa;color:white}
@media(max-width:650px){.rec-primary-guest{grid-template-columns:1fr}.rec-primary-fields{grid-template-columns:1fr}#modal .rec-reader-tools{display:grid;grid-template-columns:1fr 1fr}.rec-reader-tools small{grid-column:1/-1}}
.rec-primary-fields label{margin:0 0 8px;gap:5px;font-size:12px}.rec-primary-fields input,.rec-primary-fields select{padding:9px 10px;min-height:36px}
.rec-companion .rec-co-heading{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.rec-co-readers{display:flex;gap:8px}.rec-co-readers button{padding:7px 12px;font-size:12px}.rec-companion #readerCapture{grid-column:1/-1}
.rec-person-tabs{display:flex;gap:7px;overflow-x:auto;flex-wrap:nowrap;padding:8px 0 12px;margin-bottom:12px;border-bottom:1px solid #d8e1ef}.rec-person-tabs button{white-space:nowrap;flex:0 0 auto;padding:9px 15px}.rec-person-tabs [aria-selected=true]{background:#5e69d5;color:white;border-color:#5e69d5}.rec-person-tabs #addCo{color:#b74c25}
#guestEditor [hidden]{display:none!important}#guestEditor #coPeople:empty{display:none}.booking-dialog .modal-head{position:sticky;top:0;background:white;z-index:4}.booking-dialog .form-actions{position:sticky;bottom:-24px;background:#fff;padding:12px 0;border-top:1px solid #d8e1ef;z-index:3;flex-wrap:wrap;box-shadow:0 -5px 12px #233d6210}.booking-dialog .rec-person-tabs{position:sticky;top:0;background:white;z-index:2}
.booking-dialog .rec-person-tabs{top:64px}
.booking-dialog .form-actions{bottom:0}

/* Room charges remain readable alongside status and flags. */
.rec-room-wrap .rec-room{height:180px}.rec-room .rec-room-fee{font-weight:600;color:#243d56}

.permission-options{border:1px solid #dbe0ea;border-radius:6px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;padding:16px}.permission-options label{display:flex;align-items:center;gap:8px;margin:0}.permission-options input{width:auto;margin:0}
/* Shared operation colors, leaving navigation and room status colors intact. */
main button[data-operation-tone="query"],#modal button[data-operation-tone="query"]{background:#1678b8;color:#fff;border-color:#12699f}
main button[data-operation-tone="print"],#modal button[data-operation-tone="print"]{background:#7162ac;color:#fff;border-color:#625298}
main button[data-operation-tone="clear"],#modal button[data-operation-tone="clear"]{background:#fff0dc;color:#8a4b08;border-color:#dc9b49}
main button[data-operation-tone="refresh"],#modal button[data-operation-tone="refresh"]{background:#e2f3ee;color:#216b5a;border-color:#79b8a6}
.rec-filter-row button[data-reset-state="pending"]{background:#e7a33e;color:#382200;border-color:#b77b25;font-weight:600}
.rec-filter-row button[data-reset-state="empty"]{background:#edf1f5;color:#617184;border-color:#bdc8d5}
main button[data-operation-tone]:hover,#modal button[data-operation-tone]:hover,.rec-filter-row button[data-reset-state]:hover{filter:brightness(.94)}
main button:focus-visible,#modal button:focus-visible{outline:3px solid #75a8ef;outline-offset:2px}
.rec-room-wrap .rec-room{height:auto;min-height:224px;padding-bottom:8px}

.compact-room-grid .rec-room span.rec-debt-alert{white-space:normal;overflow:visible;color:#a51625;background:#fff1ed;font-weight:700;line-height:18px;padding:4px 9px;margin:3px 0}

/* Compact board: identity in center, source/day count at corners, status badges at foot. */
.compact-room-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}
.rec-room-wrap .rec-room.compact-card{height:154px;min-height:154px;padding-bottom:0}
.compact-room-grid .compact-card strong{font-size:25px;line-height:29px;padding:7px 10px 0}
.compact-room-grid .compact-card span.card-guest{height:22px;line-height:22px;padding:0 10px;font-size:12px}
.compact-room-grid .compact-card span.card-price{padding:0 10px;font-size:13px;font-weight:700;line-height:22px}
.compact-room-grid .compact-card span.card-source{position:absolute;right:4px;top:3px;background:#eef5ff;color:#244e76;border-radius:3px;font-weight:700;padding:0 4px;font-size:12px;line-height:20px}
.compact-room-grid .compact-card .room-type{padding-right:28px!important}
.compact-room-grid .compact-card span.card-days{position:absolute;right:7px;top:41px;padding:0;font-size:11px;line-height:18px}
.compact-room-grid .compact-card span.card-marks{position:absolute;bottom:6px;left:8px;right:6px;display:flex;gap:7px;line-height:18px;padding:0;overflow:visible}
.card-marks em{font-style:normal;font-weight:600;font-size:12px}.card-marks em.card-debt{color:#c31126;font-weight:900}
.detail-grid b.debt-amount{color:#c31126;font-weight:900}

.compact-room-grid .compact-card strong{padding-right:40px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.shift-review{border:1px solid #d5dfec;border-radius:5px;padding:12px;min-width:0}.shift-review legend{font-weight:700}.shift-review-row{display:grid;grid-template-columns:1fr 1.2fr 1.2fr auto;gap:10px;align-items:center;border-bottom:1px solid #e2e8ef;padding:9px 0}.shift-review-row label{font-size:11px;margin:0;gap:5px}.shift-review-row input[type=number]{width:100%;min-width:0;padding:8px}.shift-review-row small{display:block;font-weight:400;font-size:11px;margin-top:5px}.review-confirm{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:12px;margin:5px 0}.review-confirm input{width:auto;flex-shrink:0}.review-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:12px}@media(max-width:600px){.shift-review-row{grid-template-columns:repeat(2,minmax(0,1fr))}.review-categories{grid-template-columns:1fr}}

.card-marks em.card-reserved{color:#6f4700;font-weight:800}
/* Compact board: keep every badge, price and guest within a fixed small tile. */
.rec-filters [hidden]{display:none!important}
.compact-room-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:7px}
.rec-room-wrap .rec-room.compact-card{height:128px;min-height:128px}
.compact-room-grid .compact-card .room-type{font-size:11px;line-height:16px;padding-top:4px;padding-bottom:4px}
.compact-room-grid .compact-card strong{font-size:23px;line-height:26px;padding-top:3px}
.compact-room-grid .compact-card span.card-guest{height:19px;line-height:19px}
.compact-room-grid .compact-card span.card-price{line-height:19px;font-size:12px}
.compact-room-grid .compact-card span.card-days{top:30px}
.compact-room-grid .compact-card span.card-marks{bottom:3px;gap:5px;font-size:11px}
.contact-error{color:#ac1728;font-size:12px;line-height:1.5;min-height:0}
input[aria-invalid=true]{border-color:#b41c30;background:#fff6f6}
button.data-export{background:#e4f3ec;border:1px solid #6caa8c;color:#19573b;margin:6px;cursor:pointer}
@media print{button.data-export{display:none!important}}
/* Compact business controls and title areas; leave login and room tiles alone. */
main{padding:16px 20px}.toolbar{gap:7px;margin-bottom:12px}#pageTools>.toolbar{min-height:34px;margin-bottom:12px}#pageTools h2{font-size:21px;line-height:1.35}
main button:not(.room),dialog button{padding:6px 10px;font-size:12px;line-height:1.5;min-height:30px}
.form-actions{gap:7px;margin-top:12px}.booking-dialog .form-actions{padding:8px 0}.panel{padding:16px;margin-bottom:14px}
.modal-head{padding:12px 16px}.modal-head h2{font-size:18px}#modalBody{padding:16px}.form-grid{gap:3px 16px}.form-grid label{gap:5px;margin-bottom:9px}
.rec-filters{padding:12px}.rec-filter-row{gap:6px;margin-bottom:8px}.rec-fold-line{display:flex;justify-content:flex-end;margin:0 0 5px}
main button.rec-fold-toggle{color:#1766d3;background:transparent;border:0;padding:2px 5px;min-height:24px;font-size:13px}
main button.rec-fold-toggle:hover{text-decoration:underline;background:#edf4ff}
.room-control-dialog{width:min(840px,94vw)}.room-control-dialog #modalBody{padding:12px 16px}.rec-control>div:first-child{padding:8px 10px}
.rec-control h3{font-size:15px;margin-bottom:5px}.rec-action-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:9px 0}
.rec-action-grid button{padding:6px 3px;font-size:11px;gap:3px;min-height:54px}.rec-action-grid svg{width:19px;height:19px;padding:3px}
.rec-control .detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 10px;margin:10px 0}.rec-control .detail-grid label{margin-bottom:3px}.rec-control .detail-grid b{font-size:12px}
.rec-control-orders{border-top:1px solid #dce3ec;padding-top:8px}.rec-control-orders .table-wrap{max-height:150px}.rec-control-orders th,.rec-control-orders td{padding:6px 8px;font-size:12px}
#accountToggle{display:flex;align-items:center;gap:7px;max-width:220px;background:transparent;border:0;padding:3px 5px;font-size:13px}
#accountToggle[aria-expanded=true]{background:#ffffff18;border:0}.account-avatar{display:grid;place-items:center;width:31px;height:31px;flex-shrink:0;border-radius:50%;background:#e4eef8;color:#315678;font-size:15px;font-weight:700}.account-name{overflow:hidden;text-overflow:ellipsis}
#accountPanel{width:220px;padding:5px 0;border-radius:5px;top:calc(100% + 10px)}#accountPanel:before{content:'';position:absolute;right:19px;top:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid white}
#accountPanel>button{display:block;width:100%;border:0;border-bottom:1px solid #e4e9f0;border-radius:0;text-align:left;padding:10px 16px;background:white;color:#42566c;font-size:13px;line-height:1.5}
#accountPanel>button:hover{background:#edf4fb}#accountPanel .store-label{padding:9px 16px;border-bottom:1px solid #e4e9f0;margin:0;font-size:12px;min-width:0}
#accountPanel select{margin-top:5px;padding:5px;font-size:12px}#accountPanel #logout{color:#a23d43;background:white;border:0;border-bottom:1px solid #e4e9f0}
#accountPanel #identity{font-size:10px;line-height:1.5;margin:8px 16px 3px;color:#7c8a9a}.account-build{display:block;margin:0 16px 8px;font-size:10px;color:#8291a2}
.function-results{display:flex;gap:6px;flex-wrap:wrap;max-height:340px;overflow:auto}.function-results button{flex:0 0 calc(33.333% - 5px);text-align:left}
@media(max-width:700px){main{padding:12px}.rec-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.rec-control .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.function-results button{flex-basis:calc(50% - 4px)}#accountToggle{max-width:150px}.form-actions{flex-wrap:wrap}}
@media(min-width:701px){.room-control-dialog .rec-action-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.room-control-dialog .rec-control .detail-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.room-control-dialog .rec-control>div:first-child p{line-height:1.4;margin:2px 0}.room-control-dialog .rec-control>div:first-child{padding:7px 10px}}
.toolbar h3{margin:0;font-size:16px;line-height:1.4}
/* Room context at left, compact unboxed shortcuts at right. */
#accountPanel{width:min(190px,calc(100vw - 24px))}
.room-control-dialog .rec-control>.rec-control-top{display:grid;grid-template-columns:minmax(155px,210px) minmax(0,1fr);gap:12px;align-items:start;background:transparent;padding:0}
.rec-room-summary{background:#e7f4f7;padding:10px;border-radius:4px;min-width:0}.rec-room-summary h3{font-size:15px}.rec-room-summary p{font-size:12px;line-height:1.5;margin:4px 0;overflow-wrap:anywhere}
.room-control-dialog .rec-control-top .rec-action-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin:0}
.room-control-dialog .rec-control-top .rec-action-grid button{background:transparent;border:0;box-shadow:none;border-radius:3px;padding:4px 2px;min-height:45px;gap:2px;font-size:11px;line-height:1.3}
.room-control-dialog .rec-control-top .rec-action-grid button:hover{background:#edf5fa}.room-control-dialog .rec-control-top .rec-action-grid button:focus-visible{outline:2px solid #5e9cd5;outline-offset:-2px}
.room-control-dialog .rec-control-top .rec-action-grid svg{width:18px;height:18px;padding:3px}
.room-orders-dialog{width:min(780px,94vw)}.room-orders-dialog .modal-head{gap:10px;flex-wrap:wrap}.room-orders-dialog .modal-head h2{flex:1;font-size:18px}
.room-order-tabs{display:flex;gap:4px;align-items:center;margin-left:auto}.modal-head .room-order-tabs button{font-size:12px;line-height:1.4;min-height:28px;padding:4px 10px;border:1px solid #cad8e8;border-radius:4px;background:white;color:#3c5874}
.modal-head .room-order-tabs button.active{background:#5d6dd5;color:white;border-color:#5d6dd5}
.rec-order-pagination{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:12px;font-size:12px;color:#687c96}
@media(max-width:600px){.room-control-dialog .rec-control>.rec-control-top{grid-template-columns:1fr}.room-control-dialog .rec-control-top .rec-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.room-orders-dialog .modal-head h2{font-size:16px}.modal-head .room-order-tabs button{padding:4px 7px}.rec-order-pagination{justify-content:center}}

/* Footer announcements and frameless account trigger. */
#workspace #accountToggle,#workspace #accountToggle:hover,#workspace #accountToggle[aria-expanded=true]{background:transparent;border:0;box-shadow:none}
#workspace #accountToggle:focus-visible{outline:2px solid #d8eaff;outline-offset:3px}
footer{gap:18px;align-items:center}footer>span{flex-shrink:0}
.announcement-bar{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:#3e6083;max-width:850px}
.announcement-bar>span{font-weight:600;flex-shrink:0}.announcement-window{overflow:hidden;min-width:0;flex:1;white-space:nowrap}
#announcementText{display:inline-block;white-space:nowrap}.scrolling{padding-left:100%;animation:announcement-scroll var(--announcement-duration,25s) linear infinite}
.announcement-window:hover .scrolling,.announcement-window:focus .scrolling{animation-play-state:paused}
@keyframes announcement-scroll{to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){#announcementText.scrolling{animation:none;padding-left:0}.announcement-window{overflow-x:auto}}
@media(max-width:700px){footer{flex-wrap:wrap;gap:5px 12px}.announcement-bar{order:3;flex-basis:100%;max-width:100%}}

/* Fixed palette: graphite navigation with fresh room cards. */
:root[data-theme]{--ui-nav:#ffffff;--ui-nav-text:#334155;--ui-nav-active:#fff;--ui-accent:#d97706;--ui-nav-hover:#f1f5f9;--ui-bg:#f8fafc;--ui-ink:#1e293b;--ui-brand:#e9b85e;--ui-clean:#d1fae5;--ui-clean-ink:#1e293b;--ui-stay:#d1fae5;--ui-stay-ink:#064e3b;--ui-stay-edge:#10b981;--ui-reserve:#ffedd5;--ui-reserve-ink:#9a3412;--ui-reserve-edge:#f59e0b;--ui-dirty:#e0e7e4;--ui-dirty-edge:#94a39c;--ui-disabled:#f1f5f9;--ui-border:#e2e8f0}
:root[data-theme] body{background:var(--ui-bg);color:var(--ui-ink);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
html[data-theme] #workspace aside,html[data-theme] #workspace header,html[data-theme] #workspace .brand,html[data-theme] #workspace .side-foot{background:var(--ui-nav);color:var(--ui-nav-text)}
html[data-theme] #workspace aside{border-right:1px solid var(--ui-border)}
html[data-theme] #workspace header{border-bottom:1px solid var(--ui-border);box-shadow:none}
html[data-theme] #workspace .brand b{color:var(--ui-brand)}
html[data-theme] #workspace .brand>span{color:var(--ui-nav-text)}
html[data-theme] #nav summary,html[data-theme] #nav button{background:transparent;color:var(--ui-nav-text)}
html[data-theme] #nav summary:hover,html[data-theme] #nav button:hover{background:var(--ui-nav-hover);color:var(--ui-nav-text)}
html[data-theme] #nav button.active{background:var(--ui-accent);border-left-color:var(--ui-accent);color:#fff}
html[data-theme] #topNav button{background:transparent;border-color:transparent;color:var(--ui-nav-text);box-shadow:none;border-radius:6px}
html[data-theme] #topNav button:hover{background:var(--ui-nav-hover)}
html[data-theme] #topNav button.active{background:var(--ui-accent);color:var(--ui-nav-active);border-color:var(--ui-accent);box-shadow:none}
html[data-theme] #topNav{scrollbar-color:var(--ui-nav-text) var(--ui-nav)}
html[data-theme] #workspace .sidebar-toggle,html[data-theme] #workspace .quick-nav-toggle,html[data-theme] #workspace #accountToggle{color:var(--ui-nav-text);background:transparent;border-color:transparent}
html[data-theme] #workspace .sidebar-toggle:hover,html[data-theme] #workspace .quick-nav-toggle:hover{background:var(--ui-nav-hover)}
html[data-theme] #workspace.quick-nav-open:not(.sidebar-collapsed) #topNav{background:var(--ui-nav);border-color:var(--ui-border)}
html[data-theme] #workspace .account-avatar{background:var(--ui-bg);color:var(--ui-ink)}
html[data-theme] #workspace main{background:var(--ui-bg)}
html[data-theme] #workspace .compact-room-grid .room{background:var(--ui-clean);color:var(--ui-clean-ink);border:1px solid var(--ui-border);border-left:4px solid var(--ui-border);border-radius:7px;box-shadow:0 1px 2px #0f172a06;opacity:1}
html[data-theme] #workspace .compact-room-grid .room.occupied{background:var(--ui-stay);color:var(--ui-stay-ink);border-left-color:var(--ui-stay-edge)}
html[data-theme] #workspace .compact-room-grid .room.reserved{background:var(--ui-reserve);color:var(--ui-reserve-ink);border-color:var(--ui-reserve-edge)}
html[data-theme] #workspace .compact-room-grid .room.dirty{background:var(--ui-dirty);color:#7f1d1d;border-left-color:var(--ui-dirty-edge)}
html[data-theme] #workspace .compact-room-grid .room.maintenance,html[data-theme] #workspace .compact-room-grid .room.disabled{background:var(--ui-disabled);color:#64748b;border-left-color:#94a3b8}
html[data-theme] #workspace .compact-room-grid .room.selfuse{background:#ede9fe;color:#5b21b6;border-left-color:#a78bfa}
html[data-theme] #workspace .compact-room-grid .compact-card .room-type{background:transparent;color:#64748b;font-size:12px;line-height:17px;padding-top:5px;padding-bottom:4px;font-weight:400}
html[data-theme] #workspace .compact-room-grid .compact-card strong{font-size:18px;line-height:23px;font-weight:700;padding-top:1px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-price{position:absolute;bottom:6px;right:7px;font-size:11px;font-weight:400;line-height:17px;color:#64748b;padding:0}
html[data-theme] #workspace .compact-room-grid .compact-card .card-marks{right:76px;bottom:5px;gap:4px;flex-wrap:wrap;line-height:14px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-marks em{font-size:11px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-source{border-radius:10px;min-width:19px;text-align:center;line-height:18px;font-size:11px;top:4px;right:4px;background:#eff6ff;color:#1d4ed8;padding:0 5px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-source[data-channel="散"]{background:#f1f5f9;color:#475569}
html[data-theme] #workspace .compact-room-grid .room:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}
html[data-theme] #workspace .compact-room-grid .room:hover{box-shadow:0 2px 7px #0f172a18}
html[data-theme] .home-shycent-wordmark{color:#ff3b30}
/* Unified soft controls and two-sided room actions. */
button,input,select,textarea{border-radius:9px}
.panel,.rec-filters,dialog,.notice,.metric,.device-card{border-radius:10px}
html[data-theme] #workspace .brand b{color:#ff3b30}
html[data-theme] #workspace .brand>span{color:#3b5680}
html[data-theme] #workspace .compact-room-grid .room.staying-over{background:#f3e8ff;border-left-color:#c4a4e2;color:#4c365f}
html[data-theme] #workspace .compact-room-grid .room.dirty{color:#475569}
html[data-theme] #workspace .compact-room-grid .compact-card strong{color:#000}
html[data-theme] #workspace .compact-room-grid .room.room-in-debt strong{color:#c31126;font-weight:800}
html[data-theme] #workspace .compact-room-grid .compact-card .room-type{font-weight:600;text-align:center;padding-left:25px!important;padding-right:26px!important}
.rec-bottom.toolbar{justify-content:space-between;align-items:center;gap:12px;border-radius:12px;background:#fff}
.rec-bottom-main,.rec-bottom-readers{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rec-bottom-main{flex:1}.rec-bottom-readers{margin-left:auto;flex-shrink:0}
.rec-bottom button{border-radius:10px;padding:9px 13px}
.rec-bottom [data-rec=selectClear]{background:transparent;border-color:transparent;color:#64748b}
.rec-bottom [data-rec=refresh]{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.rec-bottom [data-rec=boardIdentity]{color:#4338ca}.rec-bottom [data-rec=boardCard]{color:#047857}
.update-nav-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px!important;border-radius:9px;background:#dc3545;color:#fff!important;font-size:10px!important;font-weight:700;line-height:17px!important}
#nav [data-page=setup],#topNav [data-page=setup],#nav summary[title="实施中心"]{position:relative}
#topNav .update-nav-badge{position:absolute;top:2px;right:4px}
.weather-menu{position:relative;flex:0 0 auto}
#weatherToggle{font-size:12px;max-width:185px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:transparent;color:var(--ui-nav-text);border:0;padding:7px 4px}
#weatherPanel{position:absolute;right:0;top:calc(100% + 12px);width:min(310px,86vw);padding:16px;border-radius:12px;background:#fff;color:#334155;border:1px solid #e2e8f0;box-shadow:0 8px 28px #0f172a20;z-index:12;font-size:12px}
#weatherPanel p{line-height:1.6;margin:10px 0}#weatherPanel small{display:block;margin-top:10px;color:#64748b;line-height:1.6}
#weatherPanel button{font-size:12px;padding:7px 10px;margin:3px 3px 0 0}
#weatherDetail{font-weight:600}
@media(max-width:700px){#weatherToggle{max-width:100px;font-size:11px}.rec-bottom-readers{margin-left:0}}
@media print{.weather-menu,.update-nav-badge{display:none!important}}
.hotel-login .login-brand strong{color:#ff3b30}
.hotel-login .login-brand>span{color:#73a7dd}
#workspace input:not([type=checkbox]):not([type=radio]),#workspace select,#workspace textarea,#modal input:not([type=checkbox]):not([type=radio]),#modal select,#modal textarea,#modal button,#workspace .toolbar button,#workspace .form-actions button{border-radius:9px}

/* Room-board preferences and lighter workspace accents. */
.board-settings-trigger{float:right;position:relative;z-index:1;font-size:12px;padding:7px 11px;background:#fff;border:1px solid #d5dfeb;color:#526b87}
.board-settings-dialog{width:min(570px,92vw);max-height:85vh;overflow:auto;padding:22px;border:1px solid #dbe4ed;border-radius:16px}.board-settings-dialog p{font-size:12px;color:#64748b}.board-settings-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.board-settings-fields label{display:flex;flex-direction:column;gap:6px;font-size:12px}.board-settings-fields input,.board-settings-fields select{width:100%;min-height:32px}.board-settings-dialog h3{font-size:14px;margin:18px 0 10px}.board-settings-dialog .toolbar{margin-top:20px;justify-content:flex-end}
html[data-theme] #nav button.active{background:#fff0d6!important;color:#925d18!important;border-left-color:#efbb67!important}html[data-theme] #workspace .brand>span{color:#328b98!important}
#workspace .metrics{gap:10px}#workspace .metric{padding:12px 14px;border-top-width:2px;min-height:86px;border-radius:11px}#workspace .metric label{font-size:12px;line-height:1.4}#workspace .metric strong,#workspace .metric b{font-size:24px;line-height:1.3;margin-top:7px}

.board-settings-dialog h2{font-size:20px;margin:0 0 10px}.board-settings-dialog h3{margin:12px 0 8px}.board-settings-dialog .board-settings-fields{gap:9px}.board-settings-dialog input[type=color]{padding:3px;height:34px;min-height:34px}.board-settings-dialog .board-setting-check{display:inline-flex;flex-direction:row;align-items:center;gap:7px;margin:8px 18px 0 0;font-size:12px}.board-settings-dialog .board-setting-check input{width:15px;height:15px;margin:0}.board-settings-dialog .toolbar{position:sticky;bottom:-22px;background:white;padding:12px 0;margin-top:10px}

.board-settings-dialog{width:min(480px,94vw)!important;padding:16px!important}.board-settings-dialog h2{font-size:18px}.board-settings-dialog p{margin:6px 0;font-size:11px}.board-settings-fields label{margin:0;gap:4px;font-size:11px}.board-settings-dialog .board-settings-fields{gap:8px 12px}.board-settings-dialog input:not([type=checkbox]),.board-settings-dialog select{padding:4px 7px;height:28px;min-height:28px;font-size:12px}.board-settings-dialog input[type=color]{width:44px;height:26px;min-height:26px;padding:2px}.board-settings-dialog h3{margin:10px 0 7px;font-size:12px}.board-settings-dialog .toolbar{bottom:-16px;padding:8px 0}.board-settings-dialog button{padding:6px 10px;font-size:12px}
#workspace .metrics{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:7px}#workspace .metric{padding:8px 10px;min-height:65px;border-radius:8px}#workspace .metric label{font-size:11px;margin-bottom:4px;gap:0}#workspace .metric strong,#workspace .metric b{font-size:20px;margin-top:3px}
#workspace header .weather-menu{position:fixed;right:175px;top:22px;width:180px;z-index:8}#workspace header .top-row{padding-right:195px}#weatherToggle{width:180px;max-width:180px}#workspace header .account-menu{margin-left:auto}@media(max-width:700px){#workspace header .weather-menu{right:130px;top:18px;width:110px}#weatherToggle{width:110px;max-width:110px}#workspace header .top-row{padding-right:120px}}
#workspace header .account-menu{position:fixed;right:16px;top:22px;width:150px;z-index:9}#workspace header .account-menu>button{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#workspace header .weather-menu{right:185px}@media(max-width:700px){#workspace header .account-menu{right:12px;top:18px;width:120px}#workspace header .account-menu>button{max-width:120px}#workspace header .weather-menu{right:145px;width:95px}#weatherToggle{width:95px;max-width:95px}}

#workspace header .weather-menu,#workspace header .account-menu{position:relative;top:auto;right:auto;width:auto;flex:0 0 auto}#workspace header .top-row{padding-right:0;display:flex;flex-wrap:nowrap}#workspace header #topNav{flex:1;min-width:0}#workspace header .account-menu{margin-left:auto}#workspace header #weatherToggle{width:auto;max-width:185px}#workspace header .account-menu>button{max-width:none}.review-categories{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}.review-categories .review-confirm{font-size:12px;margin:0;padding:7px}.review-difference{grid-column:1/-1;color:#b42335;font-weight:600}.shift-cash-difference{font-weight:700}@media(max-width:650px){.review-categories{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px}.review-categories .review-confirm{font-size:10px;padding:3px}#weatherToggle{max-width:95px!important}}

/* Reference card: left accent, top metadata, lower-corner price and status. */
html[data-theme] #workspace .compact-room-grid .compact-card{position:relative;border:1px solid #dfe8e6!important;border-left:4px solid #6bbd91!important;border-radius:9px!important;box-shadow:0 1px 3px #233e3510;padding:0!important;text-align:left}
html[data-theme] #workspace .compact-room-grid .compact-card .room-type{position:absolute;left:22px;right:28px;top:5px;text-align:left!important;padding:0!important;line-height:20px;font-weight:600;color:#607d76;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] #workspace .compact-room-grid .compact-card strong{position:absolute;top:31px;left:10px;right:43px;padding:0!important;line-height:29px;color:#285e4c}
html[data-theme] #workspace .compact-room-grid .compact-card .card-guest{position:absolute;top:63px;left:10px;right:10px;padding:0;line-height:19px;height:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#345f51}
html[data-theme] #workspace .compact-room-grid .compact-card .card-days{position:absolute;top:36px;right:9px;padding:0;color:#648277;line-height:20px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-source{position:absolute;top:6px;right:7px;background:transparent!important;color:#657c75!important;min-width:16px;padding:0;line-height:18px;border-radius:0}
html[data-theme] #workspace .compact-room-grid .compact-card .card-price{position:absolute;bottom:7px;right:9px;padding:0;color:#6b7d79;font-weight:400;line-height:18px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-marks{position:absolute;bottom:6px;left:9px;right:77px;padding:0;line-height:17px;gap:4px}.rec-room-pick{top:6px;left:7px}
html[data-theme] #workspace .compact-room-grid .room.room-in-debt strong{color:#c31126}

/* Card typography is independent of status; debt has one shared red. */
html[data-theme] #workspace .compact-room-grid .compact-card .room-type{text-align:center!important;color:#000!important;font-weight:600}
html[data-theme] #workspace .compact-room-grid .compact-card strong,html[data-theme] #workspace .compact-room-grid .compact-card .card-guest{color:#000!important}
html[data-theme] #workspace .compact-room-grid .compact-card.room-in-debt strong,html[data-theme] #workspace .compact-room-grid .compact-card .card-marks .card-debt{color:#c31126!important;font-weight:800}
html[data-theme] #workspace .compact-room-grid .compact-card .card-price{font-weight:700!important}
html[data-theme] #workspace .compact-room-grid .compact-card[data-board-state=selfuse]{border-left-color:#a78bfa!important}html[data-theme] #workspace .compact-room-grid .compact-card[data-board-state=temporary]{border-left-color:#e6ac50!important}

/* Quick reservation: compact room-type workspace. */
.quick-reservation h3{border-left:3px solid #13a6b2;padding-left:10px}.quick-dates,.quick-details{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:18px;margin:22px 0}.quick-reservation label{display:flex;flex-direction:column;gap:8px;font-size:14px}.quick-reservation output{padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;min-height:40px}.quick-reservation td input{max-width:85px;padding:6px}.quick-choices{display:flex;gap:6px}.quick-choices button{padding:4px 10px;min-height:30px}.quick-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #e2e8f0;padding-top:16px}#quickSummary{color:#087e8b;font-weight:600}#quickError{color:#c62828}footer #footerStore,footer #footerBusiness,footer #footerOperator{white-space:nowrap;font-size:13px}footer .announcement-bar{flex:1;min-width:100px;max-width:40%}@media(max-width:900px){.quick-dates,.quick-details{grid-template-columns:repeat(2,minmax(120px,1fr))}footer{flex-wrap:wrap}}
/* Shared compact density: business forms/tables only, not room cards/navigation. */
html[data-theme] #workspace main,html[data-theme] #modal{--control-height:34px;--field-gap:5px}
html[data-theme] #workspace main :is(input,select):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),
html[data-theme] #modal :is(input,select):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]){box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);padding:5px 9px;font-size:13px;line-height:22px;border-radius:8px}
html[data-theme] #workspace main textarea,html[data-theme] #modal textarea{padding:7px 9px;font-size:13px;line-height:1.5;min-height:68px;border-radius:8px}
html[data-theme] #workspace main label,html[data-theme] #modal label{font-size:13px;gap:var(--field-gap)}
html[data-theme] #workspace main .panel{padding:14px;margin-bottom:12px}
html[data-theme] #workspace main .toolbar,html[data-theme] #modal .toolbar{gap:8px;margin-bottom:10px}
html[data-theme] #workspace main .toolbar label,html[data-theme] #modal form label{margin-top:0;margin-bottom:8px}
html[data-theme] #workspace main table,html[data-theme] #modal table{font-size:13px}
html[data-theme] #workspace main :is(th,td),html[data-theme] #modal :is(th,td){padding:7px 10px;line-height:20px;height:auto;vertical-align:middle}
html[data-theme] #workspace main th,html[data-theme] #modal th{padding-top:8px;padding-bottom:8px}
html[data-theme] #workspace main :is(.toolbar,.quick-actions,.quick-choices,td) button,
html[data-theme] #modal :is(form,.toolbar,td) button:not(.rec-action):not(.room){box-sizing:border-box;min-height:var(--control-height);height:auto;padding:5px 11px;font-size:13px;line-height:22px;border-radius:8px}
html[data-theme] #workspace main .notice{margin:10px 0;padding:9px 12px;font-size:12px;line-height:1.6}
html[data-theme] #workspace main .quick-reservation{padding:16px}
html[data-theme] #workspace main .quick-dates,html[data-theme] #workspace main .quick-details{gap:12px 16px;margin:0 0 14px}
html[data-theme] #workspace main .quick-details{margin-top:12px}
html[data-theme] #workspace main .quick-reservation output{box-sizing:border-box;height:34px;min-height:34px;padding:5px 9px;font-size:13px;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] #workspace main .quick-reservation td input{width:70px;max-width:70px;height:30px;min-height:30px;padding:3px 8px}
html[data-theme] #workspace main .quick-choices{gap:5px}
html[data-theme] #workspace main .quick-choices button{height:30px;min-height:30px;min-width:30px;padding:3px 8px}
html[data-theme] #workspace main #quickSummary{margin:10px 0;font-size:13px}
html[data-theme] #workspace main .quick-actions{padding-top:12px;gap:8px}
html[data-theme] #modal .modal-head{padding:12px 16px}
html[data-theme] #modal #modalBody{padding:16px}
@media print{html[data-theme] #workspace main :is(th,td),html[data-theme] #modal :is(th,td){padding:5px 8px}}
html[data-theme] #modal .form-grid,html[data-theme] #workspace main .form-grid{gap:12px 16px}
html[data-theme] #workspace #pageTools .toolbar{margin-bottom:12px}
html[data-theme] #workspace #pageTools h2{margin:0;font-size:23px;line-height:34px}
/* Six independent status colors also work before browser preferences load. */
html[data-theme] #workspace .compact-room-grid .room[data-board-state=clean]{background:#d1fae5!important;border-left-color:#62ad87!important}
html[data-theme] #workspace .compact-room-grid .room[data-board-state=dirty]{background:#e0e7e4!important;border-left-color:#879890!important}
html[data-theme] #workspace .compact-room-grid .room[data-board-state=occupiedClean]{background:#ede9fe!important;border-left-color:#ac99d2!important}
html[data-theme] #workspace .compact-room-grid .room[data-board-state=occupiedDirty]{background:#fce7e6!important;border-left-color:#d89a98!important}
html[data-theme] #workspace .compact-room-grid .room[data-board-state=maintenance]{background:#dbeafe!important;border-left-color:#91afd3!important}
html[data-theme] #workspace .compact-room-grid .room[data-board-state=reserved]{background:#ffedd5!important;border-left-color:#d9b17c!important}
.planning-filters{justify-content:flex-end}.planning-filters .planning-legend{margin-right:auto;display:flex;gap:8px}.planning-legend i{font-style:normal;padding:5px 12px;border-radius:6px;font-size:12px}.planning-matrix{overflow:auto;max-height:70vh}.planning-matrix table{min-width:1050px;table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0}.planning-matrix th:first-child{width:150px;position:sticky;left:0;background:#f4f6fa;z-index:1}.planning-matrix thead th{position:sticky;top:0;z-index:2;background:#edeafa}.planning-matrix thead th:first-child{z-index:3}.planning-matrix td{text-align:center;border-right:1px solid #e6eaf0}.planning small{display:block;font-size:11px;color:#64748b;margin-top:4px}.planning-cell{min-height:60px;padding:7px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;margin:3px 0}.planning-cell span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-reserved{background:#fff0d4;color:#8a5516}.plan-empty{background:#e8f7f6;color:#26716a}.plan-checked_in{background:#e9e5fa;color:#564181}.plan-departing{background:#ffe2df;color:#a33b32}.plan-blocked{background:#e5e7eb;color:#52606d}.planning-matrix progress{display:block;width:80%;height:7px;margin:8px auto;accent-color:#16a5a1}.planning-error{color:#b42335}.planning-matrix .planning-cell button{font-size:11px!important;min-height:24px!important;line-height:16px!important;padding:3px 8px!important}@media print{.planning-matrix{max-height:none;overflow:visible}.planning-matrix table{min-width:0}.planning-matrix th:first-child{position:static}}
/* Daily allocation desk, isolated from other workspaces. */
.schedule-desk .desk-filters{background:white;padding:12px;border:1px solid #e2e8f0;border-radius:10px;align-items:end;flex-wrap:wrap}.schedule-desk .desk-filters>input{flex:1;min-width:200px}.schedule-desk .desk-filters label{min-width:130px}.schedule-desk .desk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.schedule-desk .desk-stats>div{padding:14px 18px;border-radius:10px;display:flex;flex-direction:column;gap:6px}.schedule-desk .desk-stats strong{font-size:25px}.schedule-desk .desk-stats small{color:#526273}.schedule-desk .desk-arrival{background:#ffedd5}.schedule-desk .desk-departure{background:#fce7e6}.schedule-desk .desk-staying{background:#ede9fe}.schedule-desk .desk-vacant{background:#d1fae5}.schedule-desk .desk-columns{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px}.schedule-desk .desk-pending,.schedule-desk .desk-details{background:white;border:1px solid #e2e8f0;padding:14px;border-radius:10px;min-width:0}.schedule-desk .desk-pending{position:static;width:auto;height:auto;color:inherit;max-height:68vh;overflow:auto}.schedule-desk h3{font-size:15px;margin:0 0 12px}.schedule-desk .desk-pending article{border:1px solid #e6d7bd;background:#fff7eb;border-radius:8px;padding:12px;margin:12px 0}.schedule-desk article p{font-size:12px}.schedule-desk article button{font-size:11px;padding:5px 8px;margin:6px 4px 0 0}.schedule-desk .desk-table{overflow:auto;max-height:65vh}.schedule-desk table{min-width:930px;width:100%}.schedule-desk table th{white-space:nowrap}.schedule-desk table td:last-child{min-width:175px}.schedule-desk td button{font-size:11px!important;margin:2px;min-height:27px!important;line-height:17px!important;padding:4px 7px!important}.schedule-desk .desk-state{display:inline-block;padding:3px 7px;border-radius:5px;white-space:nowrap}.schedule-desk .desk-reserved{background:#ffedd5}.schedule-desk .desk-checked_in{background:#ede9fe}.schedule-desk .desk-departing{background:#fce7e6}.schedule-desk .desk-empty{background:#d1fae5}.schedule-desk .desk-dirty{background:#e0e7e4}.schedule-desk .desk-blocked{background:#dbeafe}.schedule-desk .desk-pages{justify-content:flex-end;margin-top:10px}@media(max-width:900px){.schedule-desk .desk-stats{grid-template-columns:repeat(2,1fr)}.schedule-desk .desk-columns{grid-template-columns:1fr}.schedule-desk .desk-pending{max-height:260px}}@media print{.schedule-desk .desk-columns{display:block}.schedule-desk .desk-pending,.schedule-desk .desk-table{max-height:none;overflow:visible}.schedule-desk table{min-width:0}}
/* Daily desk: low summary cards on the detail side, independent sticky header. */
.schedule-desk .desk-columns{align-items:start;margin-top:10px}
.schedule-desk .desk-details>.desk-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.schedule-desk .desk-details>.desk-stats>div{padding:9px 11px;gap:3px;min-height:76px;justify-content:center;border-radius:8px}
.schedule-desk .desk-details>.desk-stats label{font-size:12px;line-height:17px;margin:0}
.schedule-desk .desk-details>.desk-stats strong{font-size:19px;line-height:24px}
.schedule-desk .desk-details>.desk-stats small{font-size:11px;line-height:15px}
.schedule-desk .desk-pending{margin-top:0}
.schedule-desk .desk-table{position:relative;isolation:isolate;overflow:auto}
html[data-theme] #workspace main .schedule-desk .desk-table thead th{position:sticky;top:0;z-index:3;background:#eeedf7;box-shadow:0 1px 0 #dce2ed}
.schedule-desk .desk-table table{border-collapse:separate;border-spacing:0}
@media(max-width:650px){.schedule-desk .desk-details>.desk-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{html[data-theme] #workspace main .schedule-desk .desk-table thead th{position:static}.schedule-desk .desk-details>.desk-stats{break-inside:avoid}}

/* A main-room anchor distinguishes equal-sized linked-room groups. */
html[data-theme] #workspace .compact-room-grid .compact-card span.card-link-group{position:absolute;left:9px;right:8px;bottom:26px;font-size:11px;font-weight:700;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;color:#283b53}
/* Separate guest, linked group and footer rows, including the smallest card size. */
html[data-theme] #workspace .compact-room-grid .compact-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:22px 30px 20px 18px 20px;align-content:start;column-gap:4px;min-height:126px!important;padding:5px 8px!important;box-sizing:border-box}
html[data-theme] #workspace .compact-room-grid .compact-card :is(.room-type,strong,.card-guest,.card-link-group,.card-price,.card-days,.card-source,.card-marks){position:static!important;inset:auto!important;min-width:0;margin:0;padding:0!important}
html[data-theme] #workspace .compact-room-grid .compact-card .room-type{grid-area:1/1/2/3;padding-left:18px!important;padding-right:22px!important}
html[data-theme] #workspace .compact-room-grid .compact-card .card-source{grid-area:1/2;justify-self:end;z-index:1}
html[data-theme] #workspace .compact-room-grid .compact-card strong{grid-area:2/1;align-self:center}
html[data-theme] #workspace .compact-room-grid .compact-card .card-days{grid-area:2/2;align-self:center}
html[data-theme] #workspace .compact-room-grid .compact-card .card-guest{grid-area:3/1/4/3;line-height:20px;height:20px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-link-group{grid-area:4/1/5/3;line-height:18px}
html[data-theme] #workspace .compact-room-grid .compact-card .card-marks{grid-area:5/1;align-self:end;flex-wrap:nowrap;white-space:nowrap}
html[data-theme] #workspace .compact-room-grid .compact-card .card-price{grid-area:5/2;align-self:end;white-space:nowrap}
/* Keep stay days at the far end of the room-number row. */
html[data-theme] #workspace .compact-room-grid .compact-card .card-days{grid-area:2/1/3/3;justify-self:end;align-self:center}
html[data-theme] #workspace .compact-room-grid .compact-card strong{grid-area:2/1/3/3;padding-right:42px!important}
.quick-reservation .quick-dates,.quick-reservation .quick-details{grid-template-columns:repeat(4,minmax(130px,220px));gap:10px 14px;margin:12px 0;justify-content:start}.quick-reservation label{font-size:13px;gap:4px}.quick-reservation output{min-height:34px;padding:6px 9px;box-sizing:border-box}.quick-reservation .quick-confirm{display:flex;flex-direction:row;align-items:center;gap:6px}.quick-reservation td,.quick-reservation th{padding:7px 10px}@media(max-width:800px){.quick-reservation .quick-dates,.quick-reservation .quick-details{grid-template-columns:repeat(2,minmax(120px,1fr))}}
/* Quick-booking details: nine fields in two compact desktop rows. */
.quick-reservation .quick-details{grid-template-columns:repeat(5,minmax(0,1fr));max-width:1200px;gap:10px 12px;margin:10px 0}.quick-reservation .quick-details label{font-size:12px;line-height:18px}.quick-reservation .quick-details :is(input,select,output){width:100%;min-width:0;box-sizing:border-box}.quick-reservation .quick-details label:last-child{grid-column:4/6}@media(max-width:700px){.quick-reservation .quick-details{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-reservation .quick-details label:last-child{grid-column:auto}}
