@import url(https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Barlow:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@500&display=swap);:root{--navy:#1b2a4a;--navy-light:#243659;--navy-dark:#111c33;--red:#c0272d;--red-hover:#a01f24;--accent:var(--red);--accent-hover:var(--red-hover);--white:#fff;--grey-light:#f5f5f5;--grey-mid:#e0e0e0;--grey-border:#d0d0d0;--text-dark:#333;--text-mid:#666;--text-light:#999;--green:#2e7d32;--green-light:#e8f5e9;--amber:#e65100;--amber-light:#fff3e0;--blue:#1565c0;--blue-light:#e3f2fd;--sidebar-width:220px;--header-height:56px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{background:#f5f5f5;background:var(--grey-light);color:#333;color:var(--text-dark);font-family:Barlow,sans-serif;font-size:14px;height:100%}.app-loading{align-items:center;background:#1b2a4a;background:var(--navy);display:flex;height:100vh;justify-content:center}.spinner{animation:spin .8s linear infinite;border:3px solid #fff3;border-radius:50%;border-top:3px solid var(--accent);height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#f5f5f5;background:var(--grey-light)}::-webkit-scrollbar-thumb{background:#d0d0d0;background:var(--grey-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#999;background:var(--text-light)}.btn{align-items:center;border:none;cursor:pointer;display:inline-flex;font-family:Barlow,sans-serif;font-size:13px;font-weight:600;gap:6px;letter-spacing:.5px;padding:8px 16px;text-transform:uppercase;transition:background .15s,transform .1s}.btn:active{transform:translateY(1px)}.btn-primary{background:#c0272d;background:var(--accent);color:#fff;color:var(--white)}.btn-primary:hover{background:#a01f24;background:var(--accent-hover)}.btn-secondary{background:#1b2a4a;background:var(--navy);color:#fff;color:var(--white)}.btn-secondary:hover{background:#243659;background:var(--navy-light)}.btn-ghost{background:#fff;background:var(--white);border:1px solid #ababab;color:#333;color:var(--text-dark)}.btn-ghost:hover{background:#f5f5f5;background:var(--grey-light);border-color:#888}.btn-sm{font-size:12px;padding:5px 10px}.btn-icon{padding:7px}.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;padding:3px 8px;text-transform:uppercase}.badge-new{background:#e3f2fd;background:var(--blue-light);color:#1565c0;color:var(--blue)}.badge-scheduled{background:#ede7f6;color:#4527a0}.badge-in-progress{background:#fff3e0;background:var(--amber-light);color:#e65100;color:var(--amber)}.badge-completed{background:#e8f5e9;background:var(--green-light);color:#2e7d32;color:var(--green)}.badge-invoiced{background:#e0f7fa;color:#00695c}.badge-cancelled{background:#fafafa;border:1px solid #d0d0d0;border:1px solid var(--grey-border);color:#999;color:var(--text-light)}.badge-emergency{background:#c0272d;background:var(--red);color:#fff}.badge-pm{background:#1b2a4a;background:var(--navy);color:#fff}.badge-quote{background:#fff9c4;color:#f57f17}.card{background:#fff;background:var(--white);border-top:3px solid #c0272d;border-top:3px solid var(--accent);box-shadow:0 1px 4px #00000014;padding:20px}.card-title{color:#666;color:var(--text-mid);font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:700;letter-spacing:1px;margin-bottom:12px;text-transform:uppercase}.page{max-width:1400px;padding:24px}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.page-title{border-left:4px solid #c0272d;border-left:4px solid var(--accent);color:#1b2a4a;color:var(--navy);font-family:Barlow Condensed,sans-serif;font-size:26px;font-weight:800;letter-spacing:1px;padding-left:12px;text-transform:uppercase}.page-actions{display:flex;flex-wrap:wrap;gap:8px}.table-wrap{background:#fff;background:var(--white);box-shadow:0 1px 4px #00000014;overflow:auto}table{border-collapse:collapse;width:100%}thead{background:#1b2a4a;background:var(--navy)}thead th{color:#fff;color:var(--white);font-family:Barlow Condensed,sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;padding:10px 14px;text-align:left;text-transform:uppercase}tbody tr{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--grey-mid);transition:background .1s}tbody tr:hover{background:#f5f5f5;background:var(--grey-light)}tbody td{color:#333;color:var(--text-dark);font-size:13px;padding:10px 14px}tbody tr:last-child{border-bottom:none}.form-group{margin-bottom:16px}.form-label{color:#666;color:var(--text-mid);display:block;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.form-control{background:#fff;background:var(--white);border:1px solid #d0d0d0;border:1px solid var(--grey-border);color:#333;color:var(--text-dark);font-family:Barlow,sans-serif;font-size:13px;outline:none;padding:8px 10px;transition:border-color .15s;width:100%}.form-control:focus{border-color:#1b2a4a;border-color:var(--navy)}select.form-control{cursor:pointer}.search-bar{align-items:center;background:#fff;background:var(--white);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--grey-mid);box-shadow:0 1px 4px #0000000f;display:flex;gap:12px;margin-bottom:20px;padding:14px 20px}.search-input-wrap{flex:1 1;max-width:320px;position:relative}.search-input-wrap input{border:1px solid #d0d0d0;border:1px solid var(--grey-border);font-family:Barlow,sans-serif;font-size:13px;outline:none;padding:7px 10px 7px 32px;width:100%}.search-input-wrap input:focus{border-color:#1b2a4a;border-color:var(--navy)}.search-icon{color:#999;color:var(--text-light);left:9px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.modal-overlay{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal{background:#fff;background:var(--white);box-shadow:0 8px 40px #0000004d;max-height:90vh;max-width:560px;overflow-y:auto;width:100%}.modal-header{align-items:center;background:#1b2a4a;background:var(--navy);display:flex;justify-content:space-between;padding:16px 20px}.modal-title{color:#fff;color:var(--white);font-family:Barlow Condensed,sans-serif;font-size:18px;font-weight:700;text-transform:uppercase}.modal-close{background:none;border:none;color:#fff9;cursor:pointer;font-size:20px;line-height:1;padding:0}.modal-close:hover{color:#fff;color:var(--white)}.modal-body{padding:24px}.modal-footer{border-top:1px solid #e0e0e0;border-top:1px solid var(--grey-mid);display:flex;gap:8px;justify-content:flex-end;padding:16px 24px}.grid-2{grid-gap:16px;grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-gap:16px;grid-template-columns:1fr 1fr 1fr}.grid-4{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.text-right{text-align:right}.text-center{text-align:center}.text-red{color:#c0272d;color:var(--red)}.text-green{color:#2e7d32;color:var(--green)}.text-mid{color:#666;color:var(--text-mid)}.fw-bold{font-weight:700}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.flex{display:flex}.flex-center{align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.empty-state{color:#999;color:var(--text-light);padding:60px 20px;text-align:center}.empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.4}.empty-state p{font-size:15px}.alert{border-left:4px solid}.alert-error{background:#ffebee;border-color:#c0272d;border-color:var(--red);color:#b71c1c}.alert-success{background:#e8f5e9;background:var(--green-light);border-color:#2e7d32;border-color:var(--green);color:#2e7d32;color:var(--green)}.alert-info{background:#e3f2fd;background:var(--blue-light);border-color:#1565c0;border-color:var(--blue);color:#1565c0;color:var(--blue)}.loading-row td{color:#999;color:var(--text-light);padding:40px;text-align:center}@media (max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.page{padding:16px}.page-header{align-items:flex-start;flex-direction:column;gap:12px}}.oncall-table-wrap{overflow:visible}@media (max-width:1299.98px){.oncall-table-wrap{overflow-x:auto}}@media (max-width:767.98px){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),select,textarea{font-size:16px!important}.app-main :has(>table){-webkit-overflow-scrolling:touch;max-width:100%;min-width:0;overflow-x:auto}.btn{min-height:36px}.btn-sm{min-height:32px}}@media (max-width:1099.98px){.app-main>*{max-width:100%!important;min-width:0}}.season-tag{align-items:center;background:#ffffff1f;border-radius:10px;color:#ffffffe6;display:inline-flex;font-family:inherit;font-size:10px;font-weight:700;gap:5px;letter-spacing:.4px;margin-top:6px;padding:2px 8px;text-transform:none}.season-greeting{color:#c0272d;color:var(--accent);font-size:13px;font-weight:600;margin:4px 0 0}.season-banner{align-items:flex-end;background:#1b2a4a;background:var(--navy);border-radius:10px;display:flex;isolation:isolate;margin-bottom:16px;min-height:150px;overflow:hidden;position:relative}.season-banner-img{background-position:50%;background-size:cover;inset:0;position:absolute;z-index:-2}.season-banner:after{background:linear-gradient(90deg,#0000009e,#00000040 55%,#0000);content:"";inset:0;position:absolute;z-index:-1}.season-banner-text{color:#fff;font-family:Barlow Condensed,sans-serif;font-size:clamp(18px,2.4vw,26px);font-weight:700;letter-spacing:.5px;line-height:1.15;padding:16px 20px;text-shadow:0 2px 6px #0009}@media (max-width:600px){.season-banner{min-height:110px}.season-banner-text{font-size:20px}}.login-page.season-login{isolation:isolate;position:relative}.season-login-img{background-position:50%;background-size:cover;inset:0;position:absolute;z-index:-2}.login-page.season-login:after{background:#00000059;content:"";inset:0;pointer-events:none;position:absolute;z-index:-1}.login-page{align-items:center;background:var(--navy);background-image:linear-gradient(135deg,#0b1d3a,#0b2d5a);display:flex;justify-content:center;min-height:100vh}.login-card{background:#fff;border-radius:12px;box-shadow:0 24px 64px #0006;max-width:95vw;overflow:hidden;width:420px}.login-header{background:var(--navy);border-bottom:4px solid var(--red);gap:16px;padding:28px 32px}.login-header,.login-logo{align-items:center;display:flex}.login-logo{background:var(--red);border-radius:10px;flex-shrink:0;font-size:24px;font-weight:900;height:48px;justify-content:center;width:48px}.login-company,.login-logo{color:#fff;font-family:Barlow Condensed,sans-serif}.login-company{font-size:16px;font-weight:800;letter-spacing:1px}.login-subtitle{color:#ffffff8c;font-size:11px;letter-spacing:.5px;margin-top:2px}.login-body{padding:32px}.login-title{color:var(--text-light);font-size:13px;font-weight:800;letter-spacing:2px;margin-bottom:24px;text-transform:uppercase}.btn-microsoft{align-items:center;background:#0078d4;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:12px;justify-content:center;margin-bottom:20px;padding:13px 20px;transition:background .15s;width:100%}.btn-microsoft:hover:not(:disabled){background:#006cbe}.btn-microsoft:disabled{cursor:not-allowed;opacity:.65}.btn-microsoft svg{flex-shrink:0}.login-divider{align-items:center;color:var(--text-light);display:flex;font-size:12px;gap:12px;margin-bottom:20px}.login-divider:after,.login-divider:before{background:var(--grey-border);content:"";flex:1 1;height:1px}.login-submit{font-size:14px;font-weight:700;letter-spacing:.5px;margin-top:8px;padding:12px;width:100%}.login-submit-secondary{border-color:var(--grey-border);color:var(--text-mid);font-size:13px;margin-top:8px;padding:11px;width:100%}.login-submit-secondary:hover:not(:disabled){border-color:var(--navy);color:var(--navy)}.login-footer{background:var(--grey-light);border-top:1px solid var(--grey-border);color:var(--text-light);font-size:11px;letter-spacing:.3px;padding:14px 32px;text-align:center}.alert{border-radius:6px;font-size:13px;margin-bottom:16px;padding:10px 14px}.alert-error{background:#fce4ec;border:1px solid #ef9a9a;color:#c62828}.dp-page{--dp-navy:#0b1d3a;--dp-orange:#e8722a;--dp-red:#c0272d;--dp-txt:#1a1f2b;--dp-muted:#5b6472;--dp-faint:#8a94a6;--dp-line:#e6e8ec;--dp-sch-bg:#eaf1fe;--dp-sch-bd:#1565c0;--dp-sch-tx:#0d47a1;--dp-ip-bg:#e8f5ec;--dp-ip-bd:#2e7d32;--dp-ip-tx:#1b5e20;--dp-dn-bg:#f1f3f5;--dp-dn-bd:#9aa3af;--dp-dn-tx:#5b6472;--dp-hour:96px;--dp-techcol:196px;--dp-lane:58px;background:#f4f5f7;color:var(--dp-txt);display:flex;flex:1 1 auto;flex-direction:column;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:13px;height:100%;min-height:0}.dp-page button{font-family:inherit}.dp-head{background:#fff;border-bottom:1px solid var(--dp-line);flex-shrink:0;padding:14px 20px 10px}.dp-title{align-items:baseline;display:flex;flex-wrap:wrap;gap:12px}.dp-title h1{color:var(--dp-navy);font-family:Barlow Condensed,sans-serif;font-size:28px;font-weight:800;letter-spacing:.3px;margin:0;text-transform:uppercase}.dp-title .dp-sub{color:var(--dp-muted);font-size:13px}.dp-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.dp-bar,.dp-btn{align-items:center}.dp-btn{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:var(--dp-navy);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:7px 12px;white-space:nowrap}.dp-btn:hover{background:#f8fafc}.dp-btn:disabled{cursor:not-allowed;opacity:.5}.dp-btn.icon{padding:7px 10px}.dp-btn.navy{background:var(--dp-navy);border-color:var(--dp-navy);color:#fff}.dp-btn.orange{background:var(--dp-orange);border-color:var(--dp-orange);color:#fff}.dp-btn.danger{border-color:#f0c2c2;color:#991b1b}.dp-seg{border:1px solid #cbd5e1;border-radius:8px;display:inline-flex;overflow:hidden}.dp-seg button{background:#fff;border:0;color:var(--dp-muted);cursor:pointer;font-size:13px;font-weight:600;padding:7px 14px}.dp-seg button.on{background:var(--dp-navy);color:#fff}.dp-date{font-size:15px;font-weight:700;min-width:215px;text-align:center}.dp-select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:var(--dp-txt);font-family:inherit;font-size:13px;padding:7px 10px}.dp-chips{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.dp-chip{background:#fff;border:1px solid var(--dp-line);border-radius:999px;color:var(--dp-muted);font-size:12px;padding:4px 10px;white-space:nowrap}.dp-chip b{color:var(--dp-txt)}.dp-chip.warn{background:#fef2f2;border-color:#fecaca;color:#991b1b}.dp-chip.warn b{color:#991b1b}.dp-chip.amber{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.dp-chip.amber b{color:#9a3412}.dp-err{background:#fee2e2;border-radius:8px;color:#991b1b;margin:10px 20px 0;padding:8px 12px}.dp-body{flex:1 1;gap:12px;padding:12px 20px 16px}.dp-body,.dp-q{display:flex;min-height:0}.dp-q{background:#fff;border:1px solid var(--dp-line);border-radius:12px;flex-direction:column;flex-shrink:0;width:300px}.dp-q.drop{background:#fffaf5;outline:2px dashed var(--dp-orange);outline-offset:-4px}.dp-q h2{font-size:15px;margin:0;padding:12px 14px 0}.dp-q .dp-hint{color:var(--dp-faint);font-size:11.5px;padding:2px 14px 0}.dp-tabs{display:flex;gap:4px;padding:10px 14px 0}.dp-tabs button{background:#fff;border:1px solid var(--dp-line);border-radius:8px;color:var(--dp-muted);cursor:pointer;flex:1 1;font-size:12px;font-weight:600;padding:6px 4px}.dp-tabs button.on{background:var(--dp-navy);border-color:var(--dp-navy);color:#fff}.dp-tabs button.on.high{background:var(--dp-red);border-color:var(--dp-red)}.dp-qctl{display:flex;gap:6px;padding:8px 14px}.dp-qctl input{border:1px solid #cbd5e1;border-radius:8px;flex:1 1;font-family:inherit;font-size:13px;min-width:0;padding:7px 10px}.dp-qlist{grid-gap:8px;align-content:start;display:grid;flex:1 1;gap:8px;overflow-y:auto;padding:0 10px 10px}.dp-qc{background:#fff;border:1px solid var(--dp-line);border-radius:10px;color:inherit;cursor:grab;font:inherit;padding:9px 10px 9px 12px;text-align:left;width:100%}.dp-qc:hover{border-color:#b8c2d0;box-shadow:0 2px 8px #0f172a0f}.dp-qc.sel{border-color:var(--dp-navy);box-shadow:0 0 0 2px #0b1d3a26}.dp-qc.hi{border-left:4px solid var(--dp-red);padding-left:9px}.dp-qc .r1{display:flex;gap:8px;justify-content:space-between}.dp-qc .cust{font-size:13.5px;font-weight:700;line-height:1.25}.dp-qc .wo{color:var(--dp-faint);font-size:12px;white-space:nowrap}.dp-qc .wt{color:var(--dp-muted);margin-top:2px}.dp-qc .r3{align-items:center;display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.dp-pill{background:#eef0f4;border-radius:999px;color:#3d4a5c;font-size:11px;font-weight:700;padding:1px 8px;white-space:nowrap}.dp-pill.p-Emergency,.dp-pill.p-High{background:#fee2e2;color:#991b1b}.dp-pill.p-Maintenance{background:#e0f2fe;color:#075985}.dp-pill.p-Replacement{background:#f3e8ff;color:#6b21a8}.dp-tag{background:#f1f5f9;border-radius:6px;color:#475569;font-size:11px;padding:1px 6px}.dp-age{color:var(--dp-faint);font-size:11px;margin-left:auto;white-space:nowrap}.dp-age.old{color:#b45309;font-weight:600}.dp-age.vold{color:#b91c1c;font-weight:700}.dp-empty{color:var(--dp-faint);padding:30px 10px;text-align:center}.dp-board{background:#fff;border:1px solid var(--dp-line);border-radius:12px;display:flex;flex:1 1;flex-direction:column;min-height:0;min-width:0}.dp-scroll{flex:1 1;overflow:auto}.dp-grid,.dp-scroll{position:relative}.dp-hrow{background:#fff;border-bottom:1px solid var(--dp-line);display:flex;position:sticky;top:0;z-index:5}.dp-hrow .tc{background:#fff;border-right:1px solid var(--dp-line);font-weight:700;left:0;padding:10px 14px;position:sticky;width:var(--dp-techcol);z-index:6}.dp-hrow .h,.dp-hrow .tc{color:var(--dp-muted);flex-shrink:0;font-size:12px}.dp-hrow .h{border-left:1px solid var(--dp-line);font-weight:600;padding:10px 0 10px 6px;width:var(--dp-hour)}.dp-trow{border-bottom:1px solid var(--dp-line);display:flex;position:relative}.dp-trow:nth-child(2n) .dp-lanes{background:#fbfcfd}.dp-tcell{align-items:flex-start;background:#fff;border:0;border-right:1px solid var(--dp-line);color:inherit;cursor:pointer;display:flex;flex-shrink:0;font:inherit;gap:10px;left:0;padding:10px 12px 10px 14px;position:sticky;text-align:left;width:var(--dp-techcol);z-index:3}.dp-tcell:hover .tn{text-decoration:underline}.dp-av{background:var(--dp-navy);border-radius:50%;color:#fff;display:grid;flex-shrink:0;font-size:12.5px;font-weight:700;height:34px;place-items:center;width:34px}.dp-tcell .tn{font-size:13.5px;font-weight:700;line-height:1.2}.dp-tcell .tm{color:var(--dp-muted);font-size:11.5px;margin-top:2px}.dp-away{background:#e5e7eb;border-radius:999px;color:#374151;display:inline-block;font-size:11px;font-weight:700;margin-top:4px;padding:1px 8px}.dp-away.Vacation{background:#dbeafe;color:#1e40af}.dp-away.Sick{background:#fee2e2;color:#991b1b}.dp-lanes{flex-shrink:0;position:relative}.dp-lanes .gl{border-left:1px solid #eef0f3;bottom:0;position:absolute;top:0}.dp-lanes .gl.half{border-color:#f3f4f6;border-left-style:dashed}.dp-lanes.drop{background:#fff7ed!important}.dp-lanes.away{background:repeating-linear-gradient(135deg,#f7f7f9,#f7f7f9 10px,#eff0f3 0,#eff0f3 20px)!important}.dp-ghost{background:#e8722a14;border:2px dashed var(--dp-orange);border-radius:8px;bottom:6px;top:6px}.dp-awaylabel,.dp-ghost{pointer-events:none;position:absolute}.dp-awaylabel{color:var(--dp-faint);font-size:12.5px;font-weight:600;left:12px;top:50%;transform:translateY(-50%);white-space:nowrap}.dp-job{border:1px solid;border-left:4px solid;border-radius:8px;cursor:grab;display:flex;flex-direction:column;font:inherit;height:calc(var(--dp-lane) - 8px);justify-content:center;overflow:hidden;padding:5px 8px;position:absolute;text-align:left}.dp-job:hover{box-shadow:0 3px 10px #0f172a1f;z-index:2}.dp-job.sel{box-shadow:0 0 0 2px var(--dp-navy);z-index:2}.dp-job .c{font-size:12.5px;font-weight:700}.dp-job .c,.dp-job .s{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dp-job .s{font-size:11.5px;opacity:.85}.dp-job.Scheduled{background:var(--dp-sch-bg);border-color:#bfd3f5;border-left-color:var(--dp-sch-bd);color:var(--dp-sch-tx)}.dp-job.InProgress{background:var(--dp-ip-bg);border-color:#b7ddbf;border-left-color:var(--dp-ip-bd);color:var(--dp-ip-tx)}.dp-job.Completed{background:var(--dp-dn-bg);border-color:#dde1e6;border-left-color:var(--dp-dn-bd);color:var(--dp-dn-tx)}.dp-job.tiny .s{display:none}.dp-job.notime{border-style:dashed}.dp-job .flag{color:var(--dp-red);font-weight:800;margin-right:4px}.dp-job.clash{outline:2px solid #f59e0b;outline-offset:-1px}.dp-now{bottom:0;pointer-events:none;top:0;width:2px;z-index:4}.dp-now,.dp-now span{background:var(--dp-red);position:absolute}.dp-now span{border-radius:6px;color:#fff;font-size:10.5px;font-weight:700;left:-26px;padding:1px 6px;top:2px;white-space:nowrap}.dp-legend{border-top:1px solid var(--dp-line);color:var(--dp-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:14px;padding:8px 14px}.dp-legend i{border-left:4px solid;border-radius:3px;display:inline-block;height:12px;margin-right:5px;vertical-align:-2px;width:12px}.dp-week{overflow:auto;padding:12px 14px}.dp-week table{border-collapse:collapse;min-width:760px;width:100%}.dp-week td,.dp-week th{border:1px solid var(--dp-line);padding:8px;text-align:left;vertical-align:top}.dp-week th{background:#f8fafc;color:var(--dp-muted);font-size:12px}.dp-week td.dc{cursor:pointer}.dp-week td.dc:hover{background:#f8fafc}.dp-week td.today{box-shadow:inset 0 3px 0 var(--dp-orange)}.dp-week .wsub{color:var(--dp-muted);font-size:11.5px}.dp-det{background:#fff;border:1px solid var(--dp-line);border-radius:12px;display:flex;flex-direction:column;flex-shrink:0;min-height:0;width:360px}.dp-det .dh{border-bottom:1px solid var(--dp-line);padding:14px 16px 10px}.dp-det .dh .top{align-items:center;display:flex;gap:8px;justify-content:space-between}.dp-det .wo{color:var(--dp-navy);font-family:Barlow Condensed,sans-serif;font-size:24px;font-weight:800}.dp-det .cust{font-size:17px;font-weight:700;margin-top:2px}.dp-det .wt{color:var(--dp-muted);margin-top:2px}.dp-det .db{grid-gap:12px;align-content:start;display:grid;flex:1 1;gap:12px;overflow-y:auto;padding:12px 16px}.dp-kv{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:96px 1fr}.dp-kv label{color:var(--dp-muted);font-size:12px}.dp-kv input,.dp-kv select{border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:13px;min-width:0;padding:6px 8px;width:100%}.dp-sec{color:var(--dp-faint);font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}.dp-note{background:#f8fafc;border:1px solid var(--dp-line);border-radius:8px;font-size:12.5px;padding:7px 9px;white-space:pre-wrap}.dp-note.internal{background:#fffdf0;border-color:#f0e3a0}.dp-det .df{grid-gap:8px;border-top:1px solid var(--dp-line);display:grid;gap:8px;padding:12px 16px}.dp-sug{grid-gap:4px;border:1px solid var(--dp-line);border-radius:10px;display:grid;gap:4px;padding:8px 10px}.dp-sug .top{align-items:center;display:flex;gap:8px;justify-content:space-between}.dp-sug .nm,.dp-sug .sc{font-weight:700}.dp-sug .sc{background:var(--dp-navy);border-radius:999px;color:#fff;font-size:11px;padding:1px 7px}.dp-sug .rs{color:var(--dp-muted);font-size:12px}.dp-sug.off{opacity:.55}.dp-warn{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:12.5px;padding:7px 9px}.dp-menu{background:#fff;border:1px solid var(--dp-line);border-radius:10px;box-shadow:0 12px 30px #0f172a2e;max-width:300px;min-width:240px;padding:6px;position:fixed;z-index:600}.dp-menu .mh{color:var(--dp-faint);font-size:11px;font-weight:700;letter-spacing:.5px;padding:6px 8px 4px;text-transform:uppercase}.dp-menu .mn{color:var(--dp-muted);font-size:12px;padding:4px 8px 6px}.dp-menu button{background:none;border:0;border-radius:6px;cursor:pointer;display:block;font-size:13px;padding:7px 8px;text-align:left;width:100%}.dp-menu button:hover{background:#f1f5f9}.dp-toast{background:#0b1d3a;border-radius:10px;bottom:18px;box-shadow:0 8px 24px #00000040;color:#fff;font-size:13px;left:50%;max-width:90vw;padding:9px 16px;position:fixed;transform:translateX(-50%);z-index:700}.dp-toast.warn{background:#92400e}.dp-qbtn{display:none}@media (max-width:1350px){.dp-det{bottom:12px;box-shadow:-10px 0 30px #0f172a33;max-width:calc(100vw - 24px);position:fixed;right:12px;top:12px;z-index:550}}@media (max-width:1000px){.dp-q{bottom:12px;box-shadow:10px 0 30px #0f172a33;display:none;left:12px;max-width:calc(100vw - 24px);position:fixed;top:12px;z-index:540}.dp-q.open{display:flex}.dp-qbtn{display:inline-flex}.dp-chips{margin-left:0}.dp-body{padding:10px 12px 12px}.dp-head{padding:12px}}.cx-page{max-width:1600px}.cx-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:18px}.cx-sub{color:#6b7688;font-size:13.5px;margin-top:2px}.cx-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.cx-ico{display:inline-block;flex-shrink:0;vertical-align:-2px}.cx-btn{align-items:center;background:#fff;border:1px solid var(--grey-border);border-radius:8px;color:var(--navy);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;height:34px;padding:0 14px;text-decoration:none;white-space:nowrap}.cx-btn:hover{background:#f4f7fb}.cx-btn:disabled{cursor:not-allowed;opacity:.5}.cx-btn.is-primary{background:var(--navy);border-color:var(--navy);color:#fff}.cx-btn.is-primary:hover{background:var(--navy-light)}.cx-btn.is-sm{font-size:12.5px;height:30px;padding:0 10px}.cx-btn.is-danger{color:var(--red)}.cx-btn.is-danger:hover{background:#fdeeee;border-color:#f2b8b8}.cx-btn-icon{justify-content:center;padding:0;width:34px}.cx-layout{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(420px,5fr) minmax(0,7fr)}.cx-filters{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cx-search{flex:1 1 160px;min-width:140px;position:relative}.cx-search input{padding-left:32px;width:100%}.cx-search-icon{color:#8a94a6;display:flex;left:10px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.cx-type-select{flex:0 0 auto;width:128px}.cx-chip{align-items:center;background:#fff;border:1px solid var(--grey-border);border-radius:8px;color:var(--text-mid);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12.5px;font-weight:600;gap:5px;height:34px;padding:0 11px;white-space:nowrap}.cx-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}.cx-chip.is-archived.is-on{background:var(--amber);border-color:var(--amber)}.cx-list{background:#fff;border:1px solid #e4e9f0;border-radius:12px;overflow:hidden}.cx-list table{border-collapse:collapse;width:100%}.cx-list th{background:#f4f6fa;border-bottom:1px solid #e4e9f0;border-left:none;border-right:none;color:#4a5568;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.05em;padding:11px 14px;text-align:left;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap}.cx-list th .cx-sort{font-size:9px;margin-left:4px;opacity:.35}.cx-list th.is-sorted .cx-sort{opacity:1}.cx-list td{border-bottom:1px solid #eef1f5;font-size:13px;padding:11px 14px;vertical-align:middle}.cx-list tr:last-child td{border-bottom:none}.cx-row{cursor:pointer}.cx-row:hover td{background:#f7faff}.cx-row.is-open td{background:#eef4ff}.cx-row.is-open td:first-child{box-shadow:inset 3px 0 0 var(--navy)}.cx-name{align-items:center;color:var(--navy);display:flex;flex-wrap:wrap;font-weight:700;gap:4px 7px}.cx-name .cx-pill{font-size:10.5px;line-height:16px;padding:0 7px}.cx-parent{color:#6b7688;font-size:11.5px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx-agr-tag{align-items:center;background:#fff7e6;border:1px solid #f0c878;border-radius:10px;color:#8a5a00;display:inline-flex;font-size:10.5px;font-weight:700;gap:3px;line-height:14px;padding:0 7px 0 5px}.cx-city{color:#4a5568}.cx-chev{color:#a0aec0;text-align:right;width:24px}.cx-empty-row td{color:#8a94a6;padding:36px 14px;text-align:center}.cx-pill{border-radius:6px;display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;white-space:nowrap}.cx-pill-Residential{background:#e6f4ea;color:#1e6b3a}.cx-pill-Commercial{background:#e3f0fb;color:#0f5a96}.cx-pill-Property-Manager{background:#f1e8f7;color:#6a2a7b}.cx-pager{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:12px}.cx-pager-info{color:#6b7688;font-size:12.5px}.cx-pager-btns{align-items:center;display:flex;gap:6px}.cx-pg{background:#fff;border:1px solid var(--grey-border);border-radius:8px;color:var(--text-dark);cursor:pointer;font-family:inherit;font-size:13px;height:34px;min-width:34px;padding:0 10px}.cx-pg:disabled{cursor:not-allowed;opacity:.4}.cx-pg.is-on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}.cx-detail{background:#fff;border:1px solid #e4e9f0;border-radius:12px;max-height:calc(100vh - 28px);overflow-y:auto;padding:20px 22px 24px;position:sticky;top:14px}.cx-detail-empty{align-items:center;color:#8a94a6;display:flex;flex-direction:column;font-size:13.5px;gap:8px;justify-content:center;min-height:320px;text-align:center}.cx-detail-empty-icon{color:#a0aec0;display:flex}.cx-backdrop{display:none}.cx-dhead{align-items:flex-start;display:flex;gap:16px}.cx-dicon{align-items:center;background:#eef3fa;border-radius:12px;color:var(--navy);display:flex;flex-shrink:0;height:60px;justify-content:center;width:60px}.cx-parent-link{align-items:center;color:#6b7688;display:inline-flex;gap:5px}.cx-dtitle{flex:1 1;min-width:0}.cx-dname{color:var(--navy);font-size:22px;font-weight:800;line-height:1.2;word-break:break-word}.cx-dmeta{align-items:center;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-top:8px}.cx-link{background:none;border:none;color:var(--blue);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.cx-dtools{align-items:center;display:flex;flex-shrink:0;gap:6px}.cx-dbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.cx-icon-btn{background:none;border:none;border-radius:8px;color:#6b7688;cursor:pointer;display:inline-flex;font-family:inherit;line-height:1;padding:6px}.cx-icon-btn:hover{background:#f1f4f8;color:var(--navy)}.cx-menu-wrap{position:relative}.cx-menu{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 30px #00000026;min-width:200px;overflow:hidden;position:absolute;right:0;top:34px;z-index:30}.cx-menu button{background:none;border:none;color:var(--navy);cursor:pointer;display:block;font-family:inherit;font-size:13px;font-weight:600;padding:10px 14px;text-align:left;width:100%}.cx-menu button:hover{background:#f4f7fb}.cx-menu button:disabled{cursor:not-allowed;opacity:.5}.cx-menu-note{color:#6b7688;font-size:11.5px;font-weight:400;margin-top:2px;white-space:normal}.cx-actions .cx-menu{min-width:250px}.cx-menu button.is-danger{color:var(--red)}.cx-menu button.is-danger:hover{background:#fdeeee}.cx-tabs{border-bottom:1px solid #e4e9f0;display:flex;flex-wrap:wrap;gap:4px;margin:18px 0 16px}.cx-tab{background:none;border:none;border-bottom:3px solid #0000;color:#6b7688;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;margin-bottom:-1px;padding:10px 14px}.cx-tab.is-on{border-bottom-color:var(--navy);color:var(--navy);font-weight:800}.cx-glance{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.cx-glance-tile{background:#fafbfd;border:1px solid #e4e9f0;border-radius:10px;font-family:inherit;min-width:0;padding:10px 12px;text-align:left}button.cx-glance-tile{cursor:pointer}button.cx-glance-tile:hover{background:#f4f7fb;border-color:#c9d5e6}.cx-glance-label{color:#8a94a6;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.cx-glance-value{color:var(--navy);font-size:18px;font-weight:800;margin-top:2px}.cx-glance-note,.cx-glance-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cx-glance-note{color:#6b7688;font-size:11.5px;margin-top:1px}.cx-glance-tile.is-warn .cx-glance-note,.cx-glance-tile.is-warn .cx-glance-value{color:var(--red)}.cx-glance-tile.is-soon .cx-glance-note{color:var(--amber);font-weight:700}.cx-glance-muted .cx-glance-value{color:#a0aec0}.cx-glance-quiet{background:#fafbfd;border:1px dashed #d5dde8;border-radius:10px;color:#6b7688;font-size:13px;margin-bottom:14px;padding:10px 14px}.cx-card{border:1px solid #e4e9f0;border-radius:10px;margin-bottom:12px;padding:14px 16px}.cx-card-title{align-items:center;color:var(--navy);display:flex;font-size:14.5px;font-weight:800;gap:10px;justify-content:space-between;margin-bottom:10px}.cx-card-title a{color:var(--blue);font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}.cx-two{grid-gap:0 20px;display:grid;gap:0 20px;grid-template-columns:1fr 1fr}.cx-two>.cx-cell+.cx-cell{border-left:1px solid #eef1f5;padding-left:20px}.cx-cell{align-items:flex-start;display:flex;gap:12px;min-width:0}.cx-cell-icon{color:#6b7688;display:flex;flex-shrink:0;justify-content:center;margin-top:2px;width:22px}.cx-contact-link{color:var(--blue);text-decoration:none}.cx-contact-link:hover{text-decoration:underline}.cx-ct-line{color:var(--text-mid);display:flex;flex-wrap:wrap;font-size:12.5px;gap:4px 14px;margin-top:4px}.cx-ct-line>span{align-items:center;display:inline-flex;gap:5px}.cx-label{color:#6b7688;font-size:12px}.cx-value{color:var(--text-dark);font-size:13.5px;word-break:break-word}.cx-kv{grid-gap:8px 12px;align-items:baseline;display:grid;font-size:13.5px;gap:8px 12px;grid-template-columns:120px minmax(0,1fr)}.cx-kv-grid{grid-gap:0 20px;display:grid;gap:0 20px;grid-template-columns:1fr 1fr}.cx-kv-grid>.cx-kv+.cx-kv{border-left:1px solid #eef1f5;padding-left:20px}.cx-kv dt{color:#6b7688;font-size:12.5px}.cx-kv dd{color:var(--text-dark);margin:0;word-break:break-word}.cx-bnotes{background:#fffcf2;border-color:#f0dfa8}.cx-bnote+.cx-bnote{border-top:1px solid #f0e6c8;margin-top:12px;padding-top:12px}.cx-bnote-name{color:var(--navy);font-size:13px;font-weight:700}.cx-bnote-sub{color:#8a94a6;font-size:11.5px;margin-bottom:6px}.cx-bnote-text{color:#333;font-size:13px;line-height:1.5;white-space:pre-wrap}.cx-bnote-none{color:#8a94a6;font-size:12.5px;font-style:italic}.cx-bnote-people{color:#4a5568;display:flex;flex-wrap:wrap;font-size:12px;gap:4px 16px;margin-top:8px}.cx-bnote-people a{color:var(--blue);text-decoration:none}.cx-alert{align-items:center;border-radius:10px;display:flex;font-size:13px;gap:10px;justify-content:space-between;margin-bottom:12px;padding:10px 14px}.cx-alert-archived{background:var(--amber-light);border:1px solid #ffb74d;color:var(--amber)}.cx-alert-pinned{background:#fffde7;border:1px solid #fdd835;color:#333;justify-content:flex-start}.cx-subrow{background:#f8f9fb;border-left:3px solid var(--navy);border-radius:0 8px 8px 0;margin-bottom:8px;padding:12px 14px}.cx-subrow.is-click{cursor:pointer}.cx-subrow.is-click:hover{background:#eef4ff}@media (min-width:1101px) and (max-width:1440px){.cx-glance{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1100px){.cx-layout{grid-template-columns:minmax(0,1fr)}.cx-detail{border-radius:0;bottom:0;box-shadow:-4px 0 24px #00000026;max-height:none;position:fixed;right:0;top:0;width:min(640px,100vw);z-index:200}.cx-detail.is-idle{display:none}.cx-backdrop{background:#0000004d;display:block;inset:0;position:fixed;z-index:199}}@media (max-width:640px){.cx-glance{grid-template-columns:1fr 1fr}.cx-kv-grid,.cx-two{grid-template-columns:minmax(0,1fr)}.cx-kv-grid>.cx-kv+.cx-kv,.cx-two>.cx-cell+.cx-cell{border-left:none;margin-top:12px;padding-left:0}.cx-dicon{display:none}.cx-layout{grid-template-columns:minmax(0,1fr)}.cx-list td:nth-child(2),.cx-list th:nth-child(2){display:none}}.ws-page{--ws-bg:#f6f7f9;--ws-surface:#fff;--ws-surface-2:#fafbfc;--ws-hover:#f8f9fb;--ws-line:#e6e8ec;--ws-faint:#8a94a6;--ws-muted:#5b6472;--ws-text:#1a1f2b;--ws-navy:#1b2a4a;--ws-accent:#e8722a;--ws-accent-bg:#fdeee3;--ws-accent-fg:#b4531a;--ws-green:#2f6b3a;--ws-green-bg:#eaf3ec;--ws-rail-ok:#cfe3d4;--ws-rail-no:#f5d9c4;--ws-radius:10px;--ws-radius-card:8px;--ws-radius-ctl:6px;--ws-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;-webkit-font-smoothing:antialiased;color:var(--ws-text);font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:13px}.ws-page button,.ws-page input,.ws-page select{font-family:inherit}.ws-portal{position:relative;z-index:1300}.ws-head{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:20px}.ws-title{color:var(--ws-navy);font-family:Barlow Condensed,sans-serif;font-size:28px;font-weight:800;letter-spacing:.02em;line-height:1;margin:0 0 6px;text-transform:uppercase}.ws-subline{align-items:center;display:flex;gap:10px}.ws-lbl{color:var(--ws-faint);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.ws-muted{color:var(--ws-muted);font-size:12px}.ws-faint{color:var(--ws-faint);font-size:12px}.ws-xs{font-size:11px}.ws-mono{font-family:var(--ws-mono);font-size:12px;font-weight:500}.ws-name{align-items:center;color:var(--ws-text);display:flex;font-size:13px;font-weight:500;gap:6px;line-height:18px;min-width:0}.ws-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-sub{align-items:center;color:var(--ws-muted);display:flex;font-size:12px;gap:4px;line-height:16px;margin-top:1px}.ws-ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-n{font-feature-settings:"tnum";color:var(--ws-faint);font-size:12px;font-variant-numeric:tabular-nums}.ws-n-hot{color:var(--ws-accent);font-weight:600}.ws-dot{background:currentColor;border-radius:50%;display:inline-block;flex-shrink:0;height:6px;width:6px}.ws-ok{color:var(--ws-green)}.ws-no,.ws-ok{align-items:center;display:inline-flex;font-size:12px;gap:6px;white-space:nowrap}.ws-no{color:var(--ws-accent-fg)}.ws-draft{color:var(--ws-faint)}.ws-draft,.ws-warranty{align-items:center;display:inline-flex;font-size:12px;gap:6px;white-space:nowrap}.ws-warranty{color:#2b5c9e}.ws-draft.ws-xs,.ws-no.ws-xs,.ws-ok.ws-xs,.ws-warranty.ws-xs{font-size:11px;margin-top:2px}.ws-ic-faint{color:var(--ws-faint)}.ws-ic-green{color:var(--ws-green)}.ws-em{color:var(--ws-faint);font-style:italic}.ws-pill{align-items:center;border:none;border-radius:var(--ws-radius-ctl);display:inline-flex;font-size:12px;font-weight:500;gap:6px;height:22px;line-height:1;padding:0 9px;white-space:nowrap}.ws-pill-draft{background:#f1f2f4;color:#6b7280}.ws-pill-submitted{background:var(--ws-accent-bg);color:var(--ws-accent-fg)}.ws-pill-approved,.ws-pill-finalized{background:var(--ws-green-bg);color:var(--ws-green)}.ws-pill-invoiced,.ws-tag{background:#eef0f4;color:#3d4a5c}.ws-tag{border-radius:4px;flex-shrink:0;font-family:var(--ws-mono);font-size:10px;font-weight:500;letter-spacing:.04em;padding:1px 5px}.ws-tabs{border-bottom:1px solid var(--ws-line);display:flex;gap:28px;margin-bottom:18px}.ws-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--ws-muted);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;margin-bottom:-1px;padding:0 2px 12px;transition:color .12s;white-space:nowrap}.ws-tab-on,.ws-tab:hover{color:var(--ws-text)}.ws-tab-on{border-bottom-color:var(--ws-accent);font-weight:600}.ws-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}.ws-toolbar-2{gap:6px;margin-bottom:18px}.ws-sticky{background:#f5f5f5;background:var(--grey-light,#f5f5f5);display:flow-root;margin-top:-8px;padding-top:8px;position:sticky;top:0;z-index:6}.ws-search{align-items:center;background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:8px;color:var(--ws-faint);display:flex;flex:1 1;gap:8px;height:34px;min-width:160px;padding:0 10px 0 12px;transition:border-color .12s,box-shadow .12s}.ws-search:focus-within{border-color:var(--ws-navy);box-shadow:0 0 0 3px #1b2a4a14}.ws-search input{background:#0000;border:none;color:var(--ws-text);flex:1 1;font-size:13px;min-width:0;outline:none}.ws-clear-x,.ws-search input::placeholder{color:var(--ws-faint)}.ws-clear-x{align-items:center;background:#0000;border:none;border-radius:5px;cursor:pointer;display:inline-flex;height:22px;justify-content:center;width:22px}.ws-clear-x:hover{background:#eef0f4;color:var(--ws-text)}.ws-seg{background:#eef0f4;border-radius:8px;gap:2px;height:34px;padding:3px}.ws-seg,.ws-seg-item{align-items:center;display:flex}.ws-seg-item{background:#0000;border:none;border-radius:6px;color:var(--ws-muted);cursor:pointer;font-size:13px;font-weight:500;gap:6px;height:28px;padding:0 12px;transition:background .12s,color .12s;white-space:nowrap}.ws-seg-item:hover{color:var(--ws-text)}.ws-seg-on{box-shadow:0 1px 2px #1018281a,0 0 0 1px #1018280a}.ws-ghost,.ws-seg-on{background:var(--ws-surface);color:var(--ws-text)}.ws-ghost{align-items:center;border:1px solid var(--ws-line);border-radius:7px;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:6px;height:30px;padding:0 11px;transition:border-color .12s,background .12s;white-space:nowrap}.ws-ghost:hover{border-color:#cdd2da}.ws-ghost:disabled{cursor:wait;opacity:.7}.ws-ghost-accent{background:var(--ws-accent);border-color:var(--ws-accent);color:#fff}.ws-ghost-accent:hover{background:#d9661f;border-color:#d9661f}.ws-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%2714%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%238A94A6%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><polyline points=%276 9 12 15 18 9%27/></svg>");background-position:right 8px center;background-repeat:no-repeat;padding-right:26px}.ws-date{color:var(--ws-faint);padding-left:9px}.ws-date input{background:#0000;border:none;color:var(--ws-text);font-size:12px;font-weight:500;outline:none;width:118px}.ws-vr{background:var(--ws-line);height:18px;margin:0 6px;width:1px}.ws-select-tight{max-width:150px}.ws-sort-select{display:none}.ws-chip{align-items:center;background:#0000;border:none;border-radius:var(--ws-radius-ctl);color:var(--ws-muted);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;height:26px;padding:0 10px;white-space:nowrap}.ws-chip:hover{background:#eef0f4;color:var(--ws-text)}.ws-chip-on{background:var(--ws-surface);box-shadow:0 0 0 1px var(--ws-line);color:var(--ws-text)}.ws-loaded{flex:1 1;margin-left:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-clear-all{height:24px;margin-left:4px;padding:0 9px}.ws-active-row{gap:6px;margin-bottom:8px;margin-top:0}.ws-toolbar-2:has(+.ws-active-row){margin-bottom:18px}.ws-fchip{align-items:center;background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:6px;color:var(--ws-text);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:5px;height:24px;padding:0 7px 0 8px;white-space:nowrap}.ws-fchip:hover{border-color:#cdd2da}.ws-fchip svg,.ws-fchip-k{color:var(--ws-faint)}.ws-fchip:hover svg,.ws-notice{color:var(--ws-accent-fg)}.ws-notice{align-items:center;background:var(--ws-accent-bg);border:1px solid #f3c9a9;border-radius:var(--ws-radius-card);display:flex;font-size:13px;gap:10px;margin-bottom:14px;padding:10px 14px}.ws-notice .ws-clear-x{color:var(--ws-accent-fg);margin-left:auto}.ws-table{background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:var(--ws-radius);overflow:hidden;overflow:clip}.ws-grid{grid-gap:12px;align-items:center;display:grid;gap:12px}.ws-grid-svc{grid-template-columns:22px minmax(0,1fr) 104px 150px 132px 104px 96px 150px 32px}.ws-nocb .ws-grid-svc{grid-template-columns:minmax(0,1fr) 104px 150px 132px 104px 96px 150px 32px}.ws-split-panel .ws-grid-svc{grid-template-columns:22px minmax(0,1fr) 88px 120px 96px 84px 96px 110px 28px}.ws-split-panel .ws-nocb .ws-grid-svc,.ws-split-panel.ws-nocb .ws-grid-svc{grid-template-columns:minmax(0,1fr) 88px 120px 96px 84px 96px 110px 28px}.ws-grid-agr{grid-template-columns:128px minmax(0,1.4fr) 100px 108px minmax(0,1fr) 76px 104px 84px 32px}.ws-colhead{background:var(--ws-surface);border-bottom:1px solid var(--ws-line);padding:10px 20px;position:sticky;top:0;top:var(--ws-stick-h,0);z-index:3}.ws-colhead-under-bar{top:44px;top:calc(var(--ws-stick-h, 0px) + 44px)}.ws-cb-cell{align-items:center;display:inline-flex;justify-content:center;width:22px}.ws-cb{accent-color:var(--ws-navy);cursor:pointer;height:15px;margin:0;width:15px}.ws-row-checked{background:#f3f5f8}.ws-bulk{align-items:center;background:var(--ws-navy);border-bottom:1px solid var(--ws-line);box-sizing:border-box;color:#fff;display:flex;gap:8px;height:44px;padding:0 20px;position:sticky;top:0;top:var(--ws-stick-h,0);z-index:4}.ws-bulk-n{font-size:13px;font-weight:600;margin-right:6px;white-space:nowrap}.ws-bulk .ws-ghost{background:#ffffff1a;border-color:#ffffff38;color:#fff;height:28px}.ws-bulk .ws-ghost:hover:not(:disabled){background:#ffffff2e;border-color:#fff6}.ws-bulk .ws-ghost:disabled{cursor:default;opacity:.4}.ws-bulk .ws-faint{color:#ffffffb3}.ws-link{background:none;border:none;color:var(--ws-navy);cursor:pointer;font-size:12px;font-weight:500;margin-left:8px;padding:0;text-decoration:underline;text-decoration-color:#cdd2da;text-underline-offset:3px}.ws-link:hover{color:var(--ws-accent);text-decoration-color:var(--ws-accent)}.ws-sortable{align-items:center;cursor:pointer;display:flex;gap:4px;-webkit-user-select:none;user-select:none}.ws-sort-on,.ws-sortable:hover{color:var(--ws-text)}.ws-sortable.ws-center{justify-content:center}.ws-center{text-align:center}.ws-row{border-bottom:1px solid var(--ws-line);cursor:pointer;padding:12px 20px;transition:background .1s}.ws-row:hover{background:var(--ws-hover)}.ws-row-sel{background:#f3f5f8;box-shadow:inset 3px 0 0 var(--ws-accent)!important}.ws-group+.ws-block{margin-top:12px}.ws-block:last-child>.ws-row:last-child{border-bottom:none}.ws-group{border-bottom:1px solid var(--ws-line);border-top:1px solid var(--ws-line);margin:12px 0 0}.ws-group:last-child{border-bottom:none}.ws-group-head{align-items:center;background:var(--ws-surface-2);border-bottom:1px solid var(--ws-line);cursor:pointer;display:flex;flex-wrap:wrap;gap:12px;padding:10px 20px}.ws-group-closed .ws-group-head{border-bottom:none}.ws-group .ws-row{padding:11px 20px 11px 40px}.ws-group .ws-row:last-child{border-bottom:none}.ws-rail-no,.ws-rail-ok{position:relative}.ws-rail-no:before,.ws-rail-ok:before{bottom:0;content:"";left:27px;position:absolute;top:0;width:2px}.ws-rail-no:after,.ws-rail-ok:after{background:var(--ws-surface);border:2px solid;border-radius:50%;box-sizing:border-box;content:"";height:8px;left:24px;margin-top:-4px;position:absolute;top:50%;width:8px;z-index:1}.ws-rail-ok:before{background:var(--ws-rail-ok)}.ws-rail-no:before{background:var(--ws-rail-no)}.ws-node-ok:after{border-color:var(--ws-green)}.ws-node-no:after{border-color:var(--ws-accent)}.ws-group .ws-rail-no:last-child:before,.ws-group .ws-rail-ok:last-child:before{bottom:50%}.ws-wo{align-items:center;color:var(--ws-text);display:inline-flex;gap:8px;white-space:nowrap}.ws-wo-link{cursor:pointer;text-decoration:underline;text-decoration-color:#cdd2da;text-underline-offset:3px}.ws-wo-link:hover{color:var(--ws-accent);text-decoration-color:var(--ws-accent)}.ws-linkchip{align-items:center;background:var(--ws-surface);border-radius:5px;box-shadow:0 0 0 1px var(--ws-line);color:var(--ws-muted);cursor:pointer;display:inline-flex;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:11px;font-weight:500;gap:4px;height:20px;padding:0 7px;white-space:nowrap}.ws-linkchip:hover{box-shadow:0 0 0 1px #cdd2da;color:var(--ws-text)}.ws-mono .ws-linkchip{margin-top:4px}.ws-techs{max-width:220px}.ws-amt{color:var(--ws-text);white-space:nowrap}.ws-group-actions{align-items:center;display:inline-flex;gap:6px;margin-left:auto}.ws-status{align-items:center;display:flex;min-width:0}.ws-bill{font-size:12px;min-width:0}.ws-bill-top{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-bill-sub{align-items:center;display:flex;gap:6px;margin-top:4px;min-width:0}.ws-email{align-items:center;color:var(--ws-faint);display:inline-flex;font-size:11px;gap:4px;white-space:nowrap}.ws-email-sent,.ws-fe{color:var(--ws-muted)}.ws-fe{align-items:center;display:inline-flex;font-size:11px;gap:4px;white-space:nowrap}.ws-fe-due{color:var(--ws-accent);font-weight:500}.ws-act{cursor:pointer;text-decoration:underline;text-decoration-color:#d5dae1;text-underline-offset:3px}.ws-act:hover{color:var(--ws-text);text-decoration-color:initial}.ws-fe-due.ws-act:hover{color:var(--ws-accent-fg)}.ws-grip{align-items:center;border-radius:6px;color:#c5ccd6;cursor:grab;display:inline-flex;height:28px;justify-content:center;transition:color .12s,background .12s,box-shadow .12s;width:28px}.ws-row:hover .ws-grip{color:var(--ws-muted)}.ws-grip:hover{background:var(--ws-surface);box-shadow:0 0 0 1px var(--ws-line);color:var(--ws-text)}.ws-grip:active{cursor:grabbing}.ws-empty{background:var(--ws-surface);border:1px solid var(--ws-line);border-radius:var(--ws-radius);color:var(--ws-faint);font-size:14px;padding:56px 20px;text-align:center}.ws-split{align-items:flex-start;display:flex;gap:0}@media (max-width:1099.98px){.ws-seg,.ws-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}.ws-seg-item,.ws-tab{flex-shrink:0}}.ps-kpi-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:14px}.ps-kpi{align-items:center;background:#fff;border:1px solid #e8edf3;border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;display:flex;font-family:inherit;gap:10px;padding:12px 14px;text-align:left}.ps-kpi:hover{border-color:#c7d2e0;box-shadow:0 2px 10px #00000012}.ps-kpi-value{color:#0b1d3a;font-size:22px;font-weight:800;line-height:1.1}.ps-kpi-label{color:#64748b;font-size:12px;font-weight:600;margin-top:2px}.ps-kpi-icon{align-items:center;background:#f1f5f9;border-radius:50%;display:flex;font-size:15px;height:32px;justify-content:center;margin-left:auto;width:32px}.ps-kpi-amber{background:#fffbf2;border-color:#f5d9a6}.ps-kpi-amber .ps-kpi-value{color:#b45309}.ps-kpi-amber .ps-kpi-icon{background:#fdebc8}.ps-kpi-green{background:#f7fcf8;border-color:#bbe7c6}.ps-kpi-green .ps-kpi-value{color:#166534}.ps-kpi-green .ps-kpi-icon{background:#dcfce7}.ps-kpi-red{background:#fff8f8;border-color:#f6d4d4}.ps-kpi-red .ps-kpi-value{color:#b91c1c}.ps-kpi-red .ps-kpi-icon{background:#fde8e8}.ps-tabs{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ps-tab{background:none;border:none;border-bottom:3px solid #0000;color:#64748b;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;padding:8px 12px}.ps-tab.is-on{border-bottom-color:#e8722a;color:#0b1d3a}.ps-tab-count{background:#eef2f7;border-radius:999px;color:#475569;font-size:11px;margin-left:4px;padding:1px 8px}.ps-tab.is-on .ps-tab-count{background:#0b1d3a;color:#fff}.ps-layout{display:block}.ps-layout-split{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) 380px}.ps-pager{align-items:center;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;padding:10px 2px}.ps-page-btn{background:#fff;border:1px solid #d5dde7;border-radius:8px;color:#0b1d3a;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;min-width:30px;padding:4px 8px}.ps-page-btn:disabled{cursor:default;opacity:.45}.ps-page-btn.is-on{background:#0b1d3a;border-color:#0b1d3a;color:#fff}.ps-preview{background:#fff;border:1px solid #e8edf3;border-radius:12px;box-shadow:0 1px 3px #0000000f;overflow:hidden;position:sticky;top:14px}.ps-preview-head{align-items:center;display:flex;gap:8px;padding:12px 14px 8px}.ps-icon-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;height:28px;justify-content:center;width:28px}.ps-icon-btn:hover{border-color:#c7d2e0;color:#0b1d3a}.ps-preview-img{align-items:center;background:#f1f5f9;border-bottom:1px solid #eef2f7;border-top:1px solid #eef2f7;display:flex;height:340px;justify-content:center;overflow:auto}.ps-preview-img img{display:block;max-height:330px;max-width:100%;object-fit:contain}.ps-preview-meta{color:#475569;display:flex;flex-wrap:wrap;font-size:12px;gap:8px 14px;padding:10px 14px 0}@media (max-width:1400px){.ps-layout-split{grid-template-columns:1fr}.ps-preview{position:static}}@media (max-width:1200px){.ps-kpi-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.ps-kpi-row{grid-template-columns:1fr}}.ps-done-btn{background:#fff;border:1px solid #d5dde7;border-radius:999px;color:#64748b;cursor:pointer;font-family:inherit;font-size:11px;font-weight:800;padding:3px 11px;white-space:nowrap}.ps-done-btn:hover{border-color:#16a34a;color:#166534}.ps-done-btn.is-done{background:#dcfce7;border-color:#86efac;color:#166534}.ps-row-done>td{background:#f4fbf6;border-bottom:1px solid #e6f3ea;color:#7c8b93}.ps-row-done>td:first-child{box-shadow:inset 4px 0 0 #34a853}.ps-row-done .ps-done-btn{opacity:1}.ps-row-open>td{background:#eef4ff!important;color:inherit}.ps-row-open>td:first-child{box-shadow:inset 4px 0 0 #1a56a0}.settings-tabs{border-bottom:2px solid var(--grey-mid);display:flex;gap:0;margin-bottom:24px}.settings-tab{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-mid);cursor:pointer;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:700;letter-spacing:.5px;margin-bottom:-2px;padding:10px 20px;text-transform:uppercase;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--navy)}.settings-tabs{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:none}.settings-tab{flex-shrink:0;white-space:nowrap}@media (max-width:767.98px){.settings-tab{padding:10px 14px}}.settings-tab.active{border-bottom-color:var(--red);color:var(--navy)}.wo-kpi-row{grid-gap:14px;background:#f6f8fb;border-bottom:1px solid #e0e5ee;display:grid;flex-shrink:0;gap:14px;grid-template-columns:repeat(4,1fr);padding:14px 24px}.wo-kpi{align-items:center;background:#fff;border:1px solid #eceff3;border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;display:flex;gap:12px;padding:12px 14px}.wo-kpi:hover{border-color:#dce3ec;box-shadow:0 2px 10px #00000014}.wo-kpi-icon{align-items:center;background:#eef3fa;border-radius:10px;display:flex;flex-shrink:0;font-size:17px;height:36px;justify-content:center;width:36px}.wo-kpi-label{color:#475569;font-size:12px;font-weight:700}.wo-kpi-value{color:var(--navy);font-size:20px;font-weight:800;line-height:1.15;margin-top:1px}.wo-kpi-sub{color:#8a93a3;font-size:11px;margin-top:1px}.wo-kpi-alert{background:#fff8f8;border-color:#f6d4d4}.wo-kpi-alert .wo-kpi-icon{background:#fde8e8}.wo-kpi-alert .wo-kpi-value{color:var(--red)}.wo-overview{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.wo-card{background:#fff;border:1px solid #e0e5ee;border-radius:12px;box-shadow:0 1px 3px #0000000a;padding:16px 18px}.wo-card-title{color:var(--navy);font-size:14px;font-weight:800;margin-bottom:12px}.wo-card-internal{background:#fffdf2;border-color:#f0e3a8}.wo-card-fe{background:#f5f8ff;border-color:#c7d4f0}.wo-field-grid{grid-gap:12px 14px;display:grid;gap:12px 14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.wo-contact{align-items:center;display:flex;font-size:13px;gap:8px;margin-top:6px}.wo-contact a{color:var(--blue);text-decoration:none;word-break:break-all}.wo-contact a:hover{text-decoration:underline}.wo-fin-row{border-bottom:1px solid #f1f4f8;display:flex;font-size:13px;justify-content:space-between;padding:6px 0}.wo-fin-row:last-child{border-bottom:none}.wo-fin-row span:first-child{color:#64748b}.wo-fin-row span:last-child{font-weight:800}@media (max-width:1200px){.wo-kpi-row{grid-template-columns:repeat(2,1fr)}.wo-overview{grid-template-columns:1fr}}@media (max-width:640px){.wo-kpi-row{grid-template-columns:1fr;padding:12px 16px}}.hub-page{box-sizing:border-box;margin:0 auto;max-width:1400px;padding:0 24px 40px;width:100%}.hub-breadcrumb{align-items:center;color:var(--text-light);display:flex;font-size:13px;gap:8px;padding:14px 0 10px}.hub-breadcrumb-link{background:none;border:none;color:var(--blue);cursor:pointer;font-size:13px;padding:0}.hub-breadcrumb-link:hover{text-decoration:underline}.hub-breadcrumb-sep{color:var(--text-light)}.hub-header{background:radial-gradient(circle at calc(100% - 50px) 50px,#ffffff08 0 110px,#0000 110px),var(--navy);border-bottom:3px solid var(--red);border-radius:12px;margin-bottom:12px;padding:20px 24px 0;position:relative}.hub-header-top{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:16px}.hub-header-left{flex:1 1;min-width:0}.hub-company-name{color:#fff;font-family:Barlow Condensed,sans-serif;font-size:24px;font-weight:800;line-height:1.1;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.hub-header-meta{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.hub-type-badge{color:#fff;letter-spacing:.5px;text-transform:uppercase}.hub-badge,.hub-type-badge{border-radius:10px;font-size:10px;font-weight:700;padding:2px 8px}.hub-parent-label{background:#ffffff14;border-radius:10px;color:#ffffff80;font-size:11px;padding:2px 8px}.hub-header-address{color:#ffffff8c;font-size:12px;margin-top:2px}.hub-header-right{align-items:flex-start;display:flex;flex-shrink:0;gap:12px}.hub-primary-contact{background:#ffffff14;border-radius:8px;min-width:170px;padding:10px 14px}.hub-contact-name{color:#fff;font-size:13px;font-weight:700}.hub-contact-title{color:#ffffff8c;font-size:11px;margin-top:2px}.hub-contact-info{color:#ffffffb3;font-size:11px;margin-top:3px}.hub-business-profile{background:#ffffff14;border-radius:8px;min-width:150px;padding:10px 14px}.hub-profile-row{display:flex;font-size:11px;gap:12px;justify-content:space-between;padding:2px 0}.hub-profile-row span:first-child{color:#ffffff73}.hub-profile-row span:last-child{color:#fff;font-weight:600;text-align:right}.hub-quick-actions{align-items:center;border-top:1px solid #ffffff14;display:flex;flex-wrap:wrap;gap:6px;padding:10px 0 12px}.hub-quick-btn{align-items:center;background:#ffffff14;border:1px solid #fff3;border-radius:6px;color:#ffffffd9;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:5px 12px;transition:background .15s,border-color .15s;white-space:nowrap}.hub-quick-btn:hover{background:#ffffff29;border-color:#ffffff59;color:#fff}.hub-quick-btn-primary{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}.hub-quick-btn-primary:hover{background:#a81f24!important}.hub-quick-btn-danger{background:#c0272d33!important;border-color:#c0272d66!important;color:#ff8a80!important}.hub-quick-btn-danger:hover{background:#c0272d59!important}.hub-quick-actions-sep{background:#ffffff1f;flex-shrink:0;height:20px;margin:0 2px;width:1px}.hub-more-wrap{position:relative}.hub-more-backdrop{inset:0;position:fixed;z-index:40}.hub-more-menu{background:#fff;border:1px solid var(--grey-border);border-radius:8px;box-shadow:0 6px 24px #00000029;min-width:190px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:41}.hub-more-menu button{background:none;border:none;border-radius:6px;color:var(--text-dark);cursor:pointer;display:block;font-size:13px;padding:8px 10px;text-align:left;width:100%}.hub-more-menu button:hover{background:#f4f7fc}.hub-more-menu button:disabled{cursor:default;opacity:.5}.hub-more-menu-sep{background:#eee;height:1px;margin:4px 0}.hub-more-menu-danger{color:var(--red)!important}.hub-more-menu-danger:hover{background:#fff5f5!important}.hub-pinned-notes{background:#fffef0;border:1px solid #f0e060;border-left:4px solid #e8b800;border-radius:8px;margin-bottom:12px;padding:10px 16px}.hub-pinned-header{align-items:center;color:#7b5800;display:flex;font-size:12px;font-weight:700;justify-content:space-between;margin-bottom:6px}.hub-note-input{display:flex;gap:8px;margin-bottom:8px}.hub-note-item{align-items:flex-start;border-bottom:1px solid #f0e060;color:var(--text-dark);display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:5px 0}.hub-note-item:last-child{border-bottom:none}.hub-note-meta{align-items:center;color:var(--text-light);display:flex;font-size:11px;gap:6px;white-space:nowrap}.hub-note-del{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.hub-note-del:hover{color:var(--red)}.hub-no-notes{color:var(--text-light);font-size:12px;font-style:italic}.hub-vitals{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:2px}.hub-vitals-clear{background:#e8f5e9;border-radius:20px;color:#2e7d32;font-weight:700}.hub-vitals-alert,.hub-vitals-clear{font-size:12px;padding:4px 12px;white-space:nowrap}.hub-vitals-alert{border:1px solid;border-radius:20px;cursor:pointer;font-weight:600;transition:filter .15s}.hub-vitals-alert:hover{filter:brightness(.96)}.hub-vitals-red{background:#fff5f5;border-color:#ffcdd2;color:var(--red)}.hub-vitals-amber{background:#fff8ec;border-color:#ffe0b2;color:#b45d00}.hub-vitals-alert-value{font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:800}.hub-vitals-quiet{align-items:center;color:#8a93a3;display:flex;flex-wrap:wrap;font-size:12px;gap:6px;margin-left:2px}.hub-vitals-dot{color:#c8cdd6;margin-right:6px}.hub-vitals-link{background:none;border:none;color:#8a93a3;cursor:pointer;font-family:inherit;font-size:12px;padding:0}.hub-vitals-link:hover{color:var(--navy);text-decoration:underline}.hub-empty-strip{align-items:center;background:#fafafa;border:1px dashed #e0e0e0;border-radius:8px;color:#999;display:flex;flex-wrap:wrap;font-size:12px;gap:22px;padding:8px 14px}.hub-empty-strip-item{align-items:center;display:inline-flex;gap:8px}.hub-empty-strip-item button{background:none;border:1px solid #ddd;border-radius:4px;color:#888;cursor:pointer;font-size:11px;padding:1px 8px}.hub-empty-strip-item button:hover{background:#f0f5fc;border-color:var(--navy);color:var(--navy)}.hub-overview-main{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:2fr 1fr}.hub-fin-row{align-items:baseline;border-bottom:1px solid #f5f7fa;display:flex;font-size:13px;justify-content:space-between;padding:5px 0}.hub-fin-row span:first-child{color:var(--text-mid)}.hub-section-nav{display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;padding-bottom:2px}.hub-section-nav::-webkit-scrollbar{height:3px}.hub-section-nav::-webkit-scrollbar-track{background:#0000}.hub-section-nav::-webkit-scrollbar-thumb{background:var(--grey-border);border-radius:2px}.hub-section-btn{align-items:center;background:#fff;border:1.5px solid var(--grey-border);border-radius:20px;color:var(--text-mid);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:5px;padding:6px 14px;transition:all .15s;white-space:nowrap}.hub-section-btn:hover{background:#f4f7fc;border-color:var(--navy);color:var(--navy)}.hub-section-btn.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}.hub-section-count{background:#fff3;border-radius:10px;color:inherit;font-size:10px;font-weight:700;padding:1px 6px}.hub-section-btn:not(.active) .hub-section-count{background:var(--grey-light);color:var(--text-mid)}.hub-section-body{min-height:200px}.hub-section-actions{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.hub-section-heading{color:var(--navy);font-size:16px;font-weight:700;margin:0}.hub-overview-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr}.hub-overview-card{background:#fff;border:1px solid var(--grey-border);border-radius:10px;padding:16px;transition:box-shadow .15s}.hub-overview-card:hover{box-shadow:0 2px 10px #0000000f}.hub-overview-card-empty{background:#fafafa!important;border-color:#e0e0e0!important;border-style:dashed!important;padding:10px 14px!important}.hub-overview-card-empty:hover{box-shadow:none!important}.hub-card-title{align-items:center;color:var(--navy);display:flex;font-size:11px;font-weight:800;justify-content:space-between;letter-spacing:.7px;margin-bottom:12px;text-transform:uppercase}.hub-card-title-border{border-bottom:2px solid #eef2f8;margin-bottom:12px;padding-bottom:8px}.hub-mini-row{align-items:flex-start;border-bottom:1px solid #f5f7fa;display:flex;justify-content:space-between;padding:7px 0}.hub-mini-row:last-child{border-bottom:none}.hub-mini-label{font-size:13px;font-weight:500}.hub-mini-sub{color:var(--text-light);font-size:11px;margin-top:2px}.hub-empty{font-size:13px;font-style:italic;padding:16px 0}.hub-empty,.hub-empty-state{color:var(--text-light);text-align:center}.hub-empty-state{padding:60px 20px}.hub-finance-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:12px}.hub-finance-tile{background:#f8fafd;border:1px solid #eef2f8;border-radius:8px;padding:10px 12px}.hub-finance-tile-label{color:var(--text-light);font-size:10px;font-weight:600;letter-spacing:.5px;margin-bottom:3px;text-transform:uppercase}.hub-finance-tile-value{color:var(--navy);font-family:Barlow Condensed,sans-serif;font-size:17px;font-weight:800}.hub-nav-tiles{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.hub-nav-tile{background:#fff;border:1.5px solid var(--grey-border);border-radius:8px;cursor:pointer;padding:10px;text-align:center;transition:all .15s}.hub-nav-tile:hover{background:#f0f5fc;border-color:var(--navy);transform:translateY(-1px)}.hub-nav-tile-value{font-family:Barlow Condensed,sans-serif;font-size:22px;font-weight:800}.hub-nav-tile-label{color:var(--text-light);font-size:10px;font-weight:600;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.hub-agreement-card{background:#fff;border:1px solid var(--grey-border);border-radius:10px;margin-bottom:14px;padding:18px 20px}.hub-agreement-expiring{border-left:4px solid #e65100}.hub-agreement-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:14px}.hub-agreement-number{color:var(--navy);font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:800}.hub-agreement-name{color:var(--text-mid);font-size:13px;margin-top:2px}.hub-agreement-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.hub-agreement-detail{background:var(--grey-light);border-radius:6px;padding:8px 12px}.hub-agreement-detail span{color:var(--text-light);display:block;font-size:10px;letter-spacing:.5px;margin-bottom:3px;text-transform:uppercase}.hub-agreement-detail strong{color:var(--text-dark);font-size:13px;font-weight:600}.hub-agreement-notes{background:#f8f9fa;border-left:3px solid var(--grey-border);border-radius:6px;color:var(--text-mid);font-size:13px;margin-top:12px;padding:10px 12px}.hub-contacts-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.hub-contact-card{background:#fff;border:1px solid var(--grey-border);border-radius:8px;padding:16px}.hub-contact-card-name{align-items:center;color:var(--navy);display:flex;flex-wrap:wrap;font-size:14px;font-weight:700;gap:6px;margin-bottom:4px}.hub-contact-tag{border-radius:8px;font-size:9px;font-weight:700;padding:2px 6px;text-transform:uppercase}.hub-tag-primary{background:var(--navy);color:#fff}.hub-tag-billing{background:#2d6a4f;color:#fff}.hub-contact-card-title{color:var(--text-mid);font-size:12px;margin-bottom:8px}.hub-contact-card-details{color:var(--text-mid);display:flex;flex-direction:column;font-size:12px;gap:4px}.hub-table{border-collapse:collapse;font-size:13px;width:100%}.hub-table th{background:var(--grey-light);border-bottom:2px solid var(--grey-border);color:var(--text-light);font-size:11px;letter-spacing:.5px;padding:8px 12px;text-align:left;text-transform:uppercase}.hub-table td{border-bottom:1px solid var(--grey-border);padding:10px 12px;vertical-align:middle}.hub-table tr:hover td{background:#f8f9fa}.hub-modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.hub-modal{background:#fff;border-radius:10px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:100%;width:560px}.hub-modal-wide{width:780px}.hub-modal-header{align-items:flex-start;border-bottom:1px solid var(--grey-border);display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.hub-modal-header h2{color:var(--navy);font-size:18px;font-weight:700;margin:0}.hub-modal-close{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:24px;line-height:1;padding:0 4px}.hub-modal-close:hover{color:var(--red)}.hub-modal-body{flex:1 1;overflow-y:auto;padding:20px 24px}.hub-modal-footer{border-top:1px solid var(--grey-border);display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:16px 24px}.hub-form-section-title{border-bottom:2px solid var(--navy);color:var(--navy);font-size:11px;font-weight:700;letter-spacing:.8px;margin-bottom:14px;padding-bottom:6px;text-transform:uppercase}.hub-form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:8px}.hub-toggle-row{align-items:center;display:flex;gap:10px;margin-top:4px}.hub-toggle{display:inline-block;flex-shrink:0;height:22px;position:relative;width:40px}.hub-toggle input{height:0;opacity:0;width:0}.hub-toggle-slider{background:#ccc;border-radius:22px;cursor:pointer;inset:0;position:absolute;transition:.2s}.hub-toggle-slider:before{background:#fff;border-radius:50%;bottom:3px;content:"";height:16px;left:3px;position:absolute;transition:.2s;width:16px}.hub-toggle input:checked+.hub-toggle-slider{background:var(--blue)}.hub-toggle input:checked+.hub-toggle-slider:before{transform:translateX(18px)}.hub-checklist{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-bottom:8px}.hub-check-item{align-items:center;background:var(--grey-light);border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 10px}.hub-check-item input{accent-color:var(--blue);flex-shrink:0;height:15px;width:15px}.hub-check-item span:first-of-type{flex:1 1;font-weight:500}@media (max-width:1100px){.hub-overview-grid,.hub-overview-main{grid-template-columns:minmax(0,1fr)}.hub-open-cards{grid-template-columns:minmax(0,1fr)!important}.hub-open-cards>*,.hub-overview-grid>*,.hub-overview-main>*{min-width:0}.hub-page :has(>table){max-width:100%;min-width:0;overflow-x:auto}.hub-agreement-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.hub-header-right,.hub-header-top{flex-direction:column}.hub-header-right{width:100%}}@media (max-width:767.98px){.hub-page{padding:0 12px 32px}.hub-header{padding:16px 16px 0}.hub-header-top{align-items:stretch;gap:12px}.hub-company-name{font-size:21px;white-space:normal}.hub-company-name,.hub-contact-info,.hub-header-address{overflow-wrap:anywhere}.hub-business-profile,.hub-primary-contact{min-width:0}.hub-overview-grid,.hub-overview-main{grid-template-columns:minmax(0,1fr)}.hub-kpi-row>*,.hub-overview-grid>*,.hub-overview-main>*{min-width:0}.hub-agreement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-fluid-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important}.hub-fluid-grid>*{min-width:0}.hub-section-btn{min-height:36px;padding:8px 14px}.hub-quick-btn{min-height:36px;padding:8px 12px}.hub-vitals-alert,.hub-vitals-clear{padding:6px 12px}.hub-page button,.hub-page select{min-height:32px}.hub-note-del{min-width:32px}}.hub-kpi-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}.hub-kpi{align-items:center;background:#fff;border:1px solid #eceff3;border-radius:12px;box-shadow:0 1px 3px #0000000d;display:flex;gap:12px;padding:14px 16px}.hub-kpi-clickable{cursor:pointer}.hub-kpi-clickable:hover{border-color:#dce3ec;box-shadow:0 2px 10px #00000014}.hub-kpi-icon{align-items:center;background:#f1f5f9;border-radius:10px;display:flex;flex-shrink:0;font-size:18px;height:38px;justify-content:center;width:38px}.hub-kpi-label{color:var(--text-mid);font-size:12px;font-weight:700}.hub-kpi-value{color:var(--navy);font-size:22px;font-weight:800;line-height:1.15;margin-top:1px}.hub-kpi-sub{color:var(--text-light);font-size:11px;margin-top:2px}.hub-kpi-arrow{color:#c7ceda;font-size:18px;margin-left:auto}.hub-kpi-red{background:#fff8f8;border-color:#f6d4d4}.hub-kpi-red .hub-kpi-icon{background:#fde8e8}.hub-kpi-red .hub-kpi-value{color:var(--red)}.hub-kpi-green .hub-kpi-value{color:#1b7f3b}.hub-kpi-green .hub-kpi-icon{background:#e7f6ec}.hub-renewal-banner{align-items:center;background:#fff8ec;border:1px solid #f5d9a6;border-radius:12px;color:#8a5a00;display:flex;flex-wrap:wrap;font-size:13px;gap:12px;padding:12px 16px}.hub-renewal-btn{background:#fff;border:1px solid #e3c88a;border-radius:8px;color:#8a5a00;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;padding:6px 14px;white-space:nowrap}.hub-renewal-btn:hover{background:#fff1d8}.hub-zero-row{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.hub-zero-card{align-items:center;background:#fff;border:1px solid #eceff3;border-radius:12px;box-shadow:0 1px 3px #0000000a;display:flex;gap:10px;padding:12px 16px}.hub-zero-label{color:var(--text-mid);font-size:12px;font-weight:700}.hub-zero-value{color:#9aa3b2;font-size:22px;font-weight:800;line-height:1.15}.hub-detail-row{align-items:baseline;border-bottom:1px solid #f4f6f9;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:5px 0}.hub-detail-row:last-child{border-bottom:none}.hub-detail-row span:first-child{color:var(--text-light);white-space:nowrap}.hub-detail-row span:last-child{color:var(--navy);font-weight:600;min-width:0;text-align:right}.hub-timeline-filters{display:flex;flex-wrap:wrap;gap:6px}.hub-timeline-filter{background:#fff;border:1px solid #e3e8ef;border-radius:999px;color:var(--text-mid);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;padding:4px 12px}.hub-timeline-filter:hover{border-color:#c7ceda}.hub-timeline-filter.is-on{background:#eef2f7;border-color:#c7ceda;color:var(--navy);font-weight:700}.hub-ws-table{border-collapse:collapse;font-size:12px;width:100%}.hub-ws-table th{color:var(--text-light);font-size:10px;font-weight:700;letter-spacing:.04em;padding:0 6px 6px 0;text-align:left;text-transform:uppercase}.hub-ws-table td{border-top:1px solid #f4f6f9;padding:6px 6px 6px 0}@media (max-width:1100px){.hub-kpi-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.hub-kpi-row{grid-template-columns:1fr}}.cr-card{background:#fff;border:1px solid var(--grey-border);border-radius:12px;margin-bottom:16px;overflow:visible}.cr-head{align-items:center;background:var(--navy);border-radius:12px 12px 0 0;color:#fff;display:flex;gap:10px;padding:12px 16px}.cr-head-name{font-size:16px;font-weight:800}.cr-head-sub{color:#fff9;font-size:11.5px}.cr-head-btn{background:#ffffff29;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;padding:6px 12px;white-space:nowrap}.cr-head-btn:hover{background:#ffffff42}.cr-menu{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 30px #00000026;min-width:210px;overflow:hidden;position:absolute;right:0;top:34px;z-index:20}.cr-menu button{background:none;border:none;color:var(--navy);cursor:pointer;display:block;font-family:inherit;font-size:12.5px;font-weight:600;padding:9px 14px;text-align:left;width:100%}.cr-menu button:hover{background:#f4f7fb}.cr-notes{background:#f5f8fd;border-bottom:1px solid #eef1f5;padding:10px 16px}.cr-notes-title{color:var(--navy);font-size:12px;font-weight:800;margin-bottom:2px}.cr-link{background:none;border:none;color:var(--blue);cursor:pointer;flex-shrink:0;font-family:inherit;font-size:11.5px;font-weight:700}.cr-tabs{border-bottom:1px solid #eef1f5;display:flex;flex-wrap:wrap;gap:4px;padding:0 16px}.cr-tab{background:none;border:none;border-bottom:3px solid #0000;color:#6b7688;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;padding:10px 12px}.cr-tab.is-on{border-bottom-color:var(--red);color:var(--navy)}.cr-body{padding:14px 16px 16px}.cr-body-split{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) 340px}.cr-section-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px}.cr-muted{color:#8a94a6;font-size:11.5px}.cr-row{cursor:pointer}.cr-row:hover>td{background:#f7faff}.cr-row.is-open>td{background:#eef4ff}.cr-row.is-open>td:first-child{box-shadow:inset 3px 0 0 var(--navy)}.cr-panel{background:#fcfdff;border:1px solid #e4e9f0;border-radius:12px;padding:14px;position:sticky;top:14px}.cr-panel-head{gap:10px;margin-bottom:12px}.cr-panel-head,.cr-panel-icon{align-items:center;display:flex}.cr-panel-icon{background:#eef3fa;border-radius:10px;flex-shrink:0;font-size:17px;height:38px;justify-content:center;width:38px}.cr-icon-btn{background:none;border:none;color:#94a3b8;cursor:pointer;font-family:inherit;font-size:15px}.cr-panel-label{color:#8a94a6;font-size:10.5px;font-weight:800;letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}.cr-contact{align-items:center;border-bottom:1px solid #eff2f7;display:flex;font-size:12.5px;gap:10px;padding:8px 0}.cr-contact:last-of-type{border-bottom:none}.cr-avatar{align-items:center;background:#e8eef7;border-radius:50%;color:var(--navy);display:flex;flex-shrink:0;font-size:11px;font-weight:800;height:32px;justify-content:center;width:32px}.cr-email-btn{background:#fff;border:1px solid #d5dde7;border-radius:8px;color:var(--navy);font-size:11.5px;font-weight:700;padding:6px 10px;text-decoration:none;white-space:nowrap}.cr-email-btn:hover{border-color:var(--blue);color:var(--blue)}.cr-select{background:#fff;border:1px solid #d5dde7;border-radius:8px;color:var(--navy);font-family:inherit;font-size:13px;padding:7px 10px}@media (max-width:1150px){.cr-body-split{grid-template-columns:1fr}.cr-panel{position:static}}.qb{--qb-navy:#0b1d3a;--qb-blue:#0b5ed7;--qb-blue-soft:#eaf2fe;--qb-green:#1e9e57;--qb-green-soft:#e7f6ee;--qb-red:#c0272d;--qb-red-soft:#fdecec;--qb-amber:#b26a00;--qb-line:#e6e8ec;--qb-muted:#5b6472;--qb-faint:#8a94a6;color:#1a1f2b;font-size:14px;margin:0 auto;max-width:1280px;padding:18px 16px 60px}.qb *{box-sizing:border-box}.qb-top{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.qb-top h1{color:var(--qb-navy);font-size:26px;font-weight:700;margin:0}.qb-back{background:none;border:0;color:var(--qb-blue);cursor:pointer;font-size:13px;font-weight:600;padding:0}.qb-badge{background:#fbe7c6;border-radius:999px;color:#8a5300;font-size:12px;font-weight:600;padding:3px 10px}.qb-badge.red{background:var(--qb-red-soft);color:var(--qb-red)}.qb-badge.green{background:var(--qb-green-soft);color:var(--qb-green)}.qb-saved{color:var(--qb-faint);font-size:12px;margin-left:auto}.qb-grid{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) 350px}@media (max-width:1000px){.qb-grid{grid-template-columns:1fr}}.qb-card{background:#fff;border:1px solid var(--qb-line);border-radius:12px;margin-bottom:14px;padding:16px}.qb-card h2{color:var(--qb-navy);font-size:16px;margin:0}.qb-card-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.qb-card-head .qb-sp{margin-left:auto}.qb-fields{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1.3fr 1.3fr 1fr}.qb-fields+.qb-fields{margin-top:12px}@media (max-width:760px){.qb-fields{grid-template-columns:1fr}}.qb-label{color:var(--qb-muted);display:block;font-size:12px;font-weight:600;margin-bottom:5px}.qb-inp{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#1a1f2b;font-family:inherit;font-size:14px;padding:7px 9px;width:100%}.qb-inp:focus{border-color:var(--qb-blue);outline:2px solid #bfd6fb}.qb-inp:disabled{background:#f5f6f8;color:#5b6472}textarea.qb-inp{min-height:80px;resize:vertical}.qb-hint{color:var(--qb-faint);font-size:12px;margin-top:4px}.qb-warn{color:var(--qb-amber);display:block;font-size:11px;margin-top:2px}.qb-err{color:var(--qb-red);font-size:12px}.qb-seg{border:1px solid #cbd5e1;border-radius:8px;display:flex;overflow:hidden}.qb-seg button{background:#fff;border:0;color:var(--qb-muted);cursor:pointer;flex:1 1;font-family:inherit;font-weight:600;padding:7px 8px}.qb-seg button.on{background:var(--qb-blue);color:#fff}.qb-btn{align-items:center;background:#fff;border:1px solid #bfd3f5;border-radius:8px;color:var(--qb-blue);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;padding:7px 12px;white-space:nowrap}.qb-btn:hover{background:#f5f9ff}.qb-btn:disabled{cursor:not-allowed;opacity:.55}.qb-btn.primary{background:var(--qb-blue);border-color:var(--qb-blue);color:#fff}.qb-btn.plain{border-color:#cbd5e1;color:var(--qb-navy)}.qb-btn.block{font-size:15px;justify-content:center;padding:10px;width:100%}.qb-tabs{display:flex;flex-wrap:wrap;gap:6px}.qb-tab{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:var(--qb-muted);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:6px 12px}.qb-tab.on{background:var(--qb-navy);border-color:var(--qb-navy);color:#fff}.qb-tab .amt{font-weight:500;margin-left:6px;opacity:.8}.qb-tab.bad{border-color:var(--qb-red)}.qb-table-wrap{overflow-x:auto}table.qb-t{border-collapse:collapse;min-width:640px;width:100%}table.qb-t th{background:#f6f8fa;color:var(--qb-muted);font-size:12px;font-weight:600;padding:7px;text-align:left;white-space:nowrap}table.qb-t td{border-bottom:1px solid var(--qb-line);padding:6px 7px;vertical-align:middle}table.qb-t .num{text-align:right;white-space:nowrap}table.qb-t .qb-inp{padding:5px 7px}.qb-w-qty{width:72px}.qb-w-money{width:104px}.qb-w-mult{width:92px}.qb-w-hrs{width:76px}.qb-tot{color:var(--qb-blue);font-weight:700}tr.qb-below{background:var(--qb-red-soft)}tr.qb-below .qb-tot{color:var(--qb-red)}.qb-del{background:none;border:0;color:var(--qb-faint);cursor:pointer;font-size:16px}.qb-del:hover{color:var(--qb-red)}.qb-internal-col{color:var(--qb-muted);font-size:13px}.qb.hide-internal .qb-internal{display:none!important}.qb-subtabs{border-bottom:1px solid var(--qb-line);display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.qb-subtabs button{background:none;border:0;border-bottom:2px solid #0000;color:var(--qb-muted);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 0}.qb-subtabs button.on{border-color:var(--qb-blue);color:var(--qb-blue)}.qb-row{display:flex;justify-content:space-between;padding:5px 0}.qb-row.sub{border-top:1px solid var(--qb-line);font-weight:700;margin-top:6px;padding-top:9px}.qb-grand{align-items:baseline;background:var(--qb-blue-soft);border-radius:10px;color:var(--qb-blue);display:flex;justify-content:space-between;margin-top:10px;padding:12px 14px}.qb-grand .l{font-size:20px;font-weight:700}.qb-grand .v{font-size:28px;font-weight:700}.qb-gauge{align-items:center;display:flex;gap:12px;margin:4px 0 12px}.qb-ring{flex-shrink:0;height:60px;place-items:center;width:60px}.qb-ring,.qb-ring .in{border-radius:50%;display:grid}.qb-ring .in{background:#fff;font-weight:700;height:46px;place-items:center;width:46px}.qb-pct{font-size:24px;font-weight:700}.qb-bar{background:#e6e9ee;border-radius:6px;height:9px;margin-top:7px;position:relative}.qb-bar .fill{border-radius:6px;height:100%}.qb-bar .min{background:var(--qb-navy);height:17px;position:absolute;top:-4px;width:2px}.qb-alert{border-radius:8px;font-size:13px;margin:8px 0;padding:8px 10px}.qb-alert.red{background:var(--qb-red-soft);color:var(--qb-red)}.qb-alert.green{background:var(--qb-green-soft);color:var(--qb-green)}.qb-alert.amber{background:#fff4e0;color:#7a4a00}.qb-tm{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr 70px auto;margin-top:8px}.qb-tm select{grid-column:1/-1}.qb-toggle{align-items:center;background:none;border:0;color:var(--qb-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;font-weight:600;gap:6px;-webkit-user-select:none;user-select:none}.qb-sw{background:#cbd5e1;border-radius:10px;height:18px;position:relative;width:32px}.qb-sw:after{background:#fff;border-radius:50%;content:"";height:14px;left:2px;position:absolute;top:2px;transition:.15s;width:14px}.qb-toggle.on .qb-sw{background:var(--qb-blue)}.qb-toggle.on .qb-sw:after{left:16px}.qb-actions{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:8px}.qb-dd{position:relative}.qb-dd-list{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 6px 18px #0000001f;left:0;margin-top:2px;max-height:260px;overflow:auto;position:absolute;right:0;top:100%;z-index:50}.qb-dd-list button{background:#fff;border:0;cursor:pointer;display:block;font-family:inherit;font-size:13px;padding:7px 10px;text-align:left;width:100%}.qb-dd-list button:hover{background:#f2f6fd}.qb-dd-list .meta{color:var(--qb-faint);font-size:11px}.qb-modal-bg{align-items:flex-start;background:#0b1d3a8c;display:flex;inset:0;justify-content:center;overflow:auto;padding:30px 12px;position:fixed;z-index:1000}.qb-paper{background:#fff;border-radius:6px;box-shadow:0 20px 60px #0000004d;max-width:100%;padding:30px 34px;width:760px}.qb-paper h3{color:var(--qb-navy);font-size:21px;margin:0}.qb-paper .meta{color:var(--qb-muted);display:flex;flex-wrap:wrap;font-size:13px;gap:20px;justify-content:space-between;margin:14px 0 18px}.qb-paper table{border-collapse:collapse;font-size:13px;width:100%}.qb-paper th{border-bottom:2px solid var(--qb-navy);padding:6px 4px;text-align:left}.qb-paper td{border-bottom:1px solid var(--qb-line);padding:6px 4px}.qb-paper .num{text-align:right}.qb-paper .tots{margin-left:auto;margin-top:10px;width:260px}.qb-close{background:none;border:0;color:var(--qb-muted);cursor:pointer;float:right;font-size:22px}.qb-photos{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.qb-photo{border:1px solid var(--qb-line);border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:6px;position:relative}.qb-photo img{background:#f1f3f6;border-radius:6px;height:120px;object-fit:cover;width:100%}.qb-photo .qb-del{background:#fff;border-radius:6px;position:absolute;right:8px;top:8px}.qb-send{gap:4px;margin-top:8px}.po-page,.qb-send{display:flex;flex-direction:column}.po-page{height:100%;overflow:hidden}.po-tabs{border-bottom:2px solid var(--grey-border);display:flex;flex-shrink:0}.po-tab{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-light);cursor:pointer;font-size:13px;font-weight:400;margin-bottom:-2px;padding:10px 20px;transition:all .15s}.po-tab.active{border-bottom-color:var(--red);color:var(--navy);font-weight:700}.po-tab-body{flex:1 1;overflow-y:auto;padding:20px 0 24px}.po-summary-bar{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.po-summary-card{background:var(--white);border:1px solid var(--grey-border);border-radius:8px;padding:12px 16px}.po-summary-label{color:var(--text-light);font-size:10px;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.po-summary-value{font-family:Barlow Condensed,sans-serif;font-size:20px;font-weight:800}.po-planning-bar{align-items:center;background:var(--white);border:1px solid var(--grey-border);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:14px 18px}.po-planning-label{color:var(--navy);font-size:13px;font-weight:700}.po-success-bar{background:#e8f5e9;border:1px solid #a5d6a7;border-left:4px solid #27ae60;color:#2e7d32;font-size:13px;margin-bottom:16px;padding:12px 16px}.po-warning-bar{background:#fff8e1;border:1px solid #ffe082;font-size:13px;margin-bottom:14px;padding:10px 14px}.po-vendor-group{border:1px solid var(--grey-border);border-radius:4px;margin-bottom:16px;overflow:hidden}.po-vendor-unassigned{border-color:#ddd}.po-vendor-header{align-items:center;background:var(--navy);display:flex;justify-content:space-between;padding:10px 16px}.po-vendor-unassigned .po-vendor-header{background:#f5f5f5}.po-vendor-name{color:#fff;font-family:Barlow Condensed,sans-serif;font-size:14px;font-weight:700;text-transform:uppercase}.po-vendor-unassigned .po-vendor-name{color:#999}.po-vendor-count{background:#ffffff26;border-radius:10px;color:#ffffffbf;font-size:10px;padding:2px 7px}.po-vendor-unassigned .po-vendor-count{background:#eee;color:#999}.po-vendor-total{color:#7dcea0;font-size:12px;font-weight:600}.po-vendor-unassigned .po-vendor-total{color:#999}.po-plan-table{border-collapse:collapse;width:100%}.po-plan-table th{background:#f8f9fa;border-bottom:1px solid var(--grey-border);color:var(--text-light);font-size:10px;font-weight:700;padding:7px 12px;text-align:left;text-transform:uppercase}.po-plan-table td{border-bottom:1px solid #f0f0f0;font-size:13px;padding:9px 12px}.po-qty-input{border:1px solid var(--grey-border);border-radius:4px;font-size:13px;padding:4px 6px;text-align:center;width:60px}.po-qty-input:focus{border-color:var(--blue);outline:none}.po-vendor-select{background:#fff;border:1px solid var(--grey-border);border-radius:4px;font-size:11px;padding:4px 6px;width:100%}.po-detail-panel{background:var(--white);border-left:1px solid var(--grey-border);display:flex;flex-direction:column;flex-shrink:0;min-width:440px;overflow-y:auto;width:440px}.po-panel-header{align-items:flex-start;background:var(--navy);border-bottom:3px solid var(--red);display:flex;justify-content:space-between;padding:18px 20px;position:sticky;top:0;z-index:5}.po-panel-number{color:#fff;font-family:Barlow Condensed,sans-serif;font-size:18px;font-weight:800;text-transform:uppercase}.po-panel-body{flex:1 1;overflow-y:auto;padding:16px 20px}.po-total-bar{align-items:center;background:#f0fff4;border:1px solid #a5d6a7;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:14px;padding:10px 14px}.po-total-bar span{color:#2e7d32;font-size:12px;font-weight:700}.po-total-bar strong{color:#27ae60;font-family:Barlow Condensed,sans-serif;font-size:18px;font-weight:800}.tech-flag{background:#fff3e0;border:1px solid #ffcc80;border-radius:10px;color:#e65100;display:inline-block;font-size:10px;font-weight:700;margin-top:3px;padding:2px 8px}.po-tech-notice{align-items:flex-start;background:#fff8e1;border:1px solid #ffe082;border-left:4px solid #ffa000;border-radius:4px;color:#7b5800;display:flex;font-size:13px;gap:10px;margin-bottom:14px;padding:10px 14px}.po-tech-notice-icon{flex-shrink:0;font-size:18px}.po-actions{border-bottom:1px solid var(--grey-border);display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding:10px 0}.po-info-block{background:var(--grey-light);border-radius:6px;margin-bottom:12px;padding:12px 14px}.po-info-label{color:var(--text-light);font-size:10px;font-weight:700;letter-spacing:.6px;margin-bottom:8px;text-transform:uppercase}.po-timeline{font-size:12px}.po-timeline-row{border-bottom:1px solid var(--grey-border);color:var(--text-mid);display:flex;justify-content:space-between;padding:4px 0}.po-timeline-row:last-child{border-bottom:none}.po-line-item{border-bottom:1px solid #f0f0f0;padding:10px 0}.po-line-item:last-child{border-bottom:none}.po-line-tech{background:#fffbf0;border-radius:4px;margin-bottom:4px;padding:10px 8px}.po-modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.po-modal{background:#fff;border-radius:10px;box-shadow:0 20px 60px #00000040;max-width:95vw;width:420px}.po-modal-header{border-bottom:1px solid var(--grey-border);padding:16px 20px}.po-modal-header h3{color:var(--navy);font-size:16px;font-weight:700}.po-modal-body{padding:20px}.po-modal-footer{border-top:1px solid var(--grey-border);display:flex;gap:10px;justify-content:flex-end;padding:14px 20px}@media (max-width:900px){.po-detail-panel{inset:0;min-width:0;position:fixed;width:100%;z-index:100}.po-summary-bar{grid-template-columns:1fr 1fr}}.ts-page{--ts-bg:#f6f7f9;--ts-surface:#fff;--ts-surface-2:#fafbfc;--ts-hover:#f8f9fb;--ts-line:#e6e8ec;--ts-faint:#8a94a6;--ts-empty:#c5ccd6;--ts-muted:#5b6472;--ts-text:#1a1f2b;--ts-navy:#1b2a4a;--ts-accent:#e8722a;--ts-accent-bg:#fdeee3;--ts-accent-fg:#b4531a;--ts-green:#2f6b3a;--ts-green-bg:#eaf3ec;--ts-red:#b3261e;--ts-red-bg:#fbe9e7;--ts-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;color:var(--ts-text);font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:13px;font-variant-numeric:tabular-nums}.ts-page button,.ts-page input,.ts-page select{font-family:inherit}.ts-head{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:18px}.ts-title{color:var(--ts-navy);font-family:Barlow Condensed,sans-serif;font-size:28px;font-weight:800;letter-spacing:.02em;line-height:1;margin:0 0 6px;text-transform:uppercase}.ts-subline{align-items:center;display:flex;gap:10px}.ts-tabs{border-bottom:1px solid var(--ts-line);display:flex;gap:28px;margin-bottom:16px}.ts-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--ts-muted);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;margin-bottom:-1px;padding:0 2px 12px;white-space:nowrap}.ts-tab-on,.ts-tab:hover{color:var(--ts-text)}.ts-tab-on{border-bottom-color:var(--ts-accent);font-weight:600}.ts-lbl{color:var(--ts-faint);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.ts-lbl-dark{color:var(--ts-text)}.ts-muted{color:var(--ts-muted);font-size:12px}.ts-faint{color:var(--ts-faint);font-size:12px}.ts-xs{font-size:11px}.ts-empty{color:var(--ts-empty);font-weight:400}.ts-dot{background:currentColor;border-radius:50%;display:inline-block;flex-shrink:0;height:6px;width:6px}.ts-ok{color:var(--ts-green)}.ts-no,.ts-ok{align-items:center;display:inline-flex;font-size:12px;gap:6px;white-space:nowrap}.ts-no{color:var(--ts-accent-fg)}.ts-ic-faint,.ts-step{color:var(--ts-faint)}.ts-step{font-family:var(--ts-mono);font-size:11px}.ts-vr{background:var(--ts-line);height:18px;margin:0 4px;width:1px}.ts-pill{align-items:center;border-radius:6px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;height:22px;line-height:1;padding:0 9px;white-space:nowrap}.ts-pill-neutral{background:#eef0f4;color:#3d4a5c}.ts-pill-submitted{background:var(--ts-accent-bg);color:var(--ts-accent-fg)}.ts-pill-approved{background:var(--ts-green-bg);color:var(--ts-green)}.ts-pill-rejected{background:var(--ts-red-bg);color:var(--ts-red)}.ts-status-draft{color:var(--ts-faint);font-size:12px}.ts-away{align-items:center;background:var(--ts-surface);border-radius:5px;box-shadow:0 0 0 1px var(--ts-line);color:var(--ts-muted);display:inline-flex;font-size:11px;font-weight:500;gap:5px;height:20px;padding:0 7px;white-space:nowrap}.ts-away-range{color:var(--ts-faint);font-weight:400}.ts-away-x{background:none;border:none;color:var(--ts-faint);cursor:pointer;display:inline-flex;margin-left:2px;padding:0}.ts-away-x:hover{color:var(--ts-text)}.ts-toolbar{flex-wrap:wrap;gap:8px}.ts-toolbar,.ts-weeknav{align-items:center;display:flex}.ts-weeknav{gap:6px}.ts-week{font-size:15px;font-weight:600;padding:0 6px}.ts-ghost,.ts-week{color:var(--ts-text);white-space:nowrap}.ts-ghost{align-items:center;background:var(--ts-surface);border:1px solid var(--ts-line);border-radius:7px;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:7px;height:30px;padding:0 11px;transition:border-color .12s,background .12s,color .12s}.ts-ghost:hover{border-color:#cdd2da}.ts-ghost:disabled{cursor:default}.ts-ghost-off,.ts-ghost:disabled{background:var(--ts-surface-2);color:var(--ts-faint)}.ts-ghost-off .ts-step,.ts-ghost:disabled .ts-step{color:var(--ts-empty)}.ts-ghost-accent{background:var(--ts-accent);border-color:var(--ts-accent);color:#fff}.ts-ghost-accent .ts-step{color:#ffffffbf}.ts-ghost-accent:hover{background:#d9661f;border-color:#d9661f}.ts-ghost-danger:hover{border-color:#e8b4ae;color:var(--ts-red)}.ts-iconbtn{padding:0 7px}.ts-btn-n{color:inherit;font-size:12px;opacity:.7}.ts-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2714%27 height=%2714%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%238A94A6%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27><polyline points=%276 9 12 15 18 9%27/></svg>");background-position:right 8px center;background-repeat:no-repeat;padding-right:26px}.ts-date{color:var(--ts-faint);padding-left:9px}.ts-date input{background:#0000;border:none;color:var(--ts-text);font-size:12px;font-weight:500;outline:none;width:118px}.ts-search{align-items:center;background:var(--ts-surface);border:1px solid var(--ts-line);border-radius:7px;color:var(--ts-faint);display:flex;flex:1 1;gap:8px;height:30px;max-width:360px;min-width:220px;padding:0 8px 0 10px}.ts-search:focus-within{border-color:var(--ts-navy);box-shadow:0 0 0 3px #1b2a4a14}.ts-search input{background:#0000;border:none;color:var(--ts-text);flex:1 1;font-size:13px;min-width:0;outline:none}.ts-clear-x,.ts-search input::placeholder{color:var(--ts-faint)}.ts-clear-x{align-items:center;background:#0000;border:none;border-radius:5px;cursor:pointer;display:inline-flex;height:22px;justify-content:center;width:22px}.ts-clear-x:hover{background:#eef0f4;color:var(--ts-text)}.ts-chip{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--ts-muted);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;height:26px;padding:0 10px;white-space:nowrap}.ts-chip:hover{background:#eef0f4;color:var(--ts-text)}.ts-chip-on{color:var(--ts-text)}.ts-chip-on,.ts-count{background:var(--ts-surface);box-shadow:0 0 0 1px var(--ts-line)}.ts-count{align-items:center;border-radius:6px;color:var(--ts-muted);display:inline-flex;font-size:12px;font-weight:500;gap:6px;height:26px;padding:0 10px;white-space:nowrap}.ts-count-n{color:var(--ts-text);font-weight:600}.ts-count-zero,.ts-count-zero .ts-count-n{color:var(--ts-faint)}.ts-count-warm{background:var(--ts-accent-bg);box-shadow:none;color:var(--ts-accent-fg)}.ts-count-warm .ts-count-n{color:inherit}.ts-card{background:var(--ts-surface);border:1px solid var(--ts-line);border-radius:10px;overflow:hidden}.ts-card+.ts-card{margin-top:16px}.ts-table{border-collapse:collapse;width:100%}.ts-table thead{background:#0000}.ts-table thead th{border-bottom:1px solid var(--ts-line);color:var(--ts-faint);font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;padding:12px 8px 12px 0;text-align:left;text-transform:uppercase;vertical-align:middle;white-space:nowrap}.ts-table tbody td:first-child,.ts-table thead th:first-child{padding-left:20px}.ts-table tbody td:last-child,.ts-table thead th:last-child{padding-right:20px}.ts-table tbody tr{border-bottom:1px solid var(--ts-line);transition:background .1s}.ts-table tbody tr:last-child{border-bottom:none}.ts-table tbody tr:hover{background:#0000}.ts-table tbody td{color:var(--ts-text);font-size:13px;padding:13px 8px 13px 0;vertical-align:middle}.ts-row{cursor:pointer}.ts-row:hover{background:var(--ts-hover)!important}.ts-row-off{cursor:pointer}.ts-row-off .ts-name{color:var(--ts-muted)}.ts-row-sel{background:#f3f5f8!important;box-shadow:inset 3px 0 0 var(--ts-accent)}.ts-c{text-align:center}.ts-num{font-weight:500}.ts-strong{font-weight:600}.ts-money{color:var(--ts-green);font-weight:500}.ts-dim{opacity:.5}.ts-x{color:var(--ts-empty);font-weight:500;letter-spacing:0;text-transform:none}.ts-sub{color:var(--ts-faint);display:block;font-size:10px;font-weight:600;letter-spacing:.04em;margin-top:2px}.ts-sub-faint{color:var(--ts-empty)}.ts-note{color:var(--ts-faint);font-size:10px;font-weight:400;margin-top:2px}.ts-table td.ts-tot,.ts-table th.ts-tot{background:#f3f5f8;padding-left:10px;padding-right:10px}.ts-table th.ts-tot{color:var(--ts-text)}.ts-table td.ts-tot{font-weight:600}.ts-tech{display:flex;gap:10px}.ts-av,.ts-tech{align-items:center}.ts-av{background:var(--ts-navy);border-radius:6px;color:#fff;display:inline-flex;flex-shrink:0;font-size:11px;font-weight:600;height:28px;justify-content:center;letter-spacing:.02em;width:28px}.ts-av-off{background:var(--ts-line);color:var(--ts-faint)}.ts-name{font-size:13px;font-weight:500}.ts-status{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.ts-ws{font-weight:400;white-space:nowrap}.ts-ws b{font-weight:600}.ts-emptyrow,.ts-loading{color:var(--ts-faint);padding:40px!important;text-align:center}.ts-actions{display:flex;gap:6px;justify-content:flex-end}.ts-summary-head{align-items:center;border-bottom:1px solid var(--ts-line);display:flex;gap:10px;padding:12px 20px}.ts-eq{flex-wrap:wrap;gap:14px;padding:20px 20px 18px}.ts-eq,.ts-stat{align-items:flex-start;display:flex}.ts-stat{flex-direction:column;gap:4px}.ts-stat-term{width:118px}.ts-big{color:var(--ts-text);font-size:26px;font-weight:600;letter-spacing:-.01em;line-height:1}.ts-big small{color:var(--ts-faint);font-size:14px;font-weight:500;margin-left:1px}.ts-big-sm{font-size:20px}.ts-zero{color:var(--ts-empty)}.ts-stat .ts-lbl{margin-top:2px}.ts-hint{color:var(--ts-faint);font-size:11px;white-space:nowrap}.ts-op{color:var(--ts-empty);font-size:18px;font-weight:400;margin-top:4px;padding:0 2px}.ts-stat-total{background:#f3f5f8;border-radius:8px;margin-top:-14px;min-width:190px;padding:14px 16px}.ts-facts{border-top:1px solid var(--ts-line);display:flex;flex-wrap:wrap;gap:36px;padding:14px 20px}.ts-facts .ts-stat{align-items:baseline;flex-direction:row;gap:10px}.ts-facts .ts-lbl{margin-top:0}.ts-notes{grid-gap:6px 40px;border-top:1px solid var(--ts-line);color:var(--ts-muted);display:grid;font-size:12px;gap:6px 40px;grid-template-columns:1fr 1fr;line-height:1.5;padding:14px 20px 16px}.ts-notes b{color:var(--ts-text);font-weight:500}.ts-warn{align-items:center;background:var(--ts-accent-bg);border-top:1px solid #f3c9a9;color:var(--ts-accent-fg);display:flex;font-size:12px;gap:10px;padding:11px 20px}.ts-warn strong{font-weight:600}.ts-footer{align-items:center;display:flex;flex-wrap:wrap;gap:8px;padding:14px 2px 10px}@media (max-width:1100px){.ts-notes{grid-template-columns:1fr}}.tech-portal{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0 auto;max-width:480px}.tech-portal,.tech-screen{background:#f0f2f5;min-height:100vh}.tech-screen{display:flex;flex-direction:column;padding-bottom:calc(62px + env(safe-area-inset-bottom, 0px))}.tech-screen--dark{background:#0b1d3a}.tech-header{background:#0b1d3a;border-bottom:3px solid #e8722a;color:#fff;justify-content:space-between;padding:14px 16px;position:sticky;top:0;z-index:100}.tech-header,.tech-header-left{align-items:center;display:flex}.tech-header-left{gap:10px}.tech-header-title{font-size:17px;font-weight:700}.tech-header-right{align-items:center;display:flex;gap:8px}.tech-back-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:28px;line-height:1;margin-left:-4px;padding:0 4px}.tech-logout-btn{align-items:center;background:#ffffff26;display:flex;font-size:16px;height:34px;justify-content:center;width:34px}.tech-logout-btn,.tech-save-btn{border:none;border-radius:8px;color:#fff;cursor:pointer}.tech-save-btn{background:#e8722a;font-size:14px;font-weight:700;padding:7px 16px}.tech-greeting-bar{background:#fff;border-bottom:1px solid #e0e0e0;padding:10px 16px}.tech-greeting-date{color:#666;font-size:13px}.tech-tabs{background:#fff;border-bottom:2px solid #e0e0e0;display:flex}.tech-tab{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;margin-bottom:-2px;padding:12px 8px}.tech-tab.active{border-bottom-color:#e8722a;color:#0b1d3a;font-weight:700}.tech-job-list{flex:1 1;overflow-y:auto;padding:8px 12px 80px}.tech-loading{color:#666}.tech-empty,.tech-loading{font-size:14px;padding:60px 20px;text-align:center}.tech-empty{color:#999}.tech-job-card{cursor:pointer}.tech-job-number{color:#0b1d3a;font-family:monospace;font-size:11px;font-weight:800}.tech-job-wo{color:#666;font-size:10px}.tech-job-title{color:#111;font-size:13px;font-weight:600}.tech-job-customer{color:#333;font-size:13px;font-weight:500}.tech-job-site{color:#666;font-size:11px}.tech-job-meta{display:flex;flex-wrap:wrap;gap:8px}.tech-job-meta span{color:#555;font-size:11px}.tech-priority-chip,.tech-report-chip{border-radius:8px;font-size:9px;font-weight:700;padding:2px 6px}.tech-job-status-bar{font-size:10px;font-weight:700}.tech-job-detail{flex:1 1;overflow-y:auto;padding-bottom:80px}.tech-detail-status-bar{align-items:center;color:#fff;display:flex;justify-content:space-between;padding:10px 16px}.tech-detail-card{background:#fff;border-radius:10px;margin:12px 12px 0;padding:16px}.tech-detail-title{color:#0b1d3a;font-size:18px;font-weight:700;margin-bottom:6px}.tech-detail-meta{color:#555;font-size:13px;margin-top:4px}.tech-detail-section{background:#fff;border-radius:10px;margin:10px 12px 0;padding:14px 16px}.tech-detail-section.tech-internal-note{background:#fffef0;border:1px solid #f0e060}.tech-detail-section-title{color:#0b1d3a;font-size:13px;font-weight:700;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.tech-detail-label{color:#888;font-size:11px;letter-spacing:.5px;margin-bottom:3px;text-transform:uppercase}.tech-detail-value{color:#111;font-size:15px;font-weight:500;margin-bottom:6px}.tech-detail-row{border-bottom:1px solid #f0f0f0;display:flex;font-size:13px;justify-content:space-between;padding:7px 0}.tech-detail-row:last-child{border-bottom:none}.tech-detail-text{color:#444;font-size:13px;line-height:1.5}.tech-call-btn{background:#e8f5e9;color:#2e7d32;font-weight:600}.tech-call-btn,.tech-map-btn{border-radius:8px;display:block;font-size:13px;margin-top:6px;padding:8px 12px;text-decoration:none}.tech-map-btn{background:#e3f2fd;color:#1565c0}.tech-access-note{background:#fff8e1;border-radius:8px;color:#7b5800;font-size:12px;margin-top:6px;padding:8px 12px}.tech-equip-row,.tech-part-row{align-items:flex-start;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:10px 0}.tech-equip-row:last-child,.tech-part-row:last-child{border-bottom:none}.tech-equip-name,.tech-part-name{font-size:14px;font-weight:500}.tech-equip-meta,.tech-part-meta{color:#888;font-size:11px;margin-top:2px}.tech-part-qty{color:#0b1d3a;font-size:16px;font-weight:700}.tech-action-bar{background:#fff;border-top:1px solid #e0e0e0;bottom:0;box-shadow:0 -2px 12px #0000001a;left:50%;max-width:480px;padding:12px 16px;position:fixed;transform:translateX(-50%);width:100%;z-index:50}.tech-primary-btn{background:#0b1d3a;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:16px;width:100%}.tech-finalized-banner{background:#e8f5e9;border-radius:12px;color:#2e7d32;font-size:15px;font-weight:700;padding:14px;text-align:center}.tech-finalized-screen{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:40px 24px;text-align:center}.tech-worksheet-body{flex:1 1;overflow-y:auto;padding:12px 12px 100px}.tech-ws-section{background:#fff;border-radius:10px;margin-bottom:10px;padding:16px}.tech-ws-header-info{background:#f4f7fc;border:1px solid #c7d7f0}.tech-ws-section-title{border-bottom:2px solid #e8722a;color:#0b1d3a;font-size:14px;font-weight:700;letter-spacing:.5px;margin-bottom:14px;padding-bottom:8px;text-transform:uppercase}.tech-ws-row{border-bottom:1px solid #f0f0f0;display:flex;font-size:13px;justify-content:space-between;padding:6px 0}.tech-ws-row:last-child{border-bottom:none}.tech-ws-row span:first-child{color:#666}.tech-ws-row-2{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.tech-ws-field{margin-bottom:14px}.tech-ws-field label{color:#555;display:block;font-size:12px;font-weight:600;letter-spacing:.3px;margin-bottom:6px;text-transform:uppercase}.tech-ws-note{background:#fff8e1;border-left:3px solid #ffb300;border-radius:6px;color:#666;font-size:12px;margin-bottom:12px;padding:8px 12px}.tech-input{-webkit-appearance:none;background:#fff;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:15px;padding:11px 12px;width:100%}.tech-input:focus{border-color:#0b1d3a;outline:none}.tech-select{-webkit-appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23666' d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;font-size:15px;padding:11px 36px 11px 12px}.tech-select,.tech-textarea{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;width:100%}.tech-textarea{background:#fff;font-family:inherit;font-size:16px;line-height:1.5;min-height:100px;overflow:hidden;padding:12px;resize:none}.tech-toggle-group{display:flex;gap:8px}.tech-toggle-btn{background:#fff;border:2px solid #ddd;border-radius:8px;color:#666;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:11px;transition:all .15s}.tech-toggle-btn.active{background:#0b1d3a;border-color:#0b1d3a;color:#fff}.tech-toggle-btn.active-red{background:#c62828;border-color:#c62828;color:#fff}.tech-checklist-group{margin-bottom:14px}.tech-checklist-group-title{color:#888;font-size:11px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.tech-check-item{align-items:flex-start;border-bottom:1px solid #f5f5f5;display:flex;gap:12px;padding:10px 0}.tech-check-item.checked{background:#f0fff4;border-radius:6px;margin:0 -8px;padding:10px 8px}.tech-check-btn{align-items:center;background:#fff;border:2px solid #ddd;border-radius:6px;color:#2e7d32;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:28px;justify-content:center;transition:all .15s;width:28px}.tech-check-item.checked .tech-check-btn{background:#2e7d32;border-color:#2e7d32;color:#fff}.tech-check-label{color:#333;cursor:pointer;flex:1 1;font-size:14px;line-height:1.4}.tech-part-entry{background:#f8f9fa;border-radius:8px;margin-bottom:8px;padding:12px}.tech-part-entry .tech-input{background:#fff;margin-bottom:8px}.tech-next-visit-part{background:#f0f6ff;border:1px solid #c7d9f8}.tech-add-btn{background:none;border:2px dashed #ccc;border-radius:8px;color:#666;cursor:pointer;font-size:14px;margin-top:4px;padding:12px;width:100%}.tech-add-next{border-color:#93c5fd;color:#1d4ed8}.tech-remove-btn{align-items:center;background:#fce4ec;border:none;border-radius:8px;color:#c62828;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:36px;justify-content:center;width:36px}.tech-sig-wrap{position:relative}.tech-sig-canvas{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:crosshair;display:block;height:140px;touch-action:none;width:100%}.tech-sig-clear{background:#fce4ec;border:none;border-radius:6px;color:#c62828;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;position:absolute;right:8px;top:8px}.tech-sig-preview{position:relative}.tech-ws-actions{display:flex;gap:10px}.tech-save-draft-btn{background:#f5f5f5;border:2px solid #ddd;border-radius:12px;color:#333;flex:1 1;font-size:14px}.tech-finalize-btn,.tech-save-draft-btn{cursor:pointer;font-weight:700;padding:14px}.tech-finalize-btn{background:#e8722a;border:none;border-radius:12px;color:#fff;flex:2 1;font-size:15px}.tech-finalize-btn:disabled{opacity:.6}.tech-report-card{background:#fff;border-radius:12px;box-shadow:0 1px 4px #0000001a;cursor:pointer;padding:14px}.tech-report-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.tech-report-status{border-radius:10px;font-size:11px;font-weight:700;padding:3px 10px}.tech-report-status.finalized{background:#e8f5e9;color:#2e7d32}.tech-report-status.draft{background:#fff3e0;color:#e65100}@media (min-width:500px){.tech-portal{box-shadow:0 0 40px #00000026}.tech-action-bar{left:50%}}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 #e8722a80}50%{box-shadow:0 0 0 6px #e8722a00}}.arr-root{color:#1a1a2e;font-family:Arial,sans-serif;font-size:13px;max-width:1400px;padding:24px}.arr-page-header{margin-bottom:24px}.arr-page-title{color:#1a1a2e;font-size:22px;font-weight:700;margin:0 0 4px}.arr-page-subtitle{color:#666;font-size:12px;margin-bottom:8px}.arr-loading{color:#888;font-size:12px;font-style:italic}.arr-page-daterange{color:#888;font-size:12px;margin-top:2px}.arr-month-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-top:8px}.arr-month-card{background:#fff;border:1px solid #dde3ec;border-radius:10px;box-shadow:0 1px 4px #0000000f;cursor:pointer;padding:22px 20px;text-align:left;transition:border-color .15s,box-shadow .15s,transform .1s}.arr-month-card:hover{border-color:#90caf9;box-shadow:0 3px 10px #1565c01f;transform:translateY(-2px)}.arr-month-card-label{color:#1a1a2e;font-size:18px;font-weight:700;margin-bottom:2px}.arr-month-card-sub{color:#888;font-size:11px;letter-spacing:.05em;margin-bottom:12px;text-transform:uppercase}.arr-month-card-range{color:#888;font-size:10px;margin-bottom:10px}.arr-month-card-capture{background:#fff3e0;border:1px solid #ffcc80;border-radius:8px;color:#e65100;display:inline-block;font-size:11px;font-weight:600;padding:3px 9px}.arr-month-card-capture--done{background:#e8f5e9;border-color:#a5d6a7;color:#2e7d32}.arr-back-row{margin-bottom:10px}.arr-back-btn{background:none;border:none;color:#1565c0;cursor:pointer;font-size:13px;font-weight:600;padding:0}.arr-back-btn:hover{text-decoration:underline}.arr-view-toggles{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.arr-view-toggles-label{color:#888;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.arr-view-toggle-btn{background:#f0f0f0;border:1px solid #dde3ec;border-radius:12px;color:#888;cursor:pointer;font-size:11px;font-weight:600;padding:4px 12px;transition:all .15s}.arr-view-toggle-btn.active{background:#2e7d32;border-color:#2e7d32;color:#fff}.arr-view-toggle-btn:hover:not(.active){border-color:#90caf9;color:#1565c0}.arr-customer-card{background:#fff;border:1px solid #dde3ec;border-radius:8px;box-shadow:0 1px 4px #0000000f;margin-bottom:14px;overflow:hidden}.arr-customer-header{align-items:center;background:#f8f9fc;border-bottom:1px solid #dde3ec;cursor:pointer;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:13px 18px;-webkit-user-select:none;user-select:none}.arr-customer-header:hover{background:#eef1f8}.arr-customer-left{gap:10px}.arr-customer-left,.arr-customer-right{align-items:center;display:flex;flex-wrap:wrap}.arr-customer-right{gap:12px}.arr-customer-name{color:#1a1a2e;font-size:15px;font-weight:700}.arr-agreement-num{color:#888;font-size:12px}.arr-billing-pill{background:#e8f4fd;border:1px solid #90caf9;border-radius:10px;color:#1565c0;font-size:11px;font-weight:600;padding:2px 9px}.arr-summary-rev{color:#555;font-size:12px}.arr-summary-cost{color:#c62828;font-size:12px}.arr-chevron{color:#888;font-size:11px}.arr-profit-badge{border-radius:10px;display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;white-space:nowrap}.arr-profit--pos{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.arr-profit--neg{background:#fce4ec;border:1px solid #ef9a9a;color:#c62828}.arr-customer-body{padding:16px 18px}.arr-warn{background:#fff8e1;border:1px solid #ffe082;border-radius:4px;color:#6d4c41;font-size:12px;margin-bottom:12px;padding:7px 12px}.arr-panels{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr)}.arr-category-panel{background:#fafbfd;border:1px solid #dde3ec;border-radius:6px;padding:12px 14px}.arr-category-panel--empty{background:#f5f5f5;opacity:.5}.arr-category-panel--total{background:#f0f4fb;border-color:#b0c4e8;font-weight:500}.arr-cat-title{border-bottom:2px solid #e3ecfa;color:#1565c0;font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:10px;padding-bottom:4px;text-transform:uppercase}.arr-category-panel--total .arr-cat-title{border-color:#b0c4e8;color:#1a1a2e}.arr-cat-none{color:#aaa;font-size:12px;font-style:italic}.arr-cat-row{align-items:baseline;border-bottom:1px solid #f0f0f0;display:flex;font-size:12px;justify-content:space-between;padding:3px 0}.arr-cat-row:last-child{border-bottom:none}.arr-cat-label{color:#666;flex-shrink:0;padding-right:8px}.arr-cat-value{font-weight:600;text-align:right}.arr-cat-row--cost .arr-cat-value{color:#c62828}.arr-cat-row--revenue .arr-cat-value{color:#2e7d32}.arr-cat-row--ar .arr-cat-value{color:#e65100}.arr-cat-value--ar{font-weight:700}.arr-cat-value--total{font-weight:700;text-decoration:underline}.arr-cat-row--profit{padding-top:5px}.arr-cat-divider{border:none;border-top:1px solid #ccd4e0;margin:6px 0 3px}.arr-detail-toggle{background:none;border:none;border-top:1px dashed #dde3ec;color:#1565c0;cursor:pointer;display:block;font-size:10px;font-weight:700;letter-spacing:.04em;margin-top:8px;padding:4px 0;text-align:center;text-transform:uppercase;width:100%}.arr-detail-toggle:hover{color:#0d47a1}.arr-breakdown{border-top:1px solid #e3ecfa;margin-top:8px;padding-top:8px}.arr-breakdown-section{color:#7a8a9a;font-size:9px;font-weight:700;letter-spacing:.06em;margin:6px 0 4px;text-transform:uppercase}.arr-breakdown-section:first-child{margin-top:0}.arr-breakdown-table{border-collapse:collapse;font-size:10px;margin-bottom:6px;width:100%}.arr-breakdown-table th{border-bottom:1px solid #eee;color:#999;font-weight:700;padding:2px 4px 4px;text-align:left;white-space:nowrap}.arr-breakdown-table td{border-bottom:1px solid #f5f5f5;color:#555;padding:3px 4px;vertical-align:top}.arr-breakdown-table tr:last-child td{border-bottom:none}.arr-breakdown-cost{color:#c62828!important;font-weight:600;text-align:right}.arr-breakdown-rev{color:#2e7d32!important;font-weight:600;text-align:right}.arr-breakdown-table th:last-child,.arr-breakdown-table th:nth-last-child(2){text-align:right}.arr-billing-editor{align-items:center;display:inline-flex;position:relative}.arr-billing-edit-btn{background:none;border:none;color:#1565c0;cursor:pointer;font-size:13px;line-height:1;opacity:.6;padding:0 0 0 5px;transition:opacity .15s}.arr-billing-edit-btn:hover{opacity:1}.arr-billing-popover{background:#fff;border:1px solid #c5d5ef;border-radius:8px;box-shadow:0 4px 16px #00000021;font-size:12px;left:0;position:absolute;top:calc(100% + 6px);width:360px;z-index:200}.arr-billing-popover-tabs{border-bottom:1px solid #e3ecfa;display:flex}.arr-billing-popover-tabs button{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#888;cursor:pointer;display:flex;flex:1 1;font-size:12px;font-weight:600;gap:6px;justify-content:center;padding:9px 12px}.arr-billing-popover-tabs button.active{border-bottom-color:#1565c0;color:#1565c0}.arr-billing-history-count{background:#1565c0;border-radius:8px;color:#fff;font-size:10px;font-weight:700;padding:1px 5px}.arr-billing-form{display:flex;flex-direction:column;gap:10px;padding:14px}.arr-billing-form-row{display:flex;flex-direction:column;gap:4px}.arr-billing-form-row label{color:#7a8a9a;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.arr-billing-form-row input,.arr-billing-form-row select{border:1px solid #dde3ec;border-radius:6px;box-sizing:border-box;color:#1a1a2e;font-size:12px;outline:none;padding:7px 9px;width:100%}.arr-billing-form-row input:focus,.arr-billing-form-row select:focus{border-color:#90caf9}.arr-billing-input-wrap{align-items:center;border:1px solid #dde3ec;border-radius:6px;display:flex;overflow:hidden}.arr-billing-input-wrap:focus-within{border-color:#90caf9}.arr-billing-prefix{align-items:center;align-self:stretch;background:#f8fafb;border-right:1px solid #dde3ec;color:#888;display:flex;font-size:12px;padding:0 8px}.arr-billing-input-wrap input{border:none;border-radius:0;flex:1 1}.arr-billing-input-wrap input:focus{border-color:#0000;box-shadow:none}.arr-billing-warn{background:#fff8e1;border:1px solid #ffe082;border-radius:4px;color:#6d4c41;font-size:11px;padding:5px 9px}.arr-billing-err{background:#fce4ec;border:1px solid #ef9a9a;border-radius:4px;color:#c62828;font-size:11px;padding:5px 9px}.arr-billing-form-actions{display:flex;gap:8px;margin-top:2px}.arr-billing-save-btn{background:#1565c0;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:7px 20px}.arr-billing-save-btn:disabled{cursor:default;opacity:.6}.arr-billing-cancel-btn{background:#f0f4fb;border:1px solid #dde3ec;border-radius:6px;color:#555;cursor:pointer;font-size:12px;padding:7px 14px}.arr-billing-history{max-height:260px;overflow-y:auto;padding:10px 14px 14px}.arr-billing-history-empty{color:#aaa;font-size:12px;font-style:italic;padding:16px 0;text-align:center}.arr-billing-history-table{border-collapse:collapse;font-size:11px;width:100%}.arr-billing-history-table th{border-bottom:1px solid #e3ecfa;color:#7a8a9a;font-size:10px;font-weight:700;letter-spacing:.04em;padding:4px 6px 6px;text-align:left;text-transform:uppercase}.arr-billing-history-table td{border-bottom:1px solid #f5f5f5;color:#444;padding:6px;vertical-align:top}.arr-billing-history-table tr:last-child td{border-bottom:none}.arr-billing-history-current td{color:#1a1a2e;font-weight:600}.arr-billing-history-notes{color:#888;font-style:italic;max-width:80px}.arr-billing-change{font-size:10px;font-weight:700;white-space:nowrap}.arr-billing-change--up{color:#2e7d32}.arr-billing-change--down{color:#c62828}@media (max-width:1100px){.arr-panels{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.arr-panels{grid-template-columns:1fr}}