:root{--prismy-gray-100:#f8f9fa;--prismy-gray-200:#e9ecef;--prismy-gray-300:#dee2e6;--prismy-gray-400:#ced4da;--prismy-gray-500:#adb5bd;--prismy-gray-600:#868e96;--prismy-gray-700:#495057;--prismy-gray-800:#343a40;--prismy-gray-900:#212529;--prismy-gray-1000:#16191d;--prismy-gray-1100:#0d0f12;--prismy-gray-1200:#08090a;--prismy-brand-50:#f0fdf4;--prismy-brand-100:#dcfce7;--prismy-brand-200:#bbf7d0;--prismy-brand-300:#86efac;--prismy-brand-400:#3ecf8e;--prismy-brand-500:#30a46c;--prismy-brand-600:#249163;--prismy-brand-700:#15803d;--prismy-brand-800:#166534;--prismy-brand-900:#14532d;--prismy-radius-sm:4px;--prismy-radius-default:6px;--prismy-radius-md:8px;--prismy-radius-lg:12px;--prismy-font-vietnamese:"Be Vietnam Pro","IBM Plex Sans",system-ui,sans-serif}.light,:root{color-scheme:light;--bg-primary:255 255 255;--bg-secondary:243 244 246;--bg-tertiary:229 231 235;--bg-elevated:255 255 255;--bg-overlay:0 0 0;--surface-1:255 255 255;--surface-2:243 244 246;--surface-3:229 231 235;--surface-4:209 213 219;--text-primary:5 10 20;--text-secondary:35 45 60;--text-tertiary:75 85 100;--text-muted:107 114 128;--text-inverse:255 255 255;--border-primary:185 190 200;--border-secondary:160 168 185;--border-focus:36 145 99;--primary-50:240 253 244;--primary-100:220 252 231;--primary-200:187 247 208;--primary-300:134 239 172;--primary-400:62 207 142;--primary-500:48 164 108;--primary-600:36 145 99;--primary-700:26 127 79;--primary-800:22 101 52;--primary-900:20 83 45;--success-50:240 253 244;--success-100:220 252 231;--success-500:34 197 94;--success-600:22 163 74;--success-700:21 128 61;--warning-50:255 251 235;--warning-100:254 243 199;--warning-500:245 158 11;--warning-600:217 119 6;--warning-700:180 83 9;--danger-50:254 242 242;--danger-100:254 226 226;--danger-500:239 68 68;--danger-600:220 38 38;--danger-700:185 28 28;--info-50:236 254 255;--info-100:207 250 254;--info-500:6 182 212;--info-600:8 145 178;--info-700:14 116 144;--shadow-sm:0 1px 2px 0 rgb(var(--shadow-color)/0.05);--shadow-md:0 4px 6px -1px rgb(var(--shadow-color)/0.1),0 2px 4px -2px rgb(var(--shadow-color)/0.1);--shadow-lg:0 10px 15px -3px rgb(var(--shadow-color)/0.1),0 4px 6px -4px rgb(var(--shadow-color)/0.1);--shadow-xl:0 20px 25px -5px rgb(var(--shadow-color)/0.1),0 8px 10px -6px rgb(var(--shadow-color)/0.1);--transition-duration:200ms;--transition-timing:cubic-bezier(0.4,0,0.2,1);--sidebar-bg:255 255 255;--sidebar-border:185 190 200;--sidebar-item-hover:229 231 235;--sidebar-item-active:220 252 231;--card-bg:255 255 255;--card-border:185 190 200;--card-hover:235 237 242;--input-bg:255 255 255;--input-border:160 168 185;--input-focus-ring:36 145 99;--input-placeholder:107 114 128;--table-header-bg:229 231 235;--table-row-hover:235 237 242;--table-border:185 190 200;--shadow-color:0 0 0;--shadow-sm:0 1px 2px 0 rgb(var(--shadow-color)/0.1);--shadow-md:0 4px 6px -1px rgb(var(--shadow-color)/0.15),0 2px 4px -2px rgb(var(--shadow-color)/0.12);--shadow-lg:0 10px 15px -3px rgb(var(--shadow-color)/0.15),0 4px 6px -4px rgb(var(--shadow-color)/0.12);--shadow-xl:0 20px 25px -5px rgb(var(--shadow-color)/0.15),0 8px 10px -6px rgb(var(--shadow-color)/0.12)}.dark{color-scheme:dark;--bg-primary:8 9 10;--bg-secondary:28 28 28;--bg-tertiary:42 42 42;--bg-elevated:28 28 28;--bg-overlay:0 0 0;--surface-1:8 9 10;--surface-2:28 28 28;--surface-3:42 42 42;--surface-4:64 64 64;--text-primary:250 250 250;--text-secondary:212 212 212;--text-tertiary:163 163 163;--text-muted:115 115 115;--text-inverse:10 10 10;--border-primary:42 42 42;--border-secondary:64 64 64;--border-focus:62 207 142;--primary-50:20 83 45;--primary-100:22 101 52;--primary-200:21 128 61;--primary-300:48 164 108;--primary-400:62 207 142;--primary-500:78 222 128;--primary-600:134 239 172;--primary-700:187 247 208;--primary-800:220 252 231;--primary-900:240 253 244;--success-50:21 128 61;--success-100:22 163 74;--success-500:34 197 94;--success-600:74 222 128;--success-700:134 239 172;--warning-50:120 53 15;--warning-100:146 64 14;--warning-500:245 158 11;--warning-600:251 191 36;--warning-700:253 224 71;--danger-50:127 29 29;--danger-100:153 27 27;--danger-500:239 68 68;--danger-600:248 113 113;--danger-700:252 165 165;--info-50:14 116 144;--info-100:8 145 178;--info-500:6 182 212;--info-600:34 211 238;--info-700:103 232 249;--shadow-color:0 0 0;--shadow-sm:0 1px 2px 0 rgb(var(--shadow-color)/0.3);--shadow-md:0 4px 6px -1px rgb(var(--shadow-color)/0.4),0 2px 4px -2px rgb(var(--shadow-color)/0.3);--shadow-lg:0 10px 15px -3px rgb(var(--shadow-color)/0.4),0 4px 6px -4px rgb(var(--shadow-color)/0.3);--shadow-xl:0 20px 25px -5px rgb(var(--shadow-color)/0.5),0 8px 10px -6px rgb(var(--shadow-color)/0.4);--sidebar-bg:28 28 28;--sidebar-border:42 42 42;--sidebar-item-hover:35 35 35;--sidebar-item-active:42 42 42;--card-bg:35 35 35;--card-border:42 42 42;--card-hover:42 42 42;--input-bg:28 28 28;--input-border:64 64 64;--input-focus-ring:62 207 142;--input-placeholder:115 115 115;--table-header-bg:28 28 28;--table-row-hover:42 42 42;--table-border:42 42 42}.bg-theme-primary{background-color:rgb(var(--bg-primary))}.bg-theme-secondary{background-color:rgb(var(--bg-secondary))}.bg-theme-tertiary{background-color:rgb(var(--bg-tertiary))}.bg-theme-elevated{background-color:rgb(var(--bg-elevated))}.bg-surface-1{background-color:rgb(var(--surface-1))}.bg-surface-2{background-color:rgb(var(--surface-2))}.bg-surface-3{background-color:rgb(var(--surface-3))}.bg-surface-4{background-color:rgb(var(--surface-4))}.text-theme-primary{color:rgb(var(--text-primary))}.text-theme-secondary{color:rgb(var(--text-secondary))}.text-theme-tertiary{color:rgb(var(--text-tertiary))}.text-theme-muted{color:rgb(var(--text-muted))}.border-theme-primary{border-color:rgb(var(--border-primary))}.border-theme-secondary{border-color:rgb(var(--border-secondary))}.card-theme{background-color:rgb(var(--card-bg));border-color:rgb(var(--card-border))}.card-theme:hover{background-color:rgb(var(--card-hover))}.input-theme{background-color:rgb(var(--input-bg));border-color:rgb(var(--input-border))}.input-theme:focus{--tw-ring-color:rgb(var(--input-focus-ring))}.input-theme::-moz-placeholder{color:rgb(var(--input-placeholder))}.input-theme::placeholder{color:rgb(var(--input-placeholder))}.sidebar-theme{background-color:rgb(var(--sidebar-bg));border-color:rgb(var(--sidebar-border))}.sidebar-item-theme:hover{background-color:rgb(var(--sidebar-item-hover))}.sidebar-item-theme.active{background-color:rgb(var(--sidebar-item-active))}.table-theme th{background-color:rgb(var(--table-header-bg))}.table-theme tr:hover{background-color:rgb(var(--table-row-hover))}.table-theme td,.table-theme th{border-color:rgb(var(--table-border))}.theme-transition,.theme-transition *{transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow;transition-duration:var(--transition-duration);transition-timing-function:var(--transition-timing)}.no-transition,.no-transition *{transition:none!important}.skeleton-theme{background:linear-gradient(90deg,rgb(var(--surface-2)) 25%,rgb(var(--surface-3)) 50%,rgb(var(--surface-2)) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.theme-toggle-skeleton{background-color:rgb(var(--surface-3));border-radius:9999px}.theme-toggle-skeleton.sm{width:2rem;height:2rem}.theme-toggle-skeleton.md{width:2.5rem;height:2.5rem}.theme-toggle-skeleton.lg{width:3rem;height:3rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-left{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes fade-in-right{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes scale-in-bounce{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulse-breaking{0%,to{opacity:1}50%{opacity:.6}}@keyframes slide-in-top{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}@keyframes bounce-subtle{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(-5px);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes spin-slow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes wiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes progress-stripe{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glow{0%,to{box-shadow:0 0 5px currentColor,0 0 10px currentColor}50%{box-shadow:0 0 20px currentColor,0 0 30px currentColor}}.animate-fade-in{animation:fade-in .2s ease-out forwards}.animate-fade-out{animation:fade-out .2s ease-out forwards}.animate-fade-in-up{animation:fade-in-up .3s ease-out forwards}.animate-fade-in-down{animation:fade-in-down .3s ease-out forwards}.animate-fade-in-left{animation:fade-in-left .3s ease-out forwards}.animate-fade-in-right{animation:fade-in-right .3s ease-out forwards}.animate-scale-in{animation:scale-in .2s ease-out forwards}.animate-scale-out{animation:scale-out .2s ease-out forwards}.animate-scale-in-bounce{animation:scale-in-bounce .5s ease-out forwards}.animate-slide-in-top{animation:slide-in-top .3s ease-out forwards}.animate-slide-in-bottom{animation:slide-in-bottom .3s ease-out forwards}.animate-slide-in-left{animation:slide-in-left .3s ease-out forwards}.animate-slide-in-right{animation:slide-in-right .3s ease-out forwards}.animate-ripple{animation:ripple .6s linear}.animate-pulse-soft{animation:pulse-soft 2s ease-in-out infinite}.animate-pulse-scale{animation:pulse-scale 2s ease-in-out infinite}.animate-shake{animation:shake .5s ease-in-out}.animate-bounce-subtle{animation:bounce-subtle 1s infinite}.animate-spin-slow{animation:spin-slow 3s linear infinite}.animate-wiggle{animation:wiggle 1s ease-in-out infinite}.animate-progress-stripe{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem;animation:progress-stripe 1s linear infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.transition-base{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:.2s}.transition-fast{transition-duration:.15s}.transition-slow{transition-duration:.3s}.transition-slower{transition-duration:.5s}.ease-smooth{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-bounce{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}.ease-spring{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}.ease-snappy{transition-timing-function:cubic-bezier(.2,0,0,1)}.hover-scale{transition:transform .2s ease-out}.hover-scale:hover{transform:scale(1.02)}.hover-scale:active{transform:scale(.98)}.hover-lift{transition:transform .2s ease-out,box-shadow .2s ease-out}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 10px 20px -5px rgba(0,0,0,.1)}.hover-glow{transition:box-shadow .2s ease-out}.hover-glow:hover{box-shadow:0 0 20px rgba(59,130,246,.3)}.hover-bright{transition:filter .2s ease-out}.hover-bright:hover{filter:brightness(1.1)}.btn-press{transition:transform .1s ease-out,box-shadow .1s ease-out}.btn-press:active{transform:scale(.97);box-shadow:inset 0 2px 4px rgba(0,0,0,.1)}.btn-ripple{position:relative;overflow:hidden}.input-focus-ring{transition:border-color .2s ease-out,box-shadow .2s ease-out}.input-focus-ring:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.2)}.label-float{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);transition:transform .2s ease-out,font-size .2s ease-out,color .2s ease-out;pointer-events:none}.label-float.active,input:focus+.label-float{transform:translateY(-140%);font-size:.75rem}.card-hover{transition:transform .2s ease-out,box-shadow .2s ease-out}.card-hover:hover{transform:translateY(-4px);box-shadow:0 12px 20px -10px rgba(0,0,0,.15)}.dark .card-hover:hover{box-shadow:0 12px 20px -10px rgba(0,0,0,.4)}.modal-backdrop-enter{animation:fade-in .2s ease-out}.modal-backdrop-exit{animation:fade-out .2s ease-out}.modal-content-enter{animation:scale-in .2s ease-out}.modal-content-exit{animation:scale-out .2s ease-out}.dropdown-enter{animation:fade-in-down .15s ease-out}.dropdown-exit{animation:fade-out .1s ease-out}.toast-enter{animation:slide-in-right .3s ease-out}.toast-exit{animation:fade-in-right .2s ease-out reverse}.sidebar-enter{animation:slide-in-left .3s ease-out}.sidebar-exit{animation:slide-in-left .2s ease-out reverse}.table-row-enter{animation:fade-in-up .3s ease-out}.table-row-hover{transition:background-color .15s ease-out}.skeleton{background:linear-gradient(90deg,rgba(0,0,0,.06) 25%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.06) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.dark .skeleton{background:linear-gradient(90deg,hsla(0,0%,100%,.06) 25%,hsla(0,0%,100%,.1) 50%,hsla(0,0%,100%,.06) 75%);background-size:200% 100%}.delay-75{animation-delay:75ms}.delay-100{animation-delay:.1s}.delay-150{animation-delay:.15s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.delay-1000{animation-delay:1s}.fill-forwards{animation-fill-mode:forwards}.fill-backwards{animation-fill-mode:backwards}.fill-both{animation-fill-mode:both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}