*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y}
:root{--ink:#1b2733;--ink-2:#2a3a48;--ink-3:#405160;--panel:#fff;--panel-soft:#f7f9fa;--line:#d8e0e6;--line-strong:#bdc8d1;--muted:#657380;--gold:#c8922e;--gold-2:#e3ad49;--gold-soft:#fff7e8;--green:#2d7558;--red:#9b343b;--page:#edf1f4;--shadow:0 12px 32px rgba(23,34,45,.08)}
body{margin:0;font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;font-size:15px;line-height:1.45;background:var(--page);color:var(--ink);overflow-x:hidden}
button,input,select,textarea{font:inherit}
h1,h2,h3{letter-spacing:0;color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(200,146,46,.28);outline-offset:2px}
.auth-shell{position:fixed;inset:0;background:#e7ecef;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;overflow-y:auto}
.auth-card{position:relative;width:min(940px,100%);min-height:550px;background:#fff;border:1px solid rgba(27,39,51,.1);border-top:4px solid var(--gold);border-radius:8px;display:grid;grid-template-columns:minmax(340px,.9fr) minmax(320px,1fr);overflow:hidden;box-shadow:0 24px 64px rgba(27,39,51,.18)}
.auth-visual{position:relative;background:#eef2f4;display:flex;align-items:center;justify-content:center;padding:36px;border-right:1px solid var(--line)}
.auth-visual:before{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--gold);z-index:1}
.auth-visual img{position:relative;z-index:2;max-width:92%;max-height:460px;object-fit:contain;filter:drop-shadow(0 16px 24px rgba(27,39,51,.12))}
.auth-brand{position:absolute;left:28px;top:26px;z-index:3;color:var(--ink)}
.auth-brand strong{display:block;font-size:30px;line-height:1;font-weight:800;letter-spacing:0}
.auth-brand span{display:block;margin-top:7px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.auth-panel{display:flex;flex-direction:column;justify-content:center;padding:48px}
.auth-logo{font-size:34px;line-height:1;font-weight:800;color:var(--ink);margin-bottom:30px}
.auth-logo span{color:var(--gold)}
.auth-card h2{margin:0 0 6px;font-size:28px;color:var(--ink)}
.auth-card .muted{margin-bottom:22px}
.auth-card .action-btn{width:100%;margin-top:8px;background:var(--gold);color:#17202b}
.auth-card .action-btn:hover{background:var(--gold-2)}
.show-password-control{display:inline-flex!important;align-items:center;gap:9px;width:max-content;margin:2px 0 5px;color:var(--ink-3);font-size:14px;font-weight:600;cursor:pointer}
.show-password-control input{width:18px;height:18px;margin:0;accent-color:var(--gold);cursor:pointer}
.invite-requirements{margin:2px 0 8px;color:var(--muted);font-size:12px}
.invite-message{margin:12px 0 0}.invite-message.error{border-color:#e59a9d;background:#fde7e8;color:#9d1d22}
.invite-sign-in-link{display:inline-block;margin-top:18px;color:var(--ink-3);font-size:13px;font-weight:700}
.auth-card button:disabled{opacity:.6;cursor:not-allowed;transform:none}
.app-update-notice{position:fixed;z-index:10000;top:12px;left:50%;transform:translateX(-50%);width:min(680px,calc(100% - 24px));display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:#172431;color:#fff;border:2px solid var(--gold);border-radius:10px;box-shadow:0 12px 34px rgba(0,0,0,.28)}
.app-update-notice[hidden]{display:none}
.app-update-notice>div{display:grid;gap:3px;min-width:0}
.app-update-notice strong{font-size:16px;color:#fff}
.app-update-notice span{font-size:13px;line-height:1.35;color:#dfe7ed}
.app-update-notice button{flex:0 0 auto;min-height:44px;padding:9px 16px;border:0;border-radius:7px;background:var(--gold);color:#17202b;font-weight:800;cursor:pointer}
.app-update-notice button:hover{background:var(--gold-2)}
.app-update-notice button:disabled{opacity:.75;cursor:wait}
.topbar{min-height:72px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:11px 20px;box-shadow:0 2px 12px rgba(27,39,51,.04)}
.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.current-user{max-width:100%;background:#f2f5f7;color:var(--ink-3);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar h1{margin:0;font-size:26px;line-height:1.05}
.app-name{color:var(--ink);font-weight:800}
.app-name span{color:var(--gold)}
.topbar p{margin:3px 0 0;color:var(--muted);font-size:12px}
.topbar button{min-height:44px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:6px;padding:9px 12px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:none;touch-action:manipulation;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.topbar button:hover{background:var(--ink-2);transform:translateY(-1px)}
#crmTopBtn,#billingTopBtn,#jobsTopBtn,#calendarTopBtn,#stockTopBtn,#userAdminTopBtn,.topbar-command-secondary{background:#f7f9fa;color:var(--ink-3);border-color:var(--line)}
#crmTopBtn:hover,#billingTopBtn:hover,#jobsTopBtn:hover,#calendarTopBtn:hover,#stockTopBtn:hover,#userAdminTopBtn:hover,.topbar-command-secondary:hover{border-color:var(--line-strong);background:#eef2f4;color:var(--ink)}
#saveJobTopBtn{background:var(--gold);border-color:var(--gold);color:#17202b}
#saveJobTopBtn:hover{background:var(--gold-2);border-color:var(--gold-2)}
#refreshBtn{background:#fff;color:var(--ink);border-color:var(--gold)}
#refreshBtn:hover{background:#fff8e7;border-color:var(--gold-2);color:var(--ink)}
#logoutBtn{background:#fff;color:var(--red);border-color:#e4c9cc}
#logoutBtn:hover{background:#fff5f5;border-color:#d7aaae;color:#812930}
.logout-btn{margin-bottom:0}
.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 72px);min-width:0}
.sidebar{background:#18242f;color:#fff;padding:18px 16px;border-right:1px solid rgba(255,255,255,.08)}
.brand{font-size:28px;font-weight:800;color:#fff;line-height:.95;margin-top:3px}
.brand span{color:var(--gold-2)}
.brand-sub{font-size:10px;margin:8px 0 28px;color:#b8c2ca;text-transform:uppercase;letter-spacing:.08em}
.sidebar h3{font-size:11px;color:#93a1ac;text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px;padding:0 3px}
.family-btn{position:relative;display:block;width:100%;min-height:44px;padding:10px 11px;border:1px solid transparent;border-left:3px solid transparent;border-radius:6px;background:transparent;color:#edf2f5;text-align:left;font-size:14px;margin:5px 0;cursor:pointer;touch-action:manipulation;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.family-btn.active{background:#fff;color:var(--ink);border-color:#fff;border-left-color:var(--gold);font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.14)}
.family-btn:hover:not(.active){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.08)}
.family-btn-primary{background:rgba(255,255,255,.035);font-weight:650}
main{padding:22px 24px 32px;min-width:0}
.notice{background:var(--gold-soft);border:1px solid #ead4aa;border-radius:6px;padding:12px;margin-bottom:16px}
.print-top-summary{display:none}
.jobbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;background:#e6ecef;border:0;border-radius:6px;padding:12px 14px;margin-bottom:22px;box-shadow:inset 0 0 0 1px rgba(117,135,149,.13)}
.jobbar label{margin:0}
.mirror-type-preview{display:block;margin-top:9px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#f8fafb;text-align:center}
.mirror-type-preview[hidden]{display:none!important}
.mirror-type-preview img{display:block;width:100%;height:180px;border-radius:6px;object-fit:contain;background:#f4f2ef}
.mirror-type-preview-caption{display:block;margin-top:7px;color:#526372;font-size:12px;font-weight:700;line-height:1.35}
label{display:block;color:#4f5e6b;font-weight:700;font-size:12px;margin:9px 0}
input,select,textarea{width:100%;min-height:42px;margin-top:5px;padding:9px 10px;border:1px solid var(--line-strong);border-radius:6px;font-size:16px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 1px rgba(27,39,51,.025)}
input::placeholder{color:#94a0aa}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(200,146,46,.16);outline-offset:0;border-color:var(--gold)}
.design-picker-section>h2,.workspace>.panel>h2{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:19px;line-height:1.2}
.step-number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 25px;width:25px;height:25px;border:1px solid #ddb86d;border-radius:5px;background:var(--gold-soft);color:#805a15;font-size:13px;font-weight:800}
.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;max-height:min(68vh,700px);padding:2px 6px 6px 2px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.template-grid::-webkit-scrollbar,.workspace>.panel:first-child::-webkit-scrollbar{width:10px;height:10px}
.template-grid::-webkit-scrollbar-thumb,.workspace>.panel:first-child::-webkit-scrollbar-thumb{background:#b9c4cc;border:3px solid transparent;border-radius:8px;background-clip:padding-box}
.template-grid::-webkit-scrollbar-track,.workspace>.panel:first-child::-webkit-scrollbar-track{background:transparent}
.template-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;text-align:left;cursor:pointer;padding:0;box-shadow:0 1px 2px rgba(27,39,51,.04);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background-color .16s ease}
.template-card.selected{border-color:var(--gold);background:#fffdf8;box-shadow:0 0 0 1px rgba(200,146,46,.3),0 8px 22px rgba(27,39,51,.08)}
.template-card.selected:before{content:"";position:absolute;z-index:3;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.template-card:hover{border-color:#b9c5ce;box-shadow:0 10px 24px rgba(27,39,51,.09);transform:translateY(-1px)}
.empty-state{grid-column:1/-1;padding:18px;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b;background:#f8fafc;font-weight:700;text-align:center}
.thumb-wrap{height:280px;display:flex;align-items:stretch;justify-content:stretch;background:var(--panel-soft);padding:12px;border-bottom:1px solid #e8edf0;overflow:hidden}
.thumb-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.thumb-wrap img.image-mirror-dia02{transform:scaleX(-1)}
.shower-photo.image-mirror-horizontal{transform:scaleX(-1)}
.shower-photo{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.thumb-wrap .shower-photo{height:100%}
.thumb-image-stage{position:relative;display:block;flex:1 1 100%;align-self:stretch;width:100%;min-width:0;min-height:0;overflow:hidden}
.thumb-image-stage .shower-photo{position:absolute;inset:0;max-width:none;max-height:none}
.thumb-contour-example{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;pointer-events:none;z-index:2}
.shower-model-canvas{display:block;width:100%;height:100%;max-width:100%;max-height:100%}
.thumb-wrap .shower-model-canvas{height:100%}
.shower-model-canvas.is-loading{opacity:.45}
.shower-model-canvas.has-error{background:#f7f7f7}
.code{color:var(--ink);font-weight:800;font-size:16px;margin:11px 12px 2px}
.name{font-size:13px;color:var(--muted);margin:0 12px 12px;line-height:1.35}
.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);gap:16px;margin-top:20px;min-width:0}
.workspace>*{min-width:0}
.panel{min-width:0;background:#fff;border:1px solid var(--line);border-radius:6px;padding:16px;box-shadow:0 2px 8px rgba(27,39,51,.035)}
.front-panel-sizing{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}
.front-panel-sizing>h3{margin:0 0 3px}
.front-panel-sizing>p{margin:0 0 10px;color:var(--muted);font-size:12px}
.front-panel-sizing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.front-panel-side{min-width:0;padding:10px;border:1px solid var(--line);border-radius:7px;background:#f8fafb}
.front-panel-side>strong{display:block;color:var(--ink);font-size:13px}
.front-panel-side label{margin-bottom:0}
.workspace>.panel:first-child{background:#f8fafb}
.workspace>.selected-panel{background:#fff}
.selected-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap;min-width:0}
#selectedCode{background:var(--ink);color:#fff;border-radius:5px;padding:5px 9px;font-size:13px;font-weight:800}
.muted{color:var(--muted)}
.large-image-wrap{position:relative;height:clamp(420px,58vw,720px);display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:#fbfcfd;margin-top:14px;margin-bottom:34px;overflow:visible;box-shadow:inset 0 0 0 5px #fff;--measure-image-left:0px;--measure-image-top:0px;--measure-image-width:100%;--measure-image-height:100%}
.large-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.large-image-wrap img.image-mirror-dia02{transform:scaleX(-1)}
.large-model-canvas{width:100%;height:100%}
.large-design-image{width:100%;height:100%;object-fit:contain}
.selected-hob-label{margin-top:10px;text-align:center;font-size:30px;line-height:1;font-weight:800;letter-spacing:0;color:var(--ink)}
.selected-hob-label.no-hob{color:#555}
.print-hob-label{font-size:28px}
.selected-measurements{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;text-align:center}
.selected-measurement{border:1px solid #ddd;border-radius:8px;background:#f8f8f8;padding:8px 12px;min-width:150px}
.selected-measurement span{display:block;color:#666;font-size:12px;font-weight:700;text-transform:uppercase}
.selected-measurement strong{display:block;margin-top:2px;font-size:18px}
.large-image-wrap .selected-measurements{position:absolute;inset:0;z-index:2;display:block;margin:0;pointer-events:none}
.large-image-wrap .selected-measurement{position:absolute;z-index:2;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.large-image-wrap .selected-measurement span{display:none}
.large-image-wrap .selected-measurement strong{display:block;margin:0;color:#111;font-size:16px;font-weight:900;line-height:1;white-space:nowrap;text-shadow:0 0 2px #fff,0 1px 2px rgba(255,255,255,.9)}
.selected-measurement-door-center strong{padding:0;background:transparent;box-shadow:none}
.print-selected-measurements{gap:6px;margin-top:12px}
.print-selected-measurements .selected-measurement{min-width:118px;padding:6px 8px}
.print-selected-measurements .selected-measurement strong{font-size:16px}
.results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.stock-admin{grid-template-columns:2fr 1.2fr}
.low-stock-results{grid-template-columns:1fr}
.ten-mm-stock-results{grid-template-columns:1fr}
.low-stock-panel{border:2px solid #dfbb72;background:linear-gradient(180deg,#fffaf0 0,#fff 150px)}
.ten-mm-low-stock-panel{border-color:#9db8c5;background:linear-gradient(180deg,#f3f9fb 0,#fff 150px)}
.low-stock-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.low-stock-heading h2{margin:0 0 3px;color:#72252b}
.low-stock-heading p{margin:0;color:var(--muted)}
.low-stock-summary{flex:0 0 auto;border:1px solid #e1b5b9;border-radius:999px;background:#fff3f3;color:#7d282f;padding:7px 11px;font-size:13px;font-weight:800;white-space:nowrap}
.low-stock-summary.all-clear{border-color:#b9d8ca;background:#edf8f2;color:#216548}
.low-stock-list-wrap{max-height:430px;overflow:auto;overscroll-behavior:contain;border:1px solid #ead8b5;border-radius:6px;background:rgba(255,255,255,.82);padding:8px;scrollbar-gutter:stable}
.low-stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:8px}
.low-stock-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center;border:1px solid #eadfe0;border-left:4px solid var(--red);border-radius:6px;background:#fff;padding:9px 10px;min-width:0}
.low-stock-size{display:flex;align-items:baseline;gap:7px;min-width:0}
.low-stock-size strong{overflow-wrap:anywhere}
.low-stock-type{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.low-stock-quantity{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;color:var(--red);white-space:nowrap}
.low-stock-quantity strong{font-size:20px;line-height:1}
.low-stock-quantity span{font-size:11px;font-weight:700;text-transform:uppercase}
.low-stock-needed{grid-column:1/-1;color:#76541a;font-size:12px}
.low-stock-design{grid-column:1/-1;color:var(--muted);font-size:12px;font-weight:700;line-height:1.3}
.low-stock-empty{grid-column:1/-1;border:1px solid #b9d8ca;border-radius:6px;background:#edf8f2;color:#216548;padding:12px;font-weight:700}
.ten-mm-stock-panel{border:2px solid #b8cbd4;background:linear-gradient(180deg,#f5fafc 0,#fff 170px)}
.ten-mm-stock-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.ten-mm-stock-heading h2{margin:0 0 3px}
.ten-mm-stock-heading p{margin:0;color:var(--muted)}
.ten-mm-stock-heading>strong{flex:0 0 auto;border:1px solid #b8cbd4;border-radius:999px;background:#fff;color:var(--ink-3);padding:7px 11px;font-size:13px;white-space:nowrap}
.ten-mm-stock-groups{display:grid;gap:10px}
.stock-design-group{overflow:hidden;border:1px solid #ccd9df;border-radius:7px;background:#fff}
.stock-design-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;background:#eef5f7;padding:10px 12px;font-weight:800;cursor:pointer;list-style:none}
.stock-design-group>summary::-webkit-details-marker{display:none}
.stock-design-group>summary::after{content:'+';flex:0 0 auto;color:var(--ink-3);font-size:22px;line-height:1}
.stock-design-group[open]>summary::after{content:'-'}
.stock-design-group>summary span{min-width:0;overflow-wrap:anywhere}
.stock-design-group>summary small{flex:0 0 auto;color:var(--muted);font-size:12px;white-space:nowrap}
.ten-mm-design-visual{display:grid;grid-template-columns:minmax(320px,1.15fr) minmax(280px,.85fr);gap:20px;align-items:center;border-top:1px solid #dce6eb;border-bottom:1px solid #dce6eb;background:linear-gradient(135deg,#f6fafc 0,#edf5f8 100%);padding:18px}
.ten-mm-design-figure{display:flex;align-items:center;justify-content:center;min-width:0;margin:0;border:1px solid #cbd9e0;border-radius:8px;background:#fff;padding:12px}
.ten-mm-design-figure img{display:block;width:100%;max-width:720px;height:auto}
.ten-mm-design-copy{min-width:0}
.ten-mm-design-kicker{display:block;margin-bottom:5px;color:#587083;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ten-mm-design-copy h3{margin:0 0 9px;color:var(--ink);font-size:23px;line-height:1.15}
.ten-mm-no-hinge-badge{display:inline-flex;align-items:center;border:1px solid #8fbda8;border-radius:999px;background:#e7f6ee;color:#176044;padding:6px 10px;font-size:12px;line-height:1;text-transform:uppercase}
.ten-mm-hinge-badge{display:inline-flex;align-items:center;border:1px solid #d0a14e;border-radius:999px;background:#fff4de;color:#745018;padding:6px 10px;font-size:12px;line-height:1;text-transform:uppercase}
.ten-mm-design-copy>p{margin:11px 0;color:var(--muted);line-height:1.45}
.ten-mm-design-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.ten-mm-design-specs>div{border:1px solid #cbd9e0;border-radius:6px;background:rgba(255,255,255,.88);padding:8px 9px}
.ten-mm-design-specs dt{margin:0 0 2px;color:#657785;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.ten-mm-design-specs dd{margin:0;color:var(--ink);font-size:13px;font-weight:800}
.ten-mm-design-copy .ten-mm-sizes-note{margin-bottom:0;color:var(--ink-3);font-size:13px;font-weight:800}
.stock-design-group-body{padding:0 12px 4px}
.stock-design-group-body.low-stock-grid{padding:10px}
.stock-design-group[open]>.stock-design-group-body{max-height:540px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.stock-item-details{display:block;margin-top:3px;color:var(--muted);line-height:1.35}
.tab-strip{display:flex;gap:8px;margin-top:16px;border-bottom:1px solid var(--line)}
.tab-btn{min-height:44px;background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;padding:9px 14px;color:var(--muted);font-weight:700;cursor:pointer;touch-action:manipulation}
.tab-btn:hover{color:var(--ink);background:#f4f7f8}
.tab-btn.active{background:transparent;color:var(--ink);border-bottom-color:var(--gold)}
.tab-panel{display:none}
.tab-panel.active{display:block}
.print-only-panel{display:none !important}
.row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid #e8edf0;padding:10px 0;min-width:0}
.row span{min-width:0;text-align:right;overflow-wrap:anywhere}
.profile-cut-details{display:block;margin-top:4px;line-height:1.35}
.profile-cut-line{display:block}
.merged-cutlist-heading{margin:18px 0 6px;font-size:16px}
.row-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #eee;padding:10px 0}
.row-actions .text{flex:1}
.row-actions .controls{display:flex;gap:8px;align-items:center}
.row-actions input,.row-actions select{width:auto;min-width:110px;margin-top:0}
.stock-count-controls{justify-content:flex-end;flex-wrap:wrap}
.stock-count-controls label{margin:0;font-size:12px;text-transform:uppercase;color:#666}
.stock-count-controls input{min-width:84px;max-width:96px;font-size:14px}
.stock-count-controls .action-btn{margin-bottom:0}
.warn{background:var(--gold-soft);border:1px solid #e6c784;border-radius:6px;padding:10px;margin-top:8px}
.mini-form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
.action-btn{min-height:44px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:6px;padding:9px 13px;font-size:14px;font-weight:700;cursor:pointer;margin-bottom:12px;touch-action:manipulation;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.action-btn:hover{background:var(--ink-2);border-color:var(--ink-2);transform:translateY(-1px)}
.action-btn.alt{background:var(--gold)}
.action-btn.alt:hover{background:var(--gold-2);border-color:var(--gold-2);color:var(--ink)}
.action-btn.danger{background:var(--red);border-color:var(--red)}
.action-btn.danger:hover{background:#b9262c}
.pill{display:inline-block;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}
.pill.exact{background:#e5f6ea;color:#17653a}
.pill.allocated{background:#d8f0e4;color:#145c36}
.pill.rework{background:#fff4d5;color:#8a6300}
.pill.manufacture{background:#fde7e8;color:#9d1d22}
.glass-order-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:6px;background:#f8fafb;padding:10px 12px;margin:8px 0 12px}
.glass-order-summary span{color:var(--muted);font-size:13px}
.glass-order-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:6px;background:#fff;margin-bottom:14px}
.glass-order-table{width:100%;min-width:680px;border-collapse:collapse}
.glass-order-table th,.glass-order-table td{border-bottom:1px solid #e8edf0;padding:10px 12px;text-align:left}
.glass-order-table th{background:#eef2f5;color:var(--ink-3);font-size:12px;text-transform:uppercase}
.glass-order-table tr:last-child td{border-bottom:0}
.glass-order-report{margin-top:12px}
.glass-orders-page .user-admin-page-inner{max-width:1500px}
.glass-batch-picker-panel,.combined-glass-order-panel{margin-bottom:18px}
.glass-batch-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.glass-batch-heading h2{margin:0 0 5px}
.glass-batch-heading p{margin:0}
.glass-batch-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.glass-batch-job-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:10px}
.glass-batch-job{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:7px;background:#fff;padding:11px 12px;cursor:pointer}
.glass-batch-job:hover{border-color:#aebbc4;background:#fbfcfd}
.glass-batch-job input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}
.glass-batch-job strong,.glass-batch-job span{display:block}
.glass-batch-job span{color:var(--muted);font-size:13px;margin-top:3px}
.combined-glass-order-panel[hidden]{display:none}
.combined-glass-order-report{overflow:auto;min-height:260px;background:#fff}
.combined-glass-order-report svg{min-width:980px;height:auto}
pre{background:var(--ink);color:white;border-radius:6px;padding:16px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.factory-print-layout{display:grid;grid-template-columns:1fr 1.25fr;gap:16px;margin-top:16px}
.print-visual-panel{border:1px solid #eee;border-radius:10px;padding:14px;background:#fff}
.print-visual-panel h3{margin:0 0 12px;font-size:15px}
.print-image-wrap{position:relative;height:340px;display:flex;align-items:center;justify-content:center;border:1px solid #eee;border-radius:10px;background:#fff;overflow:visible}
.print-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.print-image-wrap img.image-mirror-dia02{transform:scaleX(-1)}
.print-image-wrap .shower-photo{height:100%}
.print-image-wrap .shower-model-canvas{height:100%}
.print-image-wrap .print-selected-measurements{position:absolute;inset:0;z-index:2;display:block;margin:0;pointer-events:none}
.print-image-wrap .selected-measurement{position:absolute;z-index:2;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.print-image-wrap .selected-measurement span{display:none}
.print-image-wrap .selected-measurement strong{display:block;margin:0;color:#111;font-size:13px;font-weight:900;line-height:1;white-space:nowrap;text-shadow:0 0 2px #fff,0 1px 2px rgba(255,255,255,.9)}
.print-top-image-wrap{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #bbb;border-radius:10px;background:#fff;overflow:visible}
.print-top-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.print-top-image-wrap img.image-mirror-dia02{transform:scaleX(-1)}
.print-top-image-wrap .shower-photo{height:100%}
.print-top-image-wrap .shower-model-canvas{height:100%}
.print-top-image-wrap .print-selected-measurements{position:absolute;inset:0;z-index:2;display:block;margin:0;pointer-events:none}
.print-top-image-wrap .selected-measurement{position:absolute;z-index:2;min-width:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.print-top-image-wrap .selected-measurement span{display:none}
.print-top-image-wrap .selected-measurement strong{display:block;margin:0;color:#111;font-size:11px;font-weight:900;line-height:1;white-space:nowrap;text-shadow:0 0 2px #fff,0 1px 2px rgba(255,255,255,.9)}
.print-selected-design-details{display:grid;gap:8px}
.print-selected-design-details div{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:start;border-bottom:1px solid #eee;padding-bottom:6px}
.print-selected-design-details strong{font-size:13px;text-transform:uppercase;color:#666}
.print-selected-design-details span{font-size:18px;font-weight:800;line-height:1.2}
.glass-diagram{border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px;min-height:340px}
.glass-diagram svg{display:block;width:100%;height:auto}
.email-panel{max-width:980px}
.email-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.email-actions .action-btn{margin-bottom:12px}
.email-glass-diagram{padding:16px;min-height:420px}
.user-admin-page[hidden]{display:none !important}
.user-admin-page{min-height:calc(100vh - 72px);padding:24px;background:var(--page)}
.user-admin-page-inner{max-width:1200px;margin:0 auto}
.user-admin-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.user-admin-page-header h2{margin:0 0 5px;font-size:26px}
.user-admin-page-header .action-btn{margin-bottom:0}
.user-password-security-note{max-width:760px;margin:8px 0 0;color:#5d4a1c;font-size:13px;font-weight:700;line-height:1.45}
.stock-page .user-admin-page-inner{max-width:1400px}
.stock-match-results{grid-template-columns:1fr;margin-top:0}
.stock-section-intro{margin:-4px 0 8px}
.stock-inventory-tabs{margin-top:18px}
.stock-inventory-panel[hidden]{display:none!important}
.stock-inventory-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.stock-inventory-heading h2{margin:0 0 3px}
.stock-inventory-heading p{margin:0;color:var(--muted)}
.stock-movement-results{grid-template-columns:1fr}
.user-admin-layout{margin-top:0}
.user-admin-content{display:grid;gap:16px}
.user-create-panel h3{margin:0 0 12px;font-size:18px}
.user-admin-status{display:inline-flex;align-items:center;width:fit-content;max-width:100%;background:#e8f4ed;border:1px solid #91bca3;color:#235f45;border-radius:6px;padding:9px 12px;font-weight:700}
.user-admin-status.error{background:#fde7e8;border-color:#e59a9d;color:#9d1d22}
.email-processing-admin{display:grid;gap:14px}
.email-token-admin{display:grid;gap:14px;padding:0 14px 14px}
.email-token-form{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr);gap:12px}
.email-token-form label{display:grid;gap:6px;font-weight:800}
.email-token-form input,.email-token-form select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px 10px;color:var(--ink)}
.email-token-scopes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 14px;border:1px solid var(--line);border-radius:8px;padding:12px}
.email-token-scopes legend{padding:0 6px;font-weight:900}
.email-token-scopes label{display:flex;align-items:flex-start;gap:7px;font-size:13px}
.email-token-scopes input{margin-top:2px}
.email-processing-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.email-processing-heading h3{margin:0 0 4px}
.email-processing-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.email-processing-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafb;min-width:0}
.email-processing-summary span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.email-processing-summary strong{overflow-wrap:anywhere}
.email-processing-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:12px;border:1px solid #e3c77f;border-radius:8px;background:#fff8df}
.email-processing-controls label{display:flex;align-items:center;gap:8px;font-weight:800}
.email-processing-controls input{width:auto;margin:0}
.email-processing-warning{margin:0;color:#745516;font-weight:700}
.email-discovery-initialisation[hidden]{display:none!important}
.email-discovery-initialisation{display:grid;gap:12px;padding:14px;border:1px solid #c7a85f;border-left:5px solid var(--gold);border-radius:8px;background:#fff9e9}
.email-discovery-initialisation h4{margin:0 0 4px}
.email-discovery-initialisation p{margin:0}
.email-discovery-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.email-discovery-form label{display:grid;gap:6px;font-weight:800}
.email-discovery-form input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px 10px;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.email-discovery-form input[readonly]{background:#f1f4f6;color:var(--muted)}
.email-discovery-confirm{display:flex;align-items:flex-start;gap:8px;font-weight:800}
.email-discovery-confirm input{width:auto;margin-top:3px}
.email-processing-admin details{border:1px solid var(--line);border-radius:8px;background:#fff}
.email-processing-admin summary{cursor:pointer;padding:12px 14px;font-weight:900}
.email-processing-table-wrap{overflow:auto;border-top:1px solid var(--line)}
.email-processing-table{width:100%;min-width:720px;border-collapse:collapse}
.email-processing-table th,.email-processing-table td{padding:9px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.email-processing-table th{background:#eef2f5;color:var(--ink-3);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.email-processing-table tr:last-child td{border-bottom:0}
.email-processing-table code{white-space:normal;overflow-wrap:anywhere}
@media(max-width:700px){.email-discovery-form{grid-template-columns:1fr}}
.user-password-receipt[hidden]{display:none!important}
.user-password-receipt{display:grid;gap:13px;border:1px solid #c7a85f;border-left:5px solid var(--gold);border-radius:9px;background:#fff9e9;padding:16px;box-shadow:0 5px 18px rgba(84,62,14,.1)}
.user-password-receipt-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.user-password-receipt-heading>div{display:grid;gap:3px}
.user-password-receipt-heading strong{color:#533b0d;font-size:17px}
.user-password-receipt-heading span{color:#685b3d;font-size:13px;line-height:1.4}
.password-receipt-dismiss{flex:0 0 auto;width:36px;height:36px;border:1px solid #dac58f;border-radius:6px;background:#fff;color:#533b0d;font-size:24px;line-height:1;cursor:pointer}
.user-password-receipt code{display:block;overflow-wrap:anywhere;border:1px solid #dac58f;border-radius:7px;background:#fff;padding:13px;color:#172430;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:19px;font-weight:800;letter-spacing:.04em;user-select:all}
.user-password-receipt-actions{display:flex;gap:8px;flex-wrap:wrap}
.user-password-receipt-actions .action-btn{margin:0}
.user-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.user-card{min-width:0;border:1px solid var(--line);border-top:3px solid var(--ink-3);border-radius:6px;background:#fff;padding:16px;box-shadow:0 2px 8px rgba(27,39,51,.04)}
.user-card.is-inactive{border-top-color:#9aa6af;background:#fafbfc}
.user-card-summary{display:grid;gap:10px;border-bottom:1px solid #e8edf0;padding-bottom:13px;margin-bottom:13px}
.user-card-identity{min-width:0}
.user-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;flex-wrap:wrap}
.user-card-title-row h3{min-width:0;margin:0;font-size:19px;line-height:1.2;overflow-wrap:anywhere}
.user-card-username{margin:3px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.user-status{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:800}
.user-status:before{content:"";width:8px;height:8px;border-radius:50%;background:#97a3ad}
.user-status.is-active{color:#236546}
.user-status.is-active:before{background:#2f8a5d}
.user-access-badges{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.user-access-badge{display:inline-flex;align-items:center;min-height:26px;max-width:100%;border:1px solid #ccd6dd;border-radius:5px;background:#f4f7f9;color:var(--ink-3);padding:4px 8px;font-size:11px;font-weight:800;line-height:1.25;overflow-wrap:anywhere}
.user-access-badge.role{border-color:#d6bd88;background:var(--gold-soft);color:#765317}
.user-access-badge.crm{border-color:#a9c6b6;background:#eef7f2;color:#285e46}
.user-access-badge.stock{border-color:#b6c7d4;background:#eef4f8;color:#33576f}
.user-access-badge.current{border-color:#c7cdd2;background:#fff;color:#4f5e6b}
.user-access-badge.invite-pending{border-color:#91bca3;background:#e8f4ed;color:#235f45}
.user-access-badge.invite-accepted{border-color:#8eb9d1;background:#edf7fc;color:#255b79}
.user-access-badge.invite-expired,.user-access-badge.invite-failed{border-color:#e0a3a7;background:#fff0f1;color:#8c2e35}
.user-card-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.user-card-fields label{min-width:0;margin:0}
.user-card-fields input,.user-card-fields select{min-width:0;margin-top:5px}
.user-password-field{min-width:0}
.user-password-field>label{display:block}
.user-password-field small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}
.user-invite-option{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:10px;margin:0;border:1px solid #d6bd88;border-radius:8px;background:var(--gold-soft);padding:12px;cursor:pointer}
.user-invite-option>input{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;accent-color:var(--gold)}
.user-invite-option>span{display:grid;gap:3px}.user-invite-option strong{color:#5f4515}.user-invite-option small{color:#6f613f;line-height:1.4}
.user-invite-option:has(input:disabled){border-color:var(--line);background:#f4f6f7;cursor:not-allowed}.user-invite-option:has(input:disabled) strong,.user-invite-option:has(input:disabled) small{color:var(--muted)}
.user-password-control{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:stretch;margin-top:5px}
.user-password-control input,.user-card-fields .user-password-control input{width:100%;margin:0}
.password-tool-btn{min-height:44px;border:1px solid var(--line-strong);border-radius:6px;background:#f6f8f9;color:var(--ink-3);padding:7px 10px;font-size:12px;font-weight:800;cursor:pointer}
.password-tool-btn:hover{border-color:#9dabb5;background:#fff;color:var(--ink)}
.user-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.user-card-actions .action-btn{margin-bottom:0}
.user-card-actions .action-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.no-access-panel{max-width:640px;margin:40px auto;text-align:center}
.no-access-panel h2{margin-top:0}
.job-record-panel{max-width:1500px}
.job-record-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.job-record-heading h2{margin:0 0 6px}
.job-record-toolbar{max-width:420px}
.job-record-status{background:#e8f4ed;border:1px solid #91bca3;color:#235f45;border-radius:6px;padding:10px;margin:8px 0 14px;font-weight:700}
.job-record-status.error{background:#fde7e8;border-color:#e59a9d;color:#9d1d22}
.job-record-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px}
.job-record-list{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.job-record-group+.job-record-group{border-top:2px solid #c7d0d6}
.job-record-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#eef2f4;border-bottom:1px solid var(--line);color:#26343d}
.job-record-group-header>div{display:flex;align-items:baseline;gap:10px;min-width:0}
.job-record-group-header strong{font-size:15px}
.job-record-group-header span{color:#61717c;font-size:12px}
.job-record-group .job-record-card{padding-left:20px}
.job-record-card{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding:12px}
.job-record-card:last-child{border-bottom:0}
.job-record-card small{color:#666;line-height:1.35}
.job-record-meta{display:block;margin-top:7px}
.job-record-builder{display:inline-block;margin-left:8px;color:#61717c;font-weight:500}
.job-record-summary-card{align-items:center}
.job-record-summary-card strong{font-size:17px}
.job-record-summary-card .job-record-actions{flex:0 0 auto}
.job-items-document{margin-top:12px}
.job-detail-item-list .job-record-card{padding-left:12px}
.job-status-pill{display:inline-block;margin-left:6px;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800;text-transform:uppercase;vertical-align:middle}
.job-status-pill.draft{background:#fff4d5;color:#8a6300}
.job-status-pill.saved{background:#e5f6ea;color:#17653a}
.job-status-pill.readonly{background:#e7edf5;color:#2d4a66}
.installation-status-pill{display:inline-flex;align-items:center;min-height:24px;margin-left:6px;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:800;text-transform:uppercase;vertical-align:middle}
.installation-status-pill.incomplete{background:#fff4d5;color:#805c00}
.installation-status-pill.complete{background:#e5f6ea;color:#17653a}
.job-record-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.job-record-actions .action-btn{margin-bottom:0;white-space:nowrap}
.crm-page-inner{width:100%;max-width:none}
.crm-create-panel,.crm-record-panel{max-width:none}
.crm-create-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(140px,.25fr) minmax(210px,.45fr) auto;gap:12px;align-items:end}
.crm-create-grid .action-btn{margin-bottom:0}
.crm-record-heading,.crm-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.crm-record-heading h2,.crm-detail-heading h2{margin:0 0 6px}
.crm-search-wrap{width:min(420px,100%)}
.crm-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.crm-file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px;max-height:230px;padding:8px;overflow:auto}
.crm-file-list>.warn{grid-column:1/-1}
.crm-file-list .crm-file-card{min-width:0;border:1px solid var(--line);border-radius:5px}
.crm-file-detail{min-width:0}
.crm-file-card strong{line-height:1.3}
.crm-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;margin-bottom:18px;background:#f7f9fa;border:1px solid var(--line);border-radius:6px;padding:12px}
.crm-mozaik-field{min-width:0;margin:9px 0}
.crm-mozaik-field>label{margin:0}
.crm-mozaik-input-row{display:flex;align-items:stretch;gap:7px}
.crm-mozaik-input-row input{min-width:0}
.crm-mozaik-change{flex:0 0 auto;align-self:stretch;margin:5px 0 0;white-space:nowrap}
.crm-mozaik-help{display:block;margin-top:5px;color:var(--muted);font-weight:500;line-height:1.35}
.crm-mozaik-suggestions{position:relative;z-index:10;max-height:18rem;margin-top:.35rem;padding:.25rem;overflow-y:auto;border:1px solid #b8c3cc;border-radius:10px;background:#fff;box-shadow:0 8px 20px rgba(23,37,50,.16)}
.crm-mozaik-suggestion{display:block;width:100%;padding:.65rem .75rem;border:0;border-bottom:1px solid #e3e8ec;background:#fff;color:#172532;text-align:left;cursor:pointer}
.crm-mozaik-suggestion:hover,.crm-mozaik-suggestion:focus{background:#eef5f8}
.crm-mozaik-no-results{display:block;padding:.65rem .75rem;color:var(--muted)}
.crm-notes-wide{grid-column:1 / -1}
.crm-section{--section-color:#4f8df7;margin:18px 0 26px;border-left:7px solid var(--section-color)}
.crm-section-blue{--section-color:#4f8df7}
.crm-section-purple{--section-color:#a45ee5}
.crm-section-pink{--section-color:#ec2789}
.crm-section-yellow{--section-color:#f6c600}
.crm-section-orange{--section-color:#ff6d3a}
.crm-section-title{display:flex;align-items:baseline;gap:10px;margin:0 0 8px;padding-left:10px}
.crm-section-title h3{margin:0;color:var(--section-color);font-size:22px}
.crm-section-title span{color:var(--muted);font-weight:800;font-size:13px}
.crm-table-scroll{overflow:auto;border:1px solid var(--line);border-left:0;border-radius:0 6px 6px 0;background:#fff}
.crm-task-table{width:100%;min-width:1600px;border-collapse:collapse;table-layout:fixed}
.crm-task-table th,.crm-task-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0;background:#fff;vertical-align:middle}
.crm-task-table th{height:42px;background:#eef2f5;color:var(--ink-3);font-weight:800;text-align:left;padding:8px 10px}
.crm-task-table th:last-child,.crm-task-table td:last-child{border-right:0}
.crm-task-table tr:last-child td{border-bottom:0}
.crm-task-table th:nth-child(2){width:240px}
.crm-task-table th:nth-child(3){width:160px}
.crm-task-table th:nth-child(4){width:140px}
.crm-task-table th:nth-child(5){width:280px}
.crm-task-table th:nth-child(6){width:250px}
.crm-task-table th:nth-child(7){width:180px}
.crm-task-table th:nth-child(8){width:240px}
.crm-task-table th:nth-child(9){width:70px}
.crm-task-table input:not([type=file]),.crm-task-table select{border:0;border-radius:0;margin:0;min-height:46px;background:#fff;box-shadow:none;font-size:14px}
.crm-task-table input:not([type=file]):focus,.crm-task-table select:focus{outline:2px solid rgba(200,146,46,.28);outline-offset:-2px}
.crm-check-cell{width:48px;text-align:center}
.crm-check-cell input{width:18px;min-height:18px;margin:0}
.crm-files-cell{padding:7px!important;vertical-align:top!important}
.crm-date-cell{vertical-align:top!important;min-width:280px}
.crm-wardrobe-travel{display:grid;gap:6px;padding:8px;border-top:1px solid var(--line);background:#faf6eb}
.crm-wardrobe-travel strong{font-size:12px;color:var(--gold-text)}
.crm-task-table .crm-wardrobe-travel select,.crm-task-table .crm-wardrobe-travel input{min-height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:12px}
.crm-wardrobe-travel label{display:grid;gap:3px;font-size:11px;color:var(--ink-3)}
.crm-wardrobe-travel small{line-height:1.35;color:var(--ink-3)}
.crm-variation-panel{display:grid;gap:8px;margin-top:8px;padding:10px;border:1px solid #d6bc79;border-radius:8px;background:#fff9e9;min-width:260px}
.crm-variation-panel>strong{color:#604814;font-size:12px}
.crm-variation-panel>small{line-height:1.35;color:var(--ink-3)}
.crm-variation-room-options{display:grid;gap:6px}
.crm-variation-room-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}
.crm-variation-room-option input{width:18px;height:18px}
.crm-variation-room-option span{display:grid;gap:2px;min-width:0}
.crm-variation-room-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3)}
.crm-variation-room-option b{color:var(--gold-text)}
.crm-variation-total{justify-self:end}
.crm-variation-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.crm-variation-action-status{line-height:1.35}
.crm-files-box{display:grid;gap:6px;min-width:0;border-radius:5px;transition:background-color .15s ease,box-shadow .15s ease}
.crm-files-box.crm-file-drag-over{background:#fff8e8;box-shadow:0 0 0 2px var(--gold)}
.crm-files-box.crm-file-drag-blocked{background:#fff1f2;box-shadow:0 0 0 2px var(--red)}
.crm-files-box .crm-files-text{min-height:34px!important;border:1px solid var(--line)!important;border-radius:4px!important;padding:6px 8px}
.crm-file-actions{display:flex;align-items:center;gap:6px}
.crm-file-actions .crm-upload-btn{min-height:32px;margin:0;padding:6px 10px;font-size:12px}
.crm-file-drop-hint{color:var(--muted);font-size:11px;font-weight:800}
.crm-comment-box{display:grid;gap:5px;padding:6px;min-width:0}
.crm-task-row.crm-task-mentioned{outline:3px solid rgba(185,56,50,.35);outline-offset:-3px;background:#fff8f7}
.crm-notes-cell{vertical-align:top!important}
.crm-comment-box .crm-notes{width:100%;min-height:34px!important;border:1px solid var(--line)!important;border-radius:4px!important;padding:6px 8px;background:#fff;color:var(--ink);font:inherit}
.crm-comment-box .crm-notes{min-height:78px!important;line-height:1.4;resize:vertical}
.crm-comment-box .crm-notes:focus-visible{outline:2px solid var(--gold-text);outline-offset:1px}
.crm-note-quiet-hint{color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}
.crm-task-conversation-cell{display:grid;gap:6px;min-width:170px;padding:6px}.crm-task-conversation-cell .has-conversations{border-color:var(--gold-text);background:var(--gold-soft);color:#5f4515}.crm-task-conversation-cell [data-task-conversation-count]:not(:empty){display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;border-radius:999px;background:#6b501a;color:#fff;font-size:12px;font-weight:800}.crm-legacy-comment{display:block;max-width:240px;color:var(--muted);white-space:normal}.crm-conversations-panel{margin-top:18px}.crm-conversations-heading,.conversation-list-toolbar,.conversation-panel-heading,.conversation-inbox-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.crm-conversations-heading h3,.conversation-panel-heading h3,.conversation-inbox-heading h3{margin:0}.conversation-list-toolbar small{display:block;color:var(--muted);margin-top:3px}.conversation-summary-list{display:grid;gap:8px;margin-top:12px}.conversation-summary{display:flex;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;text-align:left;color:var(--ink);cursor:pointer;justify-content:space-between;gap:12px}.conversation-summary:hover,.conversation-summary.active{border-color:var(--gold-text);box-shadow:0 2px 10px rgba(23,37,50,.1)}.conversation-summary span:first-child{display:grid;gap:4px;min-width:0}.conversation-summary small,.conversation-summary time{color:var(--muted);font-size:12px}.conversation-summary .conversation-people{color:#3e5566;font-weight:700}.conversation-summary p{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-latest-author{color:var(--ink);font-weight:800}.conversation-state{align-self:flex-start;border-radius:999px;padding:3px 8px;background:#edf2f5;font-size:12px;text-transform:capitalize}.conversation-state-open{background:#fff1c9;color:#674900}.conversation-state-complete{background:#dff4e6;color:#145c2b}.conversation-state-ignored{background:#eceff2;color:#4c5660}.conversation-thread{display:grid;gap:14px}.conversation-participants{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.conversation-participants>span{border-radius:999px;background:#edf2f5;padding:5px 9px;font-size:13px}.conversation-participants small{color:var(--muted)}.conversation-state-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-block:1px solid var(--line);padding:10px 0}.conversation-state-actions>span{margin-left:auto}.conversation-messages{display:grid;gap:10px;max-height:55vh;overflow:auto;padding:4px}.conversation-message{border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px 13px}.conversation-message-system,.conversation-message-status,.conversation-message-legacy{background:#f4f6f8}.conversation-message header{display:flex;justify-content:space-between;gap:10px}.conversation-message time{color:var(--muted);font-size:12px}.conversation-message p{margin:8px 0 0;line-height:1.45}.conversation-attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.conversation-attachment{display:grid;border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:#f8fafb;text-decoration:none}.conversation-attachment small{color:var(--muted)}.conversation-composer{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:14px}.conversation-composer textarea,.conversation-composer select,.conversation-composer input{width:100%}.conversation-composer select[multiple]{min-height:70px}.conversation-attachment-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.conversation-file-button{cursor:pointer;margin:0}.conversation-selected-files,[data-files]{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.conversation-inbox-layout{display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);gap:18px}.conversation-inbox-layout>aside{border-right:1px solid var(--line);padding-right:18px}.conversation-inbox-layout>main{min-width:0}
@media(max-width:760px){.conversation-inbox-layout{grid-template-columns:1fr}.conversation-inbox-layout>aside{border-right:0;border-bottom:1px solid var(--line);padding:0 0 14px}.crm-conversations-heading,.conversation-list-toolbar,.conversation-panel-heading{align-items:stretch;flex-direction:column}.conversation-state-actions>span{margin-left:0;width:100%}.conversation-attachment-controls .action-btn{min-height:44px}.conversation-messages{max-height:none}.conversation-summary p{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}}
.crm-attachment-list{display:grid;gap:4px;min-width:0}
.crm-attachment{display:flex;align-items:stretch;min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--panel-soft);overflow:hidden}
.crm-attachment>[data-attachment-viewer]{display:block;flex:1;min-width:0;border:0;padding:6px 8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.crm-attachment>[data-attachment-viewer]:hover{text-decoration:underline}
.crm-attachment>[data-attachment-viewer] span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}
.crm-attachment>[data-attachment-viewer] small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.crm-attachment-delete{flex:0 0 30px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--red);font-size:18px;font-weight:800;cursor:pointer}
.crm-attachment-delete:hover{background:#fde7e8}
.crm-status{font-weight:900;text-align:center;color:#fff}
.crm-status-not_started{background:#8792a0!important;color:#fff}
.crm-status-waiting{background:#d9952f!important;color:#fff}
.crm-status-booked{background:#3e80c9!important;color:#fff}
.crm-status-in_progress{background:#8b63d8!important;color:#fff}
.crm-status-done{background:#35c98d!important;color:#fff}
.crm-status-problem{background:#c94752!important;color:#fff}
.crm-completion-button{display:block;width:100%;min-height:38px;border:1px solid var(--ink);border-radius:5px;background:var(--ink);color:#fff;padding:7px 8px;font-size:12px;font-weight:900;cursor:pointer}
.crm-completion-button.complete{border-color:#d7aaae;background:#fff5f5;color:var(--red)}
.crm-completion-button:hover{filter:brightness(1.06)}
.crm-row-action-cell{width:88px;text-align:center;padding:6px!important}
.crm-row-action-cell .action-btn{margin:0;padding:7px 8px;font-size:12px}
.crm-empty-row td{padding:14px;color:var(--muted);font-weight:700}
.crm-add-row-btn{margin-top:8px;margin-left:10px;border:0;background:transparent;color:var(--muted);font-weight:800;cursor:pointer;padding:8px 0}
.crm-add-row-btn:hover{color:var(--ink)}
.job-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.job-detail-heading h3{margin:0 0 4px}
.job-doc-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);gap:16px}
.job-document{border:1px solid var(--line);border-radius:6px;padding:14px;background:#fff}
.job-document h3{margin:0 0 12px;font-size:15px}
.job-photo-document{grid-column:1 / -1}
.job-photo-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.job-photo-heading h3{margin:0}
.job-photo-heading .action-btn{margin-bottom:0;cursor:pointer}
.job-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.job-photo-card{border:1px solid #e1e5ea;border-radius:8px;overflow:hidden;background:#f8fafc;margin:0}
.job-photo-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#fff}
.job-photo-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px}
.job-photo-card figcaption span{font-size:12px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-photo-card .action-btn{margin-bottom:0;padding:7px 9px;font-size:12px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.job-image-wrap{min-height:320px;display:flex;align-items:center;justify-content:center;border:1px solid #eee;border-radius:10px;background:#fff;padding:10px}
.job-image-wrap img{max-width:100%;max-height:520px;object-fit:contain}
.job-image-wrap img.image-mirror-dia02{transform:scaleX(-1)}
.job-image-wrap .shower-photo{height:520px}
.job-image-wrap .shower-model-canvas{height:520px}
.job-glass-diagram{min-height:320px}
.job-factory-document{grid-column:1 / -1}
.job-factory-document pre{max-height:520px;overflow:auto;margin:0}
.saved-job-print-sheet{display:none}
.schedule-panel{border:1px solid var(--line);border-radius:6px;background:var(--panel-soft);padding:12px;margin:12px 0 16px}
.schedule-panel h3{margin:0 0 10px;font-size:16px}
.schedule-form{display:grid;grid-template-columns:minmax(270px,1fr) 160px 140px auto;gap:10px;align-items:end}
.schedule-form label{margin:0}
.schedule-form .action-btn{margin-bottom:0}
.schedule-field>label{margin:0}
.schedule-installer-combobox{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 44px;margin-top:5px}
.schedule-installer-combobox>input{min-width:0;margin-top:0;border-radius:6px 0 0 6px}
.schedule-installer-toggle{display:flex;align-items:center;justify-content:center;min-height:42px;margin:0;border:1px solid var(--line-strong);border-left:0;border-radius:0 6px 6px 0;background:#fff;color:var(--ink-3);cursor:pointer}
.schedule-installer-toggle:hover{background:#f1f5f7;color:var(--ink)}
.schedule-installer-chevron{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px)}
.schedule-installer-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:6px;background:#fff;padding:4px;box-shadow:0 12px 26px rgba(27,39,51,.16)}
.schedule-installer-menu[hidden]{display:none}
.schedule-installer-option-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px}
.schedule-installer-option{display:block;width:100%;min-width:0;min-height:40px;overflow:hidden;border:0;border-radius:4px;background:#fff;color:var(--ink);padding:8px 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.schedule-installer-option:hover,.schedule-installer-option.selected{background:#eef2f4}
.schedule-installer-actions{display:flex;align-items:center;gap:4px}
.schedule-installer-edit,.schedule-installer-delete{min-height:34px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:6px 8px;font-size:12px;font-weight:800;cursor:pointer}
.schedule-installer-edit{color:var(--ink-3)}
.schedule-installer-edit:hover{border-color:var(--gold);background:var(--gold-soft);color:var(--ink)}
.schedule-installer-delete{color:var(--red)}
.schedule-installer-delete:hover{border-color:#d7aaae;background:#fff5f5}
.schedule-readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px}
.schedule-readonly-grid div{border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:10px}
.schedule-readonly-grid span{display:block;color:#64748b;font-size:12px;font-weight:700;text-transform:uppercase}
.schedule-readonly-grid strong{display:block;margin-top:3px;font-size:16px}
.installation-status-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:12px;margin:12px 0}
.installation-status-heading{display:flex;align-items:center;gap:8px;min-width:0}
.installation-status-heading h3{margin:0;font-size:16px}
.installation-status-heading .installation-status-pill{margin-left:0}
.installation-status-panel>.muted{margin:0}
.installation-status-control{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));flex:0 0 auto;border:1px solid var(--line-strong);border-radius:6px;overflow:hidden;background:#fff}
.installation-status-control button{min-height:42px;border:0;border-right:1px solid var(--line-strong);background:#fff;color:var(--ink-3);padding:8px 12px;font-weight:800;cursor:pointer}
.installation-status-control button:last-child{border-right:0}
.installation-status-control button:hover{background:#f1f5f7}
.installation-status-control button.active{background:var(--ink);color:#fff}
.installation-status-control button:disabled{opacity:.72;cursor:progress}
.installer-admin-panel{max-width:1500px;margin-bottom:16px}
.installer-admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.installer-admin-heading h2{margin:0 0 6px}
.installer-add-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.installer-add-form input{min-width:220px}
.installer-add-form select{min-width:170px}
.installer-add-form .action-btn{margin-bottom:0}
.installer-list{display:grid;gap:8px;margin-top:12px}
.installer-row{display:grid;grid-template-columns:minmax(180px,1fr) 175px 130px auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:8px;background:#fff}
.installer-row .action-btn{margin-bottom:0}
.installer-daily-totals-panel{max-width:1500px;margin-bottom:16px}
.installer-daily-totals-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.installer-daily-totals-heading h2{margin:0 0 5px}
.installer-daily-totals-heading>strong{font-size:16px;text-align:right}
.installer-pricing-groups{display:grid;gap:12px}
.installer-pricing-group{overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fff}
.installer-pricing-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel-soft);border-bottom:1px solid var(--line);padding:11px 13px}
.installer-pricing-group-heading h3{display:inline;margin:0 8px 0 0;font-size:17px}
.installer-pricing-group-heading span{color:#64748b;font-size:12px;font-weight:700}
.installer-pricing-group-heading>strong{font-size:20px;color:#17653a;white-space:nowrap}
.installer-pricing-item{display:grid;grid-template-columns:minmax(170px,1fr) minmax(220px,1.7fr) 110px 120px;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid #e8ebee}
.installer-pricing-item:last-child{border-bottom:0}
.installer-pricing-evidence{grid-column:1/-1;display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;padding-top:4px}
.installer-pricing-evidence details{min-width:min(100%,520px);flex:1}
.installer-pricing-evidence summary{cursor:pointer;font-weight:700;color:var(--navy)}
.installer-pricing-job strong,.installer-pricing-job span{display:block}
.installer-pricing-job span{margin-top:2px;color:#64748b;font-size:13px}
.installer-pricing-address{font-weight:700}
.installer-pricing-status{font-size:12px;font-weight:800;text-transform:uppercase}
.installer-pricing-status.complete{color:#17653a}
.installer-pricing-status.incomplete{color:#805c00}
.installer-pricing-amount{text-align:right;font-size:16px;font-weight:900;white-space:nowrap}
.installer-pricing-amount.not-entered{color:#805c00}
.installer-pricing-amount small{display:block;font-size:10px;font-weight:800;text-transform:uppercase}
.installer-pricing-grand-total{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-top:12px;border-top:2px solid var(--ink);padding-top:12px;font-size:18px}
.installer-pricing-grand-total strong{font-size:23px;color:#17653a}
.installer-pricing-empty{border:1px dashed var(--line-strong);border-radius:7px;padding:16px;color:#64748b;text-align:center}
.installer-billing-panel{max-width:1500px}
.billing-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.billing-toolbar h2{margin:0 12px 0 0;min-width:240px}
.billing-toolbar .action-btn{margin-bottom:0}
.billing-summary{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.billing-summary-card{border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);padding:14px}
.billing-summary-card span{display:block;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase}
.billing-summary-card strong{display:block;margin-top:5px;font-size:24px;color:var(--ink)}
.billing-summary-card.payable strong{color:#17653a}
.billing-days{display:grid;gap:16px}
.billing-day{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.billing-day-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--ink);color:#fff;padding:13px 15px}
.billing-day-heading h3{margin:0;font-size:18px}
.billing-day-heading p{margin:3px 0 0;color:#d6dbe1;font-size:12px}
.billing-day-totals{display:flex;gap:22px;text-align:right}
.billing-day-totals span{display:block;color:#d6dbe1;font-size:10px;font-weight:800;text-transform:uppercase}
.billing-day-totals strong{display:block;margin-top:2px;font-size:18px}
.billing-installer{border-top:1px solid var(--line)}
.billing-installer:first-child{border-top:0}
.billing-installer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel-soft);padding:10px 14px}
.billing-installer-heading h4{margin:0;font-size:16px}
.billing-installer-heading strong{color:#17653a;font-size:17px}
.billing-job-row{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(170px,1.2fr) minmax(210px,1.7fr) 110px 115px;gap:12px;align-items:center;border-top:1px solid #e8ebee;padding:11px 14px}
.billing-job-row button{justify-self:start}
.billing-job-address{font-weight:700}
.billing-job-item{color:#64748b;font-size:13px}
.billing-job-status{font-size:11px;font-weight:900;text-transform:uppercase}
.billing-job-status.complete{color:#17653a}
.billing-job-status.incomplete{color:#805c00}
.billing-job-amount{text-align:right;font-size:16px;font-weight:900;white-space:nowrap}
.billing-empty{border:1px dashed var(--line-strong);border-radius:7px;padding:24px;color:#64748b;text-align:center}
.billing-filter-panel{display:grid;grid-template-columns:minmax(230px,1fr) minmax(210px,280px) minmax(340px,430px) auto;gap:14px;align-items:end;margin-bottom:18px;border:2px solid #d9ad59;border-radius:8px;background:var(--gold-soft);padding:16px}
.billing-filter-intro{align-self:center}
.billing-filter-intro strong{display:block;color:var(--ink);font-size:19px}
.billing-filter-intro span{display:block;margin-top:3px;color:#6d5a33;font-size:12px;font-weight:700}
.billing-filter-panel label{margin:0;color:var(--ink)}
.billing-filter-panel select{border:2px solid var(--gold);background:#fff;font-weight:800}
.billing-filter-panel .action-btn{margin-bottom:0}
.billing-filter-panel>*{min-width:0}
.billing-installer-earnings{margin-bottom:18px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:15px}
.billing-earnings-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.billing-earnings-heading h3{margin:0;font-size:20px}
.billing-earnings-heading span{display:block;margin-top:2px;color:#64748b;font-size:12px;font-weight:800}
.billing-earnings-heading>strong{color:#64748b;font-size:12px;text-align:right}
.billing-earnings-table{overflow:hidden;border:1px solid var(--line);border-radius:7px}
.billing-earnings-row{display:grid;grid-template-columns:minmax(180px,1fr) 100px 140px;gap:14px;align-items:center;width:100%;border:0;border-top:1px solid var(--line);background:#fff;padding:10px 13px;color:var(--ink);text-align:left}
button.billing-earnings-row{cursor:pointer}
button.billing-earnings-row:hover,button.billing-earnings-row.selected{background:var(--gold-soft)}
button.billing-earnings-row.selected{box-shadow:inset 4px 0 0 var(--gold)}
.billing-earnings-row>*:last-child{text-align:right}
.billing-earnings-row strong small,.billing-line-installer small{display:block;margin-top:2px;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.billing-line-pay>small{display:block;margin-top:3px}
.schedule-installer-option span{display:block}.schedule-installer-option small{display:block;margin-top:2px;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase}
.wardrobe-pricing-card{margin:14px 0;border:1px solid #c9d7e5;border-left:5px solid #b99034;border-radius:8px;background:#f8fafc}.wardrobe-pricing-card.needs_review{border-left-color:#b45309;background:#fff8ed}.wardrobe-pricing-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;cursor:pointer;list-style:none}.wardrobe-pricing-heading::-webkit-details-marker{display:none}.wardrobe-pricing-heading::before{content:'\25B8';flex:0 0 auto;color:#64748b;font-size:16px;transition:transform .16s ease}.wardrobe-pricing-card[open]>.wardrobe-pricing-heading::before{transform:rotate(90deg)}.wardrobe-pricing-heading>div:first-of-type{flex:1}.wardrobe-pricing-heading span{display:block;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.wardrobe-pricing-summary-total{text-align:right}.wardrobe-pricing-summary-total strong{display:block;font-size:24px}.wardrobe-pricing-summary-total small{display:block;margin-top:2px;color:#64748b;font-size:11px;font-weight:800}.wardrobe-pricing-card[open] .wardrobe-pricing-summary-total small{font-size:0}.wardrobe-pricing-card[open] .wardrobe-pricing-summary-total small::after{content:'Hide breakdown';font-size:11px}.wardrobe-pricing-details{border-top:1px solid #dbe3eb;padding:0 14px 14px}.wardrobe-pricing-items{border-top:0}.wardrobe-pricing-items>div{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #e6ebf0;padding:8px 0}.wardrobe-pricing-items span small{display:block;color:#64748b;font-size:11px}.wardrobe-pricing-card ul{margin:10px 0 0;padding-left:20px;color:#6b4d13;font-size:12px}
.installer-pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;align-items:start;margin:14px 0}.installer-pricing-cards>.installer-pricing-card{min-width:0;margin:0}
@media(max-width:760px){.installer-pricing-cards{grid-template-columns:minmax(0,1fr)}}
.billing-earnings-header{border-top:0;background:var(--ink);color:#fff;font-size:11px;font-weight:900;text-transform:uppercase}
.billing-date-filter{display:flex;align-items:center;gap:8px;font-weight:800}
.billing-date-filter input{min-width:160px}
.billing-date-range{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:10px}
.billing-date-range .billing-date-filter{display:block}
.billing-date-range .billing-date-filter input{display:block;width:100%;min-width:0;margin-top:6px}
#billingShowMonthBtn{white-space:nowrap}
.billing-installer-filter{display:flex;align-items:center;gap:8px;font-weight:800}
.billing-installer-filter select{min-width:180px}
.billing-clear-table{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}
.billing-line{display:grid;grid-template-columns:170px minmax(280px,1fr) minmax(150px,220px) 150px;gap:16px;align-items:center;border-top:1px solid var(--line);padding:13px 15px}
.billing-line:first-child{border-top:0}
.billing-line-header{background:var(--ink);color:#fff;font-size:12px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.billing-line-date{font-weight:800}
.billing-line-address strong{display:block;font-size:15px}
.billing-job-link{border:0;background:transparent;color:#75570d;padding:3px 0 0;font:inherit;font-size:12px;font-weight:800;text-align:left;cursor:pointer;text-decoration:underline}
.billing-job-link[aria-disabled="true"]{color:var(--muted);cursor:default;text-decoration:none}
.billing-line-installer{font-size:15px;font-weight:900}
.billing-line-pay{text-align:right}
.billing-line-pay strong{display:block;color:#17653a;font-size:18px}
.billing-line-pay small{display:block;margin-top:3px;font-size:10px;font-weight:900;text-transform:uppercase}
.billing-line-pay small.complete{color:#17653a}
.billing-line-pay small.incomplete{color:#805c00}
.schedule-auto-price{display:grid;gap:2px;min-width:180px;border:1px solid var(--line);border-radius:6px;background:var(--panel-soft);padding:8px 10px}
.schedule-auto-price span,.schedule-auto-price small{color:#64748b;font-size:11px;font-weight:700}
.schedule-auto-price strong{color:#17653a;font-size:18px}
.calendar-panel{max-width:1500px}
.calendar-view-tabs{display:inline-flex;gap:4px;margin-bottom:12px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f4f6f8}
.calendar-view-tab{border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-weight:800;padding:8px 16px;cursor:pointer}
.calendar-view-tab:hover{background:#fff}
.calendar-view-tab.active{background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}
.calendar-view-tab[hidden]{display:none}
.calendar-team-controls{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(420px,1.4fr) minmax(240px,.8fr);align-items:end;gap:14px;padding:14px;margin-bottom:16px;border:1px solid #d8e0e5;border-radius:10px;background:linear-gradient(135deg,#f7fafb,#eef3f5)}
.calendar-team-controls[hidden]{display:none}
.calendar-team-heading{display:flex;flex-direction:column;gap:3px}
.calendar-team-heading strong{color:var(--ink);font-size:15px}
.calendar-team-heading span{color:#65727c;font-size:12px;line-height:1.35}
.calendar-category-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px;padding:4px;border-radius:9px;background:#dfe7eb}
.calendar-category-tab{min-height:42px;border:1px solid transparent;border-radius:7px;background:transparent;color:#40515d;font:inherit;font-size:13px;font-weight:800;cursor:pointer;padding:8px 10px}
.calendar-category-tab:hover{background:rgba(255,255,255,.6);color:var(--ink)}
.calendar-category-tab:focus-visible{outline:3px solid rgba(189,151,67,.38);outline-offset:2px}
.calendar-category-tab.active{border-color:rgba(23,37,50,.14);background:#fff;color:var(--ink);box-shadow:0 2px 7px rgba(23,37,50,.1)}
.calendar-worker-filter{display:flex;flex-direction:column;gap:5px;color:var(--ink);font-size:12px;font-weight:800}
.calendar-worker-filter select{width:100%;min-height:42px;border:1px solid #bdc9d0;border-radius:7px;background:#fff;color:var(--ink);font:inherit;padding:8px 34px 8px 10px}
.calendar-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.calendar-toolbar h2{margin:0 12px 0 0;min-width:220px}
.calendar-toolbar .action-btn{margin-bottom:0}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
.calendar-grid.view-today{grid-template-columns:minmax(260px,1fr);max-width:760px}
.calendar-grid.view-today .calendar-day{min-height:260px}
.calendar-grid.view-week .calendar-day{min-height:220px}
.calendar-day-name{background:var(--ink);color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:9px;text-align:center}
.calendar-day-name-short{display:none}
.calendar-day{min-height:132px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:8px;background:#fff}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.outside-month{background:#f4f5f7;color:#888}
.calendar-day.today{box-shadow:inset 0 0 0 2px var(--gold)}
.calendar-day.has-jobs .calendar-day-select{font-weight:900;color:var(--ink)}
.calendar-day-select{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:24px;border:0;background:transparent;color:inherit;padding:0;cursor:pointer;text-align:left}
.calendar-day-number{font-weight:900}
.calendar-job-count{display:none}
.calendar-day-jobs{min-width:0}
.calendar-job{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:5px;background:var(--panel-soft);padding:7px;margin:6px 0;cursor:pointer;color:var(--ink)}
.calendar-job:hover{border-color:var(--gold);background:var(--gold-soft)}
.calendar-job.limited{border-style:dashed;background:#f6f8fb}
.calendar-job strong{display:block;font-size:13px}
.calendar-job small{display:block;color:#666;line-height:1.3;margin-top:2px}
.calendar-job .calendar-installation-status{margin-top:5px;font-weight:800}
.calendar-job .calendar-install-price{color:#17653a;font-weight:900}
.calendar-job .calendar-installation-status.complete{color:#17653a}
.calendar-job .calendar-installation-status.incomplete{color:#805c00}
.calendar-mobile-agenda{display:none}
.calendar-agenda-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px}
.calendar-agenda-heading h3{margin:0;font-size:16px}
.calendar-agenda-heading span{font-size:12px;font-weight:800;color:#666;white-space:nowrap}
.calendar-empty-day{padding:14px 0;color:#666}
@media(max-width:1180px){
  .workspace{grid-template-columns:1fr}
}

@media(min-width:1181px){
  .topbar{gap:12px;align-items:flex-start}
  .topbar>div:first-child{flex:0 1 300px;min-width:240px;padding-top:7px}
  .topbar-actions{flex:1 1 0;flex-wrap:wrap;gap:8px;overflow:visible;padding-bottom:0}
  .topbar-actions>*{flex:0 0 auto}
  .topbar button{padding-right:12px;padding-left:12px;white-space:nowrap}
  .current-user{max-width:200px;padding-right:10px;padding-left:10px}
  .workspace>.panel:first-child{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);overflow:auto;scrollbar-gutter:stable}
}
@media(max-width:1100px){
  .user-list{grid-template-columns:1fr}
  .job-record-layout,.job-doc-grid,.schedule-form,.installer-row,.crm-layout,.crm-meta-grid,.crm-create-grid{grid-template-columns:1fr}
  .calendar-team-controls{grid-template-columns:minmax(200px,.7fr) minmax(420px,1.3fr)}
  .calendar-worker-filter{grid-column:1/-1}
  .schedule-form .action-btn,.installer-row .action-btn{width:100%}
  .crm-create-grid .action-btn{width:100%}
  .crm-search-wrap{width:100%}
  .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
  .calendar-day-name{display:block;padding:7px 2px;font-size:10px;letter-spacing:0}
  .calendar-day{min-height:68px;padding:3px;border-right:1px solid var(--line)}
  .calendar-day-select{min-height:60px;align-items:flex-start;flex-direction:column;padding:4px;border-radius:4px}
  .calendar-day.has-jobs .calendar-day-select{background:#fff8e6;border:1px solid rgba(189,151,67,.45)}
  .calendar-day.has-jobs .calendar-day-select:hover{background:#fff2cc}
  .calendar-day.selected{background:var(--gold-soft);box-shadow:inset 0 0 0 2px var(--gold)}
  .calendar-day-jobs{display:none}
  .calendar-job-count{display:inline-flex;align-items:center;justify-content:center;align-self:flex-end;min-width:20px;height:20px;border-radius:10px;background:var(--ink);color:#fff;font-size:11px;font-weight:800}
  .calendar-mobile-agenda{display:block;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
  .calendar-mobile-agenda .calendar-job{padding:10px;margin:8px 0}
  .installer-pricing-item{grid-template-columns:minmax(150px,1fr) minmax(190px,1.4fr) 100px 105px}
}
@media(max-width:800px){
  .glass-batch-heading{display:block}
  .glass-batch-toolbar{justify-content:flex-start;margin-top:12px}
  .glass-batch-job-list{grid-template-columns:1fr}
  input,select,textarea{font-size:16px}
  .stock-admin{grid-template-columns:1fr}
  .low-stock-heading{display:block}
  .low-stock-summary{display:inline-block;margin-top:10px;white-space:normal}
  .ten-mm-stock-heading{display:block}
  .ten-mm-stock-heading>strong{display:inline-block;margin-top:10px;white-space:normal}
  .ten-mm-design-visual{grid-template-columns:1fr}
  .ten-mm-design-figure img{max-height:390px}
  .auth-shell{align-items:flex-start;padding:12px}
  .auth-card{width:min(560px,100%);grid-template-columns:1fr;min-height:auto;margin:auto 0}
  .auth-visual{min-height:180px;padding:20px;border-right:0;border-bottom:1px solid #e6ebef}
  .auth-visual img{max-height:165px}
  .auth-brand{left:18px;top:16px}
  .auth-brand strong{font-size:26px}
  .auth-brand span{font-size:10px}
  .auth-panel{padding:22px}
  .auth-logo{margin-bottom:18px;font-size:30px}
  .auth-card h2{font-size:26px}
  .auth-card .muted{margin-bottom:16px}
  .topbar{height:auto;align-items:flex-start;gap:12px;flex-direction:column;padding:14px 16px}
  .topbar>div:first-child{width:100%;min-width:0}
  .topbar h1{font-size:24px}
  .topbar p{font-size:13px;line-height:1.35}
  .topbar-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;justify-content:stretch}
  .topbar-actions>*{min-width:0}
  .topbar-actions .current-user{grid-column:1/-1;width:100%}
  .topbar button{width:100%;min-height:46px;padding:8px 6px;font-size:13px;line-height:1.2;white-space:normal}
  .app{grid-template-columns:1fr}
  .sidebar{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:8px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:14px 16px}
  .sidebar .brand,.sidebar .brand-sub{display:none}
  .sidebar h3{grid-column:1/-1;margin:0 0 2px}
  .family-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin:0;padding:8px;text-align:center;font-size:13px;line-height:1.2}
  main{padding:14px}
  .notice{padding:12px;margin-bottom:14px}
  .jobbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;margin-bottom:16px}
  .template-grid{display:flex;grid-template-columns:none;gap:10px;max-height:none;padding:2px 2px 10px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-padding-inline:2px;scroll-snap-type:x mandatory;scrollbar-gutter:auto;-webkit-overflow-scrolling:touch}
  .template-card{flex:0 0 min(76vw,270px);scroll-snap-align:start}
  .template-grid .empty-state{flex:1 0 100%}
  .thumb-wrap{height:clamp(170px,48vw,220px)}
  .workspace{gap:12px;margin-top:16px}
  .panel{padding:14px}
  .design-picker-section>h2,.workspace>.panel>h2{font-size:18px}
  .large-image-wrap{height:clamp(340px,105vw,460px);margin-bottom:24px;overflow:visible}
  .large-image-wrap .selected-measurement strong{font-size:13px}
  .selected-hob-label{font-size:26px}
  .results{gap:12px;margin-top:12px}
  .factory-print-layout{grid-template-columns:1fr}
  .print-image-wrap{height:clamp(260px,80vw,340px);overflow:hidden}
  .glass-diagram,.email-glass-diagram{min-height:280px;padding:8px;overflow:hidden}
  .email-panel{max-width:none}
  .action-btn,.tab-btn{min-height:44px;touch-action:manipulation}
  .user-admin-page{padding:12px}
  .user-admin-page-header,.job-record-heading,.job-detail-heading,.installer-admin-heading,.crm-record-heading,.crm-detail-heading{display:block}
  .user-admin-page-header .action-btn,.job-record-heading>.action-btn,.crm-detail-heading .action-btn{width:100%;margin-top:8px}
  .job-record-toolbar{max-width:none}
  .crm-meta-grid{padding:10px}
  .crm-section-title h3{font-size:20px}
  .crm-task-table{min-width:1600px}
  .job-document{padding:12px}
  .job-image-wrap{min-height:240px}
  .job-image-wrap .shower-photo,.job-image-wrap .shower-model-canvas{height:clamp(240px,70vw,420px)}
  .job-glass-diagram{min-height:240px}
  .schedule-readonly-grid{grid-template-columns:1fr}
  .installer-add-form{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;margin-top:10px}
  .installer-add-form input{width:100%;min-width:0}
  .installer-daily-totals-heading{display:block}
  .installer-daily-totals-heading>strong{display:block;margin-top:8px;text-align:left}
  .installer-pricing-item{grid-template-columns:minmax(0,1fr) auto}
  .installer-pricing-address{grid-column:1/-1;grid-row:2}
  .installer-pricing-status{grid-column:1;grid-row:3}
  .installer-pricing-amount{grid-column:2;grid-row:1/4}
  .calendar-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .calendar-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .calendar-view-tabs.month-restricted{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-view-tab{width:100%;padding:10px 8px}
  .calendar-toolbar h2{grid-column:1/-1;grid-row:1;min-width:0;margin:0;text-align:center}
  .calendar-toolbar .action-btn{width:100%;padding:10px 8px}
  .calendar-team-controls{grid-template-columns:1fr;align-items:stretch;padding:12px}
  .calendar-worker-filter{grid-column:auto}
}
@media(max-width:520px){
  .front-panel-sizing-grid{grid-template-columns:1fr}
  .app-update-notice{align-items:stretch;flex-direction:column;gap:10px;top:8px;padding:13px}
  .app-update-notice button{width:100%}
  .billing-date-range{grid-template-columns:1fr}
  main{padding:10px}
  .sidebar{padding:12px}
  .jobbar,.panel{padding:12px}
  .large-image-wrap{height:clamp(320px,110vw,420px)}
  .large-image-wrap .selected-measurement strong{font-size:12px}
  .mini-form{grid-template-columns:1fr}
  .installer-pricing-group-heading{align-items:flex-start}
  .installer-pricing-group-heading>strong{font-size:18px}
  .installer-pricing-item{display:block}
  .installer-pricing-address,.installer-pricing-status,.installer-pricing-amount{margin-top:8px;text-align:left}
  .installer-pricing-grand-total{justify-content:space-between;font-size:15px}
  .low-stock-list-wrap{max-height:52vh;padding:6px}
  .low-stock-grid{grid-template-columns:1fr}
  .stock-design-group>summary{align-items:flex-start;flex-wrap:wrap}
  .stock-design-group>summary small{white-space:normal}
  .ten-mm-design-visual{gap:12px;padding:10px}
  .ten-mm-design-figure{padding:6px}
  .ten-mm-design-copy h3{font-size:20px}
  .ten-mm-design-specs{grid-template-columns:1fr 1fr;gap:6px}
  .stock-design-group-body{padding:0 10px 4px}
  .stock-design-group[open]>.stock-design-group-body{max-height:58vh}
  .row,.row-actions,.job-record-card,.job-photo-heading{display:block}
  .row span{display:block;margin-top:4px;text-align:left}
  .row-actions .controls,.job-record-actions{width:100%;margin-top:10px;align-items:stretch;justify-content:stretch;flex-direction:column}
  .row-actions input,.row-actions select,.user-admin-layout .row-actions input,.user-admin-layout .row-actions select{width:100%;max-width:none}
  .user-admin-page{padding:10px}
  .user-admin-page-header h2{font-size:23px}
  .user-card{padding:13px}
  .user-card-title-row{align-items:flex-start}
  .user-card-fields{grid-template-columns:1fr}
  .user-card-actions{display:grid;grid-template-columns:1fr}
  .user-card-actions .action-btn{width:100%}
  .user-password-control{grid-template-columns:minmax(0,1fr) auto}
  .user-password-control .password-tool-btn:last-child{grid-column:1/-1}
  .user-password-receipt-actions{display:grid;grid-template-columns:1fr}
  .user-password-receipt-actions .action-btn{width:100%}
  .installation-status-panel{display:grid}
  .installation-status-control{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .job-record-actions .action-btn{width:100%}
  .crm-mozaik-input-row{align-items:stretch;flex-direction:column;gap:0}
  .crm-mozaik-change{width:100%;margin-top:7px}
  .job-photo-heading .action-btn{display:block;width:100%;margin-top:10px}
  .job-photo-grid{grid-template-columns:1fr}
  .installer-add-form{grid-template-columns:1fr}
  .installer-add-form .action-btn{width:100%}
  .email-actions,.tab-strip{display:grid;grid-template-columns:1fr;width:100%;gap:8px}
  .email-actions .action-btn,.tab-strip .tab-btn{width:100%;margin-bottom:0}
  .stock-inventory-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-category-tabs{grid-template-columns:1fr}
  .calendar-category-tab{min-height:40px}
  .calendar-day-name-long{display:none}
  .calendar-day-name-short{display:inline}
  .calendar-day{min-height:60px}
  .calendar-grid.view-today{max-width:none}
  .calendar-grid.view-today .calendar-day,.calendar-grid.view-week .calendar-day{min-height:90px}
  .calendar-day-select{min-height:52px;padding:3px}
  .calendar-day-number{font-size:12px}
  .calendar-job-count{min-width:18px;height:18px;font-size:10px}
}
@media(max-width:340px){
  .topbar-actions,.jobbar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-height:640px){
  .auth-shell{align-items:flex-start}
  .auth-card{min-height:0;margin:auto 0}
  .auth-panel{padding-top:22px;padding-bottom:22px}
  .auth-logo{margin-bottom:16px}
}
@media(max-width:900px){
  .billing-summary{grid-template-columns:1fr}
  .billing-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .billing-toolbar h2{grid-column:1/-1;grid-row:1;min-width:0;margin:0;text-align:center}
  .billing-toolbar .action-btn{width:100%;padding:10px 8px}
  .billing-filter-panel{grid-template-columns:1fr 1fr}
  .billing-filter-intro{grid-column:1/-1}
  .billing-date-range{grid-column:1/-1;min-width:0}
  #billingShowMonthBtn{grid-column:1/-1;width:100%}
  .billing-date-filter,.billing-installer-filter{display:block}
  .billing-date-filter input,.billing-installer-filter select{width:100%}
  .billing-day-heading{display:block}
  .billing-day-totals{justify-content:space-between;margin-top:10px;text-align:left}
  .billing-job-row{grid-template-columns:minmax(0,1fr) auto}
  .billing-job-address,.billing-job-item{grid-column:1/-1}
  .billing-job-status{grid-column:1}
  .billing-job-amount{grid-column:2;grid-row:1/5}
  .billing-line{grid-template-columns:135px minmax(0,1fr) 130px 125px;gap:10px;padding:12px}
}
@media(max-width:700px){
  .billing-earnings-heading{display:block}
  .billing-earnings-heading>strong{display:block;margin-top:7px;text-align:left}
  .billing-earnings-row{grid-template-columns:minmax(0,1fr) 70px 105px;gap:8px;padding:10px}
  .billing-line-header{display:none}
  .billing-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;border-top:1px solid var(--line);padding:14px}
  .billing-line:first-of-type{border-top:0}
  .billing-line [data-label]::before{display:block;margin-bottom:3px;color:#64748b;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;content:attr(data-label)}
  .billing-line-date,.billing-line-installer{grid-column:1}
  .billing-line-address{grid-column:1/-1}
  .billing-line-pay{grid-column:2;grid-row:1/4;align-self:center}
}
@media(max-width:520px){
  .billing-installer-heading{align-items:flex-start}
  .billing-job-row{display:block}
  .billing-job-address,.billing-job-item,.billing-job-status,.billing-job-amount{margin-top:7px;text-align:left}
  .billing-filter-panel{grid-template-columns:1fr;padding:14px}
  .billing-filter-intro{grid-column:auto}
  .billing-date-range{grid-template-columns:1fr}
  .billing-date-filter{display:block;text-align:left}
  .billing-date-filter input{display:block;width:100%;margin-top:6px}
  .billing-installer-filter{display:block;text-align:left}
  .billing-installer-filter select{display:block;width:100%;margin-top:6px}
}

/* 2026 interface polish */
:root{
  --ink:#172532;
  --ink-2:#243847;
  --ink-3:#415565;
  --panel:#fff;
  --panel-soft:#f7f9fb;
  --line:#dbe3e9;
  --line-strong:#b9c6d0;
  --muted:#586b7a;
  --gold:#c89432;
  --gold-2:#e0ad4d;
  --gold-text:#76520f;
  --gold-soft:#fff7e7;
  --green:#247255;
  --green-soft:#eaf6f0;
  --red:#983a43;
  --red-soft:#fff1f2;
  --page:#edf2f5;
  --radius-sm:8px;
  --radius:12px;
  --radius-lg:18px;
  --shadow-sm:0 1px 2px rgba(21,38,52,.04),0 5px 16px rgba(21,38,52,.045);
  --shadow:0 14px 36px rgba(21,38,52,.09);
  --shadow-hover:0 18px 38px rgba(21,38,52,.13);
  --focus-ring:0 0 0 4px rgba(200,148,50,.2);
}

html{scrollbar-color:#b6c2cb transparent}
body{font-family:"Aptos","Segoe UI Variable","Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#f7f9fa 0,#edf2f5 360px);color:var(--ink)}
::selection{background:#f4d99f;color:var(--ink)}
h1,h2,h3{letter-spacing:-.018em}
p{line-height:1.55}
a{color:#72520f;text-underline-offset:2px}
button,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease,transform .16s ease}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--gold-text);outline-offset:2px;box-shadow:var(--focus-ring)}
button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.58;cursor:not-allowed;transform:none!important}
input[readonly]{background:#f0f4f6;color:#536573;border-style:dashed}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}

.auth-shell{background:radial-gradient(circle at 18% 18%,rgba(200,148,50,.14),transparent 31%),linear-gradient(145deg,#e8eef2 0,#f7f8f9 54%,#e5ebef 100%)}
.auth-card{border:1px solid rgba(23,37,50,.1);border-top:0;border-radius:var(--radius-lg);box-shadow:0 30px 80px rgba(23,37,50,.2)}
.auth-visual{background:radial-gradient(circle at 50% 45%,#fff 0,#f3f6f8 46%,#e7edf1 100%)}
.auth-visual:before{height:6px;background:linear-gradient(90deg,var(--gold),#f0c76d)}
.auth-panel{background:rgba(255,255,255,.96)}
.auth-logo,.app-name.flux-wordmark,.brand.flux-wordmark{position:relative;display:inline-flex;width:max-content;align-items:baseline;font-family:"Bahnschrift SemiCondensed","Bahnschrift","Segoe UI Variable Display","Aptos Display","Segoe UI",Arial,sans-serif;font-weight:800;font-stretch:semi-condensed;letter-spacing:.085em;line-height:.9}
.auth-logo,.app-name.flux-wordmark{padding:.28em .46em .34em;border:1px solid rgba(255,255,255,.08);border-radius:.24em;background:linear-gradient(135deg,#172632 0,#203644 100%);color:#fff;box-shadow:0 .22em .55em rgba(23,38,50,.16),inset 0 0 0 1px rgba(255,255,255,.03)}
.flux-wordmark__x{position:relative;display:inline-block;margin-left:.015em;color:var(--gold-text);letter-spacing:0;transform:skewX(-6deg);transform-origin:center}
.flux-wordmark__x::after{content:"";position:absolute;left:50%;bottom:-.15em;width:.58em;height:2px;border-radius:999px;background:currentColor;transform:translateX(-50%) skewX(6deg);opacity:.92}
.auth-logo .flux-wordmark__x,.app-name.flux-wordmark .flux-wordmark__x,.brand .flux-wordmark__x{color:var(--gold-2)}
.auth-logo span,.app-name span{color:var(--gold-text)}
.auth-card h2{font-size:30px}

.topbar{position:sticky;z-index:100;top:0;min-height:96px;gap:20px;align-items:stretch;padding:12px 20px;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(185,198,208,.75);box-shadow:0 8px 26px rgba(23,37,50,.07);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.topbar>div.topbar-brand-block{display:flex;flex:0 0 224px;min-width:0;flex-direction:column;justify-content:center;padding-top:0;padding-right:20px;border-right:1px solid var(--line)}
.topbar h1{font-size:28px;letter-spacing:-.045em}
.topbar p{margin-top:5px;line-height:1.35}
.topbar-actions{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nav account" "commands account";gap:8px 16px;align-content:center;align-items:center;min-width:0}
.topbar-nav-group{grid-area:nav;display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}
.topbar-command-group{grid-area:commands;display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.topbar-account-group{grid-area:account;display:flex;align-items:center;justify-content:flex-end;gap:7px;padding-left:14px;border-left:1px solid var(--line)}
.notification-menu{position:relative}
.notification-btn{min-height:36px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-3);padding:7px 11px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.notification-count{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:4px;border-radius:999px;background:#b93832;color:#fff;padding:0 5px;font-size:11px}
.notification-count[hidden]{display:none}
.notification-panel{position:absolute;z-index:1000;top:calc(100% + 8px);right:0;width:min(390px,calc(100vw - 24px));max-height:min(520px,75vh);overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 40px rgba(23,37,50,.2)}
.notification-panel[hidden]{display:none}
.notification-panel-heading{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:#fff}
.notification-panel-heading button{border:0;background:transparent;color:#8a5e13;font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.notification-list{display:grid}
.notification-item{display:grid;gap:4px;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink-3);text-decoration:none}
.notification-item:hover{background:#f6f8fa}
.notification-item.unread{border-left:4px solid #b93832;background:#fff8f7;padding-left:10px}
.notification-item span,.notification-item small{color:var(--muted);font-size:12px}
.notification-item p{margin:2px 0;white-space:normal;overflow-wrap:anywhere}
.notification-empty{margin:0;padding:20px 14px;color:var(--muted);text-align:center}
body:not([data-active-view="design"]) .topbar-actions{grid-template-areas:"nav account"}
body:not([data-active-view="design"]) .topbar-command-group{display:none}
.topbar button{min-height:38px;border-radius:var(--radius-sm);padding:8px 11px;font-size:12.5px;box-shadow:none}
.topbar #homeTopBtn,.topbar #crmTopBtn,.topbar #billingTopBtn,.topbar #jobsTopBtn,.topbar #glassOrdersTopBtn,.topbar #calendarTopBtn,.topbar #stockTopBtn,.topbar #userAdminTopBtn{background:transparent;color:var(--ink-3);border-color:transparent}
.topbar #homeTopBtn:hover,.topbar #crmTopBtn:hover,.topbar #billingTopBtn:hover,.topbar #jobsTopBtn:hover,.topbar #glassOrdersTopBtn:hover,.topbar #calendarTopBtn:hover,.topbar #stockTopBtn:hover,.topbar #userAdminTopBtn:hover{background:#f1f5f7;color:var(--ink);border-color:#e5eaee;transform:none}
.topbar #homeTopBtn[aria-current="page"],.topbar #crmTopBtn[aria-current="page"],.topbar #billingTopBtn[aria-current="page"],.topbar #jobsTopBtn[aria-current="page"],.topbar #glassOrdersTopBtn[aria-current="page"],.topbar #calendarTopBtn[aria-current="page"],.topbar #stockTopBtn[aria-current="page"],.topbar #userAdminTopBtn[aria-current="page"]{background:var(--gold-soft);color:#6f4e0e;border-color:#e6ca8d;box-shadow:inset 0 -2px 0 var(--gold)}
.topbar .topbar-command-secondary{background:#fff;color:var(--ink-3);border-color:var(--line-strong)}
.topbar .topbar-command-secondary:hover{background:#f4f7f9;color:var(--ink);border-color:#9facb6}
.topbar-command-group #addJobItemTopBtn,.topbar-command-group #printTopBtn{background:var(--ink-2);border-color:var(--ink-2)}
.topbar-command-group #addJobItemTopBtn:hover,.topbar-command-group #printTopBtn:hover{background:#314a5c;border-color:#314a5c}
.topbar #saveJobTopBtn{box-shadow:0 5px 13px rgba(200,148,50,.22)}
.current-user{display:flex;align-items:center;min-height:38px;max-width:190px;border-radius:999px;background:#f1f5f7;padding:7px 11px;color:var(--ink-3);font-weight:650}
.topbar-account-group #refreshBtn,.topbar-account-group #logoutBtn{min-height:36px;padding:7px 10px;background:transparent}

.app{grid-template-columns:230px minmax(0,1fr)}
.sidebar{background:linear-gradient(180deg,#172632 0,#1c2e3a 56%,#15232d 100%);padding:23px 17px;border-right:0;box-shadow:8px 0 26px rgba(16,29,39,.08)}
.brand{font-size:30px;letter-spacing:-.045em}
.brand-sub{margin-bottom:30px;color:#aebbc4;letter-spacing:.12em}
.sidebar h3{color:#9eabb4;letter-spacing:.11em}
.family-btn{border-radius:10px;padding:11px 12px;color:#edf3f6}
.family-btn.active{border-color:rgba(255,255,255,.92);border-left-color:var(--gold);box-shadow:0 10px 24px rgba(0,0,0,.19)}
.family-btn:hover:not(.active){background:rgba(255,255,255,.09)}
main{padding:28px 30px 40px}

.panel{border-color:rgba(185,198,208,.72);border-radius:var(--radius);padding:19px;box-shadow:var(--shadow-sm)}
.panel>h2:first-child{margin-top:0}
.jobbar{gap:14px;background:#fff;border:1px solid rgba(185,198,208,.78);border-top:4px solid var(--ink-3);border-radius:var(--radius);padding:16px;margin-bottom:24px;box-shadow:var(--shadow-sm)}
label{color:#526372;font-weight:650;letter-spacing:.005em}
input,select,textarea{min-height:44px;border-color:#c2ced6;border-radius:var(--radius-sm);padding:9px 11px;background:#fff;box-shadow:0 1px 2px rgba(23,37,50,.025)}
input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#9fadb8}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--gold);box-shadow:var(--focus-ring)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold-text);outline-offset:2px;border-color:var(--gold);box-shadow:var(--focus-ring)}
.step-number{width:28px;height:28px;flex-basis:28px;border-radius:8px}
.template-grid{gap:14px}
.template-card{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.template-card:hover{border-color:#aebbc4;box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.template-card.selected{border-color:var(--gold);box-shadow:0 0 0 2px rgba(200,148,50,.22),var(--shadow)}
.template-card.selected:before{width:5px}
.thumb-wrap{background:linear-gradient(180deg,#fbfcfd,#f3f6f8)}
.code{font-size:17px;letter-spacing:.01em}
.workspace{gap:20px;margin-top:24px}
.workspace>.panel:first-child{background:#f9fbfc}
.large-image-wrap{border-color:#cdd7de;border-radius:var(--radius);background:linear-gradient(180deg,#fff,#fafcfd);box-shadow:inset 0 0 0 6px #fff,var(--shadow-sm)}
.selected-measurement{border-color:var(--line);background:#f7f9fb}

.action-btn{border-radius:9px;padding:9px 14px;font-weight:700;box-shadow:0 4px 12px rgba(23,37,50,.11)}
.action-btn:hover{box-shadow:0 7px 16px rgba(23,37,50,.15);transform:translateY(-1px)}
.action-btn.alt{background:var(--gold-soft);border-color:#d7b66d;color:#6e4d0d;box-shadow:0 3px 10px rgba(160,112,22,.09)}
.action-btn.alt:hover{background:#ffefc9;border-color:var(--gold);color:#533b0d}
.action-btn.danger{background:#fff;border-color:#d9aeb2;color:var(--red);box-shadow:none}
.action-btn.danger:hover{background:var(--red-soft);border-color:#c77f86;color:#7d2d35}
.tab-strip{gap:4px;width:max-content;max-width:100%;padding:4px;border:1px solid var(--line);border-radius:10px;background:#e9eef2}
.tab-btn{border:0;border-radius:7px;padding:8px 14px}
.tab-btn:hover{border-radius:7px}
.tab-btn.active{border:0;border-radius:7px;background:#fff;color:var(--ink);box-shadow:0 2px 7px rgba(23,37,50,.1)}

.user-admin-page{min-height:calc(100vh - 96px);padding:30px;background:transparent}
.user-admin-page-inner,.stock-page .user-admin-page-inner,.crm-page-inner{width:100%;max-width:1500px;margin:0 auto}
.user-admin-page-header{align-items:center;margin-bottom:22px;padding-bottom:17px;border-bottom:1px solid rgba(185,198,208,.72)}
.user-admin-page-header h2{margin-bottom:4px;font-size:30px;letter-spacing:-.035em}
.user-admin-page-header p{max-width:760px;margin:0}
.user-admin-page-header>.action-btn{margin:0;background:transparent;border-color:var(--line-strong);color:var(--ink-3);box-shadow:none}
.user-admin-page-header>.action-btn:before{content:"\2190";margin-right:7px}
.user-admin-page-header>.action-btn:hover{background:#fff;border-color:#9dabb5;color:var(--ink)}
.job-record-panel,.calendar-panel,.installer-billing-panel{max-width:none}
.job-record-status,.user-admin-status{border-radius:9px;box-shadow:0 3px 10px rgba(36,114,85,.06)}

.job-record-list{display:grid;gap:9px;border:0;border-radius:0;overflow:visible;background:transparent}
.job-record-group+.job-record-group{border-top:0}
.job-record-summary-group{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.job-record-summary-group:hover{border-color:#b7c4cd;box-shadow:var(--shadow);transform:translateY(-1px)}
.job-record-summary-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;border:0;padding:17px 18px}
.job-record-summary-card.has-installer-totals{grid-template-columns:minmax(0,1fr) auto auto}
.job-record-summary-title{display:flex;align-items:baseline;gap:11px;min-width:0;flex-wrap:wrap}
.job-record-summary-title>strong{font-size:18px;line-height:1.25}
.job-record-builder{margin:0;color:var(--muted);font-size:13px;font-weight:650;letter-spacing:.035em;text-transform:uppercase}
.job-record-summary-main .job-record-meta{margin-top:6px;color:var(--muted);font-size:13px}
.job-record-summary-totals{display:grid;gap:8px;justify-items:end;min-width:185px;font-variant-numeric:tabular-nums}
.job-record-summary-totals span{display:grid;justify-items:end}
.job-record-summary-totals small{color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}
.job-record-summary-totals strong{margin-top:1px;color:var(--ink-3);font-size:20px;line-height:1.1}
.job-record-summary-totals span:first-child strong{color:var(--ink)}
.job-record-summary-card .job-record-actions{min-width:112px}
.job-record-summary-card .action-btn{width:100%;margin:0}
.job-record-group-header{border-radius:10px 10px 0 0;background:#eef3f6}
.job-document{border-radius:var(--radius);box-shadow:var(--shadow-sm)}

.crm-file-list{gap:10px;padding:4px;overflow:auto;overscroll-behavior:contain}
.crm-file-list .crm-file-card{border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(23,37,50,.04)}
.crm-meta-grid{gap:12px;border-radius:var(--radius);background:#f5f8fa;padding:15px}
.crm-section{margin:22px 0 30px;border-left-width:4px}
.crm-section-title{align-items:center;gap:9px;padding-left:12px}
.crm-section-title:before{content:"";width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--section-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--section-color) 18%,transparent)}
.crm-section-title h3{color:var(--ink);font-size:21px}
.crm-section-title span{font-weight:650}
.crm-table-scroll{border-left:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);scrollbar-color:#aebbc4 #eef2f5}
.crm-task-table{border-collapse:separate;border-spacing:0}
.crm-task-table th{position:sticky;z-index:4;top:0;background:#edf2f5;font-size:11px;letter-spacing:.045em;text-transform:uppercase}
.crm-task-table th:first-child,.crm-task-table td:first-child{position:sticky;z-index:2;left:0;background:#fff}
.crm-task-table th:nth-child(2),.crm-task-table td:nth-child(2){position:sticky;z-index:2;left:48px;background:#fff;box-shadow:5px 0 8px rgba(23,37,50,.045)}
.crm-task-table th:first-child,.crm-task-table th:nth-child(2){z-index:6;background:#edf2f5}
.crm-task-row:hover td,.crm-task-row:hover td:first-child,.crm-task-row:hover td:nth-child(2){background:#f9fbfc}
.crm-check-control{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0;cursor:pointer}
.crm-check-control input{flex:0 0 auto}
.crm-task-table input:not([type=file]),.crm-task-table select{background:transparent}
.crm-task-table input:not([type=file]):focus-visible,.crm-task-table select:focus-visible{outline:2px solid var(--gold-text);outline-offset:-3px;box-shadow:inset 0 0 0 1px #fff}
.crm-status-not_started{background:#e1e7eb!important;color:#314450}
.crm-status-waiting{background:#f5dda9!important;color:#5f4510}
.crm-status-booked{background:#2b67a5!important;color:#fff}
.crm-status-in_progress{background:#6947ad!important;color:#fff}
.crm-status-done{background:#dff3e9!important;color:#205d46}
.crm-status-problem{background:#a5303b!important;color:#fff}
.crm-files-box{padding:3px}
.crm-files-box.crm-file-drag-over{background:#fff8e8;box-shadow:0 0 0 2px var(--gold)}
.crm-files-box.crm-file-drag-blocked{background:#fff1f2;box-shadow:0 0 0 2px var(--red)}
.crm-add-row-btn{margin-top:10px;border-radius:8px;padding:8px 10px;color:#6d5219}
.crm-add-row-btn:hover{background:var(--gold-soft);color:#513b0f}

.billing-toolbar,.calendar-toolbar{padding-bottom:14px;border-bottom:1px solid var(--line)}
.billing-filter-panel{border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);background:#fff;padding:17px 18px;box-shadow:var(--shadow-sm)}
.billing-filter-intro span{color:var(--muted)}
.billing-filter-panel select{border:1px solid #c2ced6;background:#fff}
.billing-service-pay-panel{display:grid;gap:12px;border:1px solid #b9d8c8;border-left:4px solid var(--green);border-radius:var(--radius);background:#f6fcf8;padding:17px 18px;box-shadow:var(--shadow-sm)}
.billing-service-pay-panel[hidden]{display:none}
.billing-service-pay-heading h3{margin:0 0 4px;font-size:18px}
.billing-service-pay-heading p,.billing-service-pay-panel>small{margin:0;color:var(--muted);line-height:1.4}
.billing-service-pay-form{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;align-items:end}
.billing-service-pay-form label{display:grid;gap:5px;min-width:0;color:var(--ink-3);font-size:11px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.billing-service-pay-form input,.billing-service-pay-form select{width:100%;min-height:40px;border:1px solid #b9c7cf;border-radius:8px;background:#fff;padding:8px 10px;color:var(--ink);font:inherit;text-transform:none;letter-spacing:normal}
.billing-service-pay-job,.billing-service-pay-note{grid-column:span 2}
.billing-service-pay-form>.action-btn{min-height:40px}
.billing-service-pay-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.billing-service-pay-actions .action-btn{min-height:34px;padding:7px 10px;font-size:11px}
.billing-installer-earnings{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.billing-summary{gap:14px}
.billing-summary-card{position:relative;overflow:hidden;border-radius:var(--radius);background:#fff;padding:17px 18px;box-shadow:var(--shadow-sm)}
.billing-summary-card:before{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:var(--gold)}
.billing-summary-card:last-child:before{background:var(--green)}
.billing-summary-card span{font-weight:750;letter-spacing:.045em}
.billing-summary-card strong{font-size:28px;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.billing-clear-table,.billing-day{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.billing-line{transition:background-color .14s ease}
.billing-line:not(.billing-line-header):hover{background:#f8fafb}
.billing-line-header{background:linear-gradient(90deg,#172532,#263b4a)}
.billing-line-pay,.billing-earnings-row>*:nth-last-child(-n+2){font-variant-numeric:tabular-nums}
.billing-line-pay small{display:inline-flex!important;width:max-content;margin:5px 0 0 auto;border-radius:999px;padding:3px 7px;line-height:1.2}
.billing-line-pay small.complete{background:var(--green-soft)}
.billing-line-pay small.incomplete{background:var(--gold-soft)}
.billing-line-pay-heading{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.billing-room-breakdown-btn{border:1px solid #cfaa58;border-radius:999px;background:var(--gold-soft);padding:5px 9px;color:var(--gold-text);font:inherit;font-size:10px;font-weight:850;white-space:nowrap;cursor:pointer}.billing-room-breakdown-btn:hover{background:#f9e8be}.billing-room-breakdown{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}.billing-room-breakdown[hidden]{display:none}.billing-room-breakdown-items{border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);padding:2px 12px}.billing-room-breakdown-items>div{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:9px 12px}.billing-room-breakdown-items>div:first-child{border-top:0}.billing-room-breakdown-items span small{display:block;margin-top:2px;color:var(--muted);font-size:11px}.billing-room-breakdown-items>div>strong{white-space:nowrap}.billing-room-breakdown-item{border-left:5px solid var(--room-colour);background:var(--room-background)}.billing-room-name{color:var(--room-colour)}.room-tone-0{--room-colour:#175cd3;--room-background:#eff8ff}.room-tone-1{--room-colour:#6938a6;--room-background:#f9f5ff}.room-tone-2{--room-colour:#067647;--room-background:#ecfdf3}.room-tone-3{--room-colour:#b54708;--room-background:#fffaeb}.room-tone-4{--room-colour:#c11574;--room-background:#fdf2fa}.room-tone-5{--room-colour:#0e7090;--room-background:#ecfdff}.room-tone-6{--room-colour:#b42318;--room-background:#fef3f2}.room-tone-7{--room-colour:#854a0e;--room-background:#fff6ed}.room-tone-8{--room-colour:#107569;--room-background:#f0fdf9}.room-tone-9{--room-colour:#3538cd;--room-background:#eef4ff}
.billing-price-editor{display:flex;align-items:flex-end;justify-content:flex-end;gap:6px;flex-wrap:wrap}.billing-price-editor label{display:grid;gap:3px;text-align:left}.billing-price-editor label>span:first-child{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.billing-price-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.billing-price-input b{padding:0 0 0 9px;color:var(--muted)}.billing-price-input input{width:105px;border:0!important;padding:7px 8px!important;text-align:right;font:inherit;font-weight:850}.billing-price-editor .action-btn{min-height:34px;padding:7px 10px;font-size:11px}
.billing-gst-note{color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap}
.billing-day-heading{background:linear-gradient(90deg,#172532,#2a4050)}
.billing-earnings-row:not(.billing-earnings-header):hover{background:#f8fafb}

.calendar-grid{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.calendar-day-name{background:linear-gradient(180deg,#1d303e,#172632)}
.calendar-day{transition:background-color .14s ease}
.calendar-day:not(.outside-month):hover{background:#fbfcfd}
.calendar-job{border-radius:8px;background:#f6f9fa}
.calendar-job:hover{box-shadow:0 4px 12px rgba(23,37,50,.08)}
.user-card{border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.low-stock-list-wrap,.stock-design-group,.glass-order-table-wrap{border-radius:var(--radius)}
.installation-status-pill,.job-status-pill{border-radius:999px}
.installer-pricing-amount,.installer-pricing-grand-total,.billing-line-pay,.billing-summary-card strong,.low-stock-quantity,#jobNo{font-variant-numeric:tabular-nums}

@media(min-width:1181px) and (max-width:1400px){
  .topbar-nav-group{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}
  .topbar-nav-group .topbar-nav-btn{flex:0 0 auto;white-space:nowrap}
  .workspace>.panel:first-child{position:static;max-height:none;overflow:visible}
}

@media(min-width:1401px){
  .workspace>.panel:first-child{top:112px;max-height:calc(100vh - 128px)}
}

@media(max-width:1200px){
  .topbar{gap:14px;padding:12px 16px}
  .topbar>div.topbar-brand-block{flex-basis:190px;padding-right:14px}
  .topbar-actions{gap:8px 10px}
  .topbar-account-group{padding-left:10px}
  .current-user{max-width:150px}
  .user-admin-page{padding:22px}
}

@media(max-width:900px){
  .topbar{position:relative;display:block;min-height:0;padding:14px 16px}
  .topbar>div.topbar-brand-block{display:block;flex:0 0 auto;width:100%;padding:0 0 12px;border-right:0;border-bottom:1px solid var(--line)}
  .topbar h1{font-size:26px}
  .topbar-actions,body:not([data-active-view="design"]) .topbar-actions{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"nav" "commands" "account";gap:9px;width:100%;padding-top:10px}
  body:not([data-active-view="design"]) .topbar-actions{grid-template-areas:"nav" "account"}
  .topbar-nav-group{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding:2px 2px 7px;scroll-snap-type:x proximity;scrollbar-width:thin}
  .topbar-nav-group .topbar-nav-btn{flex:0 0 auto;width:auto;min-height:44px;padding:9px 13px;scroll-snap-align:start;white-space:nowrap}
  .topbar-command-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;width:100%}
  .topbar-command-group .topbar-command-btn{width:100%;min-width:0;min-height:44px;white-space:normal}
  .topbar-account-group{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;width:100%;padding:9px 0 0;border-top:1px solid var(--line);border-left:0}
  .topbar-account-group .current-user{width:100%;max-width:none;min-width:0}
  .topbar-account-group #refreshBtn,.topbar-account-group #logoutBtn{width:auto;min-height:42px}
  .app{grid-template-columns:1fr}
  .billing-service-pay-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sidebar{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;padding:14px 16px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 8px 20px rgba(16,29,39,.1)}
  .sidebar .brand,.sidebar .brand-sub{display:none}
  .sidebar h3{grid-column:1/-1;margin:0 0 2px}
  .sidebar .family-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin:0;padding:8px;text-align:center;font-size:13px;line-height:1.2}
  main{padding:18px}
  .template-grid{display:flex;grid-template-columns:none;gap:12px;max-height:none;padding:2px 2px 10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}
  .template-card{flex:0 0 min(76vw,280px);scroll-snap-align:start}
  .thumb-wrap{height:clamp(170px,48vw,220px)}
  .user-admin-page{padding:18px}
  .job-record-summary-card{grid-template-columns:minmax(0,1fr) auto;gap:14px}
  .job-record-summary-card.has-installer-totals{grid-template-columns:minmax(0,1fr) auto auto}
}

@media(max-width:900px){
  .notification-panel{right:auto;left:0}
  .notification-panel-heading button{width:auto}
}

@media(max-width:560px){
  .billing-service-pay-form{grid-template-columns:1fr}
  .billing-service-pay-job,.billing-service-pay-note{grid-column:auto}
}

@media(max-width:700px){
  .topbar-command-group{grid-template-columns:repeat(2,minmax(0,1fr))}
  main,.user-admin-page{padding:12px}
  .panel{padding:15px}
  .jobbar{padding:14px}
  .user-admin-page-header{display:block;margin-bottom:16px;padding-bottom:14px}
  .user-admin-page-header h2{font-size:26px}
  .user-admin-page-header>.action-btn{width:100%;margin-top:12px}
  .job-record-summary-card,.job-record-summary-card.has-installer-totals{grid-template-columns:1fr;gap:13px;align-items:start}
  .job-record-summary-totals{grid-template-columns:repeat(2,minmax(0,1fr));justify-items:start;min-width:0;width:100%;padding-top:12px;border-top:1px solid var(--line)}
  .job-record-summary-totals span{justify-items:start}
  .job-record-summary-card .job-record-actions{width:100%}
  .billing-line-pay small{margin-left:0}
  .crm-section{margin-left:0}
}

@media(max-width:520px){
  .topbar{padding:12px}
  .topbar-account-group{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar-account-group .current-user{grid-column:1/-1}
  .topbar-account-group #refreshBtn,.topbar-account-group #logoutBtn{width:100%}
  .sidebar{padding:12px}
  .jobbar{grid-template-columns:1fr}
  .job-record-summary-totals{grid-template-columns:1fr}
  .billing-summary-card strong{font-size:25px}
  .crm-section-title{padding-left:9px}
  .tab-strip{width:100%}
}

@media(pointer:coarse){
  .crm-file-actions .crm-upload-btn,.crm-attachment-delete,.crm-add-row-btn,.installer-row .action-btn,.schedule-installer-edit,.schedule-installer-delete{min-width:44px;min-height:44px}
  .topbar-account-group #refreshBtn,.topbar-account-group #logoutBtn{min-height:44px}
  .crm-check-control{min-width:44px;min-height:44px}
  .crm-check-cell input{width:22px;min-height:22px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .template-card:hover,.job-record-summary-group:hover,.action-btn:hover,.topbar button:hover{transform:none}
}
@media print{
  body{background:#fff}
  .panel,.jobbar{box-shadow:none}
  .jobbar{border:0;border-radius:0;background:#fff}
  input[readonly]{border-style:solid;background:#fff}
  .sidebar,.topbar,.notice,.design-picker-section,.template-grid,.workspace,.diagram-results,.tab-strip,#emailTab,#stockPage,#glassOrderTab,#jobsTab,#jobsPage,#calendarPage,#billingPage,#crmPage,#noAccessPage,.action-btn{display:none!important}
  .app{display:block}
  main{padding:0}
  input::placeholder{color:transparent;opacity:0}
  select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none}
  .print-top-summary{display:grid;grid-template-columns:110px 250px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #c9c9c9;border-radius:8px;background:#fff;padding:8px 10px;margin:0 0 8px;break-inside:avoid;page-break-inside:avoid}
  .print-logo{align-self:start;justify-self:start;width:100%;display:flex;flex-direction:column;justify-content:center;min-height:62px;border:1px solid #111820;border-radius:8px;padding:6px;text-align:center}
  .print-logo-main{font-size:21px;line-height:1;font-weight:900;color:#555}
  .print-logo-sub{margin-top:4px;font-size:7px;line-height:1.15;font-weight:800;color:#111820}
  .print-top-image-block{display:grid;gap:5px;justify-items:center}
  .print-top-image-wrap{width:220px;height:145px;border-color:#d8d8d8;border-radius:6px;padding:6px}
  .print-top-details{align-self:start;min-width:0}
  .print-top-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
  .print-top-details h2{margin:0;font-size:18px;line-height:1.1}
  .print-top-date{padding-top:2px;color:#555;font-size:10px;font-weight:800;white-space:nowrap}
  .print-top-details .print-selected-design-details{gap:0;margin-top:30px}
  .print-top-details .print-selected-design-details div{grid-template-columns:58px 1fr;gap:8px;border-bottom:1px solid #e8e8e8;padding:4px 0}
  .print-top-details .print-selected-design-details strong{font-size:9px;letter-spacing:.02em}
  .print-top-details .print-selected-design-details span{font-size:13px;line-height:1.16;font-weight:800}
  .print-top-details .print-hob-label{margin-top:6px;text-align:left;font-size:21px;color:#555}
  .print-top-image-block .print-selected-measurements{justify-content:center;margin-top:0}
  .print-top-image-block .selected-measurement{min-width:105px;border-radius:6px;padding:4px 8px}
  .print-top-image-block .selected-measurement span{font-size:9px}
  .print-top-image-block .selected-measurement strong{font-size:14px}
  .print-top-image-wrap .print-selected-measurements{position:absolute;inset:0;display:block;margin:0}
  .print-top-image-wrap .selected-measurement{min-width:0;border:0;border-radius:0;padding:0;background:transparent}
  .print-top-image-wrap .selected-measurement span{display:none}
  .print-top-image-wrap .selected-measurement strong{font-size:10px}
  #factoryTab.print-only-panel{display:block !important}
  .jobbar,.workspace,.manufacturing-results{break-inside:avoid;page-break-inside:avoid}
  .aluminium-results{break-before:page;page-break-before:always;break-inside:auto;page-break-inside:auto}
  .panel{border:0;padding:10px 0}
  .factory-sheet-panel{display:flex;flex-direction:column}
  .factory-sheet-panel h2{display:none}
  .factory-print-layout{order:1;grid-template-columns:1fr;gap:10px;break-inside:avoid;page-break-inside:avoid;margin:0 0 12px}
  #factorySheet{display:none}
  .results{grid-template-columns:repeat(2,1fr);gap:10px}
  .manufacturing-results > .panel{break-inside:avoid;page-break-inside:avoid}
  .aluminium-cutlist-panel{grid-column:1 / -1;padding-top:0}
  .aluminium-cutlist-panel #aluminiumRows{font-size:15px;line-height:1.25}
  .aluminium-cutlist-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
  .aluminium-cutlist-panel #aluminiumRows .row{padding:7px 0;gap:10px}
  .aluminium-cutlist-panel #aluminiumRows .row strong{font-size:15px}
  .aluminium-cutlist-panel #aluminiumRows .row span{font-size:15px}
  .aluminium-cutlist-panel #aluminiumRows .profile-cut-details{margin-top:3px;line-height:1.25}
  .aluminium-cutlist-panel #aluminiumRows .merged-cutlist-heading{margin:12px 0 6px;font-size:20px}
  .aluminium-cutlist-panel #aluminiumRows .row,
  .aluminium-cutlist-panel #aluminiumRows .merged-cutlist-heading,
  .aluminium-cutlist-panel #aluminiumRows .merged-hob-cutlist{break-inside:avoid;page-break-inside:avoid}
  .hob-cutlist-panel{display:none}
  .print-visual-panel{border:1px solid #bbb;padding:6px}
  .factory-print-layout .print-visual-panel:first-child{display:none}
  .print-visual-panel:first-child{display:grid;grid-template-columns:260px 1fr;gap:8px 12px;align-items:start;break-inside:avoid;page-break-inside:avoid}
  .print-visual-panel:first-child h3{grid-column:1 / -1}
  .print-visual-panel:first-child .print-image-wrap{grid-row:2 / span 3}
  .print-visual-panel:first-child .print-selected-design-details,
  .print-visual-panel:first-child .print-hob-label,
  .print-visual-panel:first-child .print-selected-measurements{grid-column:2}
  .print-visual-panel:first-child .print-image-wrap .print-selected-measurements{grid-column:auto}
  .print-image-wrap{height:260px}
  .print-hob-label{margin-top:0}
  .glass-diagram,.print-image-wrap{border:1px solid #bbb;min-height:auto}
  .print-visual-panel:last-child .glass-diagram{padding:2px}
  pre{background:white;color:black;padding:0 0 12px}
  body.printing-saved-job>*:not(#savedJobPrintSheet){display:none!important}
  body.printing-saved-job #savedJobPrintSheet{display:block!important;color:#111;background:#fff;font-family:Arial,sans-serif}
  body.printing-saved-job .saved-job-print-heading{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:14px}
  body.printing-saved-job .saved-job-print-heading h1{margin:0 0 6px;font-size:24px}
  body.printing-saved-job .saved-job-print-visuals{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;align-items:start;break-inside:avoid;page-break-inside:avoid}
  body.printing-saved-job .saved-job-print-visuals section{min-width:0}
  body.printing-saved-job .saved-job-print-visuals h2,body.printing-saved-job .saved-job-print-details h2{margin:0 0 8px;font-size:16px}
  body.printing-saved-job .saved-job-print-image,body.printing-saved-job .saved-job-print-diagram{display:flex;align-items:center;justify-content:center;min-height:250px;border:1px solid #bbb;padding:8px;overflow:hidden}
  body.printing-saved-job .saved-job-print-image img{display:block;max-width:100%;max-height:330px;object-fit:contain}
  body.printing-saved-job .saved-job-print-diagram svg{display:block;width:100%;height:auto;max-height:430px}
  body.printing-saved-job .saved-job-print-details{margin-top:16px;border-top:1px solid #bbb;padding-top:12px}
  body.printing-saved-job .saved-job-print-details pre{margin:0;white-space:pre-wrap;font:12px/1.35 Consolas,"Courier New",monospace}
}

/* Compact installer-pay room summaries: one heading line and one component line. */
.billing-room-breakdown-items{display:grid;gap:7px;padding:8px}
.billing-room-breakdown-items>.billing-room-breakdown-item{display:flex;align-items:baseline;gap:5px 18px;flex-wrap:wrap;border-top:0;border-radius:7px;padding:8px 11px}
.billing-room-components{display:flex;align-items:baseline;gap:5px 18px;flex:1 1 auto;flex-wrap:wrap;min-width:0}
.billing-room-component{display:inline-flex;align-items:baseline;gap:5px;min-width:0}
.billing-room-breakdown-items .billing-room-component small{display:inline;margin:0;color:var(--muted);font-size:10px}
.billing-room-component b{white-space:nowrap;font-size:11px}
.billing-room-total{margin-left:auto;white-space:nowrap}
@media(max-width:700px){.billing-room-components{gap:5px 12px}.billing-room-component{flex-wrap:wrap}.billing-room-breakdown-items{padding:6px}}

/* Installer My Work experience */
.installer-work-view{width:min(980px,100%);margin:0 auto}
.installer-work-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.installer-work-heading h2{margin:2px 0 0;font-size:30px;letter-spacing:-.04em}
.installer-work-kicker{color:var(--gold-text);font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.installer-work-done-toggle{min-height:44px;border:1px solid #dfc88e;border-radius:999px;background:var(--gold-soft);padding:9px 14px;color:#674a11;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.installer-work-done-toggle:hover{border-color:var(--gold);background:#ffefc9}
.installer-work-buckets{display:flex;gap:12px;margin:0 -2px 24px;padding:2px 2px 10px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin}
.installer-work-bucket{display:grid;flex:0 0 146px;min-height:118px;align-content:space-between;scroll-snap-align:start;border:1px solid var(--line);border-radius:20px;background:#f5f7f8;padding:16px;color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 3px 10px rgba(23,37,50,.04)}
.installer-work-bucket strong{font-size:34px;line-height:1;font-variant-numeric:tabular-nums}
.installer-work-bucket span{font-size:15px;font-weight:750;line-height:1.25}
.installer-work-bucket.active{border:2px solid var(--gold);background:var(--gold-soft);padding:15px;box-shadow:0 0 0 3px rgba(200,148,50,.13)}
.installer-work-list{display:grid;gap:25px}
.installer-work-day{display:grid;gap:10px}
.installer-work-day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 3px}
.installer-work-day-heading h3{margin:0;font-size:17px}
.installer-work-day-heading span{color:var(--muted);font-size:12px;font-weight:750}
.installer-work-day-cards{display:grid;gap:11px}
.installer-work-card{overflow:hidden;border:1px solid var(--line);border-left:5px solid #c48b27;border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(23,37,50,.07)}
.installer-work-card.complete{border-left-color:var(--green)}
.installer-work-card-link{display:grid;grid-template-columns:72px minmax(0,1fr) 20px;gap:16px;align-items:center;min-height:150px;padding:16px 17px;color:var(--ink);text-decoration:none}
.installer-work-card-link:hover{background:#fbfcfd}
.installer-work-card-link.is-disabled{cursor:default}
.installer-work-date{display:grid;place-items:center;align-self:stretch;align-content:center;border-radius:14px;background:#f0f3f5;color:var(--ink-3);font-variant-numeric:tabular-nums}
.installer-work-date strong{font-size:31px;line-height:1.05}
.installer-work-date small{font-size:10px;font-weight:850;letter-spacing:.08em}
.installer-work-card-body{display:grid;gap:7px;min-width:0}
.installer-work-card-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.installer-work-status{display:inline-flex;align-items:center;width:max-content;min-height:25px;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:850;line-height:1;text-transform:uppercase;letter-spacing:.035em}
.installer-work-status:before{content:"";width:7px;height:7px;margin-right:6px;border-radius:50%;background:currentColor}
.installer-work-status.incomplete{background:#fff1cf;color:#755400}
.installer-work-status.complete{background:#e2f3e9;color:#1d6545}
.installer-work-card-title{font-size:20px;line-height:1.2}
.installer-work-address{display:block;border-radius:8px;background:#f3f5f6;padding:8px 10px;color:#3e4e5a;font-size:14px;line-height:1.35}
.installer-work-card-meta{display:flex;gap:10px 18px;flex-wrap:wrap;color:var(--muted);font-size:12px;font-weight:700}
.installer-work-chevron{color:#8b969e;font-size:30px;line-height:1}
.installer-work-pricing{margin:0;border:0;border-top:1px solid var(--line);border-left:0;border-radius:0;background:#f8fafc;box-shadow:none}
.installer-work-pricing.needs_review{border-left:0;background:#fff8ed}
.installer-work-pricing>.wardrobe-pricing-heading{padding:13px 17px}
.installer-work-pricing>.wardrobe-pricing-details{padding:0 10px 10px}
.installer-work-pricing-breakdown{padding-top:10px}
.installer-work-pricing-total-only{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 17px}
.installer-work-pricing-total-only>div{min-width:0}
.installer-work-pricing-total-only span{display:block;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.installer-work-pricing-total-only strong{display:block;margin-top:2px;font-size:13px}
.installer-work-pricing-total-only>b{white-space:nowrap;font-size:24px}
.installer-work-empty{display:grid;gap:5px;border:1px dashed #bdc8d1;border-radius:16px;background:#f8fafb;padding:30px 18px;text-align:center}
.installer-work-empty span{color:var(--muted)}
.crm-installer-focus-header{display:none}

@media(max-width:700px){
  body.field-worker-session:not(.installer-session) .topbar-brand-block{padding-bottom:8px}
  body.field-worker-session:not(.installer-session) .topbar-brand-block p{display:none}
  body.field-worker-session:not(.installer-session) .topbar-nav-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible;padding:0}
  body.field-worker-session:not(.installer-session) .topbar-nav-group .topbar-nav-btn{width:100%;min-width:0;white-space:normal}
  body.field-worker-session:not(.installer-session) .user-admin-page-header>.page-button-link[href="new.html"]{display:none}
}

@media(max-width:900px){
  body.installer-session{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  body.installer-session .topbar{position:sticky;top:0;display:flex;min-height:64px;align-items:center;flex-direction:row;gap:10px;padding:10px 12px;-webkit-backdrop-filter:none;backdrop-filter:none}
  body.installer-session .topbar>div.topbar-brand-block{display:block;flex:1 1 auto;width:auto;padding:0;border:0}
  body.installer-session .topbar-brand-block p{display:none}
  body.installer-session .topbar h1{font-size:20px;white-space:nowrap}
  body.installer-session .topbar-actions,body.installer-session:not([data-active-view="design"]) .topbar-actions{display:flex;flex:0 0 auto;width:auto;padding:0}
  body.installer-session .topbar-nav-group{position:fixed;z-index:900;right:10px;bottom:calc(8px + env(safe-area-inset-bottom));left:10px;display:flex;gap:4px;min-width:0;padding:7px;overflow:hidden;border:1px solid rgba(185,198,208,.84);border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 12px 34px rgba(23,37,50,.2);scrollbar-width:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  body.installer-session .topbar-nav-group::-webkit-scrollbar{display:none}
  body.installer-session .topbar-nav-group .topbar-nav-btn{display:flex;flex:1 1 0;min-width:0;min-height:50px;align-items:center;justify-content:center;border-radius:16px;padding:8px 3px;text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:11px;line-height:1.15}
  body.installer-session .topbar-nav-group .topbar-nav-btn[aria-current="page"]{background:var(--gold-soft);box-shadow:inset 0 -2px 0 var(--gold)}
  body.installer-session .topbar-nav-group .topbar-nav-btn:not(#nav-calendar):not(#nav-jobs):not(#nav-conversations):not(#nav-billing):not(#nav-crm):not(#calendarTopBtn):not(#jobsTopBtn):not(#conversationsTopBtn):not(#billingTopBtn):not(#crmTopBtn){display:none!important}
  body.installer-session .topbar-account-group{display:flex;width:auto;padding:0;border:0}
  body.installer-session .topbar-account-group .current-user,body.installer-session .topbar-account-group #refreshBtn{display:none!important}
  body.installer-session .notification-btn,body.installer-session .topbar-account-group #logoutBtn{width:auto;min-width:44px;min-height:44px;padding:7px 9px;font-size:11px}
  body.installer-session .notification-btn,body.installer-session .topbar-account-group #logoutBtn{font-size:0}
  body.installer-session .notification-btn:before{content:"Alerts";font-size:10px}
  body.installer-session .topbar-account-group #logoutBtn:before{content:"Exit";font-size:10px}
  body.installer-session .notification-count{font-size:10px}
  body.installer-session .notification-panel{position:fixed;top:68px;right:10px;bottom:auto;left:10px;width:auto;max-height:calc(100dvh - 168px)}
  body.installer-session .user-admin-page-header>.page-button-link[href="new.html"]{display:none}
  body.installer-session[data-page="calendar"] .user-admin-page-header{display:none}
  body.installer-session[data-page="calendar"] .user-admin-page{padding:0 10px 16px}
  body.installer-session[data-page="calendar"] .calendar-panel{border:0;background:transparent;padding:18px 0 0;box-shadow:none}
  .installer-work-heading{align-items:center;margin:0 2px 16px}
  .installer-work-heading h2{font-size:31px}
  .installer-work-done-toggle{flex:0 0 auto;padding:8px 12px}
  .installer-work-buckets{gap:10px;margin-right:-10px;margin-bottom:19px;padding-right:12px}
  .installer-work-bucket{flex-basis:132px;min-height:116px;border-radius:19px;padding:15px}
  .installer-work-bucket.active{padding:14px}
  .installer-work-bucket strong{font-size:32px}
  .installer-work-list{gap:22px}
  .installer-work-card-link{grid-template-columns:62px minmax(0,1fr) 14px;gap:12px;min-height:144px;padding:14px 13px}
  .installer-work-card-title{font-size:18px}
  .installer-work-date strong{font-size:28px}
  .installer-work-card-topline{align-items:flex-start;flex-direction:column;gap:6px}
  .installer-work-card-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .installer-work-pricing>.wardrobe-pricing-heading{gap:10px;padding:12px 13px}
  .installer-work-pricing>.wardrobe-pricing-details{padding:0 7px 8px}
  .installer-work-pricing .wardrobe-pricing-summary-total strong{font-size:21px}
  .installer-work-pricing-total-only{padding:12px 13px}
  .installer-work-pricing-total-only>b{font-size:21px}
  .calendar-mobile-agenda{scroll-margin-top:12px}
  .calendar-mobile-agenda .calendar-job{min-height:48px;padding:12px}

  body.installer-session.installer-job-detail-open .user-admin-page-header,
  body.installer-session.installer-job-detail-open .job-record-heading,
  body.installer-session.installer-job-detail-open .job-record-toolbar,
  body.installer-session.installer-job-detail-open #jobRecordRows{display:none!important}
  body.installer-session[data-page="jobs"].installer-job-detail-open .user-admin-page{padding:0 10px 18px}
  body.installer-session.installer-job-detail-open .job-record-panel{border:0;background:transparent;padding:12px 0 0;box-shadow:none}
  body.installer-session.installer-job-detail-open .job-record-layout{display:block}
  body.installer-session.installer-job-detail-open #jobRecordDetail{outline:0}
  .installer-job-detail{display:grid;gap:13px;width:min(760px,100%);margin:0 auto}
  .installer-job-back,.crm-installer-focus-back{display:inline-flex;width:max-content;min-height:44px;align-items:center;border-radius:999px;background:#edf1f3;padding:8px 13px;color:var(--ink-3);font-size:13px;font-weight:800;text-decoration:none}
  .installer-job-hero,.installer-job-panel,.crm-installer-focus-header{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px;box-shadow:0 7px 20px rgba(23,37,50,.07)}
  .installer-job-kicker,.crm-installer-focus-kicker{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--gold-text);font-size:11px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
  .installer-job-hero h1,.crm-installer-focus-header h1{margin:10px 0 5px;font-size:27px;line-height:1.12;letter-spacing:-.04em}
  .installer-job-address,.crm-installer-focus-address{margin:0;border-radius:10px;background:#f2f4f5;padding:10px 12px;color:#334550;font-size:15px;font-weight:700;line-height:1.4}
  .installer-job-facts,.crm-installer-focus-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
  .installer-job-facts>div,.crm-installer-focus-facts>div{display:grid;align-content:start;gap:4px;min-height:74px;border:1px solid #e2e7ea;border-radius:11px;background:#fbfcfd;padding:10px}
  .installer-job-facts span,.crm-installer-focus-facts>div>span{color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
  .installer-job-facts strong,.crm-installer-focus-facts>div>strong{align-self:center;font-size:14px;line-height:1.25}
  .installer-job-facts .installation-status-pill{width:max-content;margin:0}
  .installer-job-secondary-link{display:flex;min-height:46px;align-items:center;justify-content:center;margin-top:13px;border:1px solid #d7b66d;border-radius:11px;background:var(--gold-soft);color:#65480f;font-weight:800;text-align:center;text-decoration:none}
  .installer-job-status-panel{display:grid;gap:14px}
  .installer-job-status-panel span,.installer-job-panel-heading span{color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
  .installer-job-status-panel h2,.installer-job-panel-heading h2{margin:2px 0 0;font-size:21px}
  .installer-job-status-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .installer-job-status-actions button{min-height:50px;border:1px solid var(--line-strong);border-radius:11px;background:#f2f5f6;color:var(--ink-3);font:inherit;font-weight:800;cursor:pointer}
  .installer-job-status-actions button.primary{border-color:var(--green);background:var(--green);color:#fff}
  .installer-job-status-actions button:disabled{opacity:.55}
  .installer-job-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .installer-photo-action{margin:0;background:var(--ink);border-color:var(--ink);color:#fff;cursor:pointer}
  .installer-job-photos .job-photo-grid{margin-top:14px}
  .installer-job-empty{border:1px dashed var(--line-strong);border-radius:12px;background:#f8fafb;padding:22px 14px;color:var(--muted);text-align:center}
  .installer-job-extras{display:grid;gap:9px}
  .installer-job-extra{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 4px 13px rgba(23,37,50,.05)}
  .installer-job-extra>summary{min-height:50px;padding:14px 16px;font-weight:800;cursor:pointer}
  .installer-job-extra>summary span{float:right;border-radius:999px;background:#edf1f3;padding:2px 7px;font-size:11px}
  .installer-job-extra>.job-document-list,.installer-job-extra>.job-image-wrap,.installer-job-extra>.job-glass-diagram,.installer-job-extra>pre{margin:0 13px 13px}

  body.installer-session.crm-installer-task-focus .user-admin-page-header,
  body.installer-session.crm-installer-task-focus .crm-create-panel,
  body.installer-session.crm-installer-task-focus .crm-record-heading,
  body.installer-session.crm-installer-task-focus .crm-file-list,
  body.installer-session.crm-installer-task-focus .crm-detail-heading,
  body.installer-session.crm-installer-task-focus .crm-meta-grid,
  body.installer-session.crm-installer-task-focus .crm-auto-travel-status,
  body.installer-session.crm-installer-task-focus .installer-pricing-cards,
  body.installer-session.crm-installer-task-focus .wardrobe-pricing-card,
  body.installer-session.crm-installer-task-focus .crm-sections>.crm-section:not(.crm-installer-focus-section),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-section .crm-section-title,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-section thead,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-section .crm-task-row:not(.crm-installer-focus-row),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-section .crm-add-row-btn,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(1),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(2),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(3),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(5),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:last-child{display:none!important}
  body.installer-session.crm-installer-task-focus .user-admin-page{padding:0 10px 18px}
  body.installer-session.crm-installer-task-focus .crm-record-panel{border:0;background:transparent;padding:12px 0 0;box-shadow:none}
  body.installer-session.crm-installer-task-focus .crm-layout{display:block}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-header{display:block;margin-bottom:13px;outline:0}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-back{margin-bottom:12px}
  body.installer-session.crm-installer-task-focus .crm-sections{display:block}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-section{margin:0;border:0}
  body.installer-session.crm-installer-task-focus .crm-table-scroll{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
  body.installer-session.crm-installer-task-focus .crm-task-table,
  body.installer-session.crm-installer-task-focus .crm-task-table tbody,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td{display:block!important;width:100%;min-width:0}
  body.installer-session.crm-installer-task-focus .crm-task-table{min-width:0;border:1px solid var(--line);border-radius:18px;background:#fff;padding:4px 16px;box-shadow:0 7px 20px rgba(23,37,50,.07)}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row{outline:0;background:#fff}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td{position:static!important;border:0;border-bottom:1px solid var(--line);padding:14px 0;background:#fff!important;box-shadow:none!important}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(7),
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>.crm-notes-cell{border-bottom:0}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(3):before{content:"Person"}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(4):before{content:"Status"}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(5):before{content:"Date"}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(6):before{content:"Files / photos"}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(7):before{content:"Conversations"}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>.crm-notes-cell:before{content:"Notes"}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>td:nth-child(n+3):nth-child(-n+7):before,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row>.crm-notes-cell:before{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row input,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row select,
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row textarea{min-height:48px;border:1px solid var(--line)!important;border-radius:10px!important;background:#f8fafb!important;padding:10px 11px;opacity:1;-webkit-text-fill-color:var(--ink)}
  body.installer-session.crm-installer-task-focus .crm-installer-focus-row textarea{min-height:104px!important}
  body.installer-session.crm-installer-task-focus .crm-files-text:disabled:placeholder-shown,
  body.installer-session.crm-installer-task-focus .crm-file-drop-hint{display:none!important}
  body.installer-session.crm-installer-task-focus .crm-task-conversation-cell{padding:0}
  body.installer-session.crm-installer-task-focus .crm-task-conversation-cell .action-btn,
  body.installer-session.crm-installer-task-focus .crm-file-actions .action-btn{width:100%;min-height:48px}
  body.installer-session.crm-installer-task-focus .crm-conversations-panel{border-radius:18px;padding:16px}
}
@media(max-width:520px){
  .auth-shell{align-items:stretch;padding:0}
  .auth-card{width:100%;min-height:100vh;min-height:100dvh;margin:0;border:0;border-radius:0}
  .auth-visual{display:none}
  .auth-panel{justify-content:center;padding:max(28px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom))}
  .auth-logo{font-size:28px}
  .auth-card h2{font-size:25px}
}

/* Keep the mobile CRM shell fixed to the viewport while task tables pan independently. */
@media(max-width:900px){
  body[data-page="crm"],
  body[data-page="crm"] #pageContent,
  body[data-page="crm"] .crm-page-inner,
  body[data-page="crm"] .crm-record-panel,
  body[data-page="crm"] .crm-layout,
  body[data-page="crm"] .crm-file-detail,
  body[data-page="crm"] .crm-sections,
  body[data-page="crm"] .crm-section{width:100%;max-width:100%;min-width:0}
  body[data-page="crm"],body[data-page="crm"] #pageContent{overflow-x:hidden;overflow-x:clip}
  body[data-page="crm"]:not(.crm-installer-task-focus) .crm-table-scroll{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:auto;overscroll-behavior-x:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
  body[data-page="crm"]:not(.crm-installer-task-focus) .crm-task-table{width:1600px;min-width:1600px;max-width:none}
  body[data-page="crm"]:not(.crm-installer-task-focus) .crm-task-table th:first-child,
  body[data-page="crm"]:not(.crm-installer-task-focus) .crm-task-table td:first-child,
  body[data-page="crm"]:not(.crm-installer-task-focus) .crm-task-table th:nth-child(2),
  body[data-page="crm"]:not(.crm-installer-task-focus) .crm-task-table td:nth-child(2){position:static;box-shadow:none}
}

/* Permission-based user access and top-level Daily Processing review. */
.user-permissions-fieldset{grid-column:1/-1;margin:0;border:1px solid var(--line);border-radius:10px;padding:12px;background:#f8fafb}
.user-permissions-fieldset legend{padding:0 6px;font-weight:800;color:var(--ink)}
.user-permissions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.user-permission-group{display:grid;align-content:start;gap:7px;border:1px solid #dbe3e8;border-radius:8px;background:#fff;padding:10px}
.user-permission-group>strong{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.user-permission-group label{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.3}
.user-permission-group input{width:auto;margin-top:2px;flex:0 0 auto}
.user-permissions-full{margin-top:4px}
.daily-processing-page-inner{max-width:1500px}
.daily-processing-compact-bar{display:flex;align-items:center;gap:8px;min-height:38px;border:1px solid #9cc8b0;border-left:5px solid #258052;border-radius:8px;background:#eef9f3;padding:4px 7px 4px 10px;color:#174c34;white-space:nowrap;overflow-x:auto}
.daily-processing-compact-title{font-size:15px}.daily-processing-compact-scope{max-width:360px;overflow:hidden;text-overflow:ellipsis;font:700 11px/1.2 Consolas,"Courier New",monospace}
.daily-processing-compact-stat{border-left:1px solid #b9d8c7;padding-left:8px;font-size:11px}.daily-processing-compact-status{max-width:220px;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:700;color:#235f45}
.daily-processing-compact-status.error{color:#9d1d22}.daily-processing-compact-button{min-height:28px;border:1px solid #74a389;border-radius:6px;background:#fff;padding:3px 9px;color:#174c34;font:800 11px/1 inherit;cursor:pointer}
.daily-processing-compact-button:first-of-type{margin-left:auto}.daily-processing-compact-button:hover,.daily-processing-compact-button:focus-visible{background:#dff1e7}
.daily-processing-failure-alert{display:grid;gap:4px;margin-top:10px;border:1px solid #d59ba2;border-left:6px solid #b33a46;border-radius:9px;background:#fff1f2;padding:12px 14px;color:#712832}
.daily-processing-failure-alert[hidden]{display:none}.daily-processing-failure-alert strong{font-size:15px}.daily-processing-failure-alert span{line-height:1.4}.daily-processing-failure-alert small{color:#7d4850}
.daily-processing-workspace{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(480px,1.7fr);gap:16px;align-items:start;margin-top:10px}
.daily-processing-queue-panel,.daily-processing-detail{margin:0;min-width:0}
.daily-processing-queue-title{margin:0 0 9px;font-size:15px}.daily-processing-review-list{display:grid;gap:9px}
.daily-processing-review-card{display:grid;gap:6px;width:100%;border:1px solid #d7e0e6;border-left:5px solid #b87a18;border-radius:9px;background:#fff;padding:12px 13px;text-align:left;color:var(--ink);cursor:pointer}
.daily-processing-review-card:hover,.daily-processing-review-card:focus-visible{border-color:#9bacb7;box-shadow:0 3px 12px rgba(23,37,50,.1)}
.daily-processing-review-card.status-candidate,.daily-processing-review-card.status-ready,.daily-processing-review-card.status-processed{border-left-color:#258052}
.daily-processing-review-card.status-review,.daily-processing-review-card.status-failed{border-left-color:#b33a46}
.daily-processing-review-card.status-not_qualifying{border-left-color:#c48600}
.daily-processing-review-card.status-cancelled,.daily-processing-review-card.review-state-accepted{border-color:#c5cbd0;border-left-color:#9aa3aa;background:#f3f4f5;color:#5f6870;box-shadow:none}
.daily-processing-review-card.status-cancelled:hover,.daily-processing-review-card.status-cancelled:focus-visible,.daily-processing-review-card.review-state-accepted:hover,.daily-processing-review-card.review-state-accepted:focus-visible{border-color:#8e979e;background:#eceeef}
.daily-processing-review-card.review-state-correction_pending{border-left-color:#b33a46;background:#fff4f5}
.daily-processing-review-card-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.daily-processing-review-card-top time{font-size:11px;color:var(--muted)}
.daily-processing-review-subject{font-weight:700}
.daily-processing-review-status{font-size:12px;color:var(--muted)}
.daily-processing-empty-queue,.daily-processing-empty-detail{display:grid;gap:5px;padding:30px 16px;text-align:center;color:var(--muted)}
.daily-processing-detail{display:grid;gap:15px}
.daily-processing-detail h3{margin:5px 0 3px;font-size:23px}
.daily-processing-detail h4{margin:0 0 9px}
.daily-processing-detail section{border-top:1px solid var(--line);padding-top:14px}
.daily-processing-detail-heading p,.daily-processing-review-summary p,.daily-processing-action-list p{margin:5px 0;color:var(--muted)}
.daily-processing-kicker{display:inline-block;border-radius:999px;background:#eef2f5;padding:4px 8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.daily-processing-review-summary{border:1px solid #b8d6c5!important;border-left:5px solid #258052!important;border-radius:9px;background:#f1faf5;padding:13px!important}
.daily-processing-review-summary.has-issue{border-color:#e0b4b9!important;border-left-color:#b33a46!important;background:#fff4f5}
.daily-processing-decision-jump{display:inline-block;margin-top:9px;font-size:12px;font-weight:800}
.daily-processing-issue-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:9px}.daily-processing-issue-links a{border:1px solid #c7838b;border-radius:999px;background:#fff;padding:4px 8px;color:#842f39;font-size:11px;font-weight:800;text-decoration:none}.daily-processing-issue-links a:hover,.daily-processing-issue-links a:focus-visible{background:#ffe4e7;text-decoration:underline}.daily-processing-document-list [id]{scroll-margin-top:64px}.daily-processing-document-list [id]:target,.daily-processing-document-list .is-linked-target{outline:3px solid #258052;outline-offset:3px;box-shadow:0 0 0 6px rgba(37,128,82,.12)}
.daily-processing-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.daily-processing-facts>div{display:grid;gap:3px;border-radius:8px;background:#f4f7f9;padding:9px 11px}
.daily-processing-facts span{font-size:11px;color:var(--muted);text-transform:uppercase}
.daily-processing-action-list,.daily-processing-document-list{display:grid;gap:8px}
.daily-processing-action-line{display:flex;align-items:baseline;gap:5px;min-width:0;padding:2px 0;line-height:1.4}
.daily-processing-action-line strong{flex:0 0 auto}.daily-processing-action-line span{min-width:0;overflow-wrap:anywhere}.daily-processing-action-list a.daily-processing-action-line{width:fit-content;max-width:100%;color:#176744;text-decoration-color:#8dbda4;text-underline-offset:3px}.daily-processing-action-list a.daily-processing-action-line:hover,.daily-processing-action-list a.daily-processing-action-line:focus-visible{color:#0f4f33;text-decoration-thickness:2px}
.daily-processing-document-list article{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.daily-processing-document-collapsed{border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 12px}.daily-processing-document-collapsed summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:10px 0}.daily-processing-document-collapsed summary span{font-size:12px;color:var(--muted)}.daily-processing-document-collapsed[open]{padding-bottom:12px}.daily-processing-document-collapsed[open] summary{border-bottom:1px solid var(--line);margin-bottom:10px}
.daily-processing-document-list article{grid-template-columns:1fr auto}.daily-processing-document-list small{grid-column:1/-1;color:var(--muted)}
.daily-processing-document-list article.has-attachment-issue{border-color:#dcaeb3;background:#fff8f8}
.daily-processing-document-list article p,.daily-processing-document-list article iframe,.daily-processing-document-list article a,.daily-processing-attachment-warning{grid-column:1/-1}
.daily-processing-attachment-warning{display:grid;gap:3px;border-left:4px solid #b33a46;background:#fff0f1;padding:9px 11px;color:#712832}
.daily-processing-email-evidence{display:grid;gap:10px}.daily-processing-ai-summary{border-radius:8px;background:#eef5fa;padding:11px 13px}.daily-processing-ai-summary p{margin:5px 0 0}
.daily-processing-email-evidence details{border:1px solid var(--line);border-radius:8px;padding:10px 12px}.daily-processing-email-evidence summary{cursor:pointer;font-weight:700}
.daily-processing-email-evidence pre{margin:12px 0 0;max-height:none;overflow:visible;border:1px solid var(--line);background:#fff;padding:12px;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.45 inherit;color:var(--ink)}
.daily-processing-pdf{grid-column:1/-1;width:100%;height:520px;border:1px solid var(--line);border-radius:7px;background:#fff}
.daily-processing-image-preview{display:block;max-width:100%;max-height:360px;border:1px solid var(--line);border-radius:7px;background:#fff;object-fit:contain}
.daily-processing-decision-box{border:1px solid #c4d0d8!important;border-radius:10px;background:#f7f9fa;padding:14px!important}
.daily-processing-decision-box label{display:grid;gap:6px}.daily-processing-decision-box textarea{width:100%;resize:vertical}
.daily-processing-correction-rule-warning{display:grid;gap:3px;margin-top:9px;border:1px solid #d7a72f;border-left:5px solid #c48600;border-radius:8px;background:#fff8df;padding:9px 11px;color:#493500}.daily-processing-correction-rule-warning span{font-size:12px;line-height:1.4}
.daily-processing-proposed-rule{border:1px solid #8cb9a4;border-left:5px solid #237a57;border-radius:8px;background:#f2fbf6;padding:12px}.daily-processing-proposed-rule p{margin:7px 0;line-height:1.45}.daily-processing-proposed-rule small{display:block;margin-top:8px;color:#315544}
.daily-processing-decision-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.daily-processing-attempt-history{border:1px solid var(--line);border-radius:8px;padding:9px 11px}.daily-processing-attempt-history>summary{cursor:pointer;font-weight:700}.daily-processing-attempt-history>article{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.daily-processing-attempt-history small{grid-column:1/-1;color:var(--muted)}
.daily-processing-history,.daily-processing-controls-panel{margin-top:16px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 14px}
@media(max-width:1100px){.daily-processing-last-run{display:none}.daily-processing-compact-scope{max-width:260px}}
@media(max-width:900px){.daily-processing-workspace{grid-template-columns:1fr}.daily-processing-compact-scope{max-width:210px}.daily-processing-compact-stat{display:none}}
@media(max-width:600px){.daily-processing-facts{grid-template-columns:1fr}.daily-processing-review-card-top{display:grid}.user-permissions-grid{grid-template-columns:1fr}}

.mozaik-completion-dialog{width:min(620px,calc(100vw - 28px));border:0;border-radius:14px;padding:0;box-shadow:0 24px 70px rgba(10,25,36,.3);color:var(--ink)}
.mozaik-completion-dialog::backdrop{background:rgba(10,25,36,.62)}
.mozaik-completion-dialog form{display:grid;gap:16px;padding:24px}
.mozaik-completion-dialog p{margin:0;color:var(--muted);line-height:1.45}
.mozaik-completion-dialog label{display:grid;gap:7px;font-weight:800}
.mozaik-completion-dialog input{width:100%}
.mozaik-completion-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.mozaik-completion-heading h2{margin:3px 0 0}
.mozaik-completion-kicker{font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#237a57}
.mozaik-dialog-close{border:0;background:transparent;padding:0 5px;color:var(--muted);font-size:30px;line-height:1;cursor:pointer}
.mozaik-modal-status{min-height:20px;font-size:13px;color:var(--muted)}
.mozaik-modal-status.error{color:#a12632;font-weight:700}
.mozaik-completion-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.conversation-message-requested{border-color:var(--gold-text);box-shadow:0 0 0 3px var(--gold-soft)}
@media(max-width:600px){.mozaik-completion-actions{display:grid}.mozaik-completion-actions .action-btn{width:100%}}

body.attachment-viewer-open{overflow:hidden;overscroll-behavior:none}
.conversation-attachment[data-attachment-viewer]{color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.attachment-viewer-shell[hidden]{display:none!important}
.attachment-viewer-shell{position:fixed;inset:0;z-index:20000;display:grid;grid-template-rows:auto minmax(0,1fr);width:100vw;height:100vh;height:100dvh;background:#e8edf1;color:var(--ink);isolation:isolate}
.attachment-viewer-toolbar{position:relative;z-index:2;display:grid;gap:8px;padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left));background:#172532;color:#fff;border-bottom:3px solid var(--gold);box-shadow:0 3px 12px rgba(0,0,0,.24)}
.attachment-viewer-toolbar-primary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}
.attachment-viewer-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:180px;min-height:48px;border:1px solid var(--gold);border-radius:8px;padding:9px 13px;background:var(--gold);color:#17202b;font:inherit;font-weight:900;cursor:pointer;touch-action:manipulation}
.attachment-viewer-action[hidden]{display:none!important}
.attachment-viewer-action:hover,.attachment-viewer-action:focus-visible{background:var(--gold-2);border-color:var(--gold-2)}
.attachment-viewer-action:disabled{border-color:#71808b;background:#71808b;color:#e6ebef;cursor:wait}
.attachment-viewer-action>span[aria-hidden]{font-size:22px;line-height:1}
.attachment-viewer-file-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.attachment-viewer-file-actions .attachment-viewer-action{min-width:150px}
.attachment-viewer-heading{display:grid;gap:2px;min-width:0}
.attachment-viewer-heading strong{overflow:hidden;color:#fff;font-size:16px;text-overflow:ellipsis;white-space:nowrap}
.attachment-viewer-heading span{color:#d9e2e8;font-size:12px}
.attachment-viewer-pdf-toolbar[hidden],.attachment-viewer-pdf[hidden]{display:none!important}
.attachment-viewer-pdf-toolbar{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.attachment-viewer-control-group{display:inline-flex;align-items:center;gap:6px;min-height:46px;border:1px solid #60707d;border-radius:9px;padding:3px;background:#263947;color:#fff;font-size:13px;font-weight:800}
.attachment-viewer-control-group button{display:inline-grid;place-items:center;min-width:42px;min-height:40px;border:1px solid #86949e;border-radius:6px;padding:5px 9px;background:#f5f7f8;color:#172532;font:inherit;font-weight:900;cursor:pointer;touch-action:manipulation}
.attachment-viewer-control-group button:disabled{opacity:.42;cursor:not-allowed}
.attachment-viewer-control-group span{min-width:74px;text-align:center;white-space:nowrap}
.attachment-viewer-stage{position:relative;display:grid;min-width:0;min-height:0;overflow:hidden;background:#4f5a62}
.attachment-viewer-pdf{width:100%;height:100%;min-width:0;min-height:0;overflow:auto;padding:10px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#4f5a62;overscroll-behavior:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
.attachment-viewer-pdf-surface{position:relative;flex:none;margin:auto;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.32);transform-origin:top left}
.attachment-viewer-pdf-page{display:block;width:100%;height:100%;margin:0;background:#fff;object-fit:fill;-webkit-user-drag:none;user-select:none}
.attachment-viewer-image{align-self:center;justify-self:center;max-width:100%;max-height:100%;border-radius:8px;background:#fff;object-fit:contain;box-shadow:0 4px 18px rgba(23,37,50,.18)}
.attachment-viewer-unsupported{align-self:center;justify-self:center;display:grid;gap:14px;width:min(560px,100%);border:1px solid var(--line);border-radius:12px;padding:24px;background:#fff;text-align:center;box-shadow:var(--shadow)}
.attachment-viewer-unsupported[hidden]{display:none!important}
.attachment-viewer-unsupported h2,.attachment-viewer-unsupported p{margin:0}
.attachment-viewer-unsupported p{color:var(--muted)}
.attachment-viewer-retry{justify-self:center}
.attachment-viewer-retry[hidden]{display:none!important}
.attachment-viewer-print-frame{position:fixed;right:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none}
@media(max-width:600px){.attachment-viewer-toolbar{gap:6px;padding-top:calc(6px + env(safe-area-inset-top))}.attachment-viewer-toolbar-primary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}.attachment-viewer-back{grid-column:1;grid-row:1}.attachment-viewer-file-actions{grid-column:2;grid-row:1;gap:4px}.attachment-viewer-heading{grid-column:1/-1;grid-row:2;text-align:center}.attachment-viewer-action{width:100%;min-width:0;min-height:44px;padding:7px 8px;font-size:12px}.attachment-viewer-file-actions .attachment-viewer-action{min-width:0;padding-inline:4px}.attachment-viewer-file-actions .attachment-viewer-action>span[aria-hidden]{display:none}.attachment-viewer-action>span[aria-hidden]{font-size:18px}.attachment-viewer-pdf-toolbar{gap:5px}.attachment-viewer-control-group{gap:3px;min-height:42px;padding:2px;font-size:12px}.attachment-viewer-control-group button{min-width:38px;min-height:38px;padding:4px 7px}.attachment-viewer-control-group span{min-width:65px}.attachment-viewer-pdf{padding-top:6px}.attachment-viewer-unsupported{margin:8px;padding:20px 16px}}

/* Keep excluded tasks visible and selectable in the office status column. */
.crm-task-table select.crm-status-not_required{background:#e8e4ef!important;color:#493d60;border:1px solid #9b90ac}
