@charset "UTF-8";:root{--token-color-primary: #ffd700;--token-color-primary-dark: #e6c200;--token-color-primary-light: #ffed4e;--token-color-onPrimary: #1a1a1a;--token-color-secondary: #0066cc;--token-color-secondary-dark: #0052a3;--token-color-secondary-light: #3385e0;--token-color-onSecondary: #ffffff;--token-color-accent: #ff5a5f;--token-color-success: #10b981;--token-color-danger: #ef4444;--token-color-warning: #f59e0b;--token-color-info: #0ea5e9;--token-color-bg: #ffffff;--token-color-bg-secondary: #f9fafb;--token-color-surface: #ffffff;--token-color-surface-hover: #f3f4f6;--token-color-onBg: #1f2937;--token-color-onSurface: #111827;--token-color-border: #e5e7eb;--token-color-border-focus: var(--token-color-primary);--token-color-divider: #f3f4f6;--token-color-text-primary: #1f2937;--token-color-text-secondary: #6b7280;--token-color-text-tertiary: #9ca3af;--token-color-text-inverse: #ffffff;--token-space-2xs: 2px;--token-space-xs: 4px;--token-space-sm: 8px;--token-space-md: 12px;--token-space-lg: 16px;--token-space-xl: 24px;--token-space-2xl: 32px;--token-space-3xl: 48px;--token-space-4xl: 64px;--token-radius-xs: 4px;--token-radius-sm: 6px;--token-radius-md: 8px;--token-radius-lg: 12px;--token-radius-xl: 16px;--token-radius-2xl: 24px;--token-radius-full: 9999px;--token-shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--token-shadow-sm: 0 2px 4px rgba(0, 0, 0, .06);--token-shadow-md: 0 4px 6px rgba(0, 0, 0, .08);--token-shadow-lg: 0 8px 16px rgba(0, 0, 0, .1);--token-shadow-xl: 0 20px 25px rgba(0, 0, 0, .12);--token-shadow-2xl: 0 25px 50px rgba(0, 0, 0, .15);--token-shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--token-typography-fontFamily: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--token-typography-fontFamily-mono: "JetBrains Mono", "Monaco", "Consolas", monospace;--token-typography-baseSize: 20px;--token-typography-lineHeight: 1.5;--token-typography-lineHeight-tight: 1.25;--token-typography-lineHeight-relaxed: 1.75;--token-font-weight-light: 300;--token-font-weight-normal: 400;--token-font-weight-medium: 500;--token-font-weight-semibold: 600;--token-font-weight-bold: 700;--token-scale-2xs: .625rem;--token-scale-xs: .75rem;--token-scale-sm: .875rem;--token-scale-base: 1rem;--token-scale-md: 1.125rem;--token-scale-lg: 1.25rem;--token-scale-xl: 1.5rem;--token-scale-2xl: 1.875rem;--token-scale-3xl: 2.25rem;--token-scale-4xl: 3rem;--token-scale-5xl: 3.75rem;--token-transition-fast: .15s ease;--token-transition-base: .25s ease;--token-transition-slow: .35s ease;--token-transition-slower: .5s ease;--token-z-dropdown: 1000;--token-z-sticky: 1020;--token-z-fixed: 1030;--token-z-modal-backdrop: 1040;--token-z-modal: 1050;--token-z-popover: 1060;--token-z-tooltip: 1070;--token-breakpoint-xs: 375px;--token-breakpoint-sm: 640px;--token-breakpoint-md: 768px;--token-breakpoint-lg: 1024px;--token-breakpoint-xl: 1280px;--token-breakpoint-2xl: 1536px}:root[data-theme=dark]{--token-color-primary: #ffd700;--token-color-primary-dark: #e6c200;--token-color-primary-light: #ffed4e;--token-color-onPrimary: #1a1a1a;--token-color-secondary: #4d94ff;--token-color-secondary-dark: #3385e0;--token-color-secondary-light: #66a3ff;--token-color-onSecondary: #ffffff;--token-color-bg: #0f1419;--token-color-bg-secondary: #1a1f2e;--token-color-surface: #1f2937;--token-color-surface-hover: #374151;--token-color-onBg: #f9fafb;--token-color-onSurface: #f3f4f6;--token-color-border: #374151;--token-color-border-focus: var(--token-color-primary);--token-color-divider: #2d3748;--token-color-text-primary: #f9fafb;--token-color-text-secondary: #d1d5db;--token-color-text-tertiary: #9ca3af;--token-color-text-inverse: #1f2937;--token-shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--token-shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--token-shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--token-shadow-lg: 0 8px 16px rgba(0, 0, 0, .5);--token-shadow-xl: 0 20px 25px rgba(0, 0, 0, .6)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:var(--token-typography-baseSize);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--token-typography-fontFamily);line-height:var(--token-typography-lineHeight);color:var(--token-color-text-primary);background-color:var(--token-color-bg);transition:background-color var(--token-transition-base),color var(--token-transition-base)}img{max-width:100%;height:auto;display:block}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}h1,h2,h3,h4,h5,h6{font-weight:var(--token-font-weight-semibold);line-height:var(--token-typography-lineHeight-tight);color:var(--token-color-text-primary);margin-bottom:var(--token-space-md)}h1{font-size:var(--token-scale-4xl);font-weight:var(--token-font-weight-bold);letter-spacing:-.025em}h2{font-size:var(--token-scale-3xl);letter-spacing:-.02em}h3{font-size:var(--token-scale-2xl);letter-spacing:-.015em}h4{font-size:var(--token-scale-xl)}h5{font-size:var(--token-scale-lg)}h6{font-size:var(--token-scale-md)}p{margin-bottom:var(--token-space-lg);color:var(--token-color-text-secondary);line-height:var(--token-typography-lineHeight-relaxed)}a{color:var(--token-color-secondary);text-decoration:none;transition:color var(--token-transition-fast)}a:hover{color:var(--token-color-secondary-dark);text-decoration:underline}.container{width:100%;margin:0 auto;padding:0 var(--token-space-xl)}.section{padding:var(--token-space-4xl) 0}.section-title{font-size:var(--token-scale-2xl);font-weight:var(--token-font-weight-bold);margin-bottom:var(--token-space-2xl);color:var(--token-color-text-primary)}.navbar{background:var(--token-color-surface);border-bottom:1px solid var(--token-color-border);position:sticky;top:0;z-index:var(--token-z-sticky);box-shadow:var(--token-shadow-sm)}.navbar-container{max-width:1280px;margin:0 auto;padding:0 var(--token-space-xl);height:64px;display:flex;align-items:center;justify-content:space-between}.navbar-brand{display:flex;align-items:center;gap:var(--token-space-md)}.logo{display:flex;align-items:center;gap:var(--token-space-md);font-weight:var(--token-font-weight-bold);font-size:var(--token-scale-lg);color:var(--token-color-text-primary)}.logo-icon{width:32px;height:32px;position:relative;display:flex;align-items:center;justify-content:center}.logo-stripe{position:absolute;width:24px;height:3px;border-radius:var(--token-radius-full)}.logo-stripe--yellow{background:gold;transform:rotate(-15deg) translateY(-6px)}.logo-stripe--red{background:#ff5a5f;transform:rotate(0)}.logo-stripe--blue{background:#06c;transform:rotate(15deg) translateY(6px)}.navbar-menu{display:flex;gap:var(--token-space-2xl)}.nav-link{color:var(--token-color-text-secondary);font-weight:var(--token-font-weight-medium);font-size:var(--token-scale-sm);transition:color var(--token-transition-fast)}.nav-link:hover{color:var(--token-color-text-primary);text-decoration:none}.nav-link.active{color:var(--token-color-primary-dark);position:relative}.nav-link.active:after{content:"";position:absolute;bottom:-21px;left:0;right:0;height:3px;background:var(--token-color-primary);border-radius:var(--token-radius-full)}.navbar-actions{display:flex;align-items:center;gap:var(--token-space-xl)}.user-menu{display:flex;align-items:center;gap:var(--token-space-md);padding:var(--token-space-sm) var(--token-space-md);border-radius:var(--token-radius-full);cursor:pointer;transition:background var(--token-transition-fast)}.user-menu:hover{background:var(--token-color-surface-hover)}.avatar{width:32px;height:32px;border-radius:var(--token-radius-full);object-fit:cover}.user-name{font-size:var(--token-scale-sm);font-weight:var(--token-font-weight-medium);color:var(--token-color-text-primary)}.notification-btn{position:relative}.notification-badge{position:absolute;top:-4px;right:-4px;background:var(--token-color-accent);color:#fff;font-size:var(--token-scale-2xs);font-weight:var(--token-font-weight-bold);padding:2px 6px;border-radius:var(--token-radius-full);min-width:18px;text-align:center}.hero-section{padding:var(--token-space-4xl) 0}.hero-content{text-align:center;margin-bottom:var(--token-space-3xl)}.hero-title{font-size:var(--token-scale-5xl);font-weight:var(--token-font-weight-bold);margin-bottom:var(--token-space-xl);letter-spacing:-.03em;line-height:1.1}.text-gradient{background:linear-gradient(135deg,var(--token-color-primary),var(--token-color-secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-subtitle{font-size:var(--token-scale-lg);color:var(--token-color-text-secondary);max-width:600px;margin:0 auto var(--token-space-2xl)}.hero-actions{display:flex;gap:var(--token-space-lg);justify-content:center}.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--token-space-xl)}.stat-card{background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);padding:var(--token-space-xl);display:flex;align-items:center;gap:var(--token-space-lg);position:relative;transition:all var(--token-transition-base)}.stat-card:hover{box-shadow:var(--token-shadow-md);transform:translateY(-2px)}.stat-icon{width:48px;height:48px;border-radius:var(--token-radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon--blue{background:#065fff1a;color:#06c}.stat-icon--yellow{background:#ffd7001a;color:#e6c200}.stat-icon--green{background:#10b9811a;color:#10b981}.stat-content{flex:1}.stat-value{font-size:var(--token-scale-xl);font-weight:var(--token-font-weight-bold);color:var(--token-color-text-primary);margin-bottom:var(--token-space-xs)}.stat-label{font-size:var(--token-scale-sm);color:var(--token-color-text-tertiary)}.stat-trend{position:absolute;top:var(--token-space-lg);right:var(--token-space-lg);font-size:var(--token-scale-xs);font-weight:var(--token-font-weight-semibold);padding:var(--token-space-xs) var(--token-space-sm);border-radius:var(--token-radius-full)}.stat-trend--up{color:var(--token-color-success);background:#10b9811a}.stat-trend--down{color:var(--token-color-danger);background:#ef44441a}.stat-trend--neutral{color:var(--token-color-text-tertiary);background:var(--token-color-surface-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--token-space-sm);padding:var(--token-space-md) var(--token-space-xl);border:none;border-radius:var(--token-radius-md);font-size:var(--token-scale-sm);font-weight:var(--token-font-weight-medium);line-height:1;text-decoration:none;cursor:pointer;transition:all var(--token-transition-fast);position:relative;overflow:hidden}.btn:not(:disabled):active{transform:scale(.98)}.btn-primary{background:var(--token-color-primary);color:var(--token-color-onPrimary);box-shadow:0 1px 2px #0b5fff33;font-weight:var(--token-font-weight-semibold)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--token-color-primary) 85%,black 15%);box-shadow:0 4px 8px #0b5fff66;transform:translateY(-1px)}.btn-primary:focus-visible{outline:2px solid var(--token-color-primary);outline-offset:2px}.btn-secondary{background:var(--token-color-secondary);color:var(--token-color-onSecondary)}.btn-secondary:hover:not(:disabled){background:var(--token-color-secondary-dark);box-shadow:var(--token-shadow-md)}.btn-outline{background:transparent;color:var(--token-color-text-primary);border:1px solid var(--token-color-border)}.btn-outline:hover:not(:disabled){background:var(--token-color-surface-hover);border-color:var(--token-color-text-tertiary)}.btn-ghost{background:transparent;color:var(--token-color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--token-color-surface-hover);color:var(--token-color-text-primary)}.btn-danger{background:var(--token-color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:var(--token-shadow-md)}.btn-success{background:var(--token-color-success);color:#fff}.btn-success:hover:not(:disabled){background:#059669;box-shadow:var(--token-shadow-md)}.btn-large{padding:var(--token-space-lg) var(--token-space-2xl);font-size:var(--token-scale-base)}.btn-loading .spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--token-radius-full);animation:spin .6s linear infinite}.btn-icon{padding:var(--token-space-sm);background:transparent;border:none;border-radius:var(--token-radius-md);color:var(--token-color-text-secondary);cursor:pointer;transition:all var(--token-transition-fast);display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--token-color-surface-hover);color:var(--token-color-text-primary)}.form-group{margin-bottom:var(--token-space-xl)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--token-space-xl)}.form-row{display:flex;gap:var(--token-space-xl);align-items:center;margin-bottom:var(--token-space-xl)}.form-label{display:block;font-size:var(--token-scale-sm);font-weight:var(--token-font-weight-medium);color:var(--token-color-text-primary);margin-bottom:var(--token-space-sm)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--token-space-md) var(--token-space-lg);background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-md);font-size:var(--token-scale-base);color:var(--token-color-text-primary);transition:all var(--token-transition-fast)}.form-input::placeholder,.form-textarea::placeholder,.form-select::placeholder{color:var(--token-color-text-tertiary)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--token-color-border-focus);box-shadow:0 0 0 3px #ffd7001a}.form-input:hover:not(:focus),.form-textarea:hover:not(:focus),.form-select:hover:not(:focus){border-color:var(--token-color-text-tertiary)}.form-input.error,.error.form-textarea,.error.form-select{border-color:var(--token-color-danger);background:#ef44440d}.form-input.error:focus,.error.form-textarea:focus,.error.form-select:focus{border-color:var(--token-color-danger);box-shadow:0 0 0 3px #ef44441a}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--token-space-lg) center;padding-right:var(--token-space-3xl)}.form-textarea{resize:vertical;min-height:100px;font-family:inherit;line-height:var(--token-typography-lineHeight)}.form-textarea.error{border-color:var(--token-color-danger);background:#ef44440d}.form-textarea.error:focus{border-color:var(--token-color-danger);box-shadow:0 0 0 3px #ef44441a}.form-helper{display:block;font-size:var(--token-scale-xs);color:var(--token-color-text-tertiary);margin-top:var(--token-space-xs)}.form-error{display:block;font-size:var(--token-scale-xs);color:var(--token-color-danger);font-weight:var(--token-font-weight-medium);margin-top:var(--token-space-xs)}.input-group{display:flex;align-items:center;position:relative}.input-group .input-addon{position:absolute;left:var(--token-space-lg);color:var(--token-color-text-tertiary);font-weight:var(--token-font-weight-medium)}.input-group .form-input,.input-group .form-select,.input-group .form-textarea{padding-left:var(--token-space-2xl)}.input-group-suffix{display:flex;align-items:stretch;position:relative;width:100%}.input-group-suffix .form-input,.input-group-suffix .form-select,.input-group-suffix .form-textarea{flex:1 1 auto;min-width:0;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right:none!important;padding-left:var(--token-space-md);padding-right:var(--token-space-md)}.input-group-suffix .input-addon{position:static;display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0 var(--token-space-lg);background:var(--token-color-bg);border:1px solid var(--token-color-border);border-left:none;border-top-right-radius:var(--token-radius-md);border-bottom-right-radius:var(--token-radius-md);font-size:var(--token-scale-lg);font-weight:var(--token-font-weight-semibold);color:var(--token-color-text-primary);min-width:48px}.checkbox-group,.radio-group{display:inline-flex;align-items:center;gap:var(--token-space-sm);cursor:pointer}.form-checkbox,.form-radio{width:20px;height:20px;accent-color:var(--token-color-primary);cursor:pointer}.checkbox-label,.radio-label{font-size:var(--token-scale-sm);color:var(--token-color-text-primary)}.switch-group{display:inline-flex;align-items:center;gap:var(--token-space-md);cursor:pointer}.form-switch{position:relative;width:44px;height:24px;appearance:none;background:var(--token-color-border);border-radius:var(--token-radius-full);cursor:pointer;transition:background var(--token-transition-fast)}.form-switch:before{content:"";position:absolute;width:20px;height:20px;border-radius:var(--token-radius-full);background:#fff;top:2px;left:2px;transition:transform var(--token-transition-fast);box-shadow:var(--token-shadow-sm)}.form-switch:checked{background:var(--token-color-primary)}.form-switch:checked:before{transform:translate(20px)}.switch-label{font-size:var(--token-scale-sm);color:var(--token-color-text-primary)}.expense-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--token-space-xl)}.expense-card{background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);padding:var(--token-space-xl);transition:all var(--token-transition-base)}.expense-card:hover{box-shadow:var(--token-shadow-lg);transform:translateY(-4px);border-color:var(--token-color-primary)}.expense-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--token-space-md)}.expense-category{width:40px;height:40px;border-radius:var(--token-radius-md);display:flex;align-items:center;justify-content:center}.expense-category[data-category=transport]{background:#065fff1a;color:#06c}.expense-category[data-category=food]{background:#ffd7001a;color:#e6c200}.expense-category[data-category=hotel]{background:#ff5a5f1a;color:#ff5a5f}.expense-status{padding:var(--token-space-xs) var(--token-space-md);border-radius:var(--token-radius-full);font-size:var(--token-scale-xs);font-weight:var(--token-font-weight-semibold)}.expense-status[data-status=pending]{background:#f59e0b1a;color:var(--token-color-warning)}.expense-status[data-status=approved]{background:#10b9811a;color:var(--token-color-success)}.expense-status[data-status=rejected]{background:#ef44441a;color:var(--token-color-danger)}.expense-title{font-size:var(--token-scale-base);font-weight:var(--token-font-weight-semibold);color:var(--token-color-text-primary);margin-bottom:var(--token-space-xs)}.expense-merchant{font-size:var(--token-scale-sm);color:var(--token-color-text-tertiary);margin-bottom:var(--token-space-lg)}.expense-details{display:flex;justify-content:space-between;align-items:center;padding-top:var(--token-space-md);border-top:1px solid var(--token-color-border);margin-bottom:var(--token-space-md)}.expense-amount{font-size:var(--token-scale-lg);font-weight:var(--token-font-weight-bold);color:var(--token-color-text-primary)}.expense-date{font-size:var(--token-scale-xs);color:var(--token-color-text-tertiary)}.expense-actions{display:flex;gap:var(--token-space-sm)}.alert{display:flex;gap:var(--token-space-md);padding:var(--token-space-lg);border-radius:var(--token-radius-md);margin-bottom:var(--token-space-lg);border:1px solid}.alert div{flex:1}.alert strong{display:block;font-size:var(--token-scale-sm);font-weight:var(--token-font-weight-semibold);margin-bottom:var(--token-space-xs)}.alert p{font-size:var(--token-scale-sm);margin:0}.alert-info{background:#0ea5e90d;border-color:#0ea5e933;color:var(--token-color-info)}.alert-info strong{color:var(--token-color-info)}.alert-info p{color:var(--token-color-text-secondary)}.alert-success{background:#10b9810d;border-color:#10b98133;color:var(--token-color-success)}.alert-success strong{color:var(--token-color-success)}.alert-success p{color:var(--token-color-text-secondary)}.alert-warning{background:#f59e0b0d;border-color:#f59e0b33;color:var(--token-color-warning)}.alert-warning strong{color:var(--token-color-warning)}.alert-warning p{color:var(--token-color-text-secondary)}.alert-danger{background:#ef44440d;border-color:#ef444433;color:var(--token-color-danger)}.alert-danger strong{color:var(--token-color-danger)}.alert-danger p{color:var(--token-color-text-secondary)}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--token-z-modal-backdrop);animation:fadeIn var(--token-transition-fast)}.modal{background:var(--token-color-surface);border-radius:var(--token-radius-xl);box-shadow:var(--token-shadow-2xl);max-width:500px;width:90%;max-height:90vh;overflow:hidden;z-index:var(--token-z-modal);animation:slideUp var(--token-transition-base)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--token-space-xl);border-bottom:1px solid var(--token-color-border)}.modal-title{font-size:var(--token-scale-lg);font-weight:var(--token-font-weight-semibold);margin:0}.modal-body{padding:var(--token-space-xl);overflow-y:auto;max-height:60vh}.modal-footer{display:flex;justify-content:flex-end;gap:var(--token-space-md);padding:var(--token-space-xl);border-top:1px solid var(--token-color-border)}.upload-zone{border:2px dashed var(--token-color-border);border-radius:var(--token-radius-lg);padding:var(--token-space-3xl);text-align:center;transition:all var(--token-transition-fast);cursor:pointer}.upload-zone:hover{border-color:var(--token-color-primary);background:var(--token-color-surface-hover)}.upload-zone svg{color:var(--token-color-text-tertiary);margin-bottom:var(--token-space-lg)}.upload-zone p{color:var(--token-color-text-secondary);margin-bottom:var(--token-space-lg)}.table-container{background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--token-color-bg-secondary);border-bottom:1px solid var(--token-color-border)}.data-table th{text-align:left;padding:var(--token-space-md) var(--token-space-lg);font-size:var(--token-scale-xs);font-weight:var(--token-font-weight-semibold);color:var(--token-color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.data-table td{padding:var(--token-space-lg);font-size:var(--token-scale-sm);color:var(--token-color-text-primary)}.data-table td.text-right{text-align:right}.table-text{display:flex;flex-direction:column;gap:var(--token-space-xs)}.table-title{font-weight:var(--token-font-weight-medium);color:var(--token-color-text-primary)}.table-subtitle{font-size:var(--token-scale-xs);color:var(--token-color-text-tertiary)}.table-actions{display:flex;justify-content:flex-end}.badge[data-status=pending]{background:#f59e0b26;color:#b45309;border:1px solid rgba(245,158,11,.3)}.badge[data-status=approved]{background:#10b98126;color:#047857;border:1px solid rgba(16,185,129,.3)}.badge[data-status=rejected]{background:#ef444426;color:#b91c1c;border:1px solid rgba(239,68,68,.3)}.badge-category{background:var(--token-color-bg-secondary);color:var(--token-color-text-secondary);border:1px solid var(--token-color-border)}.component-group{margin-bottom:var(--token-space-4xl)}.component-group h3{font-size:var(--token-scale-lg);font-weight:var(--token-font-weight-semibold);margin-bottom:var(--token-space-xl);padding-bottom:var(--token-space-md);border-bottom:2px solid var(--token-color-border)}.component-preview{background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);padding:var(--token-space-2xl)}.component-preview>*+*{margin-top:var(--token-space-xl)}.button-group{display:flex;flex-wrap:wrap;gap:var(--token-space-md);align-items:center}.theme-controls{display:flex;gap:var(--token-space-2xl);align-items:center}.color-swatches{display:flex;gap:var(--token-space-md)}.color-swatch{width:40px;height:40px;border-radius:var(--token-radius-full);background:var(--swatch-color);border:3px solid transparent;cursor:pointer;transition:all var(--token-transition-fast);box-shadow:var(--token-shadow-sm)}.color-swatch:hover{transform:scale(1.1);box-shadow:var(--token-shadow-md)}.color-swatch:active{transform:scale(.95)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.navbar-menu{display:none}.hero-title{font-size:var(--token-scale-3xl)}.hero-actions{flex-direction:column;align-items:stretch}.hero-stats,.expense-grid,.form-grid{grid-template-columns:1fr}.table-container{overflow-x:auto}.data-table{min-width:600px}}@media print{.navbar,.btn,.modal-overlay,.theme-controls{display:none!important}body{font-size:12pt;color:#000;background:#fff}.expense-card{break-inside:avoid}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--token-color-border: #000;--token-shadow-sm: 0 0 0 1px #000;--token-shadow-md: 0 0 0 2px #000}.btn:focus,.form-input:focus,.form-select:focus,.form-textarea:focus{outline:3px solid currentColor;outline-offset:2px}}:focus-visible{outline:2px solid var(--token-color-primary);outline-offset:2px}::selection{background:var(--token-color-primary);color:var(--token-color-onPrimary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--token-color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--token-color-border);border-radius:var(--token-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--token-color-text-tertiary)}.container{max-width:1280px;margin:0 auto;padding:var(--token-space-2xl) var(--token-space-xl)}.filters-section{margin-bottom:var(--token-space-xl)}.filters-section .filters-card{background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);padding:var(--token-space-lg);margin-bottom:0}.filters-section .filters-row{display:flex;gap:var(--token-space-md);align-items:flex-end;flex-wrap:wrap}.filters-section .filter-group{flex:1;min-width:200px}.filters-section .search-group{flex:2}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--token-space-md)}.btn{display:inline-flex;align-items:center;gap:var(--token-space-sm);padding:var(--token-space-md) var(--token-space-lg);border-radius:var(--token-radius-md);font-weight:var(--token-font-weight-semibold);font-size:var(--token-scale-sm);transition:all var(--token-transition-fast);cursor:pointer;border:none;line-height:1.5;white-space:nowrap}.btn svg{flex-shrink:0;stroke-width:2}.btn.btn-primary{background:var(--token-color-primary);color:var(--token-color-onPrimary);box-shadow:0 1px 3px #ffd7004d}.btn.btn-primary:hover:not(:disabled){background:var(--token-color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #ffd70066}.btn.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 3px #ffd7004d}.btn.btn-secondary{background:var(--token-color-secondary);color:var(--token-color-onSecondary)}.btn.btn-secondary:hover:not(:disabled){background:var(--token-color-secondary-dark);transform:translateY(-1px);box-shadow:var(--token-shadow-md)}.btn.btn-success{background:var(--token-color-success);color:#fff}.btn.btn-success:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:var(--token-shadow-md)}.btn.btn-danger{background:var(--token-color-danger);color:#fff}.btn.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:var(--token-shadow-md)}.btn.btn-outline{background:transparent;border:1px solid var(--token-color-border);color:var(--token-color-text-primary)}.btn.btn-outline:hover:not(:disabled){background:var(--token-color-surface-hover);border-color:var(--token-color-primary)}.btn.btn-ghost{background:transparent;border:none;color:var(--token-color-text-secondary)}.btn.btn-ghost:hover:not(:disabled){background:var(--token-color-surface-hover);color:var(--token-color-text-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--token-color-primary);outline-offset:2px}@media (max-width: 640px){.btn.btn-icon-only-mobile{padding:var(--token-space-sm);border-radius:var(--token-radius-full)}.btn.btn-icon-only-mobile span+span{display:none}.btn.btn-icon-only-mobile svg{margin:0}}.table-section{margin-top:var(--token-space-lg)}.table-section table{margin-top:var(--token-space-md)}.section{margin-bottom:var(--token-space-xl)}.form-input,.form-select{width:100%;padding:var(--token-space-sm) var(--token-space-md);border:1px solid var(--token-color-border);border-radius:var(--token-radius-md);background:var(--token-color-surface);color:var(--token-color-text-primary);font-size:var(--token-scale-base);transition:all var(--token-transition-fast)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--token-color-primary);box-shadow:0 0 0 3px #ffc1071a}.form-input::placeholder,.form-select::placeholder{color:var(--token-color-text-tertiary)}.form-label{display:block;margin-bottom:var(--token-space-xs);font-size:var(--token-scale-sm);font-weight:var(--token-font-weight-medium);color:var(--token-color-text-secondary)}.form-helper{display:block;margin-top:var(--token-space-xs);font-size:var(--token-scale-sm);color:var(--token-color-text-tertiary)}.data-table{width:100%;border-collapse:collapse;border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);overflow:hidden;background:var(--token-color-surface)}.data-table thead{background:var(--token-color-surface-hover)}.data-table thead th{padding:var(--token-space-md);text-align:left;font-weight:var(--token-font-weight-semibold);font-size:var(--token-scale-sm);color:var(--token-color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--token-color-border)}.data-table tbody tr{border-bottom:1px solid var(--token-color-border);transition:background var(--token-transition-fast)}.data-table tbody tr:hover{background:var(--token-color-surface-hover)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody td{padding:var(--token-space-md);font-size:var(--token-scale-base);color:var(--token-color-text-primary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--token-space-2xl);gap:var(--token-space-md)}.loading-container .spinner{width:40px;height:40px;border:3px solid var(--token-color-border);border-top-color:var(--token-color-primary);border-radius:50%;animation:spin .8s linear infinite}.alert{display:flex;gap:var(--token-space-md);padding:var(--token-space-md);border-radius:var(--token-radius-md);border:1px solid}.alert.alert-danger{background:#ef44441a;border-color:var(--token-color-danger);color:var(--token-color-danger)}.alert svg{flex-shrink:0}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--token-space-sm);margin-top:var(--token-space-xl)}.pagination button{min-width:44px;height:44px}.table-actions{display:flex;gap:var(--token-space-xs);justify-content:flex-end;align-items:center}.btn-sm{padding:var(--token-space-xs) var(--token-space-sm);font-size:var(--token-scale-sm);min-width:auto;height:32px}.btn-sm svg{width:16px;height:16px}.btn-sm.btn-icon-only{width:32px;padding:var(--token-space-xs)}.btn-sm.btn-icon-only svg{margin:0}.badge{display:inline-flex;align-items:center;padding:var(--token-space-xs) var(--token-space-md);border-radius:var(--token-radius-full);font-size:var(--token-scale-xs);font-weight:var(--token-font-weight-semibold);line-height:1.4;white-space:nowrap;transition:all var(--token-transition-fast)}.badge.badge-success,.badge.badge-active{background:#10b98126;color:#047857;border:1px solid rgba(16,185,129,.3)}.badge.badge-warning,.badge.badge-pending{background:#f59e0b26;color:#b45309;border:1px solid rgba(245,158,11,.3)}.badge.badge-danger,.badge.badge-inactive{background:#ef444426;color:#b91c1c;border:1px solid rgba(239,68,68,.3)}.badge.badge-info{background:#0ea5e926;color:#0369a1;border:1px solid rgba(14,165,233,.3)}.badge.badge-primary{background:#ffd70033;color:#705c00;border:1px solid rgba(255,215,0,.4);font-weight:var(--token-font-weight-bold)}.badge.badge-success-light{background:#10b9811a;color:#059669;border:1px solid rgba(16,185,129,.2)}.badge.badge-warning-light{background:#f59e0b1a;color:#d97706;border:1px solid rgba(245,158,11,.2)}.badge.badge-danger-light{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.badge.badge-info-light{background:#0ea5e91a;color:#0284c7;border:1px solid rgba(14,165,233,.2)}.badge.badge-neutral{background:var(--token-color-surface-hover);color:var(--token-color-text-primary);border:1px solid var(--token-color-border)}.badge.badge-outline{background:transparent;border:1px solid var(--token-color-border);color:var(--token-color-text-secondary)}.badge:not(.badge-neutral):hover{transform:translateY(-1px);box-shadow:var(--token-shadow-sm)}.link-button{background:none;border:none;padding:0;color:var(--token-color-primary);font-weight:var(--token-font-weight-medium);cursor:pointer;text-decoration:none;transition:all var(--token-transition-fast)}.link-button:hover{color:var(--token-color-primary-dark);text-decoration:underline}.link-button:focus-visible{outline:2px solid var(--token-color-primary);outline-offset:2px;border-radius:var(--token-radius-sm)}.text-muted{color:var(--token-color-text-tertiary)}.text-right{text-align:right}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);overflow:hidden;box-shadow:var(--token-shadow-sm)}.table thead{background:var(--token-color-surface-hover);position:sticky;top:0;z-index:10}.table thead th{padding:var(--token-space-lg) var(--token-space-lg);text-align:left;font-weight:var(--token-font-weight-bold);font-size:var(--token-scale-xs);color:var(--token-color-text-secondary);text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--token-color-border);white-space:nowrap;background:transparent}.table thead th.checkbox-column{width:40px;text-align:center;padding-left:var(--token-space-md);padding-right:var(--token-space-md)}.table thead th.actions-column{text-align:right;width:1%;padding-right:var(--token-space-xl)}.table thead th.text-right{text-align:right}.table tbody{background:var(--token-color-bg)}.table tbody tr{border-bottom:1px solid var(--token-color-border);transition:all var(--token-transition-fast)}.table tbody tr:hover{background:#ffd70008;box-shadow:inset 3px 0 0 var(--token-color-primary)}.table tbody tr:last-child{border-bottom:none}.table tbody tr:nth-child(2n){background:#f9fafb80}.table tbody tr:nth-child(2n):hover{background:#ffd7000a;box-shadow:inset 3px 0 0 var(--token-color-primary)}.table tbody td{padding:var(--token-space-lg) var(--token-space-lg);font-size:var(--token-scale-sm);color:var(--token-color-text-primary);vertical-align:middle}.table tbody td.checkbox-column{width:40px;text-align:center;padding-left:var(--token-space-md);padding-right:var(--token-space-md)}.table tbody td.checkbox-column input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--token-color-primary)}.table tbody td.actions-column,.table tbody td.actions-cell{text-align:right;white-space:nowrap;padding-right:var(--token-space-xl)}.table tbody td.text-right{text-align:right;font-variant-numeric:tabular-nums}.table tbody td.text-right strong{font-weight:var(--token-font-weight-bold);color:var(--token-color-text-primary)}.table tbody td time{color:var(--token-color-text-secondary);font-size:var(--token-scale-xs)}.pagination-info{display:flex;align-items:center;gap:var(--token-space-sm);padding:var(--token-space-sm) var(--token-space-md);color:var(--token-color-text-secondary);font-size:var(--token-scale-sm)}.action-buttons,.btn-group{display:flex;gap:var(--token-space-xs);align-items:center}.bulk-actions-bar{background:linear-gradient(135deg,#ffd7001a,#ffd7000d);border:2px solid var(--token-color-primary);border-radius:var(--token-radius-lg);padding:var(--token-space-lg) var(--token-space-xl);margin-bottom:var(--token-space-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--token-space-lg);box-shadow:0 4px 12px #ffd70026;animation:slideDown .3s ease-out}.bulk-actions-bar .bulk-selection{display:flex;align-items:center;gap:var(--token-space-md)}.bulk-actions-bar .bulk-selection .bulk-count{font-weight:var(--token-font-weight-bold);font-size:var(--token-scale-base);color:var(--token-color-text-primary)}.bulk-actions-bar .bulk-selection .bulk-count:before{content:"\2713";display:inline-block;margin-right:var(--token-space-sm);color:var(--token-color-primary);font-size:var(--token-scale-lg)}.bulk-actions-bar .bulk-actions{display:flex;gap:var(--token-space-sm);flex-wrap:wrap}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.table-section{margin-top:var(--token-space-xl);animation:fadeIn .4s ease-out}.results-info{margin-bottom:var(--token-space-lg);padding:var(--token-space-md) var(--token-space-lg);background:var(--token-color-surface-hover);border-left:4px solid var(--token-color-primary);border-radius:var(--token-radius-sm)}.results-info p{margin:0;font-size:var(--token-scale-sm);color:var(--token-color-text-secondary);font-weight:var(--token-font-weight-medium)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}:root[data-theme=dark] .table tbody{background:var(--token-color-bg-secondary)}:root[data-theme=dark] .table tbody tr:hover{background:#374151e6;box-shadow:inset 3px 0 0 var(--token-color-primary)}:root[data-theme=dark] .table tbody tr:nth-child(2n){background:var(--token-color-surface)}:root[data-theme=dark] .link-button{color:var(--token-color-primary-light)}:root[data-theme=dark] .link-button:hover{color:var(--token-color-primary)}:root[data-theme=dark] .alert.alert-danger{background:#ef444433;border-color:#f87171d9;color:#fee2e2}:root[data-theme=dark] .alert.alert-danger p{color:#fee2e2}@media (max-width: 768px){.container{padding:var(--token-space-xl) var(--token-space-md)}.filters-row{flex-direction:column}.filters-row .filter-group{width:100%}.form-grid{grid-template-columns:1fr}.table{font-size:var(--token-scale-xs)}.table th,.table td{padding:var(--token-space-sm)}.table thead th{font-size:10px}.btn-sm{padding:var(--token-space-2xs) var(--token-space-xs);font-size:var(--token-scale-xs)}.btn-sm svg{width:14px;height:14px}.bulk-actions-bar{flex-direction:column;align-items:stretch}.bulk-actions-bar .bulk-selection,.bulk-actions-bar .bulk-actions{justify-content:center}.pagination .btn{justify-content:center;min-width:44px}.pagination .btn .pagination-label{display:none}}.form-container{max-width:800px;margin:0 auto;padding:var(--token-space-2xl) 0}.form-section{border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);padding:var(--token-space-xl);margin-bottom:var(--token-space-xl);background:var(--token-color-surface)}.form-section-title{display:flex;align-items:center;gap:var(--token-space-sm);font-size:var(--token-scale-lg);font-weight:var(--token-font-weight-semibold);color:var(--token-color-text-primary);margin-bottom:var(--token-space-lg);padding-bottom:var(--token-space-md);border-bottom:2px solid var(--token-color-border)}.form-section-title svg{color:var(--token-color-primary);flex-shrink:0}.page-header{margin-bottom:var(--token-space-2xl)}.page-header h1{font-size:var(--token-scale-3xl);font-weight:var(--token-font-weight-bold);color:var(--token-color-text-primary);margin:0}.breadcrumb{display:flex;align-items:center;gap:var(--token-space-sm);font-size:var(--token-scale-sm);color:var(--token-color-text-secondary);margin-bottom:var(--token-space-md)}.breadcrumb a{color:var(--token-color-primary);text-decoration:none;transition:color var(--token-transition-fast)}.breadcrumb a:hover{color:var(--token-color-primary-dark);text-decoration:underline}.breadcrumb span[aria-current=page]{color:var(--token-color-text-primary);font-weight:var(--token-font-weight-medium)}.form-grid{display:grid;grid-template-columns:1fr;gap:var(--token-space-xl)}@media (min-width: 768px){.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid.form-grid-1{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:var(--token-space-sm)}.form-group.form-group-full{grid-column:1/-1}.form-label{display:flex;align-items:center;gap:var(--token-space-xs);font-size:var(--token-scale-sm);font-weight:var(--token-font-weight-semibold);color:var(--token-color-text-primary)}.form-label .required{color:var(--token-color-danger);font-weight:var(--token-font-weight-bold)}.form-label .optional{font-size:var(--token-scale-xs);font-weight:var(--token-font-weight-normal);color:var(--token-color-text-tertiary)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--token-space-md) var(--token-space-lg);background:var(--token-color-surface);border:2px solid var(--token-color-border);border-radius:var(--token-radius-md);font-size:var(--token-scale-base);color:var(--token-color-text-primary);font-family:inherit;transition:all var(--token-transition-fast)}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:var(--token-color-text-tertiary)}.form-input:hover:not(:disabled):not(:focus),.form-select:hover:not(:disabled):not(:focus),.form-textarea:hover:not(:disabled):not(:focus){border-color:var(--token-color-text-tertiary)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--token-color-primary);box-shadow:0 0 0 3px #0b5fff1a;background:var(--token-color-bg)}.form-input.error,.form-input[aria-invalid=true],.form-select.error,.form-select[aria-invalid=true],.form-textarea.error,.form-textarea[aria-invalid=true]{border-color:var(--token-color-danger);background:#ef44440d}.form-input.error:focus,.form-input[aria-invalid=true]:focus,.form-select.error:focus,.form-select[aria-invalid=true]:focus,.form-textarea.error:focus,.form-textarea[aria-invalid=true]:focus{border-color:var(--token-color-danger);box-shadow:0 0 0 3px #ef44441a}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--token-color-surface-hover);border-color:var(--token-color-border);color:var(--token-color-text-tertiary);cursor:not-allowed}.form-textarea{resize:vertical;min-height:100px;line-height:var(--token-typography-lineHeight)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--token-space-lg) center;padding-right:calc(var(--token-space-lg) * 2 + 12px);cursor:pointer}.form-select:disabled{cursor:not-allowed}.form-select-multiple{background-image:none;padding-right:var(--token-space-lg)}.form-select-multiple option{padding:var(--token-space-sm)}.form-helper{display:flex;align-items:center;gap:var(--token-space-xs);font-size:var(--token-scale-xs);color:var(--token-color-text-tertiary);line-height:1.4}.form-helper .spinner-inline{width:12px;height:12px;border:2px solid var(--token-color-border);border-top-color:var(--token-color-primary);border-radius:50%;animation:spin .6s linear infinite}.form-helper .text-success{color:var(--token-color-success);font-weight:var(--token-font-weight-medium)}.form-helper .text-danger{color:var(--token-color-danger);font-weight:var(--token-font-weight-medium)}.form-error{display:flex;align-items:flex-start;gap:var(--token-space-xs);font-size:var(--token-scale-xs);color:var(--token-color-danger);font-weight:var(--token-font-weight-medium);padding:var(--token-space-sm) var(--token-space-md);background:#ef44440d;border-left:3px solid var(--token-color-danger);border-radius:var(--token-radius-sm)}.form-error:before{content:"\26a0";flex-shrink:0}.form-error .password-requirements{list-style:none;padding:0;margin:var(--token-space-xs) 0 0 0}.form-error .password-requirements li{padding-left:var(--token-space-md);position:relative}.form-error .password-requirements li:before{content:"\2717";position:absolute;left:0;color:var(--token-color-danger)}.input-with-icon{position:relative}.input-with-icon .input-icon{position:absolute;left:var(--token-space-md);top:50%;transform:translateY(-50%);color:var(--token-color-text-tertiary);pointer-events:none}.input-with-icon .input-icon svg{width:20px;height:20px}.input-with-icon .form-input{padding-left:calc(var(--token-space-md) * 2 + 20px)}.info-box{padding:var(--token-space-xl);background:var(--token-color-surface);border:1px solid var(--token-color-border);border-radius:var(--token-radius-lg);margin-top:var(--token-space-xl)}.info-box.info-box-primary{background:#0b5fff0d;border-color:#0b5fff33}.info-box.info-box-warning{background:#f59e0b0d;border-color:#f59e0b33}.info-box.info-box-success{background:#10b9810d;border-color:#10b98133}.info-title{font-size:var(--token-scale-base);font-weight:var(--token-font-weight-semibold);color:var(--token-color-text-primary);margin:0 0 var(--token-space-md) 0}.info-title:before{content:"\2139\fe0f";margin-right:var(--token-space-sm)}.info-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--token-space-sm)}.info-list li{display:flex;justify-content:space-between;align-items:center;padding:var(--token-space-sm) 0;border-bottom:1px solid var(--token-color-border);font-size:var(--token-scale-sm)}.info-list li:last-child{border-bottom:none}.info-list li span{color:var(--token-color-text-secondary)}.info-list li strong{color:var(--token-color-text-primary);font-weight:var(--token-font-weight-semibold)}.info-icon{font-size:var(--token-scale-2xl);margin:0 0 var(--token-space-md) 0;text-align:center}.form-actions{display:flex;gap:var(--token-space-md);justify-content:flex-end;align-items:center;margin-top:var(--token-space-2xl);padding-top:var(--token-space-xl);border-top:1px solid var(--token-color-border)}@media (max-width: 768px){.form-actions{position:sticky;bottom:0;background:var(--token-color-bg);padding:var(--token-space-lg);margin:var(--token-space-xl) calc(var(--token-space-lg) * -1) 0;box-shadow:0 -2px 8px #0000001a;z-index:10}}.required-note{font-size:var(--token-scale-xs);color:var(--token-color-text-tertiary);text-align:center;margin-top:var(--token-space-lg)}.required-note .required{color:var(--token-color-danger)}.char-counter{font-size:var(--token-scale-xs);color:var(--token-color-text-tertiary)}.char-counter.char-counter-warning{color:var(--token-color-warning)}.char-counter.char-counter-danger{color:var(--token-color-danger)}.form-checkbox-group,.form-radio-group{display:flex;align-items:flex-start;gap:var(--token-space-sm);cursor:pointer;padding:var(--token-space-sm);border-radius:var(--token-radius-md);transition:background var(--token-transition-fast)}.form-checkbox-group:hover,.form-radio-group:hover{background:var(--token-color-surface-hover)}.form-checkbox-group input[type=checkbox],.form-checkbox-group input[type=radio],.form-radio-group input[type=checkbox],.form-radio-group input[type=radio]{width:20px;height:20px;margin-top:2px;accent-color:var(--token-color-primary);cursor:pointer}.form-checkbox-group label,.form-radio-group label{flex:1;cursor:pointer;font-size:var(--token-scale-sm);color:var(--token-color-text-primary)}.form-group-inline{display:flex;gap:var(--token-space-md);align-items:flex-end}.form-group-inline>*{flex:1}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.form-container{max-width:100%;margin:0;padding:var(--token-space-xl) var(--token-space-lg)}.form-grid{gap:var(--token-space-lg)}.form-input,.form-select,.form-textarea{padding:var(--token-space-sm) var(--token-space-md);font-size:var(--token-scale-sm)}.form-group-inline{flex-direction:column;align-items:stretch}}@media (prefers-color-scheme: dark){.form-input:focus,.form-select:focus,.form-textarea:focus{box-shadow:0 0 0 3px #0b5fff33}.form-input.error:focus,.form-input[aria-invalid=true]:focus,.form-select.error:focus,.form-select[aria-invalid=true]:focus,.form-textarea.error:focus,.form-textarea[aria-invalid=true]:focus{box-shadow:0 0 0 3px #ef444433}}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible,.form-checkbox-group input:focus-visible,.form-radio-group input:focus-visible{outline:2px solid var(--token-color-primary);outline-offset:2px}
