:root{--forest: #1b3a2d;--forest-light: #2a5040;--gold: #b8914a;--stone: #d4c9b4;--wheat: #faf7f2;--limestone: #f2ebd9;--mist: #e8f0ec;--smoke: #4a4038;--bg: #14261e;--bg-elevated: #232b25;--bg-row: #1e2620;--border: #3a5648;--text: var(--wheat);--text-muted: #a8b5ad;--accent: var(--gold);--accent-soft: rgba(184, 145, 74, .16);--ok: #6fbf8b;--warn: #d4a86a;--bad: #d4726a;--font-sans: "DM Sans", system-ui, sans-serif;--font-display: "Cormorant Garamond", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);font-weight:300;line-height:1.8;letter-spacing:.02em;background:radial-gradient(ellipse 80% 50% at 10% -10%,rgba(184,145,74,.14),transparent 55%),radial-gradient(ellipse 60% 40% at 100% 0%,rgba(42,80,64,.35),transparent 50%),var(--bg);color:var(--text)}button,input{font:inherit;font-weight:400;letter-spacing:normal;line-height:1.4}a{color:var(--accent)}a:hover{color:var(--limestone)}.app-shell{margin:0 auto;padding:5rem 5rem 3rem}.brand-row{display:flex;align-items:center;gap:.75rem}.brand-mark{flex-shrink:0;color:var(--wheat)}.brand{font-family:var(--font-display);font-size:2rem;font-weight:400;letter-spacing:.02em;margin:0;line-height:1.1}.brand span{color:var(--accent)}.subtitle{margin:.35rem 0 0;color:var(--text-muted);font-size:.9rem;font-weight:300}.topbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:7rem}.tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.tab{background:transparent;border:none;color:var(--text-muted);padding:.65rem 1rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:400}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:500}.panel-actions{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.opportunity-groups{display:flex;flex-direction:column;gap:1.5rem}.opportunity-groups .opportunities-table{table-layout:fixed;width:100%}.opportunity-groups .opportunities-table .col-pub-date,.opportunity-groups .opportunities-table .col-auction-date{width:7.5rem}.opportunity-groups .opportunities-table .col-pub-name{width:auto}.opportunity-groups .opportunities-table .col-federal,.opportunity-groups .opportunities-table .col-cantonal,.opportunity-groups .opportunities-table .col-memo{width:5.5rem}.opportunity-groups .opportunities-table .col-dates-synced{width:6.5rem}.opportunity-groups .opportunities-table .col-valuation{width:9rem}.opportunity-groups .opportunities-table .col-status{width:12.5rem}.opportunity-groups .opportunities-table td{overflow-wrap:anywhere}.opportunity-group-title{margin:0 0 .75rem;font-family:var(--font-display);font-size:1.25rem;font-weight:400;letter-spacing:.02em;color:var(--text)}details.opportunity-group>summary.opportunity-group-title{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none}details.opportunity-group>summary.opportunity-group-title::-webkit-details-marker{display:none}details.opportunity-group>summary.opportunity-group-title:before{content:"▸";color:var(--accent);font-size:.85rem;line-height:1}details.opportunity-group[open]>summary.opportunity-group-title:before{content:"▾"}details.opportunity-group>summary.opportunity-group-title:hover{color:var(--accent)}.test-run-bar{display:flex;align-items:flex-end;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.test-run-field{display:flex;flex-direction:column;gap:.35rem;flex:1 1 20rem;min-width:12rem}.test-run-field input{width:100%;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);padding:.5rem .75rem;border-radius:4px;font-family:var(--font-mono);font-size:.85rem}.test-run-field input:focus{border-color:var(--accent);outline:none}.test-run-field input:disabled{opacity:.55}.schedule-editor{display:flex;flex-direction:column;gap:.75rem;max-width:28rem}.schedule-row{display:flex;align-items:flex-end;gap:.75rem}.filter-field{display:inline-flex;align-items:center;gap:.45rem}.filter-label{font-family:var(--font-sans);font-size:.625rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted)}.filter-field select{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);padding:.45rem .7rem;border-radius:4px;font-family:var(--font-mono);font-size:.8rem;cursor:pointer}.filter-field select:hover,.filter-field select:focus{border-color:var(--accent);outline:none}.btn{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);padding:.5rem .9rem;border-radius:4px;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.btn-primary:hover:not(:disabled){background:#b8914a3d;border-color:var(--accent)}.btn-ghost{background:transparent}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated)}table{width:100%;border-collapse:collapse;font-size:.875rem;font-weight:400;line-height:1.45;letter-spacing:normal}th,td{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--border);vertical-align:top}th{font-family:var(--font-sans);font-size:.625rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);font-weight:500;background:#00000038}tr:last-child td{border-bottom:none}tr:nth-child(2n) td{background:var(--bg-row)}.mono{font-family:var(--font-mono);font-size:.8rem;letter-spacing:normal}.muted{color:var(--text-muted)}.pill{display:inline-block;font-family:var(--font-sans);font-size:.7rem;font-weight:500;padding:.15rem .45rem;border-radius:3px;border:1px solid var(--border);letter-spacing:.04em}.pill-ok{color:var(--ok);border-color:#6fbf8b66}.pill-warn{color:var(--warn);border-color:#d4a86a66}.pill-bad{color:var(--bad);border-color:#d4726a66}.pill-muted{color:var(--text-muted)}.login-page{min-height:100vh;display:grid;place-items:center;padding:3rem 1.5rem 1.5rem}.login-card{width:min(380px,100%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:1.75rem;box-shadow:0 12px 40px #00000059}.login-card .brand-row{margin-bottom:.35rem}.login-card h1{font-family:var(--font-display);font-size:1.85rem;font-weight:400;letter-spacing:.02em;margin:0}.login-card p{margin:0 0 1.25rem;color:var(--text-muted);font-size:.9rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field label{font-size:.625rem;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted)}.field input{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:.55rem .65rem}.field input:focus{border-color:var(--accent);outline:none}.error{color:var(--bad);font-size:.85rem;margin:0 0 .75rem}.status-line{font-size:.85rem;color:var(--text-muted)}.empty{padding:2rem;text-align:center;color:var(--text-muted)}.settings-wrap{position:relative}.settings-popover{position:absolute;top:calc(100% + .5rem);right:0;z-index:20;width:min(22rem,calc(100vw - 2.5rem));padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);box-shadow:0 8px 24px #00000059}.settings-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.settings-field input{width:100%;border:1px solid var(--border);background:var(--bg);color:var(--text);padding:.5rem .65rem;border-radius:4px;font-family:var(--font-mono);font-size:.85rem}.settings-field input:focus{border-color:var(--accent);outline:none}.settings-hint{font-size:.8rem;margin:0 0 .75rem}.settings-ok{color:var(--ok);font-size:.85rem;margin:0 0 .75rem}.topbar-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}@media(max-width:768px){.app-shell{padding:1.25rem 1rem 2rem}.topbar{flex-direction:column;align-items:stretch;margin-bottom:2rem;gap:1.25rem}.topbar-actions{justify-content:space-between;width:100%}.brand{font-size:1.65rem}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:0;margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;white-space:nowrap;padding:.55rem .85rem;font-size:.9rem}.panel-actions{flex-direction:column;align-items:stretch}.panel-actions .btn,.panel-actions .filter-field,.panel-actions .status-line{width:100%}.filter-field{flex-direction:column;align-items:stretch}.filter-field select{width:100%}.test-run-bar{flex-direction:column;align-items:stretch}.test-run-field{flex:1 1 auto;min-width:0}.schedule-row{flex-direction:column;align-items:stretch}.schedule-row .btn{width:100%}.table-wrap{overflow-x:visible;border:none;background:transparent}.table-wrap table{display:block}.table-wrap thead{display:none}.table-wrap tbody{display:flex;flex-direction:column;gap:.75rem}.table-wrap tbody tr{display:block;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);padding:.85rem 1rem}.table-wrap tbody tr:nth-child(2n){background:var(--bg-elevated)}.table-wrap td{display:grid;grid-template-columns:minmax(5.5rem,38%) 1fr;gap:.65rem;align-items:start;padding:.45rem 0;border-bottom:none;background:transparent!important;word-break:break-word}.table-wrap td:before{content:attr(data-label);font-family:var(--font-sans);font-size:.625rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted);font-weight:500;padding-top:.15rem}.table-wrap td:last-child{padding-bottom:0}.table-wrap td:first-child{padding-top:0}.settings-popover{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-width:none;border-radius:12px 12px 0 0;padding:1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom,0px))}}@media(min-width:769px)and (max-width:1024px){.app-shell{padding:2.5rem 2rem 2rem}.topbar{margin-bottom:4rem}}
