:root{--bg: #F4F6F8;--bg-tint: #ECF0F4;--surface: #FFFFFF;--surface-2: #F8FAFC;--surface-hover: #F1F4F8;--surface-active: #E8EDF3;--border: #E3E7ED;--border-strong: #C9D1DB;--border-faint: #EEF1F5;--text: #0E1A2B;--text-muted: #5B6878;--text-faint: #8A95A4;--text-inverse: #FFFFFF;--primary: #0E7C66;--primary-hover: #0A5F4F;--primary-soft: #DBF0E7;--primary-text: #0A5F4F;--accent: #B45309;--accent-soft: #FEF0DC;--accent-text: #92400E;--success: #15803D;--success-soft: #DCFCE7;--warn: #B45309;--warn-soft: #FEF3C7;--danger: #B91C1C;--danger-soft: #FEE2E2;--info: #0369A1;--info-soft: #DBEAFE;--brand-red: #C0392B;--brand-dark: #2D3239;--note-yellow: #FFE780;--note-pink: #FFC4D1;--note-blue: #BFE3FF;--note-green: #C8F1C7;--note-orange: #FFD4A8;--note-purple: #DCC9FF;--radius-xs: 4px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(15, 26, 43, .04), 0 1px 1px rgba(15, 26, 43, .03);--shadow: 0 2px 8px rgba(15, 26, 43, .06), 0 1px 2px rgba(15, 26, 43, .04);--shadow-lg: 0 12px 28px rgba(15, 26, 43, .1), 0 4px 8px rgba(15, 26, 43, .05);--shadow-note: 0 1px 2px rgba(0,0,0,.08), 0 6px 12px rgba(0,0,0,.1);--sidebar-w: 248px;--sidebar-w-compact: 64px;--header-h: 56px;--font-sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}[data-theme=dark]{--bg: #161717;--bg-tint: #1A1B1B;--surface: #1A1B1B;--surface-2: #232425;--surface-hover: #2A2B2C;--surface-active: #313232;--border: #2B2C2C;--border-strong: #3D3E3E;--border-faint: #1F2020;--text: #ECEFF3;--text-muted: #9A9B9C;--text-faint: #636464;--text-inverse: #161717;--primary: #2DD4BF;--primary-hover: #14B8A6;--primary-soft: #0F3D38;--primary-text: #5EEAD4;--accent: #FBBF24;--accent-soft: #3A2A0A;--accent-text: #FCD34D;--success: #4ADE80;--success-soft: #0F3D24;--warn: #F59E0B;--warn-soft: #3D2C0E;--danger: #F87171;--danger-soft: #3D1818;--info: #5EEAD4;--info-soft: #0F3D38;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .5), 0 16px 32px rgba(0, 0, 0, .5);--shadow-note: 0 1px 2px rgba(0,0,0,.4), 0 6px 14px rgba(0,0,0,.5)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.005em;font-feature-settings:"ss01","cv11"}html.has-wallpaper .content{background-image:linear-gradient(color-mix(in oklab,var(--bg) 78%,transparent),color-mix(in oklab,var(--bg) 78%,transparent)),var(--jps-wallpaper);background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;color:inherit}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;width:100%;overflow:hidden;background:var(--bg)}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.sidebar-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-faint);height:var(--header-h)}.sidebar-head .logo{width:30px;height:30px;flex:0 0 30px;background:var(--brand-dark);border-radius:8px;display:grid;place-items:center;color:#fff;overflow:hidden}.sidebar-head .logo svg{width:22px;height:22px}.sidebar-head .logo:has(.ws-logo-custom){background:transparent;padding:0}.sidebar-head .logo .ws-logo-custom{width:100%!important;height:100%!important}[data-theme=dark] .sidebar-head .logo{background:#e6ecf3}[data-theme=dark] .sidebar-head .logo:has(.ws-logo-custom){background:transparent}[data-theme=dark] .sidebar-head .logo path:first-child{fill:#14171c}.sidebar-head .brand{display:flex;flex-direction:column;line-height:1.1}.sidebar-head .brand-name{font-weight:800;font-size:14px;letter-spacing:-.01em}.sidebar-head .brand-sub{font-size:11px;color:var(--text-muted);font-weight:500}.sidebar-section{padding:14px 10px 6px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-weight:700}.nav{display:flex;flex-direction:column;gap:1px;padding:4px 8px;overflow-y:auto;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:13.5px;font-weight:500;background:transparent;border:0;width:100%;text-align:left;position:relative}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary-text);font-weight:600}.nav-item .icn{width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center;color:currentColor}.nav-item .icn svg{width:19px;height:19px}.nav-item.active .icn{color:var(--primary-text)}.nav-item .badge{margin-left:auto;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;min-width:18px;text-align:center;position:relative;animation:badgeAura 2.2s ease-in-out infinite;box-shadow:0 0 color-mix(in oklab,var(--primary) 70%,transparent)}@keyframes badgeAura{0%{box-shadow:0 0 color-mix(in oklab,var(--primary) 65%,transparent)}70%{box-shadow:0 0 0 8px transparent}to{box-shadow:0 0 0 0 transparent}}.nav-item.has-unread .icn{position:relative}.nav-item.has-unread .icn:after{content:"";position:absolute;top:-1px;right:-1px;width:7px;height:7px;border-radius:50%;background:var(--primary);border:2px solid var(--surface);animation:dotAura 2.2s ease-in-out infinite}@keyframes dotAura{0%{box-shadow:0 0 color-mix(in oklab,var(--primary) 70%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.nav-item.muted-badge .badge{background:var(--surface-active);color:var(--text-muted)}.sidebar-foot{border-top:1px solid var(--border-faint);padding:10px 12px;display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#2dd4bf,#0e7c66);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;flex:0 0 32px}.avatar.sm{width:24px;height:24px;font-size:10px;flex-basis:24px}.avatar.lg{width:40px;height:40px;font-size:14px;flex-basis:40px}.avatar.xl{width:56px;height:56px;font-size:18px;flex-basis:56px}.user-meta{flex:1;min-width:0;line-height:1.15}.user-meta .name{font-weight:600;font-size:13px}.user-meta .role{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:4px}.user-meta .role .role-dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;background:var(--bg)}.topbar{display:flex;align-items:center;gap:12px;padding:0 20px;height:var(--header-h);border-bottom:1px solid var(--border);background:var(--surface);flex:0 0 var(--header-h)}.topbar h1{margin:0;font-size:15px;font-weight:700;letter-spacing:-.015em}.topbar .crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.topbar .crumbs .sep{opacity:.5}.topbar-spacer{flex:1}.topbar .search{position:relative;width:320px;max-width:36vw;display:flex;align-items:center;background:var(--surface-2);border:1px solid transparent;border-radius:var(--radius-sm);padding-right:8px}.topbar .search:hover{border-color:var(--border)}.topbar .search input{flex:1;min-width:0;background:transparent;border:0;border-radius:var(--radius-sm);padding:6px 8px 6px 32px;font-size:12.5px;outline:none;color:var(--text);transition:border-color .12s,background .12s}.topbar .search input:focus{outline:none}.topbar .search:focus-within{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 15%,transparent)}.topbar .search .icn-search{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.icon-btn{width:30px;height:30px;border-radius:var(--radius-sm);display:grid;place-items:center;background:transparent;border:0;color:var(--text-muted);cursor:pointer;position:relative;transition:background .1s,color .1s}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn .dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--danger);border:2px solid var(--surface)}.content{flex:1;min-height:0;overflow:auto;position:relative}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;letter-spacing:-.005em;transition:background .1s,border-color .1s,transform .05s;white-space:nowrap}.btn:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 1px color-mix(in oklab,var(--primary) 40%,black),inset 0 1px color-mix(in oklab,white 18%,transparent)}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted);box-shadow:none}.btn.ghost:hover{background:var(--surface-hover);color:var(--text)}.btn.danger{color:var(--danger);border-color:var(--border)}.btn.danger:hover{background:var(--danger-soft);border-color:color-mix(in oklab,var(--danger) 30%,transparent)}.btn.sm{padding:4px 9px;font-size:11.5px;gap:5px}.btn.lg{padding:9px 16px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:16px}.card-head{padding:12px 16px;border-bottom:1px solid var(--border-faint);display:flex;align-items:center;gap:10px}.card-head .title{font-weight:600;font-size:13px;letter-spacing:-.005em}.card-head .sub{font-size:12px;color:var(--text-muted)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:10.5px;font-weight:600;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);letter-spacing:-.005em}.chip.primary{background:var(--primary-soft);color:var(--primary-text);border-color:transparent}.chip.success{background:var(--success-soft);color:var(--success);border-color:transparent}.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.chip.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.chip.info{background:var(--info-soft);color:var(--info);border-color:transparent}.chip.accent{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}.hstack{display:flex;align-items:center;gap:8px}.vstack{display:flex;flex-direction:column;gap:8px}.spread{display:flex;align-items:center;justify-content:space-between;gap:8px}.grow{flex:1;min-width:0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll{overflow:auto}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--surface)}.page{padding:24px 28px;display:flex;flex-direction:column;gap:20px;min-height:100%}@media (max-width: 1280px){.page{padding:20px 22px;gap:16px}}@media (max-width: 980px){.page{padding:16px 18px;gap:14px}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.page-head h2{margin:0;font-size:20px;font-weight:700;letter-spacing:-.025em}.page-head .desc{margin-top:4px;font-size:13px;color:var(--text-muted)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{padding:9px 14px;font-size:13px;font-weight:600;color:var(--text-muted);border:0;background:transparent;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--primary-text);border-bottom-color:var(--primary)}.pill-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px}.pill-toggle button{border:0;background:transparent;padding:4px 10px;font-size:12px;font-weight:600;color:var(--text-muted);border-radius:4px}.pill-toggle button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.app.mobile{grid-template-columns:1fr}.app.mobile .sidebar{position:fixed;inset:0 auto 0 0;width:78%;max-width:320px;transform:translate(-100%);transition:transform .25s ease;z-index:50;box-shadow:var(--shadow-lg)}.app.mobile .sidebar.open{transform:translate(0)}.app.mobile .scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:40;opacity:0;pointer-events:none;transition:opacity .25s ease}.app.mobile .scrim.show{opacity:1;pointer-events:auto}.app.mobile .topbar{padding:0 12px}.app.mobile .topbar .search{display:none}.app.mobile .page{padding:16px;gap:14px}.app.mobile .mobile-tabbar{display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px 8px}.app.mobile .mobile-tabbar .tab-btn{background:transparent;border:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;border-radius:8px;color:var(--text-muted);font-size:10px;font-weight:600}.app.mobile .mobile-tabbar .tab-btn.active{color:var(--primary-text)}.mobile-tabbar{display:none}
