:root{--bg:#0e0f12;--panel:#16181d;--border:#2a2d35;--text:#e8e8ea;--muted:#9a9ca6;--accent:#d6b36a;--accent-ink:#171310;--danger:#e5726a;--ok:#7ec48a}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,Noto Sans JP,sans-serif}a{color:var(--accent);text-decoration:none}.topbar{background:var(--panel);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:.04em;font-weight:700}.topbar .brand span{color:var(--accent)}.topbar .spacer{flex:1}.btn{border:1px solid var(--border);color:var(--text);cursor:pointer;font:inherit;background:0 0;border-radius:8px;padding:7px 14px}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:enabled{filter:brightness(1.08)}.tabs{gap:4px;display:flex}.tabs button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 10px}.tabs button.active{background:var(--bg);border-color:var(--border);color:var(--text)}.tabs button .dot{color:var(--accent);margin-left:4px}.mode-toggle{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.mode-toggle button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:6px 12px}.mode-toggle button.active{background:var(--accent);color:var(--accent-ink);font-weight:600}.workspace{height:calc(100vh - 53px);display:flex}.preview{background:#000;flex:1}.preview iframe{border:0;width:100%;height:100%}.fields{border-left:1px solid var(--border);background:var(--panel);width:380px;max-width:45vw;padding:14px;overflow-y:auto}.fields h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 0 12px;font-size:12px}.field{margin-bottom:14px}.field label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.field textarea{resize:vertical;background:var(--bg);width:100%;min-height:36px;color:var(--text);border:1px solid var(--border);font:inherit;border-radius:8px;padding:8px 10px}.field textarea:focus{border-color:var(--accent);outline:none}.field.dirty label:after{content:" • edited";color:var(--accent)}.statusline{color:var(--muted);font-size:12px}.statusline.ok{color:var(--ok)}.statusline.err{color:var(--danger)}.home{max-width:560px;margin:80px auto;padding:0 20px}.home h1{font-size:22px}.home h1 span{color:var(--accent)}.home .card{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:12px;margin-top:14px;padding:16px 18px;display:block}.home .card:hover{border-color:var(--accent)}.home .card .meta{color:var(--muted);margin-top:4px;font-size:12px}.muted{color:var(--muted)}.dash{max-width:920px;margin:48px auto;padding:0 20px}.dash h1{margin:0 0 28px;font-size:24px}.dash h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:32px 0 12px;font-size:12px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.tile{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:12px;flex-direction:column;gap:6px;min-height:110px;padding:18px;display:flex}a.tile:hover{border-color:var(--accent)}.tile .meta,.status-list .meta{color:var(--muted);font-size:12px}.tile.disabled{opacity:.55}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-self:flex-start;margin-top:auto;padding:2px 8px;font-size:11px}.status-list{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin:0;padding:0;list-style:none}.status-list li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.status-list li:last-child{border-bottom:0}.status-list a{color:var(--text)}.status-list .meta{margin-left:auto}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot.up{background:var(--ok)}.dot.down{background:var(--danger)}.ok{color:var(--ok)}.err{color:var(--danger)}.links{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:640px){.topbar{flex-wrap:wrap}.fields{width:100%;max-width:none}}
