:root{--accent:#4b5563;--surface:#fff;--surface-2:#f5f6f7;--surface-3:#eceef0;--border:#d9dcdf;--text:#16181a;--muted:#5f656b;--status-sandbox-bg:#e8eefc;--status-sandbox-text:#1d3b8a;--status-below:#8a5a00;--status-validate-bg:#eef1f4;color:var(--text);background:var(--surface);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,.button{font:inherit;background:var(--accent);color:#111;cursor:pointer;border:1px solid #111;border-radius:6px;padding:6px 14px;font-weight:600;text-decoration:none;display:inline-block}.button.secondary,button.secondary{background:var(--surface);border-color:var(--border)}button:disabled{opacity:.6;cursor:progress}.sandbox-banner{background:var(--status-sandbox-bg);color:var(--status-sandbox-text);padding:6px 16px;font-size:13px;font-weight:600}.topbar{border-bottom:3px solid var(--accent);align-items:center;gap:16px;padding:8px 16px;display:flex}.topbar nav{white-space:nowrap}.topbar nav a{font-size:14px;font-weight:600;text-decoration:none}.ask-bob{white-space:nowrap}.logo{height:34px;display:block}.shell{padding:16px}.muted{color:var(--muted)}.small{font-size:12px}.notice{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:12px 16px}.bid-list ul{padding:0;list-style:none}.bid-list li{border-bottom:1px solid var(--surface-3);padding:8px 0}.bid-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.bid-header h1{margin:0 0 4px;font-size:22px}.actions{gap:8px;display:flex}.workspace-body{grid-template-columns:240px 1fr;gap:16px;display:grid}.work-types h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 4px;font-size:12px}.work-types ul{margin:0;padding:0;list-style:none}.work-type{text-align:left;background:0 0;border:1px solid #0000;justify-content:space-between;width:100%;padding:6px 8px;font-weight:500;display:flex}.work-type:hover{background:var(--surface-2)}.work-type.current{background:var(--surface-2);border-color:var(--border);box-shadow:inset 4px 0 0 var(--accent)}.count{color:var(--muted);font-variant-numeric:tabular-nums}.hint{color:var(--muted);margin-top:16px;font-size:12px}table.solicits{border-collapse:collapse;width:100%}table.solicits caption{text-align:left;padding:4px 0 8px;font-size:16px;font-weight:700}table.solicits th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:12px}table.solicits td{border-bottom:1px solid var(--surface-3);vertical-align:top;padding:8px}table.solicits tr.selected td{background:var(--surface-2)}table.solicits tr.selected td:first-child{box-shadow:inset 4px 0 0 var(--accent)}table.solicits tr.below td{color:var(--muted)}tr.line td{background:var(--surface-3);color:var(--status-below);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.rank,.distance{font-variant-numeric:tabular-nums;white-space:nowrap}.company{font-weight:600}.tag{background:var(--status-validate-bg);color:var(--muted);border-radius:10px;margin-top:2px;padding:1px 6px;font-size:11px;display:inline-block}.reasons{margin:0;padding:0;list-style:none}.reasons li{line-height:1.35}.reasons li+li{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.small-button{padding:2px 8px;font-size:12px;font-weight:500}.row-actions{white-space:nowrap;text-align:right}.tag+.tag{margin-left:4px}.tag-added{color:#1f5f35;background:#e6f2ea}.tag-removed{color:#7a2a2a;background:#f3e8e8}table.solicits tr.origin-removed td{color:var(--muted)}table.solicits tr.origin-removed .company{text-decoration:line-through}table.solicits tr.origin-below_line td{color:var(--muted)}tr.removed-line td{color:#7a2a2a}.chip{background:var(--surface);border-color:var(--border);border-radius:12px;margin:4px 4px 0 0;padding:1px 8px;font-size:12px;font-weight:500}.add-company{max-width:420px;margin-bottom:10px;position:relative}.add-company input{width:100%;font:inherit;border:1px solid var(--border);border-radius:6px;padding:6px 10px}.add-company .hits{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:6px;width:100%;margin:4px 0 0;padding:0;list-style:none;position:absolute}.add-company .hit{text-align:left;border:0;border-radius:0;width:100%;font-weight:500}.panel{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;max-width:900px;margin-bottom:16px;padding:16px}.panel h2{margin:0 0 4px;font-size:18px}.panel label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.panel input:not([type=checkbox]){font:inherit;border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-weight:400}.panel fieldset{border:1px solid var(--border);border-radius:6px;margin:12px 0;padding:8px 12px}.panel .check{flex-direction:row;align-items:center;font-weight:400}.grid-2{grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:8px;display:grid}.checks{grid-template-columns:1fr 1fr;gap:8px;max-height:260px;display:grid;overflow:auto}.checks h3{color:var(--muted);text-transform:uppercase;margin:4px 0;font-size:12px}table.solicits td:nth-child(4){min-width:240px}table.solicits td:nth-child(6){overflow-wrap:anywhere;max-width:220px}.app-body{grid-template-columns:1fr;display:grid}.app-body.with-bob{grid-template-columns:1fr 380px}.bob-panel{border-left:1px solid var(--border);background:var(--surface-2);flex-direction:column;height:calc(100vh - 90px);display:flex;position:sticky;top:0}.bob-panel header{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:10px 12px;display:flex}.bob-panel header button{margin-left:auto}.bob-messages{flex:1;padding:12px;overflow:auto}.bob-message{margin-bottom:10px}.bob-message p{white-space:pre-wrap;margin:0}.bob-message.user p{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.bob-message.error p{color:#7a2a2a}.bob-message .steps{color:var(--muted);margin:4px 0 0;padding-left:16px;font-size:12px}.proposal.confirmed{background:#f0f7f2;border-style:solid;border-color:#1f5f35}.proposal.dismissed{opacity:.6}.proposal .actions{margin-top:6px}.bob-input{border-top:1px solid var(--border);gap:8px;padding:10px 12px;display:flex}.bob-input textarea{font:inherit;border:1px solid var(--border);resize:vertical;border-radius:6px;flex:1;padding:6px 8px}.activity li{border-bottom:1px solid var(--surface-3);padding:6px 0}.app-body>main{min-width:0}.list-pane{min-width:0;overflow-x:auto}table.solicits td:nth-child(6){min-width:170px}ul.plain{margin:0;padding:0;list-style:none}ul.plain>li{border-bottom:1px solid var(--surface-3);padding:10px 0}.rule-text{font-weight:600}.rule.paused .rule-text{color:var(--muted)}.rules .actions{margin-top:6px}.compare-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.compare-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:10px}.compare-card h3{margin:0 0 6px;font-size:15px}.compare-card dl{grid-template-columns:90px 1fr;gap:2px 8px;margin:0 0 8px;font-size:13px;display:grid}.compare-card dt{color:var(--muted)}.compare-card dd{margin:0}.panel textarea{font:inherit;border:1px solid var(--border);border-radius:6px;width:100%;padding:8px;font-weight:400}.panel>label{margin-top:8px}.review-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.source-frame{border:1px solid var(--border);border-radius:6px;width:100%;height:78vh}.source-image{border:1px solid var(--border);max-width:100%}.source-text{white-space:pre-wrap;background:var(--surface-2);border-radius:6px;padding:12px}.fields-pane input{font:inherit;border:1px solid var(--border);border-radius:4px;width:100%;padding:3px 5px}tr.uncertain td{background:#fff6e0}tr.uncertain input{border-color:#c08a00}.fields-pane h2{margin:16px 0 4px;font-size:15px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;display:flex}.tab{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;font-weight:600}.tab.current{border-bottom-color:var(--accent)}.notice.gap{background:#fff6e0;border-color:#c08a00}.tracker select{font:inherit;padding:3px}.tracker .proposal{margin-top:4px}.search-box{flex:0 300px;min-width:110px;margin-left:auto;position:relative}.search-box input{width:100%;font:inherit;border:1px solid var(--border);border-radius:6px;padding:6px 10px}.search-results{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;max-height:60vh;display:flex;position:absolute;top:36px;left:0;right:0;overflow:auto;box-shadow:0 6px 20px #00000014}.search-results a,.search-results>span{border-bottom:1px solid var(--surface-3);padding:6px 10px;text-decoration:none}.search-results a:hover{background:var(--surface-2)}.ask-bob{margin-left:8px}.company a{text-decoration:none}.company a:hover{text-decoration:underline}.profile-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.profile h2{margin:18px 0 6px;font-size:15px}.chip.review{background:#fff6e0;border-color:#c08a00}.source-marker{position:relative}.marker{color:var(--muted);background:0 0;border:0;padding:0 2px;font-weight:400}.source-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;width:420px;padding:10px;font-size:13px;display:flex;position:absolute;top:22px;left:0;box-shadow:0 6px 20px #0000001a}.source-cells{grid-template-columns:1fr;margin-top:4px;display:grid}.source-cells .cell{grid-template-columns:120px 1fr;gap:6px;display:grid}.home-bids{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:20px;display:grid}.home-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:12px 14px}.home-card.due-soon{border-left:4px solid var(--accent)}.home-card h2{margin:0 0 4px;font-size:16px}.home-card .gaps{color:#8a5a00;margin:6px 0;padding-left:18px}.home-links{flex-wrap:wrap;gap:12px;margin:6px 0 0;display:flex}.home-queues{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:16px;display:grid}.queue{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:2px;padding:10px 14px;text-decoration:none;display:flex}.queue:hover{background:var(--surface-2)}.queue .count{font-size:22px;font-weight:700}.pricing-form{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-bottom:14px;display:flex}.pricing-form label{flex-direction:column;gap:3px;font-size:13px;display:flex}.pricing-form label.check{flex-direction:row;align-items:center;gap:6px}.pricing-form input,.pricing-form select,.work-types select,.work-types input{font:inherit;border:1px solid var(--border);border-radius:6px;padding:4px 8px}.by-unit .chip{margin-right:8px}.work-types h2{margin:20px 0 6px;font-size:15px}.work-types .suggestion{margin-bottom:10px}.work-types .examples{margin:4px 0;padding-left:18px}.work-types .actions{white-space:nowrap}.suggest-form{margin-top:8px}.work-types select{max-width:340px}.pricing table{width:100%}.pricing td:first-child,.pricing td:nth-child(4),.pricing td:nth-child(5){white-space:nowrap}.pricing td:nth-child(3){min-width:220px}.pricing td:last-child a{text-overflow:ellipsis;white-space:nowrap;max-width:220px;display:block;overflow:hidden}.improvement-form{gap:8px;max-width:640px;margin-bottom:16px;display:grid}.improvement-form label{flex-direction:column;gap:3px;font-size:13px;display:flex}.improvement-form input,.improvement-form textarea,.add-comment input,.owner-actions input,.owner-actions select{font:inherit;border:1px solid var(--border);border-radius:6px;padding:5px 8px}.improvement .spec dt{margin-top:10px;font-weight:600}.improvement .spec dd{margin:2px 0 0}.owner-actions{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:6px;margin:14px 0;padding:8px 12px}.improvement h2{margin:18px 0 6px;font-size:15px}.map-view{grid-template-columns:1fr 300px;gap:12px;height:calc(100vh - 220px);min-height:420px;display:grid}.map-view.standalone{height:calc(100vh - 90px)}.map-canvas-wrap{border:1px solid var(--border);border-radius:8px;position:relative;overflow:hidden}.map-canvas-wrap .map-canvas{width:100%;height:100%}.map-note{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin:0;padding:4px 8px;position:absolute;top:8px;left:8px}.map-side{flex-direction:column;gap:8px;display:flex;overflow:auto}.map-side input{font:inherit;border:1px solid var(--border);border-radius:6px;padding:3px 6px}.map-company{z-index:1;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:6px;padding:8px 10px;position:sticky;top:0}.map-company h3{margin:0 0 4px;font-size:15px}.map-company .reasons{margin:4px 0;padding-left:16px}.map-list{border-top:1px solid var(--surface-3);margin:0;padding:0;list-style:none}.map-list li{padding:2px 0}button.link{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:400}button.link.current{font-weight:700}.dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin:0 2px 1px 6px;display:inline-block}.dot.picked{background:#111827}.dot.below{background:#fff;border:1.5px solid #6b7280}.dot.removed{background:#d1d5db}.dot.job{background:#ffc626;border:2px solid #111827}.page-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:4px;margin:8px 0 4px;display:flex}.filters .spacer{flex:1}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.notice-group h2{margin:20px 0 6px;font-size:15px}.notice-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.notice-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:4px 16px;padding:10px 0;display:grid}.notice-title{line-height:1.4}.state-tag{background:var(--surface-3);border-radius:4px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.notice-meta{margin-top:2px}.notice-actions{align-items:flex-start;gap:6px;display:flex}.notice-pass,.notice-row .proposal,.notice-row>.error{grid-column:1/-1}.notice-pass{align-items:flex-end;gap:8px;display:flex}.notice-pass label{flex-direction:column;gap:2px;font-size:12px;display:flex}.error{color:#9b1c1c}.proposal{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;margin-top:6px;padding:12px 16px}.proposal h3{margin:0 0 4px;font-size:15px}.proposal fieldset{border:0;margin:8px 0 12px;padding:0}.proposal-wt{margin:4px 0}.proposal-wt .reasons{margin:0 0 0 26px;padding:0;list-style:none}@media (width<=640px){.notice-row{grid-template-columns:1fr}}.bob-message .who{margin-bottom:2px;font-weight:600}.main-nav{gap:4px;display:flex}.topbar .main-nav a{color:var(--text);border-radius:6px;padding:6px 10px}.topbar .main-nav a:hover{background:var(--surface-2)}.topbar .main-nav a.current{background:var(--surface-3);box-shadow:inset 0 -3px 0 var(--accent)}.section-tabs{border-bottom:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;gap:2px;padding:0 16px;display:flex}.section-tabs a{color:var(--muted);border-bottom:2px solid #0000;padding:8px 12px;font-size:13px;text-decoration:none}.section-tabs a:hover{color:var(--text)}.section-tabs a.current{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.vendor-filters{flex-wrap:wrap;gap:12px;margin:8px 0 12px;display:flex}.vendor-filters label{flex-direction:column;gap:2px;font-size:12px;display:flex}.nowrap{white-space:nowrap}.today{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:20px;display:grid}.bob-panel.inline{border:1px solid var(--border);border-radius:8px;height:calc(100vh - 150px);min-height:420px;top:12px}.suggestions{flex-direction:column;gap:6px;display:flex}.suggestion{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:8px 10px;font-weight:500}.suggestion:hover{border-color:var(--accent)}@media (width<=900px){.today{grid-template-columns:1fr}.bob-panel.inline{height:480px;position:static}}.chat-text p{margin:0 0 6px}.chat-text ol,.chat-text ul{margin:0 0 6px;padding-left:20px}.chat-text li{margin:2px 0}.signed-out{max-width:32rem;margin:12vh auto}.who-am-i{white-space:nowrap;align-items:center;gap:6px;display:flex}.invite-link{width:100%;font-family:ui-monospace,monospace;font-size:12px}
