@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{color:#edf2ee;background:radial-gradient(circle at 10% 0,#5470572e,#0000 30%),radial-gradient(circle at 86% 0,#63796129,#0000 34%),linear-gradient(#0d1513,#0a1210 36%,#0a1210);margin:0;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root{--bg:#0a1210;--bg-soft:#111b18;--bg-card:#141d1a;--bg-card-soft:#18231f;--line:#24322c;--line-strong:#2e4038;--text:#edf2ee;--text-muted:#b9c8bd;--text-soft:#90a396;--accent:#8fb594;--accent-soft:#8fb59429;--ok:#8de5ad;--warn:#ffd28d;--danger:#ff9ca5;--radius:4px;--font-sans:"Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--shadow:0 18px 40px -24px #000000bf}.app-shell{background:var(--bg);min-height:100%;color:var(--text);grid-template-columns:240px 1fr;display:grid}.sidebar{border-right:1px solid var(--line);background:var(--bg-soft);flex-direction:column;align-self:start;gap:10px;height:100vh;padding:14px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 8px 14px;display:flex}.brand-mark{clip-path:polygon(50% 0%,0% 100%,100% 100%);background:linear-gradient(180deg, var(--accent), #7ca07f);width:28px;height:28px;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent), 0 12px 22px color-mix(in srgb, var(--accent) 28%, transparent)}.brand-title{letter-spacing:-.02em;margin:0;font-weight:700}.brand-sub{color:var(--text-soft);text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-family:var(--font-mono);margin:2px 0 0}.sidebar-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-family:var(--font-mono);margin:2px 8px 0}.sidebar-nav{flex-direction:column;gap:3px;display:flex}.nav-item{color:var(--text-muted);cursor:pointer;text-align:left;width:100%;font-family:var(--font-sans);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;display:flex}.nav-item:hover{background:var(--bg-card);color:var(--text)}.nav-item--active{background:var(--bg-card-soft);color:var(--text);border-color:var(--line-strong)}.nav-icon{text-align:center;width:16px;color:var(--text-soft);font-family:var(--font-mono)}.nav-count{color:var(--text-soft);font-size:11px;font-family:var(--font-mono);margin-left:auto}.sidebar-user{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:12px 8px 2px;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user p{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12.5px;overflow:hidden}.sidebar-user p:last-child{color:var(--text-soft);font-size:11.5px}.signout-btn{color:var(--text-soft);cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;padding:4px;font-size:14px;line-height:1}.signout-btn:hover{color:var(--text);background:var(--bg-card-soft)}.auth-shell{background:radial-gradient(circle at 10% 0%, #5470572e, transparent 30%), radial-gradient(circle at 86% 0%, #63796129, transparent 34%), var(--bg);place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg-card);width:min(400px,100%);box-shadow:var(--shadow);padding:32px}.auth-brand{align-items:center;gap:10px;margin-bottom:32px;display:flex}.auth-mark{clip-path:polygon(50% 0%,0% 100%,100% 100%);background:linear-gradient(180deg, var(--accent), #7ca07f);flex-shrink:0;width:22px;height:22px;display:block}.auth-name{letter-spacing:.01em;font-size:14px;font-weight:600}.auth-heading{letter-spacing:-.02em;margin:0 0 24px;font-size:20px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-field{color:var(--text-soft);flex-direction:column;gap:5px;font-size:12px;display:flex}.auth-input{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg-card-soft);color:var(--text);font-family:var(--font-sans);width:100%;height:36px;padding:8px 10px;font-size:13px}.auth-input::placeholder{color:var(--text-soft)}.auth-input:focus{outline-offset:1px;outline:2px solid #8fb59452}.auth-error{color:var(--danger);margin:0;font-size:12.5px}.auth-submit{border-radius:var(--radius);background:var(--accent);color:#09110f;height:38px;font-family:var(--font-sans);cursor:pointer;border:0;width:100%;margin-top:4px;font-size:13px;font-weight:600;transition:filter .15s}.auth-submit:hover:not(:disabled){filter:brightness(1.08)}.auth-submit:disabled{opacity:.6;cursor:default}.auth-footer{color:var(--text-soft);text-align:center;margin:16px 0 0;font-size:12px}.main-shell{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;justify-content:space-between;align-items:center;gap:20px;padding:14px 24px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.02em;margin:0;font-size:17px}.crumb{color:var(--text-soft);margin:3px 0 0;font-size:12px}.topbar-right{align-items:center;gap:10px;display:flex}.topbar-right .ui-input{width:320px}.content-shell{padding:22px 24px 38px}.page-stack{flex-direction:column;gap:14px;display:flex}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi-grid--client,.kpi-grid--invoice{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-grid{grid-template-columns:1.2fr 1fr;align-items:start;gap:12px;display:grid}.kpi-card{padding:14px 16px}.kpi-card--accent{border-color:#8fb59466}.kpi-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);margin:0}.kpi-value{letter-spacing:-.03em;margin:8px 0 2px;font-size:28px}.kpi-value--sm{font-size:21px}.kpi-meta{color:var(--text-muted);margin:0;font-size:12.5px}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.card-head h3{color:var(--text-muted);letter-spacing:.01em;margin:0;font-size:13px}.card-head span{color:var(--text-soft);font-size:12px}.list-stack{flex-direction:column;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.compact-row{gap:8px}.row-inline{align-items:center;gap:8px;display:flex}.item-row{border:1px solid var(--line);background:var(--bg-card-soft);border-radius:8px;padding:9px 10px}.item-title{margin:0;font-size:13.5px}.item-subtitle{color:var(--text-soft);margin:2px 0 0;font-size:12px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.small{font-size:12px}.muted{color:var(--text-soft)}.timeline{flex-direction:column;gap:10px;display:flex}.timeline-item{gap:10px;display:flex}.timeline-dot{background:var(--accent);border-radius:999px;flex-shrink:0;width:8px;height:8px;margin-top:4px}.progress-track{background:var(--bg-card-soft);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:999px;height:100%}.progress-bar--muted{background:var(--text-soft)}.split-layout{grid-template-columns:minmax(260px,340px) 1fr;align-items:start;gap:12px;display:grid}.split-layout--scripts{grid-template-columns:minmax(260px,360px) 1fr}.client-list-card,.script-list-card{max-height:calc(100vh - 150px);padding:10px;overflow:auto}.client-list-item,.script-item,.board-card{border:1px solid var(--line);background:var(--bg-card-soft);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:8px;padding:10px}.client-list-item:hover,.script-item:hover,.board-card:hover{border-color:var(--line-strong)}.client-list-item--active,.script-item--active{background:var(--accent-soft);border-color:#8fb59499}.client-detail-card{flex-direction:column;gap:12px;display:flex}.detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-head h2{letter-spacing:-.02em;margin:0;font-size:21px}.detail-actions{align-items:center;gap:8px;display:flex}.detail-grid{grid-template-columns:1fr 1fr;align-items:start;gap:12px;display:grid}.table-wrap{border:1px solid var(--line);border-radius:9px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);border-bottom:1px solid var(--line);background:var(--bg-card-soft);padding:9px 10px}.data-table td{border-bottom:1px solid var(--line);padding:10px}.data-table tr:last-child td{border-bottom:0}.data-table .num{text-align:right;font-family:var(--font-mono)}.table-actions{align-items:center;gap:6px;display:inline-flex}.step-card{border-color:var(--line);background:var(--bg-card-soft)}.step-body{color:var(--text-muted);white-space:pre-wrap;word-wrap:break-word;margin:8px 0 0;line-height:1.5}.board-grid{grid-template-columns:repeat(5,minmax(200px,1fr));gap:10px;display:grid;overflow:auto}.board-column{min-height:340px}.empty-card{text-align:center;color:var(--text-muted);padding:40px}.status-card{margin-bottom:10px}.status-card--error{background:#ff9ca514;border-color:#ff9ca56b}.segmented{border:1px solid var(--line);background:var(--bg-card);border-radius:8px;padding:2px;display:inline-flex}.segmented button{color:var(--text-soft);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 10px}.segmented button.is-active{background:var(--bg-card-soft);color:var(--text)}.avatar{background:var(--bg-card-soft);border:1px solid var(--line);border-radius:999px;place-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:inline-grid}.avatar--user{background:linear-gradient(135deg, var(--accent), #7ca07f);color:#09110f;border:0;width:30px;height:30px}.ui-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);padding:14px}.ui-btn{border:1px solid var(--line-strong);background:var(--bg-card-soft);color:var(--text);cursor:pointer;font-family:var(--font-sans);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-weight:500;display:inline-flex}.ui-btn--md{padding:8px 12px;font-size:13px}.ui-btn--sm{padding:6px 10px;font-size:12px}.ui-btn:hover{filter:brightness(1.08)}.ui-btn--primary{background:var(--accent);color:#09110f;border-color:#0000}.ui-btn--danger{color:var(--danger);background:#ff9ca51f;border-color:#ff9ca566}.ui-btn--ghost{color:var(--text-muted);background:0 0;border-color:#0000}.ui-badge{border:1px solid var(--line-strong);text-transform:uppercase;letter-spacing:.06em;font-size:11px;line-height:1;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.ui-badge--default{color:var(--text-muted);background:var(--bg-card-soft)}.ui-badge--accent{color:var(--accent);background:#8fb5941a;border-color:#8fb59461}.ui-badge--success{color:var(--ok);background:#8de5ad1a;border-color:#8de5ad59}.ui-badge--warning{color:var(--warn);background:#ffd28d1a;border-color:#ffd28d52}.ui-badge--danger{color:var(--danger);background:#ff9ca51a;border-color:#ff9ca552}.ui-badge--ghost{color:var(--text-soft);background:0 0;border-style:dashed}.ui-input,.ui-select,.ui-textarea{border:1px solid var(--line-strong);background:var(--bg-card);color:var(--text);font-family:var(--font-sans);border-radius:8px;width:100%;font-size:13px}.ui-input,.ui-select{height:34px;padding:8px 10px}.ui-textarea{resize:vertical;padding:8px 10px}.ui-input::placeholder{color:var(--text-soft)}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{outline-offset:1px;outline:2px solid #8fb59452}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#050a08b8;justify-content:center;align-items:flex-start;padding:48px 18px 18px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{background:var(--bg-card);border:1px solid var(--line-strong);width:min(720px,100%);box-shadow:var(--shadow);border-radius:12px;padding:16px}.modal-panel--wide{width:min(960px,100%)}.form-section-title{border-top:1px solid var(--line);text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-family:var(--font-mono);color:var(--text-soft);margin:18px 0 8px;padding-top:12px}.invoice-lines{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.invoice-lines__head,.invoice-lines__row{grid-template-columns:minmax(0,2.4fr) 72px 80px 110px 120px 36px;align-items:center;gap:8px;display:grid}.invoice-lines__head{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-family:var(--font-mono);color:var(--text-soft);padding:0 4px}.invoice-lines__head .num,.invoice-lines__row .num,.invoice-lines__row .ui-input.num{text-align:right}.invoice-lines__total{text-align:right;font-variant-numeric:tabular-nums;color:var(--text);padding:0 4px}.invoice-totals{border:1px solid var(--line);background:var(--bg-card-soft);font-variant-numeric:tabular-nums;border-radius:8px;flex-direction:column;gap:6px;max-width:360px;margin:8px 0 16px auto;padding:12px 14px;display:flex}.invoice-totals>div{color:var(--text-muted);justify-content:space-between;gap:18px;font-size:13px;display:flex}.invoice-totals strong{color:var(--text);font-weight:600}.invoice-totals__grand{border-top:1px solid var(--line-strong);padding-top:8px;font-size:15px!important}.invoice-totals__grand strong{color:var(--accent);font-weight:700}.status-card--warn{border-color:color-mix(in srgb, var(--warn) 40%, var(--line));background:color-mix(in srgb, var(--warn) 10%, var(--bg-card))}@media (width<=720px){.invoice-lines__head,.invoice-lines__row{grid-template-columns:1fr 1fr}.invoice-lines__head{display:none}.invoice-lines__total{text-align:right;border-top:1px dashed var(--line);grid-column:1/-1;padding-top:4px}}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.form-grid label{color:var(--text-soft);flex-direction:column;gap:5px;font-size:12px;display:flex}.form-grid .span-all{grid-column:1/-1}.checkbox-row{align-items:center;margin-top:20px;flex-direction:row!important;gap:8px!important}.modal-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.app-loading{background:radial-gradient(circle at 10% 0%, #5470572e, transparent 30%), radial-gradient(circle at 86% 0%, #63796129, transparent 34%), var(--bg);place-items:center;min-height:100%;display:grid}@media (width<=1200px){.overview-grid,.split-layout,.detail-grid,.form-grid{grid-template-columns:1fr}}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static;overflow:visible}.sidebar-user{display:none}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{flex-direction:column;align-items:stretch}.topbar-right{flex-wrap:wrap;width:100%}.topbar-right .ui-input{width:100%}}.split-layout--prospect{grid-template-columns:minmax(280px,340px) 1fr}.split-layout--prospect .page-stack{min-width:0}.prospect-sidebar{flex-direction:column;gap:10px;max-height:calc(100vh - 150px);padding:10px;display:flex}.prospect-new-scan{align-items:center;gap:8px;display:flex}.prospect-new-scan .ui-input{flex:1;min-width:0}.prospect-scan-list{flex-direction:column;gap:8px;padding-right:2px;display:flex;overflow:auto}.prospect-scan-item{border:1px solid var(--line);background:var(--bg-card-soft);cursor:pointer;border-radius:8px;min-width:0;padding:9px 10px}.prospect-scan-item:hover{border-color:var(--line-strong)}.prospect-scan-item--active{background:var(--accent-soft);border-color:#8fb59499}.prospect-delete-btn{color:var(--text-soft);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:20px;height:20px;padding:0;line-height:1;display:inline-grid}.prospect-delete-btn:hover{color:var(--danger);background:#ff9ca51f}.prospect-running-tag{color:var(--accent);font-family:var(--font-mono)}.prospect-controls{align-items:center;gap:8px;display:flex}.prospect-city{flex:1;max-width:320px}.prospect-progress-card{flex-direction:column;gap:6px;padding:12px 14px;display:flex}.prospect-progress-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kpi-grid--prospect{grid-template-columns:repeat(5,minmax(0,1fr))}.prospect-kpi{cursor:pointer;transition:border-color .15s}.prospect-kpi:hover{border-color:var(--line-strong)}.prospect-kpi--active{background:var(--accent-soft);border-color:#8fb59480}.prospect-search-row{align-items:center;gap:10px;display:flex}.prospect-search-row .ui-input{flex:1;max-width:320px}.prospect-result{flex-direction:column;gap:6px;min-width:0;display:flex}.prospect-result-title{min-width:0}.prospect-result-title .item-title{text-overflow:ellipsis;max-width:100%;display:inline-block;overflow:hidden}.prospect-meta{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.prospect-assign-sel{background:var(--bg-card,#1a1a20);border:1px solid var(--border,#252530);color:var(--text-main,#e2dfd8);cursor:pointer;border-radius:6px;outline:0;padding:4px 8px;font-family:inherit;font-size:11px;transition:border .2s}.prospect-assign-sel:focus{border-color:var(--accent)}.prospect-link{color:var(--text-soft);font-size:12px;font-family:var(--font-mono);word-break:break-word;text-decoration:none}.prospect-link:hover{color:var(--accent)}.prospect-link--maps{margin-left:auto}@media (width<=980px){.split-layout--prospect{grid-template-columns:1fr;gap:10px}.prospect-sidebar{max-height:none}.prospect-scan-list{max-height:220px}.prospect-new-scan{flex-wrap:wrap}.prospect-new-scan .ui-btn{width:100%}.prospect-search-row{flex-direction:column;align-items:stretch}.prospect-search-row .ui-input{max-width:none}.kpi-grid--prospect{grid-template-columns:repeat(2,minmax(0,1fr))}.prospect-result>.row-between{flex-direction:column;align-items:flex-start;gap:8px}.prospect-result-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%}.prospect-meta{flex-direction:column;align-items:flex-start;gap:6px}.prospect-link--maps{margin-left:0}}@media (width<=640px){.content-shell{padding:14px 12px 24px}.topbar{padding:12px}.kpi-grid--prospect{grid-template-columns:1fr}.prospect-new-scan .ui-input,.prospect-new-scan .ui-btn,.prospect-search-row .ui-input{width:100%}.prospect-result{gap:8px}}
