:root{--bg: #0f1419;--surface: #1a2332;--surface-2: #243044;--border: #2d3f56;--text: #e8eef6;--muted: #8fa3bc;--accent: #3b9eff;--accent-2: #22c55e;--warn: #f59e0b;--danger: #ef4444;--input-bg: #121a24;--radius: 12px;--shadow: 0 8px 32px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Vazirmatn,system-ui,sans-serif;background:radial-gradient(ellipse at top,#1a2a3d 0%,var(--bg) 55%);color:var(--text);line-height:1.6}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}@media(max-width:900px){.app-shell{grid-template-columns:1fr}}.sidebar{background:#1a2332f2;border-left:1px solid var(--border);padding:1.25rem 1rem;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1.5rem}.brand h1{margin:0;font-size:1.1rem;font-weight:700}.brand p{margin:0;color:var(--muted);font-size:.8rem}.nav-btn{width:100%;text-align:right;border:1px solid transparent;background:transparent;color:var(--text);padding:.65rem .75rem;border-radius:10px;cursor:pointer;margin-bottom:.35rem;transition:.15s ease}.nav-btn:hover{background:var(--surface-2)}.nav-btn.active{background:#3b9eff26;border-color:#3b9eff59;color:#b9dcff}.main{padding:1.5rem;max-width:1200px}.main-wide{max-width:min(100%,1920px)}.main-wide:has(.cashflow-page){max-width:100%}.page-title{margin:0 0 .35rem;font-size:1.5rem}.page-desc{margin:0 0 1.25rem;color:var(--muted);font-size:.95rem}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-bottom:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow)}.card h3{margin:0 0 .35rem;font-size:.85rem;color:var(--muted);font-weight:500}.card .value{font-size:1.35rem;font-weight:700}.card .sub{margin-top:.35rem;font-size:.8rem;color:var(--muted)}.flag-ok{color:var(--accent-2)}.flag-warn{color:var(--warn)}.flag-danger{color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}.panel h2{margin:0 0 1rem;font-size:1.05rem}.form-grid{display:grid;gap:.85rem 1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}input,select,textarea{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.55rem .65rem}input:focus,select:focus,textarea:focus{outline:2px solid rgba(59,158,255,.45);border-color:var(--accent)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{border-bottom:1px solid var(--border);padding:.55rem .4rem;text-align:right}th{color:var(--muted);font-weight:500}.btn{border:none;border-radius:8px;padding:.5rem .85rem;cursor:pointer;font-weight:600}.btn-primary{background:var(--accent);color:#041018}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-danger{background:#ef444426;color:#fecaca;border:1px solid rgba(239,68,68,.35)}.toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.hint{background:#3b9eff14;border:1px dashed rgba(59,158,255,.35);border-radius:10px;padding:.75rem 1rem;color:#b9dcff;font-size:.85rem;margin-bottom:1rem}.flow-steps{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.flow-step{background:var(--surface-2);border-radius:999px;padding:.35rem .75rem;font-size:.78rem;color:var(--muted)}.flow-step span{color:var(--accent);font-weight:700;margin-left:.35rem}.wbs-layout{display:grid;grid-template-columns:1fr 300px;gap:1rem;align-items:start}@media(max-width:1100px){.wbs-layout{grid-template-columns:1fr}}.wbs-summary{position:sticky;top:1rem}.wbs-summary table{font-size:.8rem}.wbs-table-wrap{overflow-x:auto}.wbs-table{font-size:.78rem;min-width:1100px}.wbs-table input,.wbs-table select{padding:.35rem .4rem;font-size:.78rem;min-width:4rem}.wbs-group-head{text-align:center;background:var(--surface-2);color:var(--accent);font-weight:600}.wbs-group-alt{background:#f59e0b1f;color:#fcd34d}.wbs-col-alt{background:#f59e0b0a}.wbs-anchor-row{background:#3b9eff0f}.wbs-gross-inputs{display:flex;flex-direction:column;gap:.25rem}.wbs-gross-inputs input{width:5.5rem}.wbs-categories{display:flex;flex-direction:column;gap:1.25rem}.wbs-category{margin-bottom:0}.wbs-category-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.wbs-category-head h2{margin:0 0 .25rem;font-size:1.1rem}.wbs-gross-inputs-head{flex-direction:row;flex-wrap:wrap;gap:1rem}.wbs-gross-inputs-head label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.wbs-gross-inputs-head input{width:10rem}.wbs-share-hint{display:flex;gap:1.5rem;font-size:.8rem;color:var(--muted);margin-bottom:.5rem}.wbs-warn{color:#f87171;font-weight:600}.wbs-table-compact{min-width:0;width:100%}.cashflow-logic p{margin:.35rem 0}.cashflow-progress-wrap{overflow-x:auto;max-height:420px;overflow-y:auto}.cashflow-progress-table input{width:4.5rem;padding:.35rem;font-size:.85rem}.cashflow-detail-wrap{overflow-x:auto;overflow-y:auto;max-height:min(72vh,900px);border:1px solid rgba(59,158,255,.35);background:var(--surface-2);-webkit-overflow-scrolling:touch}.cashflow-page .panel,.cashflow-flow{margin-bottom:1.25rem}.cashflow-progress-panel{border-color:#3b9eff66}.cashflow-progress-panel h2{color:#b9dcff}.cashflow-settings{margin-bottom:0}.cashflow-results-title{margin:0 0 1rem;font-size:1.1rem}.cashflow-results .chart-panel{margin-top:1rem}.cashflow-scroll-hint{color:var(--accent);font-weight:600}.cashflow-full-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:auto}.cashflow-full-table thead{position:sticky;top:0;z-index:2}.cashflow-full-table th{white-space:normal;font-size:.8rem;font-weight:600;vertical-align:bottom;line-height:1.35;padding:.6rem .75rem;text-align:center;background:#1e2a3a;border-bottom:2px solid rgba(59,158,255,.45);box-shadow:0 1px #2d3f56}.cashflow-full-table .cf-th-label{display:block;color:#e8eef5}.cashflow-full-table .cf-th-ref{display:block;margin-top:.2rem;font-size:.72rem;font-weight:500;color:#8fa3bc}.cashflow-full-table td{white-space:nowrap;font-size:.78rem;padding:.45rem .75rem;text-align:center;vertical-align:middle}.cashflow-full-table .cf-col-month{font-weight:600}.cashflow-full-table tbody tr:nth-child(2n){background:#ffffff05}.cashflow-release-row{background:#22c55e1f}.cashflow-tail-row{opacity:.85}.charts-grid{display:grid;gap:1rem;grid-template-columns:1fr;margin-bottom:1.5rem}.chart-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem 1.15rem;box-shadow:var(--shadow);overflow:hidden}.chart-panel-header{margin-bottom:.85rem}.chart-panel h3{margin:0 0 .4rem;font-size:.95rem;color:var(--text);font-weight:600;line-height:1.45}.chart-caption{margin:0;font-size:.8rem;color:var(--muted);line-height:1.5}.chart-plot-wrap{width:100%;position:relative}.chart-ltr-fill{width:100%;height:100%}.chart-tooltip{background:#1a2332;border:1px solid #3d5268;border-radius:8px;padding:.65rem .85rem;direction:rtl;min-width:11rem;box-shadow:0 8px 24px #00000059}.chart-tooltip-title{font-size:.85rem;font-weight:600;color:#e8eef5;margin-bottom:.45rem;padding-bottom:.35rem;border-bottom:1px solid #2d3f56}.chart-tooltip-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.82rem;line-height:1.5;margin-top:.2rem}.chart-tooltip-label{color:#c5d4e8;white-space:nowrap}.chart-tooltip-value{color:#f1f5f9;font-weight:600;text-align:left;direction:ltr}.chart-panel .recharts-legend-item-text{color:#c5d4e8!important;font-size:11px!important;margin-right:6px!important;line-height:1.45!important}.chart-panel .recharts-cartesian-axis-tick-value{fill:#c5d4e8}.chart-panel .recharts-default-legend{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;gap:4px 16px!important;margin:0!important;padding:0 4px!important}.chart-panel .recharts-legend-wrapper{width:100%!important;max-width:100%!important;left:0!important;right:0!important;padding-inline:4px!important}.chart-panel .recharts-legend-item{display:inline-flex!important;align-items:center!important;margin:0!important;white-space:nowrap!important}.chart-panel .recharts-surface{overflow:visible}.chart-ltr{direction:ltr;width:100%}.chart-panel-wbs{overflow:hidden}.chart-panel-wbs .recharts-cartesian-axis-tick-value{font-size:12px}.chart-panel-wbs .recharts-label-list text{font-weight:600}.chart-panel-radar .chart-plot-wrap{min-height:620px}.chart-panel-radar .recharts-polar-angle-axis-tick-value{font-size:10px}.scenario-card{border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:1rem}.scenario-card.active{border-color:#3b9eff80;background:#3b9eff0f}.scenario-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.scenario-head h2{margin:0;font-size:1.1rem}.analysis-page .analysis-section{margin-bottom:2rem}.analysis-section-title{margin:0 0 1rem;font-size:1.15rem;font-weight:600}.analysis-charts-grid{grid-template-columns:1fr;gap:1.25rem}.analysis-page .chart-panel h3{font-size:1.05rem}.analysis-page .chart-plot-wrap{min-height:480px}.analysis-builder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.analysis-metrics{margin-bottom:1rem}.analysis-metrics-label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.5rem}.analysis-metrics-list{display:flex;flex-wrap:wrap;gap:.5rem}.analysis-metric-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:.82rem;cursor:pointer}.analysis-metric-chip input{accent-color:var(--accent)}.analysis-builder-actions{display:flex;gap:.5rem}.analysis-add-notice{margin:.85rem 0 0;padding:.65rem .85rem;border-radius:8px;font-size:.85rem;line-height:1.45}.analysis-add-notice-error{background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:#fecaca}.analysis-toast{position:fixed;bottom:1.5rem;left:50%;z-index:100;max-width:min(92vw,520px);padding:.85rem 1.1rem;border-radius:10px;font-size:.88rem;line-height:1.5;box-shadow:0 12px 40px #00000073;animation:analysis-toast-in .28s ease-out}.analysis-toast-success{background:#1a3328;border:1px solid rgba(34,197,94,.45);color:#bbf7d0;transform:translate(-50%)}@keyframes analysis-toast-in{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.analysis-catalog-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem}.analysis-catalog-header h2{margin:0}.analysis-catalog-actions{display:flex;flex-wrap:wrap;gap:.35rem}.analysis-catalog-group{margin-bottom:1.25rem}.analysis-catalog-group h3{margin:0 0 .5rem;font-size:.9rem;color:var(--muted);font-weight:600}.analysis-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.5rem}.analysis-catalog-item{display:flex;gap:.5rem;align-items:flex-start;padding:.65rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:.85rem}.analysis-catalog-item strong{display:block;font-weight:600;margin-bottom:.15rem}.analysis-catalog-item small{display:block;color:var(--muted);font-size:.78rem;line-height:1.4}.analysis-tag{display:inline-block;margin-right:.35rem;font-style:normal;font-size:.7rem;color:var(--accent-2);background:#22c55e1f;padding:.05rem .35rem;border-radius:4px}.analysis-chart-wrap{position:relative}.analysis-remove-chart{position:absolute;top:.65rem;left:.65rem;z-index:3;width:1.75rem;height:1.75rem;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1}.analysis-remove-chart:hover{color:var(--danger);border-color:#ef444480}.chart-panel-empty{min-height:160px;display:flex;flex-direction:column;justify-content:center}.main-wide:has(.analysis-page){max-width:100%}.procurement-page .procurement-toolbar{display:flex;flex-wrap:wrap;gap:.5rem}.procurement-list{display:flex;flex-direction:column;gap:1rem}.procurement-item{margin-bottom:0;scroll-margin-top:1rem}.procurement-item-new{border-color:#22c55e8c;box-shadow:0 0 0 2px #22c55e33;animation:procurement-item-highlight 2.4s ease-out}@keyframes procurement-item-highlight{0%{border-color:#22c55ed9;box-shadow:0 0 0 3px #22c55e59}to{border-color:var(--border);box-shadow:var(--shadow)}}.procurement-item-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.procurement-name{flex:1;min-width:180px;font-size:1rem;font-weight:600}.procurement-badge{font-size:.75rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border)}.procurement-badge.imported{background:#3b82f61f;color:#2563eb;border-color:#3b82f659}.procurement-badge.domestic{background:#22c55e1f;color:#15803d;border-color:#22c55e59}.procurement-source-row{display:flex;gap:1.25rem;margin-bottom:1rem}.procurement-source-option{flex-direction:row;align-items:center;gap:.4rem;color:var(--text);cursor:pointer}.procurement-form-grid label span{font-size:.8rem}.procurement-breakdown{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--border)}.procurement-breakdown-title{font-size:.85rem;font-weight:600;margin-bottom:.5rem}.procurement-formula{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted);line-height:1.6}.procurement-formula strong{color:var(--text)}.procurement-landing{color:var(--accent);font-size:1rem}.procurement-breakdown-meta{margin-top:.35rem;font-size:.8rem;color:var(--muted)}.procurement-empty{text-align:center;color:var(--muted)}.btn-sm{padding:.25rem .6rem;font-size:.8rem}.procurement-summary h2{margin:0 0 .35rem;font-size:1.05rem}.procurement-summary-desc{margin:0 0 1rem}.procurement-summary-table-wrap{overflow-x:auto;margin-bottom:1rem}.procurement-summary-table{width:100%;font-size:.85rem}.procurement-summary-table th,.procurement-summary-table td{padding:.55rem .65rem;text-align:right;border-bottom:1px solid var(--border)}.procurement-summary-table thead th{background:var(--surface-2);font-weight:600;white-space:nowrap}.procurement-summary-landing{font-weight:600;color:var(--accent)}.procurement-summary-sub td{color:var(--muted);font-size:.82rem}.procurement-summary-total td{border-top:2px solid var(--border);background:#3b82f614;font-size:.95rem}.procurement-summary-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem}.procurement-summary-card{display:flex;flex-direction:column;gap:.25rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:.82rem;color:var(--muted)}.procurement-summary-card strong{color:var(--text);font-size:1rem}.procurement-summary-card-total{border-color:#3b82f659;background:#3b82f614}.procurement-summary-card-total strong{color:var(--accent);font-size:1.1rem}.procurement-summary-formula{padding:.75rem .9rem;border-radius:var(--radius);border:1px dashed var(--border);font-size:.85rem;color:var(--muted);line-height:1.7;word-break:break-word}.procurement-summary-formula strong{color:var(--accent)}.risks-table input{min-width:5.5rem}.risks-expected{font-weight:600;color:var(--accent);white-space:nowrap}.risks-row-new{background:#22c55e14;box-shadow:inset 0 0 0 2px #22c55e59;animation:procurement-item-highlight 2.4s ease-out}.risks-empty{margin:0;text-align:center;color:var(--muted);padding:1rem 0 0}.risks-summary h2{margin:0 0 .75rem;font-size:1.05rem}.risks-summary-table-wrap{overflow-x:auto;margin-bottom:1rem}.risks-summary-table{width:100%;font-size:.85rem}.risks-summary-table th,.risks-summary-table td{padding:.55rem .65rem;text-align:right;border-bottom:1px solid var(--border)}.risks-summary-table thead th{background:var(--surface-2);font-weight:600}.risks-summary-total td{border-top:2px solid var(--border);background:#3b82f614}.risks-summary-formula{padding:.75rem .9rem;border-radius:var(--radius);border:1px dashed var(--border);font-size:.85rem;color:var(--muted);line-height:1.7;word-break:break-word}.chart-panel-markup-sensitivity .chart-plot-wrap{display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.markup-sensitivity-charts{display:grid;grid-template-rows:minmax(280px,1fr) minmax(260px,46%);flex:1 1 auto;min-height:520px;gap:.5rem}.markup-sensitivity-pane{position:relative;min-height:0;overflow:hidden}.markup-sensitivity-pane .chart-ltr-fill{position:absolute;top:0;right:0;bottom:0;left:0}.markup-sensitivity-pane-ev{border-top:1px dashed var(--border);padding-top:.25rem}.markup-sensitivity-ev-title{margin:0 0 .35rem;text-align:center;font-size:.8rem;font-weight:600;color:#c4b5fd}.markup-sensitivity-scenarios{flex-shrink:0;padding:.5rem 0 0;border-top:1px solid var(--border)}.markup-sensitivity-scenarios-title{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.4rem}.markup-sensitivity-scenario-chips{display:flex;flex-wrap:wrap;gap:.4rem}.markup-sensitivity-scenario-chip{font-size:.75rem;padding:.25rem .55rem;border-radius:999px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);color:#fcd34d}.chart-panel-markup-sensitivity .chart-plot-wrap{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;overflow-x:hidden}.markup-sensitivity-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;flex-shrink:0}.markup-sensitivity-kpi{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .85rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);font-size:.78rem;color:var(--muted)}.markup-sensitivity-kpi strong{color:var(--text);font-size:.9rem;line-height:1.4}.markup-sensitivity-kpi-best{border-color:#22c55e73;background:#22c55e14}.markup-sensitivity-kpi-best strong{color:#86efac}.markup-sensitivity-charts{display:grid;grid-template-rows:minmax(300px,1fr) minmax(280px,1fr);gap:.75rem;flex:1 1 auto;min-height:580px}.markup-sensitivity-pane{position:relative;display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:#0f172a59;padding:.5rem .35rem .35rem}.markup-sensitivity-pane-title{margin:0 0 .35rem;padding:0 .5rem;font-size:.82rem;font-weight:600;color:#c5d4e8;text-align:center;flex-shrink:0}.markup-sensitivity-pane .chart-ltr-fill{flex:1 1 auto;min-height:0;position:relative}.markup-sensitivity-pane-ev{border-color:#a78bfa59}.markup-sensitivity-tooltip-ev{margin-top:.25rem;padding-top:.35rem;border-top:1px solid #2d3f56}.markup-sensitivity-tooltip-ev .chart-tooltip-value{color:#c4b5fd}.markup-sensitivity-table-wrap{flex-shrink:0;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.markup-sensitivity-table{width:100%;font-size:.82rem;border-collapse:collapse}.markup-sensitivity-table th,.markup-sensitivity-table td{padding:.5rem .65rem;text-align:right;border-bottom:1px solid var(--border)}.markup-sensitivity-table thead th{background:var(--surface-2);font-weight:600;white-space:nowrap}.markup-sensitivity-table tbody tr:hover{background:#3b82f60f}.markup-sensitivity-row-best{background:#22c55e1a}.markup-sensitivity-best-tag{display:inline-block;margin-right:.4rem;font-size:.7rem;padding:.1rem .4rem;border-radius:4px;background:#22c55e40;color:#bbf7d0;font-weight:600}.markup-sensitivity-scenarios{flex-shrink:0}.markup-sensitivity-scenarios-title{margin:0 0 .5rem;font-size:.85rem;font-weight:600;color:var(--text)}.markup-sensitivity-scenarios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.markup-sensitivity-scenario-card{display:flex;flex-direction:column;gap:.2rem;padding:.55rem .7rem;border-radius:var(--radius);border:1px solid rgba(245,158,11,.35);background:#f59e0b14;font-size:.75rem;color:#fcd34d}.markup-sensitivity-scenario-card.is-best{border-color:#22c55e80;background:#22c55e1a;color:#bbf7d0}.markup-sensitivity-scenario-card strong{margin-top:.15rem;color:#fef3c7;font-size:.82rem}.markup-sensitivity-scenario-card.is-best strong{color:#86efac}.markup-sensitivity-scenario-name{font-weight:600;font-size:.82rem}.markup-sensitivity-pane-plot{position:relative;min-height:280px;height:320px}.markup-sensitivity-pane-plot .chart-ltr-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.markup-sensitivity-pane-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.chart-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.chart-panel-header-text{flex:1;min-width:0}.chart-download{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.chart-download-label{font-size:.72rem;color:var(--muted)}.chart-download-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:6px;padding:.2rem .55rem;font-size:.72rem;cursor:pointer;line-height:1.4}.chart-download-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.chart-download-btn:disabled{opacity:.5;cursor:not-allowed}.chart-download-compact .chart-download-label{display:none}.chart-download-error{font-size:.68rem;color:var(--danger);max-width:8rem}.analysis-page .chart-panel-markup-sensitivity .chart-plot-wrap{min-height:720px}.wbs-share-markup-cell{display:inline-flex;align-items:center;gap:.25rem}.wbs-share-linked{font-size:.75rem;color:var(--accent-2);opacity:.85;-webkit-user-select:none;user-select:none}.wbs-share-sync-btn{border:none;background:var(--surface-2);color:var(--muted);border-radius:4px;width:1.35rem;height:1.35rem;cursor:pointer;font-size:.85rem;line-height:1;padding:0}.wbs-share-sync-btn:hover{color:var(--accent);background:#3b9eff26}.cashflow-progress-sum-row td{background:var(--surface-2);border-top:2px solid var(--border);font-size:.88rem}.cashflow-progress-table .pct-input,.cashflow-progress-table input{min-width:4rem;text-align:center}.scenario-field-hint{margin:.35rem 0 0;font-size:.78rem;color:var(--accent)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:420px;padding:2rem}.auth-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.auth-field span{font-size:.85rem;color:var(--muted)}.auth-submit{width:100%;margin-top:.5rem}.auth-error{margin:.75rem 0;padding:.65rem .85rem;border-radius:var(--radius);background:#ef44441f;color:#fca5a5;font-size:.85rem}.auth-success{margin:.75rem 0;padding:.65rem .85rem;border-radius:var(--radius);background:#22c55e1f;color:#86efac;font-size:.85rem}.auth-footnote{margin-top:1.25rem;margin-bottom:0;text-align:center}.projects-hub{align-items:flex-start;padding-top:2rem}.projects-hub-inner{width:100%;max-width:720px;padding:1.5rem 2rem}.projects-hub-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.projects-hub-actions{display:flex;gap:.5rem;flex-wrap:wrap}.projects-create{display:flex;gap:.5rem;margin-bottom:1.25rem}.projects-create input{flex:1}.projects-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.projects-list-item{display:flex;gap:.5rem;align-items:stretch}.projects-open{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem 1rem;text-align:right;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);cursor:pointer}.projects-open:hover{border-color:var(--accent)}.projects-open span{font-size:.78rem;color:var(--muted)}.admin-user-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.admin-user-form label{display:flex;flex-direction:column;gap:.35rem}.admin-user-form label span{font-size:.85rem;color:var(--muted)}.save-status{font-size:.75rem;margin:.25rem 0 0;color:var(--muted)}.save-status[data-status=saved]{color:var(--accent-2)}.save-status[data-status=error]{color:var(--danger)}@media(max-width:640px){.admin-user-form{grid-template-columns:1fr}}
