:root{--brand: #b3122b;--brand-dark: #8a0e21;--bg: #f6f7f9;--card: #ffffff;--line: #e6e8ec;--text: #1c1f26;--muted: #6b7280;--norm: #1f9d55;--norm-bg: #e9f7ef;--low: #2563eb;--low-bg: #eaf1fe;--high: #d23a3a;--high-bg: #fdecec;--na: #9aa1ac}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;-webkit-text-size-adjust:100%}.app{max-width:760px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:10;background:var(--brand);color:#fff;padding-top:env(safe-area-inset-top);box-shadow:0 1px 4px #00000026}.appbar-inner{display:flex;align-items:center;gap:10px;padding:10px 16px 8px}.logo{border-radius:7px}.appbar-title{display:flex;flex-direction:column;line-height:1.15}.appbar-title strong{font-size:18px;letter-spacing:.5px}.appbar-title span{font-size:11px;opacity:.85}.tabs{display:flex;flex-wrap:wrap}.tab{flex:1 0 auto;white-space:nowrap;background:transparent;color:#fffc;border:none;border-bottom:3px solid transparent;padding:11px 12px;font-size:14px;font-weight:600;cursor:pointer}.tab.active{color:#fff;border-bottom-color:#fff}@media (max-width: 420px){.tab{font-size:12.5px;padding:11px 9px}}.content{flex:1;padding:14px}.section{display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card h2{margin:0;font-size:16px}.muted-head{color:var(--muted);font-size:14px;font-weight:600}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media (min-width: 520px){.grid{grid-template-columns:repeat(3,1fr)}}.field{display:flex;flex-direction:column;gap:3px}.field.inline{flex:1}.field-label{font-size:13px;font-weight:600}.input-wrap{position:relative}.unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none;white-space:nowrap}.input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--text);outline:none}.input.has-unit{padding-right:58px}.input.invalid{border-color:#e0a800;background:#fffdf5}.input.invalid:focus{box-shadow:0 0 0 3px #e0a8002e}.field-warn{font-size:11px;color:#b8860b}.input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.textarea{resize:vertical;font-family:inherit;line-height:1.35}.sex-toggle,.mode-switch{display:inline-flex;background:#f0f1f4;border-radius:10px;padding:3px}.mode-switch{display:flex;width:100%;margin-bottom:10px}.seg{border:none;background:transparent;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;flex:1}.seg.active{background:#fff;color:var(--brand);box-shadow:0 1px 2px #0000001f}.actions{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}.export-group{display:flex;gap:8px;margin-left:auto}@media (max-width: 480px){.export-group{width:100%;margin-left:0}.export-group .btn{flex:1;padding-left:6px;padding-right:6px}}.btn{border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 14px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{border-color:transparent;color:var(--muted)}.btn-primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn-sm{padding:6px 12px;font-size:13px}.note{color:var(--muted);font-size:13px;margin:10px 0 0}.help-details{margin-top:8px}.help-details>summary{cursor:pointer;color:#2563eb;font-size:13px;font-weight:600;list-style:none;padding:2px 0}.help-details>summary::-webkit-details-marker{display:none}.help-details>summary:before{content:"▸ "}.help-details[open]>summary:before{content:"▾ "}.help-example{display:flex;flex-direction:column;gap:6px;background:#f7f8fa;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:8px;font-size:13px}.help-example code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px 12px;line-height:1.5;align-self:flex-start;color:var(--text)}.index-list,.rel-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.index-row{position:relative;border:1px solid var(--line);border-left:4px solid var(--na);border-radius:10px;padding:10px 12px;background:#fff}.index-row.clickable{cursor:pointer;-webkit-tap-highlight-color:transparent}.index-row.clickable:hover{background:#fafbfc}.index-row.clickable:active{background:#f1f3f6}.copy-flash{position:absolute;bottom:8px;right:10px;font-size:11px;color:var(--muted);opacity:0;transition:opacity .15s;pointer-events:none}.index-row.clickable:hover .copy-flash{opacity:.65}.index-row.copied{border-left-color:var(--norm);background:var(--norm-bg)}.index-row.copied .copy-flash{opacity:1;color:var(--norm);font-weight:700}.index-main{display:flex;align-items:baseline;gap:8px}.index-num{font-size:12px;font-weight:700;color:var(--muted);min-width:20px}.index-name{flex:1;font-weight:600;font-size:15px}.attribution{font-size:11px;color:var(--brand);font-weight:600}.index-value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.clickable-value{cursor:pointer;padding:2px 0 2px 8px}.clickable-value:hover{text-decoration:underline dotted;text-underline-offset:3px}.clickable-value:active{opacity:.6}.index-norm{font-size:12px;color:var(--muted);margin-top:2px}.index-text{font-size:13px;margin-top:4px;line-height:1.35}.zone-norm{border-left-color:var(--norm)}.zone-norm .index-value{color:var(--norm)}.zone-low{border-left-color:var(--low)}.zone-low .index-value{color:var(--low)}.zone-high{border-left-color:var(--high)}.zone-high .index-value{color:var(--high)}.zone-na{border-left-color:var(--na)}.rel-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.rel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.rel-name{font-weight:700;display:flex;align-items:center;gap:6px}.rel-percent{font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}.rel-percent.ok{color:var(--norm)}.rel-counts{font-size:12px;margin-top:4px}.rel-counts-inputs{display:flex;gap:10px}.badge{font-size:10px;font-weight:700;background:#eef0f4;color:var(--muted);padding:1px 6px;border-radius:6px;text-transform:uppercase}.seg-row{display:flex;gap:6px;background:#f0f1f4;border-radius:10px;padding:3px}.seg-row .seg{flex:1}.trust-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.trust-row{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.trust-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:8px}.trust-label{font-size:14px;font-weight:600;flex:1;line-height:1.3}.trust-penalty{font-variant-numeric:tabular-nums;font-weight:700;font-size:14px;color:var(--muted)}.trust-penalty.active{color:var(--high)}.trust-hint{display:block;font-size:11px;color:var(--muted);margin-top:6px}.trust-desc{white-space:pre-line;line-height:1.4}.trust-result.zone-ok .integral-value{color:var(--norm)}.trust-result.zone-warn .integral-value{color:#b8860b}.trust-result.zone-bad .integral-value{color:var(--high)}.integral{text-align:center}.integral .integral-value{font-size:44px;font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums;line-height:1.1;margin:6px 0}.muted{color:var(--muted)}.footer{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px;align-items:center;font-size:12px;color:var(--muted)}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(16px + env(safe-area-inset-bottom));width:min(92%,520px);background:#1c1f26;color:#fff;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 24px #00000040;z-index:50;font-size:14px}.toast span{flex:1}.toast-close{background:transparent;border:none;color:#ffffffb3;font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.fc-panel{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--bg);margin-bottom:16px}.fc-meta{display:flex;gap:20px;flex-wrap:wrap}.fc-meta-item{display:flex;flex-direction:column;gap:6px}.fc-meta-label{font-size:12px;color:var(--muted)}.fc-meta-item .input{max-width:90px}.fc-fields-label{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:10px}.fc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 12px}@media (max-width: 480px){.fc-grid{grid-template-columns:1fr}}.fc-factor{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:10px;padding:6px 8px 6px 12px;background:var(--card)}.fc-factor-key{font-weight:600;font-size:14px}.fc-factor-name{font-weight:400;color:var(--muted);font-size:12px}.fc-select{max-width:76px;padding:7px 8px;text-align:center}.fc-disclaimer{font-style:italic;margin-bottom:14px}.fc-block{border-top:1px solid var(--line);padding:12px 0}.fc-block:first-of-type{border-top:none}.fc-block-title{margin:0 0 4px;font-size:15px}.fc-source{margin:0 0 8px;font-size:11px;color:var(--muted);line-height:1.35}.fc-lead{margin:0 0 6px;font-size:14px}.fc-matches{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.fc-matches li{font-size:14px;line-height:1.4}.fc-empty,.fc-gated{margin:0;font-size:13px;color:var(--na)}.fc-note{margin:8px 0 0;font-size:12px;font-style:italic;color:var(--muted)}.mmil-list{display:flex;flex-direction:column;margin-top:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.mmil-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line)}.mmil-row:last-child{border-bottom:none}.mmil-row.validity{background:var(--bg)}.mmil-scale{display:flex;flex-direction:column;gap:2px;min-width:0}.mmil-scale-name{font-size:14px;font-weight:600}.mmil-ref-hint{font-size:11px;color:var(--muted)}.mmil-input{width:88px;flex:0 0 auto;text-align:center;padding:8px}.mmil-filled{font-size:12px;color:var(--muted);white-space:nowrap}.mmil-chart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.mmil-chart{width:100%;min-width:560px;height:auto;display:block}.mmil-gridline{stroke:var(--line);stroke-width:1}.mmil-gridline-norm{stroke:#c3c8d0;stroke-width:1.5}.mmil-gridline-elev{stroke:var(--line);stroke-dasharray:3 3}.mmil-sep{stroke:var(--line);stroke-width:1}.mmil-axis{fill:var(--muted);font-size:10px}.mmil-xlabel{fill:var(--text);font-size:11px;font-weight:600}.mmil-xlabel-val{fill:#2563eb}.mmil-help-list{margin:4px 0 0;padding-left:18px}.mmil-help-list li{margin-bottom:5px}.mmil-cat-table{border-collapse:collapse;width:100%;font-size:13px;margin-top:14px}.mmil-cat-table th,.mmil-cat-table td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left}.mmil-cat-table th{color:var(--muted);font-weight:600}.mmil-cat-table th:nth-child(n+2),.mmil-cat-table td.num{text-align:right;white-space:nowrap}.mmil-cat-row{cursor:pointer}.mmil-cat-row:hover{background:var(--bg)}.mmil-cat-row.active{background:var(--low-bg)}.mmil-cat-row.active td:first-child{box-shadow:inset 3px 0 0 var(--brand)}.mmil-cat-row.closest td:first-child{font-weight:600}.mmil-badge{display:inline-block;margin-left:8px;font-size:10px;font-weight:600;color:var(--norm);background:var(--norm-bg);border-radius:6px;padding:1px 6px;vertical-align:middle}.mmil-cat-hint{margin:8px 0 0;font-size:12px;color:var(--muted)}.pa-block{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.pa-h{margin:0 0 6px;font-size:15px}.pa-lead{margin:0 0 6px;font-size:14px}.pa-interp{margin:0;font-size:14px;line-height:1.45}.pa-note{margin:6px 0 0;font-size:12px;color:var(--muted)}.pa-presets-label{font-size:12px;color:var(--muted);margin:4px 0 6px}.pa-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.pa-special{margin:8px 0 0;font-size:14px;line-height:1.45;color:var(--high);background:var(--high-bg);border-radius:8px;padding:8px 10px}.pa-sphere-wrap{position:relative}.pa-sphere{width:100%;height:380px;border-radius:12px;overflow:hidden;background:var(--bg);border:1px solid var(--line);touch-action:none}.pa-sphere-hint{position:absolute;left:12px;bottom:10px;font-size:11px;color:var(--muted);background:#ffffffbf;padding:4px 9px;border-radius:7px;pointer-events:none}.mmil-grouplabel{fill:var(--muted);font-size:10px}.mmil-line-ref{fill:none;stroke:var(--na);stroke-width:2;stroke-dasharray:5 4}.mmil-dot-ref{fill:#fff;stroke:var(--na);stroke-width:1.5}.mmil-line-ex{fill:none;stroke:var(--brand);stroke-width:2}.mmil-dot-ex{fill:var(--brand)}.pa-contours{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}.pa-contour{flex:1 1 120px;max-width:160px;text-align:center}.pa-contour-svg{width:100%;height:auto;display:block;background:var(--bg);border:1px solid var(--line);border-radius:10px}.pa-contour-label{font-size:11px;color:var(--muted);margin-top:4px}.pa-c-ideal{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:3 3}.pa-c-ref{fill:none;stroke:var(--muted);stroke-width:1.4;stroke-dasharray:5 4;opacity:.85}.pa-c-me{fill:none;stroke:var(--brand);stroke-width:2}.pa-contour-cap{margin:8px 0 0;font-size:12px;color:var(--muted)}.mmil-cat-top td{background:var(--low-bg)}.mmil-cat-top td:first-child{box-shadow:inset 3px 0 0 var(--brand);font-weight:600}.pa-formulas code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--bg);padding:1px 4px;border-radius:4px}.pa-formulas ul{margin:6px 0;padding-left:18px}.pa-formulas li{margin:3px 0}.pa-formulas-note{color:var(--muted);font-size:11px;margin-top:6px}.mmil-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--muted)}.mmil-leg-item{display:inline-flex;align-items:center;gap:6px}.mmil-swatch{width:20px;height:0;border-top-width:2px;border-top-style:solid;display:inline-block}.mmil-swatch.ref{border-top-style:dashed;border-top-color:var(--na)}.mmil-swatch.ex{border-top-color:var(--brand)}.mmil-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 8px}@media (max-width: 480px){.mmil-metrics{grid-template-columns:1fr}}.mmil-tile{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--bg)}.mmil-tile-label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.mmil-tile-value{font-size:16px;font-weight:600}.mmil-table-wrap{overflow-x:auto;margin-top:8px}.mmil-table{border-collapse:collapse;width:100%;font-size:13px}.mmil-table th,.mmil-table td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:left}.mmil-table th{color:var(--muted);font-weight:600}.mmil-table td.num,.mmil-table th:nth-child(n+2){text-align:right}.mmil-row-beyond{background:var(--high-bg)}
