@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/plus-jakarta-sans-latin-B2KjpZfh.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/plus-jakarta-sans-latin-ext-CAOONhfK.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--ink:#0e2240;--ink-soft:#2a3d58;--paper:#eef2f7;--paper-deep:#e2e8f0;--sheet:#eef2f7;--card:#fff;--accent:#3578e5;--accent-hover:#2a66c9;--accent-soft:#3578e51f;--text:#142438;--text-secondary:#5a6a7e;--text-muted:#8b97a8;--surface:transparent;--surface-solid:#ffffffb8;--surface-hover:#0e22400d;--surface-active:var(--accent-soft);--glass:blur(28px) saturate(160%);--glass-bg:#ffffff8c;--border:#0e224014;--border-strong:#0e224024;--danger:#c92f3a;--danger-soft:#fdecee;--warning:#b86a00;--warning-soft:#fff4e0;--success:#2f8a2a;--shadow-sm:0 1px 2px #0e22400d;--shadow-md:0 10px 30px #0e224014;--shadow-lg:0 20px 50px #0e224024;--shadow-lift:0 8px 20px #0e224014;--radius-sm:12px;--radius-md:16px;--radius-lg:18px;--radius-xl:22px;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.18s;--font:"Plus Jakarta Sans", system-ui, sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--navy:var(--ink);--navy-ink:#091729;--blue:var(--accent);--blue-hover:var(--accent-hover);--color-primary:var(--ink);--color-primary-dark:#091729;--color-accent:var(--accent);--color-link:var(--accent);--color-text:var(--text);--color-text-secondary:var(--text-secondary);--color-text-muted:var(--text-muted);--color-bg:var(--paper);--color-bg-hover:var(--surface-hover);--color-border:var(--border-strong);--color-border-light:var(--border);--color-danger:var(--danger);--divider:var(--border);--hover-bg:var(--surface-hover);--press-bg:#0e224014;--accent-tint:var(--accent-soft);--accent-tint-strong:#3578e538;--accent-on:#fff;--accent-rgb:53, 120, 229;--text-soft:var(--text-muted);--card-bg:#ffffffb8;--card-border:#ffffffb3;--card-highlight:#ffffffb3;--card-shadow:var(--shadow-md);--radius-card:var(--radius-xl);--radius-pill:999px;--spring:var(--ease);--topbar-h:60px;font-family:var(--font);color:var(--text);font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}button,input,select,textarea{font:inherit;color:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:#3578e52e}.nv-btn,.btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--ink);letter-spacing:-.01em;cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:#ffffffb8;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:15px;font-weight:650;display:inline-flex}.nv-btn:hover,.btn:hover{background:#fff}.nv-btn.primary,.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 6px 16px #3578e547}.nv-btn.primary:hover,.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.nv-btn.danger,.btn.danger{color:var(--danger);border-color:var(--danger-soft);background:#ffffffb8}.nv-btn.danger:hover,.btn.danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.nv-btn:disabled,.btn:disabled{opacity:.4;cursor:default;box-shadow:none}.icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:color var(--dur) var(--ease), background var(--dur) var(--ease);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-hover);color:var(--ink)}.icon-btn.on{color:var(--accent);background:var(--accent-soft)}.modal{z-index:200;animation:nv-fade .18s var(--ease);background:#0e224047;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.modal-overlay .modal,.modal-backdrop .modal{z-index:auto;animation:none;display:block;position:relative;inset:auto}.dialog{-webkit-backdrop-filter:var(--glass);border-radius:var(--radius-lg);width:min(440px,92vw);box-shadow:var(--shadow-lg);animation:nv-rise .22s var(--ease);background:#ffffffd1;border:1px solid #ffffffb3;flex-direction:column;gap:14px;padding:22px 22px 18px;display:flex;position:relative}.dialog h2{letter-spacing:-.03em;font-size:18px;font-weight:700}.dialog-err{color:var(--danger);font-size:13px}.dialog label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:650;display:flex}.dialog input,.dialog textarea,.dialog select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:15px;font:inherit;color:var(--text);background:#fff;padding:10px 12px;font-weight:450}.dialog input:focus,.dialog textarea:focus,.dialog select:focus{border-color:var(--accent);outline:none}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}kbd{border:1px solid var(--border);font:inherit;color:var(--text-muted);background:#ffffffb3;border-radius:999px;padding:1px 6px;font-size:11px;display:inline-block}@keyframes nv-fade{0%{opacity:0}to{opacity:1}}@keyframes nv-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.nv-shell{grid-template-columns:var(--rail-width,244px) 1fr;grid-template-rows:var(--topbar-h,60px) 1fr;background:0 0;grid-template-areas:"topbar topbar""rail main";height:100vh;display:grid;position:relative;overflow:hidden}.nv-shell:not(.has-rail){grid-template-columns:1fr;grid-template-areas:"topbar""main"}.nv-shell>.nv-topbar{grid-area:topbar}.nv-shell>.nv-rail{grid-area:rail}.nv-shell>.nv-main{grid-area:main}.nv-topbar{height:var(--topbar-h,60px);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);border-bottom:1px solid var(--border);z-index:70;align-items:center;gap:10px;min-width:0;padding:0 18px;display:flex}.nv-brand{flex-shrink:0;align-items:center;display:flex}.nv-brand img{height:22px;display:block}.nv-topbar-end{z-index:100;flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex;position:relative}.nv-rail{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);border-right:1px solid var(--border);flex-direction:column;min-width:0;min-height:0;padding:0;display:flex;overflow:hidden}.nv-rail-body{flex:1;min-height:0;padding:14px 10px 10px;overflow:auto}.nv-rail-foot{border-top:1px solid var(--border);flex:none;padding:8px 10px 12px}.nv-rail-nav+.nv-rail-head{margin-top:10px}.nv-rail-head{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;padding:4px 4px 8px 8px;font-size:10px;font-weight:650;display:flex}.nv-rail-head span{flex:1}.nv-rail-plus{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.nv-rail-plus:hover{color:var(--ink);background:#ffffffb3}.nv-rail-plus svg{fill:currentColor;width:16px;height:16px}.nv-rail-label-group{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:14px 8px 6px;font-size:10px;font-weight:650}.nv-rail-nav{flex-direction:column;gap:1px;display:flex}.nv-rail-item{color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:15px;font-weight:450;text-decoration:none;display:flex}.nv-rail-ico,.nv-rail-item>svg,.nv-rail-item .fluent-icon,.nv-rail-item .fluent-icon svg{color:#8a8a8a;flex:none;width:16px;height:16px}.nv-rail-ico{fill:currentColor}.nv-rail-item:hover{color:var(--ink);background:#ffffff8c}.nv-rail-item:hover .nv-rail-ico,.nv-rail-item:hover svg,.nv-rail-item:hover .fluent-icon{color:var(--ink)}.nv-rail-item.on,.nv-rail-item.router-link-active{background:var(--accent-soft);color:var(--accent);box-shadow:none}.nv-rail-item.on .nv-rail-ico,.nv-rail-item.on svg,.nv-rail-item.on .fluent-icon,.nv-rail-item.router-link-active .nv-rail-ico,.nv-rail-item.router-link-active svg,.nv-rail-item.router-link-active .fluent-icon{color:var(--accent)}.nv-rail-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.nv-rail-empty{color:var(--text-muted);padding:8px;font-size:14px;line-height:1.4}.nv-rail-badge{background:var(--accent);color:#fff;text-align:center;border-radius:999px;min-width:20px;padding:1px 7px;font-size:11px;font-weight:700}.nv-rail-resizer{top:var(--topbar-h,60px);bottom:0;left:var(--rail-width,244px);cursor:col-resize;z-index:60;touch-action:none;width:9px;position:absolute;transform:translate(-5px)}.nv-rail-resizer:before{content:"";width:1px;transition:background var(--dur) var(--ease);background:0 0;position:absolute;top:0;bottom:0;left:4px}.nv-rail-resizer:hover:before,.nv-rail-resizer.dragging:before{background:var(--accent);width:2px;left:3px}.nv-main{background:0 0;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.nv-menu{-webkit-backdrop-filter:var(--glass);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;min-width:228px;animation:nv-rise .16s var(--ease);background:#ffffffdb;border:1px solid #ffffffb3;margin-top:8px;padding:6px;position:absolute;top:100%;right:0;overflow:hidden}.nv-menu-info{color:inherit;padding:10px 12px;text-decoration:none;display:block}a.nv-menu-info:hover{background:var(--surface-hover)}.nv-menu-info-name{font-size:13px;font-weight:600;display:block}.nv-menu-info-email{color:var(--text-muted);margin-top:2px;font-size:12px;display:block}.nv-menu-divider{background:var(--border);height:1px;margin:4px 6px}.nv-menu-item{cursor:pointer;text-align:left;width:100%;font-size:14px;font:inherit;color:inherit;background:0 0;border:0;border-radius:10px;justify-content:flex-start;align-items:center;gap:8px;padding:9px 12px;display:flex}.nv-menu-item-label{flex:1;min-width:0}.nv-menu-item:hover{background:var(--surface-hover)}.nv-menu-item.on{color:var(--accent);font-weight:600}.nv-menu-check{color:var(--accent);flex-shrink:0}.nv-menu-action{color:var(--accent);font-weight:500}.nv-menu-plus{text-align:center;width:18px;font-weight:700}.nv-chip,.nv-user{z-index:100;position:relative}.nv-chip-btn{cursor:pointer;height:36px;font:inherit;color:inherit;background:#fff9;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 10px 0 6px;display:flex}.nv-chip-btn:hover,.nv-chip-btn.open{background:#ffffffeb}.nv-avatar{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:grid}.nv-avatar.sm{width:22px;height:22px;font-size:10px}.nv-chip-name{color:var(--ink);font-size:13px;font-weight:600}.nv-chip-arrow{color:var(--text-muted);flex-shrink:0}.nv-user-btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid;box-shadow:0 4px 12px #3578e547}@media (width<=720px){.nv-topbar .nv-chip-name,.nv-topbar .nv-chip-arrow{display:none}}html,body,#app{min-height:100vh;margin:0}@media (width<=768px){html,body,#app{height:100dvh;max-height:100dvh;overflow:hidden}body:before{content:"";height:env(safe-area-inset-top,0px);background:var(--paper);z-index:10000;pointer-events:none;position:fixed;top:0;left:0;right:0}}html{-webkit-tap-highlight-color:transparent;touch-action:manipulation}body{background:var(--paper);overscroll-behavior-y:none;-webkit-font-smoothing:antialiased}button{font-family:inherit}body.resizing-pane,body.resizing-pane *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}
