:root{--ink:#183c5b;--primary:#246fa8;--muted:#71889d;--paper:#f2f7fc;--line:#dfe9f2;--orange:#c67c42;--white:#fff;--serif:Georgia,'Songti SC',serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:7px;padding:9px 14px}button:hover{background:#eaf4fc}button:focus-visible,a:focus-visible{outline:3px solid #4b9dd7;outline-offset:2px}.sidebar{position:fixed;inset:0 auto 0 0;width:225px;background:#123b60;color:#edf7ff;padding:39px 22px;display:flex;flex-direction:column}.brand{text-decoration:none;display:block;font:44px var(--serif);letter-spacing:4px;margin:0 13px}.brand>span{font-size:30px;color:#b9e1ff}.brand i{display:block;font:9px sans-serif;letter-spacing:3.7px;margin-top:11px}.season{font-size:9px;letter-spacing:1.5px;color:#9abbd7;border-top:1px solid #315b7e;padding-top:22px;margin:28px 10px 20px}nav{display:grid;gap:8px}nav button{border:0;background:transparent;color:#bfd8ed;display:flex;gap:17px;align-items:center;text-align:left;padding:14px 17px;font-size:18px}nav button span{font-size:14px}nav button.active{background:#2b638f;color:#fff}nav button:hover{background:#204e75}.side-bottom{margin-top:auto;font-size:11px;padding:18px 10px 0;color:#c0d8ec}.side-bottom small{display:block;color:#91b4d0;font-size:10px;margin-top:14px}.status-dot{display:inline-block;background:#4c9bd1;width:7px;height:7px;border-radius:50%;margin-right:7px}.workspace{margin-left:225px}header{height:72px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#738ba0;background:#ffffff}header b{font-weight:400;margin:0 15px;color:#b9cad9}.local-label{font-size:9px;letter-spacing:1.5px}.local-label .status-dot{margin-left:8px}main{max-width:1550px;margin:auto;padding:24px 40px 0}.notice{background:#e9f4fd;color:#517899;font-size:11px;padding:10px 14px;border:1px solid #d5e8f7;border-radius:5px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:33px 0 29px}.eyebrow{font-size:9px;letter-spacing:2px;color:#7393ad}h1{font-family:var(--serif);font-weight:500;letter-spacing:.6px;font-size:29px;margin:13px 0 10px}p{color:var(--muted);line-height:1.7;margin:5px 0;font-size:12px}.primary{background:var(--primary);color:white;border-color:var(--primary);padding:12px 19px;white-space:nowrap}.primary:hover{background:#195985}.today-line{font-size:12px;margin-bottom:17px}.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:26px}.stat{background:white;border:1px solid var(--line);border-radius:9px;padding:20px;text-align:left;min-width:0}.stat>span{display:flex;justify-content:space-between;font-size:12px;color:#637f96}.stat i{font-style:normal;color:#9cb4c8}.stat strong{display:block;font-family:var(--serif);font-size:34px;font-weight:500;margin:17px 0 8px;font-variant-numeric:tabular-nums}.stat small{color:#849db2;font-size:10px}.stat.due{background:#e7f3fd;border-color:#cce4f7}.stat.due strong{font-size:29px;color:#246fa8}.overview-grid{display:grid;grid-template-columns:1.8fr 1fr;gap:22px;margin-bottom:25px}.panel{border:1px solid var(--line);border-radius:9px;background:white;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:23px 25px 18px;gap:12px}h2{font-size:16px;font-weight:600;margin:0}h3{font-size:12px;font-weight:500;margin:0 0 18px}h3 b{float:right;color:#93abc0;font-size:13px;font-weight:400}.text-button{padding:5px 0;background:transparent;border:0;font-size:11px;color:#4d7ca1;white-space:nowrap}.activity-grid{display:grid;grid-template-columns:1fr 1fr;padding:5px 25px 26px;gap:24px}.activity-grid>div+div{border-left:1px solid var(--line);padding-left:24px}.amber-dot{background:#c39464}.activity{display:flex;align-items:center;gap:10px;border:0;padding:13px 0;width:100%;text-align:left;border-top:1px solid #eef4fa;border-radius:0}.avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#e9f4fd;width:33px;height:36px;border-radius:6px;color:#5b86a7;font:16px var(--serif)}.activity b{font-size:12px;font-weight:500}.activity small,td small,th small{display:block;color:#7e98ad;font-size:10px;margin-top:7px;line-height:1.5}.activity small{font-size:9px}.activity-tag{margin-left:auto;font-size:9px;color:#6f92ad;white-space:nowrap}.occupancy{border-radius:9px;background:#e6f3fe;position:relative;overflow:hidden;padding:26px;min-height:270px}.occupancy .eyebrow{font-size:8px;letter-spacing:1.4px;color:#658dad}.occupancy h2{font-family:var(--serif);font-size:21px;font-weight:400;margin-top:13px}.mountain{position:absolute;right:20px;top:38px;color:#bfdff5;font:150px var(--serif);transform:rotate(-7deg);pointer-events:none}.occupancy-bottom{position:relative;margin-top:66px}.occupancy-bottom>span{font-size:11px}.occupancy-bottom strong{float:right;font-family:var(--serif);font-size:33px;margin-top:-12px}.occupancy-bottom strong small{font-size:14px;margin-left:4px}.occupancy-bottom p{font-size:9px;color:#6386a2}progress{display:block;width:100%;height:5px;appearance:none;border:0;margin:18px 0 12px}progress::-webkit-progress-bar{background:#cbe2f3;border-radius:10px}progress::-webkit-progress-value{background:#3684bd;border-radius:10px}progress::-moz-progress-bar{background:#3684bd}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:10px;font-weight:400;color:#7994aa;background:#f5f9fd;padding:14px 24px;border-bottom:1px solid var(--line)}td{padding:18px 24px;border-bottom:1px solid #edf3f9;font-size:12px}tbody tr:last-child td{border-bottom:0}.guest-link{padding:0;border:0;background:transparent;font-weight:500}.guest-link:hover{text-decoration:underline;background:transparent}.amount{font-variant-numeric:tabular-nums}.badge{display:inline-block;border-radius:4px;font-size:10px;padding:5px 8px;background:#eef3f8;color:#7f95a8;white-space:nowrap}.green{background:#e7f3fc;color:#3278ab}.amber{background:#f8efdf;color:#b28746}.red{background:#f6eae5;color:#b58068}.icon-button{border:0;background:transparent;color:#7c9bb2;padding:4px}.small-button{font-size:11px;padding:6px 11px;background:#eef6fd}.quiet{color:#819db3;padding:20px 0;font-size:12px}.quiet span{display:block;margin-top:10px;font-size:10px;color:#abbecd}.empty{padding:45px 25px;text-align:center;color:#7d98ae}.empty span{display:block;margin-top:10px;font-size:12px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:22px 0}.toolbar-group{display:flex;align-items:center;gap:8px}.toolbar b{font-size:12px;margin-left:10px;font-weight:500}label{font-size:12px;color:#69879f}input,select,textarea{border:1px solid #d7e5f0;background:white;border-radius:6px;padding:10px;color:var(--ink);max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #78b4df;outline-offset:1px}input[type=date]{padding:8px;margin-left:8px}.search-label{border:1px solid var(--line);border-radius:6px;padding:0 12px;background:white;min-width:300px}.search-label input{border:0;min-width:250px;background:transparent}.check-label{display:flex;align-items:center;gap:8px}.calendar-scroll{overflow:auto;max-height:600px}.calendar{table-layout:fixed;min-width:1400px}.calendar th:first-child{width:195px;position:sticky;left:0;z-index:2;background:#f2f8fd}.calendar th{padding:10px 8px;text-align:center}.calendar tbody th{text-align:left;padding:12px 16px;font-size:11px;color:#4a7596;white-space:normal;border-bottom:1px solid var(--line)}.calendar td{padding:4px 2px;height:55px;border-right:1px solid #eef4fa;text-align:center}.calendar thead th button{border:0;background:transparent;padding:7px;width:100%;font-size:11px}.calendar thead .selected{background:#d8ebfa;color:#286c9e}.calendar .today{background:#edf7ff}.calendar-booking{width:100%;height:32px;border:0;border-radius:4px;background:#dcedfa;color:#386f98;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:10px;padding:4px}.calendar-booking.arrival{border-left:3px solid #3b8bc4}.calendar-empty{width:100%;height:36px;border:0;background:transparent;color:#b6cede}.spaced{margin-top:24px}.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.room-card{padding:24px}.room-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.room-symbol{font:36px var(--serif);color:#6a9fc7}.room-card h2{font-size:16px}.beds{display:flex;gap:7px;margin:24px 0}.bed{display:flex;justify-content:center;align-items:center;min-width:32px;min-height:34px;border:1px solid #cfe2f1;border-radius:4px;background:#f0f7fd;color:#7fa2bc;font-size:10px}.bed.occupied{background:#3379ad;color:white;border-color:#3379ad}.room-foot{border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#6f91ac}.help{margin:15px 0;font-size:11px;line-height:1.8;color:#819aaf}.payment-stats{grid-template-columns:repeat(3,minmax(0,1fr))}footer{display:flex;align-items:center;gap:15px;margin-top:32px;padding:22px 0;font-size:9px;letter-spacing:1px;color:#839db1;border-top:1px solid var(--line)}footer>span{letter-spacing:0;font-size:10px;color:#95adbf}footer button{margin-left:auto;border:0;background:transparent;font-size:10px;padding:5px}#synced{font-size:9px;white-space:nowrap}dialog{padding:0;border:1px solid var(--line);border-radius:12px;width:610px;max-width:calc(100vw - 24px);max-height:90vh;overflow:auto;box-shadow:0 30px 90px #123c602b}dialog::backdrop{background:#173b6066;backdrop-filter:blur(3px)}#editor{padding:28px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.dialog-head h2{margin-top:9px;font-size:21px}.dialog-head button{border:0;background:transparent}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>span,.field-title{font-size:12px;color:#6485a1}.field input[type=date]{margin:0;width:100%;padding:10px}.wide{grid-column:1/-1}.field p{margin:8px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:20px;border-top:1px solid var(--line)}#form-error{color:#ad573e;margin-top:16px;min-height:18px}.bed-picker{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.bed-picker label{padding:10px;background:#edf6fe;border-radius:5px;font-size:11px}.payment-summary{padding:16px;background:#ebf6ff;border-radius:6px;font-size:12px;color:#6c8ba3}.payment-summary strong{display:block;font-size:20px;margin-top:10px;color:#266e9f}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(90px);opacity:0;transition:.2s;background:#246fa8;color:white;padding:13px 24px;border-radius:8px;font-size:12px;z-index:9;box-shadow:0 8px 25px #0002}#toast.show{opacity:1;transform:translateX(-50%)}
@media(min-width:1500px){h1{font-size:33px}.stat strong{font-size:39px}.stat.due strong{font-size:34px}}@media(max-width:1150px){.sidebar{width:195px;padding:30px 16px}.workspace{margin-left:195px}main{padding:22px 24px 0}header{padding:0 24px}.stats{gap:10px}.stat{padding:16px 12px}.stat strong{font-size:29px}.stat.due strong{font-size:25px}.overview-grid{grid-template-columns:1.6fr 1fr;gap:15px}.activity-grid{gap:12px;padding-left:18px;padding-right:18px}.activity-grid>div+div{padding-left:12px}.activity-tag{display:none}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:25px}.occupancy{padding:22px}.occupancy h2{font-size:19px}.panel-head{padding:20px}}@media(max-width:800px){.sidebar{position:relative;width:100%;padding:16px 18px 10px;display:block}.brand{font-size:27px;letter-spacing:2px;margin:0;display:flex;align-items:center;gap:3px}.brand>span{font-size:20px}.brand i{display:inline;font-size:8px;margin:0 0 0 10px;letter-spacing:2px}.season,.side-bottom{display:none}nav{display:flex;gap:4px;margin-top:17px;overflow:auto}nav button{padding:10px;gap:7px;white-space:nowrap;font-size:15px}nav button span{font-size:12px}.workspace{margin-left:0}header{height:49px;padding:0 20px;font-size:10px}main{padding:18px 18px 0}.page-heading{margin:24px 0;align-items:flex-start}.eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:23px;line-height:1.5;margin:10px 0}.page-heading .primary{font-size:11px;padding:11px;align-self:center}.page-heading p{font-size:11px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat:last-child{grid-column:1/-1}.stat.due{display:grid;grid-template-columns:1fr 1fr;align-items:center}.stat.due strong{grid-column:2;grid-row:1/3;text-align:right;font-size:30px;margin:0}.stat strong{font-size:32px;margin:12px 0 8px}.stat small{font-size:9px}.stat>span{font-size:11px}.overview-grid{grid-template-columns:1fr}.occupancy{min-height:215px}.occupancy-bottom{margin-top:45px}.activity-grid{padding:4px 18px 18px;gap:16px}.panel-head{padding:20px 18px}.activity small{font-size:9px}td,th{padding:15px 18px}.payment-stats{grid-template-columns:1fr}.payment-stats .stat{display:block}.payment-stats .stat strong{text-align:left}footer{flex-wrap:wrap;gap:10px}footer>span:nth-child(2){display:none}footer button{margin-left:auto}.room-grid{gap:12px}.room-card{padding:18px}.room-card h2{font-size:14px}.beds{flex-wrap:wrap}.toolbar{flex-wrap:wrap}.toolbar-group{flex-wrap:wrap}.toolbar b{font-size:11px}.search-label{width:100%}.search-label input{width:90%;min-width:0}.today-line{font-size:10px}.notice{line-height:1.6;font-size:10px}.local-label{font-size:8px}.help{font-size:10px}.calendar{min-width:1250px}.calendar th:first-child{width:170px}.calendar-scroll{max-height:480px}}@media(max-width:420px){.page-heading{flex-direction:column;gap:6px}.page-heading .primary{align-self:flex-start}.room-grid{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.wide{grid-column:auto}#editor{padding:22px}.activity-grid{grid-template-columns:1fr}.activity-grid>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:15px}.activity-tag{display:block}nav button{padding:10px 8px}nav button span{font-size:11px}header b{margin:0 8px}}
@media(max-width:800px){nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;overflow:visible}nav button{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:8px 1px;font-size:15px}nav button span{font-size:10px}}
/* Blue & white alpine palette. Status warnings retain amber/red for legibility. */
body{background:linear-gradient(160deg,#f8fbff 0%,#eff6fc 100%);min-height:100vh}
.sidebar{background:linear-gradient(165deg,#163f66 0%,#102f4f 100%);isolation:isolate}
.sidebar::after{content:"";position:absolute;left:0;right:0;bottom:83px;height:155px;background:#bddff6;clip-path:polygon(0 100%,0 70%,23% 25%,39% 55%,62% 0,100% 85%,100% 100%);opacity:.13;z-index:-1;pointer-events:none}
header{background:rgba(255,255,255,.92)}
nav button.active{box-shadow:inset 3px 0 #9ad7ff}
.panel,.stat{box-shadow:0 3px 14px #285f8a04}
.stat.due{background:linear-gradient(135deg,#f1f9ff,#e2f0fc)}
.occupancy{background:#e8f5ff;border:1px solid #d1e7f6;isolation:isolate}
.occupancy::before{content:"";position:absolute;inset:0;background:linear-gradient(#f0f9ffcf 0%,#f0f9ff30 43%,#e9f5ffba 72%,#e9f5ff 100%);z-index:-1;pointer-events:none}
.occupancy .eyebrow{color:#527f9f}.occupancy h2{color:#1c547c}
.mountain{display:none}
.occupancy-bottom{margin-top:74px}.occupancy-bottom strong{color:#236c9f}
.calendar-booking:hover{background:#c8e5f9}.calendar-booking.arrival{border-left-color:#287fb9}
.bed.occupied{box-shadow:0 2px 5px #3379ad20}
@media(max-width:800px){.sidebar::after{display:none}nav button.active{box-shadow:inset 0 -2px #9ad7ff}.occupancy-bottom{margin-top:62px}}

.snow-landscape{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}

.gender-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.gender-counts:empty{display:none}
@media(max-width:420px){.gender-counts{grid-template-columns:1fr}}
[hidden]{display:none!important}.login-screen{position:fixed;inset:0;z-index:100;background:linear-gradient(150deg,#143d62,#e6f4ff);display:grid;place-items:center;padding:20px}.login-card{width:430px;max-width:100%;background:#fff;border-radius:14px;padding:34px;box-shadow:0 20px 80px #1239}.login-card label{display:grid;gap:8px;margin:18px 0}.login-card input{width:100%}.login-card button{width:100%}#login-error{color:#ad573e;min-height:20px}#account-bar{margin-left:auto;margin-right:16px;font-size:11px;white-space:nowrap}#account-bar button{padding:5px 8px;margin-left:7px;font-size:10px}.section-title{margin:28px 0 16px}.row-actions{display:flex;gap:5px;flex-wrap:wrap;max-width:300px;white-space:normal}.row-actions button{font-size:11px;padding:6px 9px}.fields fieldset{margin:0;padding:15px;border:1px solid var(--line);border-radius:7px}.fields legend{font-size:12px;color:#5c809c;padding:0 7px}.shortage{color:#b35c36}.toolbar{flex-wrap:wrap}nav{gap:3px}nav button{padding-top:12px;padding-bottom:12px}.sidebar .season{margin-bottom:12px}.side-bottom{padding-top:12px}#editor select{width:100%}.payment-summary p{font-size:11px}
@media(max-width:800px){nav{grid-template-columns:repeat(4,minmax(0,1fr))}header .local-label{display:none}#account-bar{font-size:10px;margin-right:0}.login-card{padding:26px}.row-actions{max-width:200px}.fields fieldset{padding:12px}.toolbar button{font-size:11px}}

.room-state{width:100%;min-height:40px;padding:5px 2px;border:0;border-radius:5px;font-weight:700;font-size:12px;background:#e3effa;color:#244c71;white-space:nowrap}.room-state.empty{background:#f1f8fd;color:#5d8ba9}.room-state.full{background:#315477;color:#fff}.room-state.female{background:#edf0fc;color:#62679a}.room-state.male{background:#dcecfb;color:#315e8d}.room-state.mixed{background:#e0f2f5;color:#417786}.room-state.blocked{background:#f0f3f6;color:#8898a6}.room-calendar td{height:56px}.room-calendar th:first-child{width:174px}.selected-room-day{outline:2px solid #72a5cc;outline-offset:-2px}.onsite-charges{margin-top:24px}

.payment-stats{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:760px){.payment-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.calendar-scroll{max-height:none}

/* Compact date ranges and room-grouped inventory. */
.order-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;background:#fff;border:1px solid #d5e5f1;border-radius:14px;padding:18px;margin-bottom:18px}.order-filters label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#47657e}.order-filters input,.order-filters select{width:100%;min-width:0}.order-filters .search-label{grid-column:span 2}.order-filters .wide{grid-column:1/-1;margin:0}.filter-actions{display:flex;align-items:center;gap:14px;grid-column:span 2}.payment-followup{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:#eaf5ff;border:1px solid #c8e2f6;padding:14px 18px;border-radius:12px;margin-bottom:16px}.payment-followup span{font-size:12px;color:#47657e}.payment-followup.has-overdue{background:#fff4e8;border-color:#efc391}.inventory-groups{display:grid;gap:18px}.inventory-group{background:white;border:1px solid #cfdfec;border-radius:12px;overflow:hidden}.inventory-group header{display:flex;align-items:center;gap:16px;background:#eaf4fc;padding:10px 16px}.inventory-group h2{font-size:17px;margin:0}.inventory-group header span{color:#567187;font-size:12px;flex:1}.inventory-table th,.inventory-table td{padding:8px 16px;white-space:nowrap}.inventory-table .room-state{display:inline-block;min-width:70px;padding:4px 9px}.inventory-filters label{display:flex;gap:8px;align-items:center}@media(max-width:800px){.order-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.inventory-group header{gap:8px;flex-wrap:wrap}.inventory-group header span{min-width:120px}.filter-actions{flex-wrap:wrap}.inventory-filters{align-items:stretch}.inventory-filters label{flex-wrap:wrap}}
.inventory-group header{height:auto;min-height:40px;padding:7px 16px}.inventory-table th,.inventory-table td{padding:6px 16px}.inventory-table .room-state{min-height:0;width:auto;padding:2px 8px;line-height:1.4;text-align:left}
