/* Graphite, silver, restrained champagne accents. Operational status colours remain semantic. */
:root{color-scheme:dark;color:#edeef0;background:#0d0f12;--accent:#c4ab7d;--glass:linear-gradient(120deg,#ffffff09,#ffffff02);font-family:Inter,Segoe UI,Arial,sans-serif}body{background:radial-gradient(ellipse at 70% 0,#272a30 0,transparent 50%),#0d0f12;background-attachment:fixed}.sidebar{background:#0d0e11dd;border-right:1px solid #ffffff12;backdrop-filter:blur(24px)}.cabinet-logo{display:block;height:90px;overflow:hidden;margin-bottom:12px}.cabinet-logo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:screen}.subbrand{font-size:10px;letter-spacing:2px;margin-bottom:28px;color:#aeb0b6}.topbar{background:#191b20b8;backdrop-filter:blur(20px);border-bottom:1px solid #ffffff14}.testmark,.muted,.stat span,.stat small,.route small,.detailrow p{color:#aeb2bb}.pill{background:#c4ab7d17;color:#decca8;border:1px solid #c4ab7d30}.panel,.card,.stat{background:linear-gradient(125deg,#25282de6,#17191de6);border:1px solid #ffffff19;box-shadow:inset 0 1px 0 #ffffff06,0 12px 30px #00000012;border-radius:12px}.panel{backdrop-filter:blur(16px)}.btn{border:1px solid #ffffff2a;background:linear-gradient(130deg,#ffffff12,#ffffff05);color:#ededee;border-radius:7px;box-shadow:inset 0 1px 0 #ffffff09;transition:border-color .2s,background .2s}.btn:hover{border-color:#c4ab7d99;background:#ffffff15}.btn.primary{background:linear-gradient(120deg,#decca7,#b69e70);color:#191816;border-color:#d9c398;box-shadow:inset 0 1px 0 #fff6}.btn.blue{background:#373c44;color:#fff;border-color:#626a75}.btn.danger,.urgent,.error{color:#ff929d}.navcount{background:#b74655;border-color:#b74655}nav button{color:#aeb2bb;border:1px solid transparent;border-radius:7px}nav button.active,nav button:hover{color:#e8dbc2;background:linear-gradient(120deg,#c4ab7d23,#ffffff06);border-color:#c4ab7d33}.sidefoot{color:#9298a1}input,select,textarea{background:#121419;color:#eff0f2;border:1px solid #ffffff29;border-radius:7px}input:focus,select:focus,textarea:focus{border-color:#c4ab7d;outline-color:#c4ab7d}input::placeholder,textarea::placeholder{color:#9197a1}.chip{background:#ffffff0b;color:#d5d8de;border:1px solid #ffffff12}.route{border-color:#ffffff14;background:#ffffff03}.note{background:#c4ab7d0f;color:#d3c5ab;border:1px solid #c4ab7d2c;border-radius:8px}.note.warn{background:#bd963e16;color:#e2c886}.detailrow,.event,.cardbottom,th,td{border-color:#ffffff14}th{color:#adb3bc}.ref{color:#c1ac86}.status{background:#ffffff0c;color:#d2d5db;border:1px solid #ffffff18}.status.requested{background:#b49a6520;color:#e3cba0}.status.loaded,.status.delivered{background:#4c88b42b;color:#b6d9f2}.status.accepted{background:#48857027;color:#acdfc8}.status.defect,.status.missing{background:#b0475824;color:#ffb6bd}dialog{background:#1b1e24;color:#eff0f2;border:1px solid #ffffff30;border-radius:14px;box-shadow:0 35px 100px #000a}dialog::backdrop{background:#050607a8;backdrop-filter:blur(9px)}.formfoot{border-color:#ffffff15}#toast{background:#d8c39d;color:#171816}.cabinet-hero{background:linear-gradient(120deg,#2d3037aa,#131519e8),url('/hero-glass.jpg') center 62%/cover;border:1px solid #ffffff20;box-shadow:inset 0 1px 0 #fff1;border-radius:14px}.cabinet-hero .ref{color:#d8c5a1}.cabinet-hero h2{font-weight:500}.hero-orbit{border-color:#c4ab7d44;color:#d9c5a2}.catalog-header{background:#101216cc;border-color:#ffffff16;backdrop-filter:blur(20px)}.catalog-logo{display:block;width:190px;height:80px}.catalog-logo img{height:100%;width:100%;object-fit:contain;mix-blend-mode:screen}.catalog-layout hr{border-color:#ffffff19}.consultation{background:linear-gradient(130deg,#302c24,#17191d)}.option-field input{accent-color:#c4ab7d}.catalog-layout .panel{align-self:start}.catalog-page .cabinet-hero{min-height:220px}.make-picker{margin:0 0 26px}.make-picker h2{font-size:22px;font-weight:500}.make-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.make-tile{color:#d7d9df;background:var(--glass);border:1px solid #ffffff1c;border-radius:9px;min-height:90px;padding:15px;display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;cursor:pointer}.make-tile img{filter:invert(1);opacity:.83;object-fit:contain}.make-tile span{font-size:12px}.make-tile:hover,.make-tile.selected{border-color:#c4ab7d88;background:#c4ab7d12}.login-panel h1{color:#e0c99f}.empty .symbol{color:#c4ab7d}.catalog-result span{color:#aeb2bb}a:focus-visible,button:focus-visible{outline:2px solid #d9c4a0;outline-offset:3px}
@media(max-width:700px){.sidebar{background:#101216ed;border-top:1px solid #ffffff24;border-right:0;padding-bottom:max(7px,env(safe-area-inset-bottom))}.cabinet-logo{display:none}.make-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.make-tile{min-height:85px}.catalog-header{padding:8px 15px}.catalog-logo{width:155px;height:65px}.catalog-page .cabinet-hero{min-height:190px}.panel{backdrop-filter:none}.cabinet-hero{padding:24px}.heading h1{font-size:26px}}
.event .changes{background:#292d34;color:#edf0f4;border:1px solid #ffffff20}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@supports not (backdrop-filter:blur(12px)){.sidebar,.topbar,.catalog-header{background:#181b20}}
/* Daily schedule: color accompanies readable status, actions work on touch. */
.logistics-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.schedule-scroll{overflow:auto;border:1px solid #ffffff20;border-radius:12px;max-height:76vh}.schedule-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1140px;table-layout:fixed}.schedule-table th,.schedule-table td{border-right:1px solid #ffffff13;border-bottom:1px solid #ffffff13;padding:8px;vertical-align:top;white-space:normal}.schedule-table th:first-child{width:65px;position:sticky;left:0;z-index:2;background:#191b20}.schedule-table thead th{position:sticky;top:0;background:#202228;z-index:3;font-size:13px}.schedule-table thead th:first-child{z-index:4}.schedule-table th small{display:block;color:#a9aaae;font-weight:400;margin-top:6px}.schedule-entry{position:relative;border:1px solid var(--entry,#666);border-left:4px solid var(--entry,#666);background:var(--wash,#ffffff05);border-radius:7px;margin-bottom:8px}.entry-open{display:flex;flex-direction:column;gap:7px;text-align:left;width:100%;padding:12px 26px 12px 10px;background:none;border:0;color:inherit;cursor:pointer;font:inherit}.entry-open strong{font-size:13px}.entry-open small{font-size:11px;color:#d4d4d8}.entry-time{font-size:10px;color:#c4c4ca}.entry-status{font-size:10px;font-weight:500}.ready{--entry:#55b383;--wash:#55b38319}.transit{--entry:#9be65e;--wash:#9be65e19}.working{--entry:#b597ee;--wash:#a57cdb33}.attention{--entry:#e37b7b;--wash:#e37b7b20}.done{--entry:#7a969d;--wash:#7a969d20}.arrived{--entry:#82b8db;--wash:#82b8db24}.waiting{--entry:#bda777;--wash:#bda77717}.slot-add{display:block;width:100%;border:1px dashed #ffffff20;border-radius:6px;background:transparent;color:#b7b8bd;padding:10px 4px;font-size:11px;cursor:pointer}.slot-add:hover{border-color:#c4ab7d;color:#e6d6b9}.cell-menu{position:absolute;right:3px;top:3px}.cell-menu summary{cursor:pointer;list-style:none;padding:5px;color:#ddd}.cell-menu[open]{z-index:6}.cell-menu>div{position:absolute;right:0;min-width:170px;background:#24262d;border:1px solid #ffffff30;border-radius:8px;box-shadow:0 10px 30px #0009;padding:6px}.cell-menu button{display:block;border:0;background:none;color:#eee;padding:12px 8px;text-align:left;width:100%;cursor:pointer}.cell-menu button:hover{background:#ffffff12}.schedule-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;margin:16px 0}.schedule-legend span:before{content:'';display:inline-block;width:8px;height:8px;background:var(--entry);border-radius:2px;margin-right:6px}.schedule-toolbar{flex-wrap:wrap}.demo-controls{margin-top:24px}.demo-controls summary{cursor:pointer}.hero-photo img{object-fit:contain}

/* Compact daily board; full details remain in the booking dialog. */
.schedule-scroll,.schedule-table td{background:#24262b}.schedule-table th:first-child{background:#292b31}.schedule-table thead th{background:#303239}
@media(max-width:700px){.schedule-table{min-width:650px}.schedule-table th:first-child{width:42px}.schedule-table th,.schedule-table td{padding:4px}.schedule-table thead th{font-size:10px;overflow-wrap:anywhere}.schedule-table th small{display:none}.schedule-entry{margin-bottom:4px;border-left-width:3px}.schedule-entry .entry-open{padding:9px 5px;min-height:44px;gap:0}.schedule-entry .entry-open>:not(strong){display:none}.schedule-entry .entry-open strong{font-size:11px;font-weight:500;line-height:1.35;overflow-wrap:anywhere}.schedule-entry .cell-menu{display:none}.slot-add{font-size:0;padding:4px;min-height:28px}.slot-add:after{content:'＋';font-size:16px}.schedule-toolbar{gap:5px}.schedule-toolbar input[type=search]{min-width:0;width:100%}.schedule-table tbody th{font-size:10px}}

.schedule-table{min-width:var(--schedule-wide,1140px)}@media(max-width:700px){.schedule-table{min-width:var(--schedule-compact,650px)}}

.booking-card .cardbottom{flex-wrap:wrap;gap:10px}

.overdue,.schedule-entry.overdue{background:#d91426!important;border:2px solid #ff5263!important;color:#fff!important}.overdue .muted,.overdue small,.overdue .entry-status{color:#fff!important}.overdue .btn{color:#fff;background:#951122;border-color:#ff8994}

[hidden]{display:none!important}

.dashboard-stats .stat{padding:12px 16px}.dashboard-stats .stat b{font-size:26px;margin:4px 0}.compact-bookings{display:grid;gap:7px}.compact-booking{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #ffffff1c;border-radius:9px;background:#24272c;width:100%}.compact-booking>div{flex:1;min-width:0}.compact-booking small{display:block;color:#aeb2bb;margin-top:4px}.attention-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#56302d;border:1px solid #b76957;padding:9px 12px;border-radius:8px;margin-bottom:15px}.attention-strip .btn{margin-left:auto}.attention-list{display:grid;gap:7px;margin-bottom:12px;max-height:360px;overflow:auto}.attention-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#32282a;border:1px solid #794744;border-radius:8px}.attention-row>div{flex:1;min-width:0}.attention-row p{margin:4px 0;font-size:13px}.attention-row small{color:#c2b3b3}.attention-row .btn{flex-shrink:0}#toast{max-width:min(380px,calc(100vw - 24px));white-space:normal}#toast p{font-size:13px;margin:6px 0}#toast .btn{margin:5px 5px 0 0}@media(max-width:600px){.compact-booking{flex-wrap:wrap;gap:7px;padding:10px}.compact-booking>div{flex-basis:100%}.compact-booking .status{font-size:11px}.attention-row{flex-wrap:wrap}.attention-row>div{flex-basis:100%}.attention-strip{gap:6px;font-size:13px}.dashboard-stats{gap:8px}}

/* Explicit confirmation for starting work; compact at 390px (iPhone 13). */
button[data-start],.btn[data-bstatus="in_progress"],#modal.start-confirm button[type="submit"]{background:#187443;color:#fff;border:1px solid #349a62;font-weight:650}
button[data-start]:hover,.btn[data-bstatus="in_progress"]:hover,#modal.start-confirm button[type="submit"]:hover{background:#206c43}
#modal.start-confirm{box-sizing:border-box;width:min(380px,calc(100vw - 32px));height:auto;padding:20px;max-height:calc(100dvh - 32px)}
#modal.start-confirm h2{font-size:21px;margin:0 0 14px}#modal.start-confirm .formgrid{display:block}#modal.start-confirm .start-summary{overflow-wrap:anywhere}#modal.start-confirm .start-summary strong{font-size:17px}#modal.start-confirm .start-summary p{font-weight:400;color:#bfc3c9;margin:7px 0 0;font-size:13px}#modal.start-confirm .error:empty{display:none}#modal.start-confirm .formfoot{display:flex;gap:8px;margin-top:18px;flex-wrap:nowrap}#modal.start-confirm .formfoot .btn{min-height:46px;font-size:14px;padding:10px 12px;margin:0}#modal.start-confirm .formfoot button[type="submit"]{flex:1}#modal.start-confirm .btn:focus-visible{outline:2px solid #d5bd8d;outline-offset:3px}
#modal.start-confirm{height:fit-content}

/* Warranty is an independent, persistent visual marker; status stays textual. */
.schedule-entry.warranty,.booking-card.warranty,.compact-booking.warranty{--entry:#38d7cb;--wash:#1b5d5a;border-color:#38d7cb;background:#164c49;color:#f0fffd}
.booking-card.own-glass,.compact-booking.own-glass{border-color:#55b383;background:#193e2c}.warranty-choice{border:1px solid #38d7cb66;border-radius:8px;padding:10px}.warranty-choice input{width:18px;height:18px;accent-color:#38d7cb;vertical-align:middle}.warranty-choice small{font-weight:400;color:#b8c9c8}.schedule-legend .warranty{--entry:#38d7cb}.density-control{display:flex!important;align-items:center;gap:6px;margin:0}.density-control select{max-width:135px}.identity{flex-wrap:wrap}

@media(min-width:701px){html[data-density="compact"] dialog:not(.start-confirm){width:min(740px,calc(100vw - 32px));padding:18px}html[data-density="compact"] dialog:not(.start-confirm) .booking-card{padding:12px 14px}html[data-density="compact"] dialog:not(.start-confirm) .booking-card p{margin:7px 0;line-height:1.4}html[data-density="compact"] dialog:not(.start-confirm) .booking-price{font-size:23px;margin:6px 0}html[data-density="compact"] dialog:not(.start-confirm) .route{margin:8px 0;padding:8px}html[data-density="compact"] dialog:not(.start-confirm) .btn{min-height:36px;padding:7px 10px;font-size:13px}html[data-density="compact"] dialog:not(.start-confirm) .actions{gap:6px;margin:8px 0}html[data-density="compact"] dialog:not(.start-confirm) .formgrid{gap:10px}html[data-density="compact"] dialog:not(.start-confirm) .event{padding:8px}html[data-density="compact"] dialog:not(.start-confirm) textarea{min-height:60px}html[data-density="compact"] .content{padding-top:18px}html[data-density="compact"] .card{padding:14px}html[data-density="compact"] .heading{margin-bottom:16px}html[data-density="compact"] .topbar{padding-top:12px;padding-bottom:12px}}
@media(min-width:701px) and (max-width:1440px), (min-width:701px) and (max-height:850px){html[data-density="auto"] dialog:not(.start-confirm){width:min(740px,calc(100vw - 32px));padding:18px}html[data-density="auto"] dialog:not(.start-confirm) .booking-card{padding:12px 14px}html[data-density="auto"] dialog:not(.start-confirm) .booking-card p{margin:7px 0;line-height:1.4}html[data-density="auto"] dialog:not(.start-confirm) .booking-price{font-size:23px;margin:6px 0}html[data-density="auto"] dialog:not(.start-confirm) .route{margin:8px 0;padding:8px}html[data-density="auto"] dialog:not(.start-confirm) .btn{min-height:36px;padding:7px 10px;font-size:13px}html[data-density="auto"] dialog:not(.start-confirm) .actions{gap:6px;margin:8px 0}html[data-density="auto"] dialog:not(.start-confirm) .formgrid{gap:10px}html[data-density="auto"] dialog:not(.start-confirm) .event{padding:8px}html[data-density="auto"] dialog:not(.start-confirm) textarea{min-height:60px}html[data-density="auto"] .content{padding-top:18px}html[data-density="auto"] .card{padding:14px}html[data-density="auto"] .heading{margin-bottom:16px}html[data-density="auto"] .topbar{padding-top:12px;padding-bottom:12px}}

.customer-timeline{display:grid;gap:10px;margin-top:16px}.timeline-event{border-left:3px solid #c4ab7d;padding:8px 12px;background:#ffffff05;border-radius:0 7px 7px 0}.timeline-event time{display:block;color:#d4bd94;font-size:12px;margin-top:4px}.timeline-event p{margin:5px 0;font-size:13px}.timeline-event small{color:#bfc3c9}

/* Compact transport and schedule: complete details remain in the card. */
.transport-card{padding:12px 14px!important}.transport-card .model{font-size:15px;line-height:1.35;letter-spacing:0}.transport-card .ref{margin-bottom:4px;font-size:11px}.transport-card .transport-route{margin:7px 0;font-size:13px}.transport-card .actions{margin-top:8px;gap:6px}.transport-card details{font-size:12px;margin:6px 0}.transport-card details p{margin:4px 0;white-space:pre-wrap}.transport-card .status{font-size:11px;white-space:normal}.picker-stock{display:block;font-size:12px;font-weight:500;color:#9ed4ad}.catalog-item{flex-direction:column;align-items:flex-start;text-align:left}
@media(min-width:701px){.schedule-table th:first-child{width:42px}.schedule-table td,.schedule-table th{padding:5px}.schedule-entry .entry-open{padding:7px 24px 7px 7px;gap:3px}.schedule-entry .entry-open>span:not(.entry-time),.schedule-entry .entry-open>small{display:none}.schedule-entry .entry-open strong{font-size:12px;line-height:1.25}.schedule-entry .entry-status{font-size:9px}.slot-add{padding:5px;font-size:10px}.schedule-entry{margin-bottom:4px}.stats .stat{padding:10px 14px}.stats .stat b{font-size:24px;margin:4px 0}.stats{gap:8px;margin-bottom:12px}}

.logistics-view .stats{gap:6px;margin-bottom:10px}.logistics-view .stat{padding:8px 10px}.logistics-view .stat b{font-size:22px;margin:3px 0}.logistics-view .stat small{display:none}.logistics-view .heading{margin-bottom:12px}.logistics-tabs{gap:5px;margin-bottom:14px}.logistics-tabs .btn{font-size:12px;padding:7px 10px;min-height:36px}.logistics-view .toolbar{gap:6px}.logistics-view .toolbar input{min-width:0}.logistics-view .heading p{display:none}.make-initial{width:28px;text-align:center;color:#c4ab7d}
@media(max-width:700px){.logistics-view .stats{grid-template-columns:repeat(4,minmax(0,1fr))}.logistics-view .stat span{font-size:10px}.logistics-view .stat{padding:7px}.logistics-view .heading{flex-direction:row;align-items:center}.logistics-view h1{font-size:22px}.logistics-view .heading .btn{font-size:11px;min-height:40px}.logistics-tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start}.logistics-tabs button{flex-shrink:0}.transport-card .actions .btn{flex:0 1 auto;min-height:42px}.transport-card .model{font-size:14px}}

.schedule-table{min-width:842px}.schedule-table:has(thead th:nth-child(2):last-child){min-width:0}@media(max-width:700px){.schedule-table{min-width:652px}.schedule-table:has(thead th:nth-child(2):last-child){min-width:0}}

/* Result rows must never shrink inside the scrollable flex field. */
.catalog-results{display:flex;flex-direction:column;align-items:stretch;gap:6px;max-height:300px;overflow-y:auto;overflow-x:hidden}
.catalog-results>.btn{flex:0 0 auto;display:block;height:auto;min-height:0;white-space:normal;overflow-wrap:anywhere;padding:10px 12px!important;text-align:left;line-height:1.4;margin:0}
.catalog-results>.btn>strong,.catalog-results>.btn>span,.catalog-results>.btn>small{display:block;position:static;line-height:1.4;margin:2px 0}
.catalog-results>.btn>strong{font-size:14px}.catalog-results>.btn>small{font-size:12px;color:#a5d6b4;font-weight:500}

.installer-day-point{margin:14px 0}.installer-day-point h2{font-size:14px;margin:8px 0}.installer-day-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--entry,#ffffff20);border-left:4px solid var(--entry,#ffffff20);background:var(--wash,#ffffff08);border-radius:8px;padding:8px 10px;margin:6px 0}.installer-day-row>div:first-child{min-width:0;display:grid;gap:2px}.installer-day-row small,.installer-day-row span{font-size:11px;color:#c4c8cd}.installer-day-row strong{font-size:13px;line-height:1.25;overflow-wrap:anywhere}.installer-day-row .actions{width:auto;flex-shrink:0}.installer-day-row .btn{padding:5px 7px;min-height:34px;font-size:11px}.installer-date{display:grid;grid-template-columns:40px minmax(0,1fr) 40px auto;gap:4px}.installer-date input{width:100%;min-width:0}.installer-date .btn{padding:5px;font-size:11px}.material-pair{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px}.material-pair label{display:grid;gap:4px}.completion-summary p{margin:5px 0}
@media(max-width:700px){.installer-day-row{padding:8px}.installer-day-row .actions{display:grid;gap:3px}.installer-day-row .btn{white-space:nowrap}}
.on-board{--entry:#79ff22;--wash:#3dff0e38}.schedule-entry.on-board,.installer-day-row.on-board{border-color:#75ff19;box-shadow:inset 0 0 0 1px #79ff2266,0 0 14px #63ff2426}.schedule-entry.on-board .entry-status{color:#caffab;font-weight:700}.supplier-delivery{--entry:#f2a338;--wash:#f2a33829}.booking-card.supplier-delivery,.compact-booking.supplier-delivery{border-left:4px solid #f2a338;background:linear-gradient(90deg,#f2a33818,transparent 58%)}.cargo-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.cargo-choices .btn{min-height:56px}@media(max-width:620px){.cargo-choices{grid-template-columns:1fr}}
.booking-cells{display:grid;gap:3px;border:1px solid #ffffff22;border-radius:8px;background:#ffffff09;padding:8px 10px;margin:10px 0}.booking-cells small{color:#b8c0c1;font-size:10px;letter-spacing:.08em}.booking-cells strong{font-size:13px;overflow-wrap:anywhere}
.booking-card .route{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-card .route>div{min-width:0;overflow-wrap:anywhere}
.enquiry-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0}.enquiry-group{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;border:1px solid #5a5c60;border-radius:10px;background:#2a2b2e;color:#fff;text-align:left;cursor:pointer}.enquiry-group:hover{border-color:#d8b36c}.enquiry-group b{font-size:20px;color:#e8c786}

/* Sales share the day/point grid; completion overrides the glass availability tone. */
.schedule-table .schedule-sales-row>th,.schedule-table .schedule-sales-row>td{border-top:2px solid #788596}
.schedule-entry.sold,.schedule-legend .sold{background:#174e91;border-color:#4fa7ff;color:#fff}
.schedule-entry.sold .entry-open,.schedule-entry.sold .entry-open strong,.schedule-entry.sold .entry-open span,.schedule-entry.sold .entry-open small,.schedule-entry.sold .entry-status{color:#fff}

.draft-item{border:1px solid #ffffff25;border-radius:9px;padding:12px;min-width:0;margin:0}.draft-item legend{padding:0 6px;color:#decca8;font-weight:650}.draft-item>select,.draft-item>label,.draft-item input,.draft-item .draft-line select{width:100%}.draft-item>label{display:block;margin-top:10px}.draft-line{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.draft-line label{min-width:0}.work-draft{margin:10px 0;padding:12px}.work-draft p{margin:6px 0}.work-draft small{display:block;opacity:.85;margin-top:8px}
.material-pair label:has(input[type="checkbox"]){display:flex;align-items:center;gap:9px;min-width:0}.material-pair label input[type="checkbox"]{width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:0;vertical-align:middle}
dialog label:has(>input[type="checkbox"]){display:flex;align-items:center;gap:9px}dialog label>input[type="checkbox"]{width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:0}
@media(max-width:520px){.draft-line{grid-template-columns:1fr}.draft-item{padding:10px}}
.draft-group{border:1px solid #ffffff25;border-radius:9px;padding:10px;min-width:0}.draft-group summary{cursor:pointer;font-weight:700;color:#decca8;padding:6px}.draft-group .draft-item{margin:8px 0}

.driver-pickup{align-items:end}.driver-pickup label{display:grid;gap:5px;min-width:0;width:min(100%,330px)}.driver-pickup select{width:100%;max-width:100%}
.transport-card .model,.transport-route,.stop p{overflow-wrap:anywhere}
@media(max-width:700px){
 .sidebar nav{display:flex;overflow-x:visible;justify-content:stretch;gap:2px}
 .sidebar nav button{flex:1 1 0;min-width:0;max-width:none;white-space:normal;overflow-wrap:anywhere;font-size:10px;line-height:1.1;padding:7px 2px}
 .content{padding-left:10px;padding-right:10px}
 .topbar{padding-left:10px;padding-right:10px}
 .logistics-view,.logistics-view .split,.logistics-view .cards,.logistics-view aside,.transport-card,.installer-day-point,.installer-day-row{min-width:0;max-width:100%}
 .logistics-view .split{grid-template-columns:minmax(0,1fr)}
 .transport-card{padding:13px}
 .driver-pickup label{width:100%}
 dialog{width:calc(100vw - 20px);padding:15px}
 dialog .booking-card{padding:12px}
}
@media(max-width:700px){.sidebar nav button{font-size:11px}}

/* Ремонт сохраняет свой цвет от записи до завершения работы. */
.schedule-entry.repair,.booking-card.repair,.compact-booking.repair,.installer-day-row.repair,.schedule-legend .repair{background:#ffe32b!important;border-color:#ffd000!important;color:#232015!important;box-shadow:inset 0 0 0 1px #cc9c00!important}
.schedule-entry.repair .entry-open,.schedule-entry.repair .entry-open strong,.schedule-entry.repair .entry-open span,.schedule-entry.repair .entry-open small,.schedule-entry.repair .entry-status,.booking-card.repair .status,.compact-booking.repair .status,.installer-day-row.repair strong,.installer-day-row.repair span,.installer-day-row.repair small{color:#232015!important}

.enquiry-note{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d7c69c!important;font-size:12px}

/* Shared start/finish work inputs fit compact phone dialogs. */
.draft-group .draft-item{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:8px;align-items:end}.draft-group .draft-item>label{margin:0;min-width:0}.draft-group .draft-item select,.draft-group .draft-item input{min-width:0;max-width:100%;width:100%}.draft-group .material-pair{padding:8px 0;border-bottom:1px solid #ffffff15}

.booking-save-confirm{display:flex;align-items:center;gap:10px;padding:12px 0}.booking-save-confirm input{width:18px;height:18px;flex:0 0 18px}

.journal-panel{padding:8px 14px}.journal-panel .event{padding:8px 0;grid-template-columns:55px minmax(0,1fr);gap:10px}.journal-panel .event time{font-size:12px;line-height:1.35}.journal-panel .event time small{font-size:11px}.event-body{min-width:0}.event-heading{display:flex;gap:6px 14px;justify-content:space-between;align-items:baseline;flex-wrap:wrap}.journal-panel .event-heading strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}.journal-panel .event-actor{font-size:12px}.journal-panel .event details{margin-top:3px;font-size:12px}.journal-panel .changes{padding:8px;margin-top:5px}.journal-panel .changes p{font-size:12px;margin:3px 0}@media(max-width:520px){.journal-panel{padding:6px 10px}.journal-panel .event{grid-template-columns:43px minmax(0,1fr);gap:7px}.journal-panel .event-heading{display:grid;gap:2px}}
.wh-table{min-width:900px;table-layout:auto}.wh-table td,.wh-table th{padding:8px;font-size:13px;min-width:0}.wh-table td small{display:block;color:#b4bac3;margin-top:3px}.wh-movements th:nth-child(3),.wh-movements td:nth-child(3){width:auto;min-width:260px;max-width:none;overflow-wrap:anywhere}
.wh-movements th:nth-child(5),.wh-movements td:nth-child(5),.wh-movements th:nth-child(6),.wh-movements td:nth-child(6){width:1%;white-space:nowrap;font-variant-numeric:tabular-nums}
.wh-movements td:nth-child(7){white-space:nowrap}
.wh-balances{min-width:0}
.schedule-table.wh-balances th:first-child,.wh-balances td:first-child{width:auto;min-width:220px;max-width:none;overflow-wrap:anywhere}
.wh-balances th:not(:first-child),.wh-balances td:not(:first-child){width:1%;min-width:0;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}

/* Keep the time rail opaque and above booking cells while scrolling sideways. */
.schedule-scroll{position:relative;isolation:isolate;max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.schedule-table tbody>tr>th[scope="row"]{position:-webkit-sticky;position:sticky;left:0;z-index:5;background:#292b31;box-shadow:2px 0 0 #464950;white-space:nowrap;vertical-align:top;font-variant-numeric:tabular-nums}
.schedule-table thead>tr>th{z-index:6}
.schedule-table thead>tr>th:first-child{left:0;z-index:7;background:#303239;box-shadow:2px 0 0 #464950}
@media(max-width:700px){
 /* Explicit viewport anchoring also overrides the desktop sticky sidebar. */
 .layout{min-height:100vh;min-height:100dvh;transform:none;filter:none;perspective:none;contain:none}
 .layout>.sidebar{position:fixed!important;inset:auto 0 0!important;width:auto;max-width:100%;height:auto!important;margin:0;z-index:50;padding:6px 5px calc(6px + env(safe-area-inset-bottom,0px));background:#101216;backdrop-filter:none;-webkit-backdrop-filter:none}
 .sidebar nav{width:100%;margin:0;align-items:stretch}
 .sidebar nav button{min-height:48px;touch-action:manipulation}
 .main,.content{min-width:0;max-width:100%}
 .content{padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
 .schedule-table th:first-child{width:58px}
 .schedule-table tbody>tr>th[scope="row"]{font-size:11px;padding:8px 4px}
 .schedule-scroll{max-height:65vh;max-height:65dvh}
 .slot-add{min-height:44px}
 .schedule-toolbar input[type="date"]{flex:0 1 150px;width:150px;max-width:100%}
 .schedule-toolbar input[type="search"]{flex:1 0 100%}
 #toast{bottom:calc(82px + env(safe-area-inset-bottom,0px));z-index:60}
 input,select,textarea{font-size:16px}
 .identity select{font-size:16px}
}

/* Услуги кроме ремонта: цвет не зависит от этапа работы. */
.schedule-entry.service-fixed,.booking-card.service-fixed,.compact-booking.service-fixed,.installer-day-row.service-fixed,.schedule-legend .service-fixed{--entry:#d97999;--wash:#4b1027;background:#4b1027!important;border-color:#d97999!important;color:#fff!important;box-shadow:inset 0 0 0 1px #d9799955!important}
.service-fixed .entry-open,.service-fixed .entry-open strong,.service-fixed .entry-open span,.service-fixed .entry-open small,.service-fixed .entry-status,.service-fixed .status,.service-fixed .muted,.service-fixed .ref,.service-fixed .booking-price,.service-fixed>div>strong,.service-fixed>div>span,.service-fixed>div>small{color:#fff!important}

/* Единое оформление легенды без фона карточек. */
.schedule-legend.schedule-legend>span{display:inline-flex;align-items:center;gap:6px;padding:0!important;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:#f0f0f2!important;text-decoration:none!important;font-size:11px;font-weight:400;line-height:1.4}
.schedule-legend>span:before{flex:none;width:9px;height:9px;margin:0;border-radius:2px;background:var(--entry,#888)}
.schedule-legend>.repair{--entry:#ffe32b}
.schedule-legend>.service-fixed{--entry:#d97999}
.schedule-legend>.sold{--entry:#4fa7ff}

/* Компактные настройки региона и шапка кабинета. */
.regional-tools{padding:12px 16px}.regional-tools>summary{cursor:pointer;font-size:14px;font-weight:600;line-height:1.5}.regional-tools-body{padding-top:8px}.regional-tools-body p{margin:0 0 10px}.regional-tools-actions{display:flex;flex-wrap:wrap;gap:8px}.topbar{gap:8px;flex-wrap:wrap}.topbar .identity{min-width:0;flex-wrap:wrap;gap:8px}.regional-tools-actions .btn{white-space:normal;text-align:center}
@media(max-width:700px){.regional-tools{padding:10px 12px}.regional-tools-actions{display:grid;grid-template-columns:1fr}.topbar .identity{width:100%}.density-control{min-width:0}.density-control select{max-width:100%}}

/* Logistics: readable cargo details and a compact quantity counter. */
.transport-card details p{font-size:18px;line-height:1.5;overflow-wrap:anywhere}
.transport-card .urgent{font-size:18px;line-height:1.5}
.onboard-counter{font-size:15px;font-weight:400;margin:8px 0 14px;color:#c6edcd}
.driver-route-editor{display:grid;gap:8px;width:100%}.route-edit-row{display:flex;gap:6px;align-items:center}.route-edit-row select{flex:1;min-width:0}.route-edit-row .btn{padding:6px;min-width:36px}
.movement-group{padding:12px 14px}.movement-group summary{cursor:pointer;font-size:15px;overflow-wrap:anywhere}.movement-group .event{padding:9px 0}

.transport-finished{padding:10px 14px!important}.transport-finished>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.transport-finished>summary::-webkit-details-marker{display:none}.transport-finished>summary:before{content:'›';font-size:22px;flex:none}.transport-finished[open]>summary:before{transform:rotate(90deg)}.transport-finished>summary>span:first-of-type{flex:1;min-width:0}.transport-finished>summary small{display:block;font-size:11px;color:#a8b1ba;overflow-wrap:anywhere}.transport-finished>summary strong{display:block;font-size:14px;line-height:1.4;overflow-wrap:anywhere}.transport-finished>summary .status{font-size:11px;white-space:normal;flex:none;max-width:100px}.transport-finished-body{margin-top:10px;border-top:1px solid #ffffff20;padding-top:8px}.transport-finished-body>.transport-card{border:0!important;padding:0!important;background:transparent!important}

.installer-day-sales{margin-top:14px;padding-top:10px;border-top:1px solid #ffffff25}.installer-day-sales h3{font-size:15px;margin:0 0 8px}

/* Keep profile navigation above page panels and sticky table headers. */
.main>.topbar{position:relative;z-index:40;overflow:visible}
.main>.content{position:relative;z-index:0}
.profile-links{max-height:calc(100dvh - 150px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 30px #0008}

@media(max-width:700px){
 .schedule-entry .entry-open>.entry-owner{display:block;font-size:11px;line-height:1.3;color:inherit;opacity:.9;overflow-wrap:anywhere}
 .layout>.sidebar{top:var(--mobile-nav-top,100dvh)!important;bottom:auto!important;transform:translate3d(0,-100%,0)}
}
