:root{--bg:#f5f5f5;--bg-row-alt:#f9f9f9;--bg-header:#1a1a1a;--bg-tab:#333;--bg-tab-active:#fff;--bg-input:#fff;--bg-readonly:#f0f0f0;--border:#d0d0d0;--border-light:#e0e0e0;--text:#222;--text-secondary:#666;--text-muted:#999;--text-inverse:#fff;--accent:#2d7d46;--accent-light:#e8f5e9;--danger:#c62828;--danger-light:#ffebee;--primary:#1565c0;--primary-light:#e3f2fd;--col-label:#333;--col-value:#000;--col-group-header:#1a1a1a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:"SF Mono", Monaco, "Courier New", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.4}.app-container{max-width:1280px;margin:0 auto;padding:16px}.app-header{background:var(--bg-header);color:var(--text-inverse);justify-content:space-between;align-items:center;margin:-16px -16px 0;padding:12px 16px;display:flex}.app-header h1{letter-spacing:.02em;font-size:1.1rem;font-weight:600}.header-actions{align-items:center;gap:8px;display:flex}.top-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:0;padding:12px 0;display:flex}.top-bar-field{align-items:center;gap:8px;display:flex}.top-bar-field label{color:var(--text-secondary);white-space:nowrap;font-size:.85rem;font-weight:500}.top-bar-field input,.top-bar-field select{border:1px solid var(--border);font-size:.85rem;font-family:var(--font);min-width:140px;padding:6px 10px}.tab-bar{background:var(--bg-header);border-top:1px solid #444;margin:0 -16px;padding:0 16px;display:flex}.tab-bar button{background:var(--bg-tab);color:#ccc;font-family:var(--font);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;white-space:nowrap;border:none;border-right:1px solid #444;padding:10px 20px;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.tab-bar button:hover{color:#fff;background:#444}.tab-bar button.active{background:var(--bg-tab-active);color:var(--text);font-weight:600}.board-toolbar{justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.board-toolbar>span{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.04em;font-size:.78rem;font-weight:700}.board-scroll-actions{align-items:center;gap:8px;display:flex}.calculator-board{scroll-snap-type:x proximity;scrollbar-gutter:stable;gap:12px;padding:0 0 16px;display:flex;overflow:auto hidden}.board-column{background:var(--bg-input);border:1px solid var(--border);scroll-snap-align:start;flex-direction:column;flex:0 0 440px;max-width:440px;height:calc(100vh - 230px);min-height:520px;display:flex}.board-column-title{background:var(--bg-header);color:var(--text-inverse);text-transform:uppercase;letter-spacing:.04em;padding:9px 12px;font-size:.78rem;font-weight:700}.board-column-body{scrollbar-gutter:stable;flex:1;min-height:0;padding:10px;overflow-y:auto}.sheet-table{border-collapse:collapse;background:var(--bg-input);width:100%;font-size:.85rem}.sheet-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);border-bottom:2px solid var(--border);z-index:10;background:#e8e8e8;padding:8px 12px;font-size:.75rem;font-weight:600;position:sticky;top:0}.sheet-table tbody tr{border-bottom:1px solid var(--border-light)}.sheet-table tbody tr:nth-child(2n){background:var(--bg-row-alt)}.sheet-table tbody tr:hover{background:var(--primary-light)}.sheet-table tbody tr.group-header{background:var(--col-group-header);color:var(--text-inverse)}.sheet-table tbody tr.group-header td{color:var(--text-inverse);text-transform:uppercase;letter-spacing:.03em;padding:6px 12px;font-size:.8rem;font-weight:600}.sheet-table td{vertical-align:middle;padding:6px 12px}.sheet-table td.label{color:var(--col-label);white-space:normal;min-width:240px;font-weight:500}.sheet-table td.value{text-align:right;font-family:var(--font-mono);color:var(--col-value);white-space:nowrap;width:150px;min-width:150px}.cell-input{width:100%;font-family:var(--font-mono);text-align:right;color:var(--col-value);background:0 0;border:1px solid #0000;padding:4px 8px;font-size:.85rem;transition:border-color .15s,background .15s}.cell-input:hover{border-color:var(--border);background:#fff}.cell-input:focus{border-color:var(--primary);background:#fff;outline:none}.cell-input:read-only,.cell-input.readonly{background:var(--bg-readonly);color:var(--text-muted);cursor:default}.cell-input:read-only:focus{background:var(--bg-readonly);border-color:#0000}.cell-input.percent,.cell-input.currency{text-align:right}.cell-input.text{text-align:left;font-family:var(--font)}.source-badge{text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border-radius:2px;margin-left:6px;padding:1px 5px;font-size:.6rem;font-weight:700;display:inline-block}.source-badge.country{color:#1565c0;background:#e3f2fd}.source-badge.stack{color:#e65100;background:#fff3e0}.sheet-tooltip{border:1px solid var(--border);width:16px;height:16px;color:var(--text-secondary);cursor:help;vertical-align:text-bottom;background:#fff;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;font-size:.7rem;font-weight:700;display:inline-flex;position:relative}.sheet-tooltip:hover,.sheet-tooltip:focus{border-color:var(--primary);color:var(--primary);outline:none}.sheet-tooltip-content{z-index:40;color:#fff;text-transform:none;letter-spacing:0;text-align:left;white-space:normal;opacity:0;pointer-events:none;visibility:hidden;background:#111;border:1px solid #333;width:min(280px,70vw);padding:8px 10px;font-size:.75rem;font-weight:500;line-height:1.35;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 8px 18px #0003}.sheet-tooltip-content:after{content:"";background:#111;border-bottom:1px solid #333;border-right:1px solid #333;width:8px;height:8px;position:absolute;top:100%;left:50%;transform:translate(-50%)rotate(45deg)}.sheet-tooltip:hover .sheet-tooltip-content,.sheet-tooltip:focus .sheet-tooltip-content,.sheet-tooltip:focus-within .sheet-tooltip-content{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.results-section{background:var(--bg-input);border:1px solid var(--border);margin-top:24px;padding:16px}.board-results .results-section{margin-top:0}.board-results-section{border:0;padding:0}.board-results-section .results-header-bar{display:block}.board-results-section .results-header-bar h2{margin-bottom:4px}.board-results-section .results-summary-cards{grid-template-columns:1fr}.empty-results{text-align:center;min-height:240px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.results-header-bar{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.results-header-bar h2{font-size:1rem;font-weight:600}.results-summary-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.top-results-strip{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:12px 0 14px;display:grid}.top-result-item{background:var(--bg-input);border:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.top-result-item span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.top-result-item strong{color:var(--text);font-family:var(--font-mono);white-space:nowrap;font-size:1.12rem}.top-result-item strong.positive{color:var(--accent)}.top-result-item strong.negative{color:var(--danger)}.summary-card{border:1px solid var(--border);text-align:center;padding:12px}.summary-card .label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:4px;font-size:.7rem}.summary-card .value{font-size:1.4rem;font-weight:600;font-family:var(--font-mono);color:var(--text)}.summary-card .value.positive{color:var(--accent)}.summary-card .value.negative{color:var(--danger)}.operating-metrics{background:var(--bg-row-alt);border:1px solid var(--border-light);grid-template-columns:1fr;gap:6px;margin:-8px 0 14px;padding:10px;display:grid}.operating-metrics div{justify-content:space-between;align-items:center;gap:12px;font-size:.8rem;display:flex}.operating-metrics span{color:var(--text-secondary)}.operating-metrics strong{font-family:var(--font-mono);color:var(--text)}.result-breakdown-scroll{max-height:none;overflow-x:hidden}.result-breakdown-table .value{font-family:var(--font-mono);text-align:right;white-space:nowrap}.result-breakdown-table{table-layout:fixed}.result-breakdown-table th:first-child{width:66%}.result-breakdown-table th:last-child{width:34%}.result-drawer,.sheet-table tbody tr.result-drawer:hover{background:var(--bg-input)}.result-drawer>td{border-bottom:1px solid var(--border-light);padding:0}.result-drawer-toggle{background:var(--bg-input);width:100%;min-height:42px;color:var(--text);font-family:var(--font);cursor:pointer;text-align:left;border:0;grid-template-columns:20px minmax(0,1fr) max-content;align-items:center;gap:8px;padding:0 10px;display:grid}.result-drawer-toggle:hover{background:var(--primary-light)}.drawer-chevron{font-family:var(--font-mono);color:var(--text-muted);font-size:.8rem}.drawer-title{text-transform:uppercase;letter-spacing:.04em;min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:700;overflow:hidden}.drawer-total{font-family:var(--font-mono);color:var(--text);white-space:nowrap;font-size:.92rem;font-weight:700}.result-drawer.tone-income .drawer-total{color:var(--accent)}.result-drawer.tone-expense .drawer-total{color:var(--danger)}.drawer-line-table{border-collapse:collapse;background:var(--bg-input);table-layout:fixed;width:100%}.drawer-line-table tr{border-top:1px solid var(--border-light)}.drawer-line-table tr:nth-child(2n){background:var(--bg-row-alt)}.drawer-line-table td{vertical-align:middle;padding:6px 10px}.drawer-line-table td.label{width:66%;min-width:0;color:var(--col-label);font-weight:500}.drawer-line-table td.value{width:34%;font-family:var(--font-mono);text-align:right;white-space:nowrap}.detail-line-list{flex-direction:column;gap:8px;display:flex}.detail-line-list-header{border:1px solid var(--border-light);background:var(--bg-row-alt);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 12px;display:flex}.detail-line-list-header span{min-width:0;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:700;overflow:hidden}.detail-line-list-header strong{font-family:var(--font-mono);white-space:nowrap;font-size:.98rem}.detail-line-list-header.tone-income strong{color:var(--accent)}.detail-line-list-header.tone-expense strong{color:var(--danger)}.result-group-row td{background:var(--bg-row-alt);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-top:1px solid var(--border);border-bottom:1px solid var(--border-light);padding:10px 8px 6px;font-size:.68rem;font-weight:700}.result-group-row.standalone{background:var(--bg-row-alt);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--border-light);border-bottom:0;padding:10px 8px 6px;font-size:.68rem;font-weight:700}.summary-breakdown .sheet-scroll+.result-group-row.standalone{margin-top:12px}.processor-selector{border-bottom:1px solid var(--border-light);flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:10px;padding:0 0 10px;display:flex}.processor-selector label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.03em;font-size:.75rem;font-weight:700}.processor-selector select{border:1px solid var(--border);width:100%;padding:6px 12px;font-size:.85rem}.processor-selector span{color:var(--text-secondary);font-size:.78rem}.btn{font-family:var(--font);cursor:pointer;text-transform:uppercase;letter-spacing:.03em;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-success{background:var(--accent);color:#fff}.btn-secondary{color:var(--text);border-color:var(--border);background:#fff}.error-banner{background:var(--danger-light);border:1px solid var(--danger);color:var(--danger);margin:8px 0;padding:10px 16px;font-size:.85rem}.info-banner{background:var(--primary-light);color:var(--primary);border:1px solid #90caf9;margin:8px 0;padding:10px 16px;font-size:.85rem}.wasm-loading{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:300px;display:flex}.spinner{border:3px solid #ddd;border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dialog-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-box{background:#fff;min-width:400px;padding:24px;box-shadow:0 4px 20px #0003}.dialog-box h3{margin-bottom:16px;font-size:1rem}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.sheet-scroll{overflow-x:auto}.sheet-scroll.compact{border:1px solid var(--border);background:var(--bg-input);width:auto;max-width:100%;display:inline-block;overflow-x:auto}.sheet-scroll.board-sheet{width:100%;overflow-x:hidden}.sheet-scroll.board-sheet .sheet-table{table-layout:fixed;width:100%}.sheet-scroll.board-sheet .sheet-table thead th{padding:7px 8px}.sheet-scroll.board-sheet .sheet-table td{padding:5px 8px}.sheet-scroll.board-sheet .sheet-table td.label{width:270px;min-width:0;max-width:270px}.sheet-scroll.board-sheet .sheet-table td.value{width:130px;min-width:130px}.sheet-scroll.compact .sheet-table{width:auto;min-width:560px;max-width:760px}.sheet-scroll.compact .sheet-table td.label{width:400px;max-width:400px}.sheet-scroll.compact .sheet-table td.value{width:150px}@media (width<=768px){.tab-bar{overflow-x:auto}.top-bar{flex-direction:column;align-items:stretch}.sheet-table td.label{min-width:160px}.board-toolbar{flex-direction:column;align-items:stretch}.board-column{flex-basis:min(88vw,420px);max-width:min(88vw,420px)}.sheet-scroll.board-sheet .sheet-table td.label{width:auto;max-width:none}.sheet-scroll.compact{width:100%;display:block}.sheet-scroll.compact .sheet-table{width:100%;min-width:0}.sheet-scroll.compact .sheet-table td.label{width:auto;max-width:none}.sheet-scroll.compact .sheet-table td.value{width:130px;min-width:130px}}
