*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-bottom-1{bottom:-.25rem}.left-0{left:0}.right-3{right:.75rem}.top-0{top:0}.top-3{top:.75rem}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-12{margin-left:3rem}.mr-1{margin-right:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.\!block{display:block!important}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-14{height:3.5rem}.h-16{height:4rem}.h-24{height:6rem}.h-3{height:.75rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[240px\]{height:240px}.h-\[300px\]{height:300px}.h-\[72px\]{height:72px}.h-full{height:100%}.w-14{width:3.5rem}.w-16{width:4rem}.w-3{width:.75rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[120px\]{width:120px}.w-\[240px\]{width:240px}.w-full{width:100%}.min-w-0{min-width:0}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[var\(--border-default\)\]{border-color:var(--border-default)}.border-emerald-100\/50{border-color:rgb(209 250 229/.5)}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-100\/60{border-color:rgb(243 244 246/.6)}.border-gray-50{--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity,1))}.border-red-100\/50{border-color:rgb(254 226 226/.5)}.border-slate-100{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/10{background-color:rgb(0 0 0/.1)}.bg-emerald-50{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}.bg-emerald-50\/90{background-color:rgb(236 253 245/.9)}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-red-50\/90{background-color:rgb(254 242 242/.9)}.bg-rose-50{--tw-bg-opacity:1;background-color:rgb(255 241 242/var(--tw-bg-opacity,1))}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-100\/50{background-color:rgb(241 245 249/.5)}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-50\/50{background-color:rgb(248 250 252/.5)}.bg-slate-900\/40{background-color:rgb(15 23 42/.4)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/80{background-color:rgb(255 255 255/.8)}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:rgb(37 99 235/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-indigo-600{--tw-gradient-to:#4f46e5 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-\[1\.5px\]{padding:1.5px}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-2{padding-bottom:.5rem}.pl-1{padding-left:.25rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-rose-600{--tw-text-opacity:1;color:rgb(225 29 72/var(--tw-text-opacity,1))}.text-rose-700{--tw-text-opacity:1;color:rgb(190 18 60/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-5{opacity:.05}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.shadow-blue-500\/10{--tw-shadow-color:rgb(59 130 246/0.1);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgb(0 0 0/0.1)) drop-shadow(0 1px 1px rgb(0 0 0/0.06))}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgb(0 0 0/0.07)) drop-shadow(0 2px 2px rgb(0 0 0/0.06))}.drop-shadow-md,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--accent-blue:#6096c4;--accent-green:#4ea87a;--accent-orange:#d4845a;--accent-purple:#8b7ec8;--accent-red:#c47070;--accent-yellow:#c4a84a;--bg-card:#ffffff;--bg-input:#f4f6f8;--bg-secondary:#f0f2f5;--bg-sidebar:#ffffff;--bg-sidebar-active:#eff6ff;--bg-sidebar-hover:#f3f4f6;--border-default:#e4e8ee;--text-primary:#2d3748;--text-secondary:#718096;--text-tertiary:#a0aec0;--text-sidebar:#111827;--fe-blue:#2563eb;--fe-blue-grad:linear-gradient(90deg,#1d4ed8,#2563eb,#3b82f6);--fe-slate-100:#f1f5f9;--fe-slate-200:#e2e8f0;--fe-slate-400:#94a3b8;--fe-slate-500:#64748b;--fe-slate-700:#334155;--fe-slate-800:#1e293b;--fe-red:#dc2626}*{box-sizing:border-box}body{margin:0;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-inter),Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;letter-spacing:0}button,input,optgroup,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.admin-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;justify-content:space-between;height:100vh;padding:24px 16px;background:var(--bg-sidebar);border-right:1px solid var(--fe-slate-200);color:var(--text-sidebar);overflow:hidden}.sidebar-menu-wrapper{flex:1;display:flex;flex-direction:column;overflow-y:auto;margin-bottom:16px;scrollbar-width:none;-ms-overflow-style:none}.sidebar-menu-wrapper::-webkit-scrollbar{display:none}.brand{display:flex;align-items:center;gap:12px;padding:4px 0 32px;color:var(--fe-blue);font-size:28px;font-weight:800}.nav-block{display:grid;gap:4px;margin-bottom:26px}.nav-label{margin:0 0 10px 12px;color:#6b7280;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.sidebar-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:8px;color:#111827;font-size:15px;font-weight:500;transition:background-color .15s,color .15s}.sidebar-link svg{color:#6b7280;transition:color .15s}.sidebar-link:hover{background:var(--bg-sidebar-hover)}.sidebar-link:hover svg{color:var(--fe-blue)}.sidebar-link.active{background:var(--bg-sidebar-active);color:var(--fe-blue);font-weight:600}.sidebar-link.active svg{color:var(--fe-blue)}.sidebar-account{display:grid;grid-template-columns:42px 1fr 22px;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--fe-slate-200);color:var(--text-sidebar)}.sidebar-account span{display:block;margin-top:2px;color:var(--fe-slate-500);font-size:13px}.avatar,.profile-dot{border-radius:50%}.avatar{width:42px;height:42px}.avatar.blue,.profile-dot{background:var(--accent-blue)}.avatar.green{background:#bbf7d0}.avatar.purple{background:#e9d5ff}.avatar.red{background:#fecdd3}.avatar.yellow{background:#fed7aa}.avatar.teal{background:#99f6e4}.main-shell{min-width:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px;padding:0 24px;border-bottom:1px solid var(--border-default);background:white}.topbar h1{margin:0;font-size:24px;line-height:1.1}.topbar p{margin:4px 0 0;color:var(--text-secondary);font-size:14px}.topbar-actions{display:flex;align-items:center;gap:16px}.global-search,.search-field{display:flex;align-items:center;gap:10px;min-width:220px;height:40px;padding:0 14px;border-radius:999px;background:var(--bg-input);color:var(--text-tertiary)}.global-search{min-width:320px}.global-search input,.search-field input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text-primary)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:8px;background:var(--bg-input);color:var(--text-secondary)}.notification{background:white}.profile-dot{width:40px;height:40px}.page-content{display:grid;gap:24px;padding:24px}.card{border:1px solid var(--border-default);border-radius:12px;background:white;box-shadow:0 1px 2px #0000000d}.hero-card{display:flex;justify-content:space-between;gap:32px;padding:38px 24px}.hero-card h2{margin:0 0 12px;font-size:28px}.hero-card p{margin:0;color:var(--text-secondary)}.insights-box{min-width:340px;padding:20px;border-radius:8px;background:var(--bg-secondary)}.insights-box h3,.section-header h2{margin:0}.insights-box ul{display:grid;gap:12px;margin:14px 0 0;padding:0;list-style:none;color:var(--text-secondary)}.insights-box li{display:flex;gap:10px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{display:flex;align-items:center;gap:18px;min-height:132px;padding:24px}.stat-card.compact{min-height:96px}.stat-icon{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;flex:0 0 auto;border-radius:50%}.stat-icon.blue{color:var(--accent-blue);background:#dbeafe}.stat-icon.green{color:#4ea87a;background:#dcfce7}.stat-icon.purple{color:var(--accent-purple);background:#f3e8ff}.stat-icon.red{color:#c47070;background:#fee2e2}.stat-icon.yellow{color:var(--accent-yellow);background:#fef9c3}.stat-label{margin:0 0 8px;color:var(--text-secondary)}.stat-card strong{display:block;font-size:34px;line-height:1}.stat-delta{margin:12px 0 0;font-weight:700}.success{color:#4ea87a}.danger{color:#c47070}.warning{color:var(--accent-yellow)}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.grid-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:16px}.col-span-2{grid-column:span 2}.grid-wide{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:16px}.section-card{padding:24px}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.section-header p{margin:4px 0 0;color:var(--text-secondary)}.link-button{border:0;background:transparent;color:var(--accent-blue);font-weight:700}.toolbar{display:flex;align-items:center;gap:12px}.toolbar.split{justify-content:space-between}.toolbar.start{justify-content:flex-start;flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:40px;padding:0 16px;border-radius:8px}.filter-button{border:1px solid var(--border-default);background:white;color:var(--text-primary)}.primary-button{border:0;background:#6096c4;color:white;font-weight:700}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}table{width:100%;min-width:980px;border-collapse:collapse}td,th{padding:18px 20px;border-bottom:1px solid var(--border-default);text-align:left;white-space:nowrap}th{background:#f8fafc;font-weight:800}td,th{color:var(--text-secondary)}td.primary{color:var(--text-primary);font-weight:750}tr.flagged{background:#fffbeb}.row-user{display:flex;align-items:center;gap:14px}.row-actions{display:flex;gap:8px}.checkbox{width:18px;height:18px;border:2px solid var(--border-default);border-radius:4px}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:750}.badge.blue{color:#4a7ab5;background:#edf4fc}.badge.green{color:#3a7d5a;background:#eaf5ef}.badge.purple{color:#7066b0;background:#f0edfb}.badge.red{color:#a05050;background:#faeaea}.badge.yellow{color:#8a7030;background:#faf5dc}.badge.gray{color:#64748b;background:#f1f5f9}.badge.orange{color:#a86040;background:#faf0e8}.line-chart svg{display:block;width:100%;height:250px}.line-chart .area{fill:#dbeafe}.line-chart .line{fill:none;stroke:var(--accent-blue);stroke-width:4}.line-chart circle{fill:var(--accent-blue);stroke:white;stroke-width:4}.chart-axis,.legend{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--text-secondary)}.legend{justify-content:center;margin-top:18px}.legend.vertical{display:grid;justify-content:start;margin-top:16px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%}.dot.blue{background:var(--accent-blue)}.dot.green{background:var(--accent-green)}.dot.yellow{background:var(--accent-yellow)}.donut-wrap{display:grid;place-items:center;gap:16px}.donut{place-items:center;width:190px;height:190px;background:conic-gradient(var(--accent-blue) 0 78%,var(--accent-green) 78% 96%,var(--accent-yellow) 96% 100%)}.donut,.donut>div{display:grid;border-radius:50%}.donut>div{place-items:center;width:104px;height:104px;background:white}.donut strong{font-size:24px}.donut span{color:var(--text-secondary);font-size:13px}.progress-list{display:grid;gap:18px;padding-top:36px}.progress-row{display:grid;grid-template-columns:140px 1fr 44px;align-items:center;gap:18px}.progress-track{height:18px;overflow:hidden;border-radius:5px;background:#eef2f7}.progress-fill{height:100%;border-radius:inherit}.progress-fill.blue{background:var(--accent-blue)}.progress-fill.green{background:var(--accent-green)}.progress-fill.yellow{background:var(--accent-yellow)}.progress-fill.red{background:var(--accent-red)}.progress-fill.purple{background:var(--accent-purple)}.moderation-list,.rank-list{display:grid;margin:0;padding:0;list-style:none}.moderation-list li,.rank-list li{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #eef2f7}.moderation-list li{grid-template-columns:42px 1fr auto auto}.muted{color:var(--text-secondary)}.heatmap{overflow-x:auto}.heatmap-row,.heatmap-top{display:grid;grid-template-columns:44px repeat(12,minmax(54px,1fr));gap:4px;align-items:center}.heatmap-top{margin-bottom:8px;color:var(--text-tertiary);font-size:13px}.heatmap-row+.heatmap-row{margin-top:4px}.heatmap-row span{color:var(--text-secondary)}.heatmap-row i{height:22px;border-radius:4px}.heat-1{background:#e2e8f0}.heat-2{background:#bfdbfe}.heat-3{background:#93c5fd}.heat-4{background:#3b82f6}.heat-5{background:#1d4ed8}.pagination{justify-content:space-between;gap:16px;padding:16px 20px;color:var(--text-secondary)}.pagination,.pagination div{display:flex;align-items:center}.pagination div{gap:8px}.pagination button{min-width:38px;height:38px;border:1px solid var(--border-default);border-radius:8px;background:white;color:var(--text-secondary)}.pagination button.active{border-color:var(--accent-blue);background:#6096c4;color:white}.settings-form,.settings-list{display:grid;gap:16px}.settings-form label{display:grid;gap:8px;color:var(--text-secondary);font-weight:700}.settings-form input{width:100%;min-height:44px;border:1px solid var(--border-default);border-radius:8px;padding:0 14px;background:var(--bg-input);color:var(--text-primary)}.settings-row,.switch-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #eef2f7}.settings-row p,.switch-row small{display:block;margin:4px 0 0;color:var(--text-secondary)}.switch-row input{width:44px;height:24px;accent-color:var(--accent-blue)}@media (max-width:1100px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;gap:18px}.nav-block{margin-bottom:12px}.grid-2,.grid-wide,.metric-grid{grid-template-columns:1fr 1fr}.hero-card{flex-direction:column}}@media (max-width:720px){.topbar{height:auto;padding:16px}.toolbar,.toolbar.split,.topbar,.topbar-actions{flex-direction:column;align-items:stretch}.global-search,.insights-box,.search-field{min-width:0;width:100%}.page-content{padding:16px}.grid-2,.grid-wide,.metric-grid{grid-template-columns:1fr}.stat-card{min-height:112px}}.report-loading{display:flex;align-items:center;gap:10px;padding:32px 0;justify-content:center}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}.report-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.report-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .2s}.report-item.approved{border-color:#22c55e44;background:#22c55e08}.report-item.rejected{border-color:#94a3b844;background:#94a3b808}.report-item.pending:hover{border-color:var(--accent);cursor:pointer}.report-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px}.report-meta{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.report-id{font-size:11px;font-variant-numeric:tabular-nums}.report-users{display:flex;align-items:center;gap:5px;font-size:13px}.report-content{font-size:13px;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}.report-badges{gap:8px;flex-shrink:0}.report-badges,.report-time{display:flex;align-items:center}.report-time{gap:3px;font-size:12px;white-space:nowrap}.report-detail{border-top:1px solid var(--border);padding:12px 16px;background:var(--surface2,#f8fafc10);justify-content:space-between;gap:16px}.report-detail,.report-detail-body{display:flex;align-items:flex-start}.report-detail-body{gap:8px;flex:1}.report-detail-body p{font-size:13px;margin:0;line-height:1.5;color:var(--text-secondary,#94a3b8)}.report-actions{display:flex;gap:8px;flex-shrink:0}.action-approve,.action-reject{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:7px;font-size:13px;font-weight:500;border:none;cursor:pointer;transition:opacity .15s,transform .1s}.action-approve:active,.action-reject:active{transform:scale(.97)}.action-approve:disabled,.action-reject:disabled{opacity:.5;cursor:not-allowed}.action-approve{background:#4ea87a;color:#fff}.action-approve:hover:not(:disabled){background:#3d8c64}.action-reject{background:var(--border);color:var(--text)}.action-reject:hover:not(:disabled){background:#e2e8f0}.report-done{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:12px;border-top:1px solid var(--border);color:var(--text-secondary,#94a3b8)}.success{color:#22c55e}.toast-container{position:fixed;bottom:28px;right:28px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:10px;font-size:14px;font-weight:500;min-width:280px;max-width:400px;box-shadow:0 8px 24px rgba(0,0,0,.18);pointer-events:all;cursor:pointer;animation:toast-in .3s cubic-bezier(.34,1.56,.64,1)}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-success{background:#2d6b4a;color:#dcfce7;border:1px solid #22c55e44}.toast-error{background:#1e293b;color:#cbd5e1;border:1px solid #94a3b844}.report-workspace{display:grid;grid-template-columns:300px 1fr;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;min-height:480px;margin-top:12px}.report-sidebar{list-style:none;margin:0;padding:0;border-right:1px solid var(--border);overflow-y:auto;max-height:580px}.report-sidebar-item{padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;display:flex;flex-direction:column;gap:6px}.report-sidebar-item:hover{background:var(--surface2,rgba(255,255,255,.04))}.report-sidebar-item.active{background:var(--accent,#3b82f6)18;border-left:3px solid var(--accent,#3b82f6)}.report-sidebar-item.approved{opacity:.55}.report-sidebar-item.rejected{opacity:.45}.rsi-top{display:flex;justify-content:space-between;align-items:center}.rsi-content{font-size:13px;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.rsi-bottom{justify-content:space-between}.rsi-bottom,.rsi-time{display:flex;align-items:center}.rsi-time{gap:3px;font-size:11px}.report-detail-pane{overflow-y:auto;max-height:580px}.report-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;min-height:300px}.report-panel{display:grid;grid-template-columns:1fr 260px;gap:0;height:100%}.report-panel-left{padding:20px;border-right:1px solid var(--border)}.report-panel-right{padding:20px;display:flex;flex-direction:column;gap:6px}.panel-section-title{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary,#94a3b8);margin-bottom:8px}.report-full-content{background:var(--surface2,rgba(255,255,255,.03));border:1px solid var(--border);border-radius:8px;padding:14px 16px;font-size:13.5px;line-height:1.65;white-space:pre-wrap;max-height:220px;overflow-y:auto}.report-full-content p{margin:0 0 4px}.report-reason-box{display:flex;align-items:flex-start;gap:10px;background:var(--surface2,rgba(255,255,255,.03));border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:13px}.report-reason-box p{margin:0;line-height:1.5}.report-user-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface2,rgba(255,255,255,.03));margin-bottom:8px}.report-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0}.report-user-stats{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}.report-user-stats li{gap:6px}.report-reporter,.report-user-stats li{display:flex;align-items:center;font-size:13px}.report-reporter{gap:5px;font-weight:500;margin:0}.panel-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:16px}.panel-actions .action-approve,.panel-actions .action-reject{width:100%;justify-content:center;padding:9px}.panel-done{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;padding:10px 12px;border-radius:8px;margin-top:auto}.panel-done.approved{background:#22c55e18;color:#22c55e}.panel-done.rejected{background:var(--border);color:var(--text-secondary,#94a3b8)}@media (max-width:768px){.report-panel,.report-workspace{grid-template-columns:1fr}.report-sidebar{max-height:240px;border-right:none;border-bottom:1px solid var(--border)}}.login-page{min-height:100vh;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;padding:40px;width:100%;max-width:420px;box-shadow:0 4px 24px rgba(0,0,0,.06)}.login-logo{display:flex;align-items:center;gap:10px;color:var(--accent-blue);font-size:26px;font-weight:800}.login-header,.login-logo{margin-bottom:28px}.login-header h1{font-size:20px;font-weight:700;margin:0 0 6px;color:var(--text-primary)}.login-header p{font-size:14px;color:var(--text-secondary);margin:0}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-field label{font-size:13px;font-weight:600;color:var(--text-primary)}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:12px;color:var(--text-tertiary);pointer-events:none}.login-input-wrap input{width:100%;padding:10px 40px 10px 38px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-input);font-size:14px;color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s}.login-input-wrap input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-blue) 15%,transparent)}.login-eye{position:absolute;right:10px;background:none;border:none;color:var(--text-tertiary);padding:4px;display:flex;align-items:center;cursor:pointer}.login-eye:hover{color:var(--text-secondary)}.login-error{padding:10px 14px;background:color-mix(in srgb,var(--accent-red) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent-red) 30%,transparent);border-radius:8px;color:var(--accent-red);font-size:13px}.login-error,.login-submit{display:flex;align-items:center;gap:8px}.login-submit{justify-content:center;width:100%;padding:11px;background:var(--accent-blue);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;margin-top:4px}.login-submit:hover:not(:disabled){opacity:.9}.login-submit:active:not(:disabled){transform:scale(.98)}.login-submit:disabled{opacity:.65;cursor:not-allowed}.login-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.login-demo{margin-top:28px;padding-top:20px;border-top:1px solid var(--border-default)}.login-demo-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin:0 0 10px}.login-demo-accounts{display:flex;flex-direction:column;gap:6px}.login-demo-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:8px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;width:100%}.login-demo-item:hover{border-color:var(--accent-blue);background:color-mix(in srgb,var(--accent-blue) 5%,var(--bg-input))}.login-demo-item strong{font-size:13px;color:var(--text-primary)}.login-demo-item span{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.auth-checking{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary)}.auth-checking-logo{color:var(--accent-blue);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.92)}}.logout-btn{background:none;border:none;color:var(--text-sidebar);padding:6px;border-radius:6px;display:flex;align-items:center;opacity:.7;transition:opacity .15s,background .15s;margin-left:auto}.logout-btn:hover{opacity:1;background:var(--bg-sidebar-hover)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-box{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;width:100%;max-width:440px;box-shadow:0 20px 60px rgba(0,0,0,.15);animation:slide-up .2s cubic-bezier(.34,1.56,.64,1)}@keyframes slide-up{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-default)}.modal-header h2{font-size:16px;font-weight:700;margin:0;color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-tertiary);padding:4px;border-radius:6px;display:flex;align-items:center;cursor:pointer}.modal-close:hover{background:var(--bg-input);color:var(--text-primary)}.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:14px}.modal-input{width:100%;padding:9px 12px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-input);font-size:14px;color:var(--text-primary);outline:none;box-sizing:border-box;transition:border-color .15s}.modal-input:focus{border-color:var(--accent-blue)}.modal-error{font-size:13px;color:var(--accent-red);margin:0;padding:8px 12px;background:color-mix(in srgb,var(--accent-red) 10%,transparent);border-radius:6px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 20px;border-top:1px solid var(--border-default)}.role-select-wrap{display:flex;align-items:center;gap:6px}.role-select{border:1px solid var(--border-default);border-radius:6px;background:var(--bg-input);font-size:13px;color:var(--text-primary);padding:4px 8px;cursor:pointer;outline:none}.role-select:focus{border-color:var(--accent-blue)}.icon-btn-danger{background:none;border:none;color:var(--text-tertiary);padding:6px;border-radius:6px;display:flex;align-items:center;cursor:pointer;transition:background .15s,color .15s}.icon-btn-danger:hover{background:color-mix(in srgb,var(--accent-red) 12%,transparent);color:var(--accent-red)}.search-wrap{position:relative;display:flex;align-items:center}.search-icon-inline{position:absolute;left:10px;color:var(--text-tertiary);pointer-events:none}.search-input-inline{padding:7px 32px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-input);font-size:13px;color:var(--text-primary);outline:none;width:220px;transition:border-color .15s}.search-input-inline:focus{border-color:var(--accent-blue)}.search-clear{position:absolute;right:8px;background:none;border:none;color:var(--text-tertiary);font-size:12px;cursor:pointer;padding:2px 4px;border-radius:4px}.search-clear:hover{color:var(--text-primary)}.filter-group{display:flex;gap:4px}.filter-button.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.user-cell{display:flex;align-items:center;gap:10px}.row-suspended td{opacity:.6}.table-empty{text-align:center;padding:40px!important;color:var(--text-tertiary);display:flex;flex-direction:column;align-items:center;gap:8px}.icon-button.warn-btn{color:var(--accent-yellow)}.icon-button.warn-btn:hover{background:color-mix(in srgb,var(--accent-yellow) 12%,transparent)}.icon-button.success-btn{color:var(--accent-green)}.icon-button.success-btn:hover{background:color-mix(in srgb,var(--accent-green) 12%,transparent)}.pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--border-default)}.pagination-btns{display:flex;gap:4px;align-items:center}.pagination-info{font-size:13px}.review-panel{display:flex;flex-direction:column;gap:16px}.review-back{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid var(--border-default);border-radius:8px;padding:7px 14px;font-size:13px;color:var(--text-secondary);cursor:pointer;width:-moz-fit-content;width:fit-content;transition:background .15s,color .15s}.review-back:hover{background:var(--bg-input);color:var(--text-primary)}.review-layout{display:grid;grid-template-columns:1fr 260px;gap:16px;align-items:start}.review-left{padding:24px;gap:4px}.review-left,.review-right{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;display:flex;flex-direction:column}.review-right{padding:20px;gap:10px;position:sticky;top:16px}.review-post-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.review-post-title{font-size:18px;font-weight:700;margin:0 0 8px;color:var(--text-primary);line-height:1.4}.review-post-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.review-full-content{background:var(--bg-input);border:1px solid var(--border-default);border-radius:10px;padding:18px 20px;font-size:14px;line-height:1.75;margin-top:8px;white-space:pre-wrap;max-height:380px;overflow-y:auto}.review-full-content p{margin:0 0 6px}.review-stats{display:flex;align-items:center;gap:20px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-default);font-size:13px}.review-stats span{display:flex;align-items:center;gap:5px}@media (max-width:768px){.review-layout{grid-template-columns:1fr}.review-right{position:static}}.dropdown-wrap{position:relative}.dropdown-trigger{white-space:nowrap}.dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;background:var(--bg-card);border:1px solid var(--border-default);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.1);z-index:100;min-width:160px;padding:6px;display:flex;flex-direction:column;gap:2px;animation:fade-in .12s ease}.dropdown-item{padding:8px 12px;border:none;background:none;border-radius:7px;font-size:13px;text-align:left;color:var(--text-primary);cursor:pointer;transition:background .1s}.dropdown-item:hover{background:var(--bg-input)}.dropdown-item.active{background:var(--accent-blue);color:#fff;font-weight:600}.dropdown-trigger{font-size:14px;font-family:inherit;font-weight:500;padding:7px 14px}.select-filter-wrap{position:relative;display:inline-flex;align-items:center}.select-filter{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:0 36px 0 14px;min-height:40px;border:1px solid var(--border-default);border-radius:8px;background:white;color:var(--text-primary);font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;outline:none;transition:border-color .15s}.select-filter.active,.select-filter:focus,.select-filter:hover{border-color:var(--accent-blue)}.select-filter.active{color:var(--accent-blue);font-weight:600}.select-filter-icon{position:absolute;right:10px;pointer-events:none;color:var(--text-tertiary)}.dropdown-trigger{font-weight:400;color:var(--text-secondary)}.dropdown-trigger.active{font-weight:500;color:var(--text-primary)}.detail-overlay,.user-detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);backdrop-filter:blur(2px);z-index:900;display:flex;justify-content:flex-end;animation:fade-in .15s ease}.detail-panel,.user-detail-panel{width:380px;height:100vh;background:var(--bg-card);border-left:1px solid var(--border-default);box-shadow:-8px 0 32px rgba(0,0,0,.1);display:flex;flex-direction:column;overflow-y:auto;animation:slide-in-right .22s cubic-bezier(.34,1.2,.64,1)}.verification-detail-panel{width:480px;max-width:100vw}@keyframes slide-in-right{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.udp-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-default);position:sticky;top:0;background:var(--bg-card);z-index:1}.udp-header h2{font-size:15px;font-weight:700;margin:0;color:var(--text-primary)}.udp-profile{gap:14px;padding:20px 24px;border-bottom:1px solid var(--border-default)}.avatar.large,.udp-profile{display:flex;align-items:center}.avatar.large{width:52px;height:52px;border-radius:50%;font-size:20px;font-weight:700;justify-content:center;color:white;flex-shrink:0}.avatar.blue{background:#6096c4}.avatar.purple{background:#8b7ec8}.avatar.green{background:#4ea87a}.avatar.yellow{background:#c4a84a}.avatar.red{background:#c47070}.avatar.teal{background:#4a9e9e}.udp-name{font-size:16px;font-weight:700;color:var(--text-primary);display:block;margin-bottom:6px}.udp-meta{display:flex;gap:6px}.udp-section{padding:16px 24px;border-bottom:1px solid var(--border-default)}.udp-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.udp-stat{background:var(--bg-input);border:1px solid var(--border-default);border-radius:8px;padding:10px;text-align:center;display:flex;flex-direction:column;gap:2px}.udp-stat strong{font-size:20px;font-weight:700;color:var(--text-primary)}.udp-stat span{font-size:11px;color:var(--text-secondary)}.udp-stat.danger-stat{border-color:color-mix(in srgb,var(--accent-red) 40%,transparent);background:color-mix(in srgb,var(--accent-red) 8%,transparent)}.udp-stat.danger-stat strong{color:var(--accent-red)}.udp-activity{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:8px}.udp-activity li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--text-secondary)}.udp-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-blue);flex-shrink:0;margin-top:5px}.udp-actions{padding:20px 24px;margin-top:auto;border-top:1px solid var(--border-default)}.udp-confirm{display:flex;flex-direction:column;gap:10px}.udp-confirm p{font-size:13px;margin:0;color:var(--text-secondary)}.toggle-switch{width:40px;height:22px;border-radius:999px;background:var(--border-default);position:relative;flex-shrink:0;transition:background .2s}.toggle-switch.on{background:var(--accent-green)}.toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:transform .2s}.toggle-switch.on .toggle-thumb{transform:translateX(18px)}[data-density=compact] table td,[data-density=compact] table th{padding:6px 12px;font-size:12px}[data-density=compact] .stat-card{min-height:90px;padding:12px 16px}[data-density=compact] .section-card{padding:14px 16px}[data-density=compact] .rank-list li{padding:6px 0}[data-theme=dark]{--bg-card:#1e2535;--bg-input:#253045;--bg-secondary:#161d2e;--border-default:#2d3a52;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-tertiary:#64748b}[data-theme=dark] body{background:var(--bg-secondary)}[data-theme=dark] .card{background:var(--bg-card);border-color:var(--border-default)}[data-theme=dark] table th{background:#1a2236}[data-theme=dark] .filter-button,[data-theme=dark] input,[data-theme=dark] select{background:var(--bg-input);color:var(--text-primary);border-color:var(--border-default)}[data-theme=dark] .dropdown-menu{background:var(--bg-card);border-color:var(--border-default)}[data-theme=dark] .dropdown-item:hover{background:var(--bg-input)}[data-theme=dark] .modal-box{background:var(--bg-card)}[data-theme=dark] .login-demo-item{background:var(--bg-input);border-color:var(--border-default)}.readonly-input{background:var(--bg-secondary)!important;border-color:var(--border-default)!important;color:var(--text-tertiary)!important;cursor:not-allowed}.readonly-label{display:flex;align-items:center;gap:5px;color:var(--text-tertiary);font-size:12px}.admin-shell,.card,.dropdown-menu,.main-shell,.modal-box,.sidebar,.topbar,body{transition:background-color .25s ease,border-color .25s ease}.gs-wrap{position:relative;width:320px}.gs-input-wrap{display:flex;align-items:center;gap:8px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:10px;padding:0 12px;height:40px;transition:border-color .15s,box-shadow .15s}.gs-input-wrap.focused{border-color:var(--accent-blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-blue) 15%,transparent)}.gs-icon{color:var(--text-tertiary);flex-shrink:0}.gs-input{flex:1;border:none;background:transparent;font-size:13px;color:var(--text-primary);outline:none;min-width:0}.gs-input::-moz-placeholder{color:var(--text-tertiary)}.gs-input::placeholder{color:var(--text-tertiary)}.gs-clear{background:none;border:none;color:var(--text-tertiary);padding:2px;display:flex;align-items:center;cursor:pointer;border-radius:4px;flex-shrink:0}.gs-clear:hover{color:var(--text-primary);background:var(--border-default)}.gs-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);z-index:200;overflow:hidden;animation:fade-in .12s ease;max-height:420px;overflow-y:auto}.gs-group{padding:8px 0 4px}.gs-group+.gs-group{border-top:1px solid var(--border-default)}.gs-group-label{padding:4px 14px 6px}.gs-group-label,.gs-item{display:flex;align-items:center}.gs-item{gap:10px;width:100%;padding:8px 14px;border:none;background:none;text-align:left;cursor:pointer;transition:background .1s}.gs-item.active,.gs-item:hover{background:var(--bg-input)}.gs-item-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gs-item-icon.blue{background:#dbeafe;color:#4a7ab5}.gs-item-icon.green{background:#dcfce7;color:#3a7d5a}.gs-item-icon.purple{background:#f0edfb;color:#7066b0}.gs-item-icon.orange{background:#faf0e8;color:#a86040}.gs-item-text{display:flex;flex-direction:column;gap:1px;min-width:0}.gs-item-text strong{font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-item-text small{font-size:11px;color:var(--text-secondary)}.gs-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;color:var(--text-secondary);font-size:13px;text-align:center}.gs-footer{display:flex;justify-content:center;gap:16px;padding:8px 14px;border-top:1px solid var(--border-default);font-size:11px;color:var(--text-tertiary);background:var(--bg-secondary)}.metric-grid-5{grid-template-columns:repeat(5,1fr)}@media (max-width:1200px){.metric-grid-5{grid-template-columns:repeat(3,1fr)}}.grid-3{display:grid;grid-template-columns:1fr 2fr;gap:24px}.bar-chart{display:flex;flex-direction:column;gap:10px;margin-top:8px}.bar-row{display:grid;grid-template-columns:80px 1fr 44px;align-items:center;gap:10px}.bar-label{font-size:13px;color:var(--text-secondary);text-align:right;white-space:nowrap}.bar-track{height:20px;background:var(--bg-input);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .6s ease}.bar-value{font-size:12px;font-weight:600;color:var(--text-primary);text-align:right}.avg-stats{justify-content:space-around;padding:16px 0 8px}.avg-item,.avg-stats{display:flex;align-items:center}.avg-item{flex-direction:column;gap:4px}.avg-item strong{font-size:28px;font-weight:700;color:var(--text-primary)}.avg-item span{font-size:12px;color:var(--text-secondary)}.avg-divider{width:1px;height:48px;background:var(--border-default)}.retention-wrap{display:flex;align-items:center;justify-content:space-around;padding:12px 0}.retention-item{display:flex;flex-direction:column;align-items:center;gap:8px}.retention-ring{width:80px;height:80px;border-radius:50%;background:conic-gradient(var(--accent-blue) calc(var(--pct)),var(--bg-input) 0);display:flex;align-items:center;justify-content:center;position:relative}.retention-ring:after{content:"";position:absolute;width:58px;height:58px;border-radius:50%;background:var(--bg-card)}.retention-ring span{position:relative;z-index:1;font-size:14px;font-weight:700;color:var(--text-primary)}.retention-item p{font-size:12px;color:var(--text-secondary);margin:0;text-align:center}.retention-divider{width:1px;height:60px;background:var(--border-default)}.link-btn{background:none;border:none;color:var(--accent-blue);font-size:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{opacity:.8}.alert-banner{display:flex;align-items:center;gap:10px;padding:10px 18px;background:color-mix(in srgb,var(--accent-red) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent-red) 30%,transparent);border-radius:10px;color:var(--accent-red);font-size:14px}.alert-banner .link-btn{margin-left:auto;color:var(--accent-red);font-size:13px}.notif-wrap,.notification{position:relative}.notification.has-notif{color:var(--text-primary)}.notif-badge{position:absolute;top:2px;right:2px;background:var(--accent-red);color:#fff;font-size:9px;font-weight:700;min-width:15px;height:15px;padding:0 3px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--bg-card);line-height:1}.notif-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:360px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.12);z-index:200;overflow:hidden;animation:fade-in .12s ease}.notif-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-default)}.notif-header strong{font-size:14px;color:var(--text-primary)}.notif-list{list-style:none;padding:0;margin:0;max-height:380px;overflow-y:auto}.notif-item{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-default);cursor:pointer;transition:background .1s;position:relative}.notif-item:hover{background:var(--bg-input)}.notif-item.unread{background:color-mix(in srgb,var(--accent-blue) 5%,transparent)}.notif-item.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent-blue);border-radius:0 2px 2px 0}.notif-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-icon.red{background:color-mix(in srgb,var(--accent-red) 12%,transparent);color:var(--accent-red)}.notif-icon.green{background:color-mix(in srgb,var(--accent-green) 12%,transparent);color:var(--accent-green)}.notif-icon.blue{background:color-mix(in srgb,var(--accent-blue) 12%,transparent);color:var(--accent-blue)}.notif-icon.purple{background:color-mix(in srgb,var(--accent-purple) 12%,transparent);color:var(--accent-purple)}.notif-body{flex:1;min-width:0}.notif-body strong{font-size:13px;color:var(--text-primary);display:block;margin-bottom:2px}.notif-body p{font-size:12px;color:var(--text-secondary);margin:0 0 4px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-body small{font-size:11px;color:var(--text-tertiary)}.notif-dismiss{background:none;border:none;color:var(--text-tertiary);padding:2px;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s;flex-shrink:0}.notif-item:hover .notif-dismiss{opacity:1}.notif-dismiss:hover{color:var(--text-primary);background:var(--border-default)}.notif-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:var(--text-secondary);font-size:13px}.notif-footer{padding:10px 16px;border-top:1px solid var(--border-default);background:var(--bg-secondary);text-align:center}.page-stack{display:grid;gap:20px}.lp-back-link{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:14px;font-weight:600}.lp-back-link:hover{color:var(--accent-blue)}.lp-btn-ghost,.lp-btn-primary,.lp-btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px;border:none;font-size:14px;font-weight:700;transition:background-color .15s,box-shadow .15s,color .15s}.lp-btn-primary{background:var(--fe-blue);color:#fff;box-shadow:0 1px 2px #0000001a}.lp-btn-primary:hover{background:#1d4ed8}.lp-btn-primary:disabled{opacity:.6;cursor:not-allowed}.lp-btn-secondary{background:#fff;color:var(--fe-slate-700);border:1px solid var(--fe-slate-200)}.lp-btn-secondary:hover{background:var(--fe-slate-100)}.lp-btn-ghost{background:transparent;color:var(--fe-slate-500);padding:6px 10px}.lp-btn-ghost:hover{background:var(--fe-slate-100)}.lp-btn-ghost.danger{color:var(--fe-red)}.lp-btn-ghost.danger:hover{background:#fef2f2}.lp-error{color:var(--fe-red);font-size:14px;margin:0}.lp-page-header{justify-content:space-between;flex-wrap:wrap}.lp-page-header,.lp-page-header-main{display:flex;align-items:center;gap:16px}.lp-page-header-main{min-width:0}.lp-page-icon{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#fff;border:1px solid var(--fe-slate-100);color:var(--fe-slate-400);box-shadow:0 1px 2px #0000000d}.lp-page-title{margin:0;font-size:20px;font-weight:900;line-height:1.2;color:var(--fe-slate-800)}.lp-page-sub{margin:2px 0 0;font-size:13px;color:var(--fe-slate-500)}.lp-sheet-wrap{max-height:calc(100vh - 290px);overflow:auto;border:1px solid var(--fe-slate-200);border-radius:16px;background:#fff;box-shadow:0 1px 2px #0000000d}.lp-sheet{width:100%;border-collapse:collapse;font-size:14px}.lp-sheet td,.lp-sheet th{padding:8px 14px;border-bottom:1px solid var(--fe-slate-100);border-right:1px solid var(--fe-slate-100);text-align:left;vertical-align:middle}.lp-sheet td:last-child,.lp-sheet th:last-child{border-right:0}.lp-sheet thead th{position:sticky;top:0;z-index:2;background:#f8fafc;border-bottom:1px solid var(--fe-slate-200);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fe-slate-500)}.lp-sheet tbody tr:not(.lp-sheet-group):nth-child(2n) td{background:#fafbfc}.lp-sheet tbody tr:not(.lp-sheet-group):hover td{background:#eff6ff}.lp-sheet-group td{background:#eef2f7;border-right:0;font-size:12px;font-weight:900;letter-spacing:.12em;color:var(--fe-slate-700)}.lp-col-stt{width:56px;text-align:center!important;color:var(--fe-slate-400)}.lp-col-code{width:140px;white-space:nowrap}.lp-col-sem{width:96px;white-space:nowrap;color:var(--fe-slate-500)}.lp-col-num{width:56px;font-variant-numeric:tabular-nums}.lp-col-block,.lp-col-num{text-align:center!important}.lp-col-block{width:64px}.lp-col-type{width:100px;white-space:nowrap}.lp-sheet-name{font-weight:600;color:var(--fe-slate-800)}.lp-muted{color:var(--fe-slate-400)}.lp-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:13px;color:var(--fe-slate-500)}.lp-legend strong{color:var(--fe-slate-800)}.lp-legend-item{display:inline-flex;align-items:center;gap:8px}.lp-semester-wrapper{display:grid;gap:12px}.lp-col-actions{width:80px;white-space:nowrap;text-align:center!important}.lp-kebab{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--fe-slate-500)}.lp-kebab:hover,.lp-kebab[aria-expanded=true]{background:var(--fe-slate-100);color:var(--fe-slate-800)}.lp-menu-backdrop{position:fixed;inset:0;z-index:90}.lp-menu{position:fixed;z-index:100;min-width:170px;padding:6px;border:1px solid var(--fe-slate-200);border-radius:12px;background:#fff;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;text-align:left}.lp-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--fe-slate-700);font-size:14px;font-weight:500;text-align:left}.lp-menu-item:hover{background:var(--fe-slate-100)}.lp-menu-item.danger{color:var(--fe-red)}.lp-menu-item.danger:hover{background:#fef2f2}.lp-sheet-link{font-weight:600;color:var(--fe-slate-800)}.lp-sheet-link:hover{color:var(--fe-blue)}.lp-sheet-empty{padding:32px!important;text-align:center!important;color:var(--fe-slate-500)}.lp-btn-sm{padding:5px 10px;font-size:13px;border-radius:8px}.lp-group-count{margin-left:8px;padding:1px 8px;border-radius:999px;background:#fff;border:1px solid var(--fe-slate-200);color:var(--fe-slate-500);font-size:11px;letter-spacing:0}.lp-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card.lp-school-card{display:flex;gap:16px;padding:20px;border-radius:16px;border-color:var(--fe-slate-100);transition:box-shadow .2s}.card.lp-school-card:hover{box-shadow:0 4px 12px #0f172a14}.lp-school-icon{width:52px;height:52px;border-radius:16px;background:#eff6ff;color:var(--fe-blue);display:flex;align-items:center;justify-content:center;flex-shrink:0}.lp-school-body{display:grid;gap:8px;flex:1;min-width:0}.lp-school-body h3{margin:0;font-size:16px;font-weight:800;color:var(--fe-slate-800)}.lp-card-actions{display:flex;gap:8px;align-items:center;margin-top:4px}.lp-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.lp-modal{background:var(--bg-card);border-radius:16px;padding:24px;width:100%;max-width:440px;display:grid;gap:14px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.lp-modal-wide{max-width:560px}.lp-modal h2{margin:0;display:flex;align-items:center;gap:10px;font-size:18px;font-weight:800;color:var(--fe-slate-800)}.lp-modal-desc{margin:0;color:var(--fe-slate-500);font-size:14px}.lp-modal label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--fe-slate-700)}.lp-modal input{padding:10px 12px;border:1px solid var(--fe-slate-200);border-radius:12px;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.lp-modal input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.lp-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lp-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.lp-import-actions{display:flex;gap:10px;flex-wrap:wrap}.lp-file-name{font-size:13px;color:var(--accent-green);margin:0}.lp-table-wrap{overflow-x:auto;border:1px solid var(--border-default);border-radius:8px}.lp-table{width:100%;border-collapse:collapse;font-size:13px}.lp-table td,.lp-table th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-default)}.lp-table th{background:var(--bg-secondary);font-weight:700}.lp-more{padding:8px 12px;margin:0;font-size:12px;color:var(--text-secondary)}.lp-semester-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.lp-semester-card{background:var(--bg-card);border:1px solid var(--fe-slate-100);border-radius:16px;box-shadow:0 1px 2px #0000000d;overflow:hidden}.lp-semester-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 18px;background:linear-gradient(135deg,#eef4fa,#f8fafc);border-bottom:1px solid var(--border-default)}.lp-semester-head h3{margin:0 0 4px;font-size:16px}.lp-semester-head p{margin:0;font-size:12px;color:var(--text-secondary)}.lp-subject-list{display:grid;gap:0}.lp-subject-node{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-default)}.lp-subject-node:last-child{border-bottom:none}.lp-node-index{width:28px;height:28px;border-radius:50%;background:var(--accent-blue);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.lp-node-body{display:grid;gap:2px;min-width:0}.lp-node-body strong{font-size:14px}.lp-node-meta{font-size:12px;color:var(--text-secondary)}.lp-node-actions{display:flex;gap:4px}.lp-empty,.lp-empty-card{padding:32px;text-align:center;color:var(--text-secondary)}.lp-empty-card{display:grid;gap:16px;justify-items:center}.lp-block-letter{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border-radius:9px;font-size:13px;font-weight:800;flex-shrink:0;background:var(--bg-input);color:var(--text-secondary)}.block-a{background:#e6f0f8;color:#3a6ea5}.block-b{background:#e6f4ec;color:#3a8a64}.block-c{background:#efebf8;color:#6d5fb0}.block-d{background:#f9ede4;color:#b5673a}.block-e{background:#f8e9e9;color:#b05050}.block-f{background:#f6f1de;color:#9a8425}.block-none{background:var(--bg-input);color:var(--text-tertiary)}.lp-overview{padding:22px;display:grid;gap:18px}.lp-overview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.lp-overview-head h3{margin:0 0 4px;font-size:17px}.lp-overview-head p{margin:0;font-size:13px;color:var(--text-secondary)}.lp-overview-total{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.lp-overview-total strong{font-size:28px;color:var(--accent-blue)}.lp-overview-total span{font-size:12px;color:var(--text-secondary)}.lp-block-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.lp-block-item{border-left:1px solid var(--border-default);border:1px solid var(--border-default);border-left-width:4px;border-radius:10px;padding:14px;display:grid;gap:10px;background:var(--bg-card)}.lp-block-item.block-a{border-left-color:#3a6ea5}.lp-block-item.block-b{border-left-color:#3a8a64}.lp-block-item.block-c{border-left-color:#6d5fb0}.lp-block-item.block-d{border-left-color:#b5673a}.lp-block-item.block-e{border-left-color:#b05050}.lp-block-item.block-f{border-left-color:#9a8425}.lp-block-top{display:flex;justify-content:space-between;align-items:center}.lp-block-credit{display:flex;align-items:baseline;gap:3px}.lp-block-credit strong{font-size:20px}.lp-block-credit span{font-size:11px;color:var(--text-secondary)}.lp-block-name{margin:0;font-size:13px;font-weight:600;color:var(--text-primary);min-height:34px}.lp-block-bar{display:flex;height:7px;border-radius:99px;overflow:hidden;background:var(--bg-input)}.lp-block-bar .seg{display:block;height:100%}.lp-block-bar .seg.required{background:var(--accent-blue)}.lp-block-bar .seg.elective{background:var(--accent-yellow)}.lp-block-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-secondary);align-items:center}.lp-block-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.lp-block-legend .dot.required{background:var(--accent-blue)}.lp-block-legend .dot.elective{background:var(--accent-yellow)}.lp-block-count{margin-left:auto;font-weight:700;color:var(--text-primary)}.lp-chip-row{display:flex;flex-wrap:wrap;gap:8px}.lp-block-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:99px;font-size:12px;font-weight:600;background:var(--bg-input);color:var(--text-secondary)}.lp-block-chip .lp-block-letter{min-width:22px;height:22px;font-size:11px;border-radius:7px}.lp-semester-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--accent-blue);color:#fff;font-weight:800;font-size:14px}.lp-semester-badge.flexible{background:var(--accent-purple)}.lp-semester-card.flexible{border-color:#d9d2ee}.lp-semester-card.flexible .lp-semester-head{background:linear-gradient(135deg,#f1edfa,#f9f8fc);border-bottom-color:#e4ddf3}.lp-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer}.lp-checkbox input{width:16px;height:16px;accent-color:var(--accent-purple);cursor:pointer}.lp-course{border-bottom:1px solid var(--border-default)}.lp-course:last-child{border-bottom:none}.lp-course-main{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:none;text-align:left;cursor:pointer;transition:background .12s ease}.lp-course-main:hover,.lp-course.open>.lp-course-main{background:var(--bg-secondary)}.lp-course-info{display:grid;gap:2px;min-width:0;flex:1}.lp-course-title{font-size:14px;font-weight:600;color:var(--text-primary);overflow-wrap:anywhere;word-break:break-word}.lp-course-sub{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.lp-course-code{font-variant-numeric:tabular-nums;font-weight:600}.lp-dot{color:var(--text-tertiary)}.lp-span-note{color:var(--accent-orange);font-weight:600}.lp-type-tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap;flex-shrink:0}.lp-type-tag.required{background:#e6f0f8;color:#3a6ea5}.lp-type-tag.elective{background:transparent;color:var(--accent-yellow);border:1px solid #e3d9a6}.lp-course-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform .18s ease}.lp-course.open .lp-course-chevron{transform:rotate(180deg)}.lp-course-chevron-spacer{width:16px;flex-shrink:0}.lp-course-detail{padding:4px 16px 16px 58px;display:grid;gap:10px;background:var(--bg-secondary)}.lp-detail-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:start;font-size:13px}.lp-detail-label{color:var(--text-tertiary);font-weight:600;font-size:12px;padding-top:3px}.lp-detail-value{color:var(--text-primary);min-width:0;overflow-wrap:anywhere;word-break:break-word}.lp-chip-line{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.lp-code-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 9px;border-radius:7px;background:var(--bg-card);border:1px solid var(--border-default);font-size:12px;font-weight:600;color:var(--text-primary)}.lp-code-chip em{font-style:normal;font-weight:400;color:var(--text-secondary);min-width:0;overflow-wrap:anywhere;word-break:break-word}.lp-detail-actions{display:flex;gap:6px;padding-top:4px;border-top:1px dashed var(--border-default);margin-top:2px}.lp-modal select{border:1px solid var(--border-default);border-radius:8px;background:var(--bg-input);color:var(--text-primary)}.lp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--fe-slate-100);border-radius:16px;background:#fff;box-shadow:0 1px 2px #0000000d}.lp-stat{display:flex;align-items:baseline;gap:8px;border-right:1px solid var(--fe-slate-100);color:var(--fe-slate-500);font-size:13px}.lp-stat:last-child{border-right:0}.lp-stat svg{color:var(--fe-slate-400);flex-shrink:0}.lp-stat strong{font-size:22px;font-weight:900;line-height:1;color:var(--fe-slate-800)}.lp-board-toolbar{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap}.lp-board-toolbar .search-field{flex:0 0 300px;background:#fff;border:1px solid var(--fe-slate-200);border-radius:12px}.lp-board-toolbar .lp-legend{flex:1;min-width:0;justify-content:flex-end;gap:6px 16px;font-size:12px}.page-stack:has(.lp-stats){gap:14px}.lp-overview{padding:14px 16px;gap:12px;border-radius:16px;border-color:var(--fe-slate-100)}.lp-overview-head{align-items:center}.lp-overview-head h3{margin:0;font-size:15px;font-weight:800;color:var(--fe-slate-800)}.lp-overview-head p{display:none}.lp-overview-total{flex-direction:row;align-items:baseline;gap:6px}.lp-overview-total strong{font-size:20px;color:var(--fe-blue)}.lp-block-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.lp-block-item{padding:10px 12px;gap:6px;border-radius:12px}.lp-block-name{min-height:0;font-size:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lp-block-credit strong{font-size:17px}.lp-sheet td,.lp-sheet th{padding:6px 12px}.lp-sheet-wrap{max-height:calc(100vh - 250px)}@media (max-width:900px){.lp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-board-toolbar .search-field{flex-basis:100%}.lp-board-toolbar .lp-legend{justify-content:flex-start}}.lp-structure{display:grid;gap:8px;padding:10px 14px;border:1px solid var(--fe-slate-100);border-radius:16px;background:#fff;box-shadow:0 1px 2px #0000000d}.lp-structure-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--fe-slate-500)}.lp-structure-head strong{font-size:13px;font-weight:800;color:var(--fe-slate-800)}.lp-structure-head b{color:var(--fe-blue);font-size:15px}.lp-block-filter{display:flex;flex-wrap:wrap;gap:6px}.lp-block-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--fe-slate-200);border-radius:999px;background:#fff;color:var(--fe-slate-700);font-size:12px;transition:background-color .15s,border-color .15s}.lp-block-btn b{font-weight:800}.lp-block-btn span{color:var(--fe-slate-500);font-variant-numeric:tabular-nums}.lp-block-btn:hover{background:var(--fe-slate-100)}.lp-block-btn.active{border-color:var(--fe-blue);background:#eff6ff;color:var(--fe-blue)}.lp-block-btn.active span{color:var(--fe-blue)}.lp-board-count{margin-left:auto;font-size:13px;color:var(--fe-slate-500)}.lp-col-kind{width:150px;white-space:nowrap}.lp-col-kind>*+*{margin-left:6px}.lp-cond-group{display:inline-flex;margin-right:10px}.lp-cond-label{font-style:normal;font-size:11px;font-weight:700;color:var(--fe-slate-400);text-transform:uppercase;letter-spacing:.04em}.lp-col-blk{width:72px;text-align:center!important}.lp-col-blkname{width:220px}.lp-sheet td.lp-merged{background:#fff!important;vertical-align:middle;border-right:1px solid var(--fe-slate-200)}.lp-sheet td.lp-col-blkname{font-weight:600;color:var(--fe-slate-700);font-size:13px}.lp-sheet tr.lp-block-start td{border-top:2px solid var(--fe-slate-200)}.lp-sheet tbody tr.lp-block-start:first-child td{border-top:0}.lp-board-toolbar{flex-wrap:nowrap;gap:12px}.lp-board-toolbar .search-field{flex:0 0 240px;min-width:0}.lp-board-toolbar .lp-block-filter{flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;padding:2px 0;scrollbar-width:thin}.lp-block-filter .lp-block-btn{flex:0 0 auto;white-space:nowrap}.lp-board-toolbar .lp-board-count{flex:0 0 auto;margin-left:0;white-space:nowrap}.lp-board-count b{color:var(--fe-blue)}@media (max-width:900px){.lp-board-toolbar{flex-wrap:wrap}.lp-board-toolbar .search-field{flex-basis:100%}.lp-board-toolbar .lp-block-filter{flex-basis:100%;order:3}}.lp-select{flex:0 1 380px;min-width:0;height:40px;padding:0 34px 0 14px;border:1px solid var(--fe-slate-200);border-radius:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--fe-slate-800);font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;text-overflow:ellipsis}.lp-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.lp-board-toolbar .lp-board-count{margin-left:auto}@media (max-width:900px){.lp-select{flex-basis:100%}}.lp-stat{align-items:center;gap:12px;padding:12px 18px}.lp-stat svg{box-sizing:content-box;padding:8px;border-radius:12px;align-self:center}.lp-stat.tone-blue svg{background:#eff6ff;color:#2563eb}.lp-stat.tone-green svg{background:#ecfdf5;color:#059669}.lp-stat.tone-purple svg{background:#f5f3ff;color:#7c3aed}.lp-stat.tone-orange svg{background:#fff7ed;color:#ea580c}.lp-stat strong{font-size:24px}.lp-stat span{font-size:13px;color:var(--fe-slate-500)}.lp-board-toolbar .search-field{flex:0 0 260px}.lp-select{flex:0 1 340px}.lp-sheet-wrap{max-height:calc(100vh - 330px);min-height:320px}.lp-sheet{table-layout:fixed}.lp-sheet .lp-col-stt{width:52px}.lp-sheet .lp-col-blk{width:68px}.lp-sheet .lp-col-blkname{width:150px}.lp-sheet .lp-col-code{width:116px}.lp-sheet .lp-col-num{width:64px}.lp-sheet .lp-col-sem{width:76px;text-align:center!important}.lp-sheet .lp-col-type{width:96px}.lp-sheet .lp-col-cond{width:250px}.lp-sheet .lp-col-actions{width:52px;text-align:center!important}.lp-sheet .lp-col-name{width:auto}.lp-sheet td{overflow:hidden}.lp-sheet td.lp-col-blkname{font-size:12px;line-height:1.35;white-space:normal}.lp-sheet .lp-sheet-name{display:block;line-height:1.35}.lp-sheet .lp-col-cond{white-space:normal}.lp-cond-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:2px 0}.lp-cond-label{flex:0 0 62px}.lp-sheet td.lp-col-actions{overflow:visible;padding:4px}.lp-sheet td.lp-merged.lp-tone-a{background:#f3f8fc!important}.lp-sheet td.lp-merged.lp-tone-b{background:#f2faf5!important}.lp-sheet td.lp-merged.lp-tone-c{background:#f7f5fc!important}.lp-sheet td.lp-merged.lp-tone-d{background:#fdf6f1!important}.lp-sheet td.lp-merged.lp-tone-e{background:#fcf4f4!important}.lp-sheet td.lp-merged.lp-tone-f{background:#faf7ea!important}.lp-sheet td.lp-col-name{white-space:normal}.lp-cond-label{flex:0 0 auto;min-width:66px;white-space:nowrap}.lp-sheet .lp-col-block{width:210px}.lp-sheet td.lp-col-block{white-space:normal;text-align:left;vertical-align:middle;padding:8px 12px}.lp-blk-title{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:700;line-height:1.35;color:var(--fe-slate-800)}.lp-blk-title .lp-block-letter{flex-shrink:0;height:24px;min-width:28px;font-size:12px;border-radius:7px}.lp-blk-kind{margin:4px 0 0 36px;font-size:12px;font-weight:700}.lp-blk-kind.required{color:#3a6ea5}.lp-blk-kind.elective{color:#b5851a}.lp-sheet .lp-col-cond{width:190px}.lp-cond-list{list-style:none;margin:0;padding:0;display:grid;gap:3px}.lp-cond-item{display:grid;line-height:1.25}.lp-cond-item b{font-size:12px;font-weight:700;color:var(--fe-slate-800)}.lp-cond-item span{font-size:12px;color:var(--fe-slate-500)}.lp-sheet td.lp-col-block{text-align:left!important}.lp-blk-title{display:block}.lp-blk-kind{margin:4px 0 0}.lp-sheet thead th{height:48px;padding:0 14px;background:#eef2f7;border-bottom:2px solid var(--fe-slate-200);font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--fe-slate-700);vertical-align:middle}.lp-board-toolbar .search-field{flex:1 1 auto;min-width:240px}.lp-board-toolbar .lp-select{flex:0 0 340px}.lp-name-tag{display:inline-block;margin-top:3px}.lp-modal-xwide{max-width:780px}.lp-bs-wrap{max-height:52vh;overflow:auto;border:1px solid var(--fe-slate-200);border-radius:12px}.lp-bs-table{width:100%;border-collapse:collapse;font-size:14px}.lp-bs-table th{position:sticky;top:0;z-index:1;padding:10px 12px;text-align:left;background:#eef2f7;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fe-slate-700)}.lp-bs-table td{padding:6px 8px;border-top:1px solid var(--fe-slate-100)}.lp-bs-table input{width:100%;padding:8px 10px;border:1px solid var(--fe-slate-200);border-radius:10px;background:#fff;outline:none;font:inherit}.lp-bs-table input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.lp-bs-code{width:96px}.lp-bs-num{width:110px}.lp-bs-del{width:52px;text-align:center}.lp-bs-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lp-bs-total{font-size:14px;color:var(--fe-slate-500)}.lp-bs-total b{color:var(--fe-blue);font-size:16px}.lp-bs-table{table-layout:fixed}.lp-bs-wrap{overflow-x:hidden;overflow-y:auto}.lp-bs-table input[type=number]{text-align:center}.lp-modal-xwide{grid-template-columns:minmax(0,1fr)}.lp-bs-wrap{min-width:0}.lp-bs-table td,.lp-bs-table th{box-sizing:border-box}.lp-bs-table{min-width:0}.lp-nogpa-pill{display:block;margin:2px auto 0;padding:1px 6px;width:-moz-max-content;width:max-content;background:#fff7ed;color:#c2410c;font-size:10px;font-weight:800;line-height:1.4}.lp-bs-flag{width:120px;text-align:center}.lp-bs-table td.lp-bs-flag input{width:18px;height:18px;padding:0;cursor:pointer}.lp-blk-nogpa{margin-top:4px;font-size:11px;font-weight:700;color:#ea580c}.lp-bs-table td.lp-bs-flag,.lp-bs-table th.lp-bs-flag{width:150px}.lp-bs-table .lp-bs-num{width:96px}.lp-bs-skip{font-style:normal;font-size:12px;color:var(--fe-slate-400)}.lp-modal{grid-template-columns:minmax(0,1fr)}.lp-form-row>*,.lp-modal label{min-width:0}.lp-modal input:not([type=checkbox]),.lp-modal select{width:100%;min-width:0}.lp-modal select{padding:10px 12px;border:1px solid var(--fe-slate-200);border-radius:12px;background-color:#fff;color:var(--fe-slate-800);font:inherit;outline:none}.lp-modal select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.lp-modal .lp-checkbox{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--fe-slate-700)}.lp-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.lp-view-tabs{display:inline-flex;padding:3px;border:1px solid var(--fe-slate-200);border-radius:12px;background:#fff;gap:2px}.lp-view-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:0;border-radius:9px;background:transparent;color:var(--fe-slate-500);font-size:13px;font-weight:700}.lp-view-tab:hover{color:var(--fe-slate-800)}.lp-view-tab.active{background:#eff6ff;color:var(--fe-blue)}.lp-view-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.lp-dg-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.lp-dg-layout.has-detail{grid-template-columns:minmax(0,1fr) 300px}.lp-dg-main{display:grid;gap:12px;min-width:0}.lp-dg-toolbar{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}.lp-dg-toolbar .lp-select{flex:0 1 340px}.lp-dg-legend{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;flex:1;font-size:12px;color:var(--fe-slate-500)}.lp-dg-legend-item{display:inline-flex;align-items:center;gap:6px}.lp-dg-swatch{display:inline-block;width:22px;height:12px;border-radius:4px;border:2px solid var(--fe-slate-400);background:#fff}.lp-dg-swatch.dashed{border-style:dashed}.lp-dg-swatch.need{border-color:#f59e0b;background:#fffbeb}.lp-dg-swatch.dep{border-color:#0ea5e9;background:#f0f9ff}.lp-dg{position:relative;padding:20px 16px 28px;border:1px solid var(--fe-slate-100);border-radius:20px;background-color:#fff;background-image:radial-gradient(#e2e8f0 1.5px,transparent 0);background-size:36px 36px;box-shadow:0 1px 2px #0000000d;overflow-x:auto}.lp-dg-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}.lp-dg-spine{opacity:.2}.lp-dg-branch,.lp-dg-spine{fill:none;stroke:#0ea5e9;stroke-linecap:round}.lp-dg-branch{stroke-linejoin:round;opacity:.22;transition:opacity .2s,stroke-width .2s}.lp-dg-rows{position:relative;z-index:1;gap:34px}.lp-dg-rows,.lp-dg-sem{display:flex;flex-direction:column}.lp-dg-sem{gap:16px;align-items:flex-start}.lp-dg-sem-head{display:inline-flex;align-items:center;gap:10px;padding:7px 12px;border:1px solid var(--fe-slate-100);border-radius:12px;background:#fff;box-shadow:0 1px 2px #0000000d;transition:border-color .2s}.lp-dg-sem-head:hover{border-color:#7dd3fc}.lp-dg-sem-title{font-size:13px;font-weight:800;color:var(--fe-slate-800)}.lp-dg-sem-meta{padding:2px 8px;border-radius:6px;background:#f8fafc;font-size:11px;font-weight:700;color:var(--fe-slate-500)}.lp-dg-chevron{color:var(--fe-slate-400);transition:transform .25s}.lp-dg-chevron.collapsed{transform:rotate(-90deg)}.lp-dg-nodes{display:flex;flex-wrap:wrap;gap:14px;width:calc(100% - 32px);margin-left:32px;padding:12px;border-radius:16px;background:#f8fafc80}.lp-dg-node{position:relative;display:flex;flex-direction:column;gap:6px;width:152px;padding:10px 10px 10px 12px;border:2px solid var(--fe-slate-200);border-left-width:5px;border-radius:12px;background:#fff;box-shadow:0 1px 2px #0000000d;text-align:left;transition:transform .2s,box-shadow .2s,opacity .2s,border-color .2s}.lp-dg-node.hovered,.lp-dg-node:hover{transform:scale(1.05);box-shadow:0 10px 20px -8px #0ea5e940}.lp-dg-node.elective{border-style:dashed dashed dashed solid}.lp-dg-node.block-a{border-left-color:#3a6ea5}.lp-dg-node.block-b{border-left-color:#3a8a64}.lp-dg-node.block-c{border-left-color:#6d5fb0}.lp-dg-node.block-d{border-left-color:#b5673a}.lp-dg-node.block-e{border-left-color:#b05050}.lp-dg-node.block-f{border-left-color:#9a8425}.lp-dg-node.selected{border-color:#0ea5e9;box-shadow:0 0 0 4px #e0f2fe}.lp-dg-node.need{background:#fffbeb}.lp-dg-node.dep{border-color:#0ea5e9;background:#f0f9ff}.lp-dg-node.dim{opacity:.35}.lp-dg-node-top{display:flex;align-items:center;line-height:1}.lp-dg-node-code{font-size:10px;font-weight:800;letter-spacing:-.01em;color:var(--fe-slate-500)}.lp-dg-node-tc{font-size:10px;font-weight:600;color:var(--fe-slate-400)}.lp-dg-node-blk{padding:1px 5px;border-radius:5px;background:#f1f5f9;font-size:9px;font-weight:800;color:var(--fe-slate-500)}.lp-dg-node-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em;font-size:12px;line-height:1.25;color:var(--fe-slate-800)}.lp-dg-node .lp-nogpa-pill{margin:0}.lp-dg-detail{position:sticky;top:80px;display:grid;gap:14px;padding:16px;border:1px solid var(--fe-slate-100);border-radius:16px;background:#fff;box-shadow:0 1px 2px #0000000d}.lp-dg-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.lp-dg-detail-head h3{margin:2px 0 0;font-size:16px;font-weight:800;line-height:1.3;color:var(--fe-slate-800)}.lp-dg-detail-code{font-size:12px;font-weight:800;color:var(--fe-blue)}.lp-dg-detail-list{display:grid;gap:10px;margin:0}.lp-dg-detail-list dt{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--fe-slate-400)}.lp-dg-detail-list dd{margin:2px 0 0;font-size:13px;color:var(--fe-slate-800)}.lp-dg-rel{display:block;margin-top:2px;font-size:12px;color:var(--fe-slate-500)}.lp-dg-rel b{color:var(--fe-slate-800)}.lp-dg-nogpa{color:#c2410c;font-weight:700}.lp-dg-detail-actions{display:flex;gap:8px}.lp-btn-secondary.danger-text{color:var(--fe-red)}@media (max-width:1100px){.lp-dg-layout.has-detail{grid-template-columns:minmax(0,1fr)}.lp-dg-detail{position:static}}.lp-dg-hint{font-size:12px;color:var(--fe-slate-400)}.lp-dg-node{cursor:grab}.lp-dg-node:active{cursor:grabbing}.lp-dg-node.dragging{transform:scale(.96)}.lp-dg-node.drop-before:before{content:"";position:absolute;left:-10px;top:4px;bottom:4px;width:4px;border-radius:2px;background:#0ea5e9}.lp-dg-nodes.drop-over{outline:2px dashed #38bdf8;outline-offset:-2px;background:#f0f9ff}.lp-dg-newsem{padding:18px;border:2px dashed var(--fe-slate-200);border-radius:16px;background:#ffffffb3;text-align:center;font-size:13px;font-weight:700;color:var(--fe-slate-400);transition:border-color .15s,background-color .15s,color .15s}.lp-dg-newsem.drop-over{border-color:#38bdf8;background:#f0f9ff;color:#0284c7}.lp-dg-pool{border-style:dashed dashed dashed solid;background:#fffdf7}.lp-dg-pool .lp-dg-node-name{min-height:1.5em;font-size:13px;color:var(--fe-slate-800)}.lp-dg-pool-sub{font-size:11px;color:var(--fe-slate-500)}.lp-dg-pool-note{margin:0;font-size:12px;color:var(--fe-slate-500);line-height:1.45}.lp-dg-pool-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.lp-dg-pool-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--fe-slate-100);border-radius:10px;background:#f8fafc}.lp-dg-pool-item>div:first-child{display:grid;min-width:0}.lp-dg-pool-item b{font-size:12px;color:var(--fe-slate-800)}.lp-dg-pool-item span{font-size:12px;color:var(--fe-slate-500)}.lp-dg-pool-actions{display:flex;flex-shrink:0}.lp-dg-pool-actions .lp-btn-ghost{padding:4px 6px}.lp-dg-pool .lp-dg-node-top{justify-content:space-between}.lp-dg-pool .lp-dg-node-name{min-height:2.5em;font-size:12px;font-weight:800}.lp-dg-pool-need{font-size:12px;font-weight:800;color:#b5851a}.lp-dg-legend{flex:1 1 320px}.lp-dg-layout.has-detail .lp-dg-hint{display:none}.lp-dg{--dg-card-min:clamp(150px,13vw,220px);--dg-gap:clamp(8px,0.9vw,14px)}.lp-dg-nodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--dg-card-min),1fr));gap:var(--dg-gap);flex-wrap:nowrap;padding:clamp(8px,.9vw,14px)}.lp-dg-node{width:auto;min-width:0;gap:clamp(3px,.35vw,6px);padding:clamp(7px,.65vw,11px) clamp(8px,.75vw,12px) clamp(7px,.65vw,11px) clamp(9px,.85vw,13px)}.lp-dg-node-top{min-width:0;gap:6px}.lp-dg-node-code{font-size:clamp(10px,.78vw,12px);white-space:nowrap}.lp-dg-node-tc{font-size:clamp(10px,.75vw,11.5px);white-space:nowrap}.lp-dg-node-blk{margin-left:auto;font-size:clamp(9px,.7vw,11px);white-space:nowrap}.lp-dg-node-top .lp-nogpa-pill{margin:0 0 0 auto;padding:0 6px;font-size:9px;white-space:nowrap}.lp-dg-node-top .lp-nogpa-pill+.lp-dg-node-blk{margin-left:6px}.lp-dg-node-name,.lp-dg-pool .lp-dg-node-name{min-height:0;-webkit-line-clamp:unset;font-size:clamp(12px,.92vw,14px);line-height:1.3}.lp-dg-node-name,.lp-dg-pool .lp-dg-node-name,.lp-dg-pool-need{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.lp-dg-pool-need{font-size:clamp(11px,.82vw,13px)}.lp-dg-pool-code{margin-left:0}.lp-dg-pool .lp-dg-node-top .lp-dg-node-tc{margin-left:auto}.lp-dg-pool .lp-dg-node-top .lp-nogpa-pill{margin-left:6px}.lp-dg-newsem{margin-left:32px}.lp-dg-pool{cursor:pointer}.lp-dg-pool-chevron{position:absolute;right:8px;bottom:8px;color:var(--fe-slate-400);transition:transform .2s}.lp-dg-pool-chevron.open{transform:rotate(180deg)}.lp-dg-pool.expanded{border-style:solid;border-color:#f59e0b;background:#fffbeb}.lp-dg-pool-panel{grid-column:1/-1;display:grid;gap:10px;padding:clamp(10px,1vw,16px);border:1px solid #fde68a;border-left:5px solid #f59e0b;border-radius:14px;background:#fffdf5}.lp-dg-pool-panel.block-a{border-left-color:#3a6ea5}.lp-dg-pool-panel.block-b{border-left-color:#3a8a64}.lp-dg-pool-panel.block-c{border-left-color:#6d5fb0}.lp-dg-pool-panel.block-d{border-left-color:#b5673a}.lp-dg-pool-panel.block-e{border-left-color:#b05050}.lp-dg-pool-panel.block-f{border-left-color:#9a8425}.lp-dg-pool-panel-head{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap}.lp-dg-pool-panel-head strong{font-size:13px;font-weight:800;color:var(--fe-slate-800)}.lp-dg-pool-panel-head span{font-size:12px;font-weight:700;color:#b5851a}.lp-dg-pool-options{padding:0;gap:6px;grid-template-columns:repeat(auto-fill,minmax(clamp(240px,22vw,340px),1fr))}.lp-dg-pool-option{padding:6px 6px 6px 10px;border:1px solid var(--fe-slate-100);border-radius:10px;background:#fff}.lp-dg-pool-option b{flex:0 0 auto;font-size:12px;color:var(--fe-slate-500)}.lp-dg-pool-option-name{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:600;color:var(--fe-slate-800)}.lp-dg-pool-option-tc{flex:0 0 auto;font-size:11px;color:var(--fe-slate-400)}.lp-dg-pool-option .lp-btn-ghost{padding:4px 6px;flex:0 0 auto}.lp-dg-pool-panel{max-width:min(560px,100%)}.lp-dg-pool-options{gap:4px}.lp-dg-pool-option{padding:7px 8px 7px 12px}.lp-dg-nodes{align-items:start}.lp-dg-node.block-a{--blk:#3a6ea5}.lp-dg-node.block-b{--blk:#3a8a64}.lp-dg-node.block-c{--blk:#6d5fb0}.lp-dg-node.block-d{--blk:#b5673a}.lp-dg-node.block-e{--blk:#b05050}.lp-dg-node.block-f{--blk:#9a8425}.lp-dg-node.block-none{--blk:#cbd5e1}.lp-dg-node,.lp-dg-node[class*=block-]{gap:4px;padding:clamp(7px,.6vw,10px) clamp(9px,.8vw,12px);border:1px solid #e2e8f0;border-radius:10px;box-shadow:none;transition:border-color .15s,box-shadow .15s,opacity .15s}.lp-dg-node.elective{border-style:dashed}.lp-dg-node.hovered,.lp-dg-node:hover{transform:none;border-color:#94a3b8;box-shadow:0 1px 4px #0f172a14}.lp-dg-node.selected{border-style:solid;border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.lp-dg-node.need{border-color:#f59e0b;background:#fff}.lp-dg-node.dep{border-color:#38bdf8;background:#fff}.lp-dg-node.dragging{opacity:.35;transform:none}.lp-dg-node-code{font-weight:600;color:#64748b}.lp-dg-node-tc{font-weight:500;color:#94a3b8}.lp-dg-node-blk{display:inline-flex;align-items:center;gap:5px;padding:0;background:none;border-radius:0;font-weight:600;color:#64748b}.lp-dg-node-blk:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blk,#cbd5e1)}.lp-dg-node-name{color:#0f172a}.lp-nogpa-pill{padding:0 6px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:#64748b;font-size:9px;font-weight:700}.lp-dg-pool,.lp-dg-pool[class*=block-]{display:flex;flex-direction:column;gap:0;padding:0;background:#f8fafc;cursor:default}.lp-dg-pool.expanded{grid-column:span 2;border-color:#cbd5e1;box-shadow:0 2px 8px #0f172a14}.lp-dg-pool-head{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0;padding:clamp(7px,.6vw,10px) clamp(9px,.8vw,12px);border:0;background:none;text-align:left;cursor:pointer;color:inherit}.lp-dg-pool .lp-dg-node-blk,.lp-dg-pool .lp-dg-node-tc{margin-left:0}.lp-dg-pool-chevron{position:static;right:auto;bottom:auto;margin-left:auto;color:#94a3b8}.lp-dg-node-top .lp-nogpa-pill{margin-left:auto}.lp-dg-node-top .lp-nogpa-pill+.lp-dg-pool-chevron{margin-left:6px}.lp-dg-pool-need{color:#475569;font-weight:600}.lp-dg-pool-options{list-style:none;margin:0;padding:6px;display:grid;grid-template-columns:minmax(0,1fr);gap:2px;border-top:1px solid #e2e8f0;max-height:min(60vh,520px);overflow:auto}.lp-dg-pool-option{display:flex;align-items:center;gap:8px;min-width:0;padding:5px 4px 5px 8px;border:0;border-radius:8px;background:none;font-size:13px}.lp-dg-pool-option:hover{background:#f1f5f9}.lp-dg-spine{stroke:#94a3b8;opacity:.35}.lp-dg-branch{stroke:#94a3b8;opacity:.5}.lp-dg-branch.active{stroke:#2563eb}.lp-dg{background-image:radial-gradient(#e9eef5 1.5px,transparent 0)}.lp-dg-nodes{background:#f8fafc99}@media (max-width:760px){.lp-dg-pool.expanded{grid-column:1/-1}}:root{--navy-950:#0a1a40;--navy-900:#0f2557;--navy-800:#14306b;--navy-700:#1e3a8a;--navy-600:#2149b5;--navy-500:#3b66d4;--navy-300:#9fb3dd;--navy-200:#c9d6f0;--navy-100:#e3eafa;--navy-50:#f2f6fd;--fe-blue:#1e40af}.lp-btn-primary:hover{background:var(--navy-800)}.lp-view-tab.active{background:var(--navy-100);color:var(--navy-800)}.lp-dg{background-color:var(--navy-50);background-image:radial-gradient(#d3ddf2 1.5px,transparent 0);border-color:var(--navy-200);box-shadow:0 1px 3px #0f255714}.lp-dg-nodes{background:#ffffff8c;border:1px solid var(--navy-100)}.lp-dg-sem-head{border:0;background:var(--navy-800);box-shadow:0 2px 6px #0f255733}.lp-dg-sem-head:hover{background:var(--navy-700)}.lp-dg-sem-title{color:#fff}.lp-dg-sem-meta{background:#ffffff26;color:#dbe5fb}.lp-dg-chevron{color:#b7c7ee}.lp-dg-spine{stroke:var(--navy-700);opacity:.55;stroke-width:3}.lp-dg-branch{stroke:var(--navy-700);opacity:.4;stroke-width:2}.lp-dg-branch.active{stroke:var(--navy-500);opacity:1;stroke-width:4}.lp-dg-node,.lp-dg-node[class*=block-]{border-color:var(--navy-200);background:#fff;box-shadow:0 1px 2px #0f255714}.lp-dg-node.elective{border-color:var(--navy-300)}.lp-dg-node.hovered,.lp-dg-node:hover{border-color:var(--navy-600);box-shadow:0 6px 16px #1e3a8a2e}.lp-dg-node.selected{border-color:var(--navy-700);box-shadow:0 0 0 3px var(--navy-200)}.lp-dg-node.need{border-color:#d97706;box-shadow:0 0 0 3px #fde8c7}.lp-dg-node.dep{border-color:var(--navy-500);box-shadow:0 0 0 3px var(--navy-100)}.lp-dg-node-code{color:var(--navy-700);font-weight:700}.lp-dg-node-tc{padding:0 6px;border-radius:5px;background:var(--navy-100)}.lp-dg-node-blk,.lp-dg-node-tc{color:var(--navy-800);font-weight:700}.lp-dg-node-blk:before{width:7px;height:7px}.lp-dg-node-name{color:var(--navy-950);font-weight:600}.lp-nogpa-pill{border-color:var(--navy-300);background:#fff;color:var(--navy-700)}.lp-dg-pool,.lp-dg-pool[class*=block-]{background:var(--navy-100);border-color:var(--navy-300);border-style:solid}.lp-dg-pool.expanded{background:#fff;border-color:var(--navy-700);box-shadow:0 8px 22px #1e3a8a30}.lp-dg-pool .lp-dg-node-tc{background:#fff}.lp-dg-pool-need{color:var(--navy-700);font-weight:700}.lp-dg-pool-chevron{color:var(--navy-600)}.lp-dg-pool-options{border-top-color:var(--navy-200)}.lp-dg-pool-option:hover{background:var(--navy-50)}.lp-dg-pool-option b{color:var(--navy-700)}.lp-dg-pool-option-name{color:var(--navy-950)}.lp-dg-pool-option-tc{color:var(--navy-600);font-weight:700}.lp-dg-swatch{border-color:var(--navy-300)}.lp-dg-swatch.need{border-color:#d97706;background:#fff}.lp-dg-swatch.dep{border-color:var(--navy-500);background:var(--navy-100)}.lp-dg-detail-code{color:var(--navy-700)}.lp-dg-detail{border-color:var(--navy-200)}.lp-dg-newsem.drop-over{border-color:var(--navy-500);background:var(--navy-100);color:var(--navy-700)}.lp-dg-nodes.drop-over{outline-color:var(--navy-500);background:var(--navy-100)}.lp-dg-node.drop-before:before{background:var(--navy-500)}.lp-bs-table td.lp-bs-track,.lp-bs-table th.lp-bs-track{width:130px}.lp-dg-track,.lp-dg-track[class*=block-]{background:var(--navy-900);border-color:var(--navy-900)}.lp-dg-track .lp-dg-node-name{color:#fff}.lp-dg-track .lp-dg-pool-need{color:#c9d6f0;font-weight:600}.lp-dg-track .lp-dg-node-tc{background:#ffffff26;color:#dbe5fb}.lp-dg-track .lp-dg-pool-chevron{color:#b7c7ee}.lp-dg-track-tag{padding:1px 7px;border-radius:5px;background:#fff;color:var(--navy-800)}.lp-dg-track-tag:before{display:none}.lp-dg-track.expanded{grid-column:span 2;background:#fff;border-color:var(--navy-900)}.lp-dg-track.expanded .lp-dg-pool-head{background:var(--navy-900);border-radius:9px 9px 0 0}.lp-dg-track-body{display:grid;gap:0;max-height:min(62vh,560px);overflow:auto}.lp-dg-track-section{border-top:1px solid var(--navy-200)}.lp-dg-track-section:first-child{border-top:0}.lp-dg-track-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 12px 4px;background:var(--navy-50)}.lp-dg-track-head strong{font-size:12.5px;font-weight:800;color:var(--navy-900)}.lp-dg-track-head span{font-size:11.5px;font-weight:700;color:var(--navy-600)}.lp-dg-track-list{border-top:0;max-height:none;background:var(--navy-50);padding-top:4px}.lp-blk-track{margin-top:4px;font-size:11px;font-weight:800;color:var(--navy-700)}.lp-modal.lp-modal-xwide{width:66vw;max-width:66vw;min-width:min(760px,96vw)}.lp-bs-wrap{max-height:58vh}.lp-bs-table td.lp-bs-pair-col,.lp-bs-table th.lp-bs-pair-col{width:210px}.lp-bs-pair{display:flex;align-items:center;justify-content:center;gap:8px}.lp-bs-pair span{font-weight:700;color:var(--fe-slate-400)}.lp-bs-pair input{width:80px;text-align:center}.lp-bs-table td.lp-bs-track,.lp-bs-table th.lp-bs-track{width:170px}.lp-bs-table td.lp-bs-flag,.lp-bs-table th.lp-bs-flag{width:140px}@media (max-width:1100px){.lp-modal.lp-modal-xwide{width:94vw;max-width:94vw;min-width:0}.lp-bs-table td.lp-bs-pair-col,.lp-bs-table th.lp-bs-pair-col{width:190px}.lp-bs-pair input{width:66px}.lp-bs-table td.lp-bs-track,.lp-bs-table th.lp-bs-track{width:120px}.lp-bs-table td.lp-bs-flag,.lp-bs-table th.lp-bs-flag{width:90px}.lp-bs-table td.lp-bs-del,.lp-bs-table th.lp-bs-del{width:44px}}@media (max-width:720px){.lp-modal-backdrop{padding:8px;align-items:flex-start;overflow-y:auto}.lp-modal.lp-modal-xwide{width:100%;max-width:100%;padding:16px}.lp-bs-wrap{max-height:52vh}.lp-bs-table,.lp-bs-table tbody{display:block;width:100%}.lp-bs-table thead{display:none}.lp-bs-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border-top:1px solid var(--fe-slate-200)}.lp-bs-table tbody tr:first-child{border-top:0}.lp-bs-table tbody td{display:block;width:auto!important;padding:0;border:0;text-align:left}.lp-bs-table tbody td[data-label]:before{content:attr(data-label);display:block;margin-bottom:4px;font-size:11px;font-weight:700;color:var(--fe-slate-500)}.lp-bs-table tbody td:first-child{grid-column:1/-1}.lp-bs-pair{justify-content:flex-start}.lp-bs-pair input{width:72px}.lp-bs-table td.lp-bs-flag{display:flex;align-items:center;gap:8px}.lp-bs-table td.lp-bs-flag:before{margin:0!important;order:2}.lp-bs-table td.lp-bs-del{text-align:right;align-self:end;justify-self:end}.lp-bs-table tbody td[colspan]{grid-column:1/-1}.lp-bs-foot{flex-direction:column;align-items:stretch}}.lp-bs-table th{white-space:normal;line-height:1.25}.gs-wrap{width:min(320px,100%)}@media (max-width:640px){.topbar{height:auto;min-height:64px;padding:10px 12px;flex-wrap:wrap;gap:8px}.topbar-actions{width:100%;gap:10px}.gs-wrap{flex:1 1 auto;width:auto}.global-search,.gs-wrap{min-width:0}.topbar h1{font-size:20px}.page-content{padding:14px 12px}}@media (max-width:1100px){.admin-shell{grid-template-columns:minmax(0,1fr)}.main-shell{min-width:0}.lp-page-header-main{flex-wrap:wrap}}@media (max-width:900px){.lp-board-toolbar{flex-wrap:wrap}.lp-board-toolbar .search-field{flex:1 1 100%;min-width:0}.lp-board-toolbar .lp-select,.lp-dg-toolbar .lp-select{flex:1 1 100%}}.lp-select{max-width:100%}@media (max-width:900px){.lp-board-toolbar .lp-select,.lp-dg-toolbar .lp-select{width:100%;min-width:0}}@media (min-width:1101px){.lp-bs-table td:first-child,.lp-bs-table th:first-child{width:22%}.lp-bs-table td.lp-bs-track,.lp-bs-table th.lp-bs-track{width:38%}}.lp-dropzone{display:grid;justify-items:center;gap:4px;padding:22px 16px;border:2px dashed var(--navy-300,#9fb3dd);border-radius:14px;background:var(--navy-50,#f2f6fd);color:var(--fe-slate-500);text-align:center;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}.lp-dropzone strong{font-size:14px;font-weight:800;color:var(--navy-800,#14306b);overflow-wrap:anywhere}.lp-dropzone span{font-size:12px}.lp-dropzone:focus-visible,.lp-dropzone:hover{border-color:var(--navy-600,#2149b5);background:var(--navy-100,#e3eafa);outline:none}.lp-dropzone.dragging{border-style:solid;border-color:var(--navy-600,#2149b5);background:var(--navy-100,#e3eafa);color:var(--navy-700,#1e3a8a)}.lp-dropzone.has-file{border-color:#16a34a66;background:#f0fdf4}.lp-dropzone-ok{color:#16a34a}.lp-modal.lp-modal-wide{max-width:min(760px,96vw)}.lp-table{min-width:0;table-layout:fixed}.lp-table td,.lp-table th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lp-table th:first-child{width:17%}.lp-table th:nth-child(2){width:38%}.lp-table th:nth-child(3),.lp-table th:nth-child(4){width:9%}.lp-table th:nth-child(5){width:14%}.lp-table th:nth-child(6){width:13%}.lp-modal.lp-modal-wide{width:66vw;max-width:66vw;min-width:min(760px,96vw)}.lp-preview-wrap{max-height:40vh;overflow:auto}.lp-preview thead th{position:sticky;top:0;z-index:1;background:#eef2f7}.lp-preview td,.lp-preview th{padding:7px 10px;font-size:13px}.lp-preview th:first-child{width:4%}.lp-preview th:nth-child(2){width:11%}.lp-preview th:nth-child(3){width:25%}.lp-preview th:nth-child(4){width:5%}.lp-preview th:nth-child(5){width:7%}.lp-preview th:nth-child(6){width:9%}.lp-preview th:nth-child(7){width:7%}.lp-preview th:nth-child(8){width:14%}.lp-preview th:nth-child(9){width:11%}.lp-preview th:nth-child(10){width:7%}@media (max-width:1100px){.lp-modal.lp-modal-wide{width:94vw;max-width:94vw;min-width:0}.lp-preview-wrap .lp-preview{min-width:760px}}@media (min-width:1101px){.lp-sheet td.lp-col-block,.lp-sheet th.lp-col-block{width:18.5%}.lp-sheet td.lp-col-name,.lp-sheet th.lp-col-name{width:10.8%}.lp-sheet td.lp-col-cond,.lp-sheet th.lp-col-cond{width:19.5%}}.lp-dg-track-select{flex:0 1 300px;border-color:var(--navy-300);background-color:var(--navy-50);font-weight:600;color:var(--navy-800)}@media (max-width:900px){.lp-dg-track-select{flex:1 1 100%}}.lp-btn-publish{border-color:var(--navy-300);color:var(--navy-800);font-weight:700}.lp-btn-publish:hover:not(:disabled){background:var(--navy-100)}.lp-notice{margin:0;padding:10px 14px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;color:#166534;font-size:14px;font-weight:600}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:bottom-2:before{content:var(--tw-content);bottom:.5rem}.before\:left-\[11px\]:before{content:var(--tw-content);left:11px}.before\:top-2:before{content:var(--tw-content);top:.5rem}.before\:w-\[2px\]:before{content:var(--tw-content);width:2px}.before\:bg-slate-200:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-200:hover{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.hover\:border-blue-400:hover{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.hover\:bg-black\/5:hover{background-color:rgb(0 0 0/.05)}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-blue-500\/5:hover{--tw-shadow-color:rgb(59 130 246/0.05);--tw-shadow:var(--tw-shadow-colored)}.focus\:border-rose-500:focus{--tw-border-opacity:1;border-color:rgb(244 63 94/var(--tw-border-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=selected\]\:bg-black\/10[data-state=selected]{background-color:rgb(0 0 0/.1)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}