@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@400;500;600;700&family=Syne:wght@600;700;800&display=swap";:root{--bg0: #0b1412;--bg1: #12201c;--bg2: #1a2e28;--ink: #e8f2ee;--muted: #9bb5ab;--line: rgba(232, 242, 238, .12);--accent: #3dcf9a;--accent-2: #f0c75e;--danger: #ff6b6b;--ok: #3dcf9a;--warn: #f0c75e;--radius: 12px;--font-display: "Syne", "IBM Plex Sans KR", sans-serif;--font-body: "IBM Plex Sans KR", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,rgba(61,207,154,.18),transparent 55%),radial-gradient(900px 500px at 90% 0%,rgba(240,199,94,.12),transparent 50%),linear-gradient(180deg,var(--bg0),var(--bg1) 40%,#0e1a16)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{border-right:1px solid var(--line);background:#08100eb8;padding:1.5rem 1.1rem;display:flex;flex-direction:column;gap:1.2rem}.brand{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;font-size:1.35rem}.brand span{color:var(--accent)}.nav a{display:block;padding:.55rem .7rem;border-radius:8px;color:var(--muted);margin-bottom:.2rem}.nav a.active,.nav a:hover{background:#3dcf9a1f;color:var(--ink)}.main{padding:1.5rem 2rem 3rem}.page-title{font-family:var(--font-display);font-size:1.7rem;margin:0 0 .35rem;letter-spacing:-.03em}.page-sub{color:var(--muted);margin:0 0 1.4rem}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#12201ca6;padding:1rem 1.1rem;margin-bottom:1rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.stack{display:grid;gap:.75rem}label{display:grid;gap:.35rem;color:var(--muted);font-size:.9rem}input,select,textarea{width:100%;border:1px solid var(--line);background:#00000040;color:var(--ink);border-radius:8px;padding:.65rem .75rem}button,.btn{border:0;border-radius:8px;padding:.65rem 1rem;background:var(--accent);color:#062117;font-weight:600;cursor:pointer}button.secondary,.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--danger);color:#1a0505}button:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500}.badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;border:1px solid var(--line);font-size:.78rem;color:var(--muted)}.badge.ok{color:var(--ok);border-color:#3dcf9a59}.badge.warn{color:var(--warn);border-color:#f0c75e59}.badge.bad{color:var(--danger);border-color:#ff6b6b59}.error{color:var(--danger);margin:.5rem 0}.landing{min-height:100vh;display:grid;place-items:center;padding:2rem;position:relative;overflow:hidden}.landing:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,#0b141233,#0b1412bf),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%233dcf9a' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");animation:drift 28s linear infinite}@keyframes drift{0%{background-position:0 0,0 0}to{background-position:0 0,180px 120px}}.hero{position:relative;z-index:1;max-width:720px;text-align:left;animation:rise .8s ease both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hero .brand{font-size:clamp(2.8rem,8vw,4.6rem);line-height:.95;margin-bottom:1rem}.hero h1{font-family:var(--font-display);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:600;margin:0 0 .75rem;max-width:18ch}.hero p{color:var(--muted);max-width:36ch;margin:0 0 1.5rem;line-height:1.55}.chat-box{height:320px;overflow:auto;display:grid;gap:.55rem;margin-bottom:.75rem}.chat-msg{padding:.55rem .7rem;border-radius:8px;background:#00000040;border:1px solid var(--line)}.chat-msg .meta{color:var(--muted);font-size:.78rem;margin-bottom:.2rem}.banner{border:1px solid rgba(240,199,94,.35);background:#f0c75e14;color:var(--warn);padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem}@media(max-width:860px){.shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line)}.main{padding:1.1rem}}
