:root{--bg:#f6f4ef;--surface:#fff;--text:#1a1a1a;--muted:#5b5b5b;--accent:#2d6a4f;--accent-2:#f4a261;--border:#e3ded1;--shadow:0 6px 18px rgba(0,0,0,.08);--radius:14px;--maxw:1000px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 10% -10%,#f9efe2,transparent),var(--bg);color:var(--text);font-family:Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.container{margin:0 auto;width:min(100% - 48px,var(--maxw))}header{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffe6;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.navbar{gap:16px;justify-content:space-between;padding:14px 0}.brand,.navbar{align-items:center;display:flex}.brand img{display:block;height:36px;width:auto}.nav{align-items:center;display:flex;flex-wrap:wrap;font-size:14px;gap:14px}.nav a{border-radius:999px;padding:6px 10px}.nav a[aria-current=page]{background:var(--accent);color:#fff}.tool-search{align-items:center;display:flex;gap:8px;position:relative}.tool-search input[type=search]{border:1px solid var(--border);border-radius:999px;font-size:16px;min-width:200px;padding:8px 12px}.tool-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);display:grid;gap:6px;left:0;max-height:min(360px,60vh);overflow:auto;padding:8px;position:absolute;top:42px;width:100%;z-index:20}.tool-group{color:var(--muted);font-size:12px;padding:6px 8px 2px;text-transform:none}.tool-option{align-items:center;background:#fff;border:1px solid transparent;border-radius:10px;color:var(--text);cursor:pointer;display:flex;font-size:14px;justify-content:flex-start;padding:8px 10px}.tool-option:hover{background:#fffaf0;border-color:var(--border)}.tool-option.active,.tool-option:focus-visible{background:#f1f7f2;border-color:var(--accent);box-shadow:0 0 0 2px #2d6a4f2e;outline:none}.tool-search input[type=search]:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px #2d6a4f2e;outline:none}.tool-highlight{background:#ffe8c2;border-radius:4px;color:inherit;padding:0 2px}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.footer-nav a[aria-current=page]{background:transparent;color:inherit;font-weight:700}main{padding:28px 0 44px}.section-title{display:grid;gap:6px}.section-title h1,.section-title h2{font-size:clamp(22px,3vw,30px);margin:0}.page-time,.section-title p{color:var(--muted);margin:0}.page-time{align-items:center;align-self:center;display:flex;font-size:13px;font-weight:600;gap:6px;line-height:1.2}.page-top{border-bottom:1px solid var(--border);gap:16px;justify-content:space-between;margin:6px 0 16px;padding-bottom:6px}.page-top,.weather-inline{align-items:center;display:flex;flex-wrap:wrap}.weather-inline{gap:10px;line-height:1.2}.weather-inline__main{align-items:baseline;display:flex;gap:6px}.weather-inline__main strong{font-size:20px;font-weight:800}.weather-inline__meta{align-items:center;display:flex;flex-wrap:wrap;font-size:12px;gap:8px}.cards{display:grid;gap:18px;margin-top:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:10px;padding:20px}.card h3,.card p{margin:0}.card p{color:var(--muted)}.cta{background:var(--accent);border-radius:10px;color:#fff;display:inline-block;font-weight:700;padding:10px 16px}.section{margin-top:18px;padding:16px 0 6px}.dashboard{padding:8px 0 4px}.market-grid{display:grid;gap:12px;margin-top:16px}.market-header{align-items:center;color:var(--muted);display:flex;font-size:13px;gap:8px;justify-content:space-between}.market-cards{display:grid;gap:14px}.market-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:8px;padding:16px}.market-card .card-top{align-items:center;display:flex;gap:8px;justify-content:space-between}.market-card .label{color:var(--muted);font-size:13px;font-weight:700}.market-card .value{font-size:24px;font-weight:800}.market-card .value.loading{color:var(--muted);font-weight:600}.market-card .sub{color:var(--muted);font-size:13px;min-height:16px}.market-card .updated{color:var(--muted);font-size:12px}.unit-toggle{background:#fff;border:1px solid var(--border);border-radius:999px;display:inline-flex;overflow:hidden}.unit-toggle .toggle-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:12px;font-weight:700;padding:4px 10px}.unit-toggle .toggle-btn.is-active{background:var(--accent);color:#fff}.badge{align-items:center;background:#ffc22d33;border:1px solid rgba(255,194,45,.6);border-radius:999px;color:#7a5a00;display:inline-flex;font-size:12px;font-weight:700;gap:6px;padding:4px 10px}.market-error{align-items:center;border:1px dashed var(--border);border-radius:12px;color:var(--muted);display:flex;font-size:14px;gap:12px;justify-content:space-between;margin-top:12px;padding:12px}.market-error .retry{background:#fff;border:1px solid var(--border);border-radius:10px;cursor:pointer;font-weight:700;padding:8px 14px}.attribution{color:var(--muted);font-size:12px;margin-top:10px}.cards.compact .card{padding:16px}.cards.compact .card p{font-size:14px}.section.boxed{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}form{display:grid;gap:16px}form>div{display:flex;flex-direction:column;gap:8px}.form-stacked{gap:20px}label{display:block;font-size:14px;font-weight:600}.label-row,label{align-items:center;display:flex;margin-bottom:8px;min-height:28px}.label-row{flex-wrap:wrap;gap:8px;justify-content:space-between}.label-row label{margin-bottom:0;min-width:0}.btn-mini{align-items:center;background:#fff;border:1px solid var(--border);border-radius:999px;color:var(--text);display:inline-flex;font-size:12px;font-weight:600;height:28px;line-height:1;max-width:100%;padding:6px 12px;white-space:nowrap}input[type=date],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:16px;min-width:0;padding:12px 14px;transition:border-color .16s ease,box-shadow .16s ease;width:100%}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:100%;min-width:0;width:100%}input[type=date]::-webkit-calendar-picker-indicator{-webkit-appearance:none;display:none}input[type=date]::-webkit-inner-spin-button{display:none}input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:100%;min-width:0;width:100%}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input[type=checkbox],input[type=radio]{accent-color:var(--accent);transform:translateY(1px)}.date-input{align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto;position:relative}.date-input__btn{background:#fff;border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;font-size:16px;height:44px;padding:10px 12px}.date-input__btn:disabled{cursor:not-allowed;opacity:.6}.date-popover{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #0000001f;left:0;min-width:260px;padding:12px;position:absolute;top:calc(100% + 8px);z-index:20}.date-popover__header{align-items:center;display:grid;gap:8px;grid-template-columns:auto 1fr auto;margin-bottom:10px}.date-popover__selectors{display:grid;gap:6px;grid-template-columns:1fr 1fr}.date-popover__selectors select{font-size:14px;padding:6px 8px}.date-popover__nav{background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:16px;padding:4px 8px}.date-popover__weekdays{color:var(--muted);font-size:12px;margin-bottom:6px;text-align:center}.date-popover__grid,.date-popover__weekdays{display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.date-popover__footer{display:flex;justify-content:flex-end;margin-top:10px}.date-popover__today{background:#fff;border:1px solid var(--border);border-radius:10px;padding:6px 12px}.date-popover__day,.date-popover__today{color:var(--text);cursor:pointer;font-size:13px}.date-popover__day{background:#f4f6f8;border:none;border-radius:8px;padding:6px 0}.date-popover__day.is-empty{background:transparent;cursor:default}.date-popover__day.is-selected{background:var(--accent);color:#fff;font-weight:700}.field{display:flex;flex-direction:column;gap:8px}.choice-group{border:none;border-radius:0;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;padding:0 0 4px;-webkit-overflow-scrolling:touch;background:transparent}.choice-group legend{color:var(--muted);font-size:13px;padding:0}.choice-item{align-items:center;background:#f0f6f3;border:1px solid #cddfd3;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:10px 12px;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease;white-space:nowrap}.choice-item input{display:none}.choice-item:has(input:checked){background:#d6eadf;border-color:#4b826999;box-shadow:0 0 0 2px #4b826933;color:#1c5640}.choice-item:focus-within{border-color:#4b8269b3;box-shadow:0 0 0 2px #4b826938;outline:none}button{background:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 14px;transition:transform .12s ease,box-shadow .16s ease}button.secondary{background:#e0efe7;border:1px solid rgba(75,130,105,.4);color:#1c5640}button.secondary.tint-1{background:#e5f2ea;border-color:#4b82695c}button.secondary.tint-2{background:#deeee6;border-color:#4b826957}button.secondary.tint-3{background:#daeae3;border-color:#4b82696b}button.secondary.tint-4{background:#e7f4ed;border-color:#4b826952}button.ghost{background:#f2f2f2;border:1px solid #d6d6d6;color:#4a4a4a}.actions{display:flex;flex-wrap:wrap;gap:10px}.notice{color:var(--muted);font-size:13px}.result-grid{display:grid;gap:12px;margin-top:14px}.result-item{border-bottom:1px solid var(--border);display:grid;gap:4px;padding:10px 0}.result-item strong{font-size:18px}.result-list{display:grid;gap:6px;margin:8px 0 0;padding-left:18px}.stopwatch-display{font-size:clamp(32px,6vw,48px);font-weight:800;letter-spacing:.5px;padding:12px 0 6px}.lap-list{display:grid;gap:8px;margin-top:12px}.lap-item{align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;display:flex;justify-content:space-between;padding:10px 12px}.stopwatch-actions button{border-radius:12px;font-size:15px;padding:12px 18px}.stopwatch-actions{align-items:center;gap:14px}.stopwatch-actions .lap-btn{margin-left:auto}.speedtest-meta{color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:8px;justify-content:space-between}.speedtest-grid{display:grid;gap:12px;margin-top:14px}.speedtest-card{background:#fff;border:1px solid var(--border);border-radius:12px;display:grid;gap:6px;padding:14px}.speedtest-card strong{font-size:20px}.policy-check,.speedtest-policy{margin-top:12px}.policy-check{align-items:center;display:inline-flex;font-size:14px;gap:10px}.policy-check input[type=checkbox]{height:18px;width:18px}.speedtest-error{margin-top:10px}.calculator{display:grid;gap:12px;margin:0 auto;max-width:360px}.calc-display{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px}.calc-output{background:transparent;border:none;color:var(--text);font-size:28px;font-weight:700;text-align:right;width:100%}.calc-grid{display:grid;gap:10px;grid-template-columns:repeat(4,1fr)}.calc-btn{background:#fff;border:1px solid var(--border);border-radius:12px;color:var(--text);cursor:pointer;font-size:18px;font-weight:700;padding:12px 0}.calc-btn.ghost{background:#f5f4f0}.calc-btn.op{background:#e7f2ed;color:#1f5a43}.calc-btn.equal{background:var(--accent);color:#fff;grid-row:span 2}.calc-btn.wide{grid-column:span 2}@media(min-width:720px){.speedtest-grid{grid-template-columns:repeat(2,1fr)}}.toast{background:#1f1f1f;border-radius:999px;bottom:20px;box-shadow:0 10px 30px #0000002e;color:#fff;font-size:13px;padding:10px 16px;transform:translate(-50%);z-index:50}#ptr-indicator,.toast{left:50%;position:fixed}#ptr-indicator{background:#fff;border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);color:var(--text);font-size:12px;font-weight:700;opacity:0;padding:6px 14px;pointer-events:none;top:0;transform:translate(-50%);transition:opacity .14s ease,transform .14s ease;z-index:60}#ptr-indicator[data-state=pull],#ptr-indicator[data-state=ready],#ptr-indicator[data-state=refresh]{opacity:1}.table{border-collapse:collapse;width:100%}.table td,.table th{border-bottom:1px solid var(--border);padding:10px 8px;text-align:left}.table th{color:var(--muted);font-size:13px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.grid-2{display:grid;gap:16px}.grid-2>div{display:flex;flex-direction:column;gap:8px;min-width:0}.grid-3{display:grid;gap:16px}.grid-3>div{display:flex;flex-direction:column;gap:8px;min-width:0}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #72bf954d;outline:none}button:focus-visible{box-shadow:0 0 0 3px #72bf9552;outline:none}.ad-slot{align-items:center;color:var(--muted);display:flex;display:none;font-size:12px;justify-content:center;margin:14px 0;min-height:90px}.content-boost{margin-top:18px}.content-boost h2,.content-boost h3,.content-boost h4,.content-boost p{margin:0}.faq-list{display:grid;gap:12px}.faq-item{background:#fffdf8;border:1px solid var(--border);border-radius:12px;display:grid;gap:8px;padding:12px}.faq-item p{color:var(--muted);margin:0}footer{border-top:1px solid var(--border);color:var(--muted);font-size:14px;padding:18px 0 28px}.consent-banner{background:#fff;border:1px solid var(--border);border-radius:14px;bottom:16px;box-shadow:var(--shadow);display:grid;gap:12px;left:16px;padding:14px;position:fixed;right:16px;z-index:30}.consent-content{color:var(--text);display:grid;gap:6px}.consent-content p{color:var(--muted);font-size:13px;margin:0}.consent-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}@media(min-width:720px){.consent-banner{left:auto;max-width:420px;right:24px}.cards{grid-template-columns:repeat(3,1fr)}.grid-2,.market-cards{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.ad-slot{min-height:250px}}@media(min-width:1024px){.market-cards{grid-template-columns:repeat(4,1fr)}}@media(max-width:540px){.tool-dropdown{left:0;right:0;width:100%}}
