:root{--blue:#1d8fd1;--blue-dark:#14618f;--blue-soft:#e7f3fb;--blue-line:#bdddf2;--graphite:#171a20;--graphite-2:#23272f;--graphite-3:#2c313b;--graphite-line:#333944;--graphite-ink:#9aa3b0;--graphite-ink-2:#6c7480;--ink:#1b1e23;--ink-2:#5b626b;--ink-3:#8a9099;--paper:#f4f6f9;--card:#fff;--line:#e3e7ec;--line-2:#eef1f5;--amber:#c47d10;--r:12px;--r-sm:9px;--sans:"Inter", system-ui, sans-serif;--disp:"Space Grotesk", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:14.5px;line-height:1.5}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select{font-family:inherit}.mono{font-family:var(--disp);font-variant-numeric:tabular-nums}.boot{height:100vh;color:var(--ink-3);font-family:var(--disp);letter-spacing:.04em;place-items:center;display:grid}.egc{background:var(--blue);color:#fff;font-family:var(--disp);letter-spacing:.02em;border-radius:9px;flex-shrink:0;place-items:center;font-weight:700;display:grid}.login{background:radial-gradient(120% 120% at 50% 0,#1d8fd1 0%,#14618f 42%,#0e2a3d 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--card);border-radius:16px;width:100%;max-width:392px;padding:34px 32px 30px;box-shadow:0 24px 60px #081e3052}.login-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.login-brand .egc{width:46px;height:46px;font-size:15px}.login-brand .wm{font-family:var(--disp);letter-spacing:-.01em;font-size:20px;font-weight:600}.login-brand .wm small{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:11.5px;font-weight:400;display:block}.login h1{font-family:var(--disp);margin:0 0 4px;font-size:19px;font-weight:600}.login .sub{color:var(--ink-2);margin:0 0 22px;font-size:13.5px}.field{margin-bottom:14px}.field label{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:11px;display:block}.field input{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);width:100%;padding:11px 13px;font-size:14.5px}.field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.btn-primary{background:var(--blue);color:#fff;width:100%;font-family:var(--disp);border-radius:var(--r-sm);margin-top:6px;padding:12px;font-size:14.5px;font-weight:600}.btn-primary:hover{background:var(--blue-dark)}.btn-primary:disabled{opacity:.6;cursor:default}.login-err{color:#8f2e1f;border-radius:var(--r-sm);background:#f8e7e3;border:1px solid #e6bcb2;margin-bottom:14px;padding:9px 12px;font-size:13px}.login-note{background:var(--blue-soft);border:1px solid var(--blue-line);color:var(--blue-dark);border-radius:var(--r-sm);margin-bottom:14px;padding:9px 12px;font-size:13px}.login-foot{color:var(--ink-3);text-align:center;margin-top:18px;font-size:12.5px}.login-link{font-family:var(--disp);color:var(--blue-dark);padding:0;font-size:12.5px;font-weight:500}.login-link:hover{text-decoration:underline}.app{min-height:100vh;display:flex}.sidebar{background:var(--graphite);width:230px;color:var(--graphite-ink);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--graphite-line);align-items:center;gap:11px;padding:18px 18px 16px;display:flex}.sidebar-brand .egc{width:38px;height:38px;font-size:12.5px}.sidebar-brand .wm{color:#fff;font-family:var(--disp);font-size:16px;font-weight:600;line-height:1.1}.sidebar-brand .wm small{letter-spacing:.14em;text-transform:uppercase;color:var(--graphite-ink-2);font-size:10px;font-weight:400;display:block}.snav{flex-direction:column;flex:1;gap:2px;padding:12px 12px 16px;display:flex;overflow-y:auto}.snav-item{border-radius:var(--r-sm);color:var(--graphite-ink);text-align:left;cursor:default;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14px;display:flex}.snav-item svg{stroke:currentColor;fill:none;stroke-width:1.7px;flex-shrink:0;width:19px;height:19px}.snav-item:hover{background:var(--graphite-2);color:#e7ebf0}.snav-item.active{background:var(--blue);color:#fff}.snav-item .soon{font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--graphite-ink-2);margin-left:auto;font-size:9px}.sidebar-user{border-top:1px solid var(--graphite-line);align-items:center;gap:11px;padding:14px 16px;display:flex}.sidebar-user .avatar{background:var(--graphite-3);border:1px solid var(--graphite-line);color:#e7ebf0;width:36px;height:36px;font-family:var(--disp);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid}.sidebar-user .who{flex:1;min-width:0}.sidebar-user .who .nm{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.sidebar-user .who .rl{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--blue);font-size:10px}.sidebar-user .signout{color:var(--graphite-ink);border-radius:7px;place-items:center;padding:6px;display:grid}.sidebar-user .signout svg{stroke:currentColor;fill:none;stroke-width:1.7px;width:17px;height:17px}.sidebar-user .signout:hover{background:var(--graphite-2);color:#fff}.workspace{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--card);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:18px;padding:12px 22px;display:flex;position:sticky;top:0}.topbar-brand{flex-shrink:0;align-items:center;gap:10px;display:flex}.topbar-brand .egc{width:34px;height:34px;font-size:11.5px}.topbar-brand .wm{font-family:var(--disp);letter-spacing:-.01em;font-size:17px;font-weight:600}.topsearch{flex:1;max-width:560px;position:relative}.topsearch svg{width:17px;height:17px;stroke:var(--ink-3);fill:none;stroke-width:1.8px;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.topsearch input{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);width:100%;padding:10px 14px 10px 40px;font-size:14px}.topsearch input:focus{border-color:var(--blue);background:var(--card);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.search-dd{background:var(--card);border:1px solid var(--line);border-radius:var(--r);z-index:60;max-height:64vh;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden auto;box-shadow:0 14px 36px #141e3029}.search-empty{color:var(--ink-3);padding:14px 16px;font-size:13.5px}.search-item{text-align:left;border-bottom:1px solid var(--line-2);cursor:pointer;background:var(--card);align-items:center;gap:12px;width:100%;padding:10px 14px;display:flex}.search-item:hover{background:var(--paper)}.jobident{flex-direction:column;gap:1px;min-width:0;display:inline-flex}.jobident-primary{color:var(--blue-dark);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.jobident-secondary{color:var(--ink-3);white-space:nowrap;font-weight:500}.jobident-menu{flex-shrink:0;width:124px}.jobident-menu .jobident-primary,.jobident-cell .jobident-primary{font-size:13px}.jobident-menu .jobident-secondary,.jobident-cell .jobident-secondary{font-size:10.5px}.jobident-header .jobident-primary{letter-spacing:-.01em;font-size:26px;line-height:1.1}.jobident-header .jobident-secondary{font-size:12px}.search-item .si-main{flex-direction:column;flex:1;min-width:0;display:flex}.search-item .si-addr{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;overflow:hidden}.search-item .si-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.search-item .badge{flex-shrink:0}.search-all{text-align:center;width:100%;font-family:var(--disp);color:var(--blue-dark);background:var(--paper);cursor:pointer;padding:11px 14px;font-size:12.5px;font-weight:500;display:block}.search-all:hover{background:var(--blue-soft)}.tbtn{font-family:var(--disp);border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink);background:var(--card);cursor:default;align-items:center;gap:7px;padding:9px 13px;font-size:13px;font-weight:500;display:inline-flex}.tbtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.tbtn:hover{border-color:var(--ink-3)}.tbtn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.tbtn.primary:hover{background:var(--blue-dark)}.content{padding:22px 22px 56px;overflow-y:auto}.page-head{margin-bottom:18px}.page-head.row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head h2{font-family:var(--disp);margin:0;font-size:20px;font-weight:600}.page-head p{color:var(--ink-2);margin:2px 0 0;font-size:13.5px}.aged-pill{border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:11px;padding:9px 15px 9px 13px;display:inline-flex}.aged-pill:hover{border-color:var(--ink-3)}.aged-pill.on{color:var(--amber);background:#fbf0d8;border-color:#eed29a}.aged-pill svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:18px;height:18px}.aged-pill .aged-n{font-family:var(--disp);font-size:20px;font-weight:600;line-height:1}.aged-pill .aged-text{font-family:var(--disp);letter-spacing:.02em;text-align:left;flex-direction:column;font-size:12.5px;font-weight:600;line-height:1.2;display:flex}.aged-pill .aged-text small{font-family:var(--sans);letter-spacing:0;color:var(--ink-3);font-size:10.5px;font-weight:400}.aged-pill.on .aged-text small{color:#9a6406}.head-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.bell{border:1px solid var(--line);background:var(--card);width:42px;height:42px;color:var(--ink-2);cursor:pointer;border-radius:999px;flex-shrink:0;place-items:center;display:inline-grid;position:relative}.bell:hover{border-color:var(--ink-3)}.bell.on{background:var(--graphite);border-color:var(--graphite);color:#fff}.bell svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:19px;height:19px}.bell-badge{color:#fff;text-align:center;border:2px solid var(--paper);background:#dc2626;border-radius:999px;min-width:19px;height:19px;padding:0 5px;font-size:11.5px;font-weight:600;line-height:19px;position:absolute;top:-4px;right:-4px}.sheet-overlay{z-index:60;background:#171a206b;animation:.18s sheet-fade;position:fixed;inset:0}.sheet{background:var(--paper);z-index:61;flex-direction:column;width:420px;max-width:92vw;height:100vh;animation:.22s sheet-slide;display:flex;position:fixed;top:0;right:0;box-shadow:-8px 0 28px #0000002e}@keyframes sheet-fade{0%{opacity:0}}@keyframes sheet-slide{0%{transform:translate(100%)}}.sheet-head{background:var(--graphite);color:#fff;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;display:flex}.sheet-head h3{font-family:var(--disp);margin:0;font-size:17px;font-weight:600}.sheet-head p{color:var(--graphite-ink);margin:3px 0 0;font-size:12.5px}.sheet-close{color:var(--graphite-ink);border-radius:var(--r-sm);place-items:center;width:30px;height:30px;display:grid}.sheet-close:hover{color:#fff;background:var(--graphite-2)}.sheet-close svg{stroke:currentColor;fill:none;stroke-width:1.9px;width:18px;height:18px}.sheet-body{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex;overflow-y:auto}.sheet-err{color:#8f2e1f;border-radius:var(--r-sm);background:#f8e7e3;border:1px solid #e6bcb2;margin:0;padding:9px 12px;font-size:13px}.cgroup{flex-direction:column;gap:8px;display:flex}.cgroup-head{text-align:left;align-items:baseline;gap:9px;width:100%;padding:2px 2px 4px;display:flex}.cgroup-head:hover .cgroup-addr{color:var(--blue-dark)}.cgroup-addr{font-family:var(--disp);color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.ccard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:13px 14px}.ccard-msg{color:var(--ink);white-space:pre-wrap;margin:0 0 11px;font-size:13.5px;line-height:1.5}.ccard-actions{flex-wrap:wrap;gap:8px;display:flex}.cbtn{font-family:var(--disp);border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink);background:var(--card);align-items:center;gap:6px;padding:7px 11px;font-size:12.5px;font-weight:500;display:inline-flex}.cbtn:hover{border-color:var(--ink-3)}.cbtn:disabled{opacity:.55;cursor:default}.cbtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:14px;height:14px}.cbtn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.cbtn.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark)}.cbtn.ghost{color:var(--ink-3);border-color:#0000}.cbtn.ghost:hover{color:var(--ink);border-color:var(--line)}.tiles{grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:20px;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);text-align:left;cursor:pointer;flex-direction:column;gap:10px;width:100%;padding:14px 15px;transition:border-color .1s,box-shadow .1s,transform 40ms;display:flex}.tile:hover{border-color:var(--blue-line);box-shadow:0 4px 14px #14618f14}.tile:active{transform:translateY(1px)}.tile-top{align-items:center;gap:11px;display:flex}.tile-ico{border-radius:9px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.tile-ico svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:18px;height:18px}.tile-n{font-family:var(--disp);letter-spacing:-.02em;font-size:27px;font-weight:600;line-height:1}.tile-l{color:var(--ink-2);font-size:13px;font-weight:500}.tile-link{font-family:var(--disp);letter-spacing:.02em;color:var(--blue-dark);cursor:default;align-items:center;gap:4px;font-size:11.5px;font-weight:500;display:inline-flex}.tile-link svg{stroke:currentColor;fill:none;stroke-width:2px;width:13px;height:13px}.dash-grid{grid-template-columns:minmax(0,1fr) 304px;align-items:start;gap:18px;display:grid}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.panel-head{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding:15px 18px;display:flex}.panel-head h3{font-family:var(--disp);margin:0;font-size:15px;font-weight:600}.panel-filters{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.fsel{position:relative}.fsel select{appearance:none;font-family:var(--disp);color:var(--ink-2);border:1px solid var(--line);background:var(--card);cursor:not-allowed;border-radius:999px;padding:7px 26px 7px 11px;font-size:12px;font-weight:500}.fsel svg{width:13px;height:13px;stroke:var(--ink-3);fill:none;stroke-width:2px;pointer-events:none;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.table-wrap{overflow-x:auto}table.jobs{border-collapse:collapse;width:100%;font-size:13px}table.jobs th{text-align:left;font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--paper);padding:10px 14px;font-size:10.5px;font-weight:600}table.jobs td{border-bottom:1px solid var(--line-2);white-space:nowrap;color:var(--ink);padding:12px 14px}table.jobs tr:last-child td{border-bottom:none}table.jobs tr:hover td{background:#fafbfc}.jno{font-family:var(--disp);color:var(--blue-dark);font-weight:600}.muted{color:var(--ink-3)}.addr{text-overflow:ellipsis;max-width:230px;overflow:hidden}.badge{font-family:var(--disp);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.action-need{color:var(--ink-2);font-size:12.5px}.action-need.attn{color:var(--amber);font-weight:500}.pager{border-top:1px solid var(--line-2);color:var(--ink-3);align-items:center;gap:12px;padding:12px 18px;font-size:12.5px;display:flex}.pager .spacer{flex:1}.pgbtn{font-family:var(--disp);border:1px solid var(--line);color:var(--ink-2);background:var(--card);cursor:not-allowed;border-radius:7px;padding:6px 12px;font-size:12px;font-weight:500}.pgbtn:disabled{opacity:.55}.ai .panel-head .egc-ai{color:#fff;background:linear-gradient(135deg,#1d8fd1,#6f4ef0);border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.ai .panel-head .egc-ai svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:16px;height:16px}.ai-body{padding:16px 18px 18px}.ai-greet{color:var(--ink-2);margin:0 0 14px;font-size:13.5px;line-height:1.55}.ai-sugg{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 9px;font-size:10.5px;font-weight:600}.ai-chip{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);cursor:default;margin-bottom:8px;padding:11px 13px;font-size:13px;display:block}.ai-input{border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink-3);background:var(--card);align-items:center;gap:8px;margin-top:6px;padding:9px 11px;font-size:13px;display:flex}.ai-input svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:16px;height:16px;margin-left:auto}.ai-note{color:var(--ink-3);text-align:center;margin:12px 0 0;font-size:11.5px}.snav-item.live{cursor:pointer}.snav-item:disabled{cursor:default}table.jobs tr.clickable{cursor:pointer}.filterbar{flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:16px;display:flex}.filtergroup{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-label{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}.chipbtn{font-family:var(--disp);border:1px solid var(--line);color:var(--ink-2);background:var(--card);border-radius:999px;padding:7px 13px;font-size:12px;font-weight:500}.chipbtn:hover{border-color:var(--ink-3)}.chipbtn.on{background:var(--graphite);color:#fff;border-color:var(--graphite)}.statussel-wrap{align-items:center;display:inline-flex;position:relative}.statussel{appearance:none;font-family:var(--disp);color:var(--ink);border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;padding:8px 30px 8px 13px;font-size:12px;font-weight:500}.statussel:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.statussel-wrap svg{width:13px;height:13px;stroke:var(--ink-3);fill:none;stroke-width:2px;pointer-events:none;position:absolute;right:11px}.result-count{color:var(--ink-3);margin-left:auto;font-size:12.5px}.detail{max-width:940px}.backlink{font-family:var(--disp);color:var(--ink-2);align-items:center;gap:7px;margin-bottom:16px;font-size:12.5px;font-weight:500;display:inline-flex}.backlink:hover{color:var(--blue-dark)}.backlink .flip{display:inline-flex;transform:scaleX(-1)}.backlink svg{stroke:currentColor;fill:none;stroke-width:2px;width:15px;height:15px}.detail-head{margin-bottom:4px}.detail-title{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.detail-title h1{font-family:var(--disp);letter-spacing:-.01em;color:var(--blue-dark);margin:0;font-size:26px;font-weight:600}.detail-sub{color:var(--ink-2);margin:6px 0 0;font-size:14px}.detail-sub.muted{color:var(--ink-3);margin-top:2px;font-size:12.5px}.actionbar{flex-wrap:wrap;align-items:center;gap:9px;margin:16px 0 0;padding:0;display:flex}.abtn{font-family:var(--disp);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--card);color:var(--ink-2);align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.abtn:disabled{opacity:.55;cursor:not-allowed}.abtn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.abtn.primary:disabled{opacity:.5}.abtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.groups{grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;display:grid}.group{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.group.span{grid-column:1/-1}.group h3{font-family:var(--disp);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-size:11px;font-weight:600}.drow{border-bottom:1px solid var(--line-2);justify-content:space-between;gap:16px;padding:8px 0;font-size:14px;display:flex}.drow:last-child{border-bottom:none}.drow .k{color:var(--ink-3);font-size:12.5px;font-family:var(--disp);letter-spacing:.02em;flex-shrink:0}.drow .v{color:var(--ink);text-align:right;font-weight:500}.drow .v.empty{color:var(--ink-3);font-style:italic;font-weight:400}.scopebox{color:var(--ink);font-size:14.5px;line-height:1.6}.scopebox .empty{color:var(--ink-3);font-style:italic}.doclist{flex-direction:column;gap:8px;display:flex}.docitem{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.docitem svg{width:17px;height:17px;stroke:var(--blue-dark);fill:none;stroke-width:1.7px;flex-shrink:0}.photo-grid{flex-wrap:wrap;gap:10px;display:flex}.photo-thumb{border-radius:var(--r-sm);border:1px solid var(--blue-line);background:var(--blue-soft);width:96px;height:96px;position:relative;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb-loading{background:var(--blue-soft);width:100%;height:100%}.photo-del{color:#fff;opacity:0;cursor:pointer;background:#1118279e;border:none;border-radius:6px;place-items:center;width:24px;height:24px;transition:opacity .12s;display:grid;position:absolute;top:4px;right:4px}.photo-thumb:hover .photo-del,.photo-del:focus-visible{opacity:1}.photo-del svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:14px;height:14px}.photo-uploads{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.photo-upload{color:var(--ink-3);justify-content:space-between;gap:12px;font-size:12.5px;display:flex}.photo-upload .fn{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.photo-upload.done .st{color:#0b7d72}.photo-upload.error .st{color:#dc2626}.photo-error{color:#dc2626;margin:8px 0 0;font-size:13px}.photo-upload-btn{border-radius:var(--r-sm);border:1px solid var(--blue-line);background:var(--blue-soft);color:var(--blue-dark);font-family:var(--disp);cursor:pointer;align-items:center;gap:6px;width:fit-content;margin-top:12px;padding:7px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.photo-upload-btn.disabled{opacity:.55;cursor:default}.photo-upload-btn input{display:none}.photo-upload-btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.photos-prominent{border:1px solid var(--blue-line);border-radius:var(--r-sm);background:var(--blue-soft);margin-top:16px;padding:16px}.photos-prominent h3{margin-top:0}.none-yet{color:var(--ink-3);margin:0;font-size:13.5px;font-style:italic}.detail-danger{border-top:1px solid var(--line-2);flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px;padding-top:16px;display:flex}.btn-danger-text{font-family:var(--disp);color:#b3402f;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:8px 12px;font-size:13px;font-weight:500;display:inline-flex}.btn-danger-text:hover{background:#f8e7e3;border-color:#e6bcb2}.btn-danger-text:disabled{opacity:.5;cursor:default}.btn-danger-text svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.detail-danger-note{color:var(--ink-3);font-size:12px}.field-hint{color:var(--ink-3);margin:8px 0 0;font-size:12px}.assign-editor{flex-direction:column;gap:10px;display:flex}.assign-types{flex-wrap:wrap;gap:6px;display:flex}.assign-input{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);width:100%;padding:9px 12px;font-size:14px}.assign-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.assign-actions{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.assignee-chips{flex-wrap:wrap;gap:6px;margin:4px 0 10px;display:flex}.assignee-chip{font:500 12px/1 var(--sans);border-radius:var(--r-sm);background:var(--blue-soft);color:var(--blue-dark);padding:5px 9px}.worker-select{flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.sched-editor{flex-direction:column;gap:8px;display:flex}.sched-label{font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:4px;font-size:10.5px;font-weight:600}.sched-notice{color:#9a6406;border-radius:var(--r-sm);background:#fbf0d8;border:1px solid #eed29a;align-items:center;gap:9px;padding:9px 12px;font-size:13px;line-height:1.45;display:flex}.sched-notice svg{stroke:currentColor;fill:none;stroke-width:1.8px;flex-shrink:0;width:16px;height:16px}.sched-notice b{font-weight:600}.abtn.act{color:var(--blue-dark);border-color:var(--blue-line);background:var(--card)}.abtn.act:hover{background:var(--blue-soft)}.assign-tag{font-family:var(--disp);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);vertical-align:1px;border-radius:999px;margin-left:7px;padding:1px 6px;font-size:9.5px;font-weight:500}.newcrew{gap:10px;max-width:520px;margin-bottom:20px;display:flex}.newcrew input{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);flex:1;padding:10px 13px;font-size:14px}.newcrew input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.newcrew .tbtn{white-space:nowrap;cursor:pointer}.newcrew .tbtn:disabled{opacity:.5;cursor:default}.crew-list{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px;display:grid}.crew-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 18px}.crew-head{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding-bottom:14px;display:flex}.crew-name{font-family:var(--disp);margin:0;font-size:16px;font-weight:600}.crew-jobs{font-family:var(--disp);letter-spacing:.02em;background:var(--paper);border:1px solid var(--line);color:var(--ink-3);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:500}.crew-jobs.on{background:var(--blue-soft);border-color:var(--blue-line);color:var(--blue-dark)}.crew-actions{gap:4px;margin-left:auto;display:flex}.iconbtn{width:32px;height:32px;color:var(--ink-3);cursor:pointer;border-radius:8px;place-items:center;display:grid}.iconbtn svg{stroke:currentColor;fill:none;stroke-width:1.7px;width:16px;height:16px}.iconbtn:hover{background:var(--paper);color:var(--ink)}.iconbtn.danger:hover{color:#b3402f;background:#f8e7e3}.iconbtn:disabled{opacity:.5;cursor:default}.crew-rename{flex:1;align-items:center;gap:8px;display:flex}.crew-rename input{border:1px solid var(--line);border-radius:var(--r-sm);font-size:14px;font-family:var(--disp);flex:1;padding:7px 11px;font-weight:600}.crew-rename input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.member-area{padding:14px 0}.member-label{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:9px;font-size:10.5px;font-weight:600}.member-chips{flex-wrap:wrap;gap:8px;display:flex}.member-chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;align-items:center;gap:8px;padding:5px 6px;font-size:13px;display:inline-flex}.member-chip .m-avatar{background:var(--graphite);color:#fff;width:24px;height:24px;font-family:var(--disp);border-radius:50%;flex-shrink:0;place-items:center;font-size:10px;font-weight:600;display:grid}.member-chip .m-name{color:var(--ink);font-weight:500}.member-chip .m-tag{font-family:var(--disp);letter-spacing:.04em;text-transform:uppercase;color:var(--amber);background:#fbf0d8;border:1px solid #eed29a;border-radius:999px;padding:1px 6px;font-size:9px}.member-chip .m-remove{width:20px;height:20px;color:var(--ink-3);cursor:pointer;border-radius:50%;place-items:center;display:grid}.member-chip .m-remove svg{stroke:currentColor;fill:none;stroke-width:2px;width:13px;height:13px}.member-chip .m-remove:hover{color:#b3402f;background:#f8e7e3}.member-chip .m-remove:disabled{opacity:.5;cursor:default}.add-row{border-top:1px solid var(--line-2);flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;display:flex}.add-row .statussel{cursor:pointer}.add-row .statussel:disabled{cursor:default;color:var(--ink-3)}.chipbtn .icon,.chipbtn svg{stroke:currentColor;fill:none;stroke-width:2px;vertical-align:-1px;width:13px;height:13px;margin-right:3px}.newtech{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);flex-wrap:wrap;gap:8px;margin-top:10px;padding:12px;display:flex}.newtech input{border:1px solid var(--line);background:var(--card);border-radius:7px;padding:8px 11px;font-size:13.5px}.newtech input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.newtech input[type=text]{flex:1;min-width:140px}.newtech input[type=email]{flex:1;min-width:160px}.tech-roster{margin-top:18px}.roster{flex-direction:column;display:flex}.roster-row{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding:11px 18px;display:flex}.roster-row:last-child{border-bottom:none}.roster-info{flex:1;min-width:0}.roster-name{color:var(--ink);align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.roster-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;overflow:hidden}@media (width<=1080px){.tiles{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}}@media (width<=760px){.groups{grid-template-columns:1fr}}.ai-panel h3{align-items:center;gap:7px;display:inline-flex}.ai-panel h3 svg{width:14px;height:14px;stroke:var(--blue-dark);fill:none;stroke-width:1.8px}.ai-label{font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px;font-size:10.5px;font-weight:600;display:block}.ai-textarea{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;font-family:var(--sans);color:var(--ink);background:var(--card);resize:vertical;padding:10px 12px;font-size:14px;line-height:1.55}.ai-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.ai-textarea:disabled{opacity:.6;background:var(--paper)}.ai-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.ai-genbtn{font-family:var(--disp);border-radius:var(--r-sm);border:1px solid var(--blue);background:var(--blue);color:#fff;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:500;display:inline-flex}.ai-genbtn:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}.ai-genbtn:disabled{opacity:.55;cursor:not-allowed}.ai-genbtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.ai-spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite ai-spin}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-hint{color:var(--ink-3);font-size:12px}.ai-err{margin:12px 0 0}.ai-fields{border-top:1px solid var(--line-2);flex-direction:column;gap:16px;margin-top:16px;padding-top:16px;display:flex}.ai-field{flex-direction:column;display:flex}.ai-item{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);flex-direction:column;gap:12px;padding:14px;display:flex}.ai-item-heading{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;font-family:var(--disp);color:var(--ink);background:var(--card);padding:8px 12px;font-size:15px;font-weight:600}.ai-item-heading:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.ai-price-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ai-price-input{align-items:center;display:inline-flex;position:relative}.ai-price-prefix{font-family:var(--disp);color:var(--ink-2);pointer-events:none;font-size:14px;font-weight:600;position:absolute;left:12px}.ai-price-input input{border:1px solid var(--line);border-radius:var(--r-sm);width:150px;font-family:var(--disp);color:var(--ink);background:var(--card);padding:9px 12px 9px 24px;font-size:15px;font-weight:600}.ai-price-input input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}.ai-note{margin-top:8px}.ai-copy-estimate{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ai-copy-estimate svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:15px;height:15px}.ai-photo{border-radius:var(--r-sm);background:#fbf0d8;border:1px solid #eed29a;margin-top:16px;padding:14px 16px}.ai-photo-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.ai-photo-title{font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;color:#9a6406;align-items:center;gap:7px;font-size:11px;font-weight:600;display:inline-flex}.ai-photo-title svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:14px;height:14px}.ai-photo-body{color:#6b4a08;margin:0;font-size:14px;line-height:1.55}.crew{background:var(--paper);min-height:100vh}.crew-top{border-bottom:1px solid var(--blue-line);background:var(--card);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.crew-who{align-items:center;gap:12px;display:flex}.crew-name{font:500 14px/1 var(--sans);color:var(--ink-2)}.crew-signout{font:500 14px/1 var(--sans);color:var(--blue-dark);background:var(--blue-soft);border-radius:var(--r-sm);cursor:pointer;border:none;padding:10px 14px}.crew-main{max-width:640px;margin:0 auto;padding:18px 16px 48px}.crew-h1{font:600 24px/1.15 var(--disp);color:var(--ink);margin:6px 0 16px}.crew-msg{font:400 15px/1.5 var(--sans);color:var(--ink-3);padding:24px 4px}.crew-cards{flex-direction:column;gap:14px;display:flex}.crew-card{text-align:left;border:1px solid var(--blue-line);background:var(--card);cursor:pointer;border-radius:14px;flex-direction:column;gap:6px;width:100%;padding:18px;display:flex}.crew-card:active{background:var(--blue-soft)}.crew-card-addr{font:600 18px/1.25 var(--disp);color:var(--ink)}.crew-card-instr{font:400 14px/1.4 var(--sans);color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.crew-card-pending{font:italic 400 13px/1.4 var(--sans);color:var(--ink-3)}.crew-card-time{font:500 13px/1 var(--sans);color:var(--ink-3)}.crew-back{font:500 14px/1 var(--sans);color:var(--blue-dark);cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:6px 0}.crew-occ,.crew-card-occ{width:fit-content;font:600 12px/1 var(--sans);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:5px 10px;display:inline-block}.crew-occ.occupied,.crew-card-occ.occupied{background:var(--blue-soft);color:var(--blue-dark)}.crew-occ.vacant,.crew-card-occ.vacant{color:var(--ink-2);border:1px solid var(--blue-line);background:0 0}.crew-occ.unknown,.crew-card-occ.unknown{color:var(--ink-3);border:1px dashed var(--ink-3);text-transform:none;letter-spacing:0;background:0 0}.crew-detail .crew-occ{margin:0 0 16px}.occ-toggle{flex-wrap:wrap;gap:8px;margin:8px 0 4px;display:flex}.occ-val.vacant{color:var(--blue-dark)}.occ-val.unknown{color:var(--ink-3);font-style:italic}.crew-instr{margin:0 0 24px}.crew-instr h2{font:600 15px/1 var(--disp);color:var(--ink-2);margin:0 0 8px}.crew-instr p{font:400 17px/1.55 var(--sans);color:var(--ink);white-space:pre-wrap}.crew-photos h3{font:600 15px/1 var(--disp);color:var(--ink-2);margin:0 0 8px}.crew-photos .photo-upload-btn{padding:14px;font-size:16px}.ci-field{margin-bottom:10px}.modal-backdrop{z-index:100;background:#0f172a73;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--card);border:1px solid var(--line);border-radius:var(--r);outline:none;width:100%;max-width:520px;box-shadow:0 12px 40px #0f172a2e}.modal-wide{max-width:760px}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{font:600 17px/1 var(--disp);color:var(--ink);margin:0}.modal-close{border-radius:var(--r-sm);color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:6px;display:inline-flex}.modal-close:hover{background:var(--paper);color:var(--ink)}.modal-close svg{stroke:currentColor;fill:none;stroke-width:2px;width:18px;height:18px}.modal-body{padding:18px 20px 22px}.modal-body .ai-panel{background:0 0;border:none;border-radius:0;padding:0}.modal-check{color:var(--ink);align-items:center;gap:9px;margin:14px 0;font-size:14px;display:flex}.modal-check input{flex-shrink:0;width:16px;height:16px}.dispatch-block{border-top:1px solid var(--line-2);padding:12px 0}.dispatch-block .k{color:var(--ink-3);font:12.5px var(--disp);letter-spacing:.02em;margin-bottom:6px;display:block}.dispatch-instr{color:var(--ink);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.5}.detail-banner{border-radius:var(--r-sm);background:var(--blue-soft);color:var(--blue-dark);border:1px solid var(--blue-line);align-items:center;gap:10px;margin:14px 0 0;padding:12px 16px;font-size:14px;display:flex}.detail-banner svg{stroke:currentColor;fill:none;stroke-width:1.8px;flex-shrink:0;width:18px;height:18px}.detail-banner.attn{color:#b42318;background:#fde7e7;border-color:#f6c9c4}.ci-readonly{color:var(--ink);white-space:pre-wrap;margin:4px 0 0;font-size:14px;line-height:1.5}.due-overdue{color:#dc2626;align-items:center;gap:7px;font-weight:600;display:inline-flex}.late-badge{font:600 10.5px/1 var(--sans);letter-spacing:.02em;color:#dc2626;white-space:nowrap;background:#fde7e7;border-radius:999px;padding:3px 6px}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-nav{align-items:center;gap:8px;display:flex}.cal-nav .flip{display:inline-flex;transform:scaleX(-1)}.cal-nav svg{stroke:currentColor;fill:none;stroke-width:2px;width:14px;height:14px}.cal-range{font:500 14px/1 var(--sans);color:var(--ink-2)}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;gap:8px;display:grid}.cal-col{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);min-height:120px;overflow:hidden}.cal-col.today{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset}.cal-colhead{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:baseline;padding:8px 10px;display:flex}.cal-dow{font:600 10.5px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.cal-dom{font:600 15px/1 var(--disp);color:var(--ink)}.cal-col.today .cal-dom{color:var(--blue-dark)}.cal-daybody{flex-direction:column;gap:6px;padding:8px;display:flex}.cal-empty{color:var(--ink-3);padding:6px 2px;font-size:14px}.cal-card{text-align:left;border:1px solid var(--line);background:var(--paper);cursor:pointer;border-left-width:3px;border-radius:8px;flex-direction:column;gap:3px;width:100%;padding:8px 9px 8px 10px;display:flex}.cal-card:hover{background:var(--blue-soft)}.cal-card.confirmed{border-left-color:#1faf54}.cal-card.unconfirmed{border-left-color:#c47d10}.cal-card-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.cal-time{font:600 11.5px/1 var(--sans);color:var(--ink-2)}.cal-conf{display:inline-flex}.cal-conf svg{fill:none;stroke-width:2px;width:14px;height:14px}.cal-conf.yes svg{stroke:#1faf54}.cal-conf.no svg{stroke:#c47d10}.cal-addr{font:400 12px/1.3 var(--sans);color:var(--ink);overflow-wrap:anywhere}.cal-meta{font:400 11px/1.3 var(--sans);color:var(--ink-3);overflow-wrap:anywhere}.qb-notice{margin:12px 16px 0}.qb-notice-x{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:0;align-items:center;margin-left:auto;padding:2px;display:inline-flex}.qb-notice-x:hover{opacity:1}
