*{box-sizing:border-box}:root{--ink: #1f2430;--muted: #6e7380;--bg: #f4f6fa;--panel: #ffffff;--line: #e4e7ef;--brand: #6e1f8d;--brand-2: #3b1f67;--brand-soft: #efe2f5;--ok: #1e9e68;--warn: #f18f01;--danger: #d64545}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 0%,#f8eefc,#f4f6fa 45%,#eef2f9)}h1,h2,h3,p{margin:0}p,small,.muted{color:var(--muted)}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;outline-color:var(--brand);background:#fff}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}label{display:block;margin:10px 0 6px;font-size:13px;font-weight:700}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;transition:transform .15s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff}.btn.secondary{background:var(--brand-soft);color:var(--brand-2)}.btn.full{width:100%;margin-top:12px}.btn.mini{padding:6px 10px;font-size:12px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:18px;background:linear-gradient(140deg,#2d1548,#6e1f8d 45%,#9b3fb4)}.login-card{width:min(480px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 60px #1608294d}.login-card h1{font-size:28px;margin:8px 0 10px}.login-card p{margin-bottom:14px}.logo-wrap{display:flex;justify-content:center;align-items:center}.logo-wrap.compact{justify-content:flex-start}.logo-image{width:min(220px,62vw);height:auto;object-fit:contain}.logo-wrap.compact .logo-image{width:min(160px,34vw)}.app-shell{min-height:100vh;display:flex}.sidebar{width:272px;flex-shrink:0;background:linear-gradient(180deg,#281040,#3a1760 40%,#59238f);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:14px;position:fixed;inset:0 auto 0 0;z-index:20;transform:translate(0);transition:transform .25s ease}.sidebar-brand{border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:10px}.sidebar nav{display:grid;gap:6px;overflow:auto}.sidebar nav button,.sidebar-bottom button{border:0;border-radius:10px;text-align:left;color:#fff;background:transparent;padding:11px 12px;font-weight:700}.sidebar nav button.active,.sidebar nav button:hover,.sidebar-bottom button:hover{background:#ffffff29}.sidebar-bottom{margin-top:auto;display:grid;gap:8px;font-size:13px}.main-view{margin-left:272px;width:calc(100% - 272px);min-width:0}.topbar{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);background:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:15}.topbar-logo{display:flex;align-items:center}.topbar-logo .logo-image{width:84px}.topbar h2{font-size:20px}.spacer{flex:1}.pill{border-radius:999px;padding:6px 10px;font-size:12px;background:#eef2f8}.mobile-toggle{display:none;border:0;border-radius:10px;padding:8px 11px;background:var(--brand-soft);color:var(--brand-2);font-weight:700}.content{padding:18px;display:grid;gap:14px}.alert,.notice{border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.alert{background:#ffeaea;color:var(--danger)}.notice{background:#ebfff5;color:var(--ok)}.alert button,.notice button{border:0;background:transparent;font-weight:700}.panel-section{display:grid;gap:14px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.page-head h1{font-size:24px}.dashboard-header{display:flex;align-items:center;gap:18px;background:linear-gradient(120deg,#fff,#f6f0fb);border:1px solid #eadcf4;border-radius:14px;padding:14px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:4px}.metric strong{font-size:24px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:10px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar.stack{display:grid;gap:8px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid #d9c3e6;background:#fff;color:#59238f;border-radius:999px;padding:7px 12px;font-weight:700}.chip.active{background:#6e1f8d;color:#fff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;white-space:nowrap}.empty{color:var(--muted)}.tag-entry{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:9px 10px}.explorer-layout{display:grid;grid-template-columns:320px 1fr;gap:14px}.op-list{max-height:72vh;overflow:auto}.op{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;display:grid;grid-template-columns:72px 1fr;gap:8px;text-align:left;margin-bottom:8px}.op.chosen{border-color:#b686cc;background:#fbf6ff}.op b,.op small{display:block}.method{border-radius:8px;text-align:center;font-size:11px;font-weight:800;padding:4px 6px;color:#fff;text-transform:uppercase}.method.get{background:#157347}.method.post{background:#0b6bcb}.method.put,.method.patch{background:#ab6500}.method.delete{background:#b4232c}.operation-panel pre{background:#151722;color:#d9def1;padding:10px;border-radius:10px;overflow:auto;font-size:12px}.response{border-top:1px solid var(--line);padding-top:10px}.settings{max-width:680px}.settings a{display:block;margin-top:6px}@media(max-width:1199px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.explorer-layout{grid-template-columns:1fr}}@media(max-width:991px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-view{margin-left:0;width:100%}.mobile-toggle{display:inline-block}}@media(max-width:767px){.topbar{flex-wrap:wrap}.topbar-logo .logo-image{width:68px}.pill{order:4}.dashboard-header{flex-direction:column;align-items:flex-start}.metrics{grid-template-columns:1fr}th,td{font-size:13px}}
