.light,:root{--background:150 22% 98%;--surface:0 0% 100%;--surface-elevated:150 16% 96%;--border:150 13% 89%;--input:150 13% 89%;--foreground:150 39% 12%;--muted-foreground:0 0% 40%;--brand:148 100% 29%;--primary:150 100% 25%;--primary-foreground:0 0% 100%;--primary-deep:150 100% 22%;--secondary:208 57% 34%;--secondary-foreground:0 0% 100%;--accent:41 98% 57%;--accent-foreground:0 0% 10%;--accent-strong:41 79% 52%;--accent-strong-foreground:0 0% 10%;--destructive:0 73% 46%;--destructive-foreground:0 0% 100%;--success:150 100% 22%;--success-bg:148 60% 94%;--warning:38 92% 30%;--warning-bg:41 98% 92%;--info:208 57% 34%;--info-bg:208 60% 94%;--muted:150 14% 94%;--accent-surface:53 95% 75%;--accent-surface-fg:0 0% 10%;--accent-cream:53 95% 75%;--accent-cream-soft:44 69% 87%;--primary-tint:131 37% 86%;--hero-ink-hi:148 43% 11%;--hero-ink-mid:148 41% 7%;--hero-ink-lo:145 46% 5%;--hero-glow-1:150 80% 20%;--hero-glow-2:150 70% 14%;--pub-nav-ground:148 39% 6%;--pub-strip-ground:138 45% 4%;--pub-foot-ground:126 38% 5%;--pub-ink-alt:120 31% 6%;--video-ground:120 15% 5%;--accent-ink:39 64% 9%;--card:0 0% 100%;--card-foreground:150 39% 12%;--popover:0 0% 100%;--popover-foreground:150 39% 12%;--ring:150 100% 22%;--chart-1:148 100% 29%;--chart-2:208 57% 34%;--chart-3:41 98% 57%;--chart-4:41 79% 52%;--chart-5:150 100% 22%;--radius:0.625rem;--radius-md:0.5rem;--radius-xl:0.875rem;--radius-sm:0.375rem;--font-sans:"Roboto","Be Vietnam Pro",system-ui,sans-serif;--font-display:"Roboto Slab","Be Vietnam Pro",Georgia,serif;--font-mono:"Roboto Mono",ui-monospace,monospace;--table-row-height:2.75rem;--table-header-height:2.5rem;--input-height:2.25rem}.dark{--background:150 32% 6%;--surface:150 28% 10%;--surface-elevated:150 26% 13%;--border:150 22% 18%;--input:150 22% 16%;--foreground:150 30% 95%;--muted-foreground:145 12% 68%;--brand:148 100% 34%;--primary:148 100% 32%;--primary-foreground:0 0% 100%;--primary-deep:148 70% 55%;--secondary:208 57% 56%;--secondary-foreground:0 0% 8%;--accent:41 98% 57%;--accent-foreground:0 0% 10%;--accent-strong:41 79% 52%;--accent-strong-foreground:0 0% 10%;--destructive:0 73% 58%;--destructive-foreground:0 0% 8%;--success:148 70% 58%;--success-bg:150 50% 14%;--warning:41 95% 62%;--warning-bg:41 70% 14%;--info:208 60% 64%;--info-bg:208 50% 16%;--muted:150 24% 15%;--accent-surface:150 30% 18%;--accent-surface-fg:53 80% 78%;--card:150 28% 10%;--card-foreground:150 30% 95%;--popover:150 26% 13%;--popover-foreground:150 30% 95%;--ring:148 100% 34%;--chart-1:148 100% 34%;--chart-2:208 57% 62%;--chart-3:41 98% 57%;--chart-4:41 79% 52%;--chart-5:148 70% 55%}.screen,.screen *{box-sizing:border-box;border-color:hsl(var(--border))}.screen{width:100%;height:100%;background:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;overflow:hidden;position:relative}.screen ::-moz-selection{background:hsl(var(--brand)/.25)}.screen ::selection{background:hsl(var(--brand)/.25)}.mono{font-family:var(--font-mono)}.display{font-family:var(--font-display)}.shell{flex:1;display:grid;grid-template-columns:236px 1fr;grid-template-rows:56px 1fr;min-height:0}.shell.wide-nav{grid-template-columns:252px 1fr}.shell-topbar{grid-column:2;grid-row:1;display:flex;align-items:center;gap:16px;padding:0 20px;z-index:3}.shell-sidebar{grid-column:1;grid-row:1/-1;background:hsl(var(--surface));border-right:1px solid hsl(var(--border));padding:10px 12px;display:flex;flex-direction:column;gap:1px;min-height:0;overflow-y:auto}.sidebar-head{height:56px;flex:0 0 auto;cursor:pointer;margin:-10px -12px 8px;padding:0 20px;border-bottom:1px solid hsl(var(--border))}.sidebar-head,.sidebar-head .sbh-full{display:flex;align-items:center}.sidebar-head .sbh-mark{display:none}.sidebar-head .logo-img{height:34px}.shell-main{grid-column:2;grid-row:2;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:hsl(var(--background))}.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15px;letter-spacing:-.2px;color:hsl(var(--foreground))}.brand-mark{width:28px;height:28px;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:grid;place-items:center;font-weight:800;font-size:15px;flex:0 0 auto}.brand-mark,.brand-name{font-family:var(--font-display)}.brand-name{font-weight:700;line-height:1.05}.brand-sub{font-size:11px;font-weight:500}.brand-sub,.nav-section-label{color:hsl(var(--muted-foreground))}.nav-section-label{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:13px 10px 5px}.nav-item{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;line-height:1}.nav-item svg{width:17px;height:17px;flex:0 0 auto}.nav-item:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.nav-item.active{background:hsl(var(--primary)/.14);color:hsl(var(--primary-deep));font-weight:600}.dark .nav-item.active{background:hsl(var(--primary)/.18)}.nav-item .nav-count{margin-left:auto;font-size:11px;font-weight:600;color:hsl(var(--muted-foreground));background:hsl(var(--muted));padding:1px 7px;border-radius:999px}.nav-item.active .nav-count{background:hsl(var(--primary)/.18);color:hsl(var(--primary-deep))}.ws-switch{margin-top:auto;display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius-md);border:1px solid hsl(var(--border));cursor:pointer}.ws-switch:hover{background:hsl(var(--muted))}.ws-avatar{width:28px;height:28px;border-radius:7px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));display:grid;place-items:center;font-weight:700;font-size:12px;flex:0 0 auto}.topbar-spacer{flex:1}.topbar-search{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:var(--radius-md);background:hsl(var(--input));color:hsl(var(--muted-foreground));font-size:13px;min-width:260px}.topbar-search input::-moz-placeholder{color:hsl(var(--muted-foreground))}.topbar-search input::placeholder{color:hsl(var(--muted-foreground))}.topbar-search input{color:hsl(var(--foreground))}.gs-kbd{flex:0 0 auto;font-size:10px;font-weight:600;line-height:1;padding:3px 5px;border-radius:5px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--muted-foreground));font-family:inherit}.gs-spin{animation:gs-spin .8s linear infinite}@keyframes gs-spin{to{transform:rotate(1turn)}}.icon-btn{width:34px;height:34px;border-radius:var(--radius-md);display:grid;place-items:center;color:hsl(var(--muted-foreground));cursor:pointer;border:none;background:transparent;position:relative}.icon-btn:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.icon-btn svg{width:18px;height:18px}.bell-badge{position:absolute;top:5px;right:5px;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));font-size:9px;font-weight:700;display:grid;place-items:center}.user-chip{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border-radius:999px;cursor:pointer}.user-chip.open,.user-chip:hover{background:hsl(var(--muted))}.uc-meta{display:flex;flex-direction:column;line-height:1.18;min-width:0}.uc-name{font-size:13px;font-weight:700;color:hsl(var(--foreground))}.uc-name,.uc-role{white-space:nowrap}.uc-role{font-size:11.5px;font-weight:500;color:hsl(var(--muted-foreground))}.user-avatar{width:30px;height:30px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:grid;place-items:center;font-size:12px;flex:0 0 auto}.role-badge,.user-avatar{border-radius:999px;font-weight:700}.role-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;font-size:10px;letter-spacing:.4px;background:hsl(var(--secondary)/.15);color:hsl(var(--secondary));font-family:var(--font-mono)}.role-badge.op{background:hsl(var(--destructive)/.14);color:hsl(var(--destructive))}.role-badge.sa{background:hsl(var(--accent)/.25);color:hsl(var(--foreground))}.avatar-menu{position:absolute;top:50px;right:16px;z-index:30;width:268px;background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius-xl);box-shadow:0 16px 48px rgba(9,21,15,.22);overflow:hidden;padding:6px}.avatar-menu .menu-head{display:flex;align-items:center;gap:10px;padding:8px 8px 10px}.menu-sep{height:1px;background:hsl(var(--border));margin:5px 4px}.menu{width:200px;background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 12px 36px rgba(9,21,15,.18);padding:5px}.menu-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:hsl(var(--foreground));cursor:pointer}.menu-item svg{width:15px;height:15px;color:hsl(var(--muted-foreground))}.menu-item:hover{background:hsl(var(--muted))}.menu-item.danger{color:hsl(var(--destructive))}.notif-menu{display:flex;flex-direction:column;max-height:460px;padding:0;overflow:hidden}.notif-menu .notif-head{flex:0 0 auto;justify-content:space-between;padding:12px 14px;border-bottom:1px solid hsl(var(--border))}.notif-count{font-size:11px;font-weight:800;color:hsl(var(--primary-foreground));background:hsl(var(--destructive));border-radius:999px;min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center}.notif-scroll{flex:1 1 auto;overflow-y:auto;padding:6px}.notif-item{border-radius:var(--radius-md)}.notif-text{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-ico{flex:0 0 auto;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;margin-top:1px}.avatar-menu .notif-ico svg{width:15px;height:15px;color:inherit}.notif-ico--pay{background:hsl(var(--success-bg));color:hsl(var(--success))}.notif-ico--ticket{background:rgba(42,143,244,.14);color:#479ef5}.notif-ico--cert{background:hsl(var(--accent)/.16);color:hsl(var(--accent))}.notif-ico--enrol{background:hsl(var(--primary)/.14);color:hsl(var(--primary))}.notif-ico--promo{background:hsl(var(--accent)/.16);color:hsl(var(--accent))}.notif-ico--default{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.notif-viewall{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px;border-top:1px solid hsl(var(--border));font-size:12.5px;font-weight:700;color:hsl(var(--primary-deep));text-decoration:none}.dark .notif-viewall{color:hsl(var(--primary))}.notif-viewall:hover{background:hsl(var(--muted)/.5)}.ntf-inbox{display:flex;flex-direction:column;gap:8px;max-width:760px}.ntf-inbox-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 8px}.ntf-inbox-item{display:flex;align-items:flex-start;gap:13px;padding:14px 16px;border-radius:var(--radius-lg);border:1px solid hsl(var(--border));background:hsl(var(--surface));text-align:left;width:100%;cursor:pointer;color:inherit;text-decoration:none;transition:background .18s ease,border-color .18s ease}.ntf-inbox-item:hover{background:hsl(var(--muted)/.5)}.ntf-inbox-item.is-unread{border-color:hsl(var(--primary)/.4);background:hsl(var(--primary)/.05)}.ntf-inbox-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.ntf-inbox-more{display:flex;justify-content:center;padding:8px 0}.ntf-inbox-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:56px 24px;text-align:center}.ntf-inbox-empty-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:hsl(var(--muted));color:hsl(var(--muted-foreground));margin-bottom:6px}.menu-item.danger svg{color:hsl(var(--destructive))}.menu-row{justify-content:space-between;gap:8px;padding:7px 10px}.menu-row,.menu-row-label{display:flex;align-items:center}.menu-row-label{gap:11px;font-size:13px;font-weight:500}.menu-row-label svg{width:15px;height:15px;color:hsl(var(--muted-foreground))}.page{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.page-head{padding:18px 26px 0;flex:0 0 auto}.page-head.bordered{border-bottom:1px solid hsl(var(--border));padding-bottom:16px}.breadcrumb{display:flex;align-items:center;gap:7px;font-size:12px;margin-bottom:8px}.breadcrumb,.breadcrumb a{color:hsl(var(--muted-foreground))}.breadcrumb a{text-decoration:none}.breadcrumb a:hover{color:hsl(var(--foreground));text-decoration:underline}.breadcrumb .sep{opacity:.5}.breadcrumb .cur{color:hsl(var(--foreground));font-weight:500}.page-title{font-size:21px;font-weight:700;letter-spacing:-.4px;line-height:1.15;font-family:var(--font-display)}.page-sub{font-size:13px;color:hsl(var(--muted-foreground));margin-top:4px}.page-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-body{flex:1;min-height:0;overflow:hidden;padding:18px 26px}.page-body.scroll{overflow-y:auto}.facets{display:flex;flex-wrap:wrap;gap:26px;margin-top:14px}.facet-label{font-size:11px;color:hsl(var(--muted-foreground));font-weight:500;margin-bottom:3px}.facet-value{font-size:15px;display:flex}.btn,.facet-value{font-weight:600;align-items:center;gap:7px}.btn{display:inline-flex;justify-content:center;height:38px;padding:0 15px;border-radius:var(--radius-md);font-size:13px;font-family:inherit;cursor:pointer;border:1px solid transparent;white-space:nowrap;line-height:1;transition:background .12s,border-color .12s}.btn svg{width:15px;height:15px}.btn-sm{height:32px;padding:0 11px;font-size:12px}.btn-lg{height:44px;padding:0 22px;font-size:14px}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover{background:hsl(var(--primary)/.88)}.btn-secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.btn-secondary:hover{background:hsl(var(--secondary)/.9)}.btn-soft{background:hsl(var(--muted));color:hsl(var(--foreground));border-color:hsl(var(--border))}.btn-soft:hover{background:hsl(var(--surface-elevated))}.btn-outline{background:transparent;color:hsl(var(--foreground));border-color:hsl(var(--border))}.btn-outline:hover{background:hsl(var(--muted))}.btn-ghost{background:transparent;color:hsl(var(--foreground))}.btn-ghost:hover{background:hsl(var(--muted))}.btn-destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.btn-destructive:hover{background:hsl(var(--destructive)/.9)}.btn-destructive-outline{background:transparent;color:hsl(var(--destructive));border-color:hsl(var(--destructive)/.5)}.btn-destructive-outline:hover{background:hsl(var(--destructive)/.08)}.btn.disabled,.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-full{width:100%}.btn-link{background:transparent;color:hsl(var(--primary-deep));height:auto;padding:0;font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;line-height:1;white-space:nowrap}.badge svg{width:11px;height:11px}.badge.square{border-radius:var(--radius-sm)}.badge-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.badge-primary{background:hsl(var(--primary)/.15);color:hsl(var(--primary-deep))}.badge-success{background:hsl(var(--success-bg));color:hsl(var(--success))}.badge-warning{background:hsl(var(--warning-bg));color:hsl(var(--warning))}.badge-destructive{background:hsl(var(--destructive)/.12);color:hsl(var(--destructive))}.badge-secondary{background:hsl(var(--info-bg));color:hsl(var(--secondary))}.badge-accent{background:hsl(var(--accent)/.25);color:hsl(var(--foreground))}.badge-outline{background:transparent;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.badge .dot{width:6px;height:6px;border-radius:999px;background:currentColor}.field{display:flex;flex-direction:column;gap:6px}.label{font-size:13px;font-weight:500;color:hsl(var(--foreground))}.label .req{color:hsl(var(--destructive));margin-left:2px}.input{height:38px;padding:0 12px;border-radius:var(--radius-md);border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--foreground));font-size:13px;font-family:inherit;width:100%;display:flex;align-items:center}.input::-moz-placeholder{color:hsl(var(--muted-foreground))}.input::placeholder{color:hsl(var(--muted-foreground))}.input.focused{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring)/.2)}.input.err{border-color:hsl(var(--destructive))}.input-ph{color:hsl(var(--muted-foreground))}textarea.input{height:auto;padding:9px 12px;line-height:1.5;resize:none}.select{height:38px;padding:0 12px;border-radius:var(--radius-md);border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--foreground));font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}.select .chev,.select.muted{color:hsl(var(--muted-foreground))}.ss-root{position:relative}.ss-root,.ss-root>.select{width:100%}.form-error{font-size:12px;color:hsl(var(--destructive));display:flex;align-items:center;gap:5px}.form-error svg{width:13px;height:13px;flex:0 0 auto}.form-help{font-size:12px;color:hsl(var(--muted-foreground))}.switch{width:38px;height:22px;border-radius:999px;background:hsl(var(--border));position:relative;flex:0 0 auto;cursor:pointer}.switch.on{background:hsl(var(--primary))}.switch .knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.3)}.switch.on .knob{left:18px}.checkbox{width:18px;height:18px;border-radius:5px;border:1.5px solid hsl(var(--border));flex:0 0 auto;display:grid;place-items:center;background:hsl(var(--surface))}.checkbox.on{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.checkbox svg{width:12px;height:12px}.radio-card{display:flex;gap:11px;padding:12px 14px;border:1px solid hsl(var(--border));border-radius:var(--radius-md);cursor:pointer}.radio-card.sel{border-color:hsl(var(--primary));background:hsl(var(--primary)/.06)}.radio-dot{width:16px;height:16px;border-radius:999px;border:2px solid hsl(var(--border));flex:0 0 auto;margin-top:1px}.radio-card.sel .radio-dot{border-color:hsl(var(--primary));background:radial-gradient(circle,hsl(var(--primary)) 0 4px,transparent 5px)}.card{background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:var(--radius)}.card-pad{padding:16px}.card-head{padding:14px 16px;border-bottom:1px solid hsl(var(--border));display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-size:14px;font-weight:700}.card-foot{padding:12px 16px;border-top:1px solid hsl(var(--border));display:flex;justify-content:flex-end;gap:8px}.stat-card{position:relative;flex:1 1 0;min-width:0;background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:6px;min-height:104px}.stat-ico{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:var(--radius-md);display:grid;place-items:center;background:hsl(var(--brand)/.11);color:hsl(var(--primary))}.stat-label{font-size:12.5px;color:hsl(var(--muted-foreground));font-weight:500;padding-right:44px;line-height:1.3}.stat-value{font-size:28px;font-weight:800;letter-spacing:-.6px;line-height:1;font-variant-numeric:tabular-nums;margin-top:2px}.stat-value .unit{font-size:14px;font-weight:600}.stat-sub,.stat-value .unit{color:hsl(var(--muted-foreground))}.stat-sub{font-size:12px;display:flex;align-items:center;gap:5px;margin-top:auto}.stat-delta{font-weight:700}.stat-delta.up{color:hsl(var(--success))}.stat-delta.down{color:hsl(var(--destructive))}.stat-card .stat-foot{margin-top:auto}.tbl-wrap{border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;background:hsl(var(--surface))}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl thead th{height:40px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:hsl(var(--muted-foreground));background:hsl(var(--muted)/.6);white-space:nowrap}.tbl tbody td,.tbl thead th{padding:0 14px;border-bottom:1px solid hsl(var(--border))}.tbl tbody td{height:46px;vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:hsl(var(--muted)/.45)}.tbl tbody tr.sel{background:hsl(var(--primary)/.07)}.tbl .num{font-variant-numeric:tabular-nums}.tbl .muted{color:hsl(var(--muted-foreground))}.tbl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tbl-count{font-size:13px;font-weight:700}.tbl-count .muted{color:hsl(var(--muted-foreground));font-weight:400}.cell-main{display:flex;align-items:center;gap:10px}.cert-name-btn{border:0;background:none;padding:0;margin:0;cursor:pointer;text-align:left;color:inherit;font:inherit}.cert-name-btn:focus-visible .fw600,.cert-name-btn:hover .fw600{text-decoration:underline}.cert-name-btn:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px;border-radius:4px}.cell-thumb{width:40px;height:28px;border-radius:5px;background:hsl(var(--muted));flex:0 0 auto;overflow:hidden}.cell-av{width:30px;height:30px;border-radius:999px;flex:0 0 auto;display:grid;place-items:center;color:#fff;font-weight:700;font-size:11px}.col-check{width:20px}.tbl thead th .th-sort{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;margin:0;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;white-space:nowrap}.tbl thead th .th-sort:hover{color:hsl(var(--foreground))}.tbl thead th .th-sort:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px;border-radius:3px}.tbl thead th .th-sort.active{color:hsl(var(--primary))}.tbl thead th .th-sort-arrow{flex:0 0 auto;opacity:.9}.tbl thead th .th-sort-arrow.inactive{opacity:0;transition:opacity .12s ease}.tbl thead th .th-sort:focus-visible .th-sort-arrow.inactive,.tbl thead th .th-sort:hover .th-sort-arrow.inactive{opacity:.45}.bulk-bar{display:flex;align-items:center;gap:14px;padding:9px 14px;background:hsl(var(--primary)/.1);border:1px solid hsl(var(--primary)/.3);border-radius:var(--radius-md);margin-bottom:12px;font-size:13px}.bulk-bar .bulk-count{font-weight:700;color:hsl(var(--primary-deep))}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:hsl(var(--muted-foreground))}.pg-btns{display:flex;gap:4px}.pg-btn{min-width:30px;height:30px;padding:0 7px;border-radius:var(--radius-sm);border:1px solid hsl(var(--border));background:hsl(var(--surface));display:grid;place-items:center;cursor:pointer;font-size:12px}.pg-btn.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.page-size{display:flex;align-items:center;gap:8px}.page-size-sel{height:28px;padding:0 8px;min-width:58px}.page-size .ss-root{width:auto;min-width:84px}.filterbar{display:flex;align-items:center;gap:10px;padding:0 0 12px;flex-wrap:wrap}.filterbar .input,.filterbar .select{height:36px}.filterbar .ss-root{width:auto;min-width:160px}.search-input{display:flex;align-items:center;gap:8px;height:36px;padding:0 11px;border-radius:var(--radius-md);border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--muted-foreground));font-size:13px;min-width:220px}.search-input svg{width:15px;height:15px;flex:0 0 auto}.search-input input,input.input{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.active-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 0 12px}.filter-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 10px;border-radius:999px;background:hsl(var(--primary)/.12);color:hsl(var(--primary-deep));font-size:12px;font-weight:600}.filter-chip .x{width:16px;height:16px;border-radius:999px;display:grid;place-items:center;cursor:pointer}.filter-chip .x:hover{background:hsl(var(--primary)/.2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:44px 24px}.empty-ico{width:58px;height:58px;border-radius:var(--radius);background:hsl(var(--muted));display:grid;place-items:center;color:hsl(var(--muted-foreground))}.empty-ico svg{width:26px;height:26px}.empty-title{font-size:15px;font-weight:700}.empty-body{font-size:13px;color:hsl(var(--muted-foreground));max-width:360px;line-height:1.5}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:40px 24px}.error-ico{width:54px;height:54px;border-radius:999px;background:hsl(var(--destructive)/.12);color:hsl(var(--destructive));display:grid;place-items:center}.skeleton{background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--muted)/.5) 50%,hsl(var(--muted)) 75%);background-size:200% 100%;animation:sk 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes sk{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.alert{display:flex;gap:11px;padding:12px 14px;border-radius:var(--radius-md);font-size:13px;align-items:flex-start;border:1px solid}.alert svg{width:17px;height:17px;flex:0 0 auto;margin-top:1px}.alert-title{font-weight:700;margin-bottom:2px;color:hsl(var(--foreground))}.alert-body{color:hsl(var(--muted-foreground))}.alert-warning{background:hsl(var(--warning-bg));border-color:hsl(var(--warning)/.4);color:hsl(var(--warning))}.alert-destructive{background:hsl(var(--destructive)/.08);border-color:hsl(var(--destructive)/.35);color:hsl(var(--destructive))}.alert-info{background:hsl(var(--info-bg));border-color:hsl(var(--info)/.35);color:hsl(var(--info))}.alert-success{background:hsl(var(--success-bg));border-color:hsl(var(--success)/.35);color:hsl(var(--success))}.progress{height:7px;border-radius:999px;background:hsl(var(--muted));overflow:hidden}.progress .bar{height:100%;border-radius:999px;background:hsl(var(--primary))}.progress .bar.amber{background:hsl(var(--accent))}.progress .bar.blue{background:hsl(var(--secondary))}.token-bar-wrap{display:flex;flex-direction:column;gap:6px}.token-bar-head{display:flex;justify-content:space-between;font-size:12px}.token-bar-head .pct{font-weight:600}.token-bar{height:8px;border-radius:999px;background:hsl(var(--muted));overflow:hidden}.token-bar .fill{height:100%;background:hsl(var(--primary));border-radius:999px}.token-bar .fill.amber{background:hsl(var(--accent))}.token-bar .fill.red{background:hsl(var(--destructive))}.chart-card{background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.chart-title{font-size:13px;font-weight:700}.area-chart{position:relative;height:140px}.area-chart svg{width:100%;height:100%;display:block;overflow:visible}.bars-chart{display:flex;align-items:flex-end;gap:8px;height:150px;padding-top:8px}.bars-chart .col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;align-items:center}.bars-chart .col i{width:100%;max-width:34px;background:hsl(var(--primary)/.85);border-radius:4px 4px 0 0;display:block}.bars-chart .col i.alt{background:hsl(var(--secondary)/.8)}.bars-chart .col span{font-size:10px;color:hsl(var(--muted-foreground))}.donut{--a:40;--b:70;width:128px;height:128px;border-radius:999px;flex:0 0 auto;position:relative;background:conic-gradient(hsl(var(--chart-1)) 0 calc(var(--a) * 1%),hsl(var(--chart-2)) 0 calc(var(--b) * 1%),hsl(var(--chart-3)) 0 100%)}.donut:before{content:"";position:absolute;inset:24px;border-radius:999px;background:hsl(var(--surface))}.donut .donut-c{position:absolute;inset:0;display:grid;place-items:center;text-align:center}.legend{flex-direction:column}.legend,.legend-row{display:flex;gap:9px}.legend-row{align-items:center;font-size:12px}.legend-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.legend-row .lg-val{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}@keyframes chartFadeIn{0%{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}.chart-fade{animation:chartFadeIn .4s ease-out both}.bars-chart .col i{transition:height .45s cubic-bezier(.22,.61,.36,1)}@property --a{syntax:"<number>";inherits:true;initial-value:0}@property --b{syntax:"<number>";inherits:true;initial-value:0}.donut{transition:--a .45s ease-out,--b .45s ease-out}@media (prefers-reduced-motion:reduce){.chart-fade{animation:none}.bars-chart .col i,.donut{transition:none}}.top-course-link{color:inherit;text-decoration:none;cursor:pointer}.top-course-link:hover{color:hsl(var(--primary));text-decoration:underline}.funnel-row{gap:12px}.funnel-bar,.funnel-row{display:flex;align-items:center}.funnel-bar{height:38px;border-radius:var(--radius-sm);background:hsl(var(--primary));padding:0 12px;color:hsl(var(--primary-foreground));font-weight:700;font-size:13px;min-width:60px}.tabs{display:flex;gap:4px;border-bottom:1px solid hsl(var(--border))}.tab{padding:9px 14px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:hsl(var(--foreground))}.tab.active{color:hsl(var(--primary-deep));border-bottom-color:hsl(var(--primary));font-weight:600}.dim{position:absolute;inset:0;background:rgba(6,14,10,.55);display:grid;place-items:center;padding:24px;z-index:20}.dialog{width:100%;max-width:480px;background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:var(--radius-xl);box-shadow:0 24px 64px rgba(6,14,10,.35);display:flex;flex-direction:column;max-height:100%;position:relative}.dialog.wide{max-width:640px}.dialog-head{padding:18px 20px 0}.dialog-title{font-size:16px;font-weight:700;font-family:var(--font-display)}.dialog-desc{font-size:13px;color:hsl(var(--muted-foreground));margin-top:4px}.dialog-body{padding:16px 20px;overflow-y:auto}.dialog-foot{padding:14px 20px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid hsl(var(--border))}.dialog-foot.split{justify-content:space-between}.dialog-x{position:absolute;top:14px;right:14px}.stepper{gap:0}.step,.stepper{display:flex;align-items:center}.step{gap:8px;font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.step .num{width:24px;height:24px;border-radius:999px;border:1px solid hsl(var(--border));display:grid;place-items:center;font-size:11px;font-weight:700;flex:0 0 auto}.step.active{color:hsl(var(--foreground))}.step.active .num{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.step.done .num{background:hsl(var(--success));color:#fff;border-color:hsl(var(--success))}.step.done{color:hsl(var(--foreground))}.step-line{width:30px;height:1px;background:hsl(var(--border));margin:0 8px}.data-region,.data-region>.tbl-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.data-region>.tbl-wrap{overflow:auto}.data-region>.tbl-wrap>table{flex:0 0 auto}.data-region>.cards-scroll{flex:1 1 auto;min-height:0;overflow:auto;padding-right:2px}.data-region .empty-state,.data-region .error-state{flex:1 1 auto;justify-content:center}.data-foot{flex:0 0 auto;padding-top:12px}.data-region .tbl thead th{position:sticky;top:0;z-index:1}.page-body.grid-fit{overflow:hidden;display:flex;flex-direction:column;gap:0}.page-body.grid-fit>.active-filters,.page-body.grid-fit>.alert,.page-body.grid-fit>.bulk-bar,.page-body.grid-fit>.filterbar,.page-body.grid-fit>.tbl-toolbar{flex:0 0 auto}.lang-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--surface))}.lang-opt{border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:11px;font-weight:700;letter-spacing:.3px;color:hsl(var(--muted-foreground));height:22px;min-width:28px;padding:0 8px;border-radius:999px}.lang-opt.on{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.lang-switch.sm{padding:2px}.lang-switch.sm .lang-opt{height:20px;min-width:24px;font-size:10px}.otp-input{display:flex;gap:8px}.otp-cell{flex:1;height:54px;border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--surface));display:grid;place-items:center;font-family:var(--font-mono);font-size:22px;font-weight:700;color:hsl(var(--foreground))}.otp-cell.filled{border-color:hsl(var(--primary)/.55)}.otp-cell.caret{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring)/.2)}.otp-input.err .otp-cell{border-color:hsl(var(--destructive))}.auth-divider{display:flex;align-items:center;gap:12px;color:hsl(var(--muted-foreground));font-size:12px;margin:4px 0}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:hsl(var(--border))}.btn-google{background:hsl(var(--surface));color:hsl(var(--foreground));border:1px solid hsl(var(--border))}.btn-google:hover{background:hsl(var(--muted))}.btn-google svg{width:18px;height:18px}.row{align-items:center;gap:10px}.col,.row{display:flex}.col{flex-direction:column}.wrap{flex-wrap:wrap}.gap4{gap:4px}.gap6{gap:6px}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap14{gap:14px}.gap16{gap:16px}.gap20{gap:20px}.gap24{gap:24px}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.grid2{grid-template-columns:1fr 1fr}.grid2,.grid3{display:grid;gap:14px}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.muted{color:hsl(var(--muted-foreground))}.fz11{font-size:11px}.fz12{font-size:12px}.fz13{font-size:13px}.fz15{font-size:15px}.fz18{font-size:18px}.fw500{font-weight:500}.fw600{font-weight:600}.fw700{font-weight:700}.divider{height:1px;background:hsl(var(--border))}.danger-zone{border:1px solid hsl(var(--destructive)/.35);border-radius:var(--radius);padding:16px}.section-label{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:hsl(var(--muted-foreground))}.frame-tag{position:absolute;top:0;left:0;z-index:30;display:flex;gap:6px;align-items:center;padding:5px 9px;background:rgba(16,35,26,.9);color:#fff;font-size:10px;font-weight:700;letter-spacing:.4px;border-bottom-right-radius:8px;font-family:var(--font-mono)}.frame-tag .fp{background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:1px 5px;border-radius:3px}.frame-tag .st{opacity:.7;font-weight:600}.shell-sidebar{--surface:150 30% 9%;--background:150 32% 6%;--border:150 30% 26%;--input:150 24% 14%;--muted:150 24% 16%;--foreground:150 30% 96%;--muted-foreground:145 18% 80%;--popover:150 26% 13%;--popover-foreground:150 30% 95%;--primary-deep:148 74% 62%;--secondary:208 57% 62%}.shell-topbar{background:hsl(var(--surface));box-shadow:none;border-bottom:1px solid hsl(var(--border))}.shell-sidebar{position:relative;background:radial-gradient(ellipse at 46% 73%,hsl(var(--shell-glow-1)/.28) 0,hsl(var(--shell-glow-1)/.12) 36%,transparent 63%),radial-gradient(ellipse 90% 55% at 52% 52%,hsl(var(--shell-glow-2)/.5) 0,hsl(var(--shell-glow-2)/.14) 34%,transparent 70%),radial-gradient(circle at 8% 4%,hsl(var(--shell-glow-3)/.36),transparent 34%),radial-gradient(circle at 75% 100%,hsl(var(--shell-glow-4)/.35),transparent 40%),linear-gradient(180deg,hsl(var(--shell-bg-1)) 0,hsl(var(--shell-bg-2)) 31%,hsl(var(--shell-bg-3)) 60%,hsl(var(--shell-bg-4)) 100%)}.shell-sidebar:before{opacity:.92;background:url(/_next/static/media/sidebar-pattern.4834fd20.svg) no-repeat bottom/100% 100%}.shell-sidebar:after,.shell-sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0}.shell-sidebar:after{opacity:.16;mix-blend-mode:overlay;background-image:radial-gradient(circle at 25% 25%,hsla(0,0%,100%,.08) 0 1px,transparent 1px),radial-gradient(circle at 75% 75%,hsla(0,0%,100%,.06) 0 1px,transparent 1px);background-size:28px 28px,36px 36px}.shell-sidebar>*{position:relative;z-index:1}.shell-sidebar .nav-item:hover{background:hsla(0,0%,100%,.1);color:#fff}.shell-sidebar .nav-item.active{color:#fff;font-weight:600;background:linear-gradient(100deg,hsl(var(--sidebar-active-1)) 0,hsl(var(--sidebar-active-2)) 52%,hsl(var(--sidebar-active-3)) 100%);box-shadow:0 8px 22px hsl(var(--shell-active-glow)/.5),inset 0 1px 0 hsla(0,0%,100%,.28)}.shell-sidebar .nav-item.active svg{color:#fff}.shell-sidebar .nav-item.active .nav-count{background:hsla(0,0%,100%,.24);color:#fff}