
:root{
  --bg:#0b0f14;--panel:#121923;--ink:#e9f1ff;--muted:#a8b3c7;
  --accent:#3dd6ed;--border:#1e2735;
}
@media (prefers-color-scheme: light){
  :root{ --bg:#f7fafc; --panel:#ffffff; --ink:#0f172a; --muted:#475569; --border:#e2e8f0; --accent:#0891b2; }
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 ui-sans-serif,system-ui,Segoe UI,Roboto,"Noto Sans KR",Arial}
.container{max-width:1200px;margin:24px auto;padding:0 16px}
.header{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#6ea8ff);box-shadow:0 6px 18px rgba(0,0,0,.25)}
h1{font-size:18px;margin:0}
.toolbar{display:flex;gap:8px;flex-wrap:wrap}
.input{background:transparent;border:1px solid var(--border);color:var(--ink);padding:10px 12px;border-radius:10px}
.button{}
@media (prefers-color-scheme: light){ .button{} }
.grid{display:grid;grid-template-columns:300px 1fr;gap:16px}
@media (max-width: 1024px){.grid{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.15)}
.card .body{padding:16px}
.list{list-style:none;margin:0;padding:0}
.item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 94%, black 6%);margin-bottom:8px}
.meta{font-size:12px;color:var(--muted)}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tag{font-size:11px;padding:2px 8px;border:1px solid #2a3546;border-radius:999px;background:#0f1825;color:#e9f1ff}
.viewer{height:70vh;border-radius:12px;border:1px solid var(--border);overflow:hidden}
.viewer iframe{width:100%;height:100%;border:0;background:#0b1119}
.kbd{font-family:ui-monospace,Menlo,Consolas,monospace;background:#0f1825;border:1px solid var(--border);border-radius:6px;padding:1px 6px}
.footer{opacity:.7;font-size:12px;margin-top:12px}
.badge{font-size:11px;padding:2px 8px;border:1px solid #2a3546;border-radius:999px;background:#14384a;color:#e9f1ff;margin-left:6px}

.card{background:var(--panel); border-color:var(--border)}
.kbd{background:#0f1825; border-color:var(--border)}
.button{}
.button.primary{background: linear-gradient(135deg, var(--accent), var(--accent2)); border-color: transparent; color:#fff; font-weight:600; box-shadow:0 0 12px rgba(0,0,0,.25)}
.brand .logo{background:linear-gradient(135deg, var(--accent), var(--accent2))}
