:root{--bg: #f4f5f7;--surface: #ffffff;--surface-2: #f6f7f9;--fg: #1b1f2a;--muted: #667085;--line: #e2e5ea;--line-2: #cdd2da;--brand: #1f3a5f;--primary: #2b5d8a;--primary-fg: #ffffff;--accent: #2b5d8a;--accent-soft: #e9eff6;--sky: #4a6f96;--warn: #8a5a1c;--warn-soft: #f6efe3;--danger: #9b3a33;--danger-soft: #f6ecea;--ok: #2f6a4f;--ok-soft: #e8f1ec;--r: 10px;--r-sm: 6px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--text: var(--fg);--surface-strong: var(--surface);--primary-strong: var(--brand);--highlight: var(--warn);--top-h: 52px;--tabbar-h: 60px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0f1218;--surface: #171b24;--surface-2: #1d2230;--fg: #e8eaf0;--muted: #98a2b3;--line: #2a3142;--line-2: #39425a;--brand: #14243a;--primary: #8fb0d6;--primary-fg: #0b1620;--accent: #8fb0d6;--accent-soft: #1b2a3f;--sky: #8fb0d6;--warn: #d9b27a;--warn-soft: #2e2618;--danger: #e0938c;--danger-soft: #33201e;--ok: #8cc3a6;--ok-soft: #18291f;--primary-strong: var(--primary);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--fg);font-family:Pretendard,Malgun Gothic,Noto Sans KR,system-ui,sans-serif;font-size:14px;background:var(--bg);-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit}a{color:var(--accent)}#root{min-height:100vh}.brand{display:flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}.brand i{padding:3px 8px 3px 7px;border-radius:12px 6px;background:linear-gradient(135deg,#3d6a99,#1f3a5f);box-shadow:inset 0 0 0 1px #ffffff40;color:#fff;font-style:normal;font-weight:800;font-size:13px;letter-spacing:-.04em}.brand em{color:#b7c4d4;font-style:normal;font-weight:500}.login-shell{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(160deg,var(--brand) 0 38%,var(--bg) 38%)}.login-card{width:min(380px,100%);padding:22px 20px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:0 12px 32px #10182829}.login-card .brand{margin-bottom:14px;color:var(--fg);font-size:16px}.login-card .brand em{color:var(--muted)}.login-card h1{margin:0;font-size:18px}.login-form{display:grid;gap:10px;margin-top:14px}.login-form label{display:grid;gap:6px;color:var(--muted);font-size:12px}.login-form input{width:100%;padding:9px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--fg)}.login-button{margin-top:4px}.login-error{margin:0;color:var(--danger);font-size:12px}.top{position:sticky;top:0;z-index:20;height:calc(var(--top-h) + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:16px;padding:env(safe-area-inset-top,0px) 20px 0;background:var(--brand);color:#fff}.crumb{min-width:0;overflow:hidden;color:#b7c4d4;font-size:13px;white-space:nowrap}.crumb b{color:#fff;font-weight:600}.top .me{margin-left:auto;display:flex;align-items:center;gap:10px;color:#dfe9f2;font-size:13px;white-space:nowrap}.avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--sky);color:#fff;font-size:12px;font-weight:700}.navtoggle,.top-icon,.btn-on-dark{height:30px;border:1px solid #3d6a88;border-radius:var(--r-sm);background:transparent;color:#dfe9f2;cursor:pointer}.navtoggle,.top-icon{width:32px;flex:none;font-size:16px;line-height:1}.btn-on-dark{padding:0 10px;font-size:12px;font-weight:500}.navtoggle:hover,.top-icon:hover,.btn-on-dark:hover{background:#ffffff14}.shell{--left: 248px;min-height:calc(100vh - var(--top-h));display:grid;grid-template-columns:var(--left) minmax(0,1480px);justify-content:start}.shell.nav-hidden{--left: 0px}.shell>.lpanel{grid-column:1}.shell>.app-main{grid-column:2}aside[hidden]{display:none}.lpanel{position:sticky;top:var(--top-h);height:calc(100vh - var(--top-h));overflow-y:auto;padding:16px 12px;border-right:1px solid var(--line);background:var(--surface)}.nav-title{margin:0 8px 6px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.08em}.nav{margin:0;padding:0;list-style:none}.nav button{width:100%;display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border:0;border-radius:var(--r-sm);background:none;color:var(--fg);text-align:left;cursor:pointer}.nav button:hover{background:var(--surface-2)}.nav button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav .menu-icon{flex:none;margin-top:1px}.nav-text{display:grid;gap:2px;min-width:0}.nav-text small{color:var(--muted);font-size:11.5px;font-weight:400;line-height:1.4}.app-main{min-width:0;padding:20px 24px 48px}.tabbar{display:none}.content-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.08em}.hero-copy{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.placeholder-state{min-height:180px;display:grid;place-items:center}.vendor-results{display:grid;gap:10px}.vendor-results-header{margin-bottom:0}.vendor-card{display:grid;gap:12px}.vendor-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.vendor-address{margin:0;color:var(--muted);line-height:1.5}.vendor-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vendor-detail-panel,.vendor-sanction-panel{padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.vendor-detail-panel h4,.vendor-sanction-panel h4{margin:0 0 8px;font-size:13px}.vendor-tag-list{display:flex;flex-wrap:wrap;gap:8px}.vendor-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600}.vendor-sanction-list{display:grid;gap:8px}.vendor-sanction-item{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:13px}.panel{min-width:0;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-header h2{margin:0;font-size:16px;letter-spacing:-.01em}.panel-subtitle{margin:2px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.search-form{display:grid;gap:10px}.search-form label{display:grid;gap:4px;color:var(--muted);font-size:12px}.search-form input,.search-form select,.search-form textarea,.settings-form input,.settings-form textarea{width:100%;padding:7px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--fg)}.search-form input:focus,.search-form select:focus,.search-form textarea:focus,.settings-form input:focus,.settings-form textarea:focus,.login-form input:focus,.primary-button:focus-visible,.ghost-button:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:1px}.search-form textarea{min-height:84px;resize:vertical}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:end}.form-row:has(.form-row-grow){grid-template-columns:minmax(0,1fr) minmax(0,9rem)}.detail-filters{display:grid;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}.detail-filters[open]{padding-bottom:12px}.detail-filters summary{color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}.detail-filters[open]>:not(summary){margin-top:10px}.detail-filters-note{margin:0;color:var(--muted);font-size:12px}.search-form .checkbox-label{display:flex;align-items:center;gap:8px;color:var(--fg);font-size:13px}.search-form .checkbox-label input{width:auto}.preset-bar{display:grid;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.preset-bar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.preset-bar-title{color:var(--muted);font-size:12px;font-weight:600}.preset-save-button{padding:4px 10px;font-size:12px}.preset-list{display:flex;flex-wrap:wrap;gap:6px}.preset-chip,.preset-chip.is-user button{border:0;color:var(--accent);font-size:12.5px;font-weight:600;cursor:pointer}.preset-chip{display:inline-flex;align-items:center;gap:2px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:999px;background:var(--accent-soft)}.preset-chip.is-user{padding-right:6px;border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.preset-chip.is-user button{padding:0;background:none}.preset-chip .preset-remove{padding:0 3px;color:var(--muted);font-size:14px;line-height:1}.preset-chip:disabled,.preset-chip button:disabled{cursor:wait;opacity:.6}.preset-chip.is-active{border-color:var(--primary);background:var(--primary);color:var(--primary-fg)}.preset-message{margin:0;color:var(--muted);font-size:12px}.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);font-size:13px;font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer}.primary-button{margin-top:6px;border-color:var(--primary);background:var(--primary);color:var(--primary-fg);font-weight:600}.primary-button:hover{filter:brightness(1.08)}.primary-button:disabled{cursor:wait;opacity:.6;filter:none}.ghost-button{background:var(--surface);color:var(--fg)}.ghost-button:hover{background:var(--surface-2)}.ghost-button:disabled{cursor:default;opacity:.45}.icon-button{width:32px;height:32px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--r-sm);background:none;color:var(--muted);font-size:16px;cursor:pointer}.icon-button:hover,.icon-button:focus-visible{border-color:var(--line-2);color:var(--accent);outline:none}.text-link-button{padding:0;border:0;background:none;color:inherit;text-align:left;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.text-link-button:hover{color:var(--accent)}.button-row{display:flex;flex-wrap:wrap;gap:8px}.status-pill,.status-badge,.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11.5px;font-weight:600;white-space:nowrap}.status-pill{padding:4px 10px;font-size:12px}.status-pill.is-ok,.status-badge.is-ok{background:var(--ok-soft);color:var(--ok)}.status-pill.is-error,.status-badge.is-error{background:var(--danger-soft);color:var(--danger)}.status-badge.is-warn,.badge{background:var(--warn-soft);color:var(--warn)}.mini-tag{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:4px;background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:600;vertical-align:middle}.mini-tag.is-to21,.mini-tag.basis-contract{background:var(--accent-soft);color:var(--accent)}.mini-tag.is-competitor,.mini-tag.basis-tie,.mini-tag.basis-rank1_unmatched{background:var(--warn-soft);color:var(--warn)}.mini-tag.is-winner{margin:0 4px 0 0;background:var(--primary);color:var(--primary-fg)}.is-negative{color:var(--danger)}.is-positive{color:var(--ok);font-weight:600}.result-cards,.vendor-card-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.partial-error-banner{margin:10px 0 12px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:var(--r-sm);background:var(--danger-soft);color:var(--danger);font-size:13px}.partial-error-detail{margin:6px 0 0;color:var(--danger);font-size:12px;word-break:break-word}.notice-card{min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);word-break:keep-all;overflow-wrap:anywhere}.notice-card:hover{border-color:var(--line-2)}.notice-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;color:var(--muted);font-size:12px}.notice-title{margin:0;font-size:15px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}.notice-organization{margin:4px 0 10px;color:var(--muted)}.notice-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.notice-meta div{padding:8px 10px;border-radius:var(--r-sm);background:var(--surface-2)}.notice-meta dt{margin-bottom:3px;color:var(--muted);font-size:12px}.notice-meta dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.notice-links{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.notice-links-title{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}.notice-link-list{display:grid;gap:8px}.notice-link{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--fg);text-decoration:none}.notice-link:hover{border-color:var(--accent)}.notice-link-label{color:var(--accent);font-size:11px;font-weight:700}.notice-link-name{font-size:13px;line-height:1.45;word-break:break-all}.notice-links-state{margin:8px 0 0;color:var(--muted);font-size:12px}.notice-links-state.is-error{color:var(--danger)}.link-toggle-button{margin-top:0;padding:7px 12px}.notice-actions{display:flex;flex-wrap:wrap;gap:6px}.empty-state{padding:28px 12px;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--muted);font-size:13px;text-align:center}.financial-view>*,.financial-card{min-width:0}.financial-candidates{display:grid;gap:6px;margin-top:14px}.financial-candidates h4{margin:8px 0 0;font-size:13px}.financial-candidate{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--fg);text-align:left;cursor:pointer}.financial-candidate:hover{background:var(--surface-2)}.financial-candidate span{color:var(--muted);font-size:12px}.financial-candidate.is-active{border-color:var(--accent);background:var(--accent-soft)}.financial-card a{color:var(--accent)}.financial-card .notice-organization{font-size:13px}.financial-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.financial-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}.financial-table th,.financial-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.financial-table th{background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600}.financial-table tbody tr:hover td{background:var(--surface-2)}.financial-table th:first-child,.financial-table td:first-child,.financial-table .financial-basis{text-align:left}.financial-table td.is-negative{color:var(--danger)}.settings-divider{margin:12px 0;border-top:1px solid var(--line)}.panel-header-compact{margin-bottom:8px}.settings-form{display:grid;gap:10px}.settings-form label{display:grid;gap:4px;color:var(--muted);font-size:12px}.settings-form textarea{min-height:70px;resize:vertical}.checkbox-row{display:flex!important;align-items:center;gap:8px}.checkbox-row input{width:auto;margin:0}.settings-meta{margin:0}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:20px}.settings-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#0a0e168c;cursor:pointer}.settings-layer{position:relative;z-index:1;width:min(560px,100%);max-height:min(80vh,720px);overflow:auto;padding:16px 18px;box-shadow:0 12px 32px #1018283d}.settings-layer.bidder-layer{width:min(1080px,100%);max-height:min(86vh,900px)}.settings-layer.insight-layer{width:min(760px,100%);max-height:min(86vh,900px)}.bid-summary{margin-bottom:10px}.bid-top{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.panel-header>.ghost-button{flex-shrink:0;white-space:nowrap}.panel-header-actions{display:flex;flex-shrink:0;gap:6px}.panel-header-actions .ghost-button{white-space:nowrap}.collapse-toggle{display:none}.bid-matched{margin:6px 0 0;padding:6px 10px;border-radius:var(--r-sm);background:var(--accent-soft);font-size:12.5px;line-height:1.5}.period-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:-4px}.period-buttons .ghost-button,.empty-hint .ghost-button{padding:4px 10px;font-size:12px}.empty-hint{margin:10px 0 0;font-size:13px;line-height:1.6}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;font-size:13px}.bidder-basis,.bidder-contracts{margin:0 0 10px;font-size:13px}.bidder-contracts h4{margin:0 0 4px;font-size:13px}.bidder-contracts p{margin:2px 0;color:var(--muted);font-size:12px}.bidder-table tr.is-winner td{background:var(--ok-soft);font-weight:600}.bidder-table .bidder-name,.bidder-table .bidder-note{text-align:left}.bidder-table td.bidder-note{min-width:8rem;white-space:normal}.insight-note{margin-bottom:10px}.candidate-card.is-confirmed{border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:var(--ok-soft)}.candidate-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.candidate-actions .ghost-button{padding:6px 12px;font-size:12px}.insight-rejected{margin-top:12px}.institution-panel{display:grid;gap:14px}.institution-panel h4{margin:0 0 6px;font-size:13px}@media(max-width:1100px){.content-grid{grid-template-columns:1fr}.collapse-toggle{display:inline-flex}.search-panel.is-collapsed .panel-subtitle,.search-panel.is-collapsed .preset-bar,.search-panel.is-collapsed .search-form{display:none}.search-panel.is-collapsed .panel-header{margin-bottom:0}}@media(max-width:860px){.navtoggle,.crumb,.top .brand em,.me-name,.shell>.lpanel{display:none}.top{gap:10px;padding-left:14px;padding-right:14px}.top .me{gap:8px}.top-icon,.btn-on-dark{height:36px}.top-icon{width:36px}.shell,.shell.nav-hidden{grid-template-columns:minmax(0,1fr)}.shell>.app-main{grid-column:1}.app-main{padding:12px 12px calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom,0px))}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--line);background:var(--surface);box-shadow:0 -2px 10px #1018280f}.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;border:0;background:none;color:var(--muted);font-size:11px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.tabbar button.on{color:var(--accent);font-weight:700}.tabbar button.on .menu-icon{stroke-width:2.2}.panel{padding:14px}.search-form input:not([type=checkbox]):not([type=radio]),.search-form select,.settings-form input:not([type=checkbox]):not([type=radio]),.login-form input{min-height:40px}.search-form input,.search-form select,.search-form textarea,.settings-form input,.settings-form textarea,.login-form input{font-size:16px}.primary-button,.ghost-button{min-height:40px}.preset-chip,.period-buttons .ghost-button,.empty-hint .ghost-button,.candidate-actions .ghost-button{min-height:36px}.icon-button{width:40px;height:40px}}@media(max-width:640px){.panel-header{align-items:flex-start;flex-direction:column}.panel-header-compact{align-items:center;flex-direction:row}.notice-meta{gap:6px}.notice-meta div{padding:6px 8px}.vendor-detail-grid{grid-template-columns:1fr}.form-row,.form-row:has(.form-row-grow){grid-template-columns:1fr}.settings-overlay{place-items:stretch;padding:0}.settings-layer,.settings-layer.bidder-layer,.settings-layer.insight-layer{width:100%;max-height:none;height:100%;border:0;border-radius:0;padding:calc(12px + env(safe-area-inset-top,0px)) 14px calc(16px + env(safe-area-inset-bottom,0px))}.settings-layer>.panel-header:first-child{position:sticky;top:calc(-12px - env(safe-area-inset-top,0px));z-index:1;margin:calc(-12px - env(safe-area-inset-top,0px)) -14px 10px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;border-bottom:1px solid var(--line);background:var(--surface)}}:root{--cat-0: #2b5d8a;--cat-1: #6f9cc4;--cat-2: #2f6a4f;--cat-3: #b88a3e;--cat-4: #a3abb8}@media(prefers-color-scheme:dark){:root{--cat-0: #8fb0d6;--cat-1: #4f7aa6;--cat-2: #8cc3a6;--cat-3: #d9b27a;--cat-4: #5d677a}}.view-tabs{display:flex;gap:4px;margin-bottom:12px;padding:3px;border-radius:var(--r-sm);background:var(--surface-2)}.view-tabs button{flex:1;padding:7px 10px;border:0;border-radius:5px;background:none;color:var(--muted);font:inherit;font-weight:600;cursor:pointer}.view-tabs button.is-active{background:var(--surface);color:var(--fg);box-shadow:var(--shadow)}.view-tabs button:disabled{cursor:not-allowed;opacity:.55}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:12px 0}.kpi-row.kpi-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{display:grid;gap:2px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}.kpi span,.kpi small{color:var(--muted);font-size:12px}.kpi strong{font-size:17px;font-variant-numeric:tabular-nums}.kpi.is-to21{border-color:color-mix(in srgb,var(--accent) 35%,transparent);background:var(--accent-soft)}.list-tools{display:flex;flex-wrap:wrap;gap:6px}.list-tools input,.list-tools select{min-width:0;padding:6px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--fg);font:inherit}.cat-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 0 10px;color:var(--muted);font-size:12px}.cat-legend i,.cat-bar i{display:inline-block}.cat-legend i{width:10px;height:10px;margin-right:4px;border-radius:2px;vertical-align:-1px}.cat-bar{display:flex;width:120px;height:8px;overflow:hidden;border-radius:4px;background:var(--surface-2)}.cat-bar i{height:100%}.cat-0{background:var(--cat-0)}.cat-1{background:var(--cat-1)}.cat-2{background:var(--cat-2)}.cat-3{background:var(--cat-3)}.cat-4,.cat--1{background:var(--cat-4)}.competitor-table tbody tr{cursor:pointer}.competitor-table tbody tr.is-to21 td{background:var(--accent-soft)}.financial-table .col-text,.financial-table .col-name{text-align:left;white-space:normal}.competitor-table th,.competitor-table td{padding:8px}.competitor-table .col-text{min-width:150px;color:var(--muted);font-size:12px}.competitor-table .col-name{min-width:150px;font-weight:600}.competitor-table .col-name .cat-bar{width:100%;margin-top:6px}.competitor-table .unknown-share{display:block;font-size:11px}.contract-table-wrap .col-text{min-width:110px}.contract-table-wrap td.col-text:nth-child(2){min-width:220px}.financial-table td.col-text small{display:block;color:var(--muted);font-size:11.5px}.unknown-share{color:var(--muted)}.mark-tag{background:var(--warn-soft);color:var(--warn)}.mark-tag.is-main{background:var(--primary);color:var(--primary-fg)}.competitor-cards{display:none}.competitor-card{display:grid;gap:6px;width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--fg);font:inherit;text-align:left;cursor:pointer}.competitor-card-head{display:flex;align-items:center;gap:4px;min-width:0}.competitor-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competitor-rank{min-width:22px;color:var(--muted);font-size:12px}.competitor-amount{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.competitor-card .cat-bar{width:100%}.competitor-card-meta,.competitor-card-orgs{color:var(--muted);font-size:12px;word-break:keep-all;overflow-wrap:anywhere}.detail-head h2{margin-top:8px}.back-button{padding:4px 10px}.vendor-chips{display:flex;flex-wrap:wrap;gap:6px}.vendor-chip{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:12.5px}.vendor-chip small{color:var(--muted);font-variant-numeric:tabular-nums}.vendor-chip .text-link-button{color:var(--accent);font-size:12px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-box{min-width:0;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r)}.detail-grid .detail-box{margin-top:0}.detail-box h4{margin:0 0 10px;font-size:13.5px}.bar-list{display:grid;gap:6px;margin:0;padding:0;list-style:none;font-size:12.5px}.bar-list li{display:grid;grid-template-columns:minmax(64px,30%) minmax(40px,1fr) auto;align-items:center;gap:8px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:10px;overflow:hidden;border-radius:5px;background:var(--surface-2)}.bar-track i{display:block;height:100%;border-radius:5px;background:var(--primary)}.bar-value{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.meeting-list,.contract-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.meeting-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.meeting-list li:last-child,.contract-list li:last-child{border-bottom:0}.meeting-body,.contract-list li{display:grid;gap:2px;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.meeting-body strong{font-size:13px;font-weight:600}.meeting-body small,.contract-list small{color:var(--muted);font-size:12px}.meeting-list .ghost-button{padding:4px 10px;font-size:12px}.contract-list{display:none}.contract-list li{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.selection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.histogram{display:block;width:100%;height:auto}.histogram-bar{fill:var(--primary)}.histogram-iqr{fill:var(--warn);opacity:.35}.histogram-median{stroke:var(--warn);stroke-width:2}.histogram-axis{stroke:var(--line-2)}.histogram-tick{fill:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.histogram-note{margin:6px 0 0;color:var(--muted);font-size:12px}.histogram-note strong{color:var(--warn)}.group-table th,.group-table td{padding:7px 8px}.group-table .col-text{min-width:140px}@media(max-width:1100px){.competitor-view.is-detail>.search-panel{display:none}}@media(max-width:860px){.competitor-table-wrap{display:none}.competitor-cards{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.detail-grid{grid-template-columns:minmax(0,1fr)}.contract-table-wrap{display:none}.contract-list{display:grid}.list-tools,.list-tools input,.list-tools select{width:100%}.list-tools input,.list-tools select{min-height:40px;font-size:16px}}@media(max-width:640px){.competitor-view .form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.meeting-list li{grid-template-columns:auto minmax(0,1fr)}.meeting-list .ghost-button{grid-column:2;justify-self:start}}
