:root{color-scheme:dark;--bg:#061426;--panel:#0d2239;--panel2:#071a31;--line:#355d79;--text:#eef7ff;--muted:#b5cfe0;--cyan:#77ddeb;--gold:#f4ce7a;--good:#8ce3bc;--warn:#ffd39a}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:radial-gradient(circle at 50% -15%,#10365a 0,#061426 38%,#04101e 100%);color:var(--text);font:16px/1.5 system-ui,"Noto Sans CJK KR",Arial,sans-serif;min-height:100vh}a{color:inherit}.skip-link{position:fixed;left:12px;top:-60px;z-index:99;background:#fff;color:#001528;padding:10px 14px;border-radius:8px;font-weight:900}.skip-link:focus{top:12px}.wrap{max-width:1180px;margin:auto;padding:18px clamp(16px,4vw,42px) 54px}.nav{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:4px 0 17px;border-bottom:1px solid #315071}.logo{text-decoration:none;font-weight:900;font-size:19px;letter-spacing:.02em}.logo b{color:#66d7ee}.trail{display:flex;flex-wrap:wrap;gap:14px;color:#afd1e2;font-size:14px}.trail a{text-underline-offset:3px}.hero{padding:38px 0 22px;max-width:850px}.eyebrow,.tool-kicker{font-size:.72rem;letter-spacing:.15em;font-weight:850;color:var(--cyan)}.hero h1{font-size:clamp(2.15rem,6vw,4.5rem);line-height:.98;letter-spacing:-.04em;margin:10px 0 13px}.hero p{color:#c7dbea;font-size:1.04rem;max-width:780px;margin:0;line-height:1.65}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:#0c2740;border:1px solid #376381;border-radius:15px;padding:14px 16px;margin:3px 0 22px}.toolbar label{font-weight:800}.toolbar select{margin-left:9px;background:#061a31;color:#fff;border:1px solid #6097b5;border-radius:9px;padding:10px 11px;font:inherit}.toolbar small{color:#b7d0df;max-width:570px}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.tool-card{min-width:0;background:linear-gradient(180deg,rgba(15,40,65,.98),rgba(7,23,42,.98));border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:0 16px 44px #0002}.tool-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.tool-no{display:grid;place-items:center;flex:0 0 38px;height:31px;border:1px solid #527795;border-radius:8px;color:#bce9ff;font-size:.72rem;font-weight:900;letter-spacing:.12em}.tool-head h2{font-size:1.35rem;line-height:1.15;margin:4px 0 7px}.tool-head p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.field{display:flex;flex-direction:column;gap:7px;color:#d9e9f4;font-weight:750;font-size:.82rem}.field input,.fountain-grid input{width:100%;min-height:48px;border:1px solid #416f91;border-radius:10px;background:#05182d;color:#fff;padding:10px 12px;font:800 1rem system-ui;outline:none}.field input:focus,.fountain-grid input:focus,.toolbar select:focus-visible,.structure-grid input:focus-visible+span,.reset:focus-visible,a:focus-visible{outline:3px solid #6ae1ec;outline-offset:3px}.result{margin:14px 0;padding:14px;border:1px solid #3d7191;border-radius:12px;background:#071d35;min-height:86px}.result strong{display:block;color:#f6fbff;font-size:1.16rem;line-height:1.25}.result p{margin:7px 0 0;color:#c7dbea;font-size:.87rem;line-height:1.5}.result .good{color:var(--good)}.result .warn{color:var(--warn)}.ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0 13px}.ladder div{padding:8px 6px;border:1px solid #2f536d;border-radius:9px;background:#081a2d;text-align:center}.ladder b{display:block;font-size:.78rem}.ladder small{display:block;color:#9fbcd0;font-size:.7rem}.ladder .ready{border-color:#3b876a;background:rgba(36,114,83,.18)}.ladder .next{border-color:#b68a44;background:rgba(151,103,34,.18)}.guide-link{display:inline-flex;min-height:42px;align-items:center;color:#b7ebff;font-weight:800;font-size:.82rem;text-underline-offset:3px}.fountain-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fountain-grid label{display:flex;flex-direction:column;gap:5px;color:#b9d1e1;font-size:.75rem;font-weight:800}.result-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric{padding:7px 0}.metric span{display:block;color:#9fbcd0;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.metric b{display:block;font-size:1.15rem;margin-top:2px}.micro-note{color:#9fb9ca;font-size:.78rem;line-height:1.5;margin:10px 0 8px}.structure-grid{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:7px}.structure-grid label{position:relative;cursor:pointer}.structure-grid label.center{grid-column:1/-1}.structure-grid input{position:absolute;opacity:0;pointer-events:none}.structure-grid span{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:52px;border:1px solid #315873;border-radius:10px;background:#071a2f;padding:9px 11px}.structure-grid b{font-size:.78rem;line-height:1.25;overflow-wrap:anywhere}.structure-grid small{flex:0 0 auto;color:#a9c7d9;font-weight:900}.structure-grid input:checked+span{border-color:#62bdd7;background:#123c55;box-shadow:inset 0 0 0 1px rgba(106,225,236,.12)}.structure-grid input:checked+span small{color:#dffbff}.reset{min-height:40px;padding:8px 12px;border:1px solid #416f91;border-radius:9px;background:#0b2741;color:#eaf7ff;font-weight:800;cursor:pointer}.authority{margin:20px 0 0;padding:16px 18px;border-left:4px solid #5ac7d9;background:#0c263d;border-radius:5px 13px 13px 5px}.authority strong{color:#fff}.authority p{margin:4px 0 0;color:#b8d0df;line-height:1.55}footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid #2d4d67;margin-top:28px;padding-top:20px;color:#91afc3;font-size:.78rem}footer a{color:#bcecff;font-weight:800}button,input,select{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.tool-grid{grid-template-columns:1fr}.tool-card{padding:17px}.result{min-height:auto}}@media(max-width:520px){.wrap{padding:14px 14px 48px}.nav{align-items:flex-start}.trail{justify-content:flex-end}.hero{padding:27px 0 18px}.hero h1{font-size:2.35rem}.toolbar{align-items:stretch}.toolbar label{width:100%}.toolbar select{display:block;width:100%;margin:7px 0 0}.ladder{grid-template-columns:repeat(2,minmax(0,1fr))}.result-metrics{grid-template-columns:1fr}.fountain-grid{grid-template-columns:1fr 1fr}.structure-grid{grid-template-columns:1fr}.structure-grid label.center{grid-column:auto}}@media(max-width:340px){.fountain-grid{grid-template-columns:1fr}.trail{font-size:12px}.tool-card{padding:14px}.hero h1{font-size:2.08rem}}

.field input[aria-invalid="true"],.fountain-grid input[aria-invalid="true"]{border-color:#e6a46e;box-shadow:0 0 0 1px #e6a46e}

/* Japanese validation spans the result grid. Calculation behavior is unchanged. */
html[lang="ja"] #water-result > p:only-child{grid-column:1/-1}
