.cs-backend{--bs-blue:#0d6efd;--primary:#0d6efd;--primary-h:#0b5ed7;--primary-a:#0a58ca;--primary-soft:rgba(13,110,253,.10);--success:#198754;--danger:#dc3545;--warning:#ffc107;--info:#0dcaf0;--success-ink:#198754;--warning-ink:#9a6a00;--danger-ink:#dc3545;--info-ink:#0a7ea3;--success-soft:rgba(25,135,84,.12);--warning-soft:rgba(255,193,7,.18);--danger-soft:rgba(220,53,69,.12);--info-soft:rgba(13,202,240,.14);--bg:#f8f9fa;--surface:#ffffff;--surface-2:#f8f9fa;--navbar:#e9ecef;--navbar-search:#ffffff;--sidebar:#ffffff;--border:#dee2e6;--border-soft:#e9ecef;--text:#212529;--heading:#1b1e21;--muted:#6c757d;--link:#0d6efd;--radius:.375rem;--radius-sm:.25rem;--radius-lg:.5rem;--radius-pill:50rem;--shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);--shadow:0 .5rem 1rem rgba(0,0,0,.10);--shadow-lg:0 1rem 3rem rgba(0,0,0,.175);--focus-ring:0 0 0 .25rem rgba(13,110,253,.25);--font:var(--font-inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}.cs-backend.theme-dark{--bg:#1a1d20;--surface:#2b3035;--surface-2:#212529;--navbar:#0d0f11;--sidebar:#212529;--border:#3a4046;--border-soft:#343a40;--navbar:#15181b;--navbar-search:#2b3035;--text:#dee2e6;--heading:#f8f9fa;--muted:#9ba3ab;--link:#6ea8fe;--primary-h:#3d8bfd;--primary-soft:rgba(13,110,253,.18);--warning-ink:#ffd351;--info-ink:#6edff6;--success-ink:#75b798;--danger-ink:#ea868f;--shadow-sm:0 .125rem .25rem rgba(0,0,0,.5);--shadow:0 .5rem 1rem rgba(0,0,0,.55);--shadow-lg:0 1rem 3rem rgba(0,0,0,.7)}.cs-backend *,.cs-backend :after,.cs-backend :before{box-sizing:border-box}.cs-shell{display:grid;grid-template-columns:240px 1fr;align-items:start}.cs-navbar{position:sticky;top:0;z-index:40;height:56px;background:var(--navbar);color:var(--text);border-bottom:1px solid var(--border);gap:1rem;padding:0 1rem;box-shadow:var(--shadow-sm)}.cs-brand,.cs-navbar{display:flex;align-items:center}.cs-brand{gap:.55rem;font-weight:600;font-size:1.05rem;color:var(--heading);white-space:nowrap;padding-right:.5rem;text-decoration:none;letter-spacing:.1px}.cs-brand .cs-brand-mark{width:26px;height:26px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:700}.cs-brand .cs-brand-sub{color:var(--muted);font-weight:400}.cs-nav-search{flex:1;max-width:420px}.cs-nav-search input{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius);background:var(--navbar-search);color:var(--text);padding:0 .75rem;font-size:.9rem;font-family:inherit}.cs-nav-search input::-moz-placeholder{color:var(--muted);opacity:.8}.cs-nav-search input::placeholder{color:var(--muted);opacity:.8}.cs-nav-search input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.cs-nav-right{margin-left:auto;display:flex;align-items:center;gap:.9rem}.cs-nav-icon{position:relative;color:var(--muted);cursor:pointer;display:grid;place-items:center;background:none;border:none;padding:.25rem}.cs-nav-icon:hover{color:var(--heading)}.cs-nav-badge{position:absolute;top:-5px;right:-7px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;line-height:1;padding:.15rem .3rem;border-radius:10px;min-width:16px;text-align:center}.cs-nav-user{display:flex;align-items:center;gap:.55rem;padding-left:.9rem;border-left:1px solid var(--border)}.cs-nav-user .cs-who{line-height:1.15;text-align:right}.cs-nav-user .cs-who b{display:block;color:var(--heading);font-weight:600;font-size:.85rem}.cs-nav-user .cs-who span{color:var(--muted);font-size:.72rem}.cs-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:600;font-size:.8rem;flex:none}.cs-sidebar{position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto;background:var(--sidebar);border-right:1px solid var(--border);padding:1rem .75rem}.cs-side-head{font-size:.75rem;font-weight:600;letter-spacing:0;color:var(--muted);padding:.5rem .75rem .35rem;margin-top:.5rem}.cs-side-head:first-child{margin-top:0}.cs-side-link{display:flex;align-items:center;gap:.65rem;padding:.5rem .75rem;border-radius:var(--radius);color:var(--text);text-decoration:none;font-size:.9rem;font-weight:500;margin-bottom:1px}.cs-side-link .cs-ico{width:18px;height:18px;opacity:.7;flex:none}.cs-side-link:hover{background:var(--border-soft)}.cs-side-link.active{background:var(--primary);color:#fff}.cs-side-link.active .cs-ico{opacity:1}.cs-side-link .cs-side-pill{margin-left:auto;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;padding:.1rem .4rem;border-radius:10px;min-width:18px;text-align:center}.cs-side-link.active .cs-side-pill{background:rgba(255,255,255,.28)}.cs-main{padding:1.5rem 1.75rem 3rem;max-width:1240px;width:100%}.cs-crumbs{font-size:.82rem;margin-bottom:.9rem}.cs-crumbs ol{flex-wrap:wrap;list-style:none;margin:0;padding:0}.cs-crumbs li,.cs-crumbs ol{display:flex;align-items:center;gap:.4rem}.cs-crumbs li{min-width:0}.cs-crumbs a{color:var(--muted);text-decoration:none}.cs-crumbs a:hover{color:var(--primary)}.cs-crumb-current{color:var(--heading);font-weight:500}.cs-crumb-sep{color:var(--muted);opacity:.55;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cs-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.cs-page-title{font-size:1.6rem;font-weight:600;margin:0;color:var(--heading);letter-spacing:-.01em;text-wrap:balance}.cs-page-sub{color:var(--muted);font-size:.9rem;margin-top:.25rem}.cs-toolbar{display:flex;gap:.5rem;flex:none;align-items:center}.cs-btn{font-family:inherit;font-size:.875rem;font-weight:500;line-height:1.4;border-radius:var(--radius);padding:.44rem .85rem;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.cs-btn:disabled,.cs-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.cs-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.cs-btn-primary{background:var(--primary);color:#fff}.cs-btn-primary:hover:not(:disabled){background:var(--primary-h)}.cs-btn-outline{background:transparent;color:var(--text);border-color:var(--border)}.cs-btn-outline:hover:not(:disabled){background:var(--border-soft)}.cs-btn-danger{background:var(--danger);color:#fff}.cs-btn-danger:hover:not(:disabled){background:#bb2d3b}.cs-btn-danger-outline{background:transparent;color:var(--danger);border-color:var(--danger)}.cs-btn-danger-outline:hover:not(:disabled){background:var(--danger);color:#fff}.cs-btn-success{background:var(--success);color:#fff}.cs-btn-success:hover:not(:disabled){background:#157347}.cs-btn-ghost{background:transparent;color:var(--muted);border-color:transparent}.cs-btn-ghost:hover:not(:disabled){color:var(--heading);background:var(--border-soft)}.cs-btn-sm{padding:.25rem .6rem;font-size:.8rem}.cs-btn-lg{padding:.6rem 1.1rem;font-size:.95rem}.cs-btn-block{width:100%}.cs-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.cs-card-head{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem}.cs-card-title{font-size:1rem;font-weight:600;margin:0;color:var(--heading)}.cs-card-body{padding:1rem}.cs-card-link{color:var(--link);font-size:.85rem;text-decoration:none;font-weight:500}.cs-card-link:hover{text-decoration:underline}.cs-stat{padding:1rem;position:relative;overflow:hidden}.cs-stat .cs-stat-rail{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}.cs-stat-k{font-size:.78rem;font-weight:600;letter-spacing:0;color:var(--muted)}.cs-stat-v{font-size:2rem;font-weight:600;color:var(--heading);line-height:1.1;margin:.35rem 0 .15rem;font-variant-numeric:tabular-nums}.cs-stat-d{font-size:.8rem;color:var(--muted);display:flex;align-items:center;gap:.3rem}.cs-up{color:var(--success);font-weight:600}.cs-down{color:var(--danger);font-weight:600}.cs-table-wrap{overflow-x:auto}.cs-table{width:100%;border-collapse:collapse;font-size:.88rem}.cs-table thead th{text-align:left;font-size:.75rem;font-weight:600;letter-spacing:0;color:var(--muted);padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap}.cs-table tbody td{padding:.55rem 1rem;border-bottom:1px solid var(--border-soft);vertical-align:middle;color:var(--text)}.cs-table tbody tr:last-child td{border-bottom:none}.cs-table.cs-table-hover tbody tr:hover td{background:var(--border-soft)}.cs-cell-strong{font-weight:600;color:var(--heading)}.cs-cell-mono{font-family:var(--font);font-size:.82rem;color:var(--muted)}.cs-cell-mono,.cs-num{font-variant-numeric:tabular-nums}.cs-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;padding:.22rem .55rem;border-radius:var(--radius-pill);line-height:1}.cs-badge .cs-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.cs-badge-success{color:var(--success-ink);background:var(--success-soft)}.cs-badge-warning{color:var(--warning-ink);background:var(--warning-soft)}.cs-badge-danger{color:var(--danger-ink);background:var(--danger-soft)}.cs-badge-info{color:var(--info-ink);background:var(--info-soft)}.cs-badge-primary{color:var(--primary);background:var(--primary-soft)}.cs-badge-muted{color:var(--muted);background:var(--border-soft)}.cs-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .35rem;border-radius:10px;background:var(--danger);color:#fff;font-size:.7rem;font-weight:700}.cs-label{display:block;color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.02em;margin-bottom:.3rem}.cs-input,.cs-select,.cs-textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--text);font-size:.9rem;font-family:inherit;line-height:1.4;transition:border-color .12s,box-shadow .12s}.cs-input::-moz-placeholder,.cs-textarea::-moz-placeholder{color:var(--muted);opacity:.7}.cs-input::placeholder,.cs-textarea::placeholder{color:var(--muted);opacity:.7}.cs-input:focus,.cs-select:focus,.cs-textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.cs-textarea{min-height:96px;resize:vertical}.cs-help{color:var(--muted);font-size:.78rem;margin-top:.3rem}.cs-field{margin-bottom:1rem}.cs-alert{border:1px solid transparent;border-radius:var(--radius);padding:.7rem 1rem;font-size:.875rem}.cs-alert-danger{color:var(--danger-ink);background:var(--danger-soft);border-color:rgba(220,53,69,.25)}.cs-alert-success{color:var(--success-ink);background:var(--success-soft);border-color:rgba(25,135,84,.25)}.cs-alert-info{color:var(--info-ink);background:var(--info-soft);border-color:rgba(13,202,240,.3)}.cs-alert-warning{color:var(--warning-ink);background:var(--warning-soft);border-color:rgba(255,193,7,.35)}.cs-list-row{display:flex;align-items:center;gap:.8rem;padding:.6rem 1rem;border-bottom:1px solid var(--border-soft)}.cs-list-row:last-child{border-bottom:none}.cs-list-ic{width:34px;height:34px;border-radius:var(--radius);display:grid;place-items:center;flex:none}.cs-list-body{flex:1;min-width:0}.cs-list-body b{display:block;font-weight:600;color:var(--heading);font-size:.9rem}.cs-list-body span{color:var(--muted);font-size:.8rem}.cs-list-t{color:var(--muted);font-size:.78rem;white-space:nowrap}.cs-modal-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.5)}.cs-modal{width:100%;max-width:32rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.cs-modal-head{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem}.cs-modal-title{font-size:1.15rem;font-weight:600;margin:0;color:var(--heading)}.cs-modal-body{padding:1.25rem}.cs-modal-foot{padding:1rem 1.25rem;border-top:1px solid var(--border);display:flex;gap:.5rem;justify-content:flex-end}.cs-modal-close{background:none;border:none;color:var(--muted);cursor:pointer;padding:.25rem;display:grid;place-items:center;border-radius:var(--radius)}.cs-modal-close:hover{color:var(--heading);background:var(--border-soft)}.cs-muted{color:var(--muted)}.cs-mono{font-family:var(--font);font-variant-numeric:tabular-nums}textarea.cs-mono{font-family:var(--mono)}.cs-divider{height:1px;background:var(--border);border:none;margin:1.25rem 0}.cs-empty{text-align:center;color:var(--muted);padding:3rem 1rem;font-size:.9rem}.cs-grid,.cs-grid-2{display:grid;gap:1rem}.cs-grid-2{grid-template-columns:repeat(2,1fr)}.cs-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.cs-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.cs-grid-main{display:grid;grid-template-columns:1.6fr 1fr;gap:1.25rem;align-items:start}.cs-link{color:var(--link);text-decoration:none;font-weight:500}.cs-link:hover{text-decoration:underline}.cs-foot{color:var(--muted);font-size:.8rem;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.cs-loader{min-height:100vh;background:var(--bg);display:flex;align-items:center;justify-content:center}.cs-loader-dots{display:flex;gap:.5rem}.cs-loader-dots i{width:8px;height:8px;border-radius:50%;background:var(--primary);display:block;animation:cs-bounce .9s ease-in-out infinite both}.cs-loader-dots i:first-child{animation-delay:0s}.cs-loader-dots i:nth-child(2){animation-delay:.15s}.cs-loader-dots i:nth-child(3){animation-delay:.3s}@keyframes cs-bounce{0%,80%,to{transform:scale(.5);opacity:.5}40%{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.cs-loader-dots i{animation:none}}@media (max-width:900px){.cs-shell{grid-template-columns:1fr}.cs-sidebar{display:none}.cs-grid-4{grid-template-columns:repeat(2,1fr)}.cs-grid-2,.cs-grid-3,.cs-grid-main{grid-template-columns:1fr}.cs-main{padding:1.25rem 1rem 2.5rem}.cs-nav-search{display:none}}