#app{min-height:100vh}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{--color-primary: #3B82F6;--color-primary-hover: #2563EB;--color-primary-active: #1D4ED8;--color-primary-light: #DBEAFE;--color-primary-lighter: #EFF6FF;--color-secondary: #1E40AF;--color-secondary-hover: #1E3A8A;--color-secondary-light: #DBEAFE;--color-accent: #6366F1;--color-accent-hover: #4F46E5;--color-accent-light: #E0E7FF;--color-background: #F8FAFC;--color-background-alt: #FFFFFF;--color-background-elevated: #FFFFFF;--color-background-hover: #F1F5F9;--color-text: #0F172A;--color-text-secondary: #475569;--color-text-muted: #94A3B8;--color-text-disabled: #CBD5E1;--color-border: #E2E8F0;--color-border-hover: #CBD5E1;--color-border-focus: #3B82F6;--color-success: #10B981;--color-success-bg: #D1FAE5;--color-warning: #F59E0B;--color-warning-bg: #FEF3C7;--color-error: #EF4444;--color-error-bg: #FEE2E2;--color-info: #3B82F6;--color-info-bg: #DBEAFE;--font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Monaco", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--space-0: 0;--space-px: 1px;--space-0_5: .125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--border-width: 1px;--border-width-2: 2px;--border-width-4: 4px;--border-radius-sm: .375rem;--border-radius: .5rem;--border-radius-md: .75rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--border-radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px 0 rgba(15, 23, 42, .08), 0 1px 2px -1px rgba(15, 23, 42, .08);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .08);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .08);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .1);--shadow-2xl: 0 25px 50px -12px rgba(15, 23, 42, .15);--shadow-focus: 0 0 0 3px rgba(59, 130, 246, .2);--shadow-focus-error: 0 0 0 3px rgba(239, 68, 68, .2);--shadow-focus-success: 0 0 0 3px rgba(16, 185, 129, .2);--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-modal-backdrop: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 70;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--header-height: 64px;--header-height-collapsed: 48px;--sidebar-width: 240px;--sidebar-width-collapsed: 64px;--touch-target-min: 44px;--focus-ring-width: 3px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.skip-link{position:absolute;top:-100%;left:16px;padding:8px 16px;background:var(--color-primary);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-weight:var(--font-weight-medium);z-index:var(--z-tooltip);transition:top var(--transition-fast)}.skip-link:focus{top:16px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:var(--focus-ring-width) solid var(--color-border-focus);outline-offset:2px}input.error:focus-visible,textarea.error:focus-visible{outline:var(--focus-ring-width) solid var(--color-error);outline-offset:2px}input.success:focus-visible,textarea.success:focus-visible{outline:var(--focus-ring-width) solid var(--color-success);outline-offset:2px}.sr-only-focusable:focus{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}.icon-button{padding:10px;min-width:var(--touch-target-min);min-height:var(--touch-target-min)}@media (prefers-contrast: high){:root{--color-border: #000000;--color-text: #000000;--shadow-sm: 0 0 0 1px #000000;--shadow-md: 0 0 0 2px #000000}*{border-width:2px}}img[alt]{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-text-muted);background:var(--color-background-alt);padding:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--border-radius)}a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration-thickness:2px}a:focus-visible{border-radius:var(--border-radius-sm)}a .icon{text-decoration:none}label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-medium);color:var(--color-text);cursor:pointer}label.required:after{content:" *";color:var(--color-error)}.error-message:before{content:"⚠";font-size:var(--font-size-base)}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}button[aria-label]{position:relative}button.loading{position:relative;pointer-events:none;color:transparent}button.loading:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal[role=dialog]{position:relative;z-index:var(--z-modal)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-modal-backdrop)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}th[scope]{font-weight:var(--font-weight-semibold);text-align:left;padding:var(--space-3);border-bottom:2px solid var(--color-border)}tbody tr:hover{background:var(--color-background)}tbody tr:nth-child(2n){background:var(--color-background-alt)}[role=status],[role=alert]{position:relative}.toast{position:fixed;top:var(--space-4);right:var(--space-4);min-width:300px;padding:var(--space-4);background:var(--color-background-alt);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-tooltip);animation:slideIn var(--transition-base)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.visually-ordered{display:contents}.skip-to-content{position:fixed;top:-100%;left:50%;transform:translate(-50%);padding:var(--space-3) var(--space-6);background:var(--color-primary);color:#fff;font-weight:var(--font-weight-semibold);border-radius:var(--border-radius);z-index:var(--z-tooltip);transition:top var(--transition-fast)}.skip-to-content:focus{top:var(--space-4)}@media print{.no-print,nav,.sidebar,button:not(.print-show){display:none!important}body{color:#000;background:#fff}a{color:#000;text-decoration:underline}a[href]:not([href^="#"]):after{content:" (" attr(href) ")"}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseScale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}.animate-fade-out{animation:fadeOut var(--transition-base) ease-out}.animate-fade-in-down{animation:fadeInDown var(--transition-slow) ease-out}.animate-slide-in-left{animation:slideInLeft var(--transition-base) ease-out}.animate-slide-in-up{animation:slideInUp var(--transition-base) ease-out}.animate-scale-in{animation:scaleIn var(--transition-base) ease-out}.animate-scale-out{animation:scaleOut var(--transition-base) ease-out}.animate-spin{animation:spin 1s linear infinite}.animate-spin-reverse{animation:spinReverse 1s linear infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-pulse-scale{animation:pulseScale 2s ease-in-out infinite}.animate-shake{animation:shake .5s ease-in-out}.transition-colors{transition:color var(--transition-base),background-color var(--transition-base),border-color var(--transition-base)}.transition-opacity{transition:opacity var(--transition-base)}.transition-transform{transition:transform var(--transition-base)}.transition-shadow{transition:box-shadow var(--transition-base)}.hover-lift{transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer}.hover-lift:hover{box-shadow:-3px -3px 8px #ffffffe6,3px 3px 8px #134e4a1f}.hover-lift:active{box-shadow:inset -3px -3px 8px #ffffffe6,inset 3px 3px 8px #134e4a14}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:0 0 20px #0891b24d}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.02)}.neu-card{background:var(--color-background);border-radius:var(--border-radius-lg);border:none;box-shadow:-5px -5px 15px #ffffffe6,5px 5px 15px #134e4a14;transition:all .15s cubic-bezier(.4,0,.2,1)}.neu-pressed{box-shadow:inset -3px -3px 8px #ffffffe6,inset 3px 3px 8px #134e4a14}.neu-button{background:var(--color-background);border-radius:var(--border-radius-md);border:none;box-shadow:-3px -3px 8px #ffffffe6,3px 3px 8px #134e4a14;transition:all .15s cubic-bezier(.4,0,.2,1);cursor:pointer}.neu-button:hover{box-shadow:-2px -2px 4px #ffffffe6,2px 2px 4px #134e4a1f}.neu-button:active{box-shadow:inset -2px -2px 4px #ffffffe6,inset 2px 2px 4px #134e4a14}.neu-inset{background:var(--color-background);border-radius:var(--border-radius-md);border:none;box-shadow:inset -3px -3px 8px #ffffffe6,inset 3px 3px 8px #134e4a14}.skeleton{background:linear-gradient(90deg,var(--color-background) 0%,var(--color-border-hover) 50%,var(--color-background) 100%);background-size:200% 100%;animation:skeletonLoading 1.5s ease-in-out infinite;border-radius:var(--border-radius)}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner-lg{width:40px;height:40px;border-width:3px}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:8px;height:8px;background:var(--color-primary);border-radius:50%;animation:loadingDots 1.4s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingDots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.progress-bar{height:4px;background:var(--color-background);border-radius:var(--border-radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:var(--border-radius-full);transition:width var(--transition-slow)}.progress-bar-fill.indeterminate{width:30%;animation:indeterminateProgress 2s ease-in-out infinite}@keyframes indeterminateProgress{0%{transform:translate(-100%)}to{transform:translate(400%)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.transition-colors,.transition-opacity{transition-duration:.15s!important}.skeleton{animation:none;background:var(--color-border-hover)}.spinner{animation:none;border-top-color:var(--color-primary);border-right-color:var(--color-primary)}}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-bounce{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}.stagger-in>*:nth-child(1){animation-delay:0ms}.stagger-in>*:nth-child(2){animation-delay:50ms}.stagger-in>*:nth-child(3){animation-delay:.1s}.stagger-in>*:nth-child(4){animation-delay:.15s}.stagger-in>*:nth-child(5){animation-delay:.2s}.stagger-in>*:nth-child(6){animation-delay:.25s}.stagger-in>*:nth-child(7){animation-delay:.3s}.stagger-in>*:nth-child(8){animation-delay:.35s}.stagger-in>*:nth-child(9){animation-delay:.4s}.stagger-in>*:nth-child(10){animation-delay:.45s}.page-container{padding:var(--space-6);min-height:calc(100vh - var(--header-height));background:var(--color-background);overflow-x:hidden}@media (max-width: 768px){.page-container{padding:var(--space-4)}}.card{background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card-hover{transition:all var(--transition-base);cursor:pointer}.card-hover:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary-light);transform:translateY(-2px)}.card-elevated{box-shadow:var(--shadow-md)}.card-elevated:hover{box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.card-body{flex:1}.card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.stat-card{background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;text-align:center}.stat-card.hover-lift{cursor:pointer}.stat-card.hover-lift:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);border-color:var(--color-border-hover)}.stat-icon{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--border-radius);font-size:var(--font-size-2xl);margin-bottom:var(--space-2)}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:var(--line-height-tight)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1);font-weight:var(--font-weight-medium)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--touch-target-min);padding:var(--space-3) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);border-radius:var(--border-radius-md);border:none;cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;line-height:1.5}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.3)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 1px 3px #3b82f626;border:2px solid transparent}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f640}.btn-primary:active:not(:disabled){transform:translateY(0);background:var(--color-primary-active);box-shadow:0 1px 2px #3b82f633}.btn-secondary{background:#fff;color:var(--color-primary);border:2px solid var(--color-primary);box-shadow:0 1px 2px #0f172a0d}.btn-secondary:hover:not(:disabled){background:var(--color-primary-lighter);color:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 2px 8px #3b82f626}.btn-secondary:active:not(:disabled){background:var(--color-primary-light);transform:translateY(0)}.cta-button{background:var(--color-success);color:#fff;box-shadow:0 1px 3px #10b98126;border:2px solid transparent}.cta-button:hover:not(:disabled){background:#059669;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #10b98140}.cta-button:active:not(:disabled){background:#047857;transform:translateY(0)}.cancel-button{background:#fff;color:#475569;border:2px solid #CBD5E1;box-shadow:0 1px 2px #0f172a0d}.cancel-button:hover:not(:disabled){background:var(--color-background-hover);color:var(--color-text);border-color:#94a3b8;box-shadow:0 2px 6px #0f172a14}.cancel-button:active:not(:disabled){background:#e2e8f0;transform:translateY(0)}.action-button{padding:4px 12px;font-size:13px;line-height:1.5;border-radius:4px;background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);cursor:pointer;transition:all .2s ease;white-space:nowrap}.action-button:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.action-button:active:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);transform:translateY(0)}.action-button:disabled{opacity:.5;cursor:not-allowed}.touch-target{min-width:var(--touch-target-min);min-height:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--border-radius-md)}.custom-table{width:100%;border-collapse:separate;border-spacing:0}.custom-table thead{background:var(--color-background)}.custom-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text);border-bottom:2px solid var(--color-border);white-space:nowrap}.custom-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text)}.custom-table tbody tr{transition:background var(--transition-fast)}.custom-table tbody tr:hover{background:var(--color-background-hover)}.custom-table tbody tr:last-child td{border-bottom:none}.table-link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-semibold);transition:all var(--transition-fast)}.table-link:hover{color:var(--color-primary-hover);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.table-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--border-radius-sm)}.status-tag{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}.status-tag.pending{background:var(--color-warning-bg);color:var(--color-warning)}.status-tag.in-progress{background:var(--color-info-bg);color:var(--color-info)}.status-tag.completed{background:var(--color-success-bg);color:var(--color-success)}.status-tag.error{background:var(--color-error-bg);color:var(--color-error)}.role-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.role-tag.admin{background:var(--color-error-bg);color:var(--color-error)}.role-tag.chairman{background:var(--color-warning-bg);color:var(--color-warning)}.role-tag.member{background:var(--color-info-bg);color:var(--color-info)}.role-tag.coordinator{background:var(--color-success-bg);color:var(--color-success)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--border-radius);transition:all var(--transition-base);min-height:var(--touch-target-min)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--color-background);cursor:not-allowed;opacity:.6}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--color-border-hover)}.form-textarea{resize:vertical;min-height:120px}.form-item-required label:after{content:" *";color:var(--color-error)}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.helper-text{display:block;margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-message{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1);color:var(--color-error);font-size:var(--font-size-sm)}.notification-list{list-style:none;padding:0;margin:0}.notification-list-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.notification-list-item:hover{background:var(--color-background-hover)}.notification-list-item:last-child{border-bottom:none}.notification-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary);border-radius:50%;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-title{font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--space-1)}.notification-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.todo-list{list-style:none;padding:0;margin:0}.todo-list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.todo-list-item:hover{background:var(--color-background)}.todo-checkbox{width:20px;height:20px;cursor:pointer}.todo-content{flex:1}.todo-title{font-weight:var(--font-weight-medium);color:var(--color-text)}.todo-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.todo-action{flex-shrink:0}.filter-card{background:var(--color-background-alt);border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--space-5);margin-bottom:var(--space-6)}.filter-form{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-end}.filter-form-item{flex:1;min-width:200px}.filter-actions{display:flex;gap:var(--space-2)}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mb-2{margin-bottom:var(--space-2)}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-wrap{flex-wrap:wrap}.gap-1{gap:var(--space-1)}.gap-3{gap:var(--space-3)}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.rounded{border-radius:var(--border-radius)}.rounded-lg{border-radius:var(--border-radius-md)}.rounded-full{border-radius:var(--border-radius-full)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.transition-all{transition:all var(--transition-base)}.transition-colors{transition:color var(--transition-base),background-color var(--transition-base)}@media (max-width: 768px){.filter-form{flex-direction:column}.filter-form-item{min-width:100%}.filter-actions{width:100%}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}*:focus-visible{outline:var(--focus-ring-width) solid var(--color-primary);outline-offset:2px;border-radius:var(--border-radius-sm)}.skip-link{position:absolute;top:-100%;left:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;text-decoration:none;border-radius:var(--border-radius);font-weight:var(--font-weight-medium);z-index:var(--z-tooltip);transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-4)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-base) ease-out}.empty-state{padding:var(--space-8);text-align:center}.empty-state-icon{font-size:var(--font-size-4xl);color:var(--color-text-muted);margin-bottom:var(--space-4)}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--font-size-base);color:var(--color-text-secondary)}.loading-skeleton{background:linear-gradient(90deg,var(--color-background) 0%,var(--color-border-hover) 50%,var(--color-background) 100%);background-size:200% 100%;animation:skeletonLoading 1.5s ease-in-out infinite;border-radius:var(--border-radius)}@keyframes skeletonLoading{0%{background-position:200% 0}to{background-position:-200% 0}}.chart-container{position:relative;width:100%;height:300px;min-height:300px}.chart-responsive{position:relative;width:100%;height:0;padding-bottom:56.25%}.chart-responsive>*{position:absolute;top:0;left:0;width:100%;height:100%}:root{--ant-primary-color: #3B82F6;--ant-primary-color-hover: #2563EB;--ant-primary-color-active: #1D4ED8;--ant-primary-1: #EFF6FF;--ant-primary-2: #DBEAFE;--ant-primary-3: #BFDBFE}.ant-btn-primary{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important;font-weight:500!important;box-shadow:0 1px 2px #3b82f61a!important;border-radius:6px!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.ant-btn-primary:hover:not(:disabled){background:var(--color-primary-hover)!important;border-color:var(--color-primary-hover)!important;color:#fff!important;box-shadow:0 2px 8px #3b82f633!important;transform:translateY(-1px)}.ant-btn-primary:active:not(:disabled){background:var(--color-primary-active)!important;border-color:var(--color-primary-active)!important;transform:translateY(0)}.ant-btn-primary:disabled,.ant-btn-primary.ant-btn-disabled{background:var(--color-background)!important;border-color:var(--color-border)!important;color:var(--color-text-disabled)!important;opacity:.6!important;box-shadow:none!important}.ant-btn-default{background:#fff!important;border-color:var(--color-border)!important;color:var(--color-text)!important;font-weight:500!important;border-radius:6px!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.ant-btn-default:hover:not(:disabled){background:var(--color-background-hover)!important;border-color:var(--color-primary)!important;color:var(--color-primary)!important;box-shadow:0 1px 4px #3b82f61a!important}.ant-btn-text{color:var(--color-primary)!important;font-weight:500!important}.ant-btn-text:hover{background:var(--color-primary-lighter)!important;color:var(--color-primary-hover)!important}.ant-btn-link{color:var(--color-primary)!important;font-weight:500!important}.ant-btn-link:hover{color:var(--color-primary-hover)!important}.ant-btn-dangerous{background:var(--color-error)!important;border-color:var(--color-error)!important;color:#fff!important}.ant-btn-dangerous:hover{background:#dc2626!important;border-color:#dc2626!important;box-shadow:0 4px 12px #ef444440!important}.ant-input,.ant-input-number-input,.ant-picker-input>input,.ant-select-selector{border-color:var(--color-border)!important;font-size:15px!important;color:var(--color-text)!important}.ant-input-affix-wrapper,.ant-input-number,.ant-picker,.ant-select-selector{border-radius:6px!important;border-color:var(--color-border)!important;background:#fff!important}.ant-input:hover,.ant-input-affix-wrapper:hover,.ant-input-number:hover,.ant-picker:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:var(--color-border-hover)!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper-focused,.ant-input-number-focused,.ant-picker-focused,.ant-select-focused .ant-select-selector{border-color:var(--color-primary)!important;box-shadow:0 0 0 2px #3b82f61a!important;outline:none!important}.ant-input::placeholder,.ant-input-number input::placeholder,.ant-select-selection-placeholder{color:var(--color-text-muted)!important;opacity:.6!important}.ant-input-prefix,.ant-input-suffix{color:var(--color-text-secondary)!important}.ant-input-disabled,.ant-input-number-disabled,.ant-picker-disabled,.ant-select-disabled .ant-select-selector{background:var(--color-background)!important;border-color:var(--color-border)!important;color:var(--color-text-disabled)!important;cursor:not-allowed!important}.ant-table{font-size:14px!important;color:var(--color-text)!important}.ant-table-thead>tr>th{background:#fafbfc!important;color:var(--color-text)!important;font-weight:600!important;font-size:12px!important;text-transform:uppercase!important;letter-spacing:.5px!important;border-bottom:1px solid var(--color-border)!important;padding:12px 16px!important}.ant-table-tbody>tr>td{color:var(--color-text)!important;border-bottom:1px solid #F1F3F5!important;padding:12px 16px!important}.ant-table-tbody>tr:hover>td{background:#f8f9fa!important}.ant-table-row-selected>td{background:var(--color-primary-lighter)!important}.ant-table-bordered .ant-table-thead>tr>th,.ant-table-bordered .ant-table-tbody>tr>td{border-color:#f1f3f5!important}.ant-tag{border-radius:4px!important;padding:2px 8px!important;font-size:12px!important;font-weight:500!important;border:none!important;line-height:20px!important}.ant-tag-blue{background:#eff6ff!important;color:#1e40af!important}.ant-tag-green{background:#d1fae5!important;color:#047857!important}.ant-tag-orange{background:#fef3c7!important;color:#d97706!important}.ant-tag-red{background:#fee2e2!important;color:#dc2626!important}.ant-tag-default{background:#f3f4f6!important;color:#374151!important}.ant-card{border-radius:8px!important;border:1px solid #E8EAED!important;box-shadow:0 1px 2px #0f172a0a!important;transition:all .2s ease!important}.ant-card:hover{box-shadow:0 2px 8px #0f172a14!important}.ant-card-head{border-bottom:1px solid #F1F3F5!important;font-weight:600!important;font-size:15px!important;color:var(--color-text)!important;padding:16px 20px!important}.ant-card-body{padding:20px!important;color:var(--color-text)!important}.ant-modal-content{border-radius:8px!important;box-shadow:0 8px 24px #0f172a1f!important}.ant-modal-header{border-bottom:1px solid #F1F3F5!important;padding:16px 20px!important;border-radius:8px 8px 0 0!important}.ant-modal-title{font-size:16px!important;font-weight:600!important;color:var(--color-text)!important}.ant-modal-body{padding:20px!important;color:var(--color-text)!important;font-size:14px!important}.ant-modal-footer{border-top:1px solid #F1F3F5!important;padding:12px 20px!important}.ant-pagination-item{border:1px solid var(--color-border)!important;border-radius:6px!important;font-weight:500!important;min-width:32px!important}.ant-pagination-item:hover{border-color:var(--color-primary)!important;background:var(--color-primary-lighter)!important}.ant-pagination-item-active{background:var(--color-primary)!important;border-color:var(--color-primary)!important}.ant-pagination-item-active a{color:#fff!important;font-weight:500!important}.ant-pagination-prev,.ant-pagination-next{border:1px solid var(--color-border)!important;border-radius:6px!important;min-width:32px!important}.ant-pagination-prev:hover:not(.ant-pagination-disabled),.ant-pagination-next:hover:not(.ant-pagination-disabled){border-color:var(--color-primary)!important;background:var(--color-primary-lighter)!important}.ant-pagination-disabled{opacity:.4!important}.ant-select-dropdown{border-radius:8px!important;box-shadow:0 10px 15px -3px #0f172a1a,0 4px 6px -4px #0f172a1a!important}.ant-select-item{color:var(--color-text)!important;font-size:14px!important;padding:8px 12px!important}.ant-select-item-option-selected{background:var(--color-primary-lighter)!important;color:var(--color-primary)!important;font-weight:600!important}.ant-select-item-option-active{background:var(--color-background-hover)!important}.ant-checkbox-checked .ant-checkbox-inner{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.ant-radio-checked .ant-radio-inner{border-color:var(--color-primary)!important}.ant-radio-inner:after{background-color:var(--color-primary)!important}.ant-alert{border-radius:8px!important;border-width:2px!important;font-size:14px!important}.ant-alert-success{background:var(--color-success-bg)!important;border-color:var(--color-success)!important}.ant-alert-info{background:var(--color-info-bg)!important;border-color:var(--color-primary)!important}.ant-alert-warning{background:var(--color-warning-bg)!important;border-color:#ea580c!important}.ant-alert-error{background:var(--color-error-bg)!important;border-color:var(--color-error)!important}.ant-alert-message{color:var(--color-text)!important;font-weight:600!important}.ant-menu-item-selected{background:var(--color-primary-lighter)!important;color:var(--color-primary)!important;font-weight:600!important}.ant-menu-item:hover{background:var(--color-background-hover)!important;color:var(--color-primary)!important}.ant-menu-item-active{background:var(--color-primary-lighter)!important;color:var(--color-primary)!important}.ant-tabs-tab{font-size:15px!important;font-weight:500!important;color:var(--color-text-secondary)!important}.ant-tabs-tab:hover{color:var(--color-primary)!important}.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--color-primary)!important;font-weight:600!important}.ant-tabs-ink-bar{background:var(--color-primary)!important;height:3px!important}.ant-badge-count{background:var(--color-primary)!important;color:#fff!important;font-weight:600!important;box-shadow:0 2px 4px #3b82f64d!important}.ant-badge-dot{background:var(--color-primary)!important;box-shadow:0 0 0 2px #fff!important}.ant-steps-item-finish .ant-steps-item-icon{background:var(--color-primary)!important;border-color:var(--color-primary)!important}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#fff!important}.ant-steps-item-process .ant-steps-item-icon{background:var(--color-primary)!important;border-color:var(--color-primary)!important}.ant-message-notice-content{border-radius:8px!important;box-shadow:0 4px 12px #0f172a26!important;padding:12px 16px!important;font-size:14px!important;font-weight:500!important}.ant-tooltip-inner{background:var(--color-text)!important;color:#fff!important;font-size:13px!important;padding:8px 12px!important;border-radius:6px!important;font-weight:500!important}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);margin-bottom:var(--space-4)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-4);max-width:75ch}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}#app{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-4)}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}.container-2xl{max-width:var(--container-2xl)}.grid{display:grid;gap:var(--space-6)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.m-0{margin:0}.m-4{margin:var(--space-4)}.mt-4{margin-top:var(--space-4)}.mb-4{margin-bottom:var(--space-4)}.ml-4{margin-left:var(--space-4)}.mr-4{margin-right:var(--space-4)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.p-0{padding:0}.p-4{padding:var(--space-4)}.pt-4{padding-top:var(--space-4)}.pb-4{padding-bottom:var(--space-4)}.pl-4{padding-left:var(--space-4)}.pr-4{padding-right:var(--space-4)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}@media (max-width: 768px){html{font-size:14px}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}}@media (max-width: 640px){.container{padding:0 var(--space-2)}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}
