:root{--ink:#263a3b;--deep:#213c3c;--green:#167d69;--gold:#d9982f;--paper:#f3f5f7;--line:#e0e5e8;--muted:#7a878d;--red:#b84642;--orange:#b47325}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft Yahei",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:5px;background:#fff;padding:9px 15px;color:var(--ink);transition:background .15s,border-color .15s}button:hover{background:#f0f5f4;border-color:#a4bdb7}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{border:1px solid #d7dfe1;border-radius:5px;padding:10px 12px;background:#fff;width:100%;min-width:0;color:var(--ink)}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #8fc2b7;outline-offset:2px}label{display:grid;gap:6px;margin:12px 0}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#116755}.checkout-button{background:#bd4e46;color:#fff;border-color:#bd4e46}.checkout-button:hover{background:#a63f38;color:white}.pilot{background:#f3e7cf;color:#77551f;font-size:11px;padding:6px 20px;display:flex;justify-content:center;gap:20px;letter-spacing:.7px;position:relative;z-index:2}.brand{font-size:46px;line-height:1;font-weight:650;letter-spacing:-4px}.brand span{color:#e8bc74;font-weight:400}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;color:var(--muted)}.login{max-width:440px;margin:7vh auto;padding:35px}.login .brand{color:var(--deep);font-size:64px;margin-bottom:24px}.login h1{font-size:30px;font-weight:600;line-height:1.5;margin:18px 0}.login form{margin-top:25px}.login form button{width:100%;margin:15px 0;padding:12px}.login>p{color:var(--muted)}.muted,small{color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:20px;margin-bottom:0}h2{font-size:17px;margin-bottom:16px}h3{font-size:15px}.app-bar{background:var(--deep);color:#fff;display:flex;align-items:center;padding:0 24px;gap:34px;min-height:82px}.brand-lockup{display:flex;gap:17px;align-items:center;min-width:190px}.brand-lockup b{font-size:14px;letter-spacing:1px}.brand-lockup small{display:block;font-size:8px;color:#9bb3af;letter-spacing:2px;margin-top:5px}nav{display:flex;align-self:stretch;align-items:stretch;flex:1;gap:2px;overflow-x:auto}nav button{white-space:nowrap;border:0;border-radius:0;background:none;color:#c4d5d2;padding:0 17px;position:relative;font-size:15px}nav button.selected,nav button:hover{color:#f1c075;background:#294747}nav button.selected:after{content:'';position:absolute;left:22px;right:22px;bottom:15px;height:2px;background:#e5b96e}.account{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:11px;color:#bbd0cb}.account button{background:#34514e;color:#d6e3e0;border:0;padding:7px 12px}main{max-width:1920px;margin:auto;padding:0 24px 15px}header{display:flex;align-items:center;justify-content:space-between;min-height:63px;gap:15px;border-bottom:1px solid var(--line);margin-bottom:20px}.page-crumb{display:flex;align-items:center;gap:18px}.page-crumb h1{font-size:15px;font-weight:650}.page-crumb p{margin:0;font-size:11px;color:var(--muted)}.crumb-divider{color:#c5cdd1}.header-actions{display:flex;align-items:center;gap:14px;font-size:11px}.header-actions button{padding:5px 12px;background:transparent}.badge{display:inline-block;font-size:11px;padding:4px 10px;border-radius:4px;background:#e2f0ea;color:#347d68;white-space:nowrap}.badge.warn{background:#faf0db;color:#a47b33}.badge.busy{background:#e0f0eb;color:#24816c}.desk-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:24px}.filter-group{display:flex;background:#e8edef;padding:4px;border-radius:6px;gap:2px}.filter{background:transparent;border:0;padding:7px 12px;font-size:12px;display:flex;gap:7px;align-items:center}.filter.selected{background:white;box-shadow:0 1px 4px #233b3910}.filter b{font-weight:500;color:#7c898b;margin-left:5px}.dot{display:inline-block;width:7px;height:7px;background:#a9b4b9;border-radius:50%;margin-right:3px}.dot.free{background:#a2b6ae}.dot.used{background:#1e9c7f}.dot.dirty{background:#d8a45b}.search-label{display:flex;gap:7px;align-items:center;background:white;border:1px solid var(--line);border-radius:5px;margin:0;padding:0 10px;width:180px}.search-label span{font-size:20px;color:#819090}.search-label input{border:0;padding:8px 0;background:transparent;font-size:12px;outline:none}.desk-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.desk-actions button{font-size:12px}.unpaid{font-size:12px;margin-right:10px;color:var(--muted)}.unpaid strong{font-size:19px;color:var(--red);margin:0 8px}.unpaid small{font-size:10px}.workspace-caption{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;gap:12px;color:var(--muted);font-size:11px}.workspace-caption h2{font-size:15px;margin:0;color:var(--ink);font-weight:650}.workspace-caption h2 span{font-size:9px;letter-spacing:1.8px;font-weight:400;color:#95a0a3;margin-left:12px}.room-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:14px}.room{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden;position:relative;min-height:210px}.room-top{padding:17px 17px 6px;display:flex;align-items:center;justify-content:space-between;gap:10px}.room-top strong{font-size:23px;font-weight:650;letter-spacing:-.5px}.room-status{font-size:11px;color:#8d9c96}.room-content{padding:5px 17px 15px;position:relative}.room-content p{font-size:11px;color:var(--muted);margin:4px 0}.room-content p.service-name{font-size:12px;font-weight:600}.room-content button{width:100%;margin-top:10px;font-size:11px;background:#f6f8f9;border-color:#e7ebed;padding:7px 6px}.room-symbol{font-size:38px;line-height:1;color:#d5e1de;margin:6px 0 15px;font-weight:300}.room-price{font-size:20px;font-weight:600;margin:7px 0 0}.room-price small{font-weight:400;font-size:10px;margin-left:8px}.room.used{background:#19876f;border-color:#19876f;color:white}.room.used .room-status{color:#c9eee4}.room.used p,.room.used small{color:#d0eee6}.room.used button{background:#ffffff1c;border-color:#ffffff30;color:white}.room.dirty{background:#faf4e9;border-color:#e8d3ad}.room.dirty .room-status{color:#ad7f38}.room.dirty .room-symbol{color:#d9bb8c}.room.dirty button{background:#fff9ec;border-color:#ead9bc;color:#9e7130}.room.used .room-content{padding-top:8px}.source-line{height:17px}.tech-section{border-top:1px solid #dbe2e5;margin-top:23px;padding-top:19px}.tech-meta{display:flex;gap:20px;align-items:center}.tech-meta .search-label{width:160px}.techs{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px}.tech{background:white;border:1px solid var(--line);border-radius:7px;padding:13px 15px;font-size:11px}.tech-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tech-head b{font-size:17px}.tech-head span{font-size:10px;color:#7c9c91}.tech p{color:#899a9c;margin:11px 0 13px}.tech-bottom{display:flex;justify-content:space-between;border-top:1px solid #edf1f2;padding-top:8px;color:#79938b}.tech-bottom small{font-size:9px}.tech.on-clock{background:#e4f3ed;border-color:#b7d9ca}.tech.on-clock .tech-head span{color:#25846b}.panel{background:#fff;border:1px solid var(--line);border-radius:7px;padding:20px;margin:18px 0}.section-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px;gap:12px}.section-head h2,.section-head p{margin:0}.count-badge{display:inline-block;margin-left:6px;padding:1px 7px;background:#edf2f1;color:#7e918c;font-size:11px;border-radius:5px}.unpaid-panel{margin:21px 0 12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left;font-size:12px}th{font-weight:500;color:#7a8a8d;background:#f5f7f8}th,td{padding:12px 14px;border-bottom:1px solid #edf0f1}td button{font-size:11px;padding:5px 14px;margin-left:12px}.empty{padding:28px;text-align:center;color:var(--muted);grid-column:1/-1}.rate-strip{display:flex;align-items:center;gap:24px;font-size:10px;color:#849194;flex-wrap:wrap}.rate-strip b{color:#647d78;font-weight:600}.rate-strip b span{font-weight:400;margin-left:5px}.rate-strip button{margin-left:auto;padding:5px 12px;font-size:10px}.warning{border:1px solid #e4c995;background:#fff8e8;color:#8f6c33;border-radius:5px;padding:12px 15px;margin:14px 0;font-size:12px}.warning h3{margin-bottom:6px}.warning p{margin:5px 0}.pending-row{padding:12px 0;border-top:1px solid #ead9b6;margin-top:10px}.pending-row button{margin:5px 7px 0 0}.pending-row code{overflow-wrap:anywhere}.inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline input{width:auto}footer{color:#9aa6a9;font-size:10px;margin-top:22px;border-top:1px solid var(--line);padding-top:14px;display:flex;gap:24px;justify-content:space-between}footer b{font-size:9px;letter-spacing:1.5px;color:#8a9b97}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.stat{padding:18px;background:#f9fbfa;border:1px solid #e5ebe8;border-radius:6px}.stat strong{font-size:26px;font-weight:550;display:block;margin-top:6px}.stat small{font-size:11px}.two{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.full{grid-column:1/-1}dialog{border:0;border-radius:10px;width:min(820px,94vw);max-height:94vh;padding:0;color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#13262670}#modalForm{display:flex;flex-direction:column;max-height:94vh}.modal-head{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:17px 24px;gap:14px;flex-shrink:0}.modal-head h2{margin:0;font-size:18px}.modal-pilot{font-size:10px;padding:2px 7px;background:#f7edd8;color:#a37b36;border-radius:3px}.modal-head button{border:0;font-size:26px;padding:0 5px;margin-left:auto;background:none;color:#90a09d}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--line);background:#fafbfb;flex-shrink:0}.modal-foot span{font-size:10px;color:#94a09d;margin-right:auto}.modal-foot .primary{min-width:150px}.modal-foot button{font-size:12px}#modalBody{padding:20px 24px;overflow:auto;min-height:0}.wide-modal{width:min(1230px,96vw)}.wide-modal #modalBody{padding:0}.wide-modal .modal-foot{padding:16px 24px}#modalError{color:var(--red);font-size:12px;padding:0 24px}#modalError:not(:empty){padding:12px 24px;background:#fff2ef}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#213c3c;color:white;padding:14px 24px;border-radius:6px;z-index:99;max-width:90vw;box-shadow:0 8px 30px #0002}.order-layout{display:grid;grid-template-columns:1.15fr 1fr;min-height:570px}.catalog-area{padding:24px;background:#f6f8f9}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.product-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:18px;border-radius:7px;gap:7px;position:relative}.product-card.chosen{border-color:#3e9c83;background:#f1faf6;box-shadow:inset 0 0 0 1px #3e9c83}.product-icon{font-size:27px;color:#8daaa0;line-height:1.2}.product-card b{font-size:13px}.product-card>span:not(.product-icon){font-size:11px;color:#84948f}.product-card strong{font-size:22px;color:#29866e;font-weight:550;margin-top:5px}.product-card small{font-size:9px}.draft-guidance{border-top:1px solid #dfe8e5;margin-top:28px;padding-top:20px;color:#7f928c;font-size:11px}.draft-guidance p{margin-top:7px}.order-details{padding:24px;border-left:1px solid var(--line)}.order-details .section-head>span{font-size:10px;color:#96a39e}.order-details label{font-size:11px;margin:9px 0}.order-details input,.order-details select{padding:9px 10px;font-size:12px}.manual-rates{font-size:11px;background:#f7f8f8;border:1px solid #e5e9e8;border-radius:5px;padding:10px 12px;margin-top:13px}.manual-rates summary{cursor:pointer;color:#6f8580}.manual-rates p{margin:12px 0 0}.order-preview{display:flex;align-items:center;justify-content:space-between;margin-top:18px;border-top:1px solid var(--line);padding-top:15px;font-size:12px;color:#84948e}.order-preview strong{font-size:27px;color:#2c7a64;font-weight:550}.detail-layout{display:grid;grid-template-columns:300px 1fr;min-height:420px}.bill-summary{padding:24px;background:#f4f8f6;border-right:1px solid var(--line)}.bill-summary h2{font-size:30px;margin:14px 0 22px}.bill-summary .total{font-size:30px;margin:5px 0 25px;color:#228069}.bill-summary dl{font-size:12px}.bill-summary dt{color:#91a099;margin-top:14px}.bill-summary dd{margin:5px 0;overflow-wrap:anywhere}.bill-lines{padding:24px}.subtabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:20px;font-size:13px}.subtabs b{border-bottom:2px solid var(--green);padding-bottom:12px;color:var(--green)}.subtabs span{color:#a1ada7}.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:530px}.checkout-main{padding:24px}.checkout-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#f6f8f9;border-radius:5px;font-size:13px}.checkout-item small{display:block;margin-top:6px;font-size:11px}.checkout-item>strong{font-size:20px;font-weight:500}.payment-heading{margin-top:26px}.checkout-summary{position:static;width:auto;padding:26px;background:#f4f7f6;color:var(--ink);border-left:1px solid var(--line)}.checkout-summary>span{font-size:12px;color:#8d9c95}.checkout-total{font-size:35px;color:var(--red);font-weight:550;margin:7px 0 24px;letter-spacing:-1px}.customer-summary{padding:15px;background:white;border:1px solid var(--line);border-radius:6px;margin-bottom:22px}.customer-summary strong,.customer-summary span{display:block}.customer-summary span{font-size:11px;margin-top:5px;color:#8b9b93}.customer-summary label{font-size:11px;margin-bottom:0}.customer-summary input{padding:8px}.checklist{font-size:11px;color:#7c958a;margin-bottom:20px}.checklist p{margin:8px 0}.payment-line{background:#f5f7f8;border:1px solid #e0e7e7;padding:13px;border-radius:6px;margin:12px 0}.payment-line label{font-size:11px;margin:4px 0}.payment-line input,.payment-line select{font-size:12px;padding:8px}.payment-line .remove{padding:3px 9px;margin-top:8px;font-size:10px;color:#999c98;background:transparent}.payment-line .three{gap:9px 12px}.total{font-size:30px;margin:12px 0}.fine{font-size:11px;color:var(--muted)}#paymentSum{padding:12px;background:#edf5f1;color:#347d65;border-radius:4px;margin:15px 0 0;font-size:12px}.danger{color:var(--red)}.module-intro{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:16px 0 10px}.module-intro h2{font-size:25px;font-weight:550;margin-bottom:10px}.module-intro p:not(.eyebrow){font-size:12px;color:#7f938a}.config-status{padding:9px 14px;border:1px solid #e2cfa9;color:#9a7b45;background:#faf2e4;border-radius:5px;font-size:12px;white-space:nowrap}.rule-flow{display:flex;gap:20px;align-items:center;margin:15px 0 23px}.rule-flow>div{flex:1;background:#e9f0ed;border:1px solid #dbe6e0;padding:21px 24px;border-radius:7px}.rule-flow small{font-size:10px}.rule-flow strong{display:block;font-size:19px;margin:10px 0;color:#467460}.rule-flow p{font-size:11px;color:#80978a;margin:0}.rule-flow>span{font-size:24px;color:#9cac9f}.rules-notes{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rules-notes .panel{margin:0}.rules-notes p,.rules-notes li{font-size:12px;color:#7d9185;line-height:1.9}.rules-notes ol{padding-left:20px;margin:0}.unset{color:#af8c52;font-size:11px;background:#fbf5e9;padding:4px 8px;border-radius:3px}.block{display:block;font-size:9px;margin-top:3px}.settings-grid{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:30px}.settings-grid strong{display:block;font-size:18px;margin:10px 0}.settings-grid p{font-size:12px;color:#90a094}.settings-grid button{font-size:11px}[hidden]{display:none!important}@media(min-width:1750px){.room{min-height:235px}.room-top{padding-top:21px}.room-top strong{font-size:28px}.room-symbol{margin:12px 0 23px}.app-bar{min-height:90px}.room-content button{margin-top:15px}}@media(max-width:1400px){.app-bar{gap:20px;padding:0 20px}.brand-lockup{min-width:155px;gap:12px}.brand-lockup .brand{font-size:39px}.brand-lockup b{font-size:12px}nav button{padding:0 12px;font-size:13px}.account{gap:7px}.room-grid{grid-template-columns:repeat(3,1fr)}.room{min-height:190px}.room-symbol{position:absolute;right:24px;top:0;font-size:52px}.room.free .room-content,.room.dirty .room-content{padding-top:30px}.room-content button{margin-top:14px}.room.used .room-content{padding-top:3px}.room.used .room-content p{display:inline;margin-right:12px}.room-price{margin-top:7px}.techs{grid-template-columns:repeat(6,minmax(100px,1fr))}.tech{padding:12px}.tech-head{align-items:flex-start;gap:3px}.tech-head b{font-size:14px}.tech-bottom{font-size:10px}.tech-bottom small{display:none}}@media(max-width:1100px){.app-bar{flex-wrap:wrap;gap:10px;padding:16px 20px 0}.brand-lockup{order:0}.account{margin-left:auto;order:1}nav{order:2;flex-basis:100%;height:53px}nav button{flex:1;font-size:13px}nav button.selected:after{bottom:6px}main{padding:0 18px 14px}.desk-actions{width:100%;justify-content:flex-end}.desk-toolbar{gap:10px;margin-bottom:15px}.desk-toolbar>.search-label{margin-left:auto}.unpaid{margin-right:auto}.techs{grid-template-columns:repeat(3,1fr)}.tech-head b{font-size:17px}.tech-bottom small{display:block}.checkout-layout{grid-template-columns:1fr 275px}.order-layout{grid-template-columns:1fr 1fr}.catalog-area,.order-details{padding:18px}.product-grid{grid-template-columns:1fr}.product-card{padding:14px;display:grid;grid-template-columns:30px 1fr 85px;gap:5px 12px}.product-icon{grid-row:1/3}.product-card strong{grid-column:3;grid-row:1/3;font-size:20px}.product-card small{display:none}.rule-flow{gap:10px}.rule-flow>div{padding:16px}.page-crumb{gap:10px}.page-crumb p{font-size:10px}.settings-grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}}@media(max-width:760px){.pilot{gap:10px;padding:6px 8px;font-size:9px}.app-bar{padding:14px 12px 0}.brand-lockup b{font-size:11px}nav{height:49px}nav button{padding:0 11px}.account{font-size:9px}.account button{font-size:10px}.page-crumb p{display:none}.crumb-divider{display:none}header{margin-bottom:14px;min-height:54px}.header-actions{gap:8px}.header-actions .badge{font-size:9px}.desk-toolbar>.search-label{width:100%;margin:0}.filter-group{width:100%;justify-content:space-between}.filter{padding:6px 8px;font-size:11px;gap:3px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-top{padding:13px 13px 6px}.room-top strong{font-size:20px}.room-content{padding:5px 13px 12px}.room-symbol{font-size:40px;right:15px}.room-content p{font-size:10px}.room-content button{font-size:10px}.room.used .room-content p{display:block;line-height:1.5}.room.used .source-line{display:none!important}.room{min-height:175px}.workspace-caption>span{display:none}.techs{grid-template-columns:repeat(2,1fr);gap:10px}.tech-meta{gap:8px}.tech-meta .search-label{width:110px}.tech-meta>span{display:none}.workspace-caption h2 span{display:none}.panel{padding:14px}.section-head{gap:8px;align-items:flex-start;flex-wrap:wrap}.section-head .fine{font-size:9px}.desk-actions button{padding:8px 11px;font-size:11px}.unpaid strong{font-size:16px;margin:0 3px}.unpaid small{display:none}.rate-strip{gap:11px;font-size:9px}.rate-strip>span{flex-basis:100%}.rate-strip button{font-size:9px;padding:3px 8px}.rate-strip b{font-size:9px}footer{font-size:8px;gap:12px}footer>span:last-child{display:none}dialog,.wide-modal{width:98vw;max-height:97vh;border-radius:8px}#modalForm{max-height:97vh}.modal-head{padding:13px 16px}.modal-head h2{font-size:16px}.modal-foot,.wide-modal .modal-foot{padding:12px 16px}.modal-foot span{display:none}.modal-foot button{flex:1}.order-layout{grid-template-columns:1fr}.catalog-area{padding:16px}.catalog-area>.fine,.draft-guidance{display:none}.product-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:0}.product-card{display:flex;padding:10px;gap:5px}.product-icon{font-size:20px}.product-card b{font-size:10px}.product-card>span:not(.product-icon){font-size:9px}.product-card strong{font-size:18px}.order-details{border:0;padding:16px}.order-details .section-head{display:none}.two{gap:0 10px}.order-details label{font-size:10px}.checkout-layout{grid-template-columns:1fr}.checkout-main{padding:16px}.checkout-summary{border:0;border-top:1px solid var(--line);padding:20px}.checkout-summary .checklist{display:none}.checkout-total{font-size:30px;margin-bottom:15px}.checkout-summary .customer-summary{margin-bottom:12px}.payment-line .three{grid-template-columns:1fr 1fr;gap:8px}.detail-layout{grid-template-columns:1fr}.bill-summary{border:0;padding:18px}.bill-summary h2{margin:10px 0}.bill-summary dl{display:none}.bill-lines{padding:18px}.module-intro{display:block}.module-intro h2{font-size:22px}.config-status{display:inline-block;margin-bottom:10px}.rule-flow{gap:6px}.rule-flow>div{padding:12px 10px}.rule-flow small{font-size:8px}.rule-flow strong{font-size:13px}.rule-flow p{font-size:9px}.rule-flow>span{font-size:17px}.rules-notes{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:22px}th,td{padding:10px;font-size:11px}.module-intro p:not(.eyebrow){font-size:11px}#modalBody{padding:18px}.three{grid-template-columns:1fr 1fr}}@media print{.app-bar,.pilot,header button,footer,.section-head button,.warning,#notice,.rate-strip{display:none!important}main{margin:0;padding:0}body{background:white}table{white-space:normal}.panel{border:0;padding:0}}
/* v0.3: service timing and explicit, manager-controlled commission snapshots. */
.service-clock{display:grid;gap:5px;margin:10px 0;font-size:11px;line-height:1.5;white-space:normal}.service-clock>div{display:flex;gap:7px;flex-wrap:wrap;align-items:baseline}.service-clock span{color:var(--muted);min-width:3em}.service-clock b{font-weight:500}.service-clock strong{font-size:13px;font-variant-numeric:tabular-nums}.service-clock small{font-size:9px}.room.used .service-clock span,.room.used .service-clock small{color:#c7eee2}.room.used .service-clock strong{color:#fff3a4}.room.used .service-clock{border-top:1px solid #ffffff24;padding-top:8px}.tech .service-clock{border-top:1px solid #cfe1d8;padding-top:8px;font-size:10px}.tech .service-clock strong{font-size:12px;color:#23785e}.bill-summary .service-clock{padding:12px 0;border-block:1px solid #dce6e1}.checkout-main>.service-clock{background:#edf5f1;padding:12px 16px;border-radius:5px;margin-bottom:5px}.compact-label{margin:0;font-size:11px}.compact-label select{width:180px;padding:7px;font-size:12px}.commission-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.commission-actions button{margin:0;padding:7px 10px;font-size:11px}.commission-detail{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.commission-detail h3{margin-bottom:8px}.commission-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.commission-amounts>div{background:#f2f7f4;border:1px solid #e1ebe5;border-radius:6px;padding:12px}.commission-amounts small{font-size:10px}.commission-amounts strong{display:block;font-size:22px;margin-top:7px;font-weight:550;color:#267d60;overflow-wrap:anywhere}.commission-history{margin:14px 0}details summary{cursor:pointer}.history-entry{padding:15px 0;border-bottom:1px solid var(--line)}.history-entry p{font-size:12px;margin:9px 0}.calculation{display:grid;grid-template-columns:150px 1fr;gap:9px;font-size:12px;padding:14px;background:#f7f9f8}.calculation dt{color:var(--muted)}.calculation dd{margin:0;overflow-wrap:anywhere}fieldset{border:1px solid var(--line);border-radius:6px;padding:12px 16px;margin:14px 0}legend{font-size:12px;color:#35785e;padding:0 6px}fieldset .fine{margin-bottom:0}
@media(max-width:760px){.room.used .source-line{display:block!important}.room.used .service-clock{font-size:10px}.room.used .service-clock strong{font-size:12px}.bill-summary dl{display:block}.bill-summary .service-clock{display:grid}.commission-amounts{gap:5px}.commission-amounts>div{padding:10px 7px}.commission-amounts strong{font-size:17px}.calculation{grid-template-columns:100px 1fr;font-size:11px}.compact-label select{width:150px}.commission-actions{gap:5px}.commission-actions button{font-size:10px}.service-clock small{display:none}}

/* v0.3.1: visible fixed referral policy and immutable per-order amounts. */
.referral-preview{margin:16px 0;padding:15px;background:#eef6f1;border:1px solid #c9e1d3;border-radius:7px}.referral-preview h3,.referral-detail h3{margin:0 0 7px;color:#266b53}.referral-preview>.fine{margin-bottom:10px}.referral-policy-source{font-size:10px;color:#658674;margin-bottom:8px}.referral-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:3px 9px;border-top:1px solid #d6e6db;padding:10px 0;font-size:11px;align-items:baseline}.referral-row>small{grid-column:1;grid-row:1/3;color:#779283}.referral-row>b{grid-column:2;overflow-wrap:anywhere;font-weight:550}.referral-row>span:not(.referral-unset){grid-column:2;grid-row:2;color:#6f887d}.referral-row>strong{grid-column:3;grid-row:1/3;font-size:16px;font-weight:550;color:#267d60;font-variant-numeric:tabular-nums}.referral-row>.referral-unset{grid-column:2/4;color:#8c9991}.referral-total{border-top:1px solid #bdd8c8;padding-top:10px;display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:11px}.referral-total strong{color:#217454;font-size:18px;font-weight:600}.referral-detail{margin-top:22px;border-top:1px solid var(--line);padding-top:17px}.referral-detail>.fine{line-height:1.7}.referral-detail .referral-row{border-color:var(--line)}.order-details #quantityHelp{margin:0 0 5px}.order-details .full{grid-column:1/-1}@media(max-width:760px){.referral-preview{padding:12px}.referral-row{gap:3px 7px;grid-template-columns:28px minmax(0,1fr) auto}.referral-row>strong{font-size:14px}.referral-total strong{font-size:16px}}

/* v0.3.2: one commission workspace with two visible, separate groups. */
.commission-equation{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:17px 20px;background:#e9f2ed;border:1px solid #d1e2d8;border-radius:7px;margin:14px 0 22px;font-size:14px;color:#456b57}.commission-equation>b{font-size:21px;color:#92a69b}.commission-equation>strong{font-size:17px;color:#227455}.commission-equation>small{flex-basis:100%;font-size:11px;color:#728a7b}.commission-toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 0 16px}.commission-toolbar>.primary,.commission-toolbar>.badge{margin-left:auto}.commission-sections,.commission-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.commission-sections>.panel{margin:0}.commission-section{min-width:0}.commission-section .section-head{align-items:flex-start;flex-wrap:wrap}.commission-section .section-head h2{font-size:20px;margin-top:5px}.section-kicker{font-size:9px;letter-spacing:1.3px;color:#8b9b91}.commission-section .inline{gap:6px}.commission-section button{font-size:11px;padding:7px 10px}.commission-section td button{display:block;margin:5px 0}.technician-section{border-top:3px solid #438b72}.broker-section{border-top:3px solid #b7a178}.commission-section>p.fine{line-height:1.8;min-height:38px}.commission-section table{white-space:normal;min-width:410px}.commission-section th,.commission-section td{padding:12px 9px;vertical-align:top;line-height:1.7}.commission-section td:first-child{min-width:84px}.commission-section .block{font-size:10px;overflow-wrap:anywhere}.broker-roster{background:#f7f6f1;border:1px solid #e8e4d8;border-radius:5px;padding:11px 13px;margin:14px 0;font-size:12px}.broker-roster ul{margin:9px 0 0;padding:0;list-style:none}.broker-roster li{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid #e7e4d9;padding:9px 0}.broker-roster li small{font-size:10px;color:#899083;overflow-wrap:anywhere}.empty-roster{font-size:11px;line-height:1.7;padding:10px 12px;background:#fbf6e9;border-radius:5px;color:#927540}.order-commission-table th:nth-child(2),.order-commission-table td:nth-child(2){background:#f7faf8}.order-commission-table th:nth-child(3),.order-commission-table td:nth-child(3){background:#fbfaf6}.order-commission-table strong.block{font-size:12px;color:#257252}.commission-modal{width:min(1120px,96vw)}.commission-modal #modalBody>.warning{margin-top:0}.commission-edit-grid>fieldset{margin:4px 0 0;padding:13px 18px 18px}.commission-edit-grid legend{font-size:16px;font-weight:600;padding:0 8px}.commission-edit-grid>.broker-section legend{color:#8a744a}.commission-edit-grid label{margin:10px 0;font-size:12px}.commission-edit-grid input,.commission-edit-grid select{font-size:13px;padding:10px 11px}.commission-edit-grid select{min-width:0;text-overflow:ellipsis}.commission-edit-grid>.technician-section{background:#f8fbf9}.commission-edit-grid>.broker-section{background:#fcfbf7}.commission-modal .four{display:grid;grid-template-columns:1.15fr 1fr 1fr 1.2fr;gap:14px}.commission-modal .commission-dates label{font-size:11px;margin:7px 0}.commission-dates input,.commission-dates select{font-size:12px;padding:9px}.commission-modal .commission-dates{margin:20px 0 14px}.commission-edit-grid .fine{line-height:1.8}
@media(max-width:1100px){.commission-sections{gap:16px}.commission-section .section-head .inline{width:100%}.commission-section table{min-width:380px}.commission-modal .four{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.commission-sections,.commission-edit-grid{grid-template-columns:minmax(0,1fr);gap:18px}.commission-toolbar{gap:10px}.commission-toolbar>.fine{flex-basis:100%;order:3}.commission-equation{gap:9px;padding:14px 12px;font-size:12px;margin-bottom:18px}.commission-equation>b{font-size:17px}.commission-equation>strong{font-size:14px}.commission-equation>small{font-size:10px;line-height:1.6}.commission-section table{min-width:360px}.commission-section .section-head .inline{width:auto}.commission-modal{width:98vw}.commission-edit-grid>fieldset{padding:12px 14px 16px}.commission-edit-grid legend{font-size:15px}.commission-modal .four{grid-template-columns:1fr 1fr;gap:10px}.commission-modal #modalBody{padding:16px}.commission-edit-grid input,.commission-edit-grid select{font-size:14px}.commission-section>p.fine{min-height:0}}

/* Total-commission review keeps legacy splits visually separate and never presents payroll completion. */
.total-amount{grid-template-columns:minmax(160px,260px) 1fr;align-items:center}.total-amount>p{margin:0;line-height:1.9}.legacy-note{display:block;background:#fbf3e4;color:#8f6c33;border-radius:4px;padding:9px 12px;font-size:11px;white-space:normal}.legacy-amounts>div{background:#fbf8f1;border-color:#e6dfd0}.legacy-amounts strong{color:#8a795c}.legacy-history{border:1px solid #e5d9bf;border-radius:5px;padding:13px;margin-top:18px}.legacy-history>summary{color:#8a724b;font-weight:600}.legacy-history>p{margin-top:10px}.broker-list{display:flex;flex-wrap:wrap;gap:10px 25px;list-style:none;padding:0;margin-bottom:0}.broker-list li{display:grid;gap:4px}.broker-list small{font-size:10px;overflow-wrap:anywhere}.commission-month{border-top:3px solid var(--green)}.month-controls{display:grid;grid-template-columns:160px 1fr 1fr 1.25fr auto auto;align-items:end;gap:12px}.month-controls label{margin:4px 0 0;font-size:11px}.month-controls select,.month-controls input{font-size:12px}.month-controls>button{font-size:12px;padding:10px}.month-totals{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:15px;margin:18px 0 24px}.month-totals>div{display:grid;background:#f5f8f6;border:1px solid #e1e9e4;padding:16px;border-radius:6px;gap:7px}.month-totals strong{font-size:27px;color:var(--green);font-variant-numeric:tabular-nums}.month-totals span{font-size:11px;color:var(--muted)}.month-details{margin-top:18px;border:1px solid var(--line);border-radius:5px;padding:13px}.month-details>summary{font-weight:600;font-size:12px}.month-details>p{margin-top:12px}.month-details .table-wrap{margin-top:12px}.commission-month .section-head{flex-wrap:wrap}.commission-month table{white-space:normal;min-width:620px}.commission-month td{vertical-align:top}.commission-month .block{font-size:10px;overflow-wrap:anywhere}.commission-month td button{margin:0}.commission-month>.fine{margin-top:12px}
@media(max-width:1300px){.month-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.month-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.month-controls>button{padding:10px 5px;font-size:11px}.month-totals{grid-template-columns:1fr;gap:8px}.month-totals>div{padding:13px}.month-totals strong{font-size:24px}.total-amount{grid-template-columns:1fr}.commission-month{padding:15px}.month-details{padding:10px}.module-intro{align-items:flex-start;flex-wrap:wrap}}

.frontdesk-controls{grid-template-columns:160px minmax(200px,1fr) auto auto auto}.frontdesk-person-table{min-width:840px!important}.frontdesk-person-table td button{display:block;margin:4px 0}.frontdesk-person-table strong{color:var(--green)}@media(max-width:1100px){.frontdesk-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.frontdesk-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Single-service personal tariffs, with an explicit server quote before opening. */
.tariff-link-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;margin:16px 0;background:#e7f1ec;border:1px solid #cfe1d6;border-radius:6px}.tariff-link-strip p{font-size:12px;margin:0}.tariff-link-strip b{font-size:13px}.tariff-link-strip button{white-space:nowrap}.tariff-service{border-top:3px solid var(--green)}.tariff-service .section-head h2{font-size:23px;margin-top:8px}.tariff-service-history{margin-top:14px;font-size:12px}.tariff-service-history p{padding:9px 0;margin:0;border-bottom:1px solid var(--line)}.tariff-tech-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.tariff-tech-card{border:1px solid #dae5df;border-radius:7px;padding:16px;background:#f8faf9;min-width:0}.tariff-tech-card>div{display:flex;gap:8px;align-items:baseline;justify-content:space-between}.tariff-tech-card>div b{font-size:16px}.tariff-tech-card>div small{font-size:9px;overflow-wrap:anywhere}.tariff-tech-card>strong{display:block;color:var(--green);font-size:20px;margin:13px 0 5px}.tariff-tech-card>small{display:block;line-height:1.7}.tariff-tech-card button{margin-top:13px;font-size:11px}.tariff-unavailable{font-size:11px;color:#9b7031;min-height:2.5em}.tariff-table{min-width:790px;white-space:normal}.tariff-table td{vertical-align:top}.tariff-table td button{font-size:11px;display:block;margin:4px 0;padding:6px 9px}.quote-area{background:#f4f8f6}.quote-area .section-head{margin-bottom:16px}.quote-service{border-top:1px solid #dbe6df;padding-top:20px}.quote-service h2{font-size:24px;margin:10px 0}.quote-service p{font-size:13px;color:#73877e}.quote-money{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.quote-money>div{background:white;border:1px solid #d7e5dd;border-radius:6px;padding:16px}.quote-money strong{display:block;font-size:28px;color:var(--green);font-variant-numeric:tabular-nums;margin-top:10px}.quote-money small{font-size:11px}.quote-commission{border:1px solid #e2d8be;background:#fffaf0;border-radius:6px;padding:15px;margin:20px 0}.quote-commission h3{font-size:13px;color:#8b723b}.quote-commission>strong{display:block;font-size:23px;color:#806c3f;margin:10px 0}.quote-commission p{font-size:12px;margin:6px 0}.quote-commission small{font-size:11px;line-height:1.8}.quote-status{padding:18px;background:white;border:1px solid #dae5df;border-radius:6px;margin:20px 0;min-height:140px}.quote-status b{font-size:17px}.quote-status p{margin:12px 0 0;font-size:12px}.quote-blocked{background:#fffcf4;border-color:#e7d9b6;color:#8b7038}.quote-area>button{width:100%;font-size:12px}.quote-status-line{font-size:11px;margin:12px 0;padding:10px 12px}.quote-confirm{display:flex;align-items:flex-start;gap:9px;border:1px solid #d6e4dc;background:#f7faf8;padding:12px;border-radius:5px;font-size:12px!important}.quote-confirm input{width:18px;height:18px;flex:none;margin:0;accent-color:var(--green)}.quote-confirm:has(input:disabled){color:#8b9690}.pricing-detail{padding:11px 14px;border:1px solid #dce5df;background:#f5f8f6;margin:14px 0;font-size:11px;line-height:1.8}.report-limitations{background:#fafbf9}.report-limitations p{margin:10px 0}.report-limitations summary{color:#708274}
@media(max-width:1100px){.tariff-tech-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-money{grid-template-columns:1fr}.quote-money>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.quote-money strong{margin:0;font-size:24px}.tariff-order-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
@media(max-width:760px){.tariff-tech-grid{grid-template-columns:1fr}.tariff-tech-card{padding:14px}.tariff-link-strip{display:block;padding:13px}.tariff-link-strip button{margin-top:12px}.tariff-service .section-head h2{font-size:20px}.tariff-order-layout{grid-template-columns:1fr}.quote-money{grid-template-columns:1fr 1fr}.quote-money>div{display:block;padding:12px}.quote-money strong{font-size:23px;margin-top:8px}.quote-service{padding-top:12px}.quote-service h2{font-size:20px}.quote-area>button{margin-top:2px}.quote-status{min-height:0;margin:12px 0;padding:13px}.quote-commission{margin:12px 0;padding:13px}.tariff-order-layout .order-details>h2{font-size:16px}.quote-confirm{font-size:12px!important}.quote-confirm span{line-height:1.7}.tariff-order-layout #quoteStatus{margin-top:10px}}

/* Room bill: left-hand summary and till action. Checkout: ledger on left, tender on right. */
.room[data-checkout-room]{cursor:pointer}.room .room-content [data-order-detail]{margin-top:5px;background:transparent;color:var(--green);border:1px solid #c5d7cf}
.bill-summary{display:flex;flex-direction:column;min-width:0}.bill-summary dd{overflow-wrap:anywhere}.bill-actions{display:grid;gap:8px;margin-top:auto;padding-top:20px}
.bill-actions .primary,.checkout-modal #modalSubmit{background:#b73c32;color:white;border-color:#a43028}
.checkout-layout.register{grid-template-columns:minmax(0,1.55fr) minmax(340px,1fr);min-height:min(570px,65vh)}
.register .checkout-main{display:flex;flex-direction:column;gap:12px;min-width:0}.register .checkout-main>.fine{margin:0}.register .checkout-summary{padding:18px;min-width:0;background:#fafbf9}.register h3{font-size:14px;margin:8px 0}
.register .checkout-main details>summary{cursor:pointer;font-size:12px;color:var(--green)}.bill-subtotal{display:flex;justify-content:flex-end;align-items:center;gap:18px;border-top:1px solid var(--line);padding-top:14px;margin-top:auto}.bill-subtotal strong{font-size:22px;color:#ae3732}
.payer-card{background:#233934;color:white;padding:12px 14px;border-radius:4px;font-size:13px;overflow-wrap:anywhere}.payer-card small{display:block;color:#e1eee7}.payer-card button{margin-top:6px;font-size:11px;padding:3px 8px}
#memberHits{display:grid;max-height:125px;overflow-y:auto}#memberHits button{text-align:left;padding:7px;font-size:12px}.tender-summary{display:grid;grid-template-columns:1fr 1fr;margin:15px 0;border:1px solid var(--line)}.tender-summary>div{padding:9px;background:white}.tender-summary>div+div{background:#f8eee9}.tender-summary span,.tender-summary b{display:block}.tender-summary span{font-size:11px}.tender-summary b{font-size:18px}
.tender-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tender-keys button{font-size:12px;padding:8px 4px}.register .payment-line{background:white;padding:8px}.register .change-line{border-color:#dca692}.register .payment-line .three{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.register .payment-line input,.register .payment-line select{min-width:0;width:100%;font-size:12px}.register #paymentSum{margin:8px 0}.register #walletControls:not([hidden]){display:flex;gap:8px;align-items:end}.register #walletControls button{margin-bottom:7px;font-size:11px}.register .checkout-main table{min-width:350px}
@media(max-width:760px){.checkout-layout.register{grid-template-columns:minmax(0,1fr)}.register .checkout-main{padding:14px}.bill-subtotal{margin-top:5px}.register .checkout-summary{padding:14px}.bill-actions{margin-top:0}.register .checkout-main table{min-width:280px}.register .payment-line .three{grid-template-columns:1fr 1fr}}

.room-top strong{min-width:0;overflow-wrap:anywhere}
.room-settings ul{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:0 24px}
.room-settings li{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #e1e8e5}
.room-settings li span{min-width:0;overflow-wrap:anywhere}
.room-settings li small{display:block;margin-top:3px;color:#566864}
.room-settings li button{flex:none}

.payment-line output[data-p="rate"]{display:block;padding:8px 0;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.currency-picker #nextRate{display:block;margin-top:4px}

.sale-quote{margin:10px 0;padding:12px;background:#edf5f2;color:var(--ink);font-weight:600}.sale-price-table input{width:100%;min-width:82px}.sale-price-table td{padding:5px}.sale-price-table th{text-align:left}

.desk-person{margin:.55rem 0;padding:.5rem 0;border-top:1px solid #d5e2da}.desk-buttons{display:flex;flex-wrap:wrap;gap:.25rem}.room .desk-buttons button{width:auto;flex:0 1 auto;padding:.3rem .45rem}.bill-adjust{display:grid;gap:.55rem;padding:.85rem;border:1px solid #ccdcd3;border-radius:.5rem;margin:1rem 0}.bill-adjust legend{font-weight:bold}.bill-adjust [hidden]{display:none!important}

.room[data-room-card]{cursor:pointer}
.room .room-top .room-name{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;min-width:0;max-width:75%;width:auto;margin:0;padding:0;text-align:left;border:0;background:transparent;color:inherit;font:inherit;font-weight:750;overflow-wrap:anywhere}
.room-name small{font-size:.7rem;font-weight:500}
.room-services{display:grid;gap:1rem}
.room-service,.room-paid-line{padding:.85rem;border:1px solid var(--line);border-radius:8px}
.room-line-title,.room-line-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}
.room-line-title{justify-content:space-between}
.room-service p{margin:.45rem 0 .7rem}
.room-line-actions button{min-height:38px}
.room-paid-line{margin-top:.5rem}
.room-paid-line .room-line-actions{margin-top:.4rem}

.room.used .room-content button.room-edit-order {background:#fff;color:#135d50;border:1px solid #fff;font-weight:700}
.room.used .room-content button.room-edit-order:hover {background:#e8f4ed;color:#103f35}
.edit-line-choice {display:grid;grid-template-columns:1fr auto;gap:.4rem;text-align:left;width:100%;padding:1rem;margin:.45rem 0}
.edit-line-choice small {grid-column:1/-1}
.order-edit-actions {display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0}
#deleteLine {color:#9e3028}

.income-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}

@media screen and (max-width:600px){
  main{padding-inline:12px}
  .app-bar nav{display:flex;min-width:0;width:100%;overflow-x:auto}
  .app-bar nav button{flex:none;min-height:44px}
  .desk-toolbar,.desk-actions,.section-head{flex-wrap:wrap}
  .desk-toolbar>*{max-width:100%}
  .desk-actions{gap:6px}
  .checkout-main,.checkout-summary,.order-layout>section,.settings-grid>*{min-width:0}
  .tariff-order-layout .order-details{order:-1}
  .register .tender-keys button,.room-line-actions button,.room-content button{min-height:42px}
  .register .two,.register .payment-line .three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .register .payment-line input,.register .payment-line select,.register input,.register select,
  .order-details input,.order-details select,.login input,.login select{font-size:16px}
  .income-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat strong{overflow-wrap:anywhere}
  dialog,.wide-modal{box-sizing:border-box;width:100%;max-width:100%;max-height:100dvh}
  #modalForm{max-height:100dvh}
  .modal-foot{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .modal-foot .primary{min-width:0}
}

.booking-row,.account-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid #dde5e2}.book-tag{display:block;font-weight:700;padding:.25rem}.duty-choice{display:flex;align-items:center;gap:.6rem}.duty-choice input{width:auto}.login [hidden]{display:none!important}

.tech-section .workspace-caption, .tech-section .tech-meta{flex-wrap:wrap}
.duty-counts{color:var(--ink);white-space:nowrap}
.show-all-tech{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;font-weight:600;cursor:pointer}
.show-all-tech input{width:1.1rem;height:1.1rem;margin:0;accent-color:#157b69}
.tech{position:relative;min-height:56px}
.tech .tech-head{flex-wrap:wrap;align-items:center}
.tech .tech-head b{display:flex;align-items:center;gap:.4rem;overflow-wrap:anywhere}
.tech .tech-avatar{display:inline-grid;place-items:center;border-radius:50%;background:#e6f2ee;color:#215c50;font-weight:700;font-size:.72rem;height:1.9rem;min-width:1.9rem}
.tech .tech-shift{white-space:nowrap;font-size:.76rem;color:#375b50}
.tech.off-duty{background:#f0f2f2;border-color:#cbd1d0}
.tech.off-duty .tech-shift,.tech.off-duty .tech-avatar{color:#586465}
.tech-duty-hit{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}
.tech .tech-duty-hit:hover{background:rgba(38,68,100,.06)}
.tech-duty-hit:focus-visible{outline:3px solid #155da2;outline-offset:2px}
.quick-duty{display:flex;gap:.75rem}
.quick-duty button{flex:1;min-height:44px}
.room.is-booked,.tech.is-booked{background:#dceeff;border:2px solid #4284bd;color:#183c62}
.room.is-booked .room-status,.room.is-booked .room-symbol,.room.is-booked p,.room.is-booked small,.room.is-booked .service-clock span,.room.is-booked .service-clock strong,.room.is-booked .room-name,.tech.is-booked .tech-shift,.tech.is-booked .tech-bottom,.tech.is-booked p{color:#204e77}
.room.is-booked .room-content button{background:#f5faff;color:#164b78;border-color:#83adce}
.tech.is-booked .tech-avatar{background:#1f639a;color:white}
.room.is-booked .book-tag,.tech.is-booked .book-tag{color:#124c7e;font-weight:700}

.room-mobile-lines{display:none}
@media screen and (max-width:600px){
 .room-grid{-webkit-text-size-adjust:100%;text-size-adjust:100%;align-items:start;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .room-grid .room{min-height:0;min-width:0;padding:0;border-radius:9px}
 .room-grid .room-top{padding:8px 10px 3px;gap:5px;align-items:center;min-height:32px}
 .room-grid .room .room-name{max-width:100%;min-height:32px;font-size:18px;line-height:1.15;letter-spacing:0;gap:0}
 .room-grid .room-name small,.room-full-lines,.room-grid .room-symbol,.room-grid .room-content>p{display:none}
 .room-grid .room-status{font-size:11px;line-height:1.4;white-space:nowrap;flex-shrink:0}
 .room-grid .room .room-content{padding:0 9px 8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;align-items:start}
 .room-grid .room .room-content>div,.room-grid .book-tag{grid-column:1/-1}
 .room-grid .room-mobile-lines{display:grid;gap:3px;font-size:12px;line-height:1.4}
 .room-mobile-service,.room-mobile-time{display:flex;align-items:baseline;justify-content:space-between;gap:4px}
 .room-mobile-service b{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .room-mobile-service span,.room-mobile-time span{white-space:nowrap}
 .room-mobile-time strong{font-weight:500;text-align:right}
 .room-mobile-time{font-size:11px}
 .room-grid .room .room-price{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;margin:1px 0;line-height:1.2;font-size:16px;letter-spacing:0}
 .room-price b{font-variant-numeric:tabular-nums;white-space:nowrap}
 .room-grid .room-price small{margin:0;font-size:10px;white-space:nowrap}
 .room-grid .room .room-content button{padding:4px 1px;margin:0;min-height:42px;font-size:12px;line-height:1.2;white-space:nowrap;letter-spacing:0}
 .room-grid .free .room-content button,.room-grid .dirty .room-content button,.room-grid .room-content button:only-of-type{grid-column:1/-1}
 .room-grid .book-tag{padding:0;font-size:11px;line-height:1.4}
}

.opening-amounts{margin:18px 0}
.opening-row{display:grid;grid-template-columns:minmax(64px,.65fr) repeat(2,minmax(0,1fr));gap:10px;align-items:center;padding:7px 0}
.opening-row:first-child{color:var(--muted);font-size:.88rem;border-bottom:1px solid #dce3e5}
.opening-row input{min-width:0;width:100%}
.opening-row strong small{display:block;font-weight:400;color:var(--muted)}

.member-detail h3{margin:1.2rem 0 .55rem}
.member-detail h3:first-child{margin-top:0}
.member-detail .member-funds{width:100%;min-width:0;table-layout:fixed}
.member-funds td,.member-funds th{text-align:right;padding:.55rem .4rem;overflow-wrap:anywhere}
.member-funds th:first-child{text-align:left}
.member-stats,.member-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:0}
.member-stats div{padding:.7rem;background:#edf5f2;border-radius:.4rem}
.member-detail dt,.member-ledger small{font-size:.85rem;color:#586b70}
.member-detail dd{margin:.2rem 0 0;font-weight:600;overflow-wrap:anywhere}
.member-info{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:1rem}
.member-ledger{padding:.65rem 0;border-bottom:1px solid #dce4e3}
.member-ledger summary{cursor:pointer}
.member-ledger article{padding:.7rem 0;overflow-wrap:anywhere}
.member-ledger small{display:block}
@media(max-width:600px){.member-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.member-funds td,.member-funds th{font-size:.85rem;padding:.5rem .2rem}.member-info{gap:.7rem}}
