:root{--color-primary:var(--theme-color,#4f46e5);--color-primary-hover:color-mix(in srgb,var(--color-primary) 86%,#000);--color-primary-active:color-mix(in srgb,var(--color-primary) 76%,#000);--color-primary-soft:color-mix(in srgb,var(--color-primary) 10%,#fff);--color-primary-soft-2:color-mix(in srgb,var(--color-primary) 18%,#fff);--color-primary-glow:color-mix(in srgb,var(--color-primary) 22%,transparent);--color-on-primary:#fff;--color-primary-ink:var(--color-primary);--color-accent:#7c3aed;--slate-25:#fcfcfd;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;--success:#16a34a;--success-soft:#dcfce7;--success-ink:#166534;--warning:#d97706;--warning-soft:#fef3c7;--warning-ink:#92400e;--danger:#dc2626;--danger-soft:#fee2e2;--danger-ink:#991b1b;--info:#0284c7;--info-soft:#e0f2fe;--info-ink:#075985;--surface-0:#f6f7fb;--surface-1:#fff;--surface-2:var(--slate-50);--surface-3:var(--slate-100);--surface-overlay:rgba(15,23,42,.45);--border-subtle:var(--slate-200);--border-strong:var(--slate-300);--text-primary:var(--slate-900);--text-secondary:var(--slate-600);--text-muted:var(--slate-400);--text-inverse:#fff;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-xs:0 1px 2px rgba(15,23,42,.05);--shadow-sm:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--shadow-md:0 4px 12px -2px rgba(15,23,42,.08),0 2px 4px -2px rgba(15,23,42,.05);--shadow-lg:0 16px 32px -8px rgba(15,23,42,.14),0 4px 8px -4px rgba(15,23,42,.06);--shadow-focus:0 0 0 3px var(--color-primary-glow);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--font-ui:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-heading:"Manrope",var(--font-ui);--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--text-2xs:0.6875rem;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--control-height:40px;--control-height-sm:32px;--control-height-lg:48px;--sidebar-width:264px;--sidebar-width-collapsed:76px;--sidebar-bg:var(--surface-1);--sidebar-border:var(--border-subtle);--sidebar-text:var(--slate-600);--sidebar-icon:var(--slate-400);--sidebar-text-active:var(--color-primary);--sidebar-hover-bg:var(--slate-100);--sidebar-active-bg:var(--color-primary-soft);--sidebar-section-label:var(--slate-400);--topbar-height:64px;--topbar-bg:hsla(0,0%,100%,.82);--content-padding:var(--space-6);--ease-out:cubic-bezier(0.16,1,0.3,1);--transition-fast:150ms var(--ease-out);--transition-base:220ms var(--ease-out);--transition-slow:320ms var(--ease-out);color-scheme:light}[data-theme=dark]{--color-primary-ink:color-mix(in srgb,var(--color-primary) 62%,#fff);--sidebar-text-active:var(--color-primary-ink);--color-primary-soft:color-mix(in srgb,var(--color-primary) 18%,#0f172a);--color-primary-soft-2:color-mix(in srgb,var(--color-primary) 28%,#0f172a);--color-primary-glow:color-mix(in srgb,var(--color-primary) 35%,transparent);--success-soft:rgba(22,163,74,.16);--success-ink:#4ade80;--warning-soft:rgba(217,119,6,.18);--warning-ink:#fbbf24;--danger-soft:rgba(220,38,38,.18);--danger-ink:#f87171;--info-soft:rgba(2,132,199,.18);--info-ink:#38bdf8;--surface-0:#0b1120;--surface-1:#111827;--surface-2:#162032;--surface-3:#1e293b;--surface-overlay:rgba(2,6,23,.7);--border-subtle:#1f2a3d;--border-strong:#334155;--text-primary:#f1f5f9;--text-secondary:#a5b1c4;--text-muted:#64748b;--shadow-xs:0 1px 2px rgba(0,0,0,.4);--shadow-sm:0 1px 3px rgba(0,0,0,.45);--shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-lg:0 16px 32px rgba(0,0,0,.6);--sidebar-bg:#0f172a;--sidebar-border:#1e293b;--sidebar-text:#a5b1c4;--sidebar-icon:#64748b;--sidebar-hover-bg:#1e293b;--sidebar-section-label:#475569;--topbar-bg:rgba(17,24,39,.82);color-scheme:dark}@media (max-width:991.98px){:root{--content-padding:var(--space-4);--topbar-height:58px}}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0ms;--transition-base:0ms;--transition-slow:0ms}}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01";background:var(--surface-0);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-base);line-height:1.55}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-family:var(--font-heading);font-weight:700;letter-spacing:-.015em;line-height:1.25}.h1,h1{font-size:var(--text-2xl)}.h2,h2{font-size:var(--text-xl)}.h3,h3{font-size:var(--text-lg)}.h4,h4{font-size:var(--text-md)}.h5,h5{font-size:var(--text-base)}.h6,h6{font-size:var(--text-sm)}p{color:inherit}a{color:var(--color-primary);transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:none}hr{border-top-color:var(--border-subtle);margin:var(--space-4) 0}.small,small{font-size:var(--text-xs)}code,kbd,pre{font-family:var(--font-mono)}code{background:var(--color-primary-soft);border-radius:var(--radius-xs);color:var(--color-primary);padding:.1em .35em}::-moz-selection{background:var(--color-primary-glow)}::selection{background:var(--color-primary-glow)}.text-muted{color:var(--text-muted)!important}.text-black,.text-dark{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-primary,.text-theme{color:var(--color-primary)!important}.text-success{color:var(--success)!important}.text-danger{color:var(--danger)!important}.text-warning{color:var(--warning)!important}.text-info{color:var(--info)!important}.bg-white{background-color:var(--surface-1)!important}.bg-light{background-color:var(--surface-2)!important}.bg-primary,.bg-theme{background-color:var(--color-primary)!important}.border,.border-bottom,.border-left,.border-right,.border-top{border-color:var(--border-subtle)!important}*{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:content-box;border:2px solid transparent;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}::-webkit-scrollbar-track{background:transparent}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}img{max-width:100%}.app-shell{background:var(--surface-0);min-height:100vh}.app-main{margin-inline-start:var(--sidebar-width);max-width:none;min-height:100vh;padding:0;transition:margin-inline-start var(--transition-base);width:auto}.app-content,.app-main{display:flex;flex-direction:column}.app-content{min-width:0}.app-content,.content-wrapper{background:transparent;flex:1 1 auto;width:100%}.content-wrapper{margin:0 auto;max-width:1600px;padding:var(--content-padding)}body.sidebar-collapsed .app-main{margin-inline-start:var(--sidebar-width-collapsed)}@media (max-width:991.98px){.app-main,body.sidebar-collapsed .app-main{margin-inline-start:0}}.footer{background:transparent;border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:var(--text-xs);margin-top:auto;padding:var(--space-4) var(--content-padding)}.footer a{color:var(--text-secondary);font-weight:500}.row{margin-left:calc(var(--space-3)*-1);margin-right:calc(var(--space-3)*-1)}.row>.col,.row>[class*=col]{padding-left:var(--space-3);padding-right:var(--space-3)}.row.no-gutters{margin-left:0;margin-right:0}.row.no-gutters>[class*=col]{padding-left:0;padding-right:0}@media (max-width:575.98px){.row{margin-left:calc(var(--space-2)*-1);margin-right:calc(var(--space-2)*-1)}.row>.col,.row>[class*=col]{padding-left:var(--space-2);padding-right:var(--space-2)}}.app-sidebar{background:var(--sidebar-bg);border-inline-end:1px solid var(--sidebar-border);display:flex;flex-direction:column;inset-block:0;inset-inline-start:0;min-height:0;padding:0;position:fixed;transition:width var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base);width:var(--sidebar-width);z-index:1040}.app-sidebar__brand{align-items:center;display:flex;flex-shrink:0;gap:var(--space-2);height:var(--topbar-height);justify-content:space-between;padding:0 var(--space-4) 0 var(--space-5)}.app-sidebar__logo{align-items:center;display:flex;min-width:0}.app-sidebar__logo img{display:block;height:34px;max-width:176px;-o-object-fit:contain;object-fit:contain;-o-object-position:left center;object-position:left center;width:auto}.app-sidebar__logo .logo-mini{display:none;max-height:34px;max-width:40px}.app-sidebar__collapse{align-items:center;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;height:32px;justify-content:center;transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-base);width:32px}.app-sidebar__collapse:hover{background:var(--sidebar-hover-bg);color:var(--text-primary)}[dir=rtl] .app-sidebar__collapse i{transform:scaleX(-1)}.app-sidebar__search{flex-shrink:0;padding:0 var(--space-4) var(--space-3);position:relative}.app-sidebar__search i{color:var(--text-muted);font-size:13px;inset-inline-start:calc(var(--space-4) + 12px);pointer-events:none;position:absolute;top:50%;transform:translateY(calc(-50% - var(--space-3)/2))}.app-sidebar__search .form-control{background:var(--surface-2)!important;border-color:transparent!important;font-size:var(--text-sm)!important;height:36px!important;min-height:36px;padding-inline-start:34px!important}.app-sidebar__search .form-control:focus{background:var(--surface-1)!important;border-color:var(--color-primary)!important}.app-sidebar__scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-3) var(--space-5)}.app-sidebar .nav{display:flex;flex-direction:column;flex-wrap:nowrap;list-style:none;margin:0;padding:0}.app-sidebar .nav .nav-item{margin:0 0 2px;padding:0;position:relative}.app-sidebar .nav .nav-item>.nav-link{align-items:center;border-radius:var(--radius-md);color:var(--sidebar-text);display:flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-3);line-height:1.3;min-height:38px;padding:0 var(--space-3);transition:background-color var(--transition-fast),color var(--transition-fast);white-space:nowrap}.app-sidebar .nav .nav-item>.nav-link:hover{background:var(--sidebar-hover-bg);color:var(--text-primary)}.app-sidebar .nav .nav-item>.nav-link .menu-icon{color:var(--sidebar-icon);flex:0 0 20px;font-size:15px;margin:0;text-align:center;transition:color var(--transition-fast);width:20px}.app-sidebar .nav .nav-item>.nav-link:hover .menu-icon{color:var(--text-secondary)}.app-sidebar .nav .nav-item>.nav-link .menu-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.app-sidebar .nav .nav-item>.nav-link .menu-arrow{border-bottom:1.5px solid;border-inline-end:1.5px solid currentColor;flex:0 0 auto;height:7px;margin-inline-end:4px;opacity:.55;transform:rotate(-45deg);transition:transform var(--transition-base);width:7px}.app-sidebar .nav .nav-item>.nav-link[aria-expanded=true] .menu-arrow,[dir=rtl] .app-sidebar .nav .nav-item>.nav-link .menu-arrow{transform:rotate(45deg)}.app-sidebar .nav .nav-item.active>.nav-link{background:var(--sidebar-active-bg);color:var(--sidebar-text-active);font-weight:600}.app-sidebar .nav .nav-item.active>.nav-link .menu-icon{color:var(--sidebar-text-active)}.app-sidebar .nav.sub-menu{margin:2px 0 var(--space-2);padding:0;position:relative}.app-sidebar .nav.sub-menu:before{background:var(--border-subtle);content:"";inset-block:4px;inset-inline-start:21px;position:absolute;width:1px}.app-sidebar .nav.sub-menu .nav-item>.nav-link{color:var(--sidebar-text);font-size:var(--text-sm);font-weight:450;min-height:34px;padding-inline-start:44px;white-space:normal}.app-sidebar .nav.sub-menu .nav-item>.nav-link.active{background:transparent;color:var(--sidebar-text-active);font-weight:600}.app-sidebar .nav.sub-menu .nav-item>.nav-link.active:before{background:var(--color-primary);border-radius:50%;box-shadow:0 0 0 3px var(--sidebar-bg);content:"";height:5px;inset-inline-start:19px;position:absolute;width:5px}.app-sidebar .sub-category{border:0;color:var(--sidebar-section-label);font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;margin:0;padding:var(--space-3) var(--space-3) var(--space-1) 44px;text-transform:uppercase}.app-sidebar .nav-item.pl-3{padding-left:0!important}.app-sidebar .nav-item.pl-3 .nav-link .small-icon{font-size:6px;margin-inline-end:6px;opacity:.6;vertical-align:middle}.app-sidebar .no-feature-lock-menu,.app-sidebar .no-feature-lock-menu-sub-item{opacity:.55}@media (min-width:992px){body.sidebar-collapsed .app-sidebar{width:var(--sidebar-width-collapsed)}body.sidebar-collapsed .app-sidebar__brand{justify-content:center;padding:0}body.sidebar-collapsed .app-sidebar__logo{display:none}body.sidebar-collapsed .app-sidebar__collapse i{transform:scaleX(-1)}[dir=rtl] body.sidebar-collapsed .app-sidebar__collapse i{transform:none}body.sidebar-collapsed .app-sidebar__search{display:none}body.sidebar-collapsed .app-sidebar .nav .nav-item>.nav-link{justify-content:center;padding:0}body.sidebar-collapsed .app-sidebar .collapse,body.sidebar-collapsed .app-sidebar .collapsing,body.sidebar-collapsed .app-sidebar .nav .nav-item>.nav-link .menu-arrow,body.sidebar-collapsed .app-sidebar .nav .nav-item>.nav-link .menu-title{display:none!important}body.sidebar-collapsed .app-sidebar .nav .nav-item>.nav-link .menu-icon{font-size:17px}body.sidebar-collapsed .app-sidebar.is-peeking{box-shadow:var(--shadow-lg);width:var(--sidebar-width)}body.sidebar-collapsed .app-sidebar.is-peeking .app-sidebar__brand{justify-content:space-between;padding:0 var(--space-4) 0 var(--space-5)}body.sidebar-collapsed .app-sidebar.is-peeking .app-sidebar__logo,body.sidebar-collapsed .app-sidebar.is-peeking .app-sidebar__search{display:flex}body.sidebar-collapsed .app-sidebar.is-peeking .app-sidebar__search{display:block}body.sidebar-collapsed .app-sidebar.is-peeking .nav .nav-item>.nav-link{justify-content:flex-start;padding:0 var(--space-3)}body.sidebar-collapsed .app-sidebar.is-peeking .nav.sub-menu .nav-item>.nav-link{padding-inline-start:44px}body.sidebar-collapsed .app-sidebar.is-peeking .collapse.show,body.sidebar-collapsed .app-sidebar.is-peeking .nav .nav-item>.nav-link .menu-arrow,body.sidebar-collapsed .app-sidebar.is-peeking .nav .nav-item>.nav-link .menu-title{display:block!important}}.app-sidebar-backdrop{backdrop-filter:blur(2px);background:var(--surface-overlay);inset:0;opacity:0;position:fixed;transition:opacity var(--transition-base),visibility var(--transition-base);visibility:hidden;z-index:1035}@media (max-width:991.98px){.app-sidebar{box-shadow:none;transform:translateX(-100%);width:min(var(--sidebar-width),86vw)}[dir=rtl] .app-sidebar{transform:translateX(100%)}.app-sidebar__collapse{display:none}body.sidebar-open .app-sidebar{box-shadow:var(--shadow-lg);transform:translateX(0)}body.sidebar-open .app-sidebar-backdrop{opacity:1;visibility:visible}body.sidebar-open{overflow:hidden}}[data-theme=dark] .app-sidebar__logo img[src*="/assets/horizontal-logo"]{filter:brightness(0) invert(1)}.app-topbar{align-items:center;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);background:var(--topbar-bg);border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-3);height:var(--topbar-height);padding:0 var(--content-padding);position:sticky;top:0;z-index:1030}.app-topbar__end,.app-topbar__start{align-items:center;display:flex;gap:var(--space-2);min-width:0}.app-topbar__start{flex:1 1 auto}.app-topbar__end{flex:0 0 auto;margin-inline-start:auto}.app-topbar__context{display:flex;flex-direction:column;line-height:1.2;min-width:0}.app-topbar__context-title{color:var(--text-primary);font-size:var(--text-base);font-weight:600}.app-topbar__context-sub,.app-topbar__context-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar__context-sub{color:var(--text-muted);font-size:var(--text-xs)}.icon-btn{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:16px;height:38px;justify-content:center;line-height:1;padding:0;position:relative;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);width:38px}.icon-btn:hover,.icon-btn[aria-expanded=true]{background:var(--surface-3);color:var(--text-primary)}.icon-btn:focus{outline:none}.icon-btn:focus-visible{box-shadow:var(--shadow-focus)}.icon-btn--bordered{background:var(--surface-1);border-color:var(--border-subtle)}.session-chip{align-items:center;background:var(--color-primary-soft);border-radius:var(--radius-pill);color:var(--color-primary-ink);display:inline-flex;font-size:var(--text-xs);font-weight:600;gap:var(--space-2);height:32px;padding:0 var(--space-3);white-space:nowrap}.session-chip i{font-size:12px;opacity:.8}.profile-trigger{align-items:center;border-radius:var(--radius-pill);color:var(--text-primary);display:flex;gap:var(--space-2);padding:4px 8px 4px 4px;transition:background-color var(--transition-fast)}.profile-trigger:hover,.profile-trigger[aria-expanded=true]{background:var(--surface-3);color:var(--text-primary)}.avatar,.profile-trigger img{background:var(--surface-2);border:2px solid var(--surface-1);border-radius:50%;box-shadow:0 0 0 1px var(--border-subtle);height:34px;-o-object-fit:cover;object-fit:cover;width:34px}.profile-trigger__text{display:flex;flex-direction:column;line-height:1.15;text-align:start}.profile-trigger__name{font-size:var(--text-sm);font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-trigger__role{color:var(--text-muted);font-size:var(--text-2xs)}.profile-trigger .fa-angle-down{color:var(--text-muted);font-size:13px}.dropdown-profile{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-3);margin-bottom:var(--space-1);padding:var(--space-3)}.dropdown-profile__name{color:var(--text-primary);font-size:var(--text-sm);font-weight:600}.dropdown-profile__email{color:var(--text-muted);font-size:var(--text-xs);word-break:break-all}.app-banner{align-items:center;background:var(--warning-soft);border-bottom:1px solid color-mix(in srgb,var(--warning) 25%,transparent);color:var(--warning-ink);display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2) var(--content-padding)}.app-banner a{color:inherit;font-weight:600;text-decoration:underline}@media (max-width:575.98px){.app-topbar{gap:var(--space-1)}.profile-trigger .fa-angle-down,.profile-trigger__text{display:none}}.icon-btn.app-topbar__menu{display:none}@media (max-width:991.98px){.icon-btn.app-topbar__menu{display:inline-flex}}.page-header{align-items:center;border:0;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);justify-content:space-between;margin:0 0 var(--space-5);padding:0}.page-header__text{min-width:0}.page-title{align-items:center;color:var(--text-primary);display:flex;font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;gap:var(--space-3);letter-spacing:-.02em;margin:0;text-transform:none}.page-title:first-letter{text-transform:uppercase}.page-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--space-1) 0 0}.page-header__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.page-title-icon{align-items:center;background:var(--color-primary-soft)!important;border-radius:var(--radius-md);box-shadow:none!important;color:var(--color-primary-ink)!important;display:inline-flex;font-size:16px;height:36px;justify-content:center;width:36px}.breadcrumb{align-items:center;background:transparent;display:flex;flex-wrap:wrap;font-size:var(--text-xs);gap:2px;margin:0 0 var(--space-1);padding:0}.breadcrumb-item{color:var(--text-muted)}.breadcrumb-item a{color:var(--text-secondary)}.breadcrumb-item a:hover{color:var(--color-primary)}.breadcrumb-item.active{color:var(--text-secondary);font-weight:500}.breadcrumb-item+.breadcrumb-item{padding-left:4px}.breadcrumb-item+.breadcrumb-item:before{color:var(--text-muted);content:"/";padding-right:6px}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);color:var(--text-primary);display:flex;flex-direction:column;min-width:0;position:relative}.card .card-body{padding:var(--space-5)}.card .card-footer,.card .card-header{background:transparent;border-color:var(--border-subtle);padding:var(--space-4) var(--space-5)}.card .card-header:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.card .card-footer:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.card .card-title,.card-title{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;margin:0 0 var(--space-4);text-transform:none}.card-title:first-letter{text-transform:uppercase}.card-description,.card-subtitle{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)}.card-head{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4)}.card-head .card-title{margin:0}.card-section+.card-section{border-top:1px solid var(--border-subtle);margin-top:var(--space-5);padding-top:var(--space-5)}.card-section__title{color:var(--text-primary);font-size:var(--text-sm);font-weight:600;margin:0 0 var(--space-3)}.card hr{border-top-color:var(--border-subtle);margin:var(--space-4) 0}.stat-card{align-items:flex-start;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);display:flex;gap:var(--space-3);height:100%;justify-content:space-between;padding:var(--space-5);transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base)}.stat-card--interactive:hover,a.stat-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card__label{color:var(--text-secondary);font-size:var(--text-sm);font-weight:500}.stat-card__value{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-top:var(--space-2)}.stat-card__meta{color:var(--text-muted);font-size:var(--text-xs);margin-top:var(--space-1)}.stat-card__icon{align-items:center;background:var(--color-primary-soft);border-radius:var(--radius-lg);color:var(--color-primary-ink);display:inline-flex;flex:0 0 44px;font-size:18px;height:44px;justify-content:center;width:44px}.stat-card__icon--success{background:var(--success-soft);color:var(--success)}.stat-card__icon--warning{background:var(--warning-soft);color:var(--warning)}.stat-card__icon--danger{background:var(--danger-soft);color:var(--danger)}.stat-card__icon--info{background:var(--info-soft);color:var(--info)}.stat-card__icon--accent{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent)}.btn{align-items:center;border:1px solid transparent;border-radius:var(--radius-md);box-shadow:none;display:inline-flex;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:600;gap:var(--space-2);justify-content:center;line-height:1.2;min-height:var(--control-height);padding:0 var(--space-4);transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);vertical-align:middle;white-space:nowrap}.btn.focus,.btn:focus{box-shadow:var(--shadow-focus)!important;outline:none}.btn:active{transform:translateY(1px)}.btn.disabled,.btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.btn i{font-size:.95em;line-height:1}.btn-group-sm>.btn,.btn-sm{border-radius:var(--radius-sm);font-size:var(--text-xs);min-height:var(--control-height-sm);padding:0 var(--space-3)}.btn-group-lg>.btn,.btn-lg{font-size:var(--text-base);min-height:var(--control-height-lg);padding:0 var(--space-5)}.btn-xs{border-radius:var(--radius-sm);font-size:var(--text-2xs);min-height:26px;padding:0 var(--space-2)}.btn-block{display:flex;width:100%}.btn-gradient-primary-solid,.btn-primary,.btn-theme{background:var(--color-primary);border-color:var(--color-primary);box-shadow:0 1px 2px rgba(15,23,42,.12),inset 0 1px 0 hsla(0,0%,100%,.12);color:var(--color-on-primary)!important}.btn-primary:focus,.btn-primary:hover,.btn-primary:not(:disabled):not(.disabled):active,.btn-theme:focus,.btn-theme:hover,.btn-theme:not(:disabled):not(.disabled):active{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-on-primary)!important}.btn-default,.btn-gradient-light,.btn-light,.btn-outline-secondary,.btn-secondary{background:var(--surface-1);border-color:var(--border-strong);box-shadow:var(--shadow-xs);color:var(--text-primary)!important}.btn-default:hover,.btn-gradient-light:focus,.btn-gradient-light:hover,.btn-light:focus,.btn-light:hover,.btn-outline-secondary:hover,.btn-secondary:focus,.btn-secondary:hover,.btn-secondary:not(:disabled):not(.disabled):active{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-primary)!important}.btn-outline-primary,.btn-outline-theme{background:transparent;border-color:var(--color-primary);color:var(--color-primary)!important}.btn-outline-primary:hover,.btn-outline-theme:hover{background:var(--color-primary-soft);color:var(--color-primary-ink)!important}.btn-success{background:var(--success);border-color:var(--success);color:#fff!important}.btn-success:focus,.btn-success:hover,.btn-success:not(:disabled):not(.disabled):active{background:#15803d;border-color:#15803d;color:#fff!important}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff!important}.btn-danger:focus,.btn-danger:hover,.btn-danger:not(:disabled):not(.disabled):active{background:#b91c1c;border-color:#b91c1c;color:#fff!important}.btn-warning{background:var(--warning);border-color:var(--warning);color:#fff!important}.btn-warning:focus,.btn-warning:hover,.btn-warning:not(:disabled):not(.disabled):active{background:#b45309;border-color:#b45309;color:#fff!important}.btn-info{background:var(--info);border-color:var(--info);color:#fff!important}.btn-info:focus,.btn-info:hover,.btn-info:not(:disabled):not(.disabled):active{background:#0369a1;border-color:#0369a1;color:#fff!important}.btn-dark{background:var(--slate-800);border-color:var(--slate-800);color:#fff!important}.btn-dark:focus,.btn-dark:hover,.btn-dark:not(:disabled):not(.disabled):active{background:var(--slate-900);border-color:var(--slate-900);color:#fff!important}.btn-inverse-info.cache-btn,.btn-inverse-primary{background:var(--color-primary-soft);border-color:transparent;box-shadow:none;color:var(--color-primary)!important}.btn-inverse-info.cache-btn:focus,.btn-inverse-info.cache-btn:hover,.btn-inverse-info.cache-btn:not(:disabled):not(.disabled):active,.btn-inverse-primary:focus,.btn-inverse-primary:hover,.btn-inverse-primary:not(:disabled):not(.disabled):active{background:var(--color-primary);border-color:var(--color-primary);color:#fff!important}.btn-inverse-info{background:var(--info-soft);border-color:transparent;box-shadow:none;color:var(--info-ink)!important}.btn-inverse-info:focus,.btn-inverse-info:hover,.btn-inverse-info:not(:disabled):not(.disabled):active{background:var(--info);border-color:var(--info);color:#fff!important}.btn-inverse-success{background:var(--success-soft);border-color:transparent;box-shadow:none;color:var(--success-ink)!important}.btn-inverse-success:focus,.btn-inverse-success:hover,.btn-inverse-success:not(:disabled):not(.disabled):active{background:var(--success);border-color:var(--success);color:#fff!important}.btn-inverse-danger{background:var(--danger-soft);border-color:transparent;box-shadow:none;color:var(--danger-ink)!important}.btn-inverse-danger:focus,.btn-inverse-danger:hover,.btn-inverse-danger:not(:disabled):not(.disabled):active{background:var(--danger);border-color:var(--danger);color:#fff!important}.btn-inverse-warning{background:var(--warning-soft);border-color:transparent;box-shadow:none;color:var(--warning-ink)!important}.btn-inverse-warning:focus,.btn-inverse-warning:hover,.btn-inverse-warning:not(:disabled):not(.disabled):active{background:var(--warning);border-color:var(--warning);color:#fff!important}.btn-inverse-dark,.btn-inverse-secondary{background:var(--surface-3);border-color:transparent;box-shadow:none;color:var(--text-secondary)!important}.btn-inverse-dark:focus,.btn-inverse-dark:hover,.btn-inverse-dark:not(:disabled):not(.disabled):active,.btn-inverse-secondary:focus,.btn-inverse-secondary:hover,.btn-inverse-secondary:not(:disabled):not(.disabled):active{background:var(--slate-700);border-color:var(--slate-700);color:#fff!important}.btn-outline-danger{background:transparent;border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)!important}.btn-outline-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-outline-success{background:transparent;border-color:color-mix(in srgb,var(--success) 45%,transparent);color:var(--success)!important}.btn-outline-success:hover{background:var(--success-soft)}.btn-link{color:var(--color-primary);font-weight:600;min-height:0;padding:0}.btn-link:hover{color:var(--color-primary-hover);text-decoration:none}.btn-icon,.btn.btn-rounded.btn-icon{border-radius:var(--radius-md);font-size:13px;height:32px;min-height:32px;padding:0;width:32px}.btn-rounded{border-radius:var(--radius-pill)}.btn.btn-rounded.btn-icon{border-radius:var(--radius-md)}.btn-gradient-danger,.btn-gradient-dark,.btn-gradient-info,.btn-gradient-primary,.btn-gradient-success,.btn-gradient-warning{background:var(--surface-1);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xs)}.btn-gradient-primary{color:var(--color-primary)!important}.btn-gradient-info{color:var(--info)!important}.btn-gradient-success{color:var(--success)!important}.btn-gradient-danger,.btn-gradient-dark{color:var(--danger)!important}.btn-gradient-warning{color:var(--warning)!important}.btn-gradient-primary:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff!important}.btn-gradient-info:hover{background:var(--info);border-color:var(--info);color:#fff!important}.btn-gradient-success:hover{background:var(--success);border-color:var(--success);color:#fff!important}.btn-gradient-danger:hover,.btn-gradient-dark:hover{background:var(--danger);border-color:var(--danger);color:#fff!important}.btn-gradient-warning:hover{background:var(--warning);border-color:var(--warning);color:#fff!important}td .btn+.btn,td a.btn+a.btn{margin-inline-start:4px}.btn-group>.btn{box-shadow:none}.badge{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--text-2xs);font-weight:600;gap:4px;letter-spacing:.01em;line-height:1.4;padding:.3em .7em;white-space:nowrap}.badge-info-light,.badge-primary,.badge-theme{background:var(--color-primary-soft);color:var(--color-primary-ink)}.badge-success,.badge-success-light{background:var(--success-soft);color:var(--success-ink)}.badge-danger,.badge-danger-light{background:var(--danger-soft);color:var(--danger-ink)}.badge-warning,.badge-warning-light{background:var(--warning-soft);color:var(--warning-ink)}.badge-info{background:var(--info-soft);color:var(--info-ink)}.badge-dark,.badge-light,.badge-secondary{background:var(--surface-3);color:var(--text-secondary)}.badge-outline-success{background:transparent;border:1px solid var(--success);color:var(--success)}.badge-outline-danger{background:transparent;border:1px solid var(--danger);color:var(--danger)}.badge-outline-warning{background:transparent;border:1px solid var(--warning);color:var(--warning)}.badge-outline-primary{background:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.badge-pill{border-radius:var(--radius-pill)}.alert{align-items:flex-start;border:1px solid transparent;border-radius:var(--radius-md);display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-3) var(--space-4)}.alert>:last-child{margin-bottom:0}.alert .close{color:inherit;margin-inline-start:auto;padding:0 0 0 var(--space-2);position:static}.alert-fill-primary,.alert-primary,.alert-theme{background:var(--color-primary-soft);border-color:var(--color-primary-soft-2);color:var(--color-primary-ink)}.alert-fill-success,.alert-success{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 25%,transparent);color:var(--success-ink)}.alert-danger,.alert-fill-danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger-ink)}.alert-fill-warning,.alert-warning{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 25%,transparent);color:var(--warning-ink)}.alert-fill-info,.alert-info{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 25%,transparent);color:var(--info-ink)}.alert-light,.alert-secondary{background:var(--surface-2);border-color:var(--border-subtle);color:var(--text-secondary)}.alert-link{color:inherit;font-weight:700;text-decoration:underline}.note-list{background:var(--info-soft);border-radius:var(--radius-md);color:var(--info-ink);font-size:var(--text-sm);list-style:none;margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4)}.dropdown-menu{animation:dropdown-in var(--transition-base) both;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:var(--text-sm);margin-top:6px;min-width:12rem;padding:var(--space-1)}.dropdown-item{align-items:center;border-radius:var(--radius-sm);color:var(--text-secondary);display:flex;font-weight:500;gap:var(--space-2);padding:.5rem .75rem}.dropdown-item i{color:var(--text-muted);text-align:center;width:16px}.dropdown-item:focus,.dropdown-item:hover{background:var(--surface-2);color:var(--text-primary)}.dropdown-item.active,.dropdown-item:active{background:var(--color-primary-soft);color:var(--color-primary-ink)}.dropdown-item--danger,.dropdown-item--danger i{color:var(--danger)!important}.dropdown-item--danger:hover{background:var(--danger-soft)}.dropdown-divider{border-top-color:var(--border-subtle);margin:var(--space-1) 0}.dropdown-header{color:var(--text-muted);font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em;padding:var(--space-2) .75rem;text-transform:uppercase}.modal-backdrop{background:var(--slate-950)}.modal-backdrop.show{opacity:.5}.modal-content{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--text-primary);overflow:hidden}.modal-header{align-items:center;border-bottom:1px solid var(--border-subtle);padding:var(--space-4) var(--space-5)}.modal-title{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-md);font-weight:700}.modal-body{padding:var(--space-5)}.modal-footer{background:var(--surface-2);border-top:1px solid var(--border-subtle);gap:var(--space-2);padding:var(--space-3) var(--space-5)}.modal-footer>*{margin:0}.close{color:var(--text-muted);font-size:1.4rem;font-weight:400;opacity:1;text-shadow:none;transition:color var(--transition-fast)}.close:hover{color:var(--text-primary);opacity:1}.modal-header .close{align-items:center;border-radius:var(--radius-md);display:inline-flex;height:32px;justify-content:center;margin:-4px -8px -4px auto;padding:0;width:32px}.modal-header .close:hover{background:var(--surface-3)}.modal.fade .modal-dialog{transform:translateY(12px) scale(.98);transition:transform var(--transition-slow),opacity var(--transition-slow)}.modal.show .modal-dialog{transform:none}@media (max-width:575.98px){.modal-dialog{margin:var(--space-2)}}.nav-tabs{border-bottom:1px solid var(--border-subtle);gap:var(--space-1)}.nav-tabs .nav-link{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;margin-bottom:-1px;padding:var(--space-2) var(--space-3)}.nav-tabs .nav-link:hover{border-bottom-color:var(--border-strong);color:var(--text-primary)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{background:transparent;border-bottom-color:var(--color-primary);color:var(--color-primary);font-weight:600}.nav-pills{background:var(--surface-3);border-radius:var(--radius-md);display:inline-flex;flex-wrap:wrap;gap:var(--space-1);padding:3px}.nav-pills .nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;padding:.4rem .85rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background:var(--surface-1);box-shadow:var(--shadow-sm);color:var(--text-primary)}.tab-content{padding-top:var(--space-4)}.list-type-switch{background:var(--surface-3);border-radius:var(--radius-md);display:inline-flex;gap:2px;padding:3px}.list-type-switch b{font-weight:inherit}.list-type-switch .table-list-type{border-radius:var(--radius-sm);color:var(--text-secondary);display:inline-block;font-size:var(--text-xs);font-weight:600;margin:0!important;padding:.3rem .8rem;text-decoration:none!important}.list-type-switch .table-list-type.active{background:var(--surface-1);box-shadow:var(--shadow-sm);color:var(--text-primary)}.pagination{flex-wrap:wrap;gap:4px;margin:0}.page-link{align-items:center;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md)!important;color:var(--text-secondary);display:inline-flex;font-size:var(--text-sm);font-weight:500;height:32px;justify-content:center;line-height:1;min-width:32px;padding:0 .6rem}.page-link:hover{background:var(--surface-2);border-color:var(--border-strong);color:var(--text-primary)}.page-link:focus{box-shadow:var(--shadow-focus)}.page-item.active .page-link{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.page-item.disabled .page-link{background:var(--surface-1);color:var(--text-muted);opacity:.6}.progress{background:var(--surface-3);border-radius:var(--radius-pill);height:8px;overflow:hidden}.progress-lg{height:12px}.progress-bar{background:var(--color-primary);border-radius:var(--radius-pill)}.list-group-item{background:var(--surface-1);border-color:var(--border-subtle);color:var(--text-primary)}.list-group-item:first-child{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.list-group-item:last-child{border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.list-group-item.active{background:var(--color-primary);border-color:var(--color-primary)}.tooltip-inner{background:var(--slate-900);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;padding:.35rem .6rem}.popover{background:var(--surface-1);border-color:var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.popover-body{color:var(--text-secondary)}.table-responsive{border-radius:var(--radius-md)}.empty-state{color:var(--text-secondary)}.empty-state-icon{background:var(--surface-3)!important}.skeleton{animation:skeleton 1.2s ease-in-out infinite;background:linear-gradient(90deg,var(--surface-3) 0,var(--surface-2) 50%,var(--surface-3) 100%);background-size:200% 100%;border-radius:var(--radius-sm);display:block}.table img,td img{background:var(--surface-2);border-radius:var(--radius-md);height:40px;width:40px}.table img,img.img-lg,td img{-o-object-fit:cover;object-fit:cover}img.img-lg{border-radius:var(--radius-lg);height:92px;width:92px}.form-group{margin-bottom:var(--space-4)}.col-form-label,label{color:var(--text-primary);font-size:var(--text-sm);font-weight:500;margin-bottom:6px}label .text-danger{font-weight:600;margin-inline-start:2px}.custom-select,.form-control,.input-group-text,select.form-control{background-color:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-base);height:var(--control-height);line-height:1.4;min-height:var(--control-height);padding:0 var(--space-3);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}textarea.form-control{height:auto;min-height:96px;padding:var(--space-2) var(--space-3);resize:vertical}.custom-select,select.form-control{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;background-size:12px;padding-inline-end:2.25rem}[dir=rtl] .custom-select,[dir=rtl] select.form-control{background-position:left .85rem center}select.form-control[multiple],select.form-control[size]{background-image:none;height:auto;padding:var(--space-2)}.custom-select:hover,.form-control:hover{border-color:var(--slate-400)}.custom-select:focus,.form-control:focus{background-color:var(--surface-1);border-color:var(--color-primary);box-shadow:var(--shadow-focus);color:var(--text-primary);outline:none}.form-control::-moz-placeholder{color:var(--text-muted);opacity:1}.form-control::placeholder{color:var(--text-muted);opacity:1}.form-control:disabled,.form-control[readonly]{background-color:var(--surface-2);box-shadow:none;color:var(--text-secondary)}.form-control-sm,.input-group-sm>.form-control{border-radius:var(--radius-sm);font-size:var(--text-sm);height:var(--control-height-sm);min-height:var(--control-height-sm);padding:0 var(--space-2)}.form-control-lg{font-size:var(--text-md);height:var(--control-height-lg)}input[type=color].form-control{padding:4px;width:56px}input[type=file].form-control{padding:6px var(--space-2)}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.8)}.form-text,small.form-text{color:var(--text-muted);font-size:var(--text-xs);margin-top:4px}.error-message,.invalid-feedback,label.error,span.text-danger.error{color:var(--danger);display:block;font-size:var(--text-xs);font-weight:500;margin-top:4px}.form-control.error,.form-control.is-invalid,.has-danger .form-control{background-image:none;border-color:var(--danger)}.form-control.error:focus,.form-control.is-invalid:focus,.has-danger .form-control:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 20%,transparent)}.form-control.is-valid{background-image:none;border-color:var(--success)}.input-group>.custom-select,.input-group>.form-control{box-shadow:none}.input-group{border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.input-group-text{align-items:center;background:var(--surface-2);box-shadow:none;color:var(--text-secondary);display:flex;font-size:var(--text-sm);padding:0 var(--space-3)}.input-group-append .btn,.input-group-prepend .btn{box-shadow:none;min-height:var(--control-height)}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text{border-bottom-left-radius:0;border-top-left-radius:0}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-bottom-right-radius:0;border-top-right-radius:0}.file-upload-default{height:1px;opacity:0;pointer-events:none;position:absolute;width:1px}.file-upload-info{background-color:var(--surface-1)!important;cursor:default}.file-upload-browse{min-width:96px}.form-check{align-items:center;display:flex;gap:var(--space-2);margin:0 0 var(--space-2);min-height:24px;padding-left:0}.form-check-inline{display:inline-flex;margin-inline-end:var(--space-4)}.form-check .form-check-label{align-items:center;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:400;gap:var(--space-2);margin:0}.form-check .form-check-label input[type=checkbox],.form-check .form-check-label input[type=radio],.form-check-input,input[type=checkbox].form-control,input[type=radio].form-control{accent-color:var(--color-primary);box-shadow:none;cursor:pointer;flex:0 0 auto;height:16px;margin:0;min-height:16px;padding:0;position:static;width:16px}.input-helper{display:none}.custom-control-input:checked~.custom-control-label:before{background-color:var(--color-primary);border-color:var(--color-primary)}.custom-control-input:focus~.custom-control-label:before{box-shadow:var(--shadow-focus)}.custom-control-label{cursor:pointer;font-weight:400}.custom-control-label:before{background:var(--surface-1);border-color:var(--border-strong)}.custom-switch .custom-control-label:before{border-radius:var(--radius-pill)}#toolbar,.filter-menu,.toolbar-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-3)}#toolbar .form-group,.filter-menu .form-group{margin-bottom:0}#toolbar>.row,.toolbar-filters>.row{align-items:flex-end;display:flex;flex:1 1 100%;flex-wrap:wrap;gap:var(--space-3);margin:0}#toolbar>.row>[class*=col]:not(.col-12),#toolbar>[class*=col-]:not(.col-12),.toolbar-filters>.row>[class*=col]:not(.col-12){flex:0 1 220px;max-width:280px;min-width:180px;padding:0;width:auto}#toolbar label,.filter-menu label,label.filter-menu{color:var(--text-secondary);font-size:var(--text-xs);margin-bottom:4px}label.filter-menu{display:block}.filter-fieldset,fieldset.border{background:var(--surface-1);border:1px solid var(--border-strong)!important;border-radius:var(--radius-md);margin:0;padding:0 var(--space-2) var(--space-1)}.filter-fieldset legend,fieldset.border legend{color:var(--text-secondary);font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em;margin:0;padding:0 4px;width:auto}.filter-fieldset .form-control,fieldset.border .form-control{border:0;box-shadow:none;height:30px;min-height:30px;padding-inline-start:2px}.form-actions{border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-2);padding-top:var(--space-4)}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary);cursor:pointer;height:16px;vertical-align:-3px;width:16px}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;margin-inline-start:6px;margin-bottom:0}@media (min-width:768px){.card form#create-form,.card form.create-form{align-items:start;-moz-column-gap:var(--space-5);column-gap:var(--space-5);display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.card form#create-form>*,.card form.create-form>*{grid-column:1/-1}.card form#create-form>.form-group:not(:has(.form-check,textarea,table,.row,.select2-selection--multiple,select[multiple],.tox,.cke,[data-repeater-list])),.card form.create-form>.form-group:not(:has(.form-check,textarea,table,.row,.select2-selection--multiple,select[multiple],.tox,.cke,[data-repeater-list])){grid-column:auto}.card form#create-form>[class*=col-],.card form.create-form>[class*=col-]{flex:none;max-width:none;padding-left:0;padding-right:0;width:auto}}.table{background:transparent;border-collapse:separate;border-spacing:0;color:var(--text-primary);font-size:var(--text-sm);margin-bottom:0;width:100%}.table thead th,.table>thead>tr>th{background:var(--surface-2);color:var(--text-secondary);font-size:var(--text-2xs);font-weight:600;letter-spacing:.05em;padding:.7rem var(--space-4);position:relative;text-transform:uppercase;white-space:nowrap}.table td,.table thead th,.table>tbody>tr>td,.table>thead>tr>th{border-bottom:1px solid var(--border-subtle);border-top:0;vertical-align:middle}.table td,.table>tbody>tr>td{color:var(--text-primary);line-height:1.45;padding:.8rem var(--space-4)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color var(--transition-fast)}.bootstrap-table .table tbody tr:hover,.table-hover tbody tr:hover{background:var(--surface-2);color:inherit}.table-striped tbody tr:nth-of-type(odd){background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.table-bordered,.table-bordered td,.table-bordered th{border-color:var(--border-subtle)}.bootstrap-table .table tbody tr.selected td,.table .selected{background:var(--color-primary-soft)}.card .table-responsive,.dt-shell{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:auto}.bootstrap-table{position:relative}.bootstrap-table .fixed-table-toolbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-3);padding:0 0 var(--space-4)}.bootstrap-table .fixed-table-toolbar:after{display:none}.bootstrap-table .fixed-table-toolbar .bs-bars{flex:1 1 320px;float:none!important;margin:0!important;min-width:0}.bootstrap-table .fixed-table-toolbar .columns,.bootstrap-table .fixed-table-toolbar .search{float:none!important;margin:0!important}.bootstrap-table .fixed-table-toolbar .columns{display:inline-flex;gap:6px;order:3}.bootstrap-table .fixed-table-toolbar .search{margin-inline-start:auto!important;order:2;position:relative}.bootstrap-table .fixed-table-toolbar .search .form-control,.bootstrap-table .fixed-table-toolbar .search input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-position:12px;background-repeat:no-repeat;height:var(--control-height);max-width:100%;padding-inline-start:36px;width:240px}[dir=rtl] .bootstrap-table .fixed-table-toolbar .search input{background-position:calc(100% - 12px)}.bootstrap-table .fixed-table-toolbar .columns .dropdown-toggle,.bootstrap-table .fixed-table-toolbar .columns>.btn,.bootstrap-table .fixed-table-toolbar .columns>.btn-group>.btn{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-md)!important;box-shadow:var(--shadow-xs);color:var(--text-secondary)!important;height:var(--control-height);min-height:var(--control-height);min-width:var(--control-height);padding:0 var(--space-3);width:auto}.bootstrap-table .fixed-table-toolbar .columns .dropdown-toggle:hover,.bootstrap-table .fixed-table-toolbar .columns>.btn:hover{background:var(--surface-2);color:var(--text-primary)!important}.bootstrap-table .fixed-table-toolbar .columns .btn-group{margin:0!important}.bootstrap-table .fixed-table-toolbar .columns .btn-group>.btn{margin:0}.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu{max-height:340px;overflow-y:auto}.bootstrap-table .fixed-table-toolbar .columns .dropdown-item,.bootstrap-table .fixed-table-toolbar .columns label.dropdown-item{cursor:pointer;display:flex;font-weight:500;gap:var(--space-2);margin:0}.bootstrap-table .fixed-table-container{background:var(--surface-1);border:1px solid var(--border-subtle)!important;border-radius:var(--radius-lg);overflow:hidden;position:relative}.bootstrap-table .fixed-table-container .table thead th{border-bottom:1px solid var(--border-subtle)!important;padding:0}.bootstrap-table .fixed-table-container .table thead th .th-inner{line-height:1.4;overflow:visible;padding:.7rem var(--space-4)!important;white-space:nowrap}.bootstrap-table .fixed-table-container .table td,.bootstrap-table .fixed-table-container .table th,.bootstrap-table .table-bordered,.bootstrap-table .table-bordered td,.bootstrap-table .table-bordered th{border-left:0!important;border-right:0!important}.bootstrap-table .fixed-table-container .table tbody td{padding:.8rem var(--space-4);white-space:nowrap}.bootstrap-table .fixed-table-container .table tbody td .text-wrap,.bootstrap-table .fixed-table-container .table tbody td p,.bootstrap-table .fixed-table-container .table tbody td ul{min-width:220px;white-space:normal}.bootstrap-table .table .card-view .card-view-value{white-space:normal}.bootstrap-table .fixed-table-container .table thead th .sortable{background-position:right 10px center;background-size:10px;cursor:pointer;padding-inline-end:28px!important}.bootstrap-table .fixed-table-container .table thead th .sortable.both{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 9 5-5 5 5M7 15l5 5 5-5'/%3E%3C/svg%3E")}.bootstrap-table .fixed-table-container .table thead th .sortable.asc{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%234F46E5' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 14 5-5 5 5'/%3E%3C/svg%3E")}.bootstrap-table .fixed-table-container .table thead th .sortable.desc{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%234F46E5' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")}[dir=rtl] .bootstrap-table .fixed-table-container .table thead th .sortable{background-position:0;padding-inline-end:18px!important}.bootstrap-table .fixed-table-container .table thead th .fht-cell{display:none}.bootstrap-table .fixed-table-container .fixed-table-body{height:auto;overflow-x:auto;overflow-y:auto}.bootstrap-table .fixed-table-container .table td.bs-checkbox,.bootstrap-table .fixed-table-container .table th.bs-checkbox{text-align:center;width:44px}.bootstrap-table .fixed-table-container .table td.bs-checkbox input,.bootstrap-table .fixed-table-container .table th.bs-checkbox input{accent-color:var(--color-primary);height:16px;width:16px}.action-column,.bootstrap-table .table td:last-child:has(>.btn),.bootstrap-table .table th[data-field=operate]{white-space:nowrap}.bootstrap-table .fixed-table-container .table tbody tr.no-records-found td{background:var(--surface-1);color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-7) var(--space-4);text-align:center}.bootstrap-table .fixed-table-container .table tbody tr.no-records-found:hover{background:var(--surface-1)}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading{align-items:center;backdrop-filter:blur(1px);background:color-mix(in srgb,var(--surface-1) 72%,transparent);display:none;justify-content:center;z-index:5}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.open{display:flex!important}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap{align-items:center;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);display:inline-flex;gap:var(--space-3);padding:var(--space-2) var(--space-4)}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .loading-text{color:var(--text-secondary);font-size:var(--text-sm)!important;font-weight:500;margin:0!important}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation{display:none}.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap:before{animation:spin .7s linear infinite;border:2px solid var(--color-primary-soft-2);border-radius:50%;border-top-color:var(--color-primary);content:"";height:16px;width:16px}.bootstrap-table .fixed-table-container .fixed-table-body{min-height:120px}.bootstrap-table .fixed-table-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) 0 0}.bootstrap-table .fixed-table-pagination:after{display:none}.bootstrap-table .fixed-table-pagination>.pagination,.bootstrap-table .fixed-table-pagination>.pagination-detail{float:none!important;margin:0!important}.bootstrap-table .fixed-table-pagination .pagination-detail{align-items:center;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:var(--text-sm);gap:var(--space-2)}.bootstrap-table .fixed-table-pagination .pagination-detail .pagination-info{margin:0}.bootstrap-table .fixed-table-pagination .pagination-detail .page-list{align-items:center;display:inline-flex;gap:6px;margin:0}.bootstrap-table .fixed-table-pagination .pagination-detail .page-list .btn{background:var(--surface-1);border:1px solid var(--border-strong);box-shadow:none;color:var(--text-primary)!important;font-size:var(--text-sm);height:32px;min-height:32px;padding:0 var(--space-2)}.bootstrap-table .fixed-table-pagination .pagination .page-item .page-link,.bootstrap-table .fixed-table-pagination .pagination ul.pagination{margin:0}.bootstrap-table .table .card-view{display:flex;gap:var(--space-3);padding:4px 0}.bootstrap-table .table .card-view .card-view-title{color:var(--text-muted);flex:0 0 38%;font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;max-width:38%;text-transform:uppercase;white-space:normal!important}.bootstrap-table .table .card-view .card-view-value{flex:1 1 auto;min-width:0;word-break:break-word}.bootstrap-table .table tbody tr td .card-views,.bootstrap-table .table.table-no-bordered>tbody>tr>td{padding:var(--space-3) var(--space-4)}.bootstrap-table .table tbody tr td .card-views .card-view{border-bottom:1px dashed var(--border-subtle)}.bootstrap-table .table tbody tr td .card-views .card-view:last-child{border-bottom:0}.bootstrap-table .table tbody tr.myDragClass,.bootstrap-table .table tbody tr.tDnD_whileDrag{background:var(--color-primary-soft)!important;box-shadow:var(--shadow-md)}.reorder-rows-on tbody tr{cursor:grab}@media (max-width:767.98px){.bootstrap-table .fixed-table-toolbar .search{flex:1 1 100%;margin-inline-start:0!important;order:1}.bootstrap-table .fixed-table-toolbar .search input{width:100%}.bootstrap-table .fixed-table-toolbar .bs-bars{flex-basis:100%;order:2}.bootstrap-table .fixed-table-toolbar .columns{margin-inline-start:auto!important;order:3}.bootstrap-table .fixed-table-pagination{justify-content:center}}.select2-container{max-width:100%}.select2-container--default .select2-selection--multiple,.select2-container--default .select2-selection--single{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);min-height:var(--control-height);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.select2-container--default .select2-selection--single{height:var(--control-height)}.select2-container--default .select2-selection--single .select2-selection__rendered{color:var(--text-primary);font-size:var(--text-base);line-height:calc(var(--control-height) - 2px);padding-inline:var(--space-3) 2rem}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:var(--text-muted)}.select2-container--default .select2-selection--single .select2-selection__arrow{height:calc(var(--control-height) - 2px);width:30px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:var(--text-muted) transparent transparent transparent}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default.select2-container--focus .select2-selection--single,.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.select2-container--default .select2-selection--multiple .select2-selection__rendered{display:flex;flex-wrap:wrap;gap:4px;padding:4px var(--space-2)}.select2-container--default .select2-selection--multiple .select2-selection__choice{align-items:center;background:var(--color-primary-soft);border:0;border-radius:var(--radius-sm);color:var(--color-primary-ink);display:inline-flex;font-size:var(--text-xs);font-weight:600;gap:4px;margin:0;padding:2px 8px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{border:0;color:var(--color-primary);margin:0;opacity:.7;padding:0;position:static}.select2-container--default .select2-search--inline .select2-search__field{color:var(--text-primary);margin-top:4px}.select2-dropdown{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;z-index:1060}.select2-container--default .select2-search--dropdown .select2-search__field{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);height:34px;padding:0 var(--space-2)}.select2-results__option{color:var(--text-primary);font-size:var(--text-sm);padding:7px var(--space-3)}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable,.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--color-primary);color:#fff}.select2-container--default .select2-results__option--selected,.select2-container--default .select2-results__option[aria-selected=true]{background:var(--color-primary-soft);color:var(--color-primary-ink)}.datepicker-dropdown,.datepicker.dropdown-menu,.daterangepicker{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-primary);font-family:var(--font-ui);padding:var(--space-2)}.datepicker table tr td,.datepicker table tr th,.daterangepicker .calendar-table td,.daterangepicker .calendar-table th{border-radius:var(--radius-sm);font-size:var(--text-sm);height:32px;width:34px}.daterangepicker .calendar-table{background:var(--surface-1);border-color:transparent}.datepicker table tr td.day:hover,.datepicker table tr td.focused,.daterangepicker td.available:hover,.daterangepicker th.available:hover{background:var(--surface-3)}.datepicker table tr td.today{background:var(--color-primary-soft)!important;color:var(--color-primary-ink)}.datepicker table tr td span.active,.datepicker table tr td.active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover,.daterangepicker td.active,.daterangepicker td.active:hover{background:var(--color-primary)!important;background-image:none!important;color:#fff!important;text-shadow:none}.daterangepicker td.in-range{background:var(--color-primary-soft);color:var(--text-primary)}.daterangepicker td.off{background:transparent;color:var(--text-muted)}.daterangepicker .drp-buttons{border-top-color:var(--border-subtle)}.daterangepicker .ranges li.active{background:var(--color-primary)}.daterangepicker .ranges li:hover{background:var(--surface-3)}.daterangepicker:after,.daterangepicker:before{display:none}.swal2-popup{background:var(--surface-1)!important;border-radius:var(--radius-xl)!important;box-shadow:var(--shadow-lg);font-family:var(--font-ui)!important;padding:var(--space-5)!important}.swal2-popup,.swal2-title{color:var(--text-primary)!important}.swal2-title{font-family:var(--font-heading)!important;font-size:var(--text-lg)!important;font-weight:700!important}.swal2-content,.swal2-html-container{color:var(--text-secondary)!important;font-size:var(--text-base)!important}.swal2-actions{gap:var(--space-2)}.swal2-styled{border-radius:var(--radius-md)!important;box-shadow:none!important;font-size:var(--text-sm)!important;font-weight:600!important;margin:0!important;min-height:var(--control-height);padding:0 var(--space-5)!important}.swal2-styled.swal2-confirm{background:var(--color-primary)!important}.swal2-styled.swal2-cancel{background:var(--surface-1)!important;border:1px solid var(--border-strong)!important;color:var(--text-primary)!important}.swal2-styled.swal2-deny{background:var(--danger)!important}.swal2-styled:focus{box-shadow:var(--shadow-focus)!important}.swal2-icon{margin-top:0!important;transform:scale(.8)}.swal2-input,.swal2-select,.swal2-textarea{background:var(--surface-1)!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius-md)!important;box-shadow:none!important;color:var(--text-primary)!important}.swal2-container.swal2-backdrop-show{background:rgba(2,6,23,.5)!important}.jq-toast-wrap{width:340px}.jq-toast-single{background-color:var(--slate-900)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-lg);color:#fff!important;font-family:var(--font-ui)!important;font-size:var(--text-sm)!important;line-height:1.45!important;margin-bottom:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-3) 44px!important}.jq-toast-single.jq-icon-success{background-color:#14532d!important}.jq-toast-single.jq-icon-error{background-color:#7f1d1d!important}.jq-toast-single.jq-icon-warning{background-color:#78350f!important}.jq-toast-single.jq-icon-info{background-color:#0c4a6e!important}.jq-toast-single h2{color:#fff;font-size:var(--text-sm);margin-bottom:2px}.jq-toast-loader{background:hsla(0,0%,100%,.35)!important;border-radius:0 0 var(--radius-lg) var(--radius-lg);height:3px!important}.close-jq-toast-single{font-size:18px!important;opacity:.7;right:10px!important;top:8px!important}div.tagsinput{background:var(--surface-1)!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius-md);height:auto!important;min-height:var(--control-height)!important;padding:4px var(--space-2)!important;width:100%!important}div.tagsinput span.tag{background:var(--color-primary-soft)!important;border:0!important;border-radius:var(--radius-sm)!important;color:var(--color-primary-ink)!important;font-family:var(--font-ui)!important;font-size:var(--text-xs)!important;font-weight:600;margin:3px 4px 3px 0!important;padding:2px 8px!important}div.tagsinput span.tag a{color:var(--color-primary)!important}div.tagsinput input{color:var(--text-primary)!important;font-family:var(--font-ui)!important;font-size:var(--text-sm)!important}.cke,.tox.tox-tinymce{border:1px solid var(--border-strong)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-xs)!important;overflow:hidden}.fc{--fc-border-color:var(--border-subtle);--fc-page-bg-color:var(--surface-1);--fc-neutral-bg-color:var(--surface-2);--fc-today-bg-color:var(--color-primary-soft);--fc-event-bg-color:var(--color-primary);--fc-event-border-color:var(--color-primary);--fc-button-bg-color:var(--surface-1);--fc-button-border-color:var(--border-strong);--fc-button-text-color:var(--text-primary);--fc-button-hover-bg-color:var(--surface-2);--fc-button-hover-border-color:var(--border-strong);--fc-button-active-bg-color:var(--color-primary);--fc-button-active-border-color:var(--color-primary);font-size:var(--text-sm)}.fc .fc-toolbar-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:700}.fc .fc-button{border-radius:var(--radius-md);box-shadow:none!important;font-weight:600;text-transform:capitalize}.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff}.fc .fc-col-header-cell-cushion{color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.fc .fc-event{border-radius:var(--radius-sm);padding:2px 4px}.fc-daygrid-event,.fc-event{cursor:pointer}#external-events .fc-event{border-radius:var(--radius-md);margin-bottom:var(--space-2);padding:var(--space-2) var(--space-3)}.asColorPicker-wrap{display:flex}.asColorPicker-trigger{border-color:var(--border-strong);border-radius:0 var(--radius-md) var(--radius-md) 0;height:var(--control-height);width:var(--control-height)}.asColorPicker-dropdown{border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.ekko-lightbox .modal-content{border-radius:var(--radius-lg)}.grid-margin{margin-bottom:var(--space-5)}.custom-grid-margin{margin-bottom:var(--space-3)!important}.stretch-card{align-items:stretch;display:flex;justify-content:stretch}.stretch-card>.card{min-width:100%;width:100%}.card .card-body.custom-card-body,.custom-card-body{padding:var(--space-5)!important}.text-small{font-size:var(--text-xs)}.font-weight-medium{font-weight:500}.font-weight-semibold{font-weight:600}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-color{color:var(--color-primary)}.aligner-wrapper{position:relative}.card-icon{color:var(--color-primary);font-size:1.5rem}.custom-badge{padding:.25em .5em!important}.mdi{line-height:1}.me-1{margin-inline-end:.25rem!important}.me-2{margin-inline-end:.5rem!important}.ms-1{margin-inline-start:.25rem!important}.ms-2{margin-inline-start:.5rem!important}.fa-sync:before{content:"\f021"}.responsive-medium-list{flex-wrap:wrap!important}.w-fit-content{width:-moz-fit-content;width:fit-content}@media (min-width:1720px){.col-xxl-2{flex:0 0 16.666667%;max-width:16.666667%}}.search-container .columns.columns-right.btn-group.float-right,.search-container .search{padding-top:0}.container-scroller{overflow:visible}.page-body-wrapper.full-page-wrapper{display:flex;margin:0;min-height:100vh;padding:0;width:100%}.full-page-wrapper .content-wrapper{align-items:center;display:flex;max-width:none;padding:var(--space-5)}.auth-form-light{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);color:var(--text-primary)}.auth-form-btn{font-size:var(--text-base);min-height:var(--control-height-lg)}.auth-link{color:var(--color-primary);font-size:var(--text-sm);font-weight:600}.login-d-flex{display:flex;justify-content:center}.color-code-box{border-radius:var(--radius-md);height:var(--control-height);padding:9px;text-align:center}#elective-subject-div span,.elective-subject-div div{margin:var(--space-2) 0}span.select2{width:100%!important}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{color:var(--text-muted)!important}#filter_class_section_id,#filter_subject_id,#filter_teacher_id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-scroll{overflow-y:auto}.fc-event-end,.fc-event-start{margin:2px!important}.bootstrap-table-description{cursor:pointer;display:inline-block;max-width:15rem;vertical-align:middle}.align-button,.bootstrap-table-description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-button{max-width:12rem}.note li:before{color:var(--danger)}.text-decoration-line-through{color:var(--text-muted)!important;text-decoration:line-through}.feature-checkbox,.feature-radio{display:none}.feature-list,.feature-list-default{align-items:center;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-2);line-height:1.35;min-height:48px;padding:var(--space-3) var(--space-4);transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}.feature-list:hover{border-color:var(--color-primary)}input:checked+.feature-list{background:var(--color-primary-soft);border-color:var(--color-primary-ink);box-shadow:0 0 0 1px var(--color-primary);color:var(--color-primary)}input:checked+.feature-list:before{background:var(--color-primary) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/10px no-repeat;border-radius:50%;content:"";flex:0 0 auto;height:16px;width:16px}.feature-list-default,input:checked+.feature-list-default{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 40%,transparent);color:var(--success-ink);cursor:default}input:checked+.feature-list-default:before{content:"\f023";font-family:FontAwesome;font-size:14px}.check{color:var(--success)}.no-feature{color:var(--danger)}.pricing-card-body{transition:transform var(--transition-base),box-shadow var(--transition-base)}.pricing-card-body:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.pricing-table .pricing-card .pricing-card-body{padding:var(--space-6) var(--space-5);text-align:center}.pricing-table .pricing-card .pricing-card-body .plan-features{list-style:none;margin:var(--space-4) 0;padding:0;text-align:start}.pricing-table .pricing-card .pricing-card-body .plan-features li{color:var(--text-secondary);font-size:var(--text-sm);padding:6px 0}.package-expire-date{color:var(--text-muted);font-style:italic}.billing_cycle,.package-type{border-radius:var(--radius-md)}.card-statistics .card-body{padding:var(--space-5)}.card-statistics h3,.card-statistics h4{font-family:var(--font-heading);font-weight:700}.no-feature-lock-menu,.no-feature-lock-menu-sub-item,.no-feature-lock-menu-without-alert{opacity:.5}.no-feature-lock-menu{cursor:pointer!important}.no-feature-lock-menu .menu-title:after,.no-feature-lock-menu-sub-item:after,.no-feature-lock-menu-without-alert .menu-title:after{content:"\f023";font-family:FontAwesome;font-size:12px;margin-inline-start:6px;opacity:.8}.steps-guide{padding:var(--space-4) var(--space-2)}.step-number{align-items:center;background:var(--color-primary);border-radius:50%;color:#fff;display:inline-flex;font-size:var(--text-xs);font-weight:700;height:28px;justify-content:center;width:28px}.step-content{flex:1;line-height:1.5}.help-trigger{align-items:center;display:inline-flex;text-decoration:none!important}.help-icon{color:var(--color-primary);font-size:20px;margin-inline-start:8px;transition:transform var(--transition-fast),color var(--transition-fast)}.help-icon:hover{color:var(--color-primary-hover);transform:scale(1.1)}.help-modal .modal-body{padding:0}.help-modal .step:last-child{margin-bottom:0!important}.help-modal .badge-primary{background:var(--color-primary);color:#fff}.help-modal .modal-footer{padding:var(--space-3) var(--space-5)}.help-modal .modal-header{background:var(--color-primary);border-bottom:0}.help-modal .modal-header .modal-title{align-items:center;color:#fff;display:flex;font-size:var(--text-md)}.help-modal .close{color:#fff;opacity:.8}.help-modal .close:hover{background:hsla(0,0%,100%,.12);color:#fff;opacity:1}.help-modal .step-icon-wrapper{align-items:center;background:var(--color-primary-soft);border-radius:var(--radius-md);display:flex;height:40px;justify-content:center;position:relative;width:40px}.help-modal .step-icon{color:var(--color-primary);font-size:20px}.help-modal .step-number{font-size:11px;height:20px;position:absolute;right:-6px;top:-6px;width:20px}.help-modal .step-title{color:var(--text-primary);font-weight:600}.help-modal .step-description{color:var(--text-secondary);font-size:var(--text-sm)}.wizard>.steps ul{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0 0 var(--space-5);padding:0}.wizard>.steps ul li{flex:1 1 140px}.wizard>.steps ul li a{align-items:center;background:var(--surface-1)!important;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary)!important;display:flex;font-size:var(--text-sm);font-weight:600;gap:var(--space-2);height:100%;padding:var(--space-3);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.wizard>.steps ul li a.bg-success{border-color:color-mix(in srgb,var(--success) 40%,transparent)}.wizard>.steps ul li a.bg-success:before{color:var(--success);content:"\f00c";font-family:FontAwesome}.wizard>.steps ul li a.bg-danger:before{background:var(--warning);border-radius:50%;content:"";height:8px;width:8px}.wizard>.steps ul li.current a,.wizard>.steps ul li[aria-selected=true] a{background:var(--color-primary-soft)!important;border-color:var(--color-primary);color:var(--color-primary-ink)!important}.step-form{display:none}.step-form.active{animation:fade-up var(--transition-slow) backwards;display:block}.lightGallery{display:flex;flex-wrap:wrap;gap:var(--space-3)}.lightGallery .image-tile{flex:0 0 calc(25% - var(--space-3));position:relative}.lightGallery .image-tile img{border-radius:var(--radius-md);width:100%}@media (max-width:767.98px){.lightGallery .image-tile{flex-basis:calc(50% - var(--space-3))}}.min-w-0{min-width:0}.stretch-card>.stat-card{width:100%}.dashboard-description>.bg-light,.v-scroll>.bg-light{background:var(--surface-2)!important;border-radius:var(--radius-md);display:flex;font-size:var(--text-sm);gap:var(--space-2);justify-content:space-between}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.status-badge{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--text-xs);font-weight:600;gap:.35rem;padding:.2rem .6rem;white-space:nowrap}.status-badge:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.badge-soft-success{background:var(--success-soft);color:var(--success-ink)}.badge-soft-danger{background:var(--danger-soft);color:var(--danger-ink)}.badge-soft-warning{background:var(--warning-soft);color:var(--warning-ink)}.badge-soft-info{background:var(--info-soft);color:var(--info-ink)}.badge-soft-secondary{background:var(--surface-2);color:var(--text-secondary)}.switch-row{align-items:flex-start;cursor:pointer;display:flex;gap:var(--space-3);margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch-row input{opacity:0;pointer-events:none;position:absolute}.switch-row__track{background:var(--slate-300);border-radius:var(--radius-pill);flex:none;height:22px;margin-top:1px;position:relative;transition:background var(--transition-fast);width:38px}.switch-row__track:after{background:#fff;border-radius:50%;box-shadow:var(--shadow-xs);content:"";height:16px;left:3px;position:absolute;top:3px;transition:transform var(--transition-fast);width:16px}input:checked+.switch-row__track{background:var(--color-primary)}input:checked+.switch-row__track:after{transform:translateX(16px)}input:focus-visible+.switch-row__track{box-shadow:var(--shadow-focus)}.switch-row__text{color:var(--text-primary);display:flex;flex-direction:column;font-size:var(--text-sm)}.switch-row__text small{color:var(--text-muted);font-size:var(--text-xs);margin-top:2px}[data-theme=dark] .switch-row__track{background:var(--slate-600)}.bulk-upload__grid{display:grid;gap:var(--space-7);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}@media (max-width:991.98px){.bulk-upload__grid{gap:var(--space-5);grid-template-columns:1fr}}.bulk-steps{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.bulk-step{display:flex;gap:var(--space-4);padding-bottom:var(--space-6);position:relative}.bulk-step:last-child{padding-bottom:0}.bulk-step:not(:last-child):before{background:var(--border-subtle);bottom:4px;content:"";left:15px;position:absolute;top:34px;width:2px}.bulk-step__num{background:var(--color-primary-soft);border-radius:50%;color:var(--color-primary-ink);display:grid;flex:none;font-size:var(--text-sm);font-weight:700;height:32px;place-items:center;width:32px}.bulk-step__body{min-width:0;padding-top:4px}.bulk-step__title{color:var(--text-primary);font-size:var(--text-base);font-weight:600;margin:0 0 var(--space-1)}.bulk-step__text{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.bulk-step__hint{color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-3) 0 0}.bulk-step__action{margin-top:var(--space-3)}.column-chips{display:flex;flex-wrap:wrap;gap:6px}.column-chip{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-2xs);padding:2px 8px}.column-chip--required{background:var(--color-primary-soft);border-color:transparent;color:var(--color-primary-ink)}.bulk-upload__form{align-self:start;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}.bulk-upload__fields .form-group{margin-bottom:var(--space-3)}.bulk-upload__fields .form-group:last-child{margin-bottom:0}.dropzone{align-items:center;background:var(--surface-0);border:2px dashed var(--border-strong);border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:var(--space-7) var(--space-4);text-align:center;transition:border-color var(--transition-fast),background var(--transition-fast)}.dropzone.is-dragging,.dropzone:hover{background:var(--color-primary-soft);border-color:var(--color-primary)}.dropzone__icon{background:var(--color-primary-soft);border-radius:50%;color:var(--color-primary);display:grid;height:52px;place-items:center;width:52px}.dropzone__title{color:var(--text-primary);font-weight:600}.dropzone__link{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.dropzone__hint{color:var(--text-muted);font-size:var(--text-xs)}.dropzone:focus-within{box-shadow:var(--shadow-focus)}.file-pill{align-items:center;background:var(--surface-0);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.file-pill__icon{color:var(--success);display:flex}.file-pill__name{color:var(--text-primary);flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-pill__size{color:var(--text-muted);font-size:var(--text-xs)}.file-pill__remove{background:transparent;border:0;border-radius:var(--radius-sm);color:var(--text-muted);font-size:1.25rem;line-height:1;padding:0 4px}.file-pill__remove:hover{background:var(--danger-soft);color:var(--danger)}.bulk-progress{display:flex;flex-direction:column;gap:var(--space-2)}.bulk-progress__bar{background:var(--surface-2);border-radius:var(--radius-pill);height:8px;overflow:hidden}.bulk-progress__bar span{background:var(--color-primary);border-radius:inherit;display:block;height:100%;transition:width .2s ease;width:0}.bulk-progress.is-processing .bulk-progress__bar span{animation:bulk-indeterminate 1.1s ease-in-out infinite;width:40%!important}.bulk-progress__label{color:var(--text-secondary);font-size:var(--text-xs)}@keyframes bulk-indeterminate{0%{margin-left:-40%}to{margin-left:100%}}.bulk-result{border-radius:var(--radius-md);display:flex;font-size:var(--text-sm);gap:var(--space-3);padding:var(--space-3) var(--space-4)}.bulk-result>i{margin-top:3px}.bulk-result ul{margin:var(--space-2) 0 0;max-height:220px;overflow:auto;padding-left:1.1rem}.bulk-result li{margin-bottom:2px}.bulk-result--success{background:var(--success-soft);color:var(--success-ink)}.bulk-result--error{background:var(--danger-soft);color:var(--danger-ink)}.bulk-upload__submit{font-weight:600;height:var(--control-height-lg)}.history-file{align-items:center;display:inline-flex;gap:6px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-file i{color:var(--success)}.history-detail{color:var(--text-secondary);font-size:var(--text-sm);padding:var(--space-3) var(--space-4)}.history-detail ul{margin:var(--space-2) 0 0;padding-left:1.1rem}.history-detail--error{background:var(--danger-soft);border-radius:var(--radius-md);color:var(--danger-ink)}.role-details{display:grid;gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width:767.98px){.role-details{grid-template-columns:1fr}}.role-editor{overflow:hidden}.role-editor__head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4)}.role-editor__count{background:var(--color-primary-soft);border-radius:var(--radius-pill);color:var(--color-primary-ink);display:inline-block;font-size:var(--text-xs);font-weight:600;margin-left:var(--space-2);padding:1px 8px}.role-editor__count.is-empty{background:var(--surface-2);color:var(--text-muted)}.role-editor__tools{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.role-editor__search{position:relative}.role-editor__search i{color:var(--text-muted);font-size:var(--text-xs);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.role-editor__search .form-control{padding-left:32px;width:230px}.role-matrix-wrap{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-height:calc(100vh - 300px);min-height:320px;overflow:auto}.role-matrix{border-collapse:separate;border-spacing:0;font-size:var(--text-sm);width:100%}.role-matrix thead th{background:var(--surface-2);color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap;z-index:2}.role-matrix tbody td,.role-matrix tbody th,.role-matrix thead th{border-bottom:1px solid var(--border-subtle);padding:var(--space-3) var(--space-4)}.role-matrix tbody td,.role-matrix tbody th{font-weight:400;vertical-align:middle}.role-matrix tbody tr:last-child td,.role-matrix tbody tr:last-child th{border-bottom:0}.role-matrix tbody tr:hover{background:var(--surface-2)}.role-matrix tbody tr.has-access .role-row__name{color:var(--text-primary);font-weight:600}.role-matrix input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;height:17px;margin:0;vertical-align:middle;width:17px}.role-matrix input[type=checkbox]:disabled{cursor:not-allowed;opacity:.35}.role-matrix__module{min-width:240px}.role-matrix tbody .role-matrix__module,.role-matrix thead .role-matrix__module{background:var(--surface-1);left:0;position:sticky;z-index:1}.role-matrix thead .role-matrix__module{background:var(--surface-2);z-index:3}.role-matrix tbody tr:hover .role-matrix__module{background:var(--surface-2)}.role-matrix__col{text-align:center!important;width:92px}.role-matrix__colhead{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;gap:6px;margin:0}.role-matrix__na{color:var(--border-strong)}.role-matrix__empty{color:var(--text-muted);padding:var(--space-6);text-align:center}.role-row__label{align-items:center;cursor:pointer;display:flex;gap:var(--space-3);margin:0}.role-row__name{color:var(--text-secondary)}.role-chips{display:flex;flex-wrap:wrap;gap:6px}.role-chip{align-items:center;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:var(--text-xs);gap:6px;margin:0;padding:3px 10px 3px 8px;transition:background var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.role-chip input[type=checkbox]{height:14px;width:14px}.role-chip:has(input:checked){background:var(--color-primary-soft);border-color:transparent;color:var(--color-primary-ink)}.role-editor__footer{background:var(--surface-1);border-top:1px solid var(--border-subtle);bottom:0;display:flex;gap:var(--space-2);justify-content:flex-end;padding:var(--space-3) var(--space-5);position:sticky;z-index:4}.tt-stats{display:grid;gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:var(--space-5)}@media (max-width:767.98px){.tt-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.tt-stat{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;padding:var(--space-4) var(--space-5)}.tt-stat__value{color:var(--text-primary);font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;line-height:1.2}.tt-stat__label{color:var(--text-muted);font-size:var(--text-xs)}.tt-editor{overflow:visible}.tt-toolbar{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;padding:var(--space-4) var(--space-5)}.tt-views{background:var(--surface-2);border-radius:var(--radius-md);display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px}.tt-view{background:transparent;border:0;border-radius:calc(var(--radius-md) - 2px);color:var(--text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:500;padding:6px 14px;position:relative;transition:background var(--transition-fast),color var(--transition-fast)}.tt-view:hover{color:var(--text-primary)}.tt-view.is-active{background:var(--surface-1);box-shadow:var(--shadow-xs);color:var(--color-primary-ink);font-weight:600}.tt-view__count{color:var(--text-muted);font-size:var(--text-2xs);margin-left:6px}.tt-view__count:empty{display:none}.tt-toolbar__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.tt-hint{color:var(--text-muted);cursor:help;font-size:var(--text-xs)}.tt-hint kbd{background:var(--surface-1);border:solid var(--border-strong);border-radius:var(--radius-xs);border-width:1px 1px 2px;box-shadow:none;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-2xs);padding:1px 6px}.tt-body{display:grid;grid-template-columns:260px minmax(0,1fr)}@media (max-width:991.98px){.tt-body{grid-template-columns:1fr}}.tt-palette{background:var(--surface-1);border-bottom-left-radius:var(--radius-lg);border-right:1px solid var(--border-subtle);padding:var(--space-4)}@media (min-width:992px){.tt-palette{align-self:start;max-height:calc(100vh - var(--topbar-height) - var(--space-6));overflow-y:auto;position:sticky;top:calc(var(--topbar-height) + var(--space-3))}}@media (max-width:991.98px){.tt-palette{border-bottom:1px solid var(--border-subtle);border-right:0}}.tt-palette__search{margin-bottom:var(--space-3);position:relative}.tt-palette__search i{color:var(--text-muted);font-size:var(--text-xs);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.tt-palette__search .form-control{padding-left:32px}.tt-palette__label{color:var(--text-muted);font-size:var(--text-2xs);font-weight:700;letter-spacing:.06em;margin:var(--space-4) 0 var(--space-2);text-transform:uppercase}.tt-palette__list{display:flex;flex-direction:column;gap:6px}.tt-palette__tip{color:var(--text-muted);font-size:var(--text-xs);margin:var(--space-4) 0 0}.tt-subject{align-items:center;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:grab;display:flex;gap:var(--space-3);padding:8px 10px 8px 14px;position:relative;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none}.tt-subject:hover{border-color:var(--subject-color);box-shadow:var(--shadow-sm)}.tt-subject:active{cursor:grabbing}.tt-subject:focus-visible{box-shadow:var(--shadow-focus);outline:none}.tt-subject__bar{background:var(--subject-color);border-radius:0 4px 4px 0;bottom:6px;left:0;position:absolute;top:6px;width:4px}.tt-subject__body{display:flex;flex:1;flex-direction:column;min-width:0}.tt-subject__name{color:var(--text-primary);font-size:var(--text-sm);font-weight:600;line-height:1.3}.tt-subject__name small{color:var(--text-muted);font-weight:400;margin-left:2px}.tt-subject__elective{color:var(--color-accent)!important;font-weight:600!important}.tt-subject__teacher{color:var(--text-secondary);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-subject__teacher--missing{color:var(--warning-ink)}.tt-subject__count{background:var(--color-primary-soft);border-radius:var(--radius-pill);color:var(--color-primary-ink);flex:none;font-size:var(--text-2xs);font-weight:700;min-width:26px;padding:1px 6px;text-align:center}.tt-subject__count.is-zero{background:var(--surface-2);color:var(--text-muted)}.tt-calendar-wrap{min-width:0;padding:var(--space-4) var(--space-5) var(--space-5)}#tt-calendar{--fc-border-color:var(--border-subtle);--fc-page-bg-color:var(--surface-1);--fc-neutral-bg-color:var(--surface-2);--fc-today-bg-color:transparent;--fc-highlight-color:var(--color-primary-soft);font-size:var(--text-sm)}#tt-calendar .fc-scrollgrid{border-radius:var(--radius-lg);overflow:hidden}#tt-calendar .fc-col-header-cell{background:var(--surface-2);padding:8px 0}#tt-calendar .fc-col-header-cell-cushion{color:var(--text-primary);font-weight:600;text-decoration:none}#tt-calendar .fc-col-header-cell-cushion:hover{color:var(--color-primary)}#tt-calendar .tt-day--empty .fc-col-header-cell-cushion{color:var(--text-muted);font-weight:500}#tt-calendar .fc-timegrid-slot{height:2.75em}#tt-calendar .fc-timegrid-slot-minor{border-top-style:dotted}#tt-calendar .fc-timegrid-slot-label-cushion{color:var(--text-muted);font-size:var(--text-xs)}#tt-calendar .fc-timegrid-event-harness-inset .fc-timegrid-event{box-shadow:0 0 0 1px var(--surface-1)}.tt-event{border-radius:var(--radius-sm)!important;border-width:0 0 0 3px!important;cursor:grab;overflow:hidden}.tt-event:hover{box-shadow:var(--shadow-md)!important;filter:brightness(1.04);z-index:5!important}.tt-event.fc-event-dragging{cursor:grabbing}.tt-event--break{background-image:repeating-linear-gradient(135deg,hsla(0,0%,100%,.06) 0 8px,transparent 8px 16px)}.tt-evt{height:100%;line-height:1.25;overflow:hidden;padding:3px 6px;position:relative}.tt-evt__time{font-size:.68rem;font-variant-numeric:tabular-nums;opacity:.85}.tt-evt__title{font-size:.78rem;font-weight:600}.tt-evt__title span{font-weight:400;opacity:.8}.tt-evt__title em{background:hsla(0,0%,100%,.25);border-radius:3px;font-size:.62rem;font-style:normal;padding:0 4px}.tt-evt__teacher{font-size:.7rem;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-evt--compact .tt-evt__teacher{display:none}.tt-evt__actions{display:flex;gap:2px;opacity:0;position:absolute;right:3px;top:3px;transition:opacity var(--transition-fast)}.tt-evt__btn{background:rgba(15,23,42,.55);border:0;border-radius:5px;color:#fff;cursor:pointer;display:grid;font-size:11px;height:22px;place-items:center;width:22px}.tt-evt__btn:hover{background:rgba(15,23,42,.8)}.tt-evt__btn--danger:hover{background:var(--danger)}.tt-event:focus-within .tt-evt__actions,.tt-event:hover .tt-evt__actions{opacity:1}.tt-editor.is-alt .tt-event{cursor:copy}.tt-editor.is-alt .tt-event:hover{outline:2px dashed var(--color-primary);outline-offset:1px}.tt-editor.is-day-view #tt-calendar .fc-timegrid-slot{height:3.6em}.tt-editor.is-day-view .tt-evt{padding:8px 12px}.tt-editor.is-day-view .tt-evt__time{font-size:var(--text-xs)}.tt-editor.is-day-view .tt-evt__title{font-size:var(--text-base)}.tt-editor.is-day-view .tt-evt__teacher{font-size:var(--text-sm);margin-top:2px}.tt-editor.is-day-view .tt-evt--compact .tt-evt__teacher{display:block}.tt-editor.is-day-view .tt-evt__btn{font-size:13px;height:28px;width:28px}.tt-day-chips{display:flex;flex-wrap:wrap;gap:6px}.tt-day-chip{cursor:pointer;margin:0}.tt-day-chip input{opacity:0;pointer-events:none;position:absolute}.tt-day-chip span{border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-secondary);display:inline-block;font-size:var(--text-sm);font-weight:500;min-width:52px;padding:6px 10px;text-align:center;transition:all var(--transition-fast)}.tt-day-chip input:checked+span{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.tt-day-chip input:focus-visible+span{box-shadow:var(--shadow-focus)}.tt-day-chip.is-disabled{cursor:not-allowed}.tt-day-chip.is-disabled span{opacity:.35;text-decoration:line-through}.tt-radio{align-items:flex-start;border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-3);margin:0 0 var(--space-2);padding:var(--space-3)}.tt-radio input{accent-color:var(--color-primary);margin-top:4px}.tt-radio span{display:flex;flex-direction:column;font-size:var(--text-sm)}.tt-radio small{color:var(--text-muted)}.tt-radio:has(input:checked){background:var(--color-primary-soft);border-color:var(--color-primary)}.tt-dup-summary{align-items:center;background:var(--surface-2);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3)}.tt-dup-summary__dot{border-radius:50%;flex:none;height:12px;width:12px}.tt-dup-summary small{color:var(--text-muted)}.ann-composer__head{align-items:center;display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.ann-composer__icon{background:var(--color-primary-soft);border-radius:var(--radius-md);color:var(--color-primary);display:grid;height:40px;place-items:center;width:40px}.ann-composer__grid{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}@media (max-width:991.98px){.ann-composer__grid{gap:var(--space-4);grid-template-columns:1fr}}.ann-composer__main textarea{min-height:168px;resize:vertical}.ann-composer__side{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4)}.ann-check{align-items:center;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:var(--text-sm);gap:var(--space-2);margin:var(--space-2) 0 0}.ann-check .form-check-input{margin:0;position:static}.ann-attach{align-items:center;background:var(--surface-1);border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;font-size:var(--text-sm);gap:var(--space-2);min-height:var(--control-height);padding:var(--space-2) var(--space-3);text-align:left;transition:border-color var(--transition-fast),color var(--transition-fast);width:100%}.ann-attach span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ann-attach.has-files,.ann-attach:hover{border-color:var(--color-primary);color:var(--color-primary-ink)}.ann-attach.has-files{background:var(--color-primary-soft);border-style:solid}.ann-link{position:relative}.ann-link i{color:var(--text-muted);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.ann-link .form-control{padding-left:32px}.ann-composer__footer{align-items:center;border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-top:var(--space-5);padding-top:var(--space-4)}.ann-composer__note{color:var(--text-muted);font-size:var(--text-xs)}.ann-composer__actions{display:flex;gap:var(--space-2)}.ann-row{max-width:560px;min-width:260px}.ann-row__title{color:var(--text-primary);font-weight:600}.ann-row__text{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-secondary);cursor:pointer;display:-webkit-box;font-size:var(--text-sm);margin-top:2px;overflow:hidden;white-space:normal}.ann-row__text:hover{color:var(--color-primary-ink)}.ann-row__meta{color:var(--text-muted);font-size:var(--text-xs);margin-top:4px}.ann-chips,.ann-files{display:flex;flex-wrap:wrap;gap:6px;max-width:360px}.ann-chip{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--text-xs);padding:2px 10px;white-space:nowrap}.ann-chip--more{background:var(--color-primary-soft);border-color:transparent;color:var(--color-primary-ink);cursor:help}.ann-file{align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);display:inline-flex;font-size:var(--text-xs);gap:6px;max-width:200px;padding:3px 10px;text-decoration:none}.ann-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ann-file i{color:var(--color-primary)}.ann-file:hover{border-color:var(--color-primary);color:var(--color-primary-ink);text-decoration:none}.form-section-title{align-items:baseline;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);display:flex;font-size:var(--text-sm);font-weight:700;gap:var(--space-2);letter-spacing:.02em;margin:var(--space-5) 0 var(--space-4);padding-bottom:var(--space-2)}.form-section-title small{color:var(--text-muted);font-weight:400}.card-head+form .form-section-title:first-of-type,form>.form-section-title:first-child{margin-top:var(--space-2)}@keyframes fade-up{0%{opacity:0;translate:0 6px}to{opacity:1;translate:none}}@keyframes dropdown-in{0%{opacity:0;scale:.98;translate:0 -4px}to{opacity:1;scale:none;translate:none}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.app-content>.content-wrapper,.content-wrapper>.row>[class*=col]:first-child>.card{animation:fade-up var(--transition-slow) backwards}.content-wrapper>.row>[class*=col]:nth-child(2)>.card{animation:fade-up var(--transition-slow) 40ms backwards}.content-wrapper>.row>[class*=col]:nth-child(3)>.card{animation:fade-up var(--transition-slow) 80ms backwards}.content-wrapper>.row>[class*=col]:nth-child(4)>.card{animation:fade-up var(--transition-slow) .12s backwards}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/*# sourceMappingURL=tokens.css.map*/