:root{--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, Menlo, monospace;--bg: #f4f6f9;--bg-subtle: #ebeef3;--fg: #111827;--fg-2: #374151;--muted: #6b7280;--muted-2: #9ca3af;--card: #ffffff;--elevated: rgba(255, 255, 255, .95);--line: rgba(0, 0, 0, .08);--line-strong: rgba(0, 0, 0, .15);--field-bg: rgba(255, 255, 255, .6);--primary: #2563eb;--primary-hover: #1d4ed8;--primary-muted: rgba(37, 99, 235, .08);--primary-glow: rgba(37, 99, 235, .15);--accent: #059669;--accent-hover: #047857;--accent-muted: rgba(5, 150, 105, .08);--danger: #dc2626;--danger-hover: #b91c1c;--danger-muted: rgba(220, 38, 38, .08);--warning: #d97706;--warning-muted: rgba(217, 119, 6, .08);--sidebar: rgba(255, 255, 255, .92);--glass: rgba(255, 255, 255, .6);--glass-border: rgba(0, 0, 0, .06);--overlay: rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(37, 99, 235, .08);--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 0 0 1px rgba(0, 0, 0, .04);--mesh: radial-gradient(ellipse 50% 80% at 20% 40%, rgba(37, 99, 235, .04) 0%, transparent 100%), radial-gradient(ellipse 60% 50% at 80% 20%, rgba(5, 150, 105, .03) 0%, transparent 100%);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--sidebar-w: 260px;--sidebar-w-collapsed: 68px;--ease: cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{--bg: #07080f;--bg-subtle: #0b0e18;--fg: #eaf0f6;--fg-2: #c8d6e5;--muted: #6b7f99;--muted-2: #4f6078;--card: #0f1423;--elevated: rgba(20, 27, 50, .8);--line: rgba(60, 80, 120, .25);--line-strong: rgba(60, 80, 120, .45);--field-bg: rgba(10, 14, 26, .6);--primary: #3b82f6;--primary-hover: #2563eb;--primary-muted: rgba(59, 130, 246, .12);--primary-glow: rgba(59, 130, 246, .25);--accent: #10b981;--accent-hover: #059669;--accent-muted: rgba(16, 185, 129, .12);--danger: #f43f5e;--danger-hover: #e11d48;--danger-muted: rgba(244, 63, 94, .12);--warning: #f59e0b;--warning-muted: rgba(245, 158, 11, .12);--sidebar: rgba(8, 10, 20, .85);--glass: rgba(15, 20, 40, .5);--glass-border: rgba(80, 100, 150, .15);--overlay: rgba(0, 0, 0, .7);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(59, 130, 246, .15);--shadow-card: 0 2px 8px rgba(0, 0, 0, .2), 0 0 0 1px rgba(60, 80, 120, .1);--mesh: radial-gradient(ellipse 50% 80% at 20% 40%, rgba(59, 130, 246, .06) 0%, transparent 100%), radial-gradient(ellipse 60% 50% at 80% 20%, rgba(16, 185, 129, .04) 0%, transparent 100%), radial-gradient(ellipse 40% 60% at 60% 80%, rgba(139, 92, 246, .04) 0%, transparent 100%)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;letter-spacing:-.01em;background:var(--mesh),var(--bg);color:var(--fg);min-height:100vh;font-feature-settings:"tnum" 1,"cv11" 1;transition:background .2s,color .2s}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer}h1,h2,h3,h4{font-weight:600;line-height:1.25;letter-spacing:-.02em}::selection{background:var(--primary-muted);color:var(--fg)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.u-uppercase{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.app{display:flex;height:100vh}.main{flex:1;min-width:0;overflow-y:auto}.page{max-width:1400px;padding:32px;margin:0 auto;animation:fade-in .35s var(--ease) both}.page-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.page-head h1{font-size:24px;font-weight:700}.page-sub{color:var(--muted);font-size:14px;margin-top:4px}.page-actions{display:flex;gap:10px;flex-shrink:0}.stack{display:flex;flex-direction:column;gap:24px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}.grid-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:24px}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;transition:width .3s var(--ease);z-index:30}.app.collapsed .sidebar{width:var(--sidebar-w-collapsed)}.brand{display:flex;align-items:center;gap:12px;padding:0 16px;height:64px;flex-shrink:0}.brand-mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;box-shadow:var(--shadow-glow);flex-shrink:0}.brand-mark.lg{width:56px;height:56px;border-radius:16px;font-size:24px}.brand-text{display:flex;flex-direction:column;line-height:1.25;overflow:hidden;transition:opacity .3s,width .3s}.brand-text strong{font-size:14px;font-weight:700;color:var(--fg);white-space:nowrap}.brand-text small{font-size:11px;color:var(--muted);white-space:nowrap}.sidebar-divider{height:1px;background:var(--line);margin:0 12px}.nav{flex:1;padding:12px 8px 0;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-group+.nav-group{margin-top:12px}.nav-label{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);padding:4px 12px 6px;white-space:nowrap;overflow:hidden}.nav a,.nav-btn{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:12px;border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:500;text-align:left;white-space:nowrap;transition:background .2s,color .2s}.nav a svg,.nav-btn svg{flex-shrink:0;width:18px;height:18px}.nav a span,.nav-btn span{overflow:hidden;transition:opacity .3s,width .3s}.nav a:hover,.nav-btn:hover{background:color-mix(in srgb,var(--primary-muted) 50%,transparent);color:var(--fg);text-decoration:none}.nav a.active{background:var(--primary-muted);color:var(--primary);box-shadow:var(--shadow-sm)}.nav a.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 999px 999px 0;background:var(--primary)}.nav-btn.danger:hover{color:var(--danger);background:var(--danger-muted)}.sidebar-foot{padding:0 8px 12px;display:flex;flex-direction:column;gap:2px;flex-shrink:0}.sidebar-foot .sidebar-divider{margin:4px 4px 6px}.user-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;min-width:0}.user-row .who{flex:1;min-width:0;overflow:hidden;transition:opacity .3s,width .3s}.user-row .name{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-row .role{font-size:11px;color:var(--muted);font-weight:500}.avatar{width:28px;height:28px;border-radius:50%;background:var(--primary-muted);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;-webkit-user-select:none;user-select:none}.app.collapsed .brand{padding:0;justify-content:center}.app.collapsed .brand-text,.app.collapsed .nav a span,.app.collapsed .nav-btn span,.app.collapsed .nav-label,.app.collapsed .user-row .who{width:0;opacity:0}.app.collapsed .nav a,.app.collapsed .nav-btn,.app.collapsed .user-row{justify-content:center;gap:0}.app.collapsed .nav-btn.collapse svg{transform:rotate(180deg)}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-card);transition:border-color .2s,box-shadow .2s}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:15px;font-weight:600}.panel-actions{display:flex;gap:8px;align-items:center}.panel-body{padding:16px}.panel-body.flush{padding:0;overflow:hidden;border-radius:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--fg);font-size:14px;font-weight:500;white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none;transition:all .2s}.btn:hover{border-color:var(--line-strong);background:var(--elevated);text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn svg{flex-shrink:0;width:16px;height:16px}.btn-primary{background:linear-gradient(to bottom,var(--primary),var(--primary-hover));border-color:transparent;color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:linear-gradient(to bottom,var(--primary),var(--primary-hover));border-color:transparent;box-shadow:var(--shadow-glow)}.btn-ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn-ghost:hover{background:var(--primary-muted);border-color:transparent;color:var(--fg)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:var(--danger-muted);border-color:color-mix(in srgb,var(--danger) 20%,transparent)}.btn-sm{height:32px;padding:0 12px;font-size:12px;font-weight:600;border-radius:8px;gap:6px}.btn-sm svg{width:14px;height:14px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted);transition:all .2s}.btn-icon:hover{background:var(--primary-muted);color:var(--fg)}.btn-icon.danger:hover{background:var(--danger-muted);color:var(--danger)}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field .req{color:var(--danger);margin-left:3px}.field .hint{font-size:12px;color:var(--muted);line-height:1.45}.field .hint.warn{color:var(--warning);font-weight:500}.field .hint.danger{color:var(--danger);font-weight:500}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-section{padding:16px;background:var(--primary-muted);border:1px solid color-mix(in srgb,var(--primary) 15%,transparent);border-radius:12px;display:flex;flex-direction:column;gap:12px}.form-section-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.form-result{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px;border-top:1px dashed color-mix(in srgb,var(--primary) 25%,transparent);font-size:13px;color:var(--muted)}.form-result strong{font-size:16px;font-weight:700;color:var(--fg)}.input,.select,.textarea{width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--field-bg);color:var(--fg);font-size:14px;outline:none;transition:all .2s}.input::placeholder,.textarea::placeholder{color:color-mix(in srgb,var(--muted) 45%,transparent)}.input:hover,.select:hover,.textarea:hover{border-color:var(--line-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow);outline:none}.input:disabled,.select:disabled{opacity:.4;cursor:not-allowed}.input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}[data-theme=dark] .input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}.textarea{height:auto;min-height:76px;padding:10px 12px;resize:vertical;line-height:1.5}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.select option{background:var(--card);color:var(--fg)}.check{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.check input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 14px;padding:16px;border-bottom:1px solid var(--line)}.toolbar .field{width:170px}.toolbar .field.w-sm{width:96px}.toolbar .field.w-lg{width:240px}.toolbar .spacer{flex:1}.toolbar .page-sub{margin:0;align-self:center}.table-wrap{overflow-x:auto}.table-wrap.scroll{max-height:460px;overflow-y:auto}.table-wrap.scroll thead th{position:sticky;top:0;z-index:1;background:var(--card)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle;line-height:1.45}.table th:first-child,.table td:first-child{padding-left:16px}.table th:last-child,.table td:last-child{padding-right:16px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background .15s}.table tbody tr:hover td{background:color-mix(in srgb,var(--primary-muted) 30%,transparent)}.table tbody tr.is-active td{background:var(--primary-muted)}.table tfoot td{font-weight:700;border-top:1px solid var(--line-strong);background:color-mix(in srgb,var(--bg-subtle) 60%,transparent)}.table .num{text-align:right;white-space:nowrap}.table .nowrap{white-space:nowrap}.table .dim{color:var(--muted)}.table .sub{display:block;font-size:12px;color:var(--muted);margin-top:2px;font-weight:400}.table .primary{font-weight:500;color:var(--fg)}.table .actions{width:1%;text-align:right}.row-actions{display:inline-flex;gap:2px;opacity:0;transition:opacity .15s}tr:hover .row-actions,tr:focus-within .row-actions{opacity:1}@media (hover: none){.row-actions{opacity:1}}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow-card);min-width:0;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line-strong)}.stat .label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat .value{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.1;white-space:nowrap;color:var(--fg)}.stat .hint{font-size:12px;color:var(--muted);margin-top:6px;font-weight:500}.stat.accent .value{color:var(--accent)}.stat.primary .value{color:var(--primary)}.stat.neg .value{color:var(--muted)}.money{white-space:nowrap}.money.pos{color:var(--accent)}.money.neg,.money.dim{color:var(--muted)}.money.strong{font-weight:600}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid;border-radius:12px;font-size:14px;font-weight:500;line-height:1.5;animation:fade-in .3s var(--ease) both}.alert-icon{flex-shrink:0;margin-top:2px}.alert-body{flex:1;min-width:0}.alert-body strong{display:block;font-weight:600}.alert-body strong+div{margin-top:2px;font-weight:400;opacity:.9}.alert .btn-icon{margin:-4px -6px -4px 0}.alert .btn{margin:-6px 0}.alert-info{background:var(--primary-muted);border-color:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.alert-success{background:var(--accent-muted);border-color:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.alert-warn{background:var(--warning-muted);border-color:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.alert-danger{background:var(--danger-muted);border-color:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.alert-body div,.alert-body strong{color:inherit}[data-theme=light] .alert-body strong+div,:root:not([data-theme=dark]) .alert-body strong+div{color:var(--fg-2)}.tag{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--fg-2);font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.tag:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--muted)}.tag.no-dot:before{display:none}.tag-green{background:var(--accent-muted);border-color:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.tag-green:before{background:var(--accent)}.tag-red{background:var(--danger-muted);border-color:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.tag-red:before{background:var(--danger)}.tag-amber{background:var(--warning-muted);border-color:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.tag-amber:before{background:var(--warning)}.tag-blue{background:var(--primary-muted);border-color:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.tag-blue:before{background:var(--primary)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 24px;animation:fade-in .3s var(--ease) both}.empty-icon{width:64px;height:64px;border-radius:16px;background:var(--primary-muted);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:20px;animation:float 4s ease-in-out infinite}.empty h3{font-size:16px;font-weight:600;color:var(--fg);margin-bottom:4px}.empty p{font-size:14px;color:var(--muted);max-width:420px;line-height:1.55}.empty .actions{display:flex;gap:10px;justify-content:center;margin-top:20px}.skeleton{padding:16px;display:flex;flex-direction:column;gap:12px}.skeleton-row{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--line) 25%,var(--line-strong) 50%,var(--line) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton-row:nth-child(2){width:85%}.skeleton-row:nth-child(3){width:92%}.skeleton-row:nth-child(4){width:70%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50;animation:fade .2s ease-out both}.modal{width:100%;max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);animation:scale-in .3s var(--ease) both}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 0 24px}.modal-head h3{font-size:18px;font-weight:600}.modal-body{padding:20px 24px 24px;overflow-y:auto}.modal-foot{display:flex;gap:12px;padding:0 24px 24px}.modal-foot .btn{flex:1}.chart{display:flex;gap:12px}.chart-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--muted-2);font-weight:500;text-align:right;width:44px;flex-shrink:0;padding-bottom:20px}.chart-plot{flex:1;min-width:0}.chart-bars{display:flex;align-items:flex-end;gap:6px;height:120px;background-image:linear-gradient(to top,var(--line) 1px,transparent 1px);background-size:100% 50%;background-position:bottom;border-bottom:1px solid var(--line-strong)}.chart-bar{flex:1;min-width:6px;height:100%;display:flex;align-items:flex-end;cursor:default}.chart-bar>div{width:100%;background:linear-gradient(to top,var(--primary-hover),var(--primary));border-radius:4px 4px 0 0;transition:opacity .15s;min-height:2px}.chart-bar.secondary>div{background:linear-gradient(to top,var(--accent-hover),var(--accent))}.chart-bar.zero>div{background:var(--line-strong);min-height:2px}.chart-bar:hover>div{opacity:.75}.chart-labels{display:flex;gap:6px;margin-top:6px}.chart-labels span{flex:1;text-align:center;font-size:11px;color:var(--muted);font-weight:500}.chart-title{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;font-weight:600;color:var(--fg-2);margin-bottom:10px}.chart-title .total{font-weight:500;color:var(--muted)}.chart+.chart-title{margin-top:24px}.rank{display:flex;flex-direction:column}.rank-row{display:grid;grid-template-columns:24px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);transition:background .15s}.rank-row:hover{background:color-mix(in srgb,var(--primary-muted) 30%,transparent)}.rank-row:last-child{border-bottom:0}.rank-n{width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--bg-subtle);color:var(--muted)}.rank-row:first-child .rank-n{background:var(--primary-muted);color:var(--primary)}.rank-name{min-width:0}.rank-name div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.rank-name small{display:block;font-size:12px;color:var(--muted);margin-top:1px}.rank-bar{height:4px;border-radius:2px;background:var(--bg-subtle);margin-top:6px;overflow:hidden}.rank-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px}.rank-sum{font-weight:700;white-space:nowrap}.kv{display:flex;flex-direction:column}.kv-row{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-size:14px;transition:background .15s}.kv-row:hover{background:color-mix(in srgb,var(--primary-muted) 30%,transparent)}.kv-row:last-child{border-bottom:0}.kv-row a{color:var(--fg-2);display:inline-flex;align-items:center;gap:8px;font-weight:500}.kv-row a svg{color:var(--muted)}.kv-row a:hover{color:var(--primary);text-decoration:none}.kv-row a:hover svg{color:var(--primary)}.kv-row strong{font-weight:700}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg)}.login-blob{position:absolute;border-radius:50%;pointer-events:none}.login-blob.b1{top:-20%;left:-10%;width:500px;height:500px;background:color-mix(in srgb,var(--primary) 7%,transparent);filter:blur(120px);animation:float 8s ease-in-out infinite}.login-blob.b2{bottom:-15%;right:-5%;width:400px;height:400px;background:color-mix(in srgb,var(--accent) 5%,transparent);filter:blur(100px);animation:float 6s ease-in-out infinite 1s}.login-blob.b3{top:40%;right:30%;width:200px;height:200px;background:color-mix(in srgb,var(--primary) 4%,transparent);filter:blur(80px);animation:float 10s ease-in-out infinite 2s}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.03;pointer-events:none;background-image:linear-gradient(currentColor 1px,transparent 1px),linear-gradient(90deg,currentColor 1px,transparent 1px);background-size:60px 60px}.login-theme{position:absolute;top:20px;right:20px;z-index:10;width:40px;height:40px;border-radius:12px;background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .2s}.login-theme:hover{color:var(--fg);box-shadow:var(--shadow-glow)}.login-card-wrap{width:100%;max-width:400px;margin:0 16px;position:relative;z-index:10;animation:slide-up .6s var(--ease) both}.login-card{background:var(--glass);backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-lg);padding:32px}.login-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:32px}.login-brand .brand-mark{margin-bottom:16px;animation:scale-in .5s var(--ease) both .2s}.login-brand h1{font-size:20px;font-weight:700}.login-brand p{font-size:14px;color:var(--muted);margin-top:2px}.login-card .form{gap:16px}.login-card .btn{height:48px;border-radius:12px;font-size:15px;margin-top:8px}.login-foot{text-align:center;font-size:12px;color:color-mix(in srgb,var(--muted) 60%,transparent);margin-top:24px}.input-wrap{position:relative}.input-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.input-wrap .input{padding-left:40px}.guide{display:grid;grid-template-columns:210px minmax(0,760px);gap:40px;align-items:start}.guide-toc{position:sticky;top:0;display:flex;flex-direction:column;gap:2px}.guide-toc a{padding:8px 12px;border-radius:10px;color:var(--muted);font-size:13px;font-weight:500;transition:all .2s}.guide-toc a:hover{background:color-mix(in srgb,var(--primary-muted) 50%,transparent);color:var(--fg);text-decoration:none}.guide-toc a.active{background:var(--primary-muted);color:var(--primary)}.prose{font-size:15px;line-height:1.65}.prose section{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-card);padding:24px;margin-bottom:20px;scroll-margin-top:24px}.prose h2{font-size:18px;margin-bottom:12px}.prose h4{font-size:15px;margin:20px 0 6px}.prose p{margin-bottom:12px}.prose p:last-child{margin-bottom:0}.prose .lead{font-size:16px;font-weight:500}.prose .dim{color:var(--muted)}.prose ol,.prose ul{padding-left:22px;margin-bottom:12px}.prose li{margin-bottom:6px}.prose li::marker{color:var(--muted)}.prose .table{font-size:14px;margin:14px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.prose .table th:first-child,.prose .table td:first-child{padding-left:14px}.note{display:flex;gap:10px;padding:12px 14px;margin:14px 0;background:var(--primary-muted);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);border-radius:10px;color:var(--fg-2);font-size:14px}.note svg{flex-shrink:0;margin-top:3px;color:var(--primary)}.example{padding:14px 16px;margin:12px 0;background:var(--bg-subtle);border:1px solid var(--line);border-radius:10px;font-size:14px}.example .calc{font-family:var(--font-mono);font-size:13px;color:var(--muted);margin-top:6px}.example .result{font-family:var(--font-mono);font-size:15px;color:var(--accent);font-weight:600;margin-top:4px}.formula{padding:18px;margin:16px 0;background:linear-gradient(135deg,var(--primary-muted),var(--accent-muted));border:1px solid color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary);border-radius:12px;text-align:center;font-family:var(--font-mono);font-size:16px;font-weight:500}.faq dt{font-weight:600;margin-top:18px}.faq dt:first-child{margin-top:0}.faq dd{margin-top:4px;color:var(--fg-2)}.callout{padding:18px 20px;border-radius:12px;background:var(--primary-muted);border:1px solid color-mix(in srgb,var(--primary) 15%,transparent)}.callout h3{font-size:15px;margin-bottom:10px}.callout ul{margin:0}@keyframes fade{0%{opacity:0}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media (max-width: 1100px){.grid-2,.grid-main{grid-template-columns:1fr}.guide{grid-template-columns:1fr;gap:20px}.guide-toc{position:static;flex-direction:row;flex-wrap:wrap}}@media (max-width: 860px){.page{padding:20px 16px 40px}.page-head{flex-direction:column;align-items:flex-start;gap:12px}.sidebar,.app.collapsed .sidebar{width:var(--sidebar-w-collapsed)}.brand{padding:0;justify-content:center}.brand-text,.nav a span,.nav-btn span,.nav-label,.user-row .who,.nav-btn.collapse{display:none}.nav a,.nav-btn,.user-row{justify-content:center;gap:0}.toolbar .field,.toolbar .field.w-lg{width:100%}.field-grid{grid-template-columns:1fr}.modal-foot{flex-direction:column-reverse}}
