:root{--bg: #f3f5f9;--surface: #ffffff;--surface-2: #e9edf4;--ink: #141c2e;--muted: #5f6a80;--line: #d8dee9;--accent: #d18a2b;--accent-soft: #fcefd8;--accent-ink: #8c5a12;--ok: #1e8a7a;--ok-soft: #dcf1ec;--warn: #b8801c;--warn-soft: #fbf0d6;--crit: #c43d2f;--crit-soft: #fbe3df;--radius: 14px;--shadow: 0 1px 2px rgba(20, 28, 46, .06), 0 6px 20px rgba(20, 28, 46, .06);--font: "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #0e1422;--surface: #172035;--surface-2: #1f2a44;--ink: #e7ecf5;--muted: #9faac2;--line: #2a3651;--accent: #e8a54a;--accent-soft: #3a2c14;--accent-ink: #f3c685;--ok: #4cc2b0;--ok-soft: #123430;--warn: #e0b15a;--warn-soft: #3a2e12;--crit: #ee7b6e;--crit-soft: #3b1f1b;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .35)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;word-break:keep-all}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0;line-height:1.3;text-wrap:balance}p{margin:0}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12.5px}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1080px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:8px}.brand b{font-size:18px;letter-spacing:-.01em}.brand span{font-size:12.5px;color:var(--muted)}.clock{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.clock .time{font-family:var(--mono);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.seg{display:inline-flex;background:var(--surface-2);border-radius:999px;padding:3px;gap:2px}.seg button{border:0;background:transparent;border-radius:999px;padding:5px 11px;font-size:13px;color:var(--muted);white-space:nowrap}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:600}main{flex:1;max-width:1080px;width:100%;margin:0 auto;padding:16px 16px 96px;display:grid;gap:18px;align-content:start}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}.tabs button{border:0;background:transparent;padding:12px 4px 10px;font-size:13px;font-weight:500;color:var(--muted);position:relative}.tabs button.on{color:var(--accent-ink);font-weight:700}.tabs button.on:after{content:"";position:absolute;left:20%;right:20%;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}@media (min-width: 900px){main{padding-bottom:40px}.tabs{position:static;display:inline-flex;border:0;background:var(--surface-2);border-radius:999px;padding:3px;gap:2px}.tabs button{padding:6px 14px;border-radius:999px;font-size:13.5px}.tabs button.on{background:var(--surface);box-shadow:var(--shadow);color:var(--ink)}.tabs button.on:after{display:none}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;gap:12px;align-content:start}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-title h2{font-size:16px;font-weight:700}.section-title .sub{font-size:12.5px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:grid;gap:3px;align-content:start}.stat .label{font-size:12.5px;color:var(--muted)}.stat .value{font-size:26px;font-weight:700;line-height:1.15;font-family:var(--mono);font-variant-numeric:tabular-nums}.stat .sub{font-size:12.5px;color:var(--muted)}.stat.crit .value{color:var(--crit)}.stat.ok .value{color:var(--ok)}.stat.accent .value{color:var(--accent-ink)}.rows{display:grid;gap:8px}.row{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;text-align:left;width:100%}.row:hover{border-color:var(--accent)}.row.hot{border-color:var(--crit);background:var(--crit-soft)}.row .rank{font-family:var(--mono);color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.row .who{display:grid;gap:4px;min-width:0}.row .name{font-weight:700;font-size:15.5px}.row .name small{font-weight:500;color:var(--muted);margin-left:6px;font-size:12.5px}.row .meta{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.row .right{display:grid;gap:4px;justify-items:end}.pct{font-family:var(--mono);font-weight:700;font-size:18px;font-variant-numeric:tabular-nums}.pct.crit{color:var(--crit)}.pct.warn{color:var(--warn)}.pct.ok{color:var(--ok)}.bar{height:6px;border-radius:999px;background:var(--surface-2);width:104px;overflow:hidden}.bar i{display:block;height:100%;border-radius:999px;background:var(--ok)}.bar.warn i{background:var(--warn)}.bar.crit i{background:var(--crit)}.rec{font-size:12px;color:var(--muted);white-space:nowrap}.rec.now{color:var(--crit);font-weight:700}.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:500;background:var(--surface-2);color:var(--muted);white-space:nowrap;line-height:1.5}.chip.accent{background:var(--accent-soft);color:var(--accent-ink)}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.crit{background:var(--crit-soft);color:var(--crit)}.chips{display:flex;flex-wrap:wrap;gap:6px}.plan{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}.slot{flex:0 0 156px;scroll-snap-align:start;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px;align-content:start}.slot.now{border-color:var(--accent);background:var(--accent-soft)}.slot .t{font-family:var(--mono);font-weight:600;font-size:13px}.slot .pk{display:flex;justify-content:space-between;font-size:13px;gap:8px}.slot .pk b{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}.slot .none{font-size:12.5px;color:var(--muted)}.field{display:grid;gap:6px}.field label{font-size:12.5px;color:var(--muted)}.input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;font-size:16px}.input-row{display:flex;gap:8px}.input-row .input{flex:1;min-width:0}.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 14px;font-size:14px;font-weight:500;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.danger{color:var(--crit);border-color:var(--crit)}.btn.sm{padding:6px 10px;font-size:13px;border-radius:8px}.btn.mic{min-width:48px}.btn.mic.on{background:var(--crit);color:#fff;border-color:var(--crit)}.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.parsed{background:var(--bg);border:1px dashed var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:8px}.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}.quick .q{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:8px 10px}.quick .q .n{flex:1;font-size:14px;font-weight:600;min-width:0}.quick .q .n small{color:var(--muted);font-weight:500;margin-left:4px}.toast{background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:10px 14px;font-size:14px;font-weight:500}.toast.err{background:var(--crit-soft);color:var(--crit)}.list{display:grid;gap:6px}.evt{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;font-size:13.5px;padding:8px 10px;border-radius:10px;background:var(--bg)}.evt .t{font-family:var(--mono);color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}.evt .d{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:0}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th,.table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{font-size:12px;color:var(--muted);font-weight:500;white-space:nowrap}.table td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.table th.num{text-align:right}.scroll-x{overflow-x:auto}.textblock{white-space:pre-wrap;font-family:var(--mono);font-size:12.5px;line-height:1.6;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;margin:0;max-height:420px;overflow:auto}.steps{margin:0;padding-left:20px;display:grid;gap:6px;font-size:14px}.bullets{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}.notice{background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;padding:10px 14px;font-size:13.5px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.notice .btn{margin-left:auto}.prose{display:grid;gap:8px;max-width:70ch;font-size:14.5px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13.5px}.kv dt{color:var(--muted)}.kv dd{margin:0}.level-group{display:grid;gap:8px}.level-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}.alert{display:flex;gap:8px;align-items:flex-start;font-size:14px;padding:8px 12px;border-radius:10px;background:var(--warn-soft);color:var(--ink)}.alert:before{content:"";flex:0 0 8px;height:8px;border-radius:50%;background:var(--warn);margin-top:7px}.empty{color:var(--muted);font-size:13.5px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c1680;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:760px;max-height:92vh;max-height:92dvh;overflow:auto;border-radius:20px 20px 0 0;padding:16px 16px 32px;display:grid;gap:14px;align-content:start}@media (min-width: 760px){.overlay{align-items:center;padding:24px}.sheet{border-radius:20px}}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sheet-head h2{font-size:20px}.sheet-head .sub{font-size:13px;color:var(--muted)}.close{border:0;background:var(--surface-2);border-radius:999px;width:36px;height:36px;font-size:18px;line-height:1;flex:0 0 auto}.big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.big .pct{font-size:34px}.chart svg{width:100%;height:auto;display:block}.chart .axis{fill:var(--muted);font-size:10px;font-family:var(--mono)}.chart .grid{stroke:var(--line);stroke-width:1}.chart .bar-hist{fill:var(--accent);opacity:.55}.chart .bar-hist.now{opacity:1}.chart .line{fill:none;stroke:var(--accent);stroke-width:2}.chart .area{fill:var(--accent);opacity:.15}.chart .thr{stroke:var(--crit);stroke-dasharray:4 4;stroke-width:1}.chart .dot{fill:var(--crit)}.chart .label{fill:var(--ink);font-size:11px;font-family:var(--mono);font-weight:600}@media (prefers-reduced-motion: no-preference){.row,.btn{transition:border-color .15s,background-color .15s}}.hdr-about{border:1px solid var(--line);background:transparent;border-radius:999px;padding:2px 9px;font-size:12px;color:var(--muted);margin-left:4px}.hdr-about.on{color:var(--accent-ink);border-color:var(--accent)}.tabs{grid-template-columns:repeat(6,1fr)}.tabs button{font-size:12.5px;padding:11px 2px 9px}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.course{border:2px solid transparent;border-radius:12px;padding:12px;text-align:left;display:grid;gap:2px;color:#17203a;min-height:72px}.course b{font-size:14px}.course span{font-size:12px;opacity:.85}.course.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.walk-stage{position:relative;width:100%;aspect-ratio:16 / 9;max-height:68vh;max-height:68dvh;border-radius:16px;overflow:hidden;background:#9fb4cc;border:1px solid var(--line)}.walk-canvas{width:100%;height:100%;display:block}.walk-caption{position:absolute;left:0;right:0;bottom:0;padding:16px 18px 18px;background:linear-gradient(180deg,#0a0e1800,#0a0e18b8 40%,#0a0e18d9);color:#fff;display:grid;gap:4px}.walk-caption p{font-size:clamp(16px,2.4vw,22px);line-height:1.6;font-weight:500;text-wrap:pretty;max-width:60ch}.walk-step{font-family:var(--mono);font-size:12px;opacity:.8}.bubble{background:var(--accent-soft);color:var(--ink);border-radius:18px 18px 18px 4px;padding:14px 16px;max-width:62ch;font-size:15px;line-height:1.7}.bubble p{white-space:pre-wrap}html.easy body{font-size:17px}html.easy .btn{min-height:48px;font-size:16px;padding:12px 18px}html.easy .btn.sm{min-height:44px;font-size:15px;padding:10px 14px}html.easy .input{font-size:18px;padding:14px 16px}html.easy .seg button{padding:9px 14px;font-size:15px}html.easy .section-title h2{font-size:18px}html.easy .quick{grid-template-columns:1fr}html.easy .quick .q{padding:10px 12px}html.easy .quick .q .n{font-size:17px}html.easy .evt{font-size:15px}html.easy .chip{font-size:13px;padding:4px 10px}html.easy .sheet h2{font-size:22px}html.easy main{gap:16px;padding-bottom:116px}.easy-title{font-size:19px;font-weight:700}.easy-hero.crit-edge{border-left:6px solid var(--crit)}.big-list{display:grid;gap:10px}.big-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"room name badge" "room sub badge";gap:2px 12px;align-items:center;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:14px 16px;min-height:72px;width:100%}.big-row.crit{border-color:var(--crit);background:var(--crit-soft)}.big-row.warn{border-color:var(--warn);background:var(--warn-soft)}.big-room{grid-area:room;font-family:var(--mono);font-size:16px;color:var(--muted);font-variant-numeric:tabular-nums}.big-name{grid-area:name;font-size:20px;font-weight:700;white-space:nowrap}.big-sub{grid-area:sub;font-size:14px;color:var(--muted)}.badge{grid-area:badge;border-radius:999px;padding:8px 12px;font-size:15px;font-weight:700;white-space:nowrap;color:#fff;background:var(--ok)}.badge.crit{background:var(--crit)}.badge.warn{background:var(--warn)}.calm-note{font-size:16px}.calm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.calm-item{display:grid;gap:2px;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:56px}.calm-item b{font-size:15px}.calm-item span{font-size:13px;color:var(--muted)}.mic-big{width:100%;min-height:96px;border-radius:20px;border:0;background:var(--accent);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:var(--shadow)}.mic-big.on{background:var(--crit);animation:pulse 1.2s ease-in-out infinite}.mic-big:disabled{opacity:.7}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@media (prefers-reduced-motion: reduce){.mic-big.on{animation:none}}.mic-hint{font-size:15px;color:var(--muted);text-align:center}.big-menu{display:grid;gap:10px}.big-item{display:flex;align-items:center;gap:14px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;min-height:84px;width:100%}.big-icon{flex:0 0 52px;height:52px;border-radius:14px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center}.big-text{display:grid;gap:2px}.big-text b{font-size:18px}.big-text span{font-size:14px;color:var(--muted)}.hdr-mode{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--ink);white-space:nowrap}.tabs{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}.tabs button{display:grid;justify-items:center;gap:3px;padding:8px 2px}.tabs button svg{width:24px;height:24px}.tabs button span{font-size:12px}html.easy .tabs button{padding:10px 2px}html.easy .tabs button span{font-size:13px;font-weight:600}@media (min-width: 900px){.tabs{display:inline-flex}.tabs button{display:inline-flex;align-items:center;gap:6px;padding:6px 14px}.tabs button svg{width:16px;height:16px}.tabs button span{font-size:13.5px}}
