@font-face{font-family:Bounded;src:url(/assets/Bounded-Regular-C7t67IZ7.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cera Pro;src:url(/assets/CeraPro-Light-CGKJgxrp.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Cera Pro;src:url(/assets/CeraPro-Regular-BdICyKZM.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cera Pro;src:url(/assets/Cera-Pro-Bold-95VPKAof.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--primary: #0b243f;--accent1: #0a6fb7;--accent2: #27bcd0;--accent3: #7258a5;--accent4: #b8539f;--bg-page: #f8fafc;--bg-soft: #f7fcfe;--bg-cyan: #e7f6f8;--surface: #ffffff;--line: #d5e7ee;--border: #e2e8f0;--ink: #0b243f;--ink-2: #1c2c4c;--ink-muted: #5a6a87;--teal: var(--accent2);--teal-dark: #12848a;--teal-soft: #aee4e4;--danger: #c0566b;--warning: #b45309;--success: #166534;--radius: 14px;--radius-sm: 10px;--sidebar-width: 248px;--font-display: "Bounded", "Cera Pro", system-ui, sans-serif;--font-body: "Cera Pro", system-ui, sans-serif;--font-size-base: 17px;--shadow-sm: 0 1px 2px rgba(11, 36, 63, .05);--shadow-md: 0 10px 28px rgba(11, 36, 63, .08)}[data-theme=dark]{--bg-page: #0f172a;--bg-soft: #111827;--bg-cyan: #1e293b;--surface: #111827;--line: #334155;--border: #1e293b;--ink: #e2e8f0;--ink-2: #f1f5f9;--ink-muted: #94a3b8;--teal: #38bdf8;--teal-dark: #0ea5e9;--teal-soft: #0ea5e9;--danger: #f87171;--warning: #fbbf24;--success: #4ade80;--shadow-sm: none;--shadow-md: none}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:var(--font-size-base);background:var(--bg-page);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--teal-dark);text-decoration:none}a:hover{color:var(--teal)}.layout{max-width:1120px;margin:0 auto;padding:24px}.layout--centered{min-height:100vh;display:flex;align-items:center;justify-content:center}.app-shell{min-height:100vh;background:var(--bg-page)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);z-index:50;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);box-shadow:var(--shadow-sm);transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:translate(0)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;border:none;padding:0;background:#0b243f59;cursor:pointer}.sidebar-brand{padding:22px 18px 16px;border-bottom:1px solid var(--border)}.sidebar-brand-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--teal-dark);letter-spacing:.02em}.sidebar-brand-sub{margin-top:4px;font-size:13px;color:var(--ink-muted)}.sidebar-user{padding:14px 18px;border-bottom:1px solid var(--border)}.sidebar-user-name{font-size:14px;font-weight:700;color:var(--ink)}.sidebar-user-meta{margin-top:4px;font-size:12px;color:var(--ink-muted);line-height:1.4}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:4px;padding:14px 10px;overflow-y:auto}.sidebar-link{display:block;padding:10px 12px;border-radius:var(--radius-sm);color:var(--ink-2);font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease}.sidebar-link:hover{background:var(--bg-cyan);color:var(--teal-dark)}.sidebar-link.active{background:var(--teal);color:#fff}.sidebar-link.active:hover{color:#fff}.sidebar-link--button{width:100%;border:none;background:transparent;cursor:pointer;text-align:left;font:inherit}.sidebar-footer{padding:12px 10px 18px;border-top:1px solid var(--border)}.main-area{min-height:100vh;min-width:0}.mobile-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.menu-toggle{width:40px;height:40px;border:none;border-radius:var(--radius-sm);background:var(--bg-cyan);color:var(--teal-dark);font-size:18px;cursor:pointer}.mobile-topbar-title{font-size:15px;font-weight:700;color:var(--ink)}.main-content{max-width:1120px;margin:0 auto;padding:24px 20px 32px}@media (min-width: 900px){.sidebar{transform:translate(0)}.sidebar-overlay{display:none}.main-area{margin-left:var(--sidebar-width)}.mobile-topbar{display:none}.main-content{padding:28px 32px 40px}}[data-theme=dark] .sidebar-overlay{background:#0206178c}[data-theme=dark] .sidebar-link.active{background:var(--teal-dark)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.btn{background:var(--teal);color:#fff;border:none;border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-body)}.btn.secondary{background:var(--bg-cyan);color:var(--teal-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);margin-bottom:10px;font:inherit}label{display:block;font-size:13px;color:var(--ink-muted);margin-bottom:4px;font-weight:600}.table,.data-table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td,.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--bg-cyan);color:var(--teal-dark)}.badge.warn{background:#fff3cf;color:#6f5410}.badge.ok{background:#dcfce7;color:var(--success)}.error{color:var(--danger);font-size:14px}.success{color:var(--success);font-size:14px}.muted{color:var(--ink-muted);font-size:14px}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{padding:14px;border-radius:12px;background:var(--bg-cyan)}.stat strong{display:block;font-size:24px;margin-top:4px;font-family:var(--font-display)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 720px){.form-row{grid-template-columns:1fr}}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;align-items:center}pre.preview{white-space:pre-wrap;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;font-size:13px;max-height:360px;overflow:auto}[data-theme=dark] .btn.secondary{background:#475569;color:#fff}[data-theme=dark] .badge.warn{background:#78350f;color:#fde68a}[data-theme=dark] .badge.ok{background:#14532d;color:#bbf7d0}
