:root{
  --ink:#171912;--muted:#686d5d;--paper:#f4f1e8;--card:#fffdf7;--line:#dcd7c8;
  --leaf:#2e6b4f;--leaf-soft:#e0ece4;--berry:#c93f55;--berry-soft:#f9dfe4;
  --gold:#e4a321;--gold-soft:#fff0c8;--radius:18px;
  --font-display:'Noto Sans KR',sans-serif;--font-body:'Noto Sans KR',sans-serif;--font-mono:'JetBrains Mono',monospace;
}
html[data-theme="dark"]{--ink:#f3f1e8;--muted:#b7bcad;--paper:#171912;--card:#23271f;--line:#444a3c;--leaf:#6fb38b;--leaf-soft:#254634;--berry:#ee7387;--berry-soft:#4a252d;--gold:#efc15b;--gold-soft:#4e4120}
*{box-sizing:border-box}
html{background:var(--paper)}html,body{margin:0;padding:0}
body{min-height:100vh;color:var(--ink);font-family:var(--font-body);line-height:1.55;background:radial-gradient(circle at 88% 6%,rgba(228,163,33,.15),transparent 24rem),var(--paper);-webkit-font-smoothing:antialiased}
.global-nav{width:100%;border-bottom:1px solid #34382f;background:#171912;color:white;position:relative;z-index:20}
.global-nav-inner{display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 32px));height:54px;margin:0 auto}
.global-brand{display:flex;align-items:center;font:900 24px/1 var(--font-display);letter-spacing:-.04em;text-decoration:none;color:#e7c05d}
.global-actions,.global-categories{display:flex;align-items:stretch;height:100%}.global-actions{align-items:center}
.global-categories a{display:grid;place-items:center;min-width:112px;padding:0 18px;border-left:1px solid #34382f;color:#b8bdad;font-size:12px;font-weight:700;text-decoration:none}
.global-categories a:last-child{border-right:1px solid #34382f}.global-categories a:hover{color:white;background:#24281f}.global-categories a.active{color:#171912;background:#e7c05d}
.theme-toggle{display:grid;place-items:center;width:34px;height:34px;margin-left:10px;border:1px solid #596052;border-radius:50%;background:transparent;color:#f6f7f2}.theme-toggle:hover{border-color:#e7c05d;color:#e7c05d}.theme-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-icon-sun{display:none}html[data-theme="dark"] .theme-icon-moon{display:none}html[data-theme="dark"] .theme-icon-sun{display:block}
a{color:var(--leaf)}button,input,textarea,select{font:inherit}
button{cursor:pointer;border:0;border-radius:10px;transition:transform .12s ease,background .12s ease,border-color .12s ease}
button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}
.btn-primary{padding:12px 20px;background:var(--ink);color:white;font-weight:900;font-size:14px}.btn-primary:hover:not(:disabled){background:var(--leaf)}
.btn-secondary{padding:10px 16px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;font-weight:700}.btn-secondary:hover:not(:disabled){background:var(--leaf-soft);border-color:#b8cfbf}
.btn-danger{padding:10px 16px;border:1px solid #e8aab5;background:var(--berry-soft);color:#9f263a;font-size:14px;font-weight:700}.btn-danger:hover:not(:disabled){background:#f4cbd3}
.wrap{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:36px 0 54px}
header.top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:24px;border-bottom:2px solid var(--ink)}
.eyebrow{margin:0 0 4px;font:700 11px/1 var(--font-mono);letter-spacing:.14em;color:var(--berry)}
header.top h1{margin:0;font:900 clamp(30px,4vw,48px)/1.05 var(--font-display);letter-spacing:-.05em;color:var(--ink)}
header.top .subtitle{max-width:620px;margin:10px 0 0;color:var(--muted);font-size:14px}
.status-pill{display:flex;align-items:center;gap:9px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--card);box-shadow:0 8px 24px rgba(64,57,37,.06);font-size:13px;font-weight:700;white-space:nowrap}
.status-dot{width:9px;height:9px;border-radius:50%;background:#9da291;flex:none}.status-dot.watching{background:var(--leaf);animation:pulse 1.8s infinite}.status-dot.alert{background:var(--berry);animation:pulse-red 1s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(46,107,79,.45)}70%{box-shadow:0 0 0 8px rgba(46,107,79,0)}100%{box-shadow:0 0 0 0 rgba(46,107,79,0)}}
@keyframes pulse-red{0%{box-shadow:0 0 0 0 rgba(201,63,85,.5)}70%{box-shadow:0 0 0 9px rgba(201,63,85,0)}100%{box-shadow:0 0 0 0 rgba(201,63,85,0)}}
.grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);grid-template-areas:"share settings" "status settings" "region region" "log log";align-items:start;gap:18px}
.panel{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:0 14px 40px rgba(64,57,37,.06)}.panel.wide{grid-column:1/-1}
.grid>.panel:nth-child(1){grid-area:share}.grid>.panel:nth-child(2){grid-area:settings}.grid>.panel:nth-child(3){grid-area:region}.grid>.panel:nth-child(4){grid-area:status}.grid>.panel:nth-child(5){grid-area:log}
.grid>.panel:nth-child(4) .hud{align-items:stretch;flex-direction:column;gap:14px}.grid>.panel:nth-child(4) .hud-status,.grid>.panel:nth-child(4) .hud-meta{min-width:0;width:100%}
.panel h2{display:flex;align-items:center;gap:10px;margin:0 0 4px;color:var(--ink);font-size:20px;line-height:1.3}
.panel h2 .num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:white;font:700 11px var(--font-mono);flex:none}
.panel .desc{margin:0 0 16px;color:var(--muted);font-size:12px}
.field{margin-bottom:14px}.field:last-child{margin-bottom:0}.field label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:700}.field .row-between{display:flex;justify-content:space-between;align-items:baseline}
.field .value-badge{padding:2px 7px;border-radius:999px;background:var(--gold-soft);color:#8b5c00;font:700 11px var(--font-mono)}
input[type="text"],textarea,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#faf8f1;color:var(--ink);font-size:14px}textarea{min-height:70px;resize:vertical}input[type="range"]{width:100%;accent-color:var(--leaf)}
.tip{margin-top:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:#faf8f1;color:var(--muted);font-size:12px}.hint-small{margin-top:6px;color:var(--muted);font-size:11.5px}
#snapCanvas{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;background:repeating-linear-gradient(45deg,#eeeadf,#eeeadf 10px,#f7f4eb 10px,#f7f4eb 20px);touch-action:none;cursor:crosshair}
.region-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.region-controls .sep{width:1px;align-self:stretch;margin:0 2px;background:var(--line)}.zoom-readout,.region-size{color:var(--muted);font:500 12px var(--font-mono)}.zoom-readout{padding:0 4px}.region-size{margin-top:8px}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.hud{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:18px;border-radius:14px;background:var(--ink);color:white}.hud-status{min-width:220px;color:#b8bdad;font:900 28px var(--font-display)}.hud-status.watching{color:#87c29f}.hud-status.alert{color:#ff8296}
.hud-meta{min-width:220px;flex:1}.hud-meta .row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed #4c5146;font-size:13px}.hud-meta .row:last-child{border-bottom:0}.hud-meta .row span:first-child{color:#b8bdad}.hud-meta .row span:last-child{color:white;font-family:var(--font-mono)}
.live-text{min-height:42px;margin-top:14px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#faf8f1;color:var(--muted);font:500 13px var(--font-mono);word-break:break-all}
.log-list{display:flex;max-height:220px;overflow-y:auto;flex-direction:column;gap:7px;font:500 12.5px var(--font-mono)}.log-entry{display:flex;gap:10px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:#faf8f1}.log-entry.matched{border-color:#dfa0ab;background:var(--berry-soft);box-shadow:inset 3px 0 0 var(--berry)}.log-entry .t{color:var(--muted);flex:none}.log-entry .txt{color:var(--ink);word-break:break-all}.log-entry .tag{align-self:flex-start;padding:1px 6px;border-radius:5px;background:var(--berry);color:white;font-size:10.5px;font-weight:700;flex:none}.log-empty{padding:8px 2px;color:var(--muted);font-size:13px}
footer{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.8}
#alarmBanner{position:fixed;top:0;right:0;left:0;z-index:999;display:flex;align-items:center;justify-content:center;gap:14px;padding:22px 20px;background:linear-gradient(180deg,#cf435a,#b82f47);color:white;box-shadow:0 8px 30px rgba(71,17,27,.28);font:900 26px var(--font-display);transform:translateY(-120%);transition:transform .35s cubic-bezier(.2,.9,.3,1.3)}#alarmBanner.show{transform:translateY(0)}#alarmBanner .kw{color:#fff0c8}
body.screen-flash{animation:flash-border .5s ease-out}@keyframes flash-border{0%{box-shadow:inset 0 0 0 0 rgba(201,63,85,0)}20%{box-shadow:inset 0 0 60px 10px rgba(201,63,85,.45)}100%{box-shadow:inset 0 0 0 0 rgba(201,63,85,0)}}
@media(max-width:860px){.grid{grid-template-columns:1fr;grid-template-areas:"share" "settings" "region" "status" "log"}.panel.wide{grid-column:auto}.grid>.panel:nth-child(4) .hud{align-items:center;flex-direction:row;gap:24px}.grid>.panel:nth-child(4) .hud-status,.grid>.panel:nth-child(4) .hud-meta{width:auto}.grid>.panel:nth-child(4) .hud-status{min-width:220px}.grid>.panel:nth-child(4) .hud-meta{min-width:220px}}
html[data-theme="dark"] body{background:radial-gradient(circle at 88% 6%,rgba(239,193,91,.1),transparent 24rem),var(--paper)}html[data-theme="dark"] input[type="text"],html[data-theme="dark"] textarea,html[data-theme="dark"] select,html[data-theme="dark"] .live-text,html[data-theme="dark"] .log-entry,html[data-theme="dark"] .tip{background:#1c201a;color:var(--ink)}html[data-theme="dark"] .status-pill,html[data-theme="dark"] .comparison{background:#1c201a}html[data-theme="dark"] .hud{background:#11130f}html[data-theme="dark"] .global-nav{border-color:#34382f}html[data-theme="dark"] .global-categories a:not(.active){color:#fff}html[data-theme="dark"] .btn-primary,html[data-theme="dark"] .panel h2 .num{background:#315d3f;color:#fff}html[data-theme="dark"] .btn-danger{color:#ffd9df;border-color:#b96573}
@media(max-width:600px){.global-nav-inner{width:100%;height:50px;padding-left:12px}.global-brand{font-size:22px}.global-categories a{min-width:82px;padding:0 8px}.theme-toggle{margin-left:6px}.wrap{width:min(100% - 20px,1180px);padding-top:22px}header.top{align-items:flex-start;flex-direction:column}.panel{padding:17px;border-radius:14px}.hud{padding:15px}}
@media(prefers-reduced-motion:reduce){#alarmBanner{transition:none}.status-dot.watching,.status-dot.alert{animation:none}body.screen-flash{animation:none}}
