@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--ink: #1c2320;--ink-soft: #2a332f;--paper: #f3efe6;--paper-dim: #e8e2d3;--line: #3a453f;--line-on-paper: #d8d2c4;--copper: #b8703f;--copper-bright: #cf8a58;--sage: #6b8068;--plum: #7a5470;--amber: #a68627;--steel: #4f7686;--ink-on-paper: #262b27;--muted: #9aa39c;--text-success: var(--sage);--text-warning: var(--amber);--text-danger: #e24b4a;--text-muted: var(--muted);--border-accent: var(--plum);--bg-success: rgba(107, 128, 104, .15);--bg-warning: rgba(201, 162, 39, .18);--bg-danger: rgba(226, 75, 74, .15);--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", monospace;--radius: 3px}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:baseline;justify-content:space-between;padding:28px 40px 20px;border-bottom:1px solid var(--line)}.app-title{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.01em;margin:0}.app-title .accent{color:var(--copper-bright)}.app-subtitle{font-size:13px;color:var(--muted);margin-top:4px}.toolbar{display:flex;align-items:center;gap:16px}.select,.input,.button{font-family:var(--font-body);font-size:14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--ink-soft);color:var(--paper);padding:8px 12px}.select:focus,.input:focus,.button:focus-visible{outline:2px solid var(--copper-bright);outline-offset:1px}.button{cursor:pointer;font-weight:500;border-color:var(--copper);background:var(--copper);color:var(--ink);transition:background .15s ease}.button:hover{background:var(--copper-bright)}.button.secondary{background:transparent;border-color:var(--line);color:var(--paper)}.button.secondary:hover{border-color:var(--muted)}.button:disabled{opacity:.5;cursor:not-allowed}.icon-label-btn{display:inline-flex;align-items:center;gap:6px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;background:none;border:none;border-radius:var(--radius);color:var(--muted);cursor:pointer;padding:0}.icon-btn:hover{color:var(--copper-bright);background:#b8703f1f}.icon-btn:disabled{opacity:.5;cursor:not-allowed;background:none}.icon-btn.icon-btn-danger:hover{color:var(--text-danger);background:var(--bg-danger)}.month-nav{display:flex;align-items:center;gap:10px;font-family:var(--font-mono)}.month-nav .label{min-width:140px;text-align:center;font-size:14px}.layout{flex:1;padding:28px 40px 40px}.calendar{background:var(--paper);color:var(--ink-on-paper);border-radius:var(--radius);padding:20px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 2px 10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-cell{position:relative;min-height:92px;background:#fff;border:1px solid var(--line-on-paper);border-left:3px solid var(--line-on-paper);border-radius:2px;padding:8px 10px;cursor:pointer;text-align:left;font-family:var(--font-body);transition:box-shadow .12s ease,transform .12s ease}.day-cell:hover{box-shadow:0 2px 8px #0000001f;transform:translateY(-1px)}.day-cell:focus-visible{outline:2px solid var(--copper);outline-offset:-2px}.day-cell.is-empty{background:transparent;border-color:transparent;cursor:default;pointer-events:none}.day-cell.is-selected{box-shadow:0 0 0 2px var(--copper) inset}.day-cell.type-weekend{border-left-color:var(--plum)}.day-cell.type-holiday{border-left-color:var(--copper)}.day-cell.type-pre_holiday{border-left-color:var(--sage)}.day-cell.type-workday{border-left-color:var(--line-on-paper)}.day-cell.is-closed{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--paper-dim) 8px,var(--paper-dim) 16px)}.day-cell .revenue.closed{color:var(--muted);font-weight:500;font-style:italic;font-size:12px}.day-cell .revenue.forecast{color:var(--copper);font-weight:500;font-style:italic}.day-cell .date-num{font-family:var(--font-mono);font-size:13px;color:var(--ink-on-paper)}.day-cell.is-today .date-num{color:var(--copper);font-weight:600}.day-cell .day-type-label{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:2px}.day-cell .revenue{font-family:var(--font-mono);font-size:14px;font-weight:600;margin-top:12px;font-variant-numeric:tabular-nums}.day-cell .revenue.empty{color:var(--muted);font-weight:400;font-size:12px}.day-cell .revenue.missing{color:var(--text-warning);font-weight:500;font-size:11px;display:flex;align-items:center;gap:4px}.day-cell .revenue.missing .missing-dot{font-size:8px;line-height:1}.day-cell .fot-line{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink-on-paper);margin-top:2px;font-variant-numeric:tabular-nums}.day-cell .fot-line.forecast{color:var(--copper);font-weight:500;font-style:italic}.day-cell .weather{position:absolute;right:8px;top:8px;display:flex;align-items:center;gap:4px;font-size:14px;color:var(--muted);font-family:var(--font-mono);text-align:right}.day-cell .weather-icon{font-size:18px;line-height:1}.day-cell .weather-temp{line-height:1}.day-cell .weather.forecast{opacity:.75}.day-cell .weather.forecast .weather-temp{font-style:italic}.day-cell .weather.warning{color:var(--text-warning)}.day-cell .weather.danger{color:var(--text-danger)}.calendar-legend{margin-top:14px;font-size:11px;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}.calendar-legend .legend-dot{color:var(--text-warning)}.panel{background:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius);padding:20px;height:fit-content;position:sticky;top:28px}.panel h2{font-family:var(--font-display);font-size:18px;margin:0 0 4px}.panel .panel-date{font-family:var(--font-mono);font-size:13px;color:var(--muted);margin-bottom:18px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--copper)}.field .input{width:100%}.form-actions{display:flex;gap:10px;margin-top:4px}.status-line{font-size:12px;margin-top:12px}.status-line.error{color:#e08a6b}.status-line.success{color:var(--sage)}.status-line.warning{color:var(--copper)}.empty-state{color:var(--muted);font-size:13px;line-height:1.6}.hint-text{color:var(--muted);font-size:12px;margin-top:-6px;margin-bottom:10px}.restaurant-setup{max-width:420px;margin:60px auto;padding:28px;background:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius)}.restaurant-setup h2{font-family:var(--font-display);margin-top:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0ba6;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal-card{position:relative;background:var(--paper);color:var(--ink-on-paper);border-radius:var(--radius);padding:28px;max-width:520px;width:100%;max-height:85vh;overflow-y:auto}.modal-card .button.secondary{color:var(--ink-on-paper);border-color:var(--line-on-paper)}.modal-card .button.secondary:hover{border-color:var(--muted)}.modal-card.modal-card-dark{background:var(--ink-soft);color:var(--paper)}.modal-card.modal-card-dark .button.secondary{color:var(--paper);border-color:var(--line)}.modal-card.modal-card-dark .button.secondary:hover{border-color:var(--muted)}.modal-card.modal-card-dark .modal-close{color:var(--paper)}.modal-card.modal-card-dark .modal-close:hover{background:var(--ink)}.modal-close{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--ink-on-paper);font-size:20px;line-height:1;cursor:pointer}.modal-close:hover{background:var(--paper-dim)}.modal-date{font-family:var(--font-display);font-size:20px;font-weight:600;padding-right:24px}.modal-day-type{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px}.modal-section{margin-top:18px}.modal-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 12px}.modal-revenue{font-family:var(--font-mono);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.modal-top-numbers{display:flex;gap:32px;flex-wrap:wrap}.modal-number-block{flex:1;min-width:140px}.modal-view-header{display:flex;justify-content:flex-end}.modal-edit-trigger{background:transparent;border:none;color:var(--muted);font-family:var(--font-body);font-size:12px;cursor:pointer;padding:2px 0}.modal-edit-trigger:hover{color:var(--copper)}.modal-number-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}.modal-meta{display:flex;gap:12px;font-size:13px;color:var(--muted);margin-top:4px}.modal-revenue.closed{font-size:20px;color:var(--muted);font-style:italic}.modal-revenue.forecast{color:var(--copper)}.modal-deviation{font-size:12px;margin-top:4px}.modal-field-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.modal-field-hint{color:var(--muted);font-size:11px;white-space:nowrap}.modal-future-note{margin-top:14px}.modal-divider{height:1px;background:var(--line-on-paper);margin-top:20px}.weather-detail-grid{display:grid;grid-template-columns:auto 1fr;row-gap:10px;column-gap:16px;margin:0}.weather-detail-grid dt{font-size:13px;color:var(--muted)}.weather-detail-grid dd{margin:0;font-family:var(--font-mono);font-size:14px;text-align:right}.weather-detail-grid--compare{grid-template-columns:auto 1fr 1fr}.weather-detail-grid--compare dd.forecast{color:var(--copper)}.weather-detail-grid--compare dd.weather-col-label{font-family:var(--font-body);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.weather-detail-grid--compare dd.weather-col-label.forecast{color:var(--copper)}.runrate-card{background:var(--paper);color:var(--ink-on-paper);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px}.runrate-card h2{font-family:var(--font-display);font-size:16px;margin:0 0 12px}.runrate-total{font-family:var(--font-mono);font-size:30px;font-weight:600;font-variant-numeric:tabular-nums}.runrate-split{font-size:13px;color:var(--muted);margin-top:2px}.runrate-progress{font-size:12px;color:var(--muted);margin-top:8px}.runrate-table-title{font-family:var(--font-body);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:18px 0 0}.runrate-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}.runrate-table th{text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line-on-paper);padding:6px 8px}.runrate-table th:not(:first-child){text-align:right}.runrate-table td{padding:8px;border-bottom:1px solid var(--line-on-paper);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.runrate-table td:first-child{font-family:var(--font-body);font-variant-numeric:normal}.runrate-table td:not(:first-child){text-align:right}.runrate-fallback-note{font-family:var(--font-body);color:var(--muted);font-size:11px}.role-group-row td{padding:7px 10px 6px;border-bottom:none}.role-group-row:not(:first-child) td{padding-top:16px}.role-group-band{display:flex;align-items:center;justify-content:space-between;padding:5px 4px;font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--line-on-paper)}.role-group-band .role-group-count{font-family:var(--font-mono);font-size:10.5px;font-weight:500;text-transform:none;letter-spacing:normal;color:var(--muted)}.schedule-legend{margin:10px 2px 0;font-size:11px;color:var(--muted);font-family:var(--font-body)}.schedule-legend-mark{color:var(--plum);font-weight:700}.import-panel{background:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:20px}.import-panel-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.import-panel-controls{display:flex;align-items:flex-end;gap:12px}.field-inline{margin-bottom:0}.field-inline label{margin-bottom:4px}.import-hint{font-size:12px;color:var(--muted);margin:12px 0 0}.import-hint code{font-family:var(--font-mono);background:var(--ink);padding:1px 5px;border-radius:2px}.import-panel h2{font-family:var(--font-display);font-size:15px;margin:0 0 4px}.import-panel .empty-state{margin:0}.import-summary{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.import-summary-line{font-size:13px}.import-summary-line.muted{color:var(--muted);margin-top:4px}.import-summary-line.error{color:#e08a6b;margin-top:4px}.import-errors{margin-top:10px;font-size:12px;color:var(--muted)}.import-errors summary{cursor:pointer;color:var(--copper-bright)}.import-errors ul{margin:8px 0 0;padding-left:18px;max-height:200px;overflow-y:auto}.import-errors li{margin-bottom:4px}.forecast-card{background:var(--paper);color:var(--ink-on-paper);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px}.forecast-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.forecast-card h2{font-family:var(--font-display);font-size:16px;margin:0 0 4px}.forecast-card .empty-state{max-width:480px}.forecast-total{font-family:var(--font-mono);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:14px}.forecast-meta{font-size:12px;color:var(--muted);margin-top:2px}.forecast-updated-at{font-size:11px;color:var(--muted);margin-top:6px}.fot-breakdown{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px}.fot-breakdown dt{color:var(--muted)}.fot-breakdown dd{margin:0;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.fot-breakdown dt.muted,.fot-breakdown dd.muted{color:var(--muted);font-size:12px;font-style:italic}.forecast-generation-summary{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-on-paper)}.top-nav{display:flex;align-items:center;gap:4px;padding:10px 40px 0;background:var(--ink)}.top-nav-user{margin-left:auto;display:flex;align-items:center;gap:12px}.top-nav-user-email{font-size:12px;color:var(--muted)}.top-nav-link{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:var(--font-body);font-size:13px;font-weight:500;padding:8px 14px;cursor:pointer}.top-nav-link:hover{color:var(--paper)}.top-nav-link.is-active{color:var(--copper-bright);border-bottom-color:var(--copper-bright)}.staff-layout{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:24px;padding:28px 40px 40px;align-items:start}@media (max-width: 1100px){.staff-layout{grid-template-columns:1fr}}.panel-section{background:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.panel-section h2{font-family:var(--font-display);font-size:17px;margin:0 0 12px}.subsection-title{font-family:var(--font-display);font-size:14px;font-weight:600;margin:20px 0 12px;padding-top:16px;border-top:1px solid var(--line)}.inline-form{display:flex;gap:8px;margin-top:14px}.inline-form .input{flex:1}.role-chips{display:flex;flex-wrap:wrap;gap:6px}.role-chip{font-size:12px;background:var(--ink);border:1px solid var(--line);border-radius:12px;padding:4px 10px;color:var(--paper)}.role-chip.toggle-chip{cursor:pointer;font-family:inherit;background:transparent;color:var(--ink-on-paper);border-color:var(--line-on-paper)}.role-chip.toggle-chip:hover{border-color:var(--muted)}.role-chip.toggle-chip.is-selected{background:var(--copper);border-color:var(--copper);color:var(--ink)}.role-chip.toggle-chip:disabled{cursor:not-allowed;opacity:.4}.role-chip.toggle-chip:disabled:hover{border-color:var(--line-on-paper)}.role-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.role-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line)}.button.small{padding:5px 10px;font-size:12px}.employee-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.employee-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line);cursor:pointer}.employee-row:hover{border-color:var(--muted)}.employee-row.is-selected{border-color:var(--copper);background:#b8703f14}.employee-name{font-size:14px;font-weight:500}.employee-meta{font-size:11px;color:var(--muted);margin-top:2px}.role-select-list{display:flex;flex-direction:column;gap:6px}.role-select-row{display:flex;align-items:center;justify-content:space-between}.star-toggle{background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer;line-height:1}.star-toggle.is-primary{color:var(--copper-bright)}.constraint-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.constraint-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--line);font-size:13px}.constraint-badge{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:10px;margin-left:8px}.constraint-badge.hard{background:var(--bg-danger);color:var(--text-danger)}.constraint-badge.soft{background:#9aa39c26;color:var(--muted)}.solver-status-badge{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:10px;font-family:var(--font-body)}.solver-status-badge.optimal{background:#6b806826;color:var(--sage)}.solver-status-badge.feasible{background:#c9a2272e;color:var(--amber)}.employee-card h2{margin-bottom:4px}.card-subsection{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.card-subsection:first-of-type{margin-top:14px}.card-section-title{font-family:var(--font-display);font-size:13px;font-weight:600;margin:0 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.role-chip.is-primary{border-color:var(--copper);color:var(--copper-bright)}.single-panel-layout{padding:28px 40px 40px;max-width:480px}.shift-templates-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px;padding:28px 40px 40px;align-items:start}.shift-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.fot-off-target{color:var(--text-danger)}.day-cell.is-fot-alert{box-shadow:0 0 0 1px var(--text-danger) inset}.status-ok{color:var(--text-success)}.status-warning{color:var(--text-warning)}.status-danger{color:var(--text-danger)}.schedule-table-wrap{background:var(--paper);color:var(--ink-on-paper);border-radius:var(--radius);padding:16px;overflow-x:auto}.field-row{display:flex;flex-wrap:wrap;gap:12px}.interval-list{display:flex;flex-direction:column;gap:22px}.interval-block{background:var(--ink);border:1px solid var(--muted);border-radius:var(--radius);padding:12px 14px}.interval-block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.interval-time{font-family:var(--font-mono);font-size:13px;color:var(--copper-bright)}.interval-role-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.accent-input{border-style:dashed;border-color:var(--copper)}.accent-btn{background:transparent;border-style:dashed;border-color:var(--copper);color:var(--copper-bright)}.accent-btn:not(:disabled):hover{background:#b8703f1f;border-color:var(--copper-bright);color:var(--copper-bright)}.accent-btn:disabled{border-style:dashed;color:var(--muted)}.role-block-list{display:flex;flex-direction:column;gap:8px}.role-block{padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line)}.role-block-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.condition-fields{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 2px 22px}.split-control{display:flex;align-items:center;gap:8px;margin-top:22px;padding-top:14px;border-top:1px dashed var(--line)}.step-ladder{display:flex;flex-wrap:wrap;gap:8px;padding:0 40px;margin-bottom:20px;max-width:1000px}.step-chip{font-family:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--ink-soft);color:var(--paper)}.step-chip:hover{border-color:var(--muted)}.step-chip.is-selected{border-color:var(--copper);box-shadow:0 0 0 1px var(--copper)}.step-chip-name{font-size:13px;font-weight:500}.step-chip-threshold{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.step-chip.is-add{justify-content:center;color:var(--muted);border-style:dashed}.step-chip.is-add:hover{color:var(--paper)}.step-panel-wrap{padding:0 40px 40px;max-width:1000px}.role-req-table{width:100%;table-layout:fixed;border-collapse:collapse;margin-bottom:8px;font-size:13px}.role-req-table th{text-align:left;font-weight:500;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px}.role-req-table td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}.role-name-cell{display:inline-flex;align-items:center;gap:4px;max-width:100%}.role-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-req-table .cell-fields{display:flex;align-items:center;gap:6px;min-height:24px}.role-req-table input[type=number]{width:48px}.role-req-table input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;flex-shrink:0;margin:0;border:1px solid var(--line-on-paper);border-radius:3px;background:var(--ink);cursor:pointer;position:relative}.role-req-table input[type=checkbox]:checked{background:var(--copper);border-color:var(--copper)}.role-req-table input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid var(--ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.role-req-table input[type=checkbox]:focus-visible{outline:2px solid var(--copper-bright);outline-offset:1px}.role-policy-wrap{position:relative;display:inline-flex}.role-policy-trigger{position:relative}.role-policy-badge-count{position:absolute;top:-4px;right:-4px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--copper);color:var(--ink);font-size:9px;font-weight:700;line-height:14px;text-align:center}.role-policy-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:360px;max-width:90vw;background:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px #0006;padding:14px;text-align:left;white-space:normal;font-size:13px}.role-policy-popover-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.role-policy-popover-title{font-family:var(--font-display);font-size:15px;font-weight:600}.role-policy-popover-subtitle{font-size:12px;color:var(--muted);margin-top:2px}.role-policy-popover-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;flex-shrink:0}.role-policy-popover-close:hover{color:var(--paper)}.role-policy-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.role-policy-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.role-policy-section-title{font-size:12px;color:var(--muted);margin-bottom:8px}.role-name-accent{color:var(--copper-bright);font-weight:600}.role-policy-add-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}.role-policy-footer{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);text-align:right}.role-policy-footer-link{background:none;border:none;color:var(--copper-bright);cursor:pointer;font-size:12px;padding:0}.role-policy-footer-link:hover{text-decoration:underline}.button.danger{background:transparent;border-color:var(--text-danger);color:var(--text-danger)}.button.danger:hover{background:var(--bg-danger)}.policy-section-title{font-family:var(--font-display);font-size:15px;font-weight:600;margin:0 0 4px}.policy-list{display:flex;flex-direction:column;gap:6px;margin:10px 0 16px}.policy-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);border:1px solid var(--line);font-size:13px;flex-wrap:wrap}.policy-row-phrase{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.policy-badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;white-space:nowrap}.policy-badge.forbid{background:var(--bg-danger);color:var(--text-danger)}.policy-badge.price{background:#b8703f26;color:var(--copper-bright)}.segmented-toggle{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.segmented-toggle button{font-family:inherit;font-size:12px;cursor:pointer;border:none;background:transparent;color:var(--paper);padding:5px 10px}.segmented-toggle button:not(:first-child){border-left:1px solid var(--line)}.segmented-toggle button.is-active{background:var(--copper);color:var(--ink)}.combo-matrix-legend{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 14px;font-size:12px;color:var(--muted)}.combo-legend-item{display:inline-flex;align-items:center;gap:6px}.combo-legend-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--line);flex-shrink:0}.combo-legend-swatch.is-forbid{background:var(--bg-danger);border-color:var(--text-danger)}.combo-legend-swatch.is-price{background:#b8703f26;border-color:var(--copper)}.combo-legend-swatch.is-diagonal{background:var(--ink)}.combo-matrix-scroll{overflow-x:auto;margin:4px 0 14px;border:1px solid var(--line);border-radius:var(--radius)}.combo-matrix{border-collapse:collapse;font-size:12px}.combo-matrix-corner{position:sticky;left:0;z-index:2;background:var(--ink-soft);min-width:130px;border-bottom:1px solid var(--line)}.combo-matrix-col-head{height:92px;padding:4px 4px 6px;vertical-align:bottom;text-align:left;border-bottom:1px solid var(--line);min-width:44px;max-width:44px}.combo-matrix-col-head span{display:inline-block;transform:rotate(-38deg);transform-origin:left bottom;white-space:nowrap;font-weight:500;color:var(--paper)}.combo-matrix-row-head{position:sticky;left:0;z-index:1;background:var(--ink-soft);text-align:left;padding:6px 14px 6px 10px;font-weight:500;white-space:nowrap;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:130px}.combo-matrix-cell{width:44px;height:34px;min-width:44px;border:1px solid var(--line);text-align:center;cursor:pointer;font-family:var(--font-mono);font-size:12px;color:var(--paper)}.combo-matrix-cell:hover,.combo-matrix-cell.is-selected{outline:2px solid var(--copper-bright);outline-offset:-2px}.combo-matrix-cell.is-forbid{background:var(--bg-danger);color:var(--text-danger)}.combo-matrix-cell.is-price{background:#b8703f26;color:var(--copper-bright)}.combo-matrix-cell.is-diagonal{background:var(--ink);cursor:default}.combo-cell-editor{margin-top:4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--ink)}.combo-cell-editor-title{font-family:var(--font-display);font-size:14px;font-weight:600;margin-bottom:8px}.combo-cell-editor-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink)}.assistant-panel{position:fixed;top:0;right:0;bottom:0;width:340px;z-index:40;display:flex;flex-direction:column;background:var(--ink-soft);color:var(--paper);border-left:1px solid var(--line);box-shadow:-4px 0 16px #00000059;padding:16px;gap:10px;overflow:hidden}.assistant-panel.is-narrow{width:min(400px,100vw)}.assistant-panel.is-collapsed{width:40px;padding:12px 8px;align-items:center;justify-content:flex-start;cursor:pointer;border:none;border-left:1px solid var(--line)}.assistant-panel-rail-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.assistant-panel-header{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display);font-size:15px;padding-bottom:8px;border-bottom:1px solid var(--line);flex:0 0 auto}.assistant-panel-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 6px}.assistant-panel-close:hover{color:var(--paper)}.assistant-context-header{padding-bottom:8px;border-bottom:1px solid var(--line);flex:0 0 auto}.assistant-version-badge{font-size:12px;color:var(--muted)}.setup-area-chips{display:flex;flex-wrap:wrap;gap:6px}.setup-area-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 9px;border-radius:var(--radius);border:1px solid var(--line);background:transparent;color:var(--paper);font-size:11px;cursor:pointer;text-align:left}.setup-area-chip:hover{border-color:var(--muted)}.setup-area-chip.is-current-page{border-color:var(--paper)}.setup-area-chip.is-focused{border-color:var(--copper-bright)}.setup-area-chip-status{font-size:9px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.setup-area-chip.status-not_started .setup-area-chip-status{color:var(--muted)}.setup-area-chip.status-has_gaps .setup-area-chip-status{color:var(--copper)}.setup-area-chip.status-complete .setup-area-chip-status{color:var(--sage)}.runrate-table td.is-highlighted,.role-row.is-highlighted,.employee-row.is-highlighted,.panel-section.is-highlighted{outline:2px solid var(--sage);outline-offset:-2px;background:#6b80681f}.chat-message-list{display:flex;flex-direction:column;gap:14px;flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.chat-message{padding:10px 14px;border-radius:var(--radius);border:1px solid var(--line);font-size:13px;line-height:1.5;white-space:pre-wrap;max-width:85%}.chat-message.role-user{align-self:flex-end;border-color:var(--copper);background:#b8703f26}.chat-message.role-assistant{align-self:flex-start;background:var(--ink)}.chat-input-row{display:flex;gap:8px;align-items:flex-end;flex:0 0 auto}.chat-input-row textarea{flex:1;resize:vertical;min-height:76px;font-family:inherit}.proposal-card{margin-top:10px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--line);background:#9aa39c0f;font-size:12px}.proposal-card-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px}.proposal-badge{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:10px;background:#9aa39c26;color:var(--muted)}.proposal-badge.status-confirmed{background:#6b806826;color:var(--sage)}.proposal-badge.status-rejected{background:#7a547026;color:var(--plum)}.proposal-actions{display:flex;gap:8px;margin-top:8px}.regenerate-banner{margin-bottom:16px;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--copper);background:#b8703f14;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.login-card{background:var(--paper);color:var(--ink-on-paper);border-radius:var(--radius);padding:40px;width:100%;max-width:360px}
