:root{--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--card-padding: 1.5rem;--header-height: 64px;--sidebar-width: 250px;--bottom-nav-height: 0px;--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.875rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--transition-fast: .15s ease-in-out;--transition-base: .3s ease-in-out;--transition-slow: .5s ease-in-out;--animation-duration: .3s;--bg-primary: #ffffff;--bg-secondary: #f7f7f7;--bg-tertiary: #efefef;--text-primary: #1a1a1a;--text-secondary: #4a4a4a;--text-tertiary: #808080;--border-color: #e0e0e0;--card-bg: #ffffff;--hover-bg: #f5f5f5;--input-bg: #fafafa;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--primary-color: #667eea;--primary-hover: #5569d9;--success-color: #48bb78;--danger-color: #e53e3e;--warning-color: #ed8936;--info-color: #4299e1;--logo-brightness: 1}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden;position:fixed;width:100%}body{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--font-size-base);background:var(--bg-primary);color:var(--text-primary);font-weight:var(--font-weight-normal);transition:background-color var(--transition-base),color var(--transition-base);position:relative;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}@media (max-width: 768px){html{overflow:auto;position:relative;height:auto}body{height:auto;min-height:100vh;min-height:-webkit-fill-available}}*{transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}.no-animations *{transition:none!important;animation:none!important}:root{--button-padding-y: .75rem;--button-padding-x: 1.5rem;--input-padding-y: .75rem;--input-padding-x: 1rem;--border-radius: 8px;--line-height-base: 1.5}.compact-mode{line-height:var(--line-height-base)}.compact-mode .card{padding:var(--card-padding);border-radius:var(--border-radius)}.compact-mode .btn{padding:var(--button-padding-y) var(--button-padding-x);font-size:var(--font-size-base);border-radius:var(--border-radius);line-height:1.2}.compact-mode .btn.btn-sm{padding:calc(var(--button-padding-y) * .75) calc(var(--button-padding-x) * .75);font-size:var(--font-size-sm)}.compact-mode .btn.btn-lg{padding:calc(var(--button-padding-y) * 1.25) calc(var(--button-padding-x) * 1.25);font-size:var(--font-size-lg)}.compact-mode h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md);line-height:1.2}.compact-mode h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md);line-height:1.25}.compact-mode h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm);line-height:1.3}.compact-mode h4{font-size:var(--font-size-base);margin-bottom:var(--spacing-xs);line-height:1.4}.compact-mode p{line-height:var(--line-height-base);margin-bottom:var(--spacing-sm)}.compact-mode table th,.compact-mode table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);line-height:1.3}.compact-mode input,.compact-mode select,.compact-mode textarea{padding:var(--input-padding-y) var(--input-padding-x);font-size:var(--font-size-base);border-radius:var(--border-radius);line-height:1.4}.compact-mode input::placeholder,.compact-mode select::placeholder,.compact-mode textarea::placeholder{font-size:var(--font-size-sm)}.compact-mode label{font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.compact-mode .form-group{margin-bottom:var(--spacing-md)}.compact-mode .header{height:var(--header-height);padding:var(--spacing-sm) var(--spacing-lg)}.compact-mode .sidebar{width:var(--sidebar-width);padding:var(--spacing-sm)}.compact-mode section{padding:var(--spacing-lg) 0}.compact-mode .container{padding:0 var(--spacing-lg)}.compact-mode nav a,.compact-mode nav button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.compact-mode .modal .modal-header{padding:var(--spacing-md)}.compact-mode .modal .modal-header h2{font-size:var(--font-size-lg)}.compact-mode .modal .modal-body{padding:var(--spacing-md)}.compact-mode .modal .modal-footer{padding:var(--spacing-md);gap:var(--spacing-sm)}.compact-mode .card-header,.compact-mode .card-body{padding:var(--spacing-md)}.compact-mode .card-footer{padding:var(--spacing-sm) var(--spacing-md)}.compact-mode .list-item{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs)}.compact-mode .badge,.compact-mode .chip{padding:var(--spacing-xs) var(--spacing-sm);font-size:calc(var(--font-size-sm) * .9)}.compact-mode .tooltip{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.compact-mode .dropdown-menu{padding:var(--spacing-xs)}.compact-mode .dropdown-menu .dropdown-item,.compact-mode .tab,.compact-mode .alert{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.high-contrast *{font-weight:calc(var(--font-weight-normal) + 100)}.high-contrast h1,.high-contrast h2,.high-contrast h3,.high-contrast h4,.high-contrast h5,.high-contrast h6{font-weight:var(--font-weight-bold)}.high-contrast .btn{font-weight:var(--font-weight-semibold);border-width:2px}.high-contrast input,.high-contrast select,.high-contrast textarea,.high-contrast .card{border-width:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.container{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md)}.card{background:var(--card-bg);border-radius:12px;padding:var(--card-padding);box-shadow:var(--shadow-md);border:1px solid var(--border-color)}.btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);border:none;cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px)}.btn-secondary{background:linear-gradient(135deg,var(--secondary-color),var(--secondary-hover));color:#fff;border:none}.btn-secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--secondary-rgb),.3)}.btn-accent{background:linear-gradient(135deg,var(--accent-color),var(--accent-hover));color:#fff;border:none}.btn-accent:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-rgb),.3)}.btn-outline{background:var(--card-bg);color:var(--text-primary);border:2px solid var(--border-color);padding:.625rem 1.25rem;border-radius:8px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base)}.btn-outline:hover:not(:disabled){background:var(--hover-bg);border-color:var(--primary-color)}.btn-outline:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-color);padding:.75rem 1.5rem;border-radius:8px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base)}.btn-cancel:hover:not(:disabled){background:var(--hover-bg);border-color:var(--text-tertiary)}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-block;padding:.25rem .625rem;font-size:.75rem;font-weight:var(--font-weight-semibold);border-radius:12px;line-height:1.2;white-space:nowrap}.badge.badge-primary{background:var(--primary-100);color:var(--primary-700);border:1px solid var(--primary-200)}.badge.badge-secondary{background:var(--secondary-100);color:var(--secondary-700);border:1px solid var(--secondary-200)}.badge.badge-accent{background:var(--accent-100);color:var(--accent-700);border:1px solid var(--accent-200)}.badge.badge-success{background:var(--success-100, #d1fae5);color:var(--success-700, #047857);border:1px solid var(--success-200, #a7f3d0)}.badge.badge-warning{background:var(--warning-100, #fef3c7);color:var(--warning-700, #b45309);border:1px solid var(--warning-200, #fde68a)}.badge.badge-danger{background:var(--danger-100, #fee2e2);color:var(--danger-700, #b91c1c);border:1px solid var(--danger-200, #fecaca)}.badge.badge-neutral{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}input,select,textarea{background:var(--input-bg);color:var(--text-primary);border:2px solid var(--border-color);padding:.75rem 1rem;border-radius:8px;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);transition:all var(--transition-base)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--secondary-color);background:var(--card-bg);box-shadow:0 0 0 3px var(--secondary-alpha-10, var(--secondary-100, rgba(139, 92, 246, .1)))}input::placeholder,select::placeholder,textarea::placeholder{color:var(--text-tertiary)}a{color:var(--secondary-color);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--secondary-hover)}a.link-primary{color:var(--primary-color)}a.link-primary:hover{color:var(--primary-hover)}a.link-accent{color:var(--accent-color)}a.link-accent:hover{color:var(--accent-hover)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:var(--font-weight-bold)}h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}table{width:100%;border-collapse:collapse}table th,table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}table th{background:var(--bg-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}table tr:hover{background:var(--hover-bg)}.logo,img[src*=logo]{filter:brightness(var(--logo-brightness))}.dark-theme input:focus,.dark-theme select:focus,.dark-theme textarea:focus{box-shadow:0 0 0 3px #8b7ee633}.dark-theme .btn-primary:hover:not(:disabled){transform:translateY(-1px)}.dark-theme pre,.dark-theme code{background:var(--bg-tertiary);color:var(--text-primary)}.dark-theme .login-container{background:linear-gradient(135deg,#1a1a2e,#16213e)}.dark-theme .login-card{background:#242424f2;border:1px solid rgba(255,255,255,.05);box-shadow:0 20px 60px #00000080}.dark-theme .login-container .logo-section .logo{background:linear-gradient(135deg,#8b7ee6,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dark-theme .submit-btn{background:linear-gradient(135deg,#8b7ee6,#7a6dd5)}.dark-theme .submit-btn:hover:not(:disabled){transform:translateY(-1px)}.dark-theme .google-btn{background:#2a2a2acc;border-color:#ffffff1a}.dark-theme .google-btn:hover:not(:disabled){background:#333333e6;border-color:#ffffff26}.dark-theme .error-message{background:#ef444426;border-color:#ef44444d}.dark-theme .nav-links a.active{background:#8b7ee626}.dark-theme .nav-links a.active:hover{background:#8b7ee633}.dark-theme .chart-container{background:var(--card-bg)}.dark-theme .chart-container .chart-legend{color:var(--text-secondary)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}@media (max-width: 768px){:root{--font-size-2xl: 1.5rem;--font-size-xl: 1.25rem;--font-size-lg: 1.125rem}.container{padding:0 var(--spacing-sm)}.compact-mode{--spacing-xs: .125rem;--spacing-sm: .25rem;--spacing-md: .375rem;--spacing-lg: .5rem;--spacing-xl: .75rem;--spacing-2xl: 1rem}}@media (max-width: 768px){:root{--bottom-nav-height: calc(56px + env(safe-area-inset-bottom, 0px)) ;--header-height: 56px;--card-padding: 1rem}}@media (max-width: 768px){.page-container{padding-bottom:var(--bottom-nav-height)!important}}.touch-target{min-width:44px;min-height:44px}.touch-target-lg{min-width:48px;min-height:48px}@media (max-width: 768px){.hide-mobile{display:none!important}}.show-mobile{display:none!important}@media (max-width: 768px){.show-mobile{display:block!important}}@media (max-width: 768px){.modal-overlay{align-items:flex-end!important}.modal{max-width:100%!important;width:100%!important;border-radius:24px 24px 0 0!important;max-height:90vh!important;margin:0!important;margin-bottom:var(--safe-area-inset-bottom)!important}}
