:root{--bg: #f4f5f7;--panel: #ffffff;--border: #d9dde3;--text: #1f2933;--muted: #5f6b7a;--accent: #1f5fbf;--accent-soft: #e6eefb;--error: #b42318;--error-soft: #fdecea;--warning: #9a5b00;--warning-soft: #fff4e0;--info: #0b5c8f;--info-soft: #e5f2fb;--diff: #fff3c4;--radius: 6px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--panel);border-bottom:1px solid var(--border);padding:0 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.topbar h1{font-size:16px;margin:0;padding:14px 0;white-space:nowrap}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav a{padding:14px 12px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}.nav a.active{color:var(--accent);border-bottom-color:var(--accent)}.nav a.disabled{opacity:.4;pointer-events:none}.topbar .current{margin-left:auto;color:var(--muted)}.topbar .current b{color:var(--text)}.topbar .status{color:var(--muted);font-size:12px}.page{padding:20px 24px 40px;max-width:1400px;width:100%;margin:0 auto}.page h2{font-size:20px;margin:0 0 16px}.page h3{font-size:15px;margin:20px 0 8px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:12px}.error-text{color:var(--error)}button{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){color:#fff;background:#174a96}button.danger:hover:not(:disabled){border-color:var(--error);color:var(--error)}button.link{border:none;background:none;padding:2px 4px;color:var(--accent)}input[type=text],input[type=number],select,textarea{border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px;background:#fff}input[type=text]:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input.invalid{border-color:var(--error);background:var(--error-soft)}input:disabled,select:disabled{background:#f0f1f3;color:var(--muted)}table.grid{border-collapse:collapse;width:100%;background:var(--panel)}table.grid th,table.grid td{border:1px solid var(--border);padding:6px 10px;text-align:left;vertical-align:middle}table.grid th{background:#f0f2f5;font-weight:600}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.grid tr.bold td{font-weight:600}table.grid tr.diff td{background:var(--diff)}table.grid tr.group td{background:#f7f8fa;font-weight:600;color:var(--muted)}table.grid td.id{color:var(--muted);white-space:nowrap;width:1%}.table-wrap{overflow-x:auto}.label-hint{display:inline-flex;align-items:center;gap:6px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:8px 12px;color:var(--muted)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.kpi .label{color:var(--muted);font-size:12px;min-height:32px}.kpi .value{font-size:20px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}.kpi .unit{color:var(--muted);font-size:12px;margin-left:4px;font-weight:400}.kpi .id{color:var(--muted);font-size:11px}.kpi .note{color:var(--warning);font-size:11px;margin-top:4px}.messages{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.message{padding:8px 12px;border-radius:var(--radius);border:1px solid;display:flex;gap:8px}.message .ctx{font-weight:600;white-space:nowrap}.message.error{background:var(--error-soft);border-color:#f1b3ad;color:var(--error)}.message.warning{background:var(--warning-soft);border-color:#f5d28a;color:var(--warning)}.message.info{background:var(--info-soft);border-color:#a8d3ee;color:var(--info)}.fields{display:grid;grid-template-columns:1fr;gap:0}.field{display:grid;grid-template-columns:64px minmax(260px,1fr) minmax(220px,420px) 90px;gap:12px;align-items:center;padding:8px 4px;border-bottom:1px solid #eef0f3}.field.inactive{opacity:.55}.field .id{color:var(--muted);font-variant-numeric:tabular-nums}.field .label{display:flex;align-items:center;gap:6px}.field .unit{color:var(--muted);font-size:12px}.field .control{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.field .control input[type=text]{width:100%;max-width:160px;text-align:right}.field .control.years input[type=text]{width:72px;max-width:72px}.field .control.years .year{display:flex;flex-direction:column;gap:2px;align-items:center}.field .control.years .year span{font-size:11px;color:var(--muted)}.field .control.years .year span.computed{font-size:14px;color:var(--text);font-variant-numeric:tabular-nums;padding:6px 0}.conclusions{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px}.conclusions h3{margin:0 0 8px}.conclusions ol{margin:0;padding-left:20px}.conclusions li{margin:4px 0;line-height:1.45}table.elements input[type=text]{min-width:260px;width:100%}table.elements td.num input[type=text]{min-width:72px;width:84px;text-align:right}table.elements th{font-size:12px;vertical-align:bottom}.summary{margin-top:16px}.summary h3{margin:0 0 8px}.field .error-text{grid-column:3 / span 2;font-size:12px}.field .warning-text{grid-column:3 / span 2;font-size:12px;color:var(--warning)}.field .control>.computed{font-size:14px;font-variant-numeric:tabular-nums;padding:6px 0}.field-group{padding:12px 4px 4px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border)}.toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.toggle button{border:none;border-radius:0;padding:5px 12px}.toggle button.on{background:var(--accent);color:#fff}.hint{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11px;cursor:help;position:relative;flex:none}.hint .tip{position:fixed;z-index:30;background:#1f2933;color:#fff;padding:8px 10px;border-radius:var(--radius);font-size:12px;line-height:1.4;font-weight:400;white-space:normal;text-align:left;text-transform:none;letter-spacing:0;pointer-events:none;box-shadow:0 4px 12px #0003}.chart{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:16px}.chart h3{margin:0 0 8px}.chart svg{width:100%;height:auto;display:block}.chart .legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:12px}.chart .legend span:before{content:"";display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:6px;vertical-align:-2px;background:var(--c)}.chart-tooltip{position:fixed;pointer-events:none;background:#1f2933;color:#fff;padding:6px 10px;border-radius:var(--radius);font-size:12px;z-index:20;white-space:nowrap}.scenario-actions{display:flex;gap:6px;flex-wrap:wrap}.checkbox-cell{width:1%;text-align:center}.form-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.form-inline input[type=text]{min-width:220px}.export-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.export-card h3{margin-top:0}.export-card p{color:var(--muted);font-size:13px}.radio-row label{display:inline-flex;gap:6px;align-items:center;margin-right:16px}.empty{padding:40px;text-align:center;color:var(--muted)}@media (max-width: 800px){.field{grid-template-columns:1fr;gap:4px}.field .error-text,.field .warning-text{grid-column:1}.topbar .current{margin-left:0}}
