@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--font:Inter, "PingFang SC", "Microsoft YaHei", -apple-system, sans-serif;--bg:#f5f6fa;--surface:#fff;--border:#e4e7ed;--border-light:#f0f2f5;--text-primary:#1a1d26;--text-secondary:#5a6175;--text-muted:#9ba2b0;--accent:#3354ff;--accent-light:#eef1ff;--success:#10b981;--success-light:#ecfdf5;--warning:#f59e0b;--warning-light:#fffbeb;--danger:#ef4444;--danger-light:#fef2f2;--info:#6366f1;--info-light:#eef2ff;--shadow-sm:0 1px 2px #0000000a, 0 1px 3px #0000000f;--shadow-md:0 4px 6px #0000000a, 0 2px 4px #0000000f;--shadow-lg:0 10px 25px #0000000f, 0 4px 10px #0000000a;--radius:10px;--radius-sm:6px;--radius-lg:14px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font);color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px}body{min-height:100vh}.shell{min-height:100vh;display:flex}.shell.collapsed .sidebar{width:68px}.shell.collapsed .brand-copy,.shell.collapsed .workspace,.shell.collapsed .nav-label,.shell.collapsed .nav-item span,.shell.collapsed .nav-item em,.shell.collapsed .sidebar-foot .user-copy,.shell.collapsed .sidebar-foot .chevron{display:none}.shell.collapsed .nav-item{justify-content:center;padding:12px 0}.shell.collapsed .sidebar-foot{justify-content:center}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex-shrink:0;width:260px;height:100vh;padding:24px 16px 16px;transition:width .2s;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:0 8px 28px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#3354ff,#6366f1);border-radius:10px;place-items:center;width:38px;height:38px;font-size:14px;font-weight:800;display:grid;box-shadow:0 4px 12px #3354ff4d}.brand-copy{flex-direction:column;gap:2px;display:flex}.brand-copy strong{font-size:15px;font-weight:700}.brand-copy small{color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase;font-size:10px}.workspace{background:var(--bg);border-radius:var(--radius);color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:28px;padding:10px 12px;font-size:12px;font-weight:500;display:flex}.workspace-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px}.workspace svg{color:var(--text-muted);margin-left:auto}.nav-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-top:8px;padding:0 12px 10px;font-size:10px;font-weight:600}.nav-item{width:100%;color:var(--text-secondary);text-align:left;border-radius:var(--radius);cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;margin-bottom:3px;padding:11px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg);color:var(--text-primary)}.nav-item.active{background:var(--accent-light);color:var(--accent);font-weight:600}.nav-item em{background:var(--danger);color:#fff;text-align:center;border-radius:10px;min-width:20px;margin-left:auto;padding:1px 7px;font-size:10px;font-style:normal;font-weight:600}.sidebar-foot{border-top:1px solid var(--border-light);align-items:center;gap:10px;margin-top:auto;padding:16px 8px 0;display:flex}.avatar,.header-avatar{color:#fff;background:linear-gradient(135deg,#3354ff,#6366f1);border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:grid}.avatar{width:34px;height:34px;font-size:12px}.user-copy{flex-direction:column;gap:2px;display:flex}.user-copy strong{font-size:12px}.user-copy small{color:var(--text-muted);font-size:10px}.sidebar-foot .chevron{color:var(--text-muted);margin-left:auto}.content{flex-direction:column;flex:1;min-width:0;display:flex}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:15;justify-content:space-between;align-items:center;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:16px;display:flex}.breadcrumb{color:var(--text-muted);margin-bottom:4px;font-size:11px}.breadcrumb span{color:var(--border);padding:0 6px}.header h1{color:var(--text-primary);font-size:18px;font-weight:700}.header-actions{align-items:center;gap:12px;display:flex}.search{background:var(--bg);border-radius:var(--radius);width:240px;height:36px;color:var(--text-muted);border:1px solid #0000;align-items:center;gap:8px;padding:0 12px;transition:all .2s;display:flex}.search:focus-within{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #3354ff1a}.search input{width:100%;color:var(--text-primary);background:0 0;border:0;outline:0;font-size:12px}.icon-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;place-items:center;padding:8px;transition:all .15s;display:grid}.icon-btn:hover{background:var(--bg);color:var(--text-primary)}.notification{position:relative}.notification i{background:var(--danger);border:2px solid var(--surface);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:7px}.profile-btn{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius);background:0 0;border:0;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.profile-btn:hover{background:var(--bg)}.header-avatar{width:30px;height:30px;font-size:11px}.profile-menu{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-lg);flex-direction:column;gap:8px;padding:16px;display:flex;position:absolute;top:58px;right:28px}.profile-menu strong{font-size:13px}.profile-menu small{color:var(--text-muted);border-bottom:1px solid var(--border-light);padding-bottom:10px;font-size:11px}.profile-menu button{text-align:left;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:8px 10px;font-size:12px;transition:all .15s}.profile-menu button:hover{background:var(--bg);color:var(--text-primary)}.mobile-menu{display:none}.page{flex:1;padding:28px 32px}.page-intro{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-intro h2{letter-spacing:-.3px;margin-bottom:6px;font-size:22px;font-weight:700}.page-intro p{color:var(--text-muted);font-size:13px}.date-chip{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:7px;padding:10px 14px;font-size:12px;font-weight:500;display:flex}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;transition:all .2s;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--accent);opacity:0;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card:hover:after{opacity:1}.stat-icon{border-radius:12px;place-items:center;width:42px;height:42px;margin-bottom:16px;display:grid}.stat-icon.blue{color:#3b82f6;background:#eff6ff}.stat-icon.red{color:#ef4444;background:#fef2f2}.stat-icon.amber{color:#f59e0b;background:#fffbeb}.stat-icon.purple{color:#8b5cf6;background:#f5f3ff}.stat-label{color:var(--text-muted);font-size:12px;font-weight:500}.stat-number{color:var(--text-primary);margin:6px 0;font-size:30px;font-weight:800;line-height:1.2}.stat-number small{color:var(--text-muted);margin-left:4px;font-size:13px;font-weight:500}.stat-hint{color:var(--text-muted);align-items:center;gap:5px;font-size:11px;display:flex}.dashboard-grid{grid-template-columns:1.4fr 1fr;gap:16px;margin-top:20px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:box-shadow .2s}.panel:hover{box-shadow:var(--shadow-sm)}.panel-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel h3{margin-bottom:4px;font-size:15px;font-weight:700}.panel-head p{color:var(--text-muted);margin:0;font-size:12px}.text-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex}.text-btn:hover{text-decoration:underline}.muted{color:var(--text-muted)}.mini-list{border-top:1px solid var(--border-light)}.mini-row{border-bottom:1px solid var(--border-light);align-items:center;gap:14px;padding:14px 0;transition:background .15s;display:flex}.mini-row:hover{background:var(--bg);margin:0 -24px;padding:14px 24px}.mini-icon{background:var(--accent-light);width:36px;height:36px;color:var(--accent);border-radius:10px;place-items:center;display:grid}.mini-main{flex-direction:column;flex:1;gap:4px;display:flex}.mini-main strong{font-size:13px}.mini-main span{color:var(--text-muted);font-size:11px}.mini-date{color:var(--text-secondary);flex-direction:column;align-items:flex-end;gap:6px;font-size:12px;display:flex}.progress-list{margin-top:20px}.progress-item{margin-bottom:20px}.progress-item>div:first-child{color:var(--text-secondary);justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.progress-item b{color:var(--text-primary);font-weight:600}.progress-track{background:var(--border-light);border-radius:6px;height:6px;overflow:hidden}.progress-track i{background:linear-gradient(90deg, var(--accent), #6366f1);border-radius:6px;height:100%;transition:width .6s;display:block}.empty{min-height:160px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.control-banner{border-radius:var(--radius-lg);color:var(--text-secondary);background:linear-gradient(135deg,#eef1ff,#f5f3ff);border:1px solid #e0e3ff;align-items:center;gap:14px;margin-top:20px;padding:18px 20px;display:flex}.control-icon{background:var(--accent-light);width:40px;height:40px;color:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.control-banner strong{color:var(--text-primary);font-size:13px}.control-banner p{color:var(--text-secondary);margin:4px 0 0;font-size:12px;line-height:1.5}.control-banner>svg{color:var(--text-muted);margin-left:auto}.module-title{align-items:center;gap:14px;display:flex}.module-icon{background:var(--accent-light);width:42px;height:42px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.badge{border-radius:20px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.badge-neutral{color:var(--text-secondary);background:var(--bg)}.badge-success{color:#059669;background:var(--success-light)}.badge-warning{color:#d97706;background:var(--warning-light)}.badge-danger{color:#dc2626;background:var(--danger-light)}.primary-btn{border-radius:var(--radius);cursor:pointer;color:#fff;background:linear-gradient(135deg,#3354ff,#6366f1);border:0;align-items:center;gap:6px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #3354ff40}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #3354ff59}.primary-btn:active{transform:translateY(0)}.primary-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.outline-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);cursor:transition;align-items:center;gap:6px;padding:9px 14px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.outline-btn:hover{border-color:var(--accent);color:var(--accent)}.toolbar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.filter-tabs{gap:4px;display:flex}.filter-tabs button{color:var(--text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;border:0;padding:8px 14px;font-size:12px;font-weight:500;transition:all .15s}.filter-tabs button:hover{color:var(--text-primary)}.filter-tabs button.selected{background:var(--accent-light);color:var(--accent);font-weight:600}.filter-tabs span{margin-left:4px}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table-card table{border-collapse:collapse;width:100%;font-size:13px}.table-card th{background:var(--bg);color:var(--text-muted);text-align:left;white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.table-card th,.table-card td{border-bottom:1px solid var(--border-light);padding:14px 18px}.table-card td{color:var(--text-secondary);white-space:nowrap}.table-card td strong{color:var(--text-primary);font-weight:600}.table-card tbody tr{transition:background .15s}.table-card tbody tr:hover{background:var(--bg)}.row-action{color:var(--accent);cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:500}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#1a1d2680;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:min(560px,100%);padding:28px;box-shadow:0 25px 60px #00000026}.modal-title{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;display:flex}.modal-title h2{font-size:17px;font-weight:700}.entry-form{grid-template-columns:1fr 1fr;gap:16px;display:grid}.entry-form label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.entry-form input,.entry-form select{border:1px solid var(--border);border-radius:var(--radius);outline:0;padding:11px 14px;font-size:13px;transition:all .2s}.entry-form input:focus,.entry-form select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3354ff1a}.modal-actions{border-top:1px solid var(--border-light);grid-column:1/-1;justify-content:flex-end;gap:10px;margin-top:8px;padding-top:16px;display:flex}.auth-screen{background:linear-gradient(135deg,#1a1d26 0%,#2d3142 50%,#1a1d26 100%);place-items:center;min-height:100vh;display:grid;position:relative;overflow:hidden}.auth-screen:before{content:"";background:radial-gradient(circle,#3354ff26,#0000 70%);width:600px;height:600px;position:absolute;top:-200px;right:-100px}.auth-screen:after{content:"";background:radial-gradient(circle,#6366f11a,#0000 70%);width:500px;height:500px;position:absolute;bottom:-150px;left:-100px}.auth-card{background:var(--surface);text-align:center;z-index:1;border-radius:20px;width:min(400px,100% - 32px);padding:44px 40px;position:relative;box-shadow:0 25px 80px #0000004d}.auth-logo{color:#fff;background:linear-gradient(135deg,#3354ff,#6366f1);border-radius:16px;place-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:18px;font-weight:800;display:grid;box-shadow:0 8px 24px #3354ff4d}.auth-card h1{margin-bottom:8px;font-size:22px;font-weight:800}.auth-card>p{color:var(--text-muted);margin:0 0 28px;font-size:13px}.auth-card>small{color:var(--text-muted);margin-top:24px;font-size:11px;display:block}.auth-form{text-align:left;flex-direction:column;gap:16px;display:flex}.auth-form label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.auth-form input{border:1px solid var(--border);border-radius:var(--radius);outline:0;padding:12px 14px;font-size:13px;transition:all .2s}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3354ff1a}.auth-form .primary-btn{justify-content:center;margin-top:6px;padding:13px}.auth-error{color:#dc2626;background:var(--danger-light);border-radius:var(--radius);border:1px solid #fecaca;padding:10px;font-size:12px}@media (width<=1050px){.sidebar{width:220px}.header,.page{padding-left:24px;padding-right:24px}.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.sidebar{z-index:50;width:260px;transition:transform .3s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.shell:not(.collapsed) .sidebar{transform:translate(0)}.shell.collapsed .sidebar{width:260px}.shell.collapsed .brand-copy,.shell.collapsed .workspace,.shell.collapsed .nav-label,.shell.collapsed .nav-item span,.shell.collapsed .nav-item em,.shell.collapsed .sidebar-foot .user-copy,.shell.collapsed .sidebar-foot .chevron{display:initial}.header{padding:0 16px}.mobile-menu{display:grid}.breadcrumb{display:none}.header h1{font-size:16px}.search{width:160px}.page{padding:20px 16px}.page-intro h2{font-size:18px}.date-chip{display:none}.dashboard-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:16px}.stat-number{font-size:24px}.header-avatar{display:none}.entry-form{grid-template-columns:1fr}}
