:root{--c-bg:#f5f6f8;--c-panel:#fff;--c-border:#e2e4e9;--c-text:#1c1e21;--c-dim:#6b7078;--c-brand:#4f46e5;--c-brand-text:#fff;--c-danger:#dc2626;--c-ok:#15803d;font-family:PingFang SC,Helvetica Neue,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--c-bg);color:var(--c-text);margin:0;font-size:14px}button{font:inherit;cursor:pointer}input,select{font:inherit;border:1px solid var(--c-border);border-radius:6px;padding:6px 10px}.shell{min-height:100vh;display:flex}.sidebar{color:#cfd2d8;background:#17181c;flex-shrink:0;width:220px;padding:16px 0}.sidebar .brand{color:#fff;padding:0 20px 16px;font-size:15px;font-weight:600}.sidebar a{color:#cfd2d8;padding:9px 20px;text-decoration:none;display:block}.sidebar a.active{color:#fff;border-left:3px solid var(--c-brand);background:#26272e}.sidebar .who{color:#8a8f98;margin-top:auto;padding:16px 20px 0;font-size:12px}.main{flex:1;min-width:0;padding:24px 32px}.page-title{margin:0 0 16px;font-size:18px;font-weight:600}.panel{background:var(--c-panel);border:1px solid var(--c-border);border-radius:8px;margin-bottom:16px;padding:16px 20px}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--c-border);vertical-align:top;padding:8px 10px}th{color:var(--c-dim);font-size:12px;font-weight:500}.tag{color:var(--c-dim);background:#eef0f3;border-radius:10px;padding:1px 8px;font-size:12px;display:inline-block}.tag.active{color:var(--c-ok);background:#dcfce7}.tag.suspended,.tag.disabled{color:var(--c-danger);background:#fee2e2}.tag.draft{color:#b45309;background:#fef3c7}.btn{background:var(--c-brand);color:var(--c-brand-text);border:none;border-radius:6px;padding:7px 14px}.btn.secondary{color:var(--c-text);background:#eef0f3}.btn.danger{background:var(--c-danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.small{padding:3px 10px;font-size:12px}.form-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.error-text{color:var(--c-danger);margin:8px 0}.dim{color:var(--c-dim)}.state-page{background:var(--c-panel);border:1px solid var(--c-border);text-align:center;border-radius:10px;max-width:520px;margin:8vh auto 0;padding:32px 36px}.state-page .state-code{color:var(--c-brand);margin-bottom:12px;font-size:44px;font-weight:700;line-height:1}.state-page .state-actions{justify-content:center;gap:10px;margin-top:20px;display:flex}.state-page a.btn{text-decoration:none;display:inline-block}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--c-panel);border:1px solid var(--c-border);border-radius:10px;width:360px;padding:32px 36px}.login-card h1{margin:0 0 4px;font-size:18px}.login-card .sub{color:var(--c-dim);margin-bottom:20px;font-size:13px}.login-card label{color:var(--c-dim);margin-bottom:12px;font-size:13px;display:block}.login-card input{width:100%;margin-top:4px}.login-card input[type=color]{width:44px;padding:2px}.login-card .btn{width:100%;margin-top:8px}.login-logo{object-fit:contain;max-width:220px;max-height:64px;margin:0 auto 14px;display:block}.login-card a{color:var(--c-brand)}.drawer-backdrop{z-index:50;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{border-radius:0;width:min(420px,92vw);min-height:100vh;margin:0;padding:24px 22px;overflow:auto}.drawer dl{grid-template-columns:84px 1fr;gap:8px 12px;margin:12px 0;display:grid}.drawer dt{color:var(--c-dim)}.drawer dd{word-break:break-all;margin:0}@media (prefers-color-scheme:dark){:root{--c-bg:#101216;--c-panel:#1a1d22;--c-border:#2a2e35;--c-text:#e8eaee;--c-dim:#9aa1ab}.sidebar{background:#0b0c0f}.btn.secondary{color:var(--c-text);background:#262a31}.tag{background:#262a31}.tag.active{background:#14351f}.tag.suspended,.tag.disabled{background:#3a1414}.tag.draft{background:#3a2d10}}.modal-backdrop{z-index:60;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--c-panel);border:1px solid var(--c-border);border-radius:10px;width:min(620px,92vw);max-height:88vh;padding:20px 22px;overflow:auto}.modal textarea{border:1px solid var(--c-border);border-radius:6px;width:100%;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
