:root{--bg: #f5f6fa;--card: #ffffff;--header-bg: #1a1a2e;--header-fg: #eaeaea;--accent-blue: #3b82f6;--accent-green: #22c55e;--accent-orange: #f59e0b;--accent-red: #ef4444;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}header.app-header{background:var(--header-bg);color:var(--header-fg);padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-top)) 1rem;text-align:center}header.app-header h1{font-size:1.35rem}header.app-header p{color:#94a3b8;font-size:.85rem}.container{max-width:900px;margin:0 auto;padding:1rem}.card{background:var(--card);border-radius:12px;box-shadow:0 1px 3px #00000014;padding:1.25rem;margin-bottom:1rem}.card h2{font-size:1.05rem;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid var(--accent-blue);color:var(--header-bg)}label.field{display:block;margin-bottom:.75rem;font-size:.85rem;font-weight:600}label.field input,label.field select{display:block;width:100%;padding:.6rem .7rem;margin-top:.25rem;font-size:1rem;border:1px solid var(--border);border-radius:8px;font-weight:400}.row{display:flex;gap:.75rem;flex-wrap:wrap}.row>*{flex:1;min-width:130px}button.primary{width:100%;padding:.85rem;font-size:1rem;font-weight:700;color:#fff;background:var(--accent-blue);border:none;border-radius:10px;cursor:pointer}button.primary:active{transform:scale(.99)}button.secondary{padding:.5rem .9rem;font-size:.85rem;font-weight:600;color:var(--accent-blue);background:#eff6ff;border:1px solid var(--accent-blue);border-radius:8px;cursor:pointer}button.danger{color:var(--accent-red);background:#fef2f2;border-color:var(--accent-red)}.unit-row{display:flex;gap:.5rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.unit-row input[type=number],.unit-row input[type=text]{width:110px;padding:.45rem;border:1px solid var(--border);border-radius:6px}.checkbox-line{display:flex;align-items:center;gap:.5rem;font-size:.9rem;margin:.5rem 0}.verdict-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.verdict-box{border-radius:10px;padding:.9rem;text-align:center}.verdict-box .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.verdict-box .value{font-size:1.25rem;font-weight:800}.verdict-box .sub{font-size:.75rem;color:var(--text-muted)}.box-green{background:#f0fdf4;border:1px solid #bbf7d0}.box-blue{background:#eff6ff;border:1px solid #bfdbfe}.box-orange{background:#fffbeb;border:1px solid #fde68a}.box-gray{background:#f8fafc;border:1px solid var(--border)}.warning-banner{background:#fffbeb;border-left:4px solid var(--accent-orange);border-radius:8px;padding:.75rem 1rem;font-size:.85rem;margin-bottom:1rem}table.yearly{width:100%;border-collapse:collapse;font-size:.78rem}table.yearly th,table.yearly td{padding:.35rem .5rem;text-align:right;white-space:nowrap}table.yearly th{background:var(--header-bg);color:var(--header-fg);position:sticky;top:0}table.yearly th:first-child,table.yearly td:first-child{text-align:left}table.yearly tr:nth-child(2n){background:#f8fafc}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.winner-house{color:var(--accent-green);font-weight:700}.winner-sp{color:var(--accent-blue);font-weight:700}.muted{color:var(--text-muted);font-size:.82rem}.back-fab{position:fixed;bottom:calc(1.25rem + env(safe-area-inset-bottom));right:1.25rem;z-index:50;padding:.7rem 1.1rem;background:var(--header-bg);color:#fff;border:none;border-radius:50px;font-size:.85rem;font-weight:700;box-shadow:0 4px 12px #00000040;cursor:pointer}details.assumptions summary{cursor:pointer;font-weight:700;font-size:.9rem;padding:.4rem 0}.info-section{margin-top:1.5rem}.info-section details{margin-bottom:.75rem;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--card)}.info-section summary{cursor:pointer;padding:1rem 1.25rem;font-weight:600;font-size:1rem;color:var(--header-bg);background:#f8fafc;list-style:none;display:flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none}.info-section summary:hover{background:#f1f5f9}.info-section summary:before{content:"▶ ";font-size:.7rem;color:var(--text-muted)}.info-section details[open] summary:before{content:"▼ "}.info-section summary::-webkit-details-marker{display:none}.info-section .detail-body{padding:1rem 1.25rem 1.25rem;font-size:.9rem;color:var(--text);line-height:1.7}.info-section .detail-body ol,.info-section .detail-body ul{padding-left:1.25rem;margin-bottom:.75rem}.info-section .detail-body li{margin-bottom:.4rem}.info-section .detail-body h4{font-size:.95rem;margin:1.25rem 0 .5rem;color:var(--header-bg);padding-bottom:.25rem;border-bottom:1px solid var(--border)}.info-section .detail-body h4:first-child{margin-top:0}.info-section .detail-body p{margin-bottom:.6rem}.info-section .algo-step{background:#f8fafc;border-left:3px solid var(--accent-blue);padding:.6rem 1rem;margin-bottom:.5rem;border-radius:0 6px 6px 0;font-size:.88rem}.info-section .algo-step strong{color:var(--header-bg)}.info-section .vs-label{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-weight:600;font-size:.8rem}.info-section .vs-house{background:#f0fdf4;color:#166534}.info-section .vs-sp{background:#eff6ff;color:#1e40af}.steps{display:flex;gap:.4rem;justify-content:center;margin:.75rem 0 0}.steps .dot{width:8px;height:8px;border-radius:50%;background:#475569}.steps .dot.active{background:var(--accent-blue)}
