.dash{--dash-sidebar:13.75rem;--dash-top:3.25rem;--dash-bg:#f5f5f5;--dash-surface:#fff;--dash-text:#171717;--dash-muted:#8a8a8a;--dash-line:#ececec;--dash-hover:#f4f4f5;--dash-active:#f3f3f3;--dash-solid:#171717;background:var(--dash-bg);min-height:100dvh;color:var(--dash-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.dash.is-dark,html.dark .dash{--dash-bg:#09090b;--dash-surface:#121214;--dash-text:#f4f4f5;--dash-muted:#a1a1aa;--dash-line:#27272a;--dash-hover:#1c1c1f;--dash-active:#232326;--dash-solid:#fafafa;--dash-input-bg:#0c0c0e;--dash-shadow:0 16px 40px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.dash{--dash-input-bg:#fff;--dash-shadow:0 16px 40px #0000001f}.dash-mask{z-index:40;background:#00000047;position:fixed;inset:0}.dash-sidebar{width:var(--dash-sidebar);background:var(--dash-surface);border-right:1px solid var(--dash-line);flex-direction:column;flex-shrink:0;min-height:100dvh;transition:transform .2s,width .2s,margin .2s;display:flex}.dash-brand{height:var(--dash-top);border-bottom:1px solid var(--dash-line);padding:0 1rem}.dash-brand,.dash-brand__link{align-items:center;display:flex}.dash-brand__link{min-width:0;color:inherit;gap:.55rem;text-decoration:none}.dash-brand__mark{width:1.35rem;height:1.35rem;color:var(--dash-text);justify-content:center;align-items:center;display:flex}.dash-brand__name{letter-spacing:-.02em;font-size:.92rem;font-weight:650}.dash-nav{flex:1;min-height:0;padding:.85rem .65rem 1rem;overflow-y:auto}.dash-nav__group+.dash-nav__group{margin-top:1.1rem}.dash-nav__label{color:var(--dash-muted);padding:0 .55rem .4rem;font-size:.6875rem;font-weight:500}.dash-nav__item{color:#525252;cursor:pointer;text-align:left;box-sizing:border-box;background:0 0;border:0;border-radius:.5rem;align-items:center;gap:.55rem;width:100%;height:2.15rem;padding:0 .6rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:flex}html.dark .dash-nav__item{color:#a1a1aa}.dash-nav__item:hover{background:var(--dash-hover);color:var(--dash-text)}.dash-nav__item.is-active{background:var(--dash-active);color:var(--dash-text);font-weight:600}.dash-nav__icon{flex-shrink:0;width:1.05rem;height:1.05rem;display:flex}.dash-nav__icon :deep(svg){width:100%;height:100%}.dash-sidebar__foot{border-top:1px solid var(--dash-line);justify-content:space-between;align-items:center;padding:.65rem .85rem;display:flex}.dash-sidebar__foot-name{color:var(--dash-muted);font-size:.75rem}.dash-sidebar__foot-actions{gap:.15rem;display:flex}.dash-col{flex-direction:column;flex:1;min-width:0;min-height:100dvh;display:flex}.dash-top{height:var(--dash-top);background:var(--dash-surface);border-bottom:1px solid var(--dash-line);flex-shrink:0;align-items:center;gap:.5rem;padding:0 1rem 0 .65rem;display:flex}.dash-top__spacer{flex:1}.dash-top__right{align-items:center;gap:.15rem;display:flex}.dash-icon-btn{color:#737373;cursor:pointer;background:0 0;border:0;border-radius:.45rem;justify-content:center;align-items:center;width:2rem;height:2rem;text-decoration:none;display:inline-flex}.dash-icon-btn:hover{background:var(--dash-hover);color:var(--dash-text)}.dash-ico{width:1.05rem;height:1.05rem}.dash-ico-lg{color:#c4c4c4;width:1.75rem;height:1.75rem}.dash-user{margin-left:.35rem;position:relative}.dash-user__btn{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:.45rem;height:2rem;padding:0 .15rem 0 .4rem;display:flex}.dash-user__btn:hover{background:var(--dash-hover)}.dash-user__name{color:var(--dash-text);text-overflow:ellipsis;white-space:nowrap;max-width:7rem;font-size:.8125rem;font-weight:500;overflow:hidden}.dash-user__avatar{color:#14532d;background:linear-gradient(#86efac,#4ade80);border-radius:999px;justify-content:center;align-items:center;width:1.65rem;height:1.65rem;font-size:.65rem;font-weight:700;display:flex}.dash-user__menu{background:var(--dash-surface);border:1px solid var(--dash-line);z-index:30;border-radius:.65rem;width:10.5rem;padding:.3rem;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 10px 30px #00000014}.dash-user__item{text-align:left;width:100%;color:var(--dash-text);cursor:pointer;background:0 0;border:0;border-radius:.4rem;padding:.45rem .65rem;font-size:.8125rem;text-decoration:none;display:block}.dash-user__item:hover{background:var(--dash-hover)}.dash-user__item.is-danger{color:#dc2626}.dash-main{flex:1;min-height:0;overflow:auto}.dash-page{width:100%;max-width:72rem;margin:0 auto;padding:1.5rem 1.25rem 2.5rem}@media (width>=1280px){.dash-page{max-width:80rem;padding:1.75rem 2rem 3rem}}@media (width>=1920px){.dash-page{max-width:88rem}}.dash-page__head{margin-bottom:1.1rem}.dash-page__title{letter-spacing:-.02em;font-size:1.125rem;font-weight:700;line-height:1.3}.dash-page__desc{color:var(--dash-muted);margin-top:.25rem;font-size:.8125rem}.dash-stack{flex-direction:column;gap:.85rem;display:flex}.dash-tabs-inline{background:var(--dash-hover,#0000000a);border:1px solid var(--dash-line,#00000014);border-radius:12px;flex-wrap:wrap;gap:.4rem;margin:0 0 .85rem;padding:.35rem;display:flex}.dash-tabs-inline__btn{appearance:none;cursor:pointer;color:var(--dash-muted,#71717a);background:0 0;border:0;border-radius:9px;padding:.45rem .9rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.dash-tabs-inline__btn:hover{color:var(--dash-text,#18181b);background:#ffffff8c}.dash-tabs-inline__btn.is-on{color:var(--dash-text,#18181b);background:var(--dash-surface,#fff);box-shadow:0 1px 3px #00000014}html.dark .dash-tabs-inline{border-color:var(--dash-line);background:#ffffff0a}html.dark .dash-tabs-inline__btn{color:var(--dash-muted)}html.dark .dash-tabs-inline__btn:hover{color:var(--dash-text);background:#ffffff0f}html.dark .dash-tabs-inline__btn.is-on{color:var(--dash-text);background:#27272a;box-shadow:0 1px 3px #00000059}.dash-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.dash-toolbar__hint{color:var(--dash-muted);font-size:.8125rem}.dash-toolbar__actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.dash-search{width:min(16rem,100%);position:relative}.dash-search__ico{color:#a3a3a3;pointer-events:none;width:.9rem;height:.9rem;position:absolute;top:50%;left:.65rem;transform:translateY(-50%)}.dash-search input{border:1px solid var(--dash-line);background:var(--dash-surface);width:100%;height:2rem;color:var(--dash-text);border-radius:.5rem;outline:none;padding:0 .7rem 0 1.85rem;font-size:.8125rem}.dash-search input:focus{border-color:#d4d4d4}.dash-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;height:2rem;padding:0 .85rem;font-size:.8125rem;font-weight:550;display:inline-flex}.dash-btn.is-sm{height:1.75rem;padding:0 .6rem;font-size:.75rem}.dash-btn:disabled{opacity:.4;cursor:not-allowed}.dash-btn--ghost{background:var(--dash-surface);border-color:var(--dash-line);color:var(--dash-text)}.dash-btn--ghost:hover:not(:disabled){background:var(--dash-hover)}.dash-btn--solid{background:var(--dash-solid);color:#fff}html.dark .dash-btn--solid{color:#171717}.dash-btn--solid:hover:not(:disabled){filter:brightness(1.08)}.dash-panel{background:var(--dash-surface);border:1px solid var(--dash-line);border-radius:.75rem;min-height:14rem}.dash-stats{grid-template-columns:1fr 1fr;gap:0;display:grid}@media (width>=900px){.dash-stats{grid-template-columns:repeat(4,1fr)}}.dash-stat{border-bottom:1px solid var(--dash-line);padding:1.25rem 1.35rem}@media (width>=900px){.dash-stat{border-bottom:0;border-right:1px solid var(--dash-line)}.dash-stat:last-child{border-right:0}}.dash-stat__label{color:var(--dash-muted);font-size:.75rem}.dash-stat__value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:.35rem;font-size:1.35rem;font-weight:700}.dash-stat__sub{margin-top:.2rem}.dash-hint,.dash-stat__sub{color:var(--dash-muted);font-size:.75rem}.dash-hint{padding:0 .15rem;line-height:1.5}.dash-empty{text-align:center;flex-direction:column;min-height:16rem;padding:2.5rem 1rem}.dash-empty,.dash-empty__icon{justify-content:center;align-items:center;display:flex}.dash-empty__icon{opacity:.7;width:2.5rem;height:2.5rem;margin-bottom:.7rem}.dash-empty__title{color:var(--dash-text);font-size:.875rem;font-weight:600}.dash-empty__desc{color:var(--dash-muted);margin-top:.25rem;font-size:.75rem}.dash-table-wrap{overflow-x:auto}.dash-table{border-collapse:collapse;text-align:left;width:100%;font-size:.8125rem}.dash-table th{color:var(--dash-muted);background:0 0;padding:.7rem 1rem;font-size:.75rem;font-weight:550}.dash-table td,.dash-table th{border-bottom:1px solid var(--dash-line)}.dash-table td{vertical-align:middle;padding:.75rem 1rem}.dash-table tbody tr:last-child td{border-bottom:0}.dash-table tbody tr:hover{background:var(--dash-hover)}.is-strong{font-weight:600}.is-muted{color:var(--dash-muted);font-size:.75rem}.is-mono{color:#059669;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.is-num{font-variant-numeric:tabular-nums;color:var(--dash-muted)}.is-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.is-right{text-align:right}.dash-badge{border-radius:.3rem;padding:.1rem .45rem;font-size:.6875rem;font-weight:650;display:inline-flex}.dash-badge.is-ok{color:#047857;background:#ecfdf5}.dash-badge.is-off{color:#b91c1c;background:#fef2f2}.dash-badge.is-admin{color:#6d28d9;background:#f5f3ff}.dash-badge.is-muted{background:var(--dash-hover);color:var(--dash-muted)}html.dark .dash-badge.is-ok{color:#6ee7b7;background:#10b98126}html.dark .dash-badge.is-off{color:#fda4af;background:#f43f5e26}html.dark .dash-badge.is-admin{color:#c4b5fd;background:#8b5cf62e}.dash-link{cursor:pointer;background:0 0;border:0;padding:0 .2rem;font-size:.75rem;font-weight:600}.dash-link.is-primary{color:#2563eb}.dash-link.is-danger{color:#dc2626}.dash-pager{border-top:1px solid var(--dash-line);color:var(--dash-muted);justify-content:space-between;padding:.65rem 1rem;font-size:.75rem}.dash-pager,.dash-pager__btns{align-items:center;display:flex}.dash-pager__btns{gap:.4rem}.dash-pager__n{text-align:center;min-width:1.2rem;color:var(--dash-text)}.dash-form{flex-direction:column;gap:.75rem;min-height:0;padding:1.15rem 1.2rem 1.3rem;display:flex}.dash-form__title{font-size:.8125rem;font-weight:650}.dash-form__row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dash-field{color:var(--dash-muted);flex-direction:column;gap:.35rem;font-size:.75rem;font-weight:550;display:flex}.dash-input{border:1px solid var(--dash-line);background:var(--dash-bg);height:2.15rem;color:var(--dash-text);border-radius:.5rem;outline:none;padding:0 .7rem;font-size:.8125rem}.dash-input.is-area{resize:vertical;height:auto;padding:.55rem .7rem}.dash-input.is-select{width:7rem}.dash-input.is-num-field{width:4.5rem}.dash-check{color:var(--dash-text);cursor:pointer;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:550;display:inline-flex}.dash-list{margin:0;padding:0;list-style:none}.dash-list__row{border-bottom:1px solid var(--dash-line);flex-direction:column;gap:.5rem;padding:.95rem 1.1rem;display:flex}@media (width>=640px){.dash-list__row{flex-direction:row;align-items:flex-start}}.dash-list__row:last-child{border-bottom:0}.dash-list__title-row{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.dash-list__body{color:var(--dash-muted);white-space:pre-wrap;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin-top:.3rem;font-size:.8125rem;display:-webkit-box;overflow:hidden}.dash-list__ops{flex-shrink:0;gap:.5rem;display:flex}@media (width<=767px){.hide-sm{display:none}}@media (width<=899px){.hide-md{display:none}}@media (width<=1023px){.dash-sidebar{z-index:50;width:min(13.75rem,78vw);position:fixed;top:0;bottom:0;left:0;box-shadow:8px 0 28px #00000014}.dash-sidebar.is-open{transform:translate(0)}.dash-sidebar.is-closed{transform:translate(-105%)}}@media (width>=1024px){.dash-sidebar.is-closed{border:0;width:0;margin:0;overflow:hidden}}.dash-ops{flex-wrap:wrap;justify-content:flex-end;gap:.35rem .65rem;display:inline-flex}.dash-link.is-warn{color:#d97706}html.dark .dash-link.is-warn{color:#fbbf24}.dash-badge.is-deleted{color:#dc2626;background:#ef44441f}html.dark .dash-badge.is-deleted{color:#fca5a5;background:#ef44442e}.is-row-deleted td{opacity:.72}.is-xs{margin-top:.1rem;font-size:.7rem}.dash-modal-mask{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dash-modal{background:var(--dash-surface);width:min(28rem,100%);color:var(--dash-text);border:1px solid var(--dash-line);box-shadow:var(--dash-shadow);border-radius:.9rem;overflow:hidden}.dash-modal__head{border-bottom:1px solid var(--dash-line);justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.dash-modal__head h3{margin:0;font-size:.95rem;font-weight:650}.dash-modal__body{padding:1rem}.dash-modal__foot{border-top:1px solid var(--dash-line);justify-content:flex-end;gap:.5rem;padding:.85rem 1rem;display:flex}html.dark .dash-input,html.dark .dash-search input{background:var(--dash-input-bg);color:var(--dash-text);border-color:var(--dash-line)}html.dark .dash-table th{color:var(--dash-muted);background:#161618}html.dark .dash-table td{border-color:var(--dash-line)}html.dark .dash-table tr:hover td{background:var(--dash-hover)}html.dark .dash-panel{background:var(--dash-surface);border-color:var(--dash-line)}html.dark .dash-btn--ghost{color:var(--dash-text);border-color:var(--dash-line);background:0 0}html.dark .dash-btn--ghost:hover{background:var(--dash-hover)}html.dark .dash-btn--solid{color:#111;background:#fafafa}html.dark .dash-btn--solid:hover{background:#e4e4e7}html.dark .dash-empty__title{color:var(--dash-text)}html.dark .dash-empty__desc,html.dark .dash-hint,html.dark .dash-toolbar__hint{color:var(--dash-muted)}html.dark .dash-user__menu{border-color:var(--dash-line);box-shadow:var(--dash-shadow);background:#18181b}html.dark .dash-user__item{color:var(--dash-text)}html.dark .dash-user__item:hover{background:var(--dash-hover)}html.dark .dash-icon-btn{color:#a1a1aa}html.dark .dash-icon-btn:hover{color:var(--dash-text);background:var(--dash-hover)}html.dark .dash-stat{background:#161618}html.dark .dash-list__row,html.dark .dash-stat{border-color:var(--dash-line)}html.dark .dash-list__row:hover{background:var(--dash-hover)}html.dark .dash-check{color:var(--dash-text)}
