:root{color-scheme:light;--ink:#162b45;--muted:#52637a;--blue:#1764cf;--line:#dce4ee;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--ink);background:#f3f6fa;font-size:16px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.header{max-width:1088px;margin:auto;min-height:100px;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-icon{display:grid;place-items:center;background:var(--ink);color:#83c0ff;width:42px;height:42px;flex-shrink:0;border-radius:11px;font-family:var(--mono);font-weight:800;font-size:24px;letter-spacing:-4px;padding-right:0;object-fit:cover}h1{font-size:1.35rem;letter-spacing:.02em;font-weight:750}.protocol{font-family:var(--mono);font-size:.875rem;border:1px solid #cad6e5;border-radius:6px;padding:5px 10px;color:var(--muted);background:#fff}main{max-width:1088px;margin:auto;padding:8px 32px 0}.input-panel{background:white;padding:26px 28px 22px;border:1px solid var(--line);border-radius:14px}label{display:block;font-size:.9375rem;font-weight:650;margin-bottom:12px}.input-row{display:flex;gap:12px}input{min-width:0;width:100%;flex:1;padding:14px 18px;font:500 1.4rem/1.4 var(--mono);color:var(--ink);border:1px solid #a5b6cc;border-radius:8px;background:#fbfcfe;outline:none}input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1764cf22;background:#fff}input[aria-invalid=true]{border-color:#ba2638}button{display:flex;align-items:center;justify-content:center;gap:28px;white-space:nowrap;background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:8px;padding:14px 25px;font-weight:650;min-height:52px}button:hover{background:#1154b3}button:focus-visible{outline:3px solid #1764cf55;outline-offset:3px}button span{font-size:1.25rem;opacity:.75}.hint{font-size:.875rem;color:var(--muted);margin-top:12px;line-height:1.65}.error{margin-top:12px;font-size:.9375rem;color:#b22336;line-height:1.6}.result-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 14px;flex-wrap:wrap}h2{font-size:.9375rem;font-weight:700}.result-input{font-size:.875rem;color:var(--muted)}.summary{display:grid;grid-template-columns:1.05fr 1fr;gap:16px}.range-card{background:#142c4b;color:white;border:1px solid #142c4b;border-radius:14px;padding:24px;display:flex;flex-direction:column;min-width:0}.range-top{display:flex;align-items:center;justify-content:space-between;gap:12px}h3{font-size:.875rem;font-weight:550;line-height:1.5}.range-top h3{color:#d7e5f7}.prefix-badge{color:#8ec5ff;border:1px solid #426289;border-radius:5px;padding:3px 8px;font-size:.875rem}.range-values{display:flex;flex-direction:column;gap:0;align-items:flex-start;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:550;line-height:1.3;letter-spacing:-.015em;margin:18px 0 22px;overflow-wrap:anywhere}.range-separator{font-size:1rem;line-height:1.2;color:#7692b3}.range-bottom{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto;border-top:1px solid #38506e;padding-top:14px;font-size:.875rem;color:#b9cbe0}.range-bottom strong{color:#fff;font-size:1rem;font-weight:500}.counts{display:grid;grid-template-columns:1fr;background:white;border:1px solid var(--line);border-radius:14px;min-width:0}.count-cell{padding:20px 24px;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 12px}.count-cell+.count-cell{border-top:1px solid var(--line)}.count-cell h3{color:var(--muted)}.count{display:flex;align-items:baseline;gap:7px;grid-column:2;grid-row:1 / span 2;min-width:0}.count strong{font-family:var(--mono);font-size:clamp(1.4rem,3vw,2.15rem);font-weight:600;letter-spacing:-.05em;overflow-wrap:anywhere}.count span{font-size:.875rem;color:var(--muted)}.count-cell p{font-size:.8125rem;color:var(--muted);line-height:1.6}.host-count .count strong{color:var(--blue)}.counts.large-counts .count-cell{grid-template-columns:1fr;gap:5px}.counts.large-counts .count{grid-column:1;grid-row:auto}.details{margin-top:24px;border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden}.details h2{padding:20px 24px 8px}dl{margin:0;padding:0 24px 6px}.detail-row{display:grid;grid-template-columns:1fr 1.5fr;gap:16px;padding:16px 0;border-bottom:1px solid #e9eef4;align-items:baseline}.detail-row:last-child{border-bottom:0}dt{font-size:.875rem;color:var(--muted)}dd{margin:0;font-size:1rem;line-height:1.6;text-align:right;overflow-wrap:anywhere}.host-range dd{color:#1659b1;font-weight:550;display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;gap:4px 9px}.inline-separator{font-family:inherit;color:#7990aa;font-size:.875rem}.address-map{margin-top:24px;padding:22px 24px;background:#eaf0f8;border:1px solid #dce5f0;border-radius:12px}.map-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.map-heading>span{font-size:.875rem;color:var(--muted)}.map-heading strong{font-weight:500;color:var(--ink);margin-left:6px}.map-track{height:10px;background:#a6c5ed;margin:25px 5px 12px;border-radius:4px;position:relative}.map-marker{position:absolute;left:0;top:-5px;height:20px;width:4px;border-radius:2px;background:var(--blue);box-shadow:0 0 0 3px #eaf0f8;transform:translateX(-50%)}.map-labels{display:flex;justify-content:space-between;gap:14px;font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}.map-labels span:last-child{text-align:right}.result-note{font-size:.875rem;line-height:1.8;color:var(--muted);padding:16px 2px 0}.result-note a{color:#1558ae;text-underline-offset:3px}footer{max-width:1088px;margin:24px auto 0;padding:0 32px 30px;font-size:.8125rem;line-height:1.7;color:#68788a}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(max-width:760px){.summary{grid-template-columns:1fr}.range-values{flex-direction:row;align-items:center;flex-wrap:wrap;gap:7px 14px;font-size:1.75rem}.range-separator{font-size:1rem}.counts{grid-template-columns:1fr 1fr}.count-cell{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:20px;gap:9px}.count-cell+.count-cell{border-top:0;border-left:1px solid var(--line)}.count strong{font-size:2rem}.count-cell p{font-size:.8125rem}.counts.large-counts{grid-template-columns:1fr}.counts.large-counts .count-cell+.count-cell{border-left:0;border-top:1px solid var(--line)}.counts.large-counts .count-cell{display:flex}.counts.large-counts .count strong{font-size:2rem}.detail-row{grid-template-columns:1fr 1.1fr}}
@media(max-width:480px){.header{min-height:82px;padding:20px 18px;gap:10px}.brand{gap:10px}.brand-icon{width:34px;height:34px;border-radius:8px;font-size:21px}h1{font-size:1.125rem}.protocol{padding:4px 7px;font-size:.8125rem}main{padding:0 16px}.input-panel{padding:20px 18px 18px;border-radius:12px}label{font-size:.875rem;line-height:1.6;margin-bottom:10px}.input-row{gap:8px;flex-wrap:wrap}input{font-size:1.2rem;padding:12px;flex-basis:180px}button{padding:12px 15px;flex:1}button span{display:none}.hint{font-size:.8125rem}.result-heading{margin-top:24px}.range-card{padding:20px;border-radius:12px}.range-values{font-size:1.8rem;gap:1px;margin:14px 0 20px;flex-direction:column;align-items:flex-start}.range-separator{font-size:.875rem}.range-bottom{font-size:.8125rem}.range-bottom strong{font-size:.9375rem}.summary{gap:12px}.count-cell{padding:18px 15px;gap:8px}.count-cell h3{font-size:.875rem}.count strong{font-size:1.8rem}.details{margin-top:20px;border-radius:12px}.details h2{padding:20px 18px 5px}dl{padding:0 18px 4px}.detail-row{grid-template-columns:1fr;gap:5px;padding:14px 0}dd{text-align:left}.host-range dd{justify-content:flex-start;gap:3px 7px;font-size:.9375rem}.address-map{padding:20px 18px;margin-top:20px}.map-labels{font-size:.8125rem}.result-note{font-size:.8125rem}footer{padding:0 18px 24px;margin-top:20px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s}input{transition:box-shadow .15s}}
.install-bar{display:flex;justify-content:flex-end;margin:24px 0 16px}.install-button{background:#fff;color:#1558ae;border-color:#a5bbd6;padding:10px 16px;min-height:44px;font-size:.875rem;gap:9px;white-space:normal;line-height:1.6}.install-button svg{flex-shrink:0}.install-button:hover{background:#e9f1fc}.install-button:disabled{opacity:.6;cursor:wait}.install-help{background:white;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:12px;padding:20px 24px;margin-bottom:20px}.install-help-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.install-help h2{font-size:1rem}.install-close{background:transparent;color:var(--muted);border-color:var(--line);padding:8px 12px;min-height:44px;font-size:.875rem;flex:none}.install-close:hover{background:#f3f6fa}.install-guides{display:flex;flex-wrap:wrap;gap:24px;margin-top:18px}.install-guides>section{flex:1 1 260px;min-width:0}.install-guides h3{font-size:1rem;font-weight:650}.install-guides ol{padding-left:1.4em;margin:12px 0;font-size:1rem;line-height:1.8}.install-guides li+li{margin-top:8px}.install-guides p,.install-footnote,.install-message{font-size:.875rem;line-height:1.8;color:var(--muted)}.install-footnote{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.install-message{color:#1558ae;margin-top:14px}@media(max-width:480px){.install-button{width:100%;flex:none}.install-help{padding:16px}.install-help-heading{align-items:flex-start}.install-help h2{line-height:1.7}.install-close{padding:8px 10px;flex:none}.install-guides{gap:20px}}

.back-nav{margin:0 0 16px}.back-nav a{display:inline-flex;align-items:center;min-height:44px;padding:6px 0;color:#52637a;font-size:.875rem;text-decoration:none}.back-nav a:hover{color:#1764cf;text-decoration:underline;text-underline-offset:4px}.back-nav a:focus-visible{outline:3px solid #1764cf55;outline-offset:3px;border-radius:3px}

.fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.fields>div{min-width:0}.value-unit{display:flex;align-items:stretch;gap:8px;min-width:0}.value-unit input{width:0;flex:1 1 0}.value-unit select{font:inherit;font-size:1rem;color:var(--ink);background:#f3f6fa;border:1px solid #a5b6cc;border-radius:8px;padding:12px;width:112px;min-height:52px}.value-unit select:focus-visible{outline:3px solid #1764cf55;outline-offset:2px}.efficiency-field{margin-top:24px}.efficiency-field .value-unit{max-width:160px}.unit-suffix{display:flex;align-items:center;padding:12px;color:var(--muted)}.calculate{margin-top:24px;width:100%;gap:16px}.time-card{background:#142c4b;color:#fff;border-radius:14px;padding:28px}.time-card h3{color:#d7e5f7;font-size:1rem}.duration{font-size:clamp(1.8rem,5vw,2.75rem);line-height:1.5;font-weight:700;margin:12px 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.total-seconds{color:#b9cbe0;font-size:.875rem;overflow-wrap:anywhere}.unit-help{margin-top:24px;color:var(--muted);font-size:.875rem;line-height:1.8}.unit-help summary{cursor:pointer;min-height:44px;align-content:center}.unit-help p{margin-top:10px}.hint,.result-note{font-size:.875rem}.result-input{overflow-wrap:anywhere}.details dl{padding-top:6px}.duration span{display:inline-block;margin-right:.25em}.header h1{overflow-wrap:anywhere}
@media(max-width:640px){.fields{grid-template-columns:1fr;gap:22px}.time-card{padding:22px}.value-unit{flex-wrap:nowrap}.value-unit input{flex:1 1 0;min-width:0}.value-unit select{width:100px}.input-panel{padding:20px 18px}.duration{font-size:1.9rem}.efficiency-field{margin-top:22px}}
