:root{--brand-50:#eef2ff;--brand-100:#e0e7ff;--brand-200:#c7d2fe;--brand-500:#6366f1;--brand-600:#4f46e5;--brand-700:#4338ca;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--success-bg:#ecfdf5;--success-fg:#047857;--success-bd:#a7f3d0;--danger-bg:#fef2f2;--danger-fg:#b91c1c;--danger-bd:#fecaca;--warn-bg:#fffbeb;--warn-fg:#b45309;--bg:var(--gray-50);--surface:#fff;--surface-alt:var(--gray-50);--border:var(--gray-200);--border-soft:var(--gray-100);--text:var(--gray-900);--text-muted:var(--gray-500);--text-subtle:var(--gray-400);--sidebar-w:264px;--sidebar-bg:var(--gray-900);--sidebar-fg:#94a3b8;--sidebar-fg-hover:#e2e8f0;--sidebar-active:#fff;--sidebar-hover:#ffffff0f;--sidebar-line:#ffffff14;--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-sm:0 1px 3px 0 #0f172a12, 0 1px 2px -1px #0f172a0a;--shadow-md:0 4px 12px -2px #0f172a14, 0 2px 6px -2px #0f172a0a;--shadow-lg:0 18px 40px -12px #0f172a2e;--ring:0 0 0 3px #6366f12e;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:18px;--r-full:9999px;--header-h:64px;--gutter:clamp(1rem, 1rem + 1.2vw, 2rem);--ease:cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI Variable Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.9375rem;line-height:1.55}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-layout{min-height:100dvh}.main-content{min-width:0;min-height:100dvh;margin-left:var(--sidebar-w);transition:margin-left .25s var(--ease);flex-direction:column;display:flex}.content-wrapper{width:100%;max-width:1320px;padding:var(--gutter);flex:1;margin-inline:auto}.sidebar{inset-block:0;z-index:60;width:var(--sidebar-w);background-color:var(--sidebar-bg);color:var(--sidebar-fg);overscroll-behavior:contain;transition:transform .25s var(--ease);flex-direction:column;display:flex;position:fixed;left:0;overflow-y:auto}.sidebar-header{height:var(--header-h);flex:0 0 var(--header-h);border-bottom:1px solid var(--sidebar-line);align-items:center;gap:.75rem;padding-inline:1.25rem;display:flex}.sidebar-logo{border-radius:var(--r-md);background:linear-gradient(135deg, var(--brand-500), var(--brand-700));color:#fff;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 4px 12px -2px #4f46e580}.sidebar-brand{min-width:0}.sidebar-brand strong{color:#fff;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;display:block;overflow:hidden}.sidebar-brand span{text-transform:uppercase;letter-spacing:.09em;color:var(--gray-500);font-size:.6875rem;display:block}.sidebar-nav{flex:1;padding:1rem .75rem}.nav-section{text-transform:uppercase;letter-spacing:.09em;color:var(--gray-600);padding:1rem .75rem .4rem;font-size:.6875rem;font-weight:600}.nav-section:first-child{padding-top:.25rem}.nav-item{border-radius:var(--r-md);color:var(--sidebar-fg);transition:background-color .15s var(--ease), color .15s var(--ease);align-items:center;gap:.75rem;margin-bottom:.125rem;padding:.625rem .75rem;font-size:.875rem;font-weight:500;display:flex;position:relative}.nav-item svg{opacity:.85;flex-shrink:0}.nav-item:hover{background-color:var(--sidebar-hover);color:var(--sidebar-fg-hover)}.nav-item.active{color:var(--sidebar-active);background-color:#6366f129}.nav-item.active svg{opacity:1;color:var(--brand-200)}.nav-item.active:before{content:"";background-color:var(--brand-500);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-.75rem;translate:0 -50%}.sidebar-footer{border-top:1px solid var(--sidebar-line);padding:.875rem}.sidebar-user{border-radius:var(--r-md);background-color:#ffffff0a;align-items:center;gap:.6875rem;padding:.5rem;display:flex}.sidebar-user-meta{min-width:0;line-height:1.3}.sidebar-user-meta strong{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;display:block;overflow:hidden}.sidebar-user-meta span{color:var(--gray-500);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;display:block;overflow:hidden}.sidebar-backdrop{z-index:55;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s var(--ease), visibility .25s var(--ease);background-color:#0f172a80;position:fixed;inset:0}.header{z-index:40;height:var(--header-h);padding-inline:var(--gutter);-webkit-backdrop-filter:saturate(180%)blur(8px);backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--border);background-color:#ffffffd9;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:sticky;top:0}.header-left,.header-right{align-items:center;gap:.75rem;min-width:0;display:flex}.header-title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.sidebar-toggle{border:1px solid var(--border);border-radius:var(--r-md);background-color:var(--surface);width:38px;height:38px;color:var(--gray-600);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:none}.sidebar-toggle:hover{background-color:var(--gray-100);color:var(--text)}.avatar{border-radius:var(--r-full);background:linear-gradient(135deg, var(--brand-500), var(--brand-700));color:#fff;letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:.8125rem;font-weight:600;display:grid}.avatar-sm{width:32px;height:32px;font-size:.75rem}.avatar-lg{width:44px;height:44px;font-size:.9375rem}.dropdown{position:relative}.dropdown-trigger{border-radius:var(--r-full);cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:.5rem;padding:.25rem .5rem .25rem .25rem;display:flex}.dropdown-trigger:hover,.dropdown-trigger[aria-expanded=true]{background-color:var(--gray-100);border-color:var(--border)}.dropdown-trigger .chevron{color:var(--text-subtle);transition:rotate .2s var(--ease)}.dropdown-trigger[aria-expanded=true] .chevron{rotate:180deg}.dropdown-name{white-space:nowrap;text-overflow:ellipsis;max-width:12ch;font-size:.875rem;font-weight:500;overflow:hidden}.dropdown-menu{z-index:50;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);min-width:220px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .15s var(--ease), translate .15s var(--ease), visibility .15s var(--ease);padding:.375rem;position:absolute;top:calc(100% + .5rem);right:0;translate:0 -6px}.dropdown-menu[data-open=true]{opacity:1;visibility:visible;translate:0}.dropdown-header{border-bottom:1px solid var(--border-soft);margin-bottom:.375rem;padding:.625rem .75rem;line-height:1.35}.dropdown-header strong{font-size:.875rem;font-weight:600;display:block}.dropdown-header span{color:var(--text-muted);word-break:break-all;font-size:.75rem;display:block}.dropdown-item{border-radius:var(--r-sm);text-align:left;width:100%;color:var(--gray-700);cursor:pointer;transition:background-color .12s var(--ease), color .12s var(--ease);background:0 0;border:0;align-items:center;gap:.625rem;padding:.5rem .75rem;font-size:.875rem;display:flex}.dropdown-item:hover{background-color:var(--gray-100);color:var(--text)}.dropdown-item.is-danger{color:var(--danger-fg)}.dropdown-item.is-danger:hover{background-color:var(--danger-bg)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.page-head h1{letter-spacing:-.02em;font-size:clamp(1.25rem,1.1rem + .6vw,1.625rem);font-weight:650;line-height:1.2}.page-head p{color:var(--text-muted);margin-top:.25rem;font-size:.875rem}.page-head-actions{flex-wrap:wrap;gap:.625rem;display:flex}.card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.card-header{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1.125rem 1.25rem;display:flex}.card-header h2{letter-spacing:-.01em;font-size:.9375rem;font-weight:600}.card-header p{color:var(--text-muted);margin-top:.125rem;font-size:.8125rem}.card-body{padding:1.25rem}.card-footer{border-top:1px solid var(--border-soft);background-color:var(--surface-alt);border-radius:0 0 var(--r-lg) var(--r-lg);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.625rem;padding:1rem 1.25rem;display:flex}.grid{gap:1.25rem;display:grid}.grid-stats{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.stat-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);transition:box-shadow .2s var(--ease), transform .2s var(--ease);align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{border-radius:var(--r-md);background-color:var(--brand-50);width:42px;height:42px;color:var(--brand-600);flex-shrink:0;place-items:center;display:grid}.stat-icon.is-green{background-color:var(--success-bg);color:var(--success-fg)}.stat-icon.is-amber{background-color:var(--warn-bg);color:var(--warn-fg)}.stat-icon.is-slate{background-color:var(--gray-100);color:var(--gray-600)}.stat-label{color:var(--text-muted);font-size:.8125rem;font-weight:500}.stat-value{letter-spacing:-.03em;margin-top:.125rem;font-size:1.75rem;font-weight:650;line-height:1.15}.stat-hint{color:var(--text-subtle);margin-top:.25rem;font-size:.75rem}.btn{border-radius:var(--r-md);white-space:nowrap;cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease), transform 80ms var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.5625rem 1rem;font-size:.875rem;font-weight:550;line-height:1.25;display:inline-flex}.btn:active{transform:scale(.985)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;pointer-events:none}.btn svg{flex-shrink:0}.btn-primary{background-color:var(--brand-600);color:#fff;box-shadow:0 1px 2px #0f172a1a}.btn-primary:hover{background-color:var(--brand-700)}.btn-primary:focus-visible{box-shadow:var(--ring);outline:none}.btn-secondary{background-color:var(--surface);border-color:var(--border);color:var(--gray-700);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background-color:var(--gray-50);border-color:var(--gray-300);color:var(--text)}.btn-ghost{color:var(--gray-600);background-color:#0000}.btn-ghost:hover{background-color:var(--gray-100);color:var(--text)}.btn-danger{background-color:var(--surface);border-color:var(--danger-bd);color:var(--danger-fg)}.btn-danger:hover{background-color:var(--danger-bg)}.btn-sm{border-radius:var(--r-sm);padding:.375rem .75rem;font-size:.8125rem}.btn-icon{width:34px;height:34px;padding:.5rem}.btn-block{width:100%}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.form-group{flex-direction:column;gap:.375rem;min-width:0;display:flex}.form-label{color:var(--gray-700);font-size:.8125rem;font-weight:550}.form-label .req{color:#ef4444}.form-input{border:1px solid var(--gray-300);border-radius:var(--r-md);background-color:var(--surface);width:100%;transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:.625rem .875rem;font-size:.875rem}.form-input::placeholder{color:var(--text-subtle)}.form-input:hover:not(:focus){border-color:var(--gray-400)}.form-input:focus{border-color:var(--brand-500);box-shadow:var(--ring);outline:none}.form-input.has-error{border-color:#f87171}.form-input.has-error:focus{box-shadow:0 0 0 3px #ef444426}.form-hint{color:var(--text-muted);font-size:.75rem}.form-error{color:#dc2626;font-size:.75rem;font-weight:500;display:block}.input-affix{align-items:center;display:flex;position:relative}.input-affix .form-input{padding-right:2.75rem}.input-affix-btn{border-radius:var(--r-sm);width:30px;height:30px;color:var(--text-subtle);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);background:0 0;border:0;place-items:center;display:grid;position:absolute;right:.375rem}.input-affix-btn:hover{background-color:var(--gray-100);color:var(--gray-600)}.fieldset{border:0;margin-top:1.75rem}.fieldset-legend{border-bottom:1px solid var(--border);letter-spacing:-.01em;width:100%;margin-bottom:1rem;padding-bottom:.625rem;font-size:.9375rem;font-weight:600;display:block}.fieldset-legend small{color:var(--text-muted);margin-top:.125rem;font-size:.8125rem;font-weight:400;display:block}.perm-module{border:1px solid var(--border);border-radius:var(--r-md);background-color:var(--surface-alt);padding:1rem 1.125rem}.perm-module-title{text-transform:uppercase;letter-spacing:.06em;color:var(--brand-600);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.875rem;font-size:.8125rem;font-weight:600;display:flex}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;display:grid}.checkbox-label{border-radius:var(--r-sm);cursor:pointer;transition:background-color .12s var(--ease), border-color .12s var(--ease);border:1px solid #0000;align-items:center;gap:.5rem;padding:.4375rem .625rem;font-size:.8125rem;display:flex}.checkbox-label:hover{background-color:var(--surface);border-color:var(--border)}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--brand-600);cursor:pointer;flex-shrink:0}.checkbox-label:has(input:disabled){cursor:not-allowed;opacity:.65}.checkbox-label:has(input:disabled):hover{background-color:#0000;border-color:#0000}.toolbar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.875rem 1.25rem;display:flex}.search-field{flex:240px;min-width:0;position:relative}.search-field svg{color:var(--text-subtle);pointer-events:none;position:absolute;top:50%;left:.75rem;translate:0 -50%}.search-field .form-input{padding-left:2.375rem}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table th,.table td{text-align:left;vertical-align:middle;padding:.875rem 1.25rem;font-size:.875rem}.table thead th{background-color:var(--surface-alt);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap;font-size:.75rem;font-weight:600;position:sticky;top:0}.table tbody tr{border-bottom:1px solid var(--border-soft);transition:background-color .12s var(--ease)}.table tbody tr:last-child{border-bottom:0}.table tbody tr:hover{background-color:var(--gray-50)}.table .align-right{text-align:right}.cell-user{align-items:center;gap:.75rem;min-width:0;display:flex}.cell-user-text{min-width:0}.cell-user-text>strong{flex-wrap:wrap;align-items:center;gap:.375rem;font-weight:550;line-height:1.3;display:flex}.cell-user-text>span{color:var(--text-muted);word-break:break-word;font-size:.8125rem;display:block}.row-actions{justify-content:flex-end;gap:.5rem;display:flex}.badge{border-radius:var(--r-full);white-space:nowrap;align-items:center;gap:.25rem;padding:.1875rem .5rem;font-size:.75rem;font-weight:550;line-height:1.35;display:inline-flex}.badge-brand{background-color:var(--brand-50);color:var(--brand-700)}.badge-neutral{background-color:var(--gray-100);color:var(--gray-600)}.badge-success{background-color:var(--success-bg);color:var(--success-fg)}.badge-danger{background-color:var(--danger-bg);color:var(--danger-fg)}.badge-purple{color:#6d28d9;background-color:#f5f3ff}.badge-list{flex-wrap:wrap;gap:.25rem;max-width:320px;display:flex}.alert{border-radius:var(--r-md);animation:fade-in-down .3s var(--ease) both;border:1px solid;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1rem;font-size:.875rem;display:flex}.alert svg{flex-shrink:0;margin-top:1px}.alert p{flex:1;min-width:0}.alert-success{background-color:var(--success-bg);border-color:var(--success-bd);color:var(--success-fg)}.alert-danger{background-color:var(--danger-bg);border-color:var(--danger-bd);color:var(--danger-fg)}.alert-close{color:currentColor;opacity:.55;cursor:pointer;border-radius:var(--r-sm);transition:opacity .15s var(--ease);background:0 0;border:0;flex-shrink:0;padding:2px;line-height:0}.alert-close:hover{opacity:1}.empty-state{text-align:center;flex-direction:column;align-items:center;padding:3.5rem 1.5rem;display:flex}.empty-state-icon{border-radius:var(--r-full);background-color:var(--gray-100);width:52px;height:52px;color:var(--text-subtle);place-items:center;margin-bottom:1rem;display:grid}.empty-state h3{font-size:.9375rem;font-weight:600}.empty-state p{max-width:42ch;color:var(--text-muted);margin-top:.25rem;font-size:.875rem}.empty-state .btn{margin-top:1.25rem}.auth-layout{background:radial-gradient(60rem 32rem at 12% -10%, #e0e7ff 0%, transparent 60%), radial-gradient(48rem 28rem at 108% 108%, #ede9fe 0%, transparent 62%), var(--gray-50);place-items:center;min-height:100dvh;padding:1.5rem 1rem;display:grid}.auth-card-wrap{width:100%;max-width:420px;animation:fade-in-up .45s var(--ease) both}.auth-brand{letter-spacing:-.01em;justify-content:center;align-items:center;gap:.625rem;margin-bottom:1.5rem;font-size:1rem;font-weight:600;display:flex}.auth-brand .sidebar-logo{width:36px;height:36px}.auth-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:clamp(1.5rem,1.1rem + 2vw,2.25rem)}.auth-title{letter-spacing:-.02em;text-align:center;font-size:1.375rem;font-weight:650}.auth-subtitle{text-align:center;color:var(--text-muted);margin-top:.375rem;margin-bottom:1.75rem;font-size:.875rem}.auth-form{flex-direction:column;gap:1.125rem;display:flex}.auth-footer{border-top:1px solid var(--border-soft);text-align:center;color:var(--text-muted);margin-top:1.5rem;padding-top:1.25rem;font-size:.875rem}.auth-footer a{color:var(--brand-600);font-weight:550}.auth-footer a:hover{color:var(--brand-700);text-decoration:underline}.auth-hint{border:1px dashed var(--border);border-radius:var(--r-md);background-color:var(--surface-alt);color:var(--text-muted);text-align:center;margin-top:1.25rem;padding:.75rem .875rem;font-size:.75rem}.auth-hint code{color:var(--gray-700);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.label-row{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}@keyframes fade-in-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.main-content{margin-left:0}.sidebar{box-shadow:var(--shadow-lg);transform:translate(-100%)}.sidebar-toggle{display:inline-flex}body.sidebar-open{overflow:hidden}body.sidebar-open .sidebar{transform:translate(0)}body.sidebar-open .sidebar-backdrop{opacity:1;visibility:visible}}@media (width<=768px){.page-head{align-items:stretch}.page-head-actions .btn{flex:auto}.badge-list{max-width:none}}@media (width<=640px){:root{--header-h:58px}body{font-size:.9375rem}.dropdown-name{display:none}.card-body,.card-header,.card-footer,.toolbar{padding-inline:1rem}.card-footer{justify-content:stretch}.card-footer .btn{flex:1}.form-grid{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.table-stack .table,.table-stack .table tbody,.table-stack .table tr{width:100%;display:block}.table-stack .table thead{display:none}.table-stack .table tbody tr{border-bottom:1px solid var(--border);padding:1rem}.table-stack .table tbody tr:hover{background-color:#0000}.table-stack .table td{border:0;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;min-width:0;padding:.4375rem 0;display:flex}.table-stack .table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);font-size:.6875rem;font-weight:600}.table-stack .table td.cell-primary{border-bottom:1px solid var(--border-soft);margin-bottom:.5rem;padding-bottom:.75rem}.table-stack .table td.cell-primary:before{content:none}.table-stack .table td .badge-list{max-width:100%}.table-stack .row-actions{justify-content:stretch;width:100%;margin-top:.5rem}.table-stack .row-actions>*{flex:1}.table-stack .row-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.sidebar,.header,.sidebar-backdrop,.row-actions,.page-head-actions{display:none!important}.main-content{margin-left:0}}.chart-legend{color:var(--text-muted);flex-wrap:wrap;gap:1rem;margin-bottom:1rem;font-size:.8125rem;display:flex}.chart-legend-item{align-items:center;gap:.375rem;display:flex}.chart-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.chart-scroll{padding-bottom:.25rem;overflow-x:auto}.chart-plot{height:var(--chart-h,220px);align-items:stretch;gap:.625rem;width:max-content;min-width:100%;padding-inline:.25rem;display:flex}.chart-group{flex-direction:column;flex:none;min-width:34px;display:flex}.chart-bars{border-bottom:1px solid var(--border);flex:1;justify-content:center;align-items:flex-end;gap:3px;display:flex}.chart-bar{width:11px;min-height:2px;transition:height .2s var(--ease);border-radius:3px 3px 0 0}.chart-label{color:var(--text-subtle);text-align:center;white-space:nowrap;margin-top:.5rem;font-size:.6875rem}.chart-empty{height:var(--chart-h,220px);color:var(--text-subtle);place-items:center;font-size:.875rem;display:grid}.filter-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:1.25rem;display:flex}.filter-form .form-group{flex:none}.filter-form .form-input{min-width:9.5rem}@media (width<=640px){.chart-plot{height:180px}}
