:root{--navy:#0b1324;--navy-2:#111c31;--ink:#172033;--muted:#69758a;--line:#dde3ec;--paper:#f4f6f9;--white:#fff;--blue:#2864dc;--blue-soft:#e9f0ff;--green:#14805e;--green-soft:#e6f7f0;--amber:#b76a0a;--amber-soft:#fff3df;--red:#be3448;--red-soft:#ffeaed;--violet:#7047cb;--cyan:#077e9e;--shadow:0 10px 35px rgba(18,35,65,.08);--radius:14px}*{box-sizing:border-box}html{font-size:15px}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.demo-banner{height:26px;background:#e7f0ff;color:#16438e;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;letter-spacing:.13em}.app-shell{min-height:calc(100vh - 26px);display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:calc(100vh - 26px);background:var(--navy);color:#d7dfed;display:flex;flex-direction:column;padding:25px 17px 16px;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 9px 28px;color:#fff}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#4b84ff,#1d55c8);display:grid;place-items:center;font-weight:900;color:#fff;box-shadow:0 8px 18px rgba(45,100,220,.3)}.brand strong,.brand small{display:block}.brand strong{font-size:1.07rem;letter-spacing:.08em}.brand small{font-size:.62rem;color:#8fa1be;letter-spacing:.18em;margin-top:2px}.nav{display:flex;flex-direction:column;gap:6px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;color:#aebbd0;font-weight:600}.nav-link span{width:22px;text-align:center;font-size:1.1rem}.nav-link:hover,.nav-link.active{background:#1a2a46;color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid #253552;padding:18px 4px 0;display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:50%;background:#dbe7ff;color:#1f57c4;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.avatar.large{width:48px;height:48px;font-size:1.05rem}.user-meta{min-width:0;flex:1}.user-meta strong,.user-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta strong{color:#fff;font-size:.78rem}.user-meta small{font-size:.68rem;color:#8394af;margin-top:2px}.icon-button{border:0;background:transparent;color:#8fa1be;font-size:1.15rem;cursor:pointer}.main-area{min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;gap:20px;position:sticky;top:0;z-index:10}.global-search{width:min(720px,68vw);display:flex;align-items:center;gap:10px;background:#f3f5f8;border:1px solid transparent;border-radius:10px;padding:0 13px}.global-search:focus-within{background:#fff;border-color:#9bb8ef;box-shadow:0 0 0 3px #e7efff}.global-search input{border:0;background:transparent;outline:0;width:100%;height:42px;color:var(--ink)}kbd{font-size:.58rem;color:#7e8999;background:#fff;border:1px solid #d9dee6;border-bottom-width:2px;border-radius:5px;padding:3px 6px}.topbar-role{margin-left:auto;font-size:.75rem;color:var(--muted);font-weight:700}.mobile-menu{display:none;border:0;background:transparent;font-size:1.3rem}.page-wrap{padding:30px;max-width:1800px;margin:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin:2px 0 24px}.page-heading h1,.wo-hero h1,.tech-hero h1{font-size:2rem;line-height:1.1;margin:5px 0 6px;letter-spacing:-.035em}.page-heading p,.wo-hero p,.tech-hero p{margin:0;color:var(--muted)}.eyebrow{font-size:.65rem;letter-spacing:.15em;font-weight:850;color:#6d7c91}.button{border:0;border-radius:9px;padding:10px 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:750;cursor:pointer;white-space:nowrap}.button.primary{background:var(--blue);color:#fff;box-shadow:0 5px 14px rgba(40,100,220,.2)}.button.primary:hover{background:#1e52bd}.button.secondary{background:#eef2f7;color:#26344b}.button.ghost{background:transparent;border:1px solid var(--line)}.button.wide{width:100%}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 18px rgba(17,34,65,.035)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px 20px;position:relative;overflow:hidden;box-shadow:0 3px 18px rgba(17,34,65,.035)}.metric-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue)}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{color:var(--muted);font-weight:700;font-size:.78rem}.metric-card strong{font-size:2rem;margin:7px 0 1px}.metric-card small{color:#8893a3}.accent-green:before{background:var(--green)}.accent-amber:before{background:#e7a32a}.accent-red:before{background:var(--red)}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.module-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;align-items:center;gap:14px;box-shadow:0 3px 18px rgba(17,34,65,.035);transition:.15s}.module-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.module-card div{flex:1}.module-card strong,.module-card small{display:block}.module-card strong{font-size:1rem}.module-card small{color:var(--muted);margin-top:3px}.module-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:900;font-size:1.15rem}.module-icon.blue{background:var(--blue-soft);color:var(--blue)}.module-icon.violet{background:#f0ebff;color:var(--violet)}.module-icon.cyan{background:#e1f7fb;color:var(--cyan)}.module-icon.amber{background:var(--amber-soft);color:var(--amber)}.module-icon.green{background:var(--green-soft);color:var(--green)}.module-icon.slate{background:#eef1f5;color:#566276}.content-grid{display:grid;gap:18px}.content-grid.two-one{grid-template-columns:minmax(0,2fr) minmax(260px,1fr)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 19px;border-bottom:1px solid var(--line)}.panel-heading h2{font-size:1rem;margin:4px 0 0}.panel-heading>a{color:var(--blue);font-weight:750;font-size:.78rem}.region-list{padding:8px 18px 18px}.region-list div{display:flex;justify-content:space-between;padding:12px 2px;border-bottom:1px solid #edf0f4}.region-list div:last-child{border:0}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:.78rem}.data-table th{text-align:left;color:#7b8798;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;background:#fafbfc;padding:11px 13px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px 13px;border-bottom:1px solid #ebeff4;vertical-align:middle}.data-table tbody tr:hover{background:#f8faff}.data-table td small{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}.data-table.compact td{padding:9px 11px}.wo-number{font-weight:850;color:#1f58c4}.muted{color:var(--muted)}.empty-state{padding:30px!important;text-align:center;color:var(--muted)}.status{display:inline-flex;align-items:center;min-height:24px;border-radius:20px;padding:4px 9px;background:#edf1f5;color:#526076;font-size:.65rem;font-weight:800;white-space:nowrap}.status-new,.status-ready_to_schedule,.status-need_to_bill{background:var(--red-soft);color:var(--red)}.status-scheduled,.status-billed,.status-ordered,.status-shipped{background:var(--blue-soft);color:var(--blue)}.status-in_progress,.status-diagnosed,.status-received,.status-parts_received{background:var(--amber-soft);color:var(--amber)}.status-completed,.status-paid,.status-installed,.status-shelved,.status-tech_bin{background:var(--green-soft);color:var(--green)}.status-waiting_parts,.status-need_authorization,.status-escalation{background:#fff0dc;color:#a65c00}.status-canceled,.status-returned{background:#f0f1f3;color:#687386}.priority{background:var(--red-soft);color:var(--red);border-radius:20px;padding:5px 10px;font-size:.68rem;font-weight:800}.alert{border-radius:10px;padding:11px 14px;margin-bottom:14px;background:#eaf2ff;color:#1b55b6;border:1px solid #caddff}.alert.error{background:var(--red-soft);color:#9c283c;border-color:#f3bdc6}.alert.success{background:var(--green-soft);color:#0e694c;border-color:#bce8d8}.filter-bar{padding:14px;display:flex;align-items:end;gap:12px;margin-bottom:16px}.filter-bar label{flex:1}.filter-bar label:first-child{flex:1.5}.filter-bar span,.form-grid label>span,.stacked-form label>span,.scanner-bar label>span{display:block;color:#6f7c90;font-size:.65rem;font-weight:800;letter-spacing:.05em;margin-bottom:6px}.filter-bar input,.filter-bar select,input,select,textarea{width:100%;border:1px solid #d5dce6;background:#fff;border-radius:8px;padding:9px 10px;color:var(--ink);outline:0}input:focus,select:focus,textarea:focus{border-color:#86aaf0;box-shadow:0 0 0 3px #eaf1ff}textarea{resize:vertical}.result-count,.count-badge{background:#eef2f7;border-radius:20px;padding:6px 10px;font-size:.72rem;font-weight:800;color:#627086}.form-panel{padding:0 23px 20px}.form-section{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:25px 0;border-bottom:1px solid var(--line)}.form-section h2{margin:5px 0 5px;font-size:1rem}.form-section p{margin:0;color:var(--muted);font-size:.78rem}.step{display:inline-grid;place-items:center;background:var(--blue-soft);color:var(--blue);width:28px;height:28px;border-radius:8px;font-size:.65rem;font-weight:900}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .wide{grid-column:1/-1}.form-grid ul.errorlist{list-style:none;margin:5px 0 0;padding:0;color:var(--red);font-size:.7rem}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px}.wo-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;background:linear-gradient(125deg,#0c172b,#172a4a);color:#fff;border-radius:18px;padding:24px 27px;margin-bottom:18px}.wo-hero p{color:#acbbd2}.back-link{color:#a9bddc;font-size:.75rem}.wo-title{display:flex;align-items:center;gap:10px}.hero-actions{display:flex;gap:9px}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:18px}.detail-main,.detail-side{display:flex;flex-direction:column;gap:16px}.identity-card{padding:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.identity-name{display:flex;align-items:center;gap:13px}.identity-name h2{margin:4px 0 3px;font-size:1.13rem}.identity-name p{margin:0;color:var(--muted)}.identity-contacts{display:flex;gap:30px}.identity-contacts div span,.info-grid div span,.assignment>span{display:block;color:#7d8999;font-size:.62rem;font-weight:850;letter-spacing:.08em;margin-bottom:4px}.identity-contacts a{font-weight:700;color:#254f95}.info-grid{padding:17px 19px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.info-grid strong{display:block;font-size:.85rem;line-height:1.45}.inline-details{border-top:1px solid var(--line)}.inline-details summary{padding:13px 18px;color:var(--blue);font-weight:800;cursor:pointer;font-size:.75rem}.inline-details form{padding:5px 18px 18px}.mini-form{grid-template-columns:repeat(3,minmax(0,1fr))}.note-composer{padding:15px 18px;display:grid;grid-template-columns:155px 1fr auto;gap:10px;align-items:start}.timeline{padding:0 20px 18px}.timeline article{display:grid;grid-template-columns:14px 1fr;gap:10px;position:relative;padding:14px 0 0}.timeline article:before{content:"";position:absolute;left:5px;top:26px;bottom:-14px;width:1px;background:#dce2eb}.timeline article:last-child:before{display:none}.timeline-dot{width:11px;height:11px;border:3px solid #8eb0ef;background:#fff;border-radius:50%;margin-top:3px;z-index:1}.timeline-meta{display:flex;justify-content:space-between;gap:10px}.timeline-meta strong{font-size:.76rem}.timeline-meta span{font-size:.67rem;color:var(--muted)}.timeline p{margin:6px 0 0;font-size:.79rem;white-space:pre-line}.event-timeline{padding-top:3px}.sticky-panel{position:sticky;top:90px}.stacked-form{display:flex;flex-direction:column;gap:11px;padding:16px 18px}.stacked-form p{margin:0}.stacked-form p label{display:block;color:#6f7c90;font-size:.68rem;font-weight:750;margin-bottom:5px}.sticky-panel hr{border:0;border-top:1px solid var(--line);margin:0}.assignment{padding:15px 18px}.assignment strong,.assignment small{display:block}.assignment small{color:var(--muted);margin-top:4px}.sticky-panel>.button{margin:0 18px 18px;width:calc(100% - 36px)}.money-card .panel-heading h2{font-size:1.55rem}.money-list{padding:9px 18px 15px;margin:0}.money-list div{display:flex;justify-content:space-between;padding:7px 0}.money-list dt{color:var(--muted)}.money-list dd{margin:0;font-weight:750}.money-list .cost{border-top:1px dashed var(--line);margin-top:4px}.money-list .total{border-top:1px solid var(--line);font-size:1rem;font-weight:800}.money-list .total dd{color:var(--red)}.document-list{padding:9px 18px 15px}.document-list div{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;padding:9px 0;border-bottom:1px solid #edf0f4}.document-list small{color:var(--muted)}.dispatch-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:16px;align-items:start}.dispatch-queue{max-height:calc(100vh - 155px);overflow:auto;position:sticky;top:91px}.dispatch-cards{padding:10px}.dispatch-card{border:1px solid #dfe5ee;border-left:4px solid var(--red);border-radius:10px;padding:11px;margin-bottom:9px;background:#fff}.dispatch-card>div{display:flex;justify-content:space-between;gap:8px}.dispatch-card>div a{color:var(--blue);font-weight:850}.dispatch-card>div span{color:var(--muted);font-size:.7rem}.dispatch-card>strong{display:block;margin:8px 0 3px}.dispatch-card p,.dispatch-card small{margin:0;color:var(--muted);font-size:.73rem}.dispatch-card details{margin-top:8px}.dispatch-card summary{color:var(--blue);font-size:.7rem;font-weight:800;cursor:pointer}.compact-form{padding:10px 0 0}.dispatch-board{display:flex;gap:12px;overflow:auto;padding-bottom:15px}.tech-column{min-width:220px;max-width:250px;flex:1;background:#edf1f6;border-radius:13px;border:1px solid #dbe2eb;overflow:hidden}.tech-column>header{background:#fff;padding:11px;display:flex;gap:9px;align-items:center;border-bottom:1px solid var(--line)}.tech-column header strong,.tech-column header small{display:block}.tech-column header strong{font-size:.76rem}.tech-column header small{color:var(--muted);font-size:.64rem;margin-top:2px}.tech-day{padding:9px;min-height:250px}.scheduled-card{display:block;background:#fff;border-left:4px solid var(--blue);border-radius:9px;padding:10px;margin-bottom:8px;box-shadow:0 2px 8px rgba(25,45,78,.06)}.scheduled-card time,.scheduled-card strong,.scheduled-card span,.scheduled-card small{display:block}.scheduled-card time{color:var(--blue);font-size:.65rem;font-weight:850}.scheduled-card strong{margin:6px 0 2px}.scheduled-card span{font-size:.76rem}.scheduled-card small{color:var(--muted);margin-top:3px}.open-day{border:1px dashed #bfc9d7;border-radius:9px;text-align:center;padding:24px 8px;color:#8894a5;font-size:.73rem}.date-picker{display:flex;align-items:center;gap:7px}.date-picker input{width:auto}.scanner-bar{display:grid;grid-template-columns:auto minmax(280px,1fr) 220px auto;align-items:end;gap:12px;padding:15px;margin-bottom:16px}.scanner-icon{width:42px;height:42px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:1.25rem}.tab-bar{display:flex;padding:6px;margin-bottom:16px;width:max-content}.tab-bar a{padding:9px 15px;border-radius:8px;font-weight:750;color:var(--muted)}.tab-bar a.active{background:var(--navy);color:#fff}.money-summary span,.money-summary strong{display:block;text-align:right}.money-summary span{font-size:.63rem;color:var(--muted);font-weight:850;letter-spacing:.1em}.money-summary strong{font-size:1.7rem;margin-top:4px}.danger-text{color:var(--red);font-weight:850}.tech-hero{background:linear-gradient(130deg,#0d1a30,#1d3b68);color:#fff;border-radius:18px;padding:23px;margin-bottom:16px}.tech-hero p{color:#b6c4d9}.tech-job-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tech-job-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.tech-job-card header{padding:15px 17px;background:#fafbfc;border-bottom:1px solid var(--line)}.tech-job-card header>div{display:flex;justify-content:space-between;align-items:center}.tech-job-card time{font-weight:850;color:var(--blue)}.tech-job-card header>strong{display:block;font-size:.78rem;color:var(--muted);margin-top:7px}.tech-job-body{padding:17px}.tech-job-body h2{margin:0 0 5px;font-size:1.1rem}.tech-job-body p,.tech-job-body address{margin:0;color:var(--muted);font-style:normal}.tech-job-body address{margin-top:8px}.complaint{background:#f3f6fa;border-radius:9px;padding:11px;margin-top:13px;font-size:.79rem}.complaint span{display:block;color:#778497;font-size:.6rem;font-weight:850;margin-bottom:4px}.tech-job-card footer{display:flex;gap:7px;padding:0 17px 17px}.tech-job-card footer .button{flex:1}.auth-body{min-height:100vh;background:var(--navy);display:grid;place-items:center;padding:30px}.auth-shell{width:min(1040px,100%);display:grid;grid-template-columns:1.15fr .85fr;border-radius:22px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35)}.auth-brand{padding:55px;background:radial-gradient(circle at 10% 10%,#23477f 0,#0f203a 40%,#0a1427 100%);color:#fff}.auth-brand .brand-mark{margin-bottom:32px}.auth-brand h1{font-size:2.65rem;line-height:1.05;letter-spacing:-.05em;max-width:470px;margin:12px 0 16px}.auth-brand>p{color:#adbed5;line-height:1.6;max-width:480px;margin-bottom:38px}.auth-feature{display:flex;gap:14px;color:#c9d5e5;padding:12px 0;border-top:1px solid rgba(255,255,255,.1)}.auth-feature span{font-size:.65rem;color:#6c9dff;font-weight:900}.auth-card{background:#fff;padding:55px 48px;display:flex;flex-direction:column;justify-content:center}.auth-card h2{font-size:1.75rem;margin:18px 0 4px}.auth-card .stacked-form{padding:18px 0 0}.demo-pill{width:max-content;background:var(--blue-soft);color:var(--blue);font-size:.65rem;font-weight:850;letter-spacing:.08em;border-radius:20px;padding:7px 10px}.auth-note{font-size:.72rem;color:var(--muted);line-height:1.5;margin-top:20px}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.sticky-panel{position:static}.content-grid.two-one{grid-template-columns:1fr}.identity-card{align-items:flex-start}.identity-contacts{flex-direction:column;gap:10px}.dispatch-layout{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:760px){.demo-banner{font-size:.57rem}.app-shell{display:block}.sidebar{position:fixed;left:-260px;top:26px;width:238px;transition:.2s;box-shadow:10px 0 30px rgba(0,0,0,.22)}.sidebar.open{left:0}.topbar{height:65px;padding:0 13px;gap:8px}.mobile-menu{display:block}.global-search{width:100%}.global-search kbd,.topbar-role{display:none}.page-wrap{padding:17px 13px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:17px}.page-heading h1{font-size:1.6rem}.metric-grid,.module-grid,.tech-job-list{grid-template-columns:1fr 1fr}.metric-card{padding:15px}.metric-card strong{font-size:1.55rem}.module-card{padding:14px}.module-card small{display:none}.filter-bar{display:grid;grid-template-columns:1fr}.form-section{grid-template-columns:1fr;gap:15px}.form-grid,.mini-form{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.wo-hero{align-items:flex-start;flex-direction:column;padding:20px}.hero-actions{width:100%}.hero-actions .button{flex:1}.identity-card{align-items:flex-start;flex-direction:column}.identity-contacts{width:100%;display:grid;grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:1fr}.note-composer{grid-template-columns:1fr}.timeline-meta{flex-direction:column;gap:2px}.detail-side{order:-1}.dispatch-layout{grid-template-columns:1fr}.dispatch-queue{position:static;max-height:none}.dispatch-board{margin:0 -13px;padding:0 13px 15px}.scanner-bar{grid-template-columns:auto 1fr}.scanner-bar label:nth-of-type(2),.scanner-bar .button{grid-column:1/-1}.auth-shell{grid-template-columns:1fr}.auth-brand{display:none}.auth-card{padding:38px 28px}.tech-job-list{grid-template-columns:1fr}.data-table{font-size:.73rem}}

/* A received-part photo is a compact visual locator, not another document card. */
.part-reference-photos{min-width:30px;display:flex;align-items:center;gap:4px;color:var(--muted)}.part-reference-photos:empty::before{content:"—"}.part-reference-photos a{width:30px;height:30px;display:block;flex:0 0 30px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:var(--paper)}.part-reference-photos a:hover{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft)}.part-reference-photos img{width:100%;height:100%;display:block;object-fit:cover}
@media(max-width:480px){.metric-grid,.module-grid{grid-template-columns:1fr}.identity-contacts{grid-template-columns:1fr}.wo-title{align-items:flex-start;flex-direction:column}.tech-job-card footer{flex-wrap:wrap}.tech-job-card footer .button{min-width:42%}}

/* Shared service menu, account page and global dark appearance. */
.account-menu{position:relative;flex:0 0 auto}.account-menu>summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:42px;padding:4px 8px;border:1px solid var(--line);border-radius:10px;background:var(--white);cursor:pointer;color:var(--ink)}.account-menu>summary::-webkit-details-marker{display:none}.account-menu-avatar{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);font-weight:900}.account-menu-name{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:800}.account-menu-chevron{color:var(--muted);font-size:.9rem}.account-menu-popover{position:absolute;z-index:100;right:0;top:calc(100% + 8px);width:250px;padding:7px;background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px rgba(13,27,48,.22)}.account-menu-user{padding:9px 10px 11px}.account-menu-user strong,.account-menu-user span{display:block}.account-menu-user strong{font-size:.8rem}.account-menu-user span{margin-top:2px;color:var(--muted);font-size:.68rem}.account-menu-popover>a,.account-menu-popover>button,.account-menu-popover form>button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.account-menu-popover>a:hover,.account-menu-popover>button:hover,.account-menu-popover form>button:hover{background:var(--blue-soft)}.account-menu-popover span{font-size:.76rem;font-weight:800}.account-menu-popover small{color:var(--muted);font-size:.63rem}.account-menu-separator{height:1px;margin:5px 4px;background:var(--line)}.account-menu-logout span{color:var(--red)}.account-heading{align-items:center}.account-metrics .metric-card strong{font-size:1.55rem}.account-activity-list article{display:grid;grid-template-columns:130px 1fr auto;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);align-items:center}.account-activity-list p{margin:0}.account-activity-list time{color:var(--muted);font-size:.7rem}.activity-day-list{padding:8px 18px 18px}.activity-day-list div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}

html[data-theme="dark"]{color-scheme:dark;--ink:#e8edf6;--muted:#9cabc0;--line:#334055;--paper:#101621;--white:#172131;--blue:#71a1ff;--blue-soft:#1d355d;--green-soft:#173d34;--amber-soft:#49351d;--red-soft:#4b2630;--shadow:0 10px 35px rgba(0,0,0,.28)}html[data-theme="dark"] body{background:var(--paper);color:var(--ink)}html[data-theme="dark"] .topbar,html[data-theme="dark"] .panel,html[data-theme="dark"] .metric-card,html[data-theme="dark"] .module-card,html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .data-table th{background:var(--white);color:var(--ink)}html[data-theme="dark"] .data-table tbody tr:hover{background:#1c2a3d}html[data-theme="dark"] .global-search{background:#111a28}html[data-theme="dark"] .button.secondary{background:#253247;color:var(--ink)}html[data-theme="dark"] .demo-banner{background:#14233d;color:#9bbcff}html[data-theme="dark"] .account-menu-popover{box-shadow:0 18px 50px rgba(0,0,0,.5)}

@media(max-width:700px){.account-menu-name{display:none}.account-menu-popover{position:fixed;right:10px;top:70px}.account-activity-list article{grid-template-columns:1fr}.account-content{grid-template-columns:1fr}}

/* Dark mode: neutral graphite surfaces, quiet separators and a single blue accent. */
html[data-theme="dark"]{
  --ink:#e7ecf3;
  --muted:#8f9bad;
  --line:rgba(148,163,184,.14);
  --paper:#0d1117;
  --white:#151b23;
  --navy:#0b1017;
  --navy-2:#111821;
  --blue:#6b9cff;
  --blue-soft:rgba(83,139,255,.14);
  --green:#44bd91;
  --green-soft:rgba(45,183,133,.14);
  --amber:#e3a84b;
  --amber-soft:rgba(216,151,46,.14);
  --red:#ef7181;
  --red-soft:rgba(224,72,92,.14);
}
html[data-theme="dark"] .sidebar{background:#0a0f15}
html[data-theme="dark"] .topbar,
html[data-theme="dark"] .panel,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .module-card,
html[data-theme="dark"] .tech-job-card{border-color:transparent;background:#151b23;box-shadow:0 8px 28px rgba(0,0,0,.16)}
html[data-theme="dark"] .topbar{border-bottom:1px solid rgba(148,163,184,.1);box-shadow:none}
html[data-theme="dark"] .panel-heading,
html[data-theme="dark"] .data-table th,
html[data-theme="dark"] .data-table td,
html[data-theme="dark"] .region-list div,
html[data-theme="dark"] .account-activity-list article,
html[data-theme="dark"] .activity-day-list div{border-color:rgba(148,163,184,.09)}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .global-search{border-color:transparent;background:#1b222c;color:#e7ecf3;box-shadow:none}
html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] .global-search:focus-within{border-color:rgba(107,156,255,.65);background:#1d2530;box-shadow:0 0 0 3px rgba(107,156,255,.11)}
html[data-theme="dark"] .account-menu>summary,
html[data-theme="dark"] .account-menu-popover{border-color:rgba(148,163,184,.12);background:#171e27}
html[data-theme="dark"] .account-menu-separator{background:rgba(148,163,184,.1)}
html[data-theme="dark"] .account-menu-popover>a:hover,
html[data-theme="dark"] .account-menu-popover>button:hover,
html[data-theme="dark"] .account-menu-popover form>button:hover{background:rgba(107,156,255,.1)}
html[data-theme="dark"] .data-table tbody tr:hover{background:#1a222d}

/* Borderless application surfaces. Hierarchy comes from spacing and tone. */
body{background:#eef1f5}
.topbar{border:0;background:rgba(255,255,255,.96);box-shadow:0 1px 0 rgba(30,45,65,.06)}
.page-wrap{padding:28px}
.panel,.metric-card,.module-card,.tech-job-card{border:0;box-shadow:0 4px 18px rgba(26,39,59,.055)}
.panel-heading{border-color:rgba(48,63,83,.08)}
.global-search{border:0;background:#f0f3f7}
.global-search:focus-within{border:0;background:#fff;box-shadow:0 0 0 3px rgba(40,100,220,.12)}
.account-menu>summary{border:0;background:#f2f5f8}
.account-menu-popover{border:0;box-shadow:0 18px 50px rgba(13,27,48,.18)}
.account-menu-separator{background:rgba(48,63,83,.08)}
.data-table th{border-color:rgba(48,63,83,.07);background:#f7f9fb}
.data-table td,.region-list div,.account-activity-list article,.activity-day-list div{border-color:rgba(48,63,83,.07)}
input,select,textarea{border-color:transparent;background:#f1f4f7}
input:focus,select:focus,textarea:focus{border-color:transparent;background:#fff;box-shadow:0 0 0 3px rgba(40,100,220,.12)}
.button.ghost{border:0;background:#f1f4f7}
html[data-theme="dark"] .panel-heading,
html[data-theme="dark"] .data-table th,
html[data-theme="dark"] .data-table td,
html[data-theme="dark"] .region-list div,
html[data-theme="dark"] .account-activity-list article,
html[data-theme="dark"] .activity-day-list div{border-color:rgba(148,163,184,.07)}

/* Soft gray light theme shared by the office modules. */
html:not([data-theme="dark"]) body{background:#e4e8ed}
html:not([data-theme="dark"]) .panel,
html:not([data-theme="dark"]) .metric-card,
html:not([data-theme="dark"]) .module-card,
html:not([data-theme="dark"]) .tech-job-card{background:#f3f5f7}
html:not([data-theme="dark"]) input,
html:not([data-theme="dark"]) select,
html:not([data-theme="dark"]) textarea{background:#fff}

html:not([data-theme="dark"]) body{background:#c3cbd4}
html:not([data-theme="dark"]) .panel,
html:not([data-theme="dark"]) .metric-card,
html:not([data-theme="dark"]) .module-card,
html:not([data-theme="dark"]) .tech-job-card{background:#edf0f3}
html:not([data-theme="dark"]) .button.secondary,
html:not([data-theme="dark"]) .button.ghost{background:#c7d0da;color:#20354f}

/* Technician-controlled availability. */
.tech-availability-panel{margin-bottom:16px;overflow:hidden}
.tech-availability-panel .panel-heading{align-items:center}
.tech-availability-panel .panel-heading h2{margin:4px 0 0}
.tech-availability-panel .panel-heading p{margin:0;color:var(--muted);font-size:.72rem}
.tech-availability-scroll{overflow:auto;padding:12px}
.tech-availability-grid{display:grid;gap:7px;min-width:1260px}
.tech-availability-row{display:grid;grid-template-columns:86px repeat(12,minmax(88px,1fr));gap:6px;align-items:stretch}
.tech-availability-row>strong{display:flex;flex-direction:column;justify-content:center;padding:0 7px;font-size:.75rem;text-transform:uppercase}
.tech-availability-row>strong span{color:var(--muted);font-size:.62rem}
.tech-availability-slot{min-height:47px;border:0;border-radius:8px;background:#e4e9ef;color:#23354d;cursor:pointer;font-weight:800}
.tech-availability-slot span,.tech-availability-slot small{display:block}
.tech-availability-slot span{font-size:.7rem}
.tech-availability-slot small{margin-top:3px;color:#66758a;font-size:.58rem}
.tech-availability-slot:hover{background:#d6dee7}
.tech-availability-slot.is-off{background:#c73c4d;color:#fff}
.tech-availability-slot.is-off small{color:#ffe6ea}
.tech-availability-slot:disabled{opacity:.55;cursor:wait}
html[data-theme="dark"] .tech-availability-slot{background:#202a37;color:#e7ecf3}
html[data-theme="dark"] .tech-availability-slot small{color:#9cabc0}
html[data-theme="dark"] .tech-availability-slot.is-off{background:#9f3041;color:#fff}
/* Priority notes remain unmistakable in both office and technician views. */
.timeline article.priority-note p{color:#be3448;font-weight:900}
.timeline article.priority-note .timeline-dot{border-color:#be3448}
html[data-theme="dark"] .timeline article.priority-note p{color:#ff7789}
html[data-theme="dark"] .timeline article.priority-note .timeline-dot{border-color:#ff7789}

/* Shared UI contract. Page-specific workspaces may provide denser variants. */
:root{
  --font-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --pilot-banner-height:0px;
  --workflow-header-height:48px;
  --focus-color:#2864dc;
  --focus-ring:0 0 0 3px rgba(40,100,220,.2);
  --shared-control:#f1f4f7;
  --shared-control-hover:#e7ecf2;
}
html[data-theme="dark"]{
  --focus-color:#8db3ff;
  --focus-ring:0 0 0 3px rgba(107,156,255,.28);
  --shared-control:#202a37;
  --shared-control-hover:#293646;
}
html:not([data-theme="dark"]){
  --muted:#5c687b;
  --green:#0d7351;
  --amber:#8d4e00;
  --cyan:#066f8b;
}
body,button,input,select,textarea{font-family:var(--font-ui)}
.button,.nav-link,.tab-bar a,.status,.priority,.result-count,.count-badge{font-weight:700}
input[type="checkbox"],input[type="radio"]{width:auto;min-width:0;padding:0}

html:not([data-theme="dark"]) .result-count,
html:not([data-theme="dark"]) .count-badge{color:#5f6c80}
html:not([data-theme="dark"]) .tech-availability-slot small{color:#56647a}
html:not([data-theme="dark"]) .metric-card small,
html:not([data-theme="dark"]) .open-day,
html:not([data-theme="dark"]) .complaint span{color:var(--muted)}
html:not([data-theme="dark"]) .page-heading p{color:#465366}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible{
  outline:2px solid var(--focus-color);
  outline-offset:2px;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:0;
  border-color:var(--focus-color);
  box-shadow:var(--focus-ring);
}

/* The banner and shared header are both in normal flow; only the header stays pinned. */
.app-base-screen .app-shell{min-height:calc(100dvh - var(--pilot-banner-height) - var(--workflow-header-height))}
.app-base-screen .sidebar{
  top:var(--workflow-header-height);
  height:calc(100dvh - var(--pilot-banner-height) - var(--workflow-header-height));
}
.app-base-screen .topbar{top:var(--workflow-header-height)}
@media(max-width:760px){
  .app-base-screen .sidebar{
    top:var(--workflow-header-height);
    height:calc(100dvh - var(--workflow-header-height));
    max-height:calc(100dvh - var(--workflow-header-height));
    overflow-y:auto;
  }
}

/* Long values stay inside their card or grid instead of widening the page. */
.panel,.metric-card,.module-card,.tech-job-card,.scheduled-card,.dispatch-card{min-width:0}
.tab-bar{box-sizing:border-box;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin}
.tab-bar a{flex:0 0 auto}
.document-list div{grid-template-columns:22px minmax(0,1fr) auto}
.document-list div>*,.identity-contacts>*,.info-grid>*,.timeline-meta>*{min-width:0}
.document-list :is(a,strong,span,small),.identity-contacts a,.info-grid strong,.timeline p{overflow-wrap:anywhere}
.part-reference-photos{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}

/* Common dark surfaces must not retain light-theme foreground/background pairs. */
html[data-theme="dark"] .button.primary{background:#3269c9;color:#fff;box-shadow:0 5px 14px rgba(0,0,0,.2)}
html[data-theme="dark"] .button.primary:hover{background:#3970d0}
html[data-theme="dark"] .button.ghost{border:1px solid rgba(148,163,184,.18);background:var(--shared-control);color:var(--ink)}
html[data-theme="dark"] .button.ghost:hover{background:var(--shared-control-hover)}
html[data-theme="dark"] .alert{border-color:rgba(107,156,255,.28);background:rgba(83,139,255,.14);color:#b8d0ff}
html[data-theme="dark"] .alert.error{border-color:rgba(239,113,129,.3);background:var(--red-soft);color:#ffabb5}
html[data-theme="dark"] .alert.success{border-color:rgba(68,189,145,.3);background:var(--green-soft);color:#8be0bd}
html[data-theme="dark"] kbd{border-color:#3a4656;background:#1b222c;color:#bdc8d7}
html[data-theme="dark"] .module-icon{background:#202a37}
html[data-theme="dark"] .module-icon.blue{color:#8bb4ff}
html[data-theme="dark"] .module-icon.violet{color:#c0a8ff}
html[data-theme="dark"] .module-icon.cyan{color:#71d7eb}
html[data-theme="dark"] .module-icon.amber{color:#f0c36e}
html[data-theme="dark"] .module-icon.green{color:#75d6ad}
html[data-theme="dark"] .module-icon.slate{color:#bdc8d7}
html[data-theme="dark"] .tech-job-card header,
html[data-theme="dark"] .scheduled-card,
html[data-theme="dark"] .dispatch-card,
html[data-theme="dark"] .tech-column>header{border-color:rgba(148,163,184,.1);background:#171e27;color:var(--ink)}
html[data-theme="dark"] .tech-column{border-color:rgba(148,163,184,.12);background:#111820}
html[data-theme="dark"] .complaint{background:#202a37;color:var(--ink)}
html[data-theme="dark"] .complaint span{color:var(--muted)}
html[data-theme="dark"] .open-day{border-color:#46566d;color:#9eabba}
html[data-theme="dark"] .document-list div{border-color:rgba(148,163,184,.1)}
html[data-theme="dark"] .part-reference-photos a{border-color:#3a4656;background:#202a37}
html[data-theme="dark"] .wo-number,
html[data-theme="dark"] .identity-contacts a{color:#8bb4ff}
html[data-theme="dark"] .result-count,
html[data-theme="dark"] .count-badge{background:#253247;color:#cbd6e4}
html[data-theme="dark"] .filter-bar span,
html[data-theme="dark"] .form-grid label>span,
html[data-theme="dark"] .stacked-form label>span,
html[data-theme="dark"] .scanner-bar label>span{color:#9eabba}
html[data-theme="dark"] .timeline article::before{background:#334055}
html[data-theme="dark"] .timeline-dot{border-color:#6b9cff;background:#151b23}
html[data-theme="dark"] .status{background:#222c39;color:#c8d2df}
html[data-theme="dark"] .status-new,
html[data-theme="dark"] .status-ready_to_schedule,
html[data-theme="dark"] .status-need_to_bill{background:var(--red-soft);color:var(--red)}
html[data-theme="dark"] .status-scheduled,
html[data-theme="dark"] .status-billed,
html[data-theme="dark"] .status-ordered,
html[data-theme="dark"] .status-shipped{background:var(--blue-soft);color:var(--blue)}
html[data-theme="dark"] .status-in_progress,
html[data-theme="dark"] .status-diagnosed,
html[data-theme="dark"] .status-received,
html[data-theme="dark"] .status-parts_received{background:var(--amber-soft);color:var(--amber)}
html[data-theme="dark"] .status-completed,
html[data-theme="dark"] .status-paid,
html[data-theme="dark"] .status-installed,
html[data-theme="dark"] .status-shelved,
html[data-theme="dark"] .status-tech_bin{background:var(--green-soft);color:var(--green)}
html[data-theme="dark"] .status-waiting_parts,
html[data-theme="dark"] .status-need_authorization,
html[data-theme="dark"] .status-escalation{background:var(--amber-soft);color:#f0bd69}
html[data-theme="dark"] .status-canceled,
html[data-theme="dark"] .status-returned{background:#242b35;color:#b8c3d1}

/* Sign-in follows the stored theme before first paint. */
html[data-theme="dark"] .auth-card{background:#151b23;color:var(--ink)}
html[data-theme="dark"] .auth-card .muted,
html[data-theme="dark"] .auth-note{color:var(--muted)}
html[data-theme="dark"] .eyebrow{color:#9eabba}
html[data-theme="dark"] .stacked-form p label{color:#9eabba}

/* Crisp secondary copy on the pale shared canvas. */
html:not([data-theme="dark"]){--muted:#465469}
html:not([data-theme="dark"]) .eyebrow{color:#465469}
html:not([data-theme="dark"]) kbd,
html:not([data-theme="dark"]) .metric-card small,
html:not([data-theme="dark"]) .data-table th,
html:not([data-theme="dark"]) .identity-contacts div span,
html:not([data-theme="dark"]) .info-grid div span,
html:not([data-theme="dark"]) .assignment>span,
html:not([data-theme="dark"]) .filter-bar span,
html:not([data-theme="dark"]) .form-grid label>span,
html:not([data-theme="dark"]) .stacked-form label>span,
html:not([data-theme="dark"]) .stacked-form p label,
html:not([data-theme="dark"]) .scanner-bar label>span,
html:not([data-theme="dark"]) .account-menu-popover small{color:#536176}
