:root{--bg: #0e0b10;--panel: #171319;--panel-2: #1e1922;--line: #2c2431;--text: #f4eef6;--muted: #a394ad;--pink: #ec4899;--pink-dim: #7d2450;--green: #34d399;--amber: #fbbf24;--red: #f87171;--radius: 12px}@media (prefers-color-scheme: light){:root{--bg: #fdf7fb;--panel: #ffffff;--panel-2: #fbf2f8;--line: #f0dbe9;--text: #1e131b;--muted: #7d6a78;--pink: #db2777;--pink-dim: #fbcfe8}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,-apple-system,Segoe UI,Roboto,Inter,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--pink)}.app{max-width:1180px;margin:0 auto;padding:28px 22px 80px}@supports (padding: env(safe-area-inset-top)){.app{padding-top:calc(28px + env(safe-area-inset-top));padding-bottom:calc(80px + env(safe-area-inset-bottom));padding-left:calc(22px + env(safe-area-inset-left));padding-right:calc(22px + env(safe-area-inset-right))}}header.top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}.logo{font-size:20px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}.logo .dot{width:11px;height:11px;border-radius:50%;background:var(--pink);box-shadow:0 0 14px var(--pink)}.logo span{color:var(--muted);font-weight:400}.navwrap{margin-left:auto;position:relative}.nav-toggle{display:none}nav.tabs{display:flex;gap:4px;flex-wrap:wrap}nav.tabs a,nav.tabs button{background:transparent;border:1px solid transparent;color:var(--muted);padding:7px 14px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:500;text-decoration:none;line-height:1.5;font-family:inherit;display:inline-block}nav.tabs a:hover,nav.tabs button:hover{color:var(--text);background:var(--panel)}nav.tabs a.active,nav.tabs button.active{color:var(--text);background:var(--panel);border-color:var(--line)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.panel+.panel{margin-top:16px}.panel h2{margin:0 0 4px;font-size:15px;font-weight:650}.panel h2+p.hint{margin-top:0}.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.grid.two{grid-template-columns:1.4fr 1fr}@media (max-width: 860px){.grid.two{grid-template-columns:1fr}}.stat .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.stat .value{font-size:27px;font-weight:700;letter-spacing:-.02em;margin-top:6px}.stat .sub{color:var(--muted);font-size:12px;margin-top:2px}p.hint{color:var(--muted);font-size:12.5px;margin:6px 0 0}label.field{display:block;margin-bottom:16px}label.field>.name{font-weight:600;font-size:13px;display:block;margin-bottom:3px}label.field>.desc{color:var(--muted);font-size:12.5px;display:block;margin-bottom:7px}input,select,textarea,button{font:inherit;color:var(--text)}input[type=text],input[type=password],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:9px 11px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px #ec489929}textarea{min-height:190px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.switch{display:flex;align-items:center;gap:10px;cursor:pointer}.switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:40px;height:23px;border-radius:999px;background:var(--line);position:relative;cursor:pointer;transition:background .15s;flex:none}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}.switch input:checked{background:var(--pink-dim)}.switch input:checked:after{transform:translate(17px);background:var(--pink)}button.btn{background:var(--pink);border:none;color:#fff;font-weight:600;padding:9px 16px;border-radius:9px;cursor:pointer}button.btn:hover{filter:brightness(1.08)}button.btn:disabled{opacity:.5;cursor:default;filter:none}button.btn.ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}button.btn.danger{background:transparent;color:var(--red);border:1px solid var(--line)}button.link{background:none;border:none;color:var(--pink);cursor:pointer;padding:0;font-size:12.5px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.end{justify-content:flex-end}.spacer{flex:1}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:0 10px 9px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--panel-2)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.actions{text-align:right;white-space:nowrap}.table-wrap{overflow-x:auto}.tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}.tag.pink{color:var(--pink);border-color:var(--pink-dim)}.tag.green{color:var(--green)}.tag.amber{color:var(--amber)}.tag.red{color:var(--red)}.swatch{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:7px}.banner{border-radius:var(--radius);padding:13px 15px;margin-bottom:16px;border:1px solid var(--line);background:var(--panel);font-size:13px}.banner.error{border-color:var(--red);color:var(--red)}.banner.ok{border-color:var(--green);color:var(--green)}.banner code{background:var(--panel-2);padding:1px 5px;border-radius:4px}.empty{text-align:center;color:var(--muted);padding:34px 10px;font-size:13px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);color:var(--text);padding:11px 18px;border-radius:999px;font-size:13px;z-index:50;box-shadow:0 12px 34px #00000059}.toast.error{border-color:var(--red);color:var(--red)}.section-title{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:650;margin:26px 0 10px}.section-title:first-child{margin-top:0}pre.json{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:12px;overflow:auto;font-size:12px;margin:0}.tabbar{display:none}@media (max-width: 720px){.app{padding:20px 16px 96px}@supports (padding: env(safe-area-inset-bottom)){.app{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}header.top{gap:12px;margin-bottom:18px}.logo{font-size:18px}.logo span:not(.dot){display:none}.nav-toggle{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:8px 12px;border-radius:999px;font:inherit;font-size:13px;font-weight:550;cursor:pointer;-webkit-tap-highlight-color:transparent}.nav-toggle svg{width:15px;height:15px;color:var(--muted);transition:transform .16s ease}.navwrap.open .nav-toggle svg{transform:rotate(180deg)}nav.tabs{display:none}.navwrap.open nav.tabs{display:flex;flex-direction:column;gap:2px;position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:186px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px #00000038}.navwrap.open nav.tabs a{text-align:left;border-radius:10px;padding:10px 12px;font-size:14px}.tabbar{display:flex;position:fixed;z-index:45;left:0;right:0;bottom:0;background:var(--panel);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 26px #0000002e}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border-radius:12px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:550;line-height:1.2;-webkit-tap-highlight-color:transparent}.tabbar a.active{color:var(--pink);background:var(--panel-2)}.tabbar svg{width:22px;height:22px}.toast{bottom:78px}@supports (padding: env(safe-area-inset-bottom)){.toast{bottom:calc(78px + env(safe-area-inset-bottom))}}.row>input[type=search],.row>select{min-width:0}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}table{font-size:13px}}@media (max-width: 720px) and (display-mode: standalone){.app{padding-top:calc(20px + env(safe-area-inset-top,0px))}}
