@import "https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Inter:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@500;600&display=swap";:root{--color-primary:#d9251e;--color-primary-dark:#b31c16;--color-primary-light:#fbeae9;--color-accent:#1e9e63;--color-accent-light:#e7f7ef;--color-info:#2563eb;--color-info-light:#eaf1fe;--color-warning:#b45309;--color-warning-light:#fdf3e0;--color-danger:#dc2626;--color-danger-light:#fdeaea;--color-bg:#f5f6f8;--color-surface:#fff;--color-border:#e7e8ec;--color-text:#14151a;--color-text-muted:#6b7280;--color-text-faint:#9195a0;--font-display:"Sora", "Inter", sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-pill:999px;--shadow-sm:0 1px 2px #1b1d280a;--shadow-md:0 8px 24px #1b1d280f;--shadow-lg:0 16px 40px #1b1d281a;--sidebar-w:240px;--topbar-h:68px;--bottomnav-h:64px}html.dark{--color-primary:#e4433d;--color-primary-dark:#f16560;--color-primary-light:#3a1917;--color-accent-light:#123829;--color-info-light:#16233f;--color-warning-light:#3a2a0e;--color-danger-light:#3a1817;--color-bg:#121214;--color-surface:#1b1b1f;--color-border:#2c2c32;--color-text:#ecedf6;--color-text-muted:#9a9dbe;--color-text-faint:#6c6f94;--shadow-sm:0 1px 2px #0003;--shadow-md:0 8px 24px #0000004d;--shadow-lg:0 16px 40px #0006}*{box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4,h5,.font-display{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-text);margin:0 0 4px;font-weight:700}h1{font-size:26px}h2{font-size:21px}h3{font-size:17px}p{margin:0 0 8px}.text-muted{color:var(--color-text-muted)}.text-faint{color:var(--color-text-faint)}.font-mono{font-family:var(--font-mono)}a{color:var(--color-primary);text-decoration:none}a:not(.btn):hover{color:var(--color-primary-dark)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;overflow:hidden}.sidebar-nav{flex-direction:column;flex:auto;gap:4px;margin:0 -4px;padding:0 4px;display:flex;overflow-y:auto}.app-content{flex-direction:column;height:100vh;display:flex;overflow-y:auto}.sidebar-brand{font-family:var(--font-display);align-items:center;gap:10px;padding:6px 10px 22px;font-size:18px;font-weight:800;display:flex}.sidebar-brand .brand-mark{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-primary), var(--color-accent));flex-shrink:0;width:32px;height:32px}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);padding:16px 12px 6px;font-size:11px;font-weight:700}.nav-link{border-radius:var(--radius-sm);color:var(--color-text-muted);align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-link .nav-icon{flex-shrink:0;place-items:center;width:20px;height:20px;display:grid}.nav-link:hover{background:var(--color-bg);color:var(--color-text)}.nav-link.active{background:var(--color-primary-light);color:var(--color-primary-dark);font-weight:600}.sidebar-footer{border-top:1px solid var(--color-border);margin-top:auto;padding-top:12px}.topbar{height:var(--topbar-h);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.topbar-search{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-pill);width:320px;max-width:40vw;color:var(--color-text-faint);align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:flex;position:relative}.global-search-results{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:420px;max-width:85vw;max-height:60vh;box-shadow:var(--shadow-lg);z-index:40;text-align:left;padding:8px;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto}.topbar-search input{font-family:var(--font-body);width:100%;color:var(--color-text);background:0 0;border:none;outline:none;font-size:14px}.topbar-actions{align-items:center;gap:16px;display:flex}.icon-btn{border-radius:var(--radius-sm);background:var(--color-bg);border:1px solid var(--color-border);width:38px;height:38px;color:var(--color-text-muted);cursor:pointer;place-items:center;display:grid;position:relative}.icon-btn .dot{background:var(--color-danger);border:2px solid var(--color-surface);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.avatar{border-radius:var(--radius-pill);background:linear-gradient(135deg, var(--color-accent), var(--color-primary));color:#fff;width:38px;height:38px;font-family:var(--font-display);place-items:center;font-size:14px;font-weight:700;display:grid}.main{flex:1 0 auto;width:100%;max-width:1320px;padding:24px}.app-footer{border-top:1px solid var(--color-border);color:var(--color-text-faint);text-align:center;flex-shrink:0;padding:14px 24px;font-size:12px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.grid{gap:18px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.col-span-2{grid-column:span 2}@media (width<=1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.col-span-2{grid-column:span 1}}.filter-layout{grid-template-columns:240px 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.filter-layout{grid-template-columns:1fr}}.filter-toolbar{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-start;align-items:center;gap:12px;display:flex}.filter-summary{color:var(--color-text-muted);font-size:13px}.filter-toolbar .btn{align-items:center;gap:6px;display:inline-flex}.filter-layout--collapsed{grid-template-columns:1fr}.filter-count{background:var(--color-primary);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px}.card-dark{border-radius:var(--radius-md);background:#14151a;border:1px solid #14151a;padding:20px}.card-dark h2{color:#fff}.card-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.quick-action-dark{border-radius:var(--radius-sm);color:#fff;background:#ffffff14;align-items:center;gap:12px;padding:10px 12px;font-size:13.5px;font-weight:600;transition:background .15s;display:flex}.quick-action-dark:hover{color:#fff;background:#ffffff29}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px 20px 20px;transition:box-shadow .2s,transform .2s;position:relative;overflow:visible}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-badge{border-radius:var(--radius-md);width:44px;height:44px;box-shadow:var(--shadow-md);color:#fff;place-items:center;display:grid;position:absolute;top:-16px;left:20px}.stat-badge.is-primary{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark))}.stat-badge.is-accent{background:linear-gradient(135deg, var(--color-accent), #1ca490)}.stat-badge.is-info{background:linear-gradient(135deg, var(--color-info), #1d4ed8)}.stat-badge.is-warning{background:linear-gradient(135deg, var(--color-warning), #f59e0b)}.stat-badge.is-danger{background:linear-gradient(135deg, var(--color-danger), #e14545)}.stat-card-flag{border-radius:var(--radius-pill);border:1px solid var(--color-surface);white-space:nowrap;padding:4px 10px;font-size:11px;font-weight:700;position:absolute;top:-12px;right:16px}.stat-card-flag.is-primary{background:var(--color-primary-light);color:var(--color-primary)}.stat-card-flag.is-accent{background:var(--color-accent-light);color:var(--color-accent)}.stat-card-flag.is-info{background:var(--color-info-light);color:var(--color-info)}.stat-card-flag.is-warning{background:var(--color-warning-light);color:var(--color-warning)}.stat-card-flag.is-danger{background:var(--color-danger-light);color:var(--color-danger)}.stat-card-flag.is-neutral{background:var(--color-bg);color:var(--color-text-muted)}.stat-card .stat-label{color:var(--color-text-muted);margin-top:20px;font-size:13px;font-weight:500}.stat-card .stat-value{font-family:var(--font-mono);margin-top:4px;font-size:26px;font-weight:600}.stat-card .stat-delta{border-radius:var(--radius-pill);align-items:center;gap:4px;margin-top:8px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex}.stat-delta.up{color:#1ca490;background:var(--color-accent-light)}.stat-delta.down{color:var(--color-danger);background:var(--color-danger-light)}.btn{font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-outline{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-ghost{color:var(--color-text-muted);background:0 0}.btn-ghost:hover{background:var(--color-bg);color:var(--color-text)}.btn-sm{padding:7px 12px;font-size:13px}.pill{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill-success{background:var(--color-accent-light);color:#1ca490}.pill-warning{background:var(--color-warning-light);color:#b5730b}.pill-danger{background:var(--color-danger-light);color:var(--color-danger)}.pill-neutral{background:var(--color-bg);color:var(--color-text-muted)}.table-wrap{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);border-bottom:1px solid var(--color-border);padding:10px 14px;font-size:12px;font-weight:600}.data-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:14px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-bg)}.field{margin-bottom:16px}.field label{color:var(--color-text);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);outline:none;padding:10px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.field input[type=checkbox],.field input[type=radio]{width:auto}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.field .hint{color:var(--color-text-muted);margin-top:4px;font-size:12px}[x-cloak]{display:none!important}.searchable-select{position:relative}.searchable-select-trigger{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:flex}.searchable-select-trigger:hover{border-color:var(--color-primary)}.searchable-select-trigger .text-faint{font-weight:400}.searchable-select-dropdown{z-index:30;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.searchable-select-search{border:none;border-bottom:1px solid var(--color-border);width:100%;font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);outline:none;padding:10px 14px;font-size:14px}.searchable-select-options{flex:auto;min-height:0;padding:4px;overflow-y:auto}.searchable-select-option{border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;padding:9px 12px;font-size:14px}.searchable-select-option:hover,.searchable-select-option.is-highlighted{background:var(--color-bg)}.searchable-select-empty{padding:12px;font-size:13px}@media (width<=1024px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:16px 16px calc(var(--bottomnav-h) + 24px)}.topbar-search{display:none}.bottom-nav{height:var(--bottomnav-h);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:20;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-link{border-radius:var(--radius-sm);flex-direction:column;gap:3px;padding:6px 10px;font-size:11px}.mobile-more-overlay{z-index:40;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-more-panel{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:80vh;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.mobile-more-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.mobile-more-body{padding:8px 14px 16px;overflow-y:auto}.mobile-more-body .nav-link{flex-direction:row;justify-content:flex-start;padding:10px 12px;font-size:14px}}@media (width>=1025px){.bottom-nav{display:none}}@media print{.sidebar,.topbar,.bottom-nav,.app-footer,[data-print-hide]{display:none!important}.app-content{margin:0!important}.main{padding:0!important}}.icon-btn .count-badge{background:var(--color-danger);color:#fff;text-align:center;border:2px solid var(--color-surface);box-sizing:content-box;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:10.5px;font-weight:700;line-height:18px;position:absolute;top:-6px;right:-6px}.notif-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:360px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);z-index:40;text-align:left;position:absolute;top:46px;right:0;overflow:hidden}.notif-panel-head{border-bottom:1px solid var(--color-border);color:var(--color-text);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.notif-link{cursor:pointer;font:inherit;color:var(--color-primary);background:0 0;border:none;padding:0;font-size:12.5px;font-weight:600}.notif-push{background:var(--color-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);padding:9px 14px;font-size:12.5px}.notif-list{max-height:420px;overflow-y:auto}.notif-item{border-bottom:1px solid var(--color-border);gap:6px;padding:11px 10px 11px 14px;display:flex}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:color-mix(in srgb, var(--color-primary) 7%, transparent)}.notif-item-main{text-align:left;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;min-width:0;padding:0;display:flex}.notif-title{color:var(--color-text);font-size:13px;font-weight:600}.notif-item.unread .notif-title:before{content:"";background:var(--color-primary);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.notif-body{color:var(--color-text-muted);overflow-wrap:anywhere;font-size:12.5px}.notif-time{color:var(--color-text-faint);margin-top:2px;font-size:11.5px}.notif-clear{cursor:pointer;color:var(--color-text-faint);background:0 0;border:none;align-self:flex-start;padding:0 4px;font-size:18px;line-height:1}.notif-clear:hover{color:var(--color-text)}@media (width<=1024px){.notif-panel{width:auto;max-width:none;position:fixed;top:64px;left:16px;right:16px}}
