*{box-sizing:border-box}body{margin:0}:root{--bg:#f4f6fa;--card:#fff;--border:#e3e8ef;--text:#1a2233;--muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--error-bg:#fef2f2;--error-text:#b91c1c;--warn-bg:#fffbeb;--warn-text:#b45309}body{background:var(--bg);color:var(--text);font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif}.app-header{background:var(--card);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:24px;padding:10px 24px;display:flex;position:sticky;top:0}.app-header .logo{color:var(--primary);font-size:18px;font-weight:700}.app-header nav{flex:1;gap:4px;display:flex}.app-header nav button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:14px}.app-header nav button.active{color:var(--primary);background:#eef2ff;font-weight:600}.user-chip{align-items:center;gap:8px;font-size:14px;display:flex}.user-chip img{border-radius:50%}.user-chip .role{color:var(--primary);font-size:12px}.page{flex-direction:column;gap:16px;max-width:1100px;margin:24px auto;padding:0 16px;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.card-header h3{margin:0;font-size:15px}.metrics{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.badge{border-radius:999px;padding:2px 8px;font-size:12px}.badge.warn{background:var(--warn-bg);color:var(--warn-text)}.badge.error{background:var(--error-bg);color:var(--error-text)}.badge.ok{color:#047857;background:#ecfdf5}.nl-input{border:1px solid var(--border);resize:vertical;border-radius:8px;width:100%;padding:12px;font-family:inherit;font-size:15px}.nl-input:focus{outline:2px solid var(--primary);border-color:#0000}.actions{align-items:center;gap:8px;margin-top:12px;display:flex}button.primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600}button.primary:hover:not(:disabled){background:var(--primary-hover)}button.primary:disabled{opacity:.5;cursor:default}button.secondary{background:var(--card);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:9px 18px;font-family:inherit;font-size:14px}.table-wrap{border:1px solid var(--border);border-radius:8px;max-height:480px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:320px;padding:6px 10px;overflow:hidden}th{background:#f8fafc;position:sticky;top:0}.error-box{background:var(--error-bg);color:var(--error-text);white-space:pre-wrap;word-break:break-all;border-radius:8px;padding:12px;font-size:13px}.muted{color:var(--muted);font-size:13px}.cm-editor{border:1px solid var(--border);border-radius:8px;font-size:13px}.cm-editor.cm-focused{outline:2px solid var(--primary)}.login-center{text-align:center;margin-top:18vh}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.grid-schema{grid-template-columns:minmax(280px,1fr) 2fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.grid-schema{grid-template-columns:1fr}}.grid-2:has(>:only-child){grid-template-columns:1fr}@media (width<=900px){.grid-2{grid-template-columns:1fr}}.nl-input.mono{font-family:JetBrains Mono,D2Coding,ui-monospace,monospace;font-size:13px;line-height:1.6}select{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-family:inherit;font-size:13px}
