@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";.stat-card{align-items:flex-start;gap:var(--s-3);background:var(--c-surface);border:1px solid var(--c-border-subtle);border-radius:var(--r-lg);box-shadow:var(--elev-card);padding:var(--s-3) var(--s-4);min-width:0;transition:box-shadow var(--t-base), border-color var(--t-base), transform var(--t-base);display:flex}.stat-card:hover{border-color:var(--c-border);box-shadow:var(--elev-card-hover);transform:translateY(-1px)}.stat-card-icon{border-radius:var(--r-lg);background:var(--c-primary-soft);width:36px;height:36px;color:var(--c-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.stat-card-body{gap:var(--s-1);flex-direction:column;flex:1;min-width:0;display:flex}.stat-card-label{margin:0}.stat-card-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--c-text);font-variant-numeric:tabular-nums;word-break:break-word}.stat-card-hint{margin-top:var(--s-1)}.search-input{flex:1;min-width:0;position:relative}.search-input>.input{padding-left:var(--s-8)}.search-input-clear{right:var(--s-2);border-radius:var(--r-sm);width:24px;height:24px;color:var(--c-text-subtle);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.search-input-clear:hover{background:var(--c-neutral-100);color:var(--c-text)}.avatar{border-radius:var(--r-pill);font-weight:var(--fw-semibold);letter-spacing:-.01em;-webkit-user-select:none;user-select:none;object-fit:cover;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.avatar-primary{background:var(--c-primary-soft);color:var(--c-primary-700)}.avatar-xs{font-size:10px}.avatar-sm{font-size:11px}.avatar-md{font-size:13px}.avatar-lg{font-size:15px}.avatar-xl{font-size:18px}.tab-count{margin-left:var(--s-2)}.tab-icon{margin-right:var(--s-2);align-items:center;display:inline-flex}.tabs-pills{gap:var(--s-2);border-bottom:none}.tabs-pills>.tab{border-radius:var(--r-pill);padding:var(--s-2) var(--s-3);background:var(--c-neutral-100);color:var(--c-text-muted);transition:background var(--t-fast), color var(--t-fast)}.tabs-pills>.tab:after{display:none}.tabs-pills>.tab:hover{background:var(--c-neutral-150);color:var(--c-text)}.tabs-pills>.tab.active{background:var(--c-primary);color:var(--c-text-on-primary);box-shadow:var(--glow-primary)}.tabs-pills>.tab.active .tab-count{color:var(--c-text-on-primary);background:#fff3}.section-header{justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-2) 0 var(--s-3);display:flex}.section-header-text{flex-direction:column;gap:2px;min-width:0;display:flex}.section-header-actions{align-items:center;gap:var(--s-2);flex-shrink:0;display:flex}.page-header-actions{align-items:center;gap:var(--s-3);flex-shrink:0;display:flex}.segmented{background:var(--c-neutral-100);border:1px solid var(--c-border-subtle);border-radius:var(--r-lg);align-items:stretch;gap:2px;padding:3px;display:inline-flex}.segmented-full{width:100%;display:flex}.segmented-item{justify-content:center;align-items:center;gap:var(--s-2);padding:0 var(--s-3);height:32px;color:var(--c-text-muted);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:-.005em;cursor:pointer;white-space:nowrap;transition:color var(--t-fast), background var(--t-fast), box-shadow var(--t-fast);background:0 0;border:none;flex:1;display:inline-flex}.segmented-item:hover:not(:disabled):not(.active){color:var(--c-text)}.segmented-item.active{background:var(--c-surface);color:var(--c-text);box-shadow:var(--shadow-xs), 0 0 0 1px var(--c-border-subtle)}.segmented-item:disabled{opacity:.5;cursor:not-allowed}.dropdown{display:inline-block;position:relative}.dropdown-menu{z-index:var(--z-popover);min-width:200px;padding:var(--s-1);background:var(--c-surface);border:1px solid var(--c-border-subtle);border-radius:var(--r-lg);box-shadow:var(--elev-dropdown);animation:ds-scale-in var(--t-base);transform-origin:100% 0;position:absolute}.dropdown-bottom-end{top:calc(100% + var(--s-1));right:0}.dropdown-bottom-start{top:calc(100% + var(--s-1));transform-origin:0 0;left:0}.dropdown-top-end{bottom:calc(100% + var(--s-1));transform-origin:100% 100%;right:0}.dropdown-top-start{bottom:calc(100% + var(--s-1));transform-origin:0 100%;left:0}.dropdown-item{align-items:center;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);color:var(--c-text);border-radius:var(--r-md);font-size:var(--fs-base);font-weight:var(--fw-medium);text-align:left;cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;display:flex}.dropdown-item:hover:not(:disabled),.dropdown-item.is-focused:not(:disabled){background:var(--c-surface-subtle)}.dropdown-item.is-danger{color:var(--c-danger)}.dropdown-item.is-danger:hover:not(:disabled),.dropdown-item.is-danger.is-focused:not(:disabled){background:var(--c-danger-soft)}.dropdown-item:disabled{opacity:.5;cursor:not-allowed}.dropdown-item-icon{color:var(--c-text-muted);flex-shrink:0;align-items:center;display:inline-flex}.dropdown-divider{height:1px;margin:var(--s-1) 0;background:var(--c-divider)}.tooltip-wrap{display:inline-flex;position:relative}.tooltip{z-index:var(--z-tooltip);padding:var(--s-1) var(--s-2);background:var(--c-neutral-900);color:var(--c-neutral-0);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:var(--lh-snug);white-space:nowrap;pointer-events:none;animation:ds-fade-in var(--t-fast);box-shadow:var(--shadow-md);position:absolute}.tooltip-top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-left{top:50%;right:calc(100% + 6px);transform:translateY(-50%)}.tooltip-right{top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.form-field{gap:var(--s-1);flex-direction:column;min-width:0;display:flex}.form-field-required{color:var(--c-danger);margin-left:2px}.form-field.has-error>.input,.form-field.has-error input,.form-field.has-error select,.form-field.has-error textarea{border-color:var(--c-danger)}.form-field.has-error>.input:focus,.form-field.has-error input:focus,.form-field.has-error select:focus,.form-field.has-error textarea:focus{box-shadow:var(--focus-ring-danger)}.skeleton{background:linear-gradient(90deg, var(--c-neutral-100) 0%, var(--c-neutral-150) 50%, var(--c-neutral-100) 100%);border-radius:var(--r-md);vertical-align:middle;background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-wave;display:inline-block}.skeleton-text{border-radius:var(--r-sm);width:100%;height:12px;display:block}.skeleton-title{border-radius:var(--r-sm);width:60%;height:18px;display:block}.skeleton-badge{border-radius:var(--r-pill);width:56px;height:20px}.skeleton-circle{border-radius:var(--r-pill);width:36px;height:36px}@keyframes skeleton-wave{0%{background-position:200% 0}to{background-position:-200% 0}}.page-toolbar{align-items:center;gap:var(--s-3);flex-wrap:wrap;min-width:0;padding:0;display:flex}.page-toolbar-search{flex:260px;min-width:0}.page-toolbar-filters{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.page-toolbar-actions{align-items:center;gap:var(--s-2);flex-shrink:0;margin-left:auto;display:flex}@media (width<=767px){.page-toolbar{gap:var(--s-2)}.page-toolbar-search,.page-toolbar-filters,.page-toolbar-actions{width:100%;margin-left:0}.stat-card{padding:var(--s-3) var(--s-4)}.stat-card-value{font-size:var(--fs-2xl)}.section-header{gap:var(--s-3)}.page-header-actions{gap:var(--s-2)}.segmented-item{font-size:var(--fs-sm)}}.searchable-select{width:100%;position:relative}.searchable-select-trigger{justify-content:space-between;align-items:center;gap:var(--s-2);text-align:left;cursor:pointer;width:100%;display:flex}.searchable-select-trigger[disabled]{cursor:not-allowed;opacity:.6}.searchable-select-placeholder{color:var(--c-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.searchable-select-value{color:var(--c-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.searchable-select-chevron{color:var(--c-text-muted);transition:transform var(--t-fast);flex-shrink:0}.searchable-select-trigger.is-open .searchable-select-chevron{transform:rotate(180deg)}.searchable-select-popover{top:calc(100% + var(--s-1));z-index:10;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);padding:var(--s-2);gap:var(--s-2);flex-direction:column;max-height:min(480px,60dvh);animation:.1s ease-out searchable-select-in;display:flex;position:absolute;left:0;right:0}@keyframes searchable-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.searchable-select-search{flex-shrink:0}.searchable-select-list{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.searchable-select-item{text-align:left;width:100%;min-height:32px;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--c-text);cursor:pointer;transition:background var(--t-fast);background:0 0;border:none;flex-shrink:0;align-items:center;display:flex}.searchable-select-item>span{white-space:nowrap;text-overflow:ellipsis;width:100%;display:block;overflow:hidden}.searchable-select-item.is-highlighted,.searchable-select-item:hover{background:var(--c-surface-subtle)}.searchable-select-item.is-selected{color:var(--c-primary);font-weight:var(--fw-semibold)}.searchable-select-empty{padding:var(--s-3);text-align:center;color:var(--c-text-muted);font-size:var(--fs-sm)}.app-empty-state{padding:var(--s-10) var(--s-6);text-align:center;color:var(--c-text-muted);justify-content:center;align-items:center;gap:var(--s-1);flex-direction:column;display:flex}.app-empty-icon{border-radius:var(--r-pill);background:var(--c-primary-soft);width:72px;height:72px;color:var(--c-primary);margin-bottom:var(--s-4);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-empty-icon svg{width:30px;height:30px}.app-empty-state h3{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--c-text);letter-spacing:var(--ls-snug);margin:0}.app-empty-state p{margin:var(--s-2) 0 0;font-size:var(--fs-base);max-width:420px;color:var(--c-text-muted);line-height:var(--lh-normal)}.app-empty-cta{margin-top:var(--s-5)}@media (width<=767px){.app-empty-state{padding:var(--s-8) var(--s-5)}.app-empty-icon{width:64px;height:64px}.app-empty-state h3{font-size:var(--fs-md)}.app-empty-state p{font-size:var(--fs-sm);max-width:320px}}@media (width<=479px){.app-empty-state{padding:var(--s-7) var(--s-4)}.app-empty-icon{width:56px;height:56px}}.modal-overlay{-webkit-backdrop-filter:var(--blur-md);z-index:var(--z-backdrop);padding:var(--s-5);overscroll-behavior:contain;animation:ds-fade-in var(--t-base);background:#0f172a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{z-index:var(--z-modal);background:var(--c-surface);border:1px solid var(--c-border-subtle);border-radius:var(--r-2xl);box-shadow:var(--elev-modal);width:min(560px,92vw);max-height:min(100dvh - 48px,88vh);animation:modal-pop-in var(--t-slow);flex-direction:column;display:flex;position:relative;overflow:hidden}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:flex-start;gap:var(--s-4);padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--c-divider);background:var(--c-surface);flex-shrink:0;display:flex}.modal-header h2,.modal-header h3,.modal-header h4{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--c-text);line-height:var(--lh-snug);letter-spacing:var(--ls-snug);margin:0}.modal-header .modal-subtitle{margin-top:var(--s-1);font-size:var(--fs-sm);color:var(--c-text-muted);line-height:var(--lh-normal)}.modal-close{border-radius:var(--r-md);width:32px;min-width:32px;height:32px;color:var(--c-text-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.modal-close:hover{background:var(--c-neutral-100);color:var(--c-text)}.modal-close:focus-visible{box-shadow:var(--focus-ring);outline:none}.modal-body{padding:var(--s-6);overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-thumb{background:var(--c-neutral-200);border-radius:var(--r-pill);border:none}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--c-neutral-300)}.modal-actions{gap:var(--s-3);padding:var(--s-5) var(--s-6);border-top:1px solid var(--c-divider);background:var(--c-surface-subtle);flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.modal-actions>.btn{justify-content:center;min-width:112px}@media (width<=1023px){.modal-overlay{padding:var(--s-4)}}@media (width<=767px){.modal-overlay{padding:var(--s-3)}.modal-header{padding:var(--s-4) var(--s-5)}.modal-header h2,.modal-header h3,.modal-header h4{font-size:var(--fs-lg)}.modal-close{border-radius:var(--r-pill);background:var(--c-neutral-100);width:36px;min-width:36px;height:36px}.modal-close:hover,.modal-close:active{background:var(--c-neutral-200)}.modal-body{padding:var(--s-5)}.modal-actions{gap:var(--s-2);padding:var(--s-3) var(--s-5) calc(var(--s-3) + env(safe-area-inset-bottom,0));flex-direction:column-reverse}.modal-actions .btn,.modal-actions button{width:100%;min-height:44px}.modal-as-sheet{align-items:flex-end;padding:0}.modal-as-sheet .modal-content{border-radius:var(--r-3xl) var(--r-3xl) 0 0;width:100%;max-width:100%;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom,0);animation:modal-sheet-up var(--t-slow);border-bottom:none;border-left:none;border-right:none;box-shadow:0 -8px 32px #0f172a2e}.modal-as-sheet .modal-content:before{content:"";background:var(--c-neutral-300);border-radius:var(--r-pill);width:40px;height:4px;margin:var(--s-2) auto var(--s-1);opacity:.8;z-index:1;flex-shrink:0;display:block;position:sticky;top:0}}@keyframes modal-sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.app-progress-wrap{width:100%}.app-progress-label{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-sm);color:var(--c-text-muted);margin-bottom:var(--s-2);display:flex}.app-progress-label>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-progress-label>span:last-child{color:var(--c-text);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;flex-shrink:0}.app-progress-track{border-radius:var(--r-pill);background:var(--c-neutral-100);height:6px;overflow:hidden}.app-progress-fill{border-radius:var(--r-pill);background:var(--c-primary);height:100%;transition:width var(--t-slow)}.app-progress-fill.animated{animation:1.5s ease-in-out infinite app-progress-pulse}@keyframes app-progress-pulse{0%,to{opacity:.85}50%{opacity:1}}@media (width<=767px){.app-progress-label{font-size:var(--fs-sm);gap:var(--s-2);flex-wrap:wrap}.app-progress-track{height:6px}}.app-shell{background:var(--c-bg);height:100dvh;display:flex;overflow:hidden}.app-shell.mobile{flex-direction:column}.shell-topbar{justify-content:space-between;align-items:center;gap:var(--s-3);height:56px;padding:0 var(--s-4);-webkit-backdrop-filter:var(--blur-md);color:var(--c-text);z-index:var(--z-nav);padding-top:max(env(safe-area-inset-top), 0px);height:calc(56px + max(env(safe-area-inset-top), 0px));border-bottom:1px solid var(--c-border-subtle);background:#ffffffc7;flex-shrink:0;display:none}.app-shell.mobile .shell-topbar{display:flex}.shell-hamburger{border-radius:var(--r-md);width:40px;height:40px;color:var(--c-text);cursor:pointer;transition:background var(--t-fast), transform var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.shell-hamburger:hover{background:var(--c-neutral-100)}.shell-hamburger:active{background:var(--c-neutral-150);transform:scale(.96)}.shell-topbar-logo{align-items:center;gap:var(--s-2);font-weight:var(--fw-bold);font-size:var(--fs-lg);letter-spacing:var(--ls-tight);cursor:pointer;color:var(--c-text);display:flex}.shell-topbar-icon{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.shell-topbar-icon img{width:100%;height:100%;display:block}.shell-topbar-avatar-btn{cursor:pointer;border-radius:var(--r-pill);transition:transform var(--t-fast);background:0 0;border:none;padding:0;display:inline-flex}.shell-topbar-avatar-btn:active{transform:scale(.95)}.shell-backdrop{display:none}.app-shell.mobile .shell-backdrop{z-index:var(--z-backdrop);-webkit-backdrop-filter:blur(6px);animation:shell-fade-in var(--t-base) var(--ease-out);background:#0b122085;display:block;position:fixed;inset:0}@keyframes shell-fade-in{0%{opacity:0}to{opacity:1}}.shell-sidebar{background:var(--c-neutral-950);border-right:1px solid var(--sidebar-border);width:64px;min-width:64px;transition:width var(--t-slow), min-width var(--t-slow), transform var(--t-slow);z-index:var(--z-drawer);flex-direction:column;display:flex;overflow:hidden}.shell-sidebar.expanded{width:240px;min-width:240px}.shell-sidebar.mobile{width:288px;min-width:288px;max-width:82vw;height:100dvh;box-shadow:var(--shadow-2xl);padding-top:max(env(safe-area-inset-top), 0px);border-top-right-radius:var(--r-3xl);border-bottom-right-radius:var(--r-3xl);border-right:none;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.shell-sidebar.mobile.open{transform:translate(0)}.shell-sidebar.mobile .shell-logo{padding:var(--s-5) var(--s-5) var(--s-4);border-bottom:1px solid #ffffff0f;min-height:auto}.shell-logo{align-items:center;gap:var(--s-3);padding:var(--s-4);cursor:pointer;border-bottom:1px solid var(--sidebar-border);flex-shrink:0;min-height:56px;display:flex;position:relative}.shell-logo-icon{flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:inline-flex}.shell-logo-icon img{width:100%;height:100%;display:block}.shell-logo-text{font-family:var(--font-sans);letter-spacing:var(--ls-tight);font-size:var(--fs-xl);color:var(--c-neutral-0);white-space:nowrap;font-weight:var(--fw-extrabold)}.shell-close-btn{border-radius:var(--r-md);width:36px;min-width:36px;height:36px;color:var(--sidebar-text);cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;margin-left:auto;display:flex}.shell-close-btn:hover,.shell-close-btn:active{color:var(--c-neutral-0);background:#ffffff0f}.shell-nav{gap:var(--s-1);padding:var(--s-3) var(--s-2);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.shell-nav-divider{height:1px;margin:var(--s-3) var(--s-3);background:#ffffff14}.shell-nav-item{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);color:var(--sidebar-text);font-size:var(--fs-base);font-weight:var(--fw-semibold);transition:background var(--t-fast), color var(--t-fast);white-space:nowrap;cursor:pointer;text-align:left;width:100%;min-height:40px;letter-spacing:var(--ls-normal);background:0 0;border:none;display:flex;position:relative}.shell-nav-item:before{content:"";border-radius:var(--r-pill);background:var(--c-primary-400);opacity:0;width:3px;height:20px;transition:opacity var(--t-base), transform var(--t-base);position:absolute;top:50%;left:-2px;transform:translateY(-50%)scaleY(.4)}.shell-nav-item:hover{color:var(--c-neutral-200);background:#ffffff0a}.shell-nav-item.active{color:var(--c-primary-400);background:#10b9811f}.shell-nav-item.active:before{opacity:1;transform:translateY(-50%)scaleY(1)}.shell-nav-item svg{flex-shrink:0}.shell-sidebar.mobile .shell-nav{padding:var(--s-4) var(--s-3);gap:var(--s-1)}.shell-sidebar.mobile .shell-nav-item{min-height:48px;padding:var(--s-3) var(--s-4);font-size:var(--fs-md);border-radius:var(--r-lg);gap:var(--s-4)}.shell-sidebar.mobile .shell-nav-item svg{width:22px;height:22px;color:var(--c-neutral-400);transition:color var(--t-fast)}.shell-sidebar.mobile .shell-nav-item:active{background:#ffffff14;transform:scale(.99)}.shell-sidebar.mobile .shell-nav-item.active{color:var(--c-primary-400);font-weight:var(--fw-semibold);background:#10b98124}.shell-sidebar.mobile .shell-nav-item.active svg{color:var(--c-primary-400)}.shell-footer{padding:var(--s-3) var(--s-2);border-top:1px solid var(--sidebar-border);padding-bottom:max(env(safe-area-inset-bottom), var(--s-3));flex-shrink:0;position:relative}.shell-sidebar.mobile .shell-footer{padding:var(--s-4);padding-bottom:max(env(safe-area-inset-bottom), var(--s-4))}.shell-user-btn{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2);border-radius:var(--r-lg);cursor:pointer;color:inherit;transition:background var(--t-fast);background:0 0;border:none;justify-content:center;display:flex}.shell-sidebar.expanded .shell-user-btn,.shell-sidebar.mobile.open .shell-user-btn{padding:var(--s-2) var(--s-3);justify-content:flex-start}.shell-user-btn:hover,.shell-user-btn.is-open{background:#ffffff0f}.shell-user-btn-text{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.shell-user-btn-chevron{color:var(--c-neutral-500);transition:transform var(--t-fast);flex-shrink:0}.shell-user-btn.is-open .shell-user-btn-chevron{transform:rotate(180deg)}.shell-username{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-neutral-0);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shell-user-role{font-size:var(--fs-xs);color:var(--c-neutral-500);text-transform:capitalize;letter-spacing:var(--ls-wide);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shell-user-menu{bottom:calc(100% - var(--s-1));left:var(--s-2);right:var(--s-2);background:var(--c-neutral-900);border-radius:var(--r-xl);min-width:224px;box-shadow:var(--shadow-xl);padding:var(--s-2);z-index:10;border:1px solid #ffffff14;animation:.12s ease-out shell-user-menu-in;position:absolute}@keyframes shell-user-menu-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.shell-user-menu-header{align-items:center;gap:var(--s-3);padding:var(--s-3);display:flex}.shell-user-menu-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.shell-user-menu-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-neutral-0);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shell-user-menu-email{font-size:var(--fs-xs);color:var(--c-neutral-400);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shell-user-menu-role{font-size:var(--fs-xs);color:var(--c-neutral-500);text-transform:capitalize;margin-top:2px}.shell-user-menu-sep{height:1px;margin:var(--s-1) 0;background:#ffffff14}.shell-user-menu-item{align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);color:var(--sidebar-text);font-size:var(--fs-sm);font-weight:var(--fw-medium);text-align:left;cursor:pointer;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:none;min-height:36px;display:flex}.shell-user-menu-item:hover{color:var(--c-neutral-100);background:#ffffff0f}.shell-user-menu-danger:hover{color:#fca5a5;background:#ef44441f}.shell-sidebar:not(.expanded):not(.mobile) .shell-footer{padding:var(--s-3)}.shell-content{background:var(--c-bg);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-shell.mobile .shell-content{height:calc(100dvh - 56px - max(env(safe-area-inset-top), 0px))}.backend-status-toast{top:calc(var(--s-4) + env(safe-area-inset-top,0px));z-index:var(--z-toast);align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3) var(--s-2) var(--s-4);max-width:calc(100vw - var(--s-6));-webkit-backdrop-filter:var(--blur-md);border-radius:var(--r-pill);color:#92400e;box-shadow:var(--elev-toast);background:#fffbebeb;border:1px solid #f59e0b38;display:inline-flex;position:fixed;left:50%;transform:translate(-50%)}.backend-status-toast-icon{color:var(--c-warning);flex-shrink:0}.backend-status-toast-text{align-items:baseline;gap:var(--s-2);font-size:var(--fs-sm);line-height:var(--lh-snug);min-width:0;display:inline-flex}.backend-status-toast-text strong{color:#92400e;font-weight:var(--fw-bold)}.backend-status-toast-text span{color:#b45309;font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.backend-status-toast-close{color:#92400e;flex-shrink:0}.backend-status-toast-close:hover:not(:disabled){color:#78350f;background:#f59e0b26}@media (width<=479px){.backend-status-toast{padding:6px var(--s-2) 6px var(--s-3)}.backend-status-toast-text{font-size:var(--fs-xs);gap:var(--s-1)}}.app-alert{right:var(--s-6);bottom:var(--s-6);z-index:var(--z-toast);align-items:center;gap:var(--s-3);min-width:320px;max-width:min(520px,100vw - 32px);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);background:var(--c-surface);border:1px solid var(--c-border-subtle);border-radius:var(--r-xl);font-size:var(--fs-sm);line-height:var(--lh-snug);color:var(--c-text);box-shadow:var(--elev-toast);-webkit-backdrop-filter:var(--blur-md);animation:app-alert-slide-in var(--t-slow);display:flex;position:fixed}.app-alert-icon{border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.app-alert-message{min-width:0;font-weight:var(--fw-medium);flex:1}.app-alert-close{color:currentColor;flex-shrink:0}.app-alert-error{background:var(--c-danger-soft);color:#991b1b;border-color:#ef444438}.app-alert-error .app-alert-icon{color:var(--c-danger);background:#ef444426}.app-alert-success{background:var(--c-success-soft);color:#065f46;border-color:#10b98138}.app-alert-success .app-alert-icon{color:var(--c-success);background:#10b98126}.app-alert-info{background:var(--c-info-soft);color:#1e3a8a;border-color:#3b82f638}.app-alert-info .app-alert-icon{color:var(--c-info);background:#3b82f626}@keyframes app-alert-slide-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=767px){.app-alert{left:var(--s-3);right:var(--s-3);bottom:calc(var(--s-4) + env(safe-area-inset-bottom,0px));border-radius:var(--r-pill);min-width:0;max-width:none;padding:var(--s-2) var(--s-3) var(--s-2) var(--s-3);font-size:var(--fs-base);font-weight:var(--fw-medium);box-shadow:var(--elev-toast)}.app-alert-icon{border-radius:var(--r-pill);width:26px;height:26px}.app-alert-message{word-break:break-word;line-height:var(--lh-snug)}}@media (width<=479px){.app-alert{left:var(--s-3);right:var(--s-3);bottom:calc(var(--s-3) + env(safe-area-inset-bottom,0px));padding:var(--s-2) var(--s-3) var(--s-2) var(--s-3);font-size:var(--fs-sm)}.app-alert-icon{width:24px;height:24px}}:root{--c-primary-50:#ecfdf5;--c-primary-100:#d1fae5;--c-primary-200:#a7f3d0;--c-primary-300:#6ee7b7;--c-primary-400:#34d399;--c-primary-500:#10b981;--c-primary-600:#059669;--c-primary-700:#047857;--c-primary-800:#065f46;--c-primary-900:#064e3b;--c-primary:var(--c-primary-600);--c-primary-hover:var(--c-primary-700);--c-primary-soft:var(--c-primary-50);--c-primary-ring:#05966929;--c-neutral-0:#fff;--c-neutral-25:#fcfcfd;--c-neutral-50:#f9fafb;--c-neutral-100:#f3f4f6;--c-neutral-150:#eceef1;--c-neutral-200:#e5e7eb;--c-neutral-300:#d1d5db;--c-neutral-400:#9ca3af;--c-neutral-500:#6b7280;--c-neutral-600:#4b5563;--c-neutral-700:#374151;--c-neutral-800:#1f2937;--c-neutral-900:#111827;--c-neutral-950:#0b1220;--c-success:#10b981;--c-success-soft:#ecfdf5;--c-warning:#f59e0b;--c-warning-soft:#fffbeb;--c-danger:#ef4444;--c-danger-soft:#fef2f2;--c-info:#3b82f6;--c-info-soft:#eff6ff;--c-bg:var(--c-neutral-50);--c-surface:var(--c-neutral-0);--c-surface-muted:var(--c-neutral-100);--c-surface-subtle:var(--c-neutral-25);--c-surface-elevated:var(--c-neutral-0);--c-text:var(--c-neutral-900);--c-text-muted:var(--c-neutral-500);--c-text-subtle:var(--c-neutral-400);--c-text-on-primary:#fff;--c-border:var(--c-neutral-200);--c-border-strong:var(--c-neutral-300);--c-border-subtle:var(--c-neutral-150);--c-divider:var(--c-neutral-150);--focus-ring:0 0 0 3px var(--c-primary-ring);--focus-ring-danger:0 0 0 3px #ef44442e;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:12px;--r-2xl:16px;--r-3xl:20px;--r-pill:9999px;--s-0:0;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--s-10:64px;--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs:11px;--fs-sm:12.5px;--fs-base:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:26px;--fs-4xl:32px;--fs-5xl:40px;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relaxed:1.65;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--ls-tight:-.03em;--ls-snug:-.02em;--ls-normal:-.005em;--ls-wide:.02em;--ls-caps:.08em;--shadow-none:0 0 #0000;--shadow-xs:0 1px 2px #1018280a;--shadow-sm:0 1px 2px #1018280f, 0 1px 3px #1018280a;--shadow-md:0 2px 4px #1018280d, 0 4px 8px #1018280f;--shadow-lg:0 4px 8px #1018280a, 0 12px 24px #10182814;--shadow-xl:0 12px 24px #1018280f, 0 24px 48px #1018281f;--shadow-2xl:0 24px 48px #10182824, 0 40px 80px #1018282e;--shadow-inset:inset 0 1px 2px #1018280f;--elev-card:var(--shadow-sm);--elev-card-hover:var(--shadow-md);--elev-popover:var(--shadow-lg);--elev-modal:var(--shadow-2xl);--elev-dropdown:var(--shadow-lg);--elev-toast:var(--shadow-xl);--glow-primary:0 4px 12px #05966940;--glow-primary-lg:0 8px 24px #05966959;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.32, .72, 0, 1);--t-fast:.12s var(--ease-in-out);--t-base:.18s var(--ease-in-out);--t-slow:.28s var(--ease-spring);--z-base:1;--z-sticky:20;--z-nav:40;--z-backdrop:60;--z-drawer:70;--z-modal:80;--z-popover:90;--z-toast:100;--z-tooltip:110;--blur-sm:saturate(140%) blur(6px);--blur-md:saturate(160%) blur(12px);--blur-lg:saturate(180%) blur(20px);--sidebar-bg:var(--c-neutral-950);--sidebar-text:var(--c-neutral-400);--sidebar-hover-bg:#ffffff0f;--sidebar-active-bg:#10b9811f;--sidebar-border:#ffffff0f}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}#root{min-height:100vh}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}p{color:var(--c-text-muted)}.container{max-width:1200px;padding:0 var(--s-6);margin:0 auto}.form-group{margin-bottom:var(--s-4)}.error-message{background:var(--c-danger-soft);color:var(--c-danger);padding:var(--s-3);border-radius:var(--r-md);font-size:var(--fs-base);border:1px solid #ef444433}.loading-state{justify-content:center;align-items:center;gap:var(--s-4);min-height:100vh;font-size:var(--fs-base);color:var(--c-text-muted);flex-direction:column;display:flex}.loading-state-spinner{border:3px solid var(--c-neutral-200);border-top-color:var(--c-primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite global-spin}@keyframes global-spin{to{transform:rotate(360deg)}}.app-crash-screen{min-height:100vh;padding:var(--s-7);text-align:center;color:var(--c-text);flex-direction:column;justify-content:center;align-items:center;display:flex}.app-crash-icon{background:var(--c-danger-soft);width:56px;height:56px;color:var(--c-danger);margin-bottom:var(--s-5);border-radius:50%;justify-content:center;align-items:center;display:flex}.app-crash-screen h2{font-size:var(--fs-xl);margin:0 0 var(--s-2)}.app-crash-screen p{color:var(--c-text-muted);font-size:var(--fs-base);margin:0}.app-crash-error{margin:var(--s-4) auto 0;text-align:left;max-width:700px;font-size:var(--fs-sm);color:#b91c1c;background:var(--c-danger-soft);padding:var(--s-3);border-radius:var(--r-md);border:1px solid #ef44441f;overflow:auto}.app-crash-details{margin:var(--s-2) auto 0;text-align:left;max-width:700px}.app-crash-details summary{cursor:pointer;font-size:var(--fs-sm);color:var(--c-text-muted)}.app-crash-details pre{font-size:var(--fs-xs);color:var(--c-text-muted);background:var(--c-surface-subtle);padding:var(--s-2);border-radius:var(--r-md);max-height:200px;overflow:auto}.app-crash-btn{margin-top:var(--s-5);padding:var(--s-2) var(--s-6);cursor:pointer;border:1px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text);font-size:var(--fs-base);font-weight:var(--fw-medium);transition:background var(--t-fast), border-color var(--t-fast)}.app-crash-btn:hover{background:var(--c-surface-subtle);border-color:var(--c-border-strong)}.app-forbidden-screen{min-height:60vh;padding:var(--s-7);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.app-forbidden-icon{background:var(--c-warning-soft);width:56px;height:56px;color:var(--c-warning);margin-bottom:var(--s-5);border-radius:50%;justify-content:center;align-items:center;display:flex}.app-forbidden-screen h2{font-size:var(--fs-xl);margin:0 0 var(--s-2);color:var(--c-text)}.app-forbidden-screen p{color:var(--c-text-muted);font-size:var(--fs-base);max-width:360px;margin:0}html{font-feature-settings:"cv02", "cv03", "cv04", "cv11", "ss01";text-rendering:optimizelegibility}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-xs{font-size:var(--fs-xs);line-height:var(--lh-snug)}.text-sm{font-size:var(--fs-sm);line-height:var(--lh-snug)}.text-muted{color:var(--c-text-muted)}.text-subtle{color:var(--c-text-subtle)}.text-primary{color:var(--c-primary)}.text-success{color:var(--c-success)}.text-warning{color:var(--c-warning)}.text-danger{color:var(--c-danger)}.text-caps{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--c-text-subtle)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--c-text);line-height:var(--lh-tight);letter-spacing:var(--ls-snug);margin:0}h1{font-size:var(--fs-4xl);font-weight:var(--fw-extrabold);letter-spacing:var(--ls-tight)}h2{font-size:var(--fs-3xl);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight)}h3{font-size:var(--fs-2xl);font-weight:var(--fw-bold)}h4{font-size:var(--fs-xl);font-weight:var(--fw-semibold)}h5{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}h6{font-size:var(--fs-md);font-weight:var(--fw-semibold)}:where(button,a,input,select,textarea,[role=button],[tabindex]):focus-visible{box-shadow:var(--focus-ring);border-color:var(--c-primary);outline:none}.btn{--btn-bg:var(--c-surface);--btn-fg:var(--c-text);--btn-border:var(--c-border);--btn-bg-hover:var(--c-neutral-50);--btn-shadow:var(--shadow-xs);--btn-shadow-hover:var(--shadow-sm);--btn-height:36px;--btn-padding:0 var(--s-4);--btn-font:var(--fs-base);--btn-radius:var(--r-lg);justify-content:center;align-items:center;gap:var(--s-2);height:var(--btn-height);padding:var(--btn-padding);background:var(--btn-bg);color:var(--btn-fg);border:1px solid var(--btn-border);border-radius:var(--btn-radius);font-family:inherit;font-size:var(--btn-font);font-weight:var(--fw-semibold);letter-spacing:-.005em;box-shadow:var(--btn-shadow);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast), color var(--t-fast);line-height:1;display:inline-flex}.btn:hover:not(:disabled){background:var(--btn-bg-hover);box-shadow:var(--btn-shadow-hover)}.btn:active:not(:disabled){box-shadow:var(--shadow-xs);transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:var(--shadow-none)}.btn-sm{--btn-height:30px;--btn-padding:0 var(--s-3);--btn-font:var(--fs-sm);--btn-radius:var(--r-md)}.btn-lg{--btn-height:44px;--btn-padding:0 var(--s-5);--btn-font:var(--fs-md);--btn-radius:var(--r-xl)}.btn-primary,.btn-success{--btn-bg:var(--c-primary);--btn-fg:var(--c-text-on-primary);--btn-border:transparent;--btn-bg-hover:var(--c-primary-hover);--btn-shadow:var(--glow-primary);--btn-shadow-hover:var(--glow-primary-lg)}.btn-secondary{--btn-bg:var(--c-surface);--btn-fg:var(--c-text);--btn-border:var(--c-border);--btn-bg-hover:var(--c-neutral-50)}.btn-ghost{--btn-bg:transparent;--btn-border:transparent;--btn-shadow:none;--btn-bg-hover:var(--c-neutral-100);--btn-shadow-hover:none}.btn-danger{--btn-bg:var(--c-danger);--btn-fg:#fff;--btn-border:transparent;--btn-bg-hover:#dc2626;--btn-shadow:0 2px 6px #ef444440;--btn-shadow-hover:0 4px 12px #ef444459}.btn-icon{--btn-padding:0;width:var(--btn-height);padding:0}.btn-block{width:100%}.input,input:where(:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=submit]):not([type=button]):not(.custom-input)),select:where(:not(.custom-input)),textarea:where(:not(.custom-input)){width:100%;height:38px;padding:0 var(--s-3);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-md);font-family:inherit;font-size:var(--fs-base);transition:border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);line-height:1}textarea:where(:not(.custom-input)){height:auto;min-height:88px;padding:var(--s-3);line-height:var(--lh-normal);resize:vertical}select:where(:not(.custom-input)){padding-right:var(--s-7);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right var(--s-3) center;appearance:none}.input:hover:not(:disabled),input:hover:not(:disabled):not([type=checkbox]):not([type=radio]),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--c-border-strong)}.input:focus,.input:focus-visible,input:focus-visible:not([type=checkbox]):not([type=radio]),select:focus-visible,textarea:focus-visible{border-color:var(--c-primary);box-shadow:var(--focus-ring);outline:none}.input::placeholder,input::placeholder,textarea::placeholder{color:var(--c-text-subtle)}.input:disabled,input:disabled,select:disabled,textarea:disabled{background:var(--c-neutral-50);color:var(--c-text-subtle);cursor:not-allowed}.input-sm{height:32px;font-size:var(--fs-sm)}.input-lg{height:44px;font-size:var(--fs-md)}.label{margin-bottom:var(--s-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-text);letter-spacing:-.005em;display:block}.helper-text{font-size:var(--fs-sm);color:var(--c-text-muted);margin-top:var(--s-1)}.field-error{font-size:var(--fs-sm);color:var(--c-danger);margin-top:var(--s-1)}.input-group{align-items:center;display:flex;position:relative}.input-group>.input,.input-group>input{padding-left:var(--s-8)}.input-group-icon{left:var(--s-3);color:var(--c-text-subtle);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.card{background:var(--c-surface);border:1px solid var(--c-border-subtle);border-radius:var(--r-xl);box-shadow:var(--elev-card);transition:box-shadow var(--t-base), border-color var(--t-base), transform var(--t-base);overflow:hidden}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--c-border);box-shadow:var(--elev-card-hover);transform:translateY(-1px)}.card-flat{box-shadow:var(--shadow-none)}.card-header{padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--c-divider);justify-content:space-between;align-items:center;gap:var(--s-4);display:flex}.card-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--c-text);margin:0}.card-body{padding:var(--s-5) var(--s-6)}.badge{align-items:center;gap:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--c-neutral-100);height:20px;color:var(--c-text);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);white-space:nowrap;display:inline-flex}.badge-primary{background:var(--c-primary-soft);color:var(--c-primary-700)}.badge-success{background:var(--c-success-soft);color:#047857}.badge-warning{background:var(--c-warning-soft);color:#b45309}.badge-danger{background:var(--c-danger-soft);color:#b91c1c}.badge-info{background:var(--c-info-soft);color:#1d4ed8}.badge-neutral{background:var(--c-neutral-100);color:var(--c-neutral-700)}.badge-dot:before{content:"";border-radius:var(--r-pill);opacity:.7;background:currentColor;width:6px;height:6px}.divider-vertical{background:var(--c-divider);width:1px;height:auto;margin:0 var(--s-3);align-self:stretch}.tabs{gap:var(--s-2);border-bottom:1px solid var(--c-divider);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{padding:var(--s-3) var(--s-4);color:var(--c-text-muted);font-size:var(--fs-base);font-weight:var(--fw-semibold);cursor:pointer;transition:color var(--t-fast);white-space:nowrap;background:0 0;border:none;position:relative}.tab:hover{color:var(--c-text)}.tab:after{content:"";left:var(--s-4);right:var(--s-4);background:var(--c-primary);border-radius:var(--r-pill);opacity:0;height:2px;transition:opacity var(--t-fast);position:absolute;bottom:-1px}.tab.active{color:var(--c-text)}.tab.active:after{opacity:1}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-base)}.table th{text-align:left;padding:var(--s-3) var(--s-4);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-text-muted);background:var(--c-surface-subtle);border-bottom:1px solid var(--c-border-subtle);letter-spacing:-.005em}.table th:first-child{border-top-left-radius:var(--r-lg)}.table th:last-child{border-top-right-radius:var(--r-lg)}.table td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--c-divider);color:var(--c-text);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--t-fast)}.table-interactive tbody tr:hover{background:var(--c-surface-subtle)}.table-interactive tbody tr{cursor:pointer}kbd{min-width:20px;height:20px;padding:0 var(--s-1);background:var(--c-neutral-100);border:1px solid var(--c-border);border-radius:var(--r-xs);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text-muted);border-bottom-width:2px;justify-content:center;align-items:center;display:inline-flex}a{color:var(--c-primary);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--c-primary-hover)}.link-subtle{color:var(--c-text-muted)}.link-subtle:hover{color:var(--c-text)}.surface-blur{-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--c-border-subtle);background:#ffffffbf}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--c-neutral-200);border-radius:var(--r-pill);border:2px solid var(--c-bg)}::-webkit-scrollbar-thumb:hover{background:var(--c-neutral-300)}::selection{background:var(--c-primary-100);color:var(--c-primary-800)}.row-between{justify-content:space-between;align-items:center;gap:var(--s-4);display:flex}.truncate{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}@keyframes ds-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ds-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.anim-fade-in{animation:ds-fade-in var(--t-base)}.anim-slide-up{animation:ds-slide-up var(--t-slow)}@media (prefers-reduced-motion:reduce){.anim-fade-in,.anim-slide-up{animation:none!important}*{transition-duration:.01ms!important}}:root{--bp-xs:480px;--bp-sm:640px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--touch-target:44px;--page-pad-x:32px;--page-pad-y:24px;--page-gap:16px}@media (width<=1023px){:root{--page-pad-x:20px;--page-pad-y:20px}}@media (width<=767px){:root{--page-pad-x:14px;--page-pad-y:14px;--page-gap:12px}}@media (width<=479px){:root{--page-pad-x:12px;--page-pad-y:12px}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{overflow-x:hidden}img,svg,video,canvas{max-width:100%;height:auto}@media (width<=767px){input:not([type=checkbox]):not([type=radio]),select,textarea,.input{font-size:16px!important}}@media (hover:none) and (pointer:coarse){button,.btn,[role=button],a.btn{min-height:var(--touch-target)}.btn-sm{min-height:36px}}.form-grid{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=767px){.form-grid{grid-template-columns:1fr}}.actions-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (width<=479px){.actions-row{flex-direction:column-reverse;align-items:stretch}.actions-row>.btn,.actions-row>button{width:100%}}.stats-grid{gap:var(--page-gap);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}@media (width<=479px){.stats-grid{grid-template-columns:1fr}}.hide-on-mobile{display:initial}.show-on-mobile{display:none!important}@media (width<=767px){.hide-on-mobile{display:none!important}.show-on-mobile{display:initial!important}.show-on-mobile.flex{display:flex!important}.show-on-mobile.block{display:block!important}}.scroll-x-mobile{-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow-x:auto}.scroll-x-mobile::-webkit-scrollbar{height:4px}.safe-pad-bottom{padding-bottom:max(env(safe-area-inset-bottom), 0px)}@media (width<=639px){.modal-overlay.modal-as-sheet{align-items:flex-end}.modal-as-sheet.modal-as-sheet>.modal-content,.modal-as-sheet.modal-as-sheet>[class*=modal]{border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-width:100%;max-height:92vh;margin:0}}@media (width<=767px){h1{font-size:1.375rem}h2{font-size:1.125rem}h3{font-size:1rem}}@media (width<=479px){h1{font-size:1.25rem}}:root{--m-radius-sm:10px;--m-radius:14px;--m-radius-lg:18px;--m-radius-xl:24px;--m-shadow-card:0 1px 2px #0f172a0a, 0 4px 12px #0f172a0f;--m-shadow-sheet:0 -4px 16px #0f172a14;--m-shadow-float:0 8px 24px #0f172a2e;--m-pad:16px;--m-pad-lg:20px;--m-gap:12px;--m-gap-lg:16px;--m-title:20px;--m-subtitle:13px;--m-section:12px;--m-body:15px;--m-caption:12px}.m-card{background:var(--c-surface);border-radius:var(--m-radius);box-shadow:var(--m-shadow-card);border:1px solid #0f172a0a;overflow:hidden}.m-section-label{font-size:var(--m-section);text-transform:uppercase;letter-spacing:.06em;color:var(--c-neutral-500);margin:0 0 10px;padding:0 4px;font-weight:700}.m-list{background:var(--c-surface);border-radius:var(--m-radius);box-shadow:var(--m-shadow-card);border:1px solid #0f172a0a;overflow:hidden}.m-list-item{padding:14px var(--m-pad);border-bottom:1px solid var(--c-border-subtle);cursor:pointer;transition:background var(--t-fast);background:var(--c-surface);text-align:left;border-top:none;border-left:none;border-right:none;align-items:center;gap:12px;width:100%;display:flex}.m-list-item:last-child{border-bottom:none}.m-list-item:active{background:var(--c-neutral-50)}.m-list-item-icon{background:var(--c-primary-soft);width:40px;height:40px;color:var(--c-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.m-list-item-body{flex:1;min-width:0}.m-list-item-title{color:var(--c-text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.m-list-item-sub{color:var(--c-neutral-500);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.m-list-item-chevron{color:var(--c-neutral-400);flex-shrink:0}.m-fab{right:20px;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--c-primary);color:#fff;width:56px;height:56px;box-shadow:var(--m-shadow-float);cursor:pointer;z-index:30;transition:transform var(--t-fast), box-shadow var(--t-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.m-fab:active{transform:scale(.95);box-shadow:0 4px 12px #0f172a38}.m-fab.extended{border-radius:28px;gap:8px;width:auto;padding:0 20px;font-size:14px;font-weight:600}.m-stat{background:var(--c-surface);border-radius:var(--m-radius);box-shadow:var(--m-shadow-card);border:1px solid #0f172a0a;flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.m-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--c-neutral-500);font-size:11.5px;font-weight:600}.m-stat-value{letter-spacing:-.02em;color:var(--c-text);font-size:22px;font-weight:800;line-height:1.1}.m-stat-delta{color:var(--c-primary);font-size:12px;font-weight:600}.m-empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.m-empty-icon{background:var(--c-primary-soft);width:72px;height:72px;color:var(--c-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.m-empty-title{color:var(--c-text);margin:0;font-size:17px;font-weight:700}.m-empty-text{color:var(--c-neutral-500);max-width:320px;margin:0;font-size:14px;line-height:1.5}@media (width<=767px){.app-shell.mobile .card,.app-shell.mobile .field-card,.app-shell.mobile .dataset-card,.app-shell.mobile .user-card,.app-shell.mobile .flight-card,.app-shell.mobile .kpi-card,.app-shell.mobile .mtab-card,.app-shell.mobile .zp-zone,.app-shell.mobile .cat-card,.app-shell.mobile .admin-stat,.app-shell.mobile .fields-stat-card,.app-shell.mobile .monitoring-kpi{border-radius:var(--m-radius);box-shadow:var(--m-shadow-card);border-color:#0f172a0a}.app-shell.mobile .input,.app-shell.mobile input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.app-shell.mobile select,.app-shell.mobile textarea{border-radius:var(--m-radius-sm);min-height:46px;padding:12px 14px}.app-shell.mobile textarea{min-height:auto}.app-shell.mobile .btn{border-radius:var(--m-radius-sm);padding:12px 18px;font-size:15px;font-weight:600}.app-shell.mobile .btn-sm{border-radius:10px;padding:8px 12px;font-size:13px}.modal-as-sheet>*,.modal-as-sheet [class*=modal-content],.modal-as-sheet [class*=-modal]{box-shadow:var(--m-shadow-sheet);border-radius:var(--m-radius-xl) var(--m-radius-xl) 0 0}.modal-as-sheet [class*=modal-content]:before,.modal-as-sheet>div:before{content:"";background:var(--c-neutral-300);border-radius:9999px;flex-shrink:0;width:36px;height:4px;margin:8px auto 0;display:block}.modal-overlay,[class*=modal-overlay]{-webkit-backdrop-filter:blur(4px);background:#0f172a66}::-webkit-scrollbar{width:0;height:0}.app-shell.mobile td,.app-shell.mobile th{padding-top:10px;padding-bottom:10px}.field-hint{font-size:13px;line-height:1.45}hr{background:var(--c-border-subtle);border:none;height:1px;margin:16px 0}}@media (width<=479px){.m-fab{width:52px;height:52px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}}@media (width<=767px){@keyframes m-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes m-fade-in{0%{opacity:0}to{opacity:1}}.m-animate-in{animation:.22s cubic-bezier(.4,0,.2,1) m-slide-up}}@media (prefers-reduced-motion:reduce){.m-animate-in,.m-fab,.m-list-item{transition:none!important;animation:none!important}}
