:root{--bg: #f6f4ef;--fg: #16150f;--muted: #6d6a60;--line: #e4e0d4;--accent: #0f6b5c;--accent-fg: #f4fffb;--card: #fffcf7;--sidebar: #f3f0e8;--danger: #b42318;--ok: #0f6b5c;--warn: #9a6700;--sidebar-w: 248px;--header-h: 56px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #14130f;--fg: #f3f0e7;--muted: #9c988c;--line: #2a2822;--accent: #5ecfba;--accent-fg: #06261c;--card: #1a1914;--sidebar: #12110e;--danger: #f97066;--ok: #5ecfba;--warn: #f5c518}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font:15px/1.5 Sora,Segoe UI,sans-serif;background:radial-gradient(ellipse 80% 40% at 100% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent),var(--bg);color:var(--fg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;gap:.4rem;justify-content:center;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:10px;padding:.55rem .95rem;cursor:pointer;font-weight:600;min-height:44px}.btn:hover{border-color:var(--accent);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn.danger{color:var(--danger)}.btn.ghost{background:transparent}.input,.textarea,.select{width:100%;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:.65rem .8rem;color:var(--fg)}.textarea{min-height:18rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.9rem}.label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem}.field{margin-bottom:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.25rem}.muted{color:var(--muted)}.error{background:color-mix(in srgb,var(--danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger);padding:.75rem 1rem;border-radius:10px;margin-bottom:1rem}.badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;border:1px solid var(--line);color:var(--muted);background:var(--card)}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.badge.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}.badge.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);padding:1rem .85rem;display:flex;flex-direction:column;gap:.35rem;position:sticky;top:0;height:100vh;overflow:auto}.sidebar .brand{font-weight:700;letter-spacing:-.03em;color:var(--fg);padding:.4rem .65rem 1rem;font-size:1.1rem}.sidebar .brand span{color:var(--accent)}.sidebar a.nav-link,.sidebar button.nav-link{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;border:0;background:transparent;color:var(--muted);border-radius:10px;padding:.55rem .7rem;cursor:pointer;font-weight:500;min-height:44px}.sidebar a.nav-link:hover,.sidebar button.nav-link:hover{color:var(--fg);background:color-mix(in srgb,var(--card) 70%,transparent);text-decoration:none}.sidebar a.nav-link.active{color:var(--fg);background:var(--card);border:1px solid var(--line)}.nav-group{margin-top:.75rem;padding:0 .7rem .25rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--header-h);display:flex;align-items:center;gap:.75rem;padding:0 1.25rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.topbar .menu-btn{display:none}.content{padding:1.25rem 1.5rem 2.5rem;width:min(1100px,100%);margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.page-header h1{margin:0;font-size:1.55rem;letter-spacing:-.03em}.page-header .actions{display:flex;gap:.5rem;flex-wrap:wrap}.skeleton{background:linear-gradient(90deg,var(--line),color-mix(in srgb,var(--card) 60%,var(--line)),var(--line));background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;border-radius:8px;min-height:1rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:50;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 2rem))}.toast{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem 1rem;box-shadow:0 8px 24px color-mix(in srgb,#000 12%,transparent)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0873;display:grid;place-items:center;z-index:40;padding:1rem}.dialog{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.25rem}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0873;z-index:30}.drawer{position:fixed;inset:0 auto 0 0;width:min(var(--sidebar-w),86vw);background:var(--sidebar);border-right:1px solid var(--line);z-index:31;padding:1rem .85rem;overflow:auto}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.topbar .menu-btn{display:inline-flex}.content{padding:1rem 1rem 5rem}}
