.dlbar[data-v-15e5cfcc]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(360px,100vw - 32px);box-shadow:var(--shadow-pop);color:var(--text-primary);z-index:150;padding:12px 14px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.dlbar-head[data-v-15e5cfcc]{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.dlbar-name[data-v-15e5cfcc]{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.dlbar-pct[data-v-15e5cfcc]{color:var(--text-secondary);font-variant-numeric:tabular-nums;flex:none}.dlbar-track[data-v-15e5cfcc]{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.dlbar-fill[data-v-15e5cfcc]{background:var(--accent);border-radius:3px;height:100%;transition:width .2s linear}.dlbar-indeterminate[data-v-15e5cfcc]{background:var(--accent);border-radius:3px;width:40%;height:100%;animation:1.1s ease-in-out infinite dlbar-slide-15e5cfcc}@keyframes dlbar-slide-15e5cfcc{0%{transform:translate(-100%)}to{transform:translate(250%)}}.dlbar-sub[data-v-15e5cfcc]{color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px}.dlbar-enter-active[data-v-15e5cfcc],.dlbar-leave-active[data-v-15e5cfcc]{transition:opacity .2s,transform .2s}.dlbar-enter-from[data-v-15e5cfcc],.dlbar-leave-to[data-v-15e5cfcc]{opacity:0;transform:translate(-50%,8px)}@media (width<=640px){.dlbar[data-v-15e5cfcc]{bottom:calc(16px + env(safe-area-inset-bottom))}}.toast-host[data-v-50260d42]{top:calc(20px + env(safe-area-inset-top));z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:460px;padding:0 16px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast-item[data-v-50260d42]{color:#fff;text-align:center;word-break:break-word;background:#0c0e12;border-radius:8px;max-width:100%;padding:10px 20px;font-size:14px;box-shadow:0 4px 12px #0c0e1233}.toast-item.error[data-v-50260d42]{background:#d6431f}.toast-enter-active[data-v-50260d42],.toast-leave-active[data-v-50260d42]{transition:opacity .25s,transform .25s}.toast-enter-from[data-v-50260d42],.toast-leave-to[data-v-50260d42]{opacity:0;transform:translateY(-8px)}.update-bar[data-v-7385ff1e]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);color:var(--text-primary);z-index:1000;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.update-btn[data-v-7385ff1e]{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 12px;font-size:13px}.update-btn[data-v-7385ff1e]:hover{background:var(--accent-hover)}.update-fade-enter-active[data-v-7385ff1e],.update-fade-leave-active[data-v-7385ff1e]{transition:opacity .2s}.update-fade-enter-from[data-v-7385ff1e],.update-fade-leave-to[data-v-7385ff1e]{opacity:0}:root{--bg:#f6f7f6;--surface:#fff;--border:#e5e7e6;--border-strong:#c2c7cc;--text-primary:#0c0e12;--text-secondary:#5b6169;--text-tertiary:#9aa1a9;--accent:#2f55e8;--accent-hover:#2447ce;--accent-soft:#edf0fe;--green:#12a594;--green-soft:#e3f4f1;--bg-soft:#f0f1f0;--danger:#ff6a45;--danger-soft:#fdeee9;--danger-ink:#d6431f;--radius:10px;--radius-sm:6px;--shadow:0 1px 3px #0c0e120f;--shadow-pop:0 10px 28px #0c0e1229;--font-sans:-apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-serif:Georgia, "Songti SC", "SimSun", serif}html.theme-dark,html.reader-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e0f11;--surface:#151618;--border:#24262a;--border-strong:#4a5057;--text-primary:#f2f2ef;--text-secondary:#9ea4ab;--text-tertiary:#6b7178;--accent:#7b93ff;--accent-hover:#94a7ff;--accent-soft:#1a1e33;--green:#3fcfbb;--green-soft:#14261f;--bg-soft:#1d1f22;--danger:#ff8a6b;--danger-soft:#2c1a15;--danger-ink:#ff8a6b;--shadow:0 1px 3px #00000080;--shadow-pop:0 10px 28px #0000008c}html.theme-dark{--overlay:#0000008c}html.reader-dark{--overlay:#0000009e;--reader-img-filter:brightness(.85)}html.reader-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f7f6;--surface:#fff;--border:#e5e7e6;--border-strong:#c2c7cc;--text-primary:#0c0e12;--text-secondary:#5b6169;--text-tertiary:#9aa1a9;--accent:#2f55e8;--accent-hover:#2447ce;--accent-soft:#edf0fe;--green:#12a594;--green-soft:#e3f4f1;--bg-soft:#f0f1f0;--danger:#ff6a45;--danger-soft:#fdeee9;--danger-ink:#d6431f;--shadow:0 1px 3px #0c0e120f;--shadow-pop:0 10px 28px #0c0e1229;--overlay:#0c0e1240}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text-primary);font-size:14px;line-height:1.6}.page-leave-active{transition:none}.page-enter-active{transition:opacity .16s ease-out,transform .16s ease-out}.page-enter-from{opacity:0;transform:translateY(8px)}.loading-block{color:var(--text-secondary);justify-content:center;align-items:center;gap:10px;padding:80px 0;font-size:13px;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-enter-active,.modal-leave-active{transition:opacity .18s}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform .18s,opacity .18s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{opacity:0;transform:translateY(10px)scale(.97)}.app{min-height:100dvh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:232px;height:100dvh;transition:width .2s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.logo{border:none;border-bottom:1px solid var(--border);font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;padding:24px 20px 20px;transition:background .15s,padding .2s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.logo:hover{background:var(--bg)}.logo-mark{flex-shrink:0;display:grid;position:relative}.logo-mark>.logo-img,.logo-mark>.logo-toggle{grid-area:1/1;transition:opacity .15s}.logo-toggle{width:32px;height:32px;color:var(--text-secondary);opacity:0}.logo-chevron{transform-box:fill-box;transform-origin:50%;transition:transform .2s cubic-bezier(.4,0,.2,1)}.logo:hover .logo-img,.logo:focus-visible .logo-img{opacity:0}.logo:hover .logo-toggle,.logo:focus-visible .logo-toggle{opacity:1}.logo:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.logo-img{object-fit:cover;border-radius:8px;flex-shrink:0;width:32px;height:32px}.logo-name{font-size:18px;font-weight:700;font-family:var(--font-serif);letter-spacing:.5px;white-space:nowrap}.nav-label{white-space:nowrap}@media (width>=901px){.sidebar.is-collapsed{width:64px}.sidebar.is-collapsed .logo{padding:24px 16px 20px}.sidebar.is-collapsed .logo-chevron{transform:rotate(180deg)}.sidebar.is-collapsed .nav-item{padding-left:11px;padding-right:11px}.logo-name,.nav-label{opacity:1;transition:opacity .14s 60ms}.sidebar.is-collapsed .logo-name,.sidebar.is-collapsed .nav-label{opacity:0;transition:opacity .1s}}.nav{flex-direction:column;flex:1;gap:2px;padding:12px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;align-items:center;gap:12px;min-width:0;padding:10px 12px;font-size:14px;text-decoration:none;transition:background .15s,color .15s,padding .2s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.nav-item:hover{background:var(--bg);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item svg,.nav-item .nav-icon{flex-shrink:0;width:18px;height:18px}html.theme-dark .nav-icon{filter:invert(.85)}.sidebar-footer{border-top:1px solid var(--border);padding:12px}.sidebar-logout{width:100%;font-family:inherit;line-height:inherit;text-align:left;background:0 0;border:none}.main{flex:1;min-width:0;max-width:1200px;margin-inline:auto;padding:32px 40px}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-title{font-size:24px;font-weight:700;font-family:var(--font-serif)}.page-subtitle{color:var(--text-secondary);margin-top:2px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-header{justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-title{font-size:15px;font-weight:600}.card-body{padding:20px}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--bg);border-color:var(--text-tertiary)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#a83e35;border-color:#a83e35}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg);color:var(--text-primary)}.btn svg{width:16px;height:16px}.btn-sm{padding:5px 12px;font-size:13px}.btn-block{justify-content:center;width:100%}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.stat-label{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.stat-label svg{width:15px;height:15px}.stat-value{font-size:30px;font-weight:700;font-family:var(--font-serif);margin-top:6px;line-height:1.2}.stat-unit{color:var(--text-secondary);margin-left:4px;font-size:13px;font-weight:400}.stat-card.accent{border-top:3px solid var(--accent)}.stat-card.green{border-top:3px solid var(--green)}.stat-card.neutral{border-top:3px solid var(--border-strong)}.form-group{margin-bottom:18px}.form-label{color:var(--text-primary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;font-size:14px;font-family:var(--font-sans);color:var(--text-primary);padding:9px 12px;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.form-input::placeholder{color:var(--text-tertiary)}.form-hint{color:var(--text-secondary);margin-top:5px;font-size:12px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.avatar{background:var(--accent);color:var(--surface);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.icon-btn{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-secondary);background:0 0;border:none;align-items:center;padding:6px;display:inline-flex}.icon-btn:hover{background:var(--bg);color:var(--text-primary)}.icon-btn-sm{width:18px;height:18px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;font-size:16px;line-height:1}.icon-btn-sm:hover{background:var(--bg);color:var(--text-primary)}.text-danger{color:var(--danger)}.text-secondary{color:var(--text-secondary)}@media (width<=900px){.sidebar{width:64px}.logo-name,.nav-item span{display:none}.logo{cursor:default;justify-content:center;padding:20px 8px}.logo-mark>.logo-toggle{display:none}.logo:hover .logo-img,.logo:focus-visible .logo-img{opacity:1}.nav-item{justify-content:center}.main{padding:24px 20px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){html:has(dialog.sidebar[open]){overflow:hidden}.mobile-nav-toggle,.mobile-nav-close{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:44px;height:44px;color:var(--text-primary);cursor:pointer;flex-shrink:0;place-items:center;padding:10px;display:grid}.mobile-nav-toggle{top:calc(20px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));z-index:40;position:absolute}.mobile-nav-toggle svg,.mobile-nav-close svg{width:22px;height:22px}.mobile-nav-toggle:focus-visible,.mobile-nav-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}dialog.sidebar{width:min(280px,100vw - 56px);max-width:none;height:100dvh;max-height:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) 0;border:none;border-left:1px solid var(--border);color:var(--text-primary);overscroll-behavior:contain;transition:transform .2s ease, display .2s allow-discrete, overlay .2s allow-discrete;margin:0;display:none;position:fixed;inset:0 0 0 auto;overflow-y:auto;transform:translate(100%)}dialog.sidebar[open]{display:flex;transform:translate(0)}dialog.sidebar::backdrop{background:var(--overlay,#0c0e1259);opacity:0;transition:opacity .2s, display .2s allow-discrete, overlay .2s allow-discrete}dialog.sidebar[open]::backdrop{opacity:1}@starting-style{dialog.sidebar[open]{transform:translate(100%)}dialog.sidebar[open]::backdrop{opacity:0}}.mobile-nav-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.mobile-nav-brand{font:700 18px var(--font-serif);align-items:center;gap:10px;display:flex}.sidebar .nav{flex:1 0 auto}.sidebar .nav-item{justify-content:flex-start;min-height:48px}.sidebar .nav-label{display:block}.sidebar-footer{flex-shrink:0}.main{padding:calc(20px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.page-header{min-height:44px;margin-bottom:20px;padding-right:56px}.page-title{font-size:20px}.stats-grid{gap:12px;margin-bottom:20px}.stat-card{padding:14px 16px}.stat-value{font-size:24px}.card-header,.card-body{padding:14px 16px}.form-input{font-size:16px}}@media (prefers-reduced-motion:reduce){.page-enter-active,.page-leave-active,.modal-enter-active,.modal-leave-active,.modal-enter-active .modal,.modal-leave-active .modal{transition:none}.spinner{animation:none}.sidebar,dialog.sidebar,dialog.sidebar::backdrop,.logo,.logo-mark>.logo-img,.logo-mark>.logo-toggle,.logo-chevron,.logo-name,.nav-label{transition:none}}
