: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:nowrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:7rem}.tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.app-shell:has(>.opportunities-status)>.tabs{margin-bottom:.5rem}.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}.status-line.opportunities-status{display:block;margin:0 0 1rem}.panel-actions{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.filters-group{min-width:min(16rem,100%)}.filters-group .filter-field{margin-top:.25rem}.opportunity-groups{display:flex;flex-direction:column;gap:1.5rem}.opportunity-group-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.opportunity-group-header .opportunity-group-title{margin-bottom:0;line-height:1.2}.opportunity-group{container-type:inline-size;container-name:opportunity-group}.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}.editable-cell{display:block;min-width:0}.editable-cell-display{min-width:0}.editable-cell-hit{cursor:pointer;border-radius:3px;outline:none}.editable-cell-hit:hover,.editable-cell-hit:focus-visible{background:var(--accent-soft)}.editable-cell-hit:focus-visible{box-shadow:0 0 0 2px var(--accent)}.editable-cell-editing .editable-cell-display a,.editable-cell-editing .editable-cell-display button{pointer-events:none}.edit-mode-toggle{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;border-radius:3px;background:transparent;color:var(--stone);cursor:pointer;line-height:1;transition:color .12s ease,background .12s ease}.edit-mode-toggle[aria-pressed=true]{color:var(--accent)}.edit-mode-toggle:hover,.edit-mode-toggle:focus-visible{background:var(--accent-soft)}.edit-mode-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}details.opportunity-group:not([open])>summary .edit-mode-toggle{display:none}.edit-popover{position:fixed;z-index:80;width:min(280px,calc(100vw - 16px));padding:.75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);box-shadow:0 10px 28px #00000059}.edit-popover-title{margin:0 0 .55rem;font-family:var(--font-display);font-size:1.05rem;font-weight:400;color:var(--text)}.edit-popover-fields{display:flex;flex-direction:column;gap:.45rem}.edit-popover-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem}.edit-field{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;color:var(--text-muted)}.edit-field-hint{font-size:.75rem;line-height:1.35}.cell-edit-input{width:100%;max-width:none;padding:.3rem .4rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text)}.cell-edit-textarea{resize:vertical;min-height:4.5rem;line-height:1.35}.cell-edit-btn{padding:.2rem .55rem;font-size:.8rem}.cell-edit-error{margin:.45rem 0 0;font-size:.75rem}.opportunity-groups .opportunities-table .col-pub-number{width:10rem}.opportunity-groups .opportunities-table td:nth-child(3),.opportunity-groups .opportunities-table td:nth-child(3) a{white-space:nowrap;overflow-wrap:normal;word-break:normal}.opportunity-groups .opportunities-table .col-pub-name{width:auto;min-width:14rem}.opportunity-groups .opportunities-table .col-cantonal,.opportunity-groups .opportunities-table .col-valuation-report{width:7.5rem}.opportunity-groups .opportunities-table .col-memo{width:6.75rem}.opportunity-groups .opportunities-table .col-map,.opportunity-groups .opportunities-table .col-valuation{width:9rem}.memo-generate-btn{display:inline;margin:0;padding:0;border:none;border-radius:0;background:none;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer;white-space:normal;overflow-wrap:normal;word-break:normal}.memo-generate-btn:hover,.memo-generate-btn:focus-visible{color:var(--limestone)}.memo-generate-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.opportunity-groups .opportunities-table .col-status{width:12.5rem}.opportunity-groups .opportunities-table th{white-space:normal;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;padding:.75rem .85rem;line-height:1.35;vertical-align:bottom}.opportunity-groups .opportunities-table td{overflow-wrap:anywhere;padding:.65rem .85rem}.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,details.opportunity-group>summary.opportunity-group-header{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}details.opportunity-group>summary.opportunity-group-title{display:flex;align-items:center;gap:.5rem}details.opportunity-group>summary.opportunity-group-title::-webkit-details-marker,details.opportunity-group>summary.opportunity-group-header::-webkit-details-marker{display:none}details.opportunity-group>summary.opportunity-group-title:before,details.opportunity-group>summary.opportunity-group-header>.opportunity-group-title:before{content:"▸";color:var(--accent);font-size:.85rem;line-height:1}details.opportunity-group>summary.opportunity-group-header>.opportunity-group-title{display:flex;align-items:center;gap:.5rem}details.opportunity-group[open]>summary.opportunity-group-title:before,details.opportunity-group[open]>summary.opportunity-group-header>.opportunity-group-title:before{content:"▾"}details.opportunity-group>summary.opportunity-group-title:hover,details.opportunity-group>summary.opportunity-group-header>.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)}button.pill-clickable{cursor:pointer;background:transparent;font:inherit;line-height:inherit}button.pill-clickable:hover,button.pill-clickable:focus-visible{filter:brightness(1.15);outline:none}button.pill-clickable:focus-visible{box-shadow:0 0 0 2px var(--accent)}.logs-popover{width:min(420px,calc(100vw - 16px))}.logs-popover-body{margin:0;max-height:min(40vh,280px);overflow:auto;white-space:pre-wrap;word-break:break-word;padding:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--bad);font-size:.75rem;line-height:1.45}.logs-popover-body-ok{color:var(--text)}.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(26rem,calc(100vw - 2.5rem));padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);box-shadow:0 8px 24px #00000059;max-height:min(80vh,36rem);overflow-y:auto}.settings-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.5rem}.settings-field input,.settings-field select{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 select{font-family:var(--font-sans)}.settings-field input:focus,.settings-field select: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{position:relative;flex-shrink:0;margin-left:auto}.account-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:none;outline:none;border-radius:4px;background:var(--bg-elevated);color:var(--text);cursor:pointer}.account-menu-btn:hover{color:var(--accent)}.account-menu-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}.account-menu-icon{display:flex;flex-direction:column;justify-content:center;gap:.28rem;width:1.1rem}.account-menu-icon span{display:block;height:1.5px;width:100%;background:currentColor;border-radius:1px}.account-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:40;min-width:11.5rem;padding:.45rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated);box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column;gap:.25rem}.account-menu-user{padding:.45rem .65rem .35rem;font-size:.85rem}.account-menu-item .settings-wrap,.account-menu-item .settings-wrap>.btn,.account-menu-logout{width:100%;text-align:left}.account-menu-item .settings-wrap>.btn,.account-menu-logout{border-color:transparent;background:transparent}.account-menu-item .settings-wrap>.btn:hover,.account-menu-logout:hover{border-color:var(--border);background:var(--bg-row)}@media(max-width:768px){.app-shell{padding:1.25rem 1rem 2rem}.topbar{margin-bottom:2rem;gap:1rem}.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,.filters-group{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(8.75rem,42%) minmax(0,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;min-width:0;max-width:100%;overflow-wrap:break-word;word-break:normal;white-space:normal}.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))}}@container opportunity-group (max-width: 91.25rem){.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(8.75rem,42%) minmax(0,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;min-width:0;max-width:100%;overflow-wrap:break-word;word-break:normal;white-space:normal}.opportunities-table td:nth-child(3),.opportunities-table td:nth-child(3) a{min-width:0;overflow:hidden;text-overflow:ellipsis}.table-wrap td:last-child{padding-bottom:0}.table-wrap td:first-child{padding-top:0}}@media(min-width:769px)and (max-width:1024px){.app-shell{padding:2.5rem 2rem 2rem}.topbar{margin-bottom:4rem}}
