:root{--teal: #146f68;--teal-dark: #0d5750;--lime: #8dc63f;--yellow: #f3e35b;--orange: #f7941d;--ink: #1f2a2e;--muted: #6b7a80;--line: #e2e8ea;--bg: #f6f8f8}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--teal);text-decoration:none}h1{font-size:22px;margin:0 0 16px}h2{font-size:16px;margin:20px 0 8px}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}input,select,textarea,button{font:inherit}input,select,textarea{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff}button{padding:8px 14px;border-radius:6px;border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer}button.secondary{background:#fff;color:var(--teal)}button.warn{background:var(--orange);border-color:var(--orange)}button:disabled{opacity:.5;cursor:default}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase}.muted{color:var(--muted);font-size:13px}.err{color:#b42318;font-size:13px}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#e7f2f1;color:var(--teal)}.pill.dispatched{background:#fff3e4;color:#b35a00}.pill.in_progress{background:#e8f0ff;color:#1d4ed8}.pill.completed{background:#e6f6ea;color:#137333}.pill.hold,.pill.canceled{background:#f3f4f6;color:#6b7280}.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.lane{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;min-height:160px}.lane h3{margin:0 0 8px;font-size:14px}.appt{border-left:4px solid var(--teal);background:var(--bg);padding:8px;border-radius:6px;margin-bottom:8px;font-size:13px}.appt.urgent{border-left-color:#b42318}.appt .t{font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:760px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.form-grid .full{grid-column:1 / -1}.timeline li{font-size:13px;margin-bottom:4px}.st{min-height:100vh;display:flex;flex-direction:column}.st-top{height:56px;background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:220px 1fr auto;align-items:center;padding:0 16px 0 0;position:sticky;top:0;z-index:20}.st-logo{display:flex;align-items:center;padding-left:14px}.st-logo img{height:40px;width:auto;display:block}.st-logo-mark{color:var(--orange);font-size:22px}.st-logo-sub{color:var(--teal);font-weight:600;font-size:12px;letter-spacing:.08em}.st-search{position:relative;justify-self:center;width:min(620px,100%);display:flex;align-items:center;gap:4px;background:#fff;border:1px solid #cfd8da;border-radius:10px;padding:4px 10px 4px 12px}.st-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px #1b7f7926}.st-search input{flex:1;border:0;outline:0;padding:7px 0;font-size:15px;background:transparent}.st-search kbd{font:11px/1 Inter,system-ui;border:1px solid #cfd8da;border-radius:5px;padding:3px 6px;color:var(--muted);background:var(--bg)}.st-search>span{color:var(--muted);font-size:12px}.st-search-results{position:absolute;top:44px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #0000001f;overflow:hidden}.st-search-results a{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;color:var(--ink);border-bottom:1px solid var(--line);font-size:14px}.st-search-results a:hover{background:var(--bg)}.st-search-results a span{color:var(--muted);font-size:13px}.st-top-right{display:flex;align-items:center;gap:14px}.st-btn-primary{background:var(--orange);color:#fff;padding:8px 14px;border-radius:8px;font-weight:600;font-size:14px}.st-user{font-size:14px;color:var(--ink);font-weight:600}.st-link{background:none;border:0;color:var(--muted);cursor:pointer;padding:0;font-size:13px}.st-body{display:grid;grid-template-columns:220px 1fr;flex:1}.st-nav{background:#0f3b38;color:#cfd8da;padding:12px 8px;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto}.st-nav-item{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:none;border:0;color:#d6e6e3;font-size:15px;font-weight:500;padding:10px 12px;border-radius:8px;cursor:pointer}.st-nav-item:hover{background:#155550;color:#fff}.st-nav-item.active{background:#174f4a;color:#fff;box-shadow:inset 3px 0 0 var(--lime)}.st-nav-child{padding-left:26px;font-size:14px;font-weight:400}.st-nav-sub{padding:10px 0 2px 26px;font-size:11px;letter-spacing:.08em;color:#8fb3ae}.st-caret{color:#8fb3ae;font-size:12px}.st-main{padding:20px 28px 48px;min-width:0}.st-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.st-toolbar h1{margin:0 16px 0 0}.st-chip{background:#e8f3ef;border:1px solid transparent;color:var(--teal-dark);font-weight:600;font-size:14px;border-radius:999px;padding:7px 14px}.st-grid-2{display:grid;grid-template-columns:1fr 1.6fr;gap:16px;margin-bottom:16px}@media (max-width: 1100px){.st-grid-2{grid-template-columns:1fr}}.st-card-title{margin:0 0 8px;font-size:18px}.st-card-title .muted{font-weight:400;margin-left:8px}.st-gauge{width:100%;max-width:320px;display:block;margin:0 auto}.st-bars{width:100%;height:auto}.st-kpis-inline{display:flex;justify-content:space-around;margin-top:8px}.st-section{font-size:12px;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:8px 0 10px;display:flex;align-items:center;gap:12px}.st-section:after{content:"";flex:1;border-top:1px solid var(--line)}.st-kpi-row{display:flex;flex-wrap:wrap;gap:8px 0;margin-bottom:16px}.st-kpi-row .st-kpi{flex:1 1 150px;border-right:1px solid var(--line)}.st-kpi-row .st-kpi:last-child{border-right:0}.st-kpi{text-align:center;padding:6px 10px}.st-kpi-label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.st-kpi-value{font-size:28px;font-weight:700;margin-top:6px;color:var(--ink)}.st-progress{height:8px;background:#e6ecec;border-radius:999px;margin:12px 20px 4px;overflow:hidden}.st-progress>div{height:100%;background:var(--teal);border-radius:999px}.pb-cat{padding:6px 8px;border-radius:6px;cursor:pointer;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-cat:hover{background:#f1f5f4}.pb-cat.active{background:var(--teal);color:#fff}.pb-caret{display:inline-block;width:16px;color:inherit;opacity:.7}tr.active td{background:#eef6f4}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;display:flex;justify-content:flex-end;z-index:50}.drawer-body{width:520px;max-width:90vw;height:100%;overflow:auto;border-radius:0}.chip{display:inline-block;padding:3px 10px;border-radius:14px;border:1px solid var(--line);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.chip.on{background:var(--teal);color:#fff;border-color:var(--teal)}.dboard{display:flex;flex-direction:column;gap:10px;height:calc(100vh - 110px)}.chipstat{border:1px solid var(--line);border-radius:6px;padding:4px 10px;font-size:13px;background:#fff}.chipstat b{margin-left:4px}.dscroll{overflow:auto;flex:1;background:#fff;border:1px solid var(--line);border-radius:10px}.dgrid{display:grid;gap:4px;align-content:start;padding:6px}.dhead{position:sticky;top:0;background:#f1f5f4;padding:8px;border-radius:6px;text-align:center;font-weight:600;font-size:13px;z-index:2}.dhead.today{background:var(--teal);color:#fff}.dteam{background:#e5e9e8;padding:6px 10px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;margin-top:4px}.dtech{display:flex;gap:8px;align-items:center;padding:6px;font-size:13px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.dcell{min-height:90px;border:1px dashed var(--line);border-radius:6px;padding:4px;background:#fafbfb}.dcell.today{background:#f3faf8}.dcell.over{border-color:var(--teal);background:#e7f2f1}.dcell-h{font-size:11px;color:var(--muted);text-align:center;margin-bottom:4px}.dcard{background:#dff1fb;border:1px solid #9ed2ee;border-radius:6px;padding:6px;font-size:12px;margin-bottom:4px;cursor:grab}.dcard.dispatched{background:#fff3e4;border-color:#f0c28a}.dcard.enroute{background:#fdf2d0;border-color:#e8c35a}.dcard.working{background:#e8f0ff;border-color:#9db6f5}.dcard.done{background:#e6f6ea;border-color:#9fd5ad}.dcard.urgent{border-left:4px solid #b42318}.dcard-t{font-weight:600}.dcard-type{font-weight:600;color:#1d3557}.tag{color:#fff;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600}button.mini{padding:1px 8px;font-size:11px;margin-left:auto}.tray{background:#1f2a2e;color:#fff;border-radius:10px 10px 0 0;max-height:40vh;display:flex;flex-direction:column}.tray.closed{max-height:48px}.tray-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid #334;flex-wrap:wrap}.tray-bar .muted{color:#9fb3b0}.traytab{background:transparent;border:none;color:#cfd8d6;padding:4px 8px;border-radius:6px;font-size:13px}.traytab.on{background:#fff;color:#1f2a2e}.traytab b{margin-left:4px}.tray-body{display:flex;gap:8px;overflow-x:auto;padding:10px 12px}.tray-body .dcard{min-width:220px;max-width:260px;color:#111}.pill.enroute{background:#fdf2d0;color:#8a6d00}.pill.working{background:#e8f0ff;color:#1d4ed8}.pill.done{background:#e6f6ea;color:#137333}.pill.unassigned{background:#fde8e8;color:#b42318}.facts{display:flex;flex-wrap:wrap;gap:18px 28px;padding:10px 0}.fact-l{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.fact-v{font-size:13px}.jobgrid,.cust-grid{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start}.cust-grid{grid-template-columns:200px 1fr 300px}.jobgrid>div>.card,.cust-grid>div>.card,.rail .card{margin-bottom:12px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sec-l{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.warnbox{background:#fff7ed;border:1px solid #fdba74;border-radius:6px;padding:8px;margin-top:8px;font-size:13px}.apptcard{border-left:4px solid var(--teal);background:var(--bg);border-radius:6px;padding:10px;margin-top:10px}.apptcard.done{border-left-color:#137333}.apptcard.dispatched,.apptcard.enroute{border-left-color:#b35a00}.apptcard.working{border-left-color:#1d4ed8}.thumb{width:96px;height:96px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}.thumb.doc{display:inline-flex;align-items:center;justify-content:center;font-size:32px;background:#f3f4f6}.audit{list-style:none;padding:0;margin:0}.audit li{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.avatar.sm{width:28px;height:28px;font-size:11px;background:#6c757d}.traytab.dark{color:var(--muted);border:1px solid var(--line)}.traytab.dark.on{background:var(--teal);color:#fff;border-color:var(--teal)}.statuscard{border-radius:10px;padding:14px;color:#fff;background:#1d4ed8;margin-bottom:12px}.statuscard.completed{background:#137333}.statuscard.scheduled{background:#0f766e}.statuscard.dispatched,.statuscard.in_progress{background:#b35a00}.statuscard.hold{background:#6b7280}.statuscard.canceled{background:#b42318}.statuscard .muted-inv{opacity:.85;font-size:13px}.kv{display:flex;justify-content:space-between;padding:4px 0;font-size:13px;border-bottom:1px solid var(--line)}.cust-head{display:flex;justify-content:space-between;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin-bottom:14px}.cust-nav{padding:6px;position:sticky;top:70px}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tile{border:1px solid var(--line);border-radius:8px;padding:10px}.tile .big{font-size:22px;font-weight:700}button.mini.secondary{margin-left:0}.bookpage .card{margin-bottom:14px}.lbl{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#333}.lbl>input,.lbl>select,.lbl>textarea{width:100%;box-sizing:border-box}.bookgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 24px;margin-top:12px}.cboard{flex:1;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;position:relative}.crow{display:flex;border-bottom:1px solid var(--line);min-height:52px}.crow.unassigned{background:#fffaf3}.crow-l{width:230px;flex:0 0 230px;position:sticky;left:0;z-index:3;background:inherit;display:flex;gap:10px;align-items:center;padding:6px 10px;font-size:13px;border-right:1px solid var(--line);background:#fff}.crow.unassigned .crow-l{background:#fffaf3}.crow-tl{position:relative;flex:0 0 auto;background:#fff}.chead{position:sticky;top:0;z-index:4;background:#f7f9f9;min-height:30px}.chead .crow-l{background:#f7f9f9}.chour{position:absolute;top:0;height:30px;line-height:30px;font-size:12px;font-weight:600;color:var(--muted);padding-left:6px;border-left:1px solid var(--line)}.cgridline{position:absolute;top:0;bottom:0;border-left:1px solid #eef2f2}.coff{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,#eceff0 0,#eceff0 8px,#e4e8e9 8px,#e4e8e9 16px);color:#6b7a80;font-weight:700;font-size:12px;display:flex;align-items:center;padding-left:12px}.cnow{position:absolute;top:0;bottom:0;width:2px;background:#e63946;z-index:2;pointer-events:none}.cteam{display:flex;background:#e9edee;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;cursor:pointer;position:sticky;left:0}.cteam .crow-l{background:#e9edee;border-right:0;width:auto}.avatar.q{background:#f7941d}.ccard{position:absolute;height:40px;box-sizing:border-box;display:flex;align-items:center;gap:4px;padding:0 6px;border-radius:6px;border:1px solid #8ecae6;background:#d7ecf7;font-size:12px;white-space:nowrap;overflow:hidden;cursor:grab;z-index:1}.ccard:hover{z-index:5;box-shadow:0 3px 10px #00000026;overflow:visible}.ccard.unassigned{background:#fde8e8;border-color:#f1a7a7}.ccard.dispatched{border:2px solid #1d6fd1;background:#cfe3fa}.ccard.enroute{background:#fdf2d0;border-color:#e8c35a}.ccard.working{background:#d9f2e3;border-color:#5cb985}.ccard.done{background:#e9ecef;border-color:#b8c0c7;color:#5a6670}.ccard.dim{opacity:.25}.ccard-ic{display:inline-flex;align-items:center;gap:2px;font-size:11px}.ccard-ic .dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;display:inline-block}.ccard-ic .dot.urgent{background:#e63946}.ccard-ic .dot.high{background:#f7941d}.ccard .chip{color:#fff;border-radius:4px;padding:1px 5px;font-size:10.5px;font-weight:700;letter-spacing:.02em}.ccard .chip.jt{background:#6d28d9}.ccard-name{color:#1f2a2e;font-weight:500;overflow:hidden;text-overflow:ellipsis}.ccard .mini{padding:1px 6px;font-size:10px;margin-left:auto}.segs{display:inline-flex;border:1px solid var(--teal);border-radius:6px;overflow:hidden}.segs a{padding:6px 10px;font-size:13px;color:var(--teal);background:#fff}.segs a.active{background:var(--teal);color:#fff}tr.overdue td{background:#fff5f5}.pill.presented{background:#e8f0ff;color:#1d4ed8}.pill.draft{background:#f3f4f6;color:#6b7280}.pill.sold{background:#e6f6ea;color:#137333}.pill.dismissed{background:#f3f4f6;color:#6b7280;text-decoration:line-through}.ok{color:#137333;font-size:13px;background:#e6f6ea;padding:6px 10px;border-radius:6px;margin-bottom:8px}.form-off{opacity:.6}.form-off h2{opacity:1}.mini-link{font-size:11px;padding:2px 8px;border:1px solid var(--teal);border-radius:6px}.bk-split{display:grid;grid-template-columns:300px 1fr;gap:12px;height:calc(100vh - 150px)}.bk-list{overflow:auto;display:flex;flex-direction:column;gap:8px}.bk-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px;cursor:pointer}.bk-card:hover{border-color:#9fb3b0}.bk-card.on{border:2px solid #3b82f6}.bk-card.converted,.bk-card.dismissed{opacity:.7}.bk-detail{overflow:auto}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:40px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px #0000001f;min-width:200px;z-index:30;padding:6px 0;display:flex;flex-direction:column}.menu>*{display:block;text-align:left;background:none;border:0;color:var(--ink);padding:8px 14px;font-size:14px;border-radius:0;cursor:pointer}.menu>*:hover{background:var(--bg)}.menu .danger{color:#b42318;border-top:1px solid var(--line);margin-top:4px}.coff.off{background:#6b7280;color:#fff;z-index:1;opacity:.9}.dcell.off{background:repeating-linear-gradient(135deg,#eceff0 0,#eceff0 8px,#e4e8e9 8px,#e4e8e9 16px)}.shgrid{display:grid;gap:0}.shhead{padding:10px 8px;font-size:12px;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line);text-align:center;position:sticky;top:0;background:#fff}.shhead.today{color:var(--teal)}.shtech{padding:12px 10px;font-size:12px;font-weight:700;color:#5a6a70;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.shcell{padding:6px;border-bottom:1px solid var(--line);border-right:1px solid #f0f3f3;min-height:64px;background:#fafbfb}.shblock{position:relative;background:#fff;border:1px solid var(--line);border-top:3px solid #2bb3a3;border-radius:4px;padding:6px 18px 6px 8px;font-size:12px;margin-bottom:6px}.shx{position:absolute;top:4px;right:4px;background:none;border:0;color:var(--muted);padding:0 2px;font-size:14px;line-height:1;cursor:pointer;opacity:0}.shblock:hover .shx{opacity:1}
