@import url("https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap");:root{--primary:#1d4ed8;--background:#eef2f7;--card:#ffffff;--border:#e5e7eb;--foreground:#111827;--muted-foreground:#6b7280;--muted:#f3f4f6;--accent:#f0f4ff}*{box-sizing:border-box;margin:0}body{font-family:Instrument Sans,ui-sans-serif,system-ui,sans-serif;background:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;font-size:14px}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}.mono{font-family:JetBrains Mono,monospace}.shell{display:flex;min-height:100vh}.sidebar{width:224px;flex-shrink:0;background:var(--card);border-right:1px solid var(--border);height:100vh;position:-webkit-sticky;position:sticky;top:0;display:flex;flex-direction:column;padding:16px 12px}.main{flex:1 1;min-width:0;overflow-y:auto}.page{padding:24px;max-width:56rem;margin:0 auto;display:flex;flex-direction:column;gap:20px}.page.wide{max-width:72rem}.page.narrow{max-width:42rem}.logo-block{display:flex;align-items:center;gap:8px;padding:4px 8px 16px}.logo-block svg{width:28px;height:28px}.logo-block b{font-weight:600;font-size:15px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:none;background:none;color:var(--muted-foreground);font-size:13.5px;text-align:start}.nav-item:hover{background:color-mix(in srgb,var(--accent) 60%,white);color:var(--foreground)}.nav-item.active{background:var(--accent);color:var(--primary);font-weight:500}.nav-item svg{width:16px;height:16px;flex-shrink:0}.nav-item .navbadge{-webkit-margin-start:auto;margin-inline-start:auto;background:var(--primary);color:white;font-family:JetBrains Mono,monospace;font-size:10.5px;padding:1px 7px;border-radius:999px}.subnav{margin-left:12px;padding-left:12px;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.subnav .nav-item{border-radius:8px;padding:8px 12px;font-size:12px}.user-block{margin-top:auto;border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.user-row{gap:10px;padding:0 8px}.avatar,.user-row{display:flex;align-items:center}.avatar{width:32px;height:32px;border-radius:999px;flex-shrink:0;background:color-mix(in srgb,var(--primary) 10%,white);color:var(--primary);justify-content:center;font-size:12px;font-weight:600}.user-row .uname{font-size:13px;font-weight:500;line-height:1.2}.user-row .urole{font-size:11px;color:var(--muted-foreground)}.topbar-m{display:none}@media (max-width:767px){.sidebar{display:none}.topbar-m{display:flex;align-items:center;justify-content:space-between;background:var(--card);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:30;padding:10px 16px}.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}.drawer{position:fixed;top:0;bottom:0;left:0;width:256px;z-index:50;background:var(--card);padding:16px 12px;display:flex;flex-direction:column;overflow-y:auto}.page{padding:16px}}h1{font-size:20px;font-weight:600}.sub{font-size:13px;color:var(--muted-foreground);margin-top:2px}.section-h{font-weight:500}.caption{font-size:12px}.caption,.label-mono{color:var(--muted-foreground)}.label-mono{font-family:JetBrains Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px}.card.tight{padding:0;overflow:hidden}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:start;font-family:JetBrains Mono,monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);font-weight:500;border-bottom:1px solid var(--border)}td,th{padding:12px 16px}td{border-bottom:1px solid var(--muted);vertical-align:middle}tr:last-child td{border-bottom:none}tr.rowlink{cursor:pointer}tr.rowlink:hover{background:color-mix(in srgb,var(--accent) 50%,white)}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:500;padding:3px 9px;border-radius:8px;white-space:nowrap}.badge.blue{background:#eff6ff;color:#1d4ed8}.badge.green{background:#f0fdf4;color:#15803d}.badge.amber{background:#fffbeb;color:#b45309}.badge.red{background:#fef2f2;color:#b91c1c}.badge.orange{background:#fff7ed;color:#c2410c}.badge.purple{background:#faf5ff;color:#7e22ce}.badge.gray{background:#f3f4f6;color:#6b7280}.conf{font-family:JetBrains Mono,monospace;font-size:11.5px;padding:2px 6px;border-radius:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;padding:9px 16px;font-size:13.5px;font-weight:500;border:1px solid transparent;background:var(--primary);color:white}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:default}.btn.outline{background:var(--card);color:var(--foreground);border-color:var(--border)}.btn.outline:hover{background:var(--accent);filter:none}.btn.danger{background:#dc2626}.btn.danger-outline{background:var(--card);color:#b91c1c;border-color:#fecaca}.btn.green{background:#16a34a}.btn.purple{background:#9333ea}.btn.sm{padding:6px 12px;font-size:12px;border-radius:8px}.btn svg{width:14px;height:14px}.linkbtn{background:none;border:none;color:var(--primary);font-size:12.5px;font-weight:500;padding:0}label.field{display:block;margin-bottom:14px}label.field>span{display:block;font-size:12.5px;font-weight:500;color:var(--muted-foreground);margin-bottom:5px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=time],select,textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--foreground)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:var(--primary)}.progress-track{background:var(--muted);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--primary);height:100%;border-radius:999px;transition:width .5s ease}.inline-confirm{margin-top:8px;padding:12px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;font-size:13px}.inline-confirm p{color:#991b1b;margin-bottom:8px}.empty{text-align:center;color:var(--muted-foreground);padding:40px 16px;font-size:13.5px}.divide>*+*{border-top:1px solid var(--muted)}.tabs{display:inline-flex;background:var(--muted);padding:4px;border-radius:12px;gap:2px}.tabs button{border:none;background:none;padding:7px 14px;border-radius:9px;font-size:13px;font-weight:500;color:var(--muted-foreground)}.tabs button.active{background:white;color:var(--foreground);box-shadow:0 1px 2px rgba(0,0,0,.06)}.toggle{width:36px;height:20px;border-radius:999px;border:none;position:relative;background:#e5e7eb;transition:background .15s}.toggle.on{background:var(--primary)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:white;transition:transform .15s}.toggle.on:after{transform:translateX(16px)}.toggle:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:white;border-radius:16px;border:1px solid var(--border);padding:24px;width:100%;max-width:28rem;box-shadow:0 20px 40px rgba(0,0,0,.15)}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:640px){.grid2{grid-template-columns:1fr}}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}@media (min-width:768px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.icon-tile{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center}.icon-tile svg{width:16px;height:16px}.dotline,.timeline-item{position:relative}.timeline-item{display:flex;gap:12px;padding:8px 0}.timeline-item .ticon{width:30px;height:30px;border-radius:999px;flex-shrink:0;z-index:1;display:flex;align-items:center;justify-content:center}.timeline-item .ticon svg{width:14px;height:14px}.timeline-item:not(:last-child):before{content:"";position:absolute;left:15px;top:38px;bottom:-8px;width:1px;background:var(--border)}.skeleton{background:var(--muted);border-radius:8px;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}