/* Aviometrics Core CSS - design-system + components + layout merged for performance */
/* === design-system.css === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;scroll-behavior:smooth;}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-slate-700);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;}img,svg,video{display:block;max-width:100%;}a{color:var(--color-primary-600);text-decoration:none;transition:color var(--transition-fast);}a:hover{color:var(--color-primary-700);}ul,ol{list-style:none;}:root{--color-primary-50:#EDF5F9;--color-primary-100:#D0E5EF;--color-primary-200:#A3CCE0;--color-primary-300:#6DACC9;--color-primary-400:#3D8DB3;--color-primary-500:#0A6E9A;--color-primary-600:#065A82;--color-primary-700:#054B6D;--color-primary-800:#043C57;--color-primary-900:#032D42;--color-accent-50:#FFF1F1;--color-accent-100:#FFD9DA;--color-accent-200:#FFB3B5;--color-accent-300:#FC8E91;--color-accent-400:#F96167;--color-accent-500:#F96167;--color-accent-600:#E04E54;--color-accent-700:#C13B41;--color-accent-800:#9A2F33;--color-slate-50:#F8FAFC;--color-slate-100:#F1F5F9;--color-slate-200:#E2E8F0;--color-slate-300:#CBD5E1;--color-slate-400:#6B7280;--color-slate-500:#52525B;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1E293B;--color-slate-900:#0F172A;--color-success-50:#F0FDF4;--color-success-100:#DCFCE7;--color-success-500:#22C55E;--color-success-600:#16A34A;--color-success-700:#15803D;--color-warning-50:#FFFBEB;--color-warning-100:#FEF3C7;--color-warning-500:#F59E0B;--color-warning-600:#D97706;--color-error-50:#FEF2F2;--color-error-100:#FEE2E2;--color-error-500:#EF4444;--color-error-600:#DC2626;--color-error-700:#B91C1C;--color-info-50:#EFF6FF;--color-info-500:#3B82F6;--color-bg:#FAFBFE;--color-surface:#FFFFFF;--color-surface-hover:#F8FAFC;--color-overlay:rgba(15,23,42,0.5);--font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;--font-serif:'Georgia','Times New Roman',serif;--font-mono:'JetBrains Mono','Fira Code','Courier New',monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--font-normal:400;--font-medium:500;--font-semibold:600;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.7;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.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;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,0.04);--shadow-sm:0 1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.07),0 2px 4px -2px rgba(0,0,0,0.05);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.08),0 4px 6px -4px rgba(0,0,0,0.04);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.08),0 8px 10px -6px rgba(0,0,0,0.04);--shadow-btn:0 2px 8px rgba(6,90,130,0.25);--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--z-dropdown:40;--z-sticky:50;--z-overlay:60;--z-modal:70;--z-toast:80;}h1,h2,h3,h4,h5,h6{color:var(--color-slate-800);font-weight:var(--font-semibold);line-height:var(--leading-tight);margin-bottom:var(--space-4);}h1,h2,h3{font-family:var(--font-serif);font-weight:700;}h4,h5,h6{font-family:var(--font-sans);}h1{font-size:var(--text-4xl);}h2{font-size:var(--text-3xl);}h3{font-size:var(--text-2xl);}h4{font-size:var(--text-xl);}h5{font-size:var(--text-lg);}h6{font-size:var(--text-base);font-weight:var(--font-medium);}p{margin-bottom:var(--space-4);line-height:var(--leading-relaxed);}p:last-child{margin-bottom:0;}small,.text-sm{font-size:var(--text-sm);}.text-xs{font-size:var(--text-xs);}.text-lg{font-size:var(--text-lg);}.text-xl{font-size:var(--text-xl);}.text-2xl{font-size:var(--text-2xl);}.text-3xl{font-size:var(--text-3xl);}.text-4xl{font-size:var(--text-4xl);}.text-5xl{font-size:var(--text-5xl);}.text-muted{color:var(--color-slate-500);}.text-primary{color:var(--color-primary-600);}.text-accent{color:var(--color-accent-500);}.text-coral{color:var(--color-accent-500);}.text-success{color:var(--color-success-600);}.text-warning{color:var(--color-warning-600);}.text-error{color:var(--color-error-600);}.text-white{color:#fff;}.text-navy{color:var(--color-slate-800);}.section-label{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:700;color:var(--color-primary-600);text-transform:uppercase;letter-spacing:0.25em;margin-bottom:var(--space-3);}.stat-hero{font-family:var(--font-serif);font-size:3.5rem;font-weight:700;line-height:1;color:var(--color-accent-500);}.stat-hero-navy{font-family:var(--font-serif);font-size:3.5rem;font-weight:700;line-height:1;color:var(--color-primary-600);}@media (max-width:768px){.stat-hero,.stat-hero-navy{font-size:2.5rem;}}.accent-line{width:80px;height:3px;background:var(--color-accent-500);border:none;margin:var(--space-4) 0;}.accent-line-center{width:80px;height:3px;background:var(--color-accent-500);border:none;margin:var(--space-4) auto;}.step-circle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--color-primary-600);color:#fff;font-family:var(--font-serif);font-size:var(--text-lg);font-weight:700;flex-shrink:0;}.bg-navy{background:var(--color-slate-800);color:#fff;}.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4{color:#fff;}.bg-navy .section-label{color:var(--color-accent-500);}.bg-navy-gradient{background:linear-gradient(135deg,#1E293B 0%,#0F172A 100%);color:#fff;}.bg-navy-gradient h1,.bg-navy-gradient h2,.bg-navy-gradient h3{color:#fff;}.font-normal{font-weight:var(--font-normal);}.font-medium{font-weight:var(--font-medium);}.font-semibold{font-weight:var(--font-semibold);}.text-center{text-align:center;}.text-left{text-align:left;}.text-right{text-align:right;}.leading-tight{line-height:var(--leading-tight);}.leading-relaxed{line-height:var(--leading-relaxed);}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-6);}.container-sm{max-width:680px;margin:0 auto;padding:0 var(--space-6);}.container-md{max-width:900px;margin:0 auto;padding:0 var(--space-6);}.container-lg{max-width:1400px;margin:0 auto;padding:0 var(--space-6);}.hidden{display:none !important;}.block{display:block;}.inline-block{display:inline-block;}.flex{display:flex;}.inline-flex{display:inline-flex;}.grid{display:grid;}.flex-col{flex-direction:column;}.flex-wrap{flex-wrap:wrap;}.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-1{gap:var(--space-1);}.gap-2{gap:var(--space-2);}.gap-3{gap:var(--space-3);}.gap-4{gap:var(--space-4);}.gap-6{gap:var(--space-6);}.gap-8{gap:var(--space-8);}.flex-1{flex:1;}.m-0{margin:0;}.mt-1{margin-top:var(--space-1);}.mt-2{margin-top:var(--space-2);}.mt-4{margin-top:var(--space-4);}.mt-6{margin-top:var(--space-6);}.mt-8{margin-top:var(--space-8);}.mt-12{margin-top:var(--space-12);}.mt-16{margin-top:var(--space-16);}.mb-1{margin-bottom:var(--space-1);}.mb-2{margin-bottom:var(--space-2);}.mb-4{margin-bottom:var(--space-4);}.mb-6{margin-bottom:var(--space-6);}.mb-8{margin-bottom:var(--space-8);}.mb-12{margin-bottom:var(--space-12);}.mx-auto{margin-left:auto;margin-right:auto;}.p-0{padding:0;}.p-2{padding:var(--space-2);}.p-4{padding:var(--space-4);}.p-6{padding:var(--space-6);}.p-8{padding:var(--space-8);}.px-4{padding-left:var(--space-4);padding-right:var(--space-4);}.px-6{padding-left:var(--space-6);padding-right:var(--space-6);}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2);}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4);}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8);}.py-12{padding-top:var(--space-12);padding-bottom:var(--space-12);}.py-16{padding-top:var(--space-16);padding-bottom:var(--space-16);}.py-20{padding-top:var(--space-20);padding-bottom:var(--space-20);}.py-24{padding-top:var(--space-24);padding-bottom:var(--space-24);}.pt-8{padding-top:var(--space-8);}.w-full{width:100%;}.max-w-sm{max-width:420px;}.max-w-md{max-width:680px;}.max-w-lg{max-width:900px;}.rounded{border-radius:var(--radius-md);}.rounded-lg{border-radius:var(--radius-lg);}.rounded-xl{border-radius:var(--radius-xl);}.rounded-full{border-radius:var(--radius-full);}.border{border:1px solid var(--color-slate-200);}.border-b{border-bottom:1px solid var(--color-slate-200);}.shadow-sm{box-shadow:var(--shadow-sm);}.shadow-md{box-shadow:var(--shadow-md);}.shadow-lg{box-shadow:var(--shadow-lg);}.bg-white{background-color:var(--color-surface);}.bg-slate-50{background-color:var(--color-slate-50);}.bg-slate-100{background-color:var(--color-slate-100);}.bg-primary-50{background-color:var(--color-primary-50);}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}@media (max-width:768px){.hide-mobile{display:none !important;}}@media (min-width:769px){.hide-desktop{display:none !important;}}@media (max-width:768px){h1{font-size:var(--text-3xl);}h2{font-size:var(--text-2xl);}h3{font-size:var(--text-xl);}.text-5xl{font-size:var(--text-4xl);}.container{padding:0 var(--space-4);}}@media (max-width:480px){h1{font-size:var(--text-2xl);}h2{font-size:var(--text-xl);}.text-5xl{font-size:var(--text-3xl);}}@media (max-width:360px){.container{padding:0 var(--space-3);}.container-sm,.container-md{padding:0 var(--space-3);}h1{font-size:var(--text-xl);}.stat-hero,.stat-hero-navy{font-size:2rem;}.text-5xl{font-size:var(--text-2xl);}.btn{padding:10px 16px;font-size:var(--text-sm);}.btn-group{gap:var(--space-2);}}
/* === components.css === */
/* * Aviometrics Components * Buttons,Cards,Forms,Badges,Alerts,Tables,Modals,Tabs * Version:1.0.0 *//* ======================================== GLOBAL FOCUS STYLES (WCAG 2.4.7) ======================================== */a:focus,button:focus,select:focus,[role="button"]:focus,[role="tab"]:focus,[tabindex]:not([tabindex="-1"]):focus{outline:3px solid #F96167;outline-offset:2px;}/* Hide outline for mouse users,show for keyboard users */a:focus:not(:focus-visible),button:focus:not(:focus-visible),select:focus:not(:focus-visible),[role="button"]:focus:not(:focus-visible),[role="tab"]:focus:not(:focus-visible),[tabindex]:not([tabindex="-1"]):focus:not(:focus-visible){outline:none;}a:focus-visible,button:focus-visible,select:focus-visible,[role="button"]:focus-visible,[role="tab"]:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid #F96167;outline-offset:2px;box-shadow:0 0 0 4px rgba(249,97,103,0.2);}/* ======================================== BUTTONS ======================================== */.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 20px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1.5;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;min-height:40px;}.btn:focus{outline:3px solid #F96167;outline-offset:2px;box-shadow:0 0 0 4px rgba(249,97,103,0.2);}.btn:focus:not(:focus-visible){outline:none;box-shadow:none;}.btn:focus-visible{outline:3px solid #F96167;outline-offset:2px;box-shadow:0 0 0 4px rgba(249,97,103,0.2);}.btn:disabled,.btn.disabled{opacity:0.5;cursor:not-allowed;pointer-events:none;}.btn svg{width:18px;height:18px;flex-shrink:0;}/* Primary */.btn-primary{background-color:var(--color-primary-600);color:#fff;border-color:var(--color-primary-600);}.btn-primary:hover{background-color:var(--color-primary-700);border-color:var(--color-primary-700);color:#fff;box-shadow:var(--shadow-btn);}.btn-primary:active{background-color:var(--color-primary-800);}/* Secondary */.btn-secondary{background-color:var(--color-surface);color:var(--color-slate-700);border-color:var(--color-slate-300);}.btn-secondary:hover{background-color:var(--color-slate-50);border-color:var(--color-slate-400);color:var(--color-slate-800);}/* Accent (Coral) */.btn-accent{background-color:var(--color-accent-500);color:#fff;border-color:var(--color-accent-500);}.btn-accent:hover{background-color:var(--color-accent-600);color:#fff;box-shadow:0 2px 8px rgba(249,97,103,0.35);}/* Ghost */.btn-ghost{background-color:transparent;color:var(--color-primary-600);border-color:transparent;}.btn-ghost:hover{background-color:var(--color-primary-50);color:var(--color-primary-700);}/* Danger */.btn-danger{background-color:var(--color-error-600);color:#fff;border-color:var(--color-error-600);}.btn-danger:hover{background-color:var(--color-error-700);color:#fff;}/* Sizes */.btn-sm{padding:6px 14px;font-size:var(--text-xs);min-height:32px;}.btn-sm svg{width:14px;height:14px;}.btn-lg{padding:12px 28px;font-size:var(--text-base);min-height:48px;}.btn-lg svg{width:20px;height:20px;}.btn-block{display:flex;width:100%;}.btn-icon{padding:10px;min-width:40px;}.btn-group{display:flex;gap:var(--space-3);flex-wrap:wrap;}/* ======================================== CARDS ======================================== */.card{background:var(--color-surface);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition-base),transform var(--transition-base);}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}.card-header{padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-slate-200);}.card-header h3,.card-header h4{margin-bottom:0;}.card-body{flex:1;}.card-footer{padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--color-slate-200);}.card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:var(--color-primary-50);color:var(--color-primary-600);margin-bottom:var(--space-4);}.card-icon svg{width:24px;height:24px;}.card-icon.accent{background:var(--color-accent-50);color:var(--color-accent-600);}.card-icon.success{background:var(--color-success-50);color:var(--color-success-600);}/* ======================================== FORMS ======================================== */.form-group{margin-bottom:var(--space-5);}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-slate-700);}.form-label .required{color:var(--color-error-500);margin-left:2px;}.form-input,.form-select,.form-textarea{display:block;width:100%;padding:10px 14px;font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-slate-800);background:var(--color-slate-50);border:1px solid var(--color-slate-200);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);appearance:none;-webkit-appearance:none;}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px rgba(6,90,130,0.12);background:var(--color-surface);}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-slate-400);}/* Prevent iOS zoom on focus + mobile touch targets */@media (max-width:768px){.form-input,.form-select,.form-textarea{font-size:16px;}/* Ensure minimum 44px touch targets per WCAG 2.5.5 */ .btn-sm{min-height:44px;padding:10px 14px;}.form-checkbox input[type="checkbox"]{width:24px;height:24px;}}.form-textarea{min-height:120px;resize:vertical;line-height:var(--leading-relaxed);}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2364748b' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;}.form-error-input{border-color:var(--color-error-500);}.form-error-input:focus{box-shadow:0 0 0 3px rgba(239,68,68,0.1);}.form-error-text{display:block;margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-error-600);}.form-help{display:block;margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-slate-500);}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}@media (max-width:640px){.form-row{grid-template-columns:1fr;}}.form-checkbox{display:flex;align-items:flex-start;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-slate-600);}.form-checkbox input[type="checkbox"]{width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:var(--color-primary-600);flex-shrink:0;}.form-section-title{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-slate-800);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--color-slate-200);}/* Password toggle */.input-password-wrap{position:relative;}.input-password-wrap .form-input{padding-right:44px;}.btn-toggle-password{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:6px;color:var(--color-slate-400);font-size:18px;line-height:1;}/* ======================================== BADGES ======================================== */.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 10px;font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);line-height:1.5;white-space:nowrap;}.badge-primary{background:var(--color-primary-100);color:var(--color-primary-700);}.badge-accent{background:var(--color-accent-100);color:var(--color-accent-700);}.badge-success{background:var(--color-success-100);color:var(--color-success-700);}.badge-warning{background:var(--color-warning-100);color:var(--color-warning-600);}.badge-error{background:var(--color-error-100);color:var(--color-error-700);}.badge-neutral{background:var(--color-slate-100);color:var(--color-slate-600);}/* Dot indicator */.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;}.status-dot.online{background:var(--color-success-500);}.status-dot.offline{background:var(--color-slate-300);}.status-dot.warning{background:var(--color-warning-500);}/* ======================================== ALERTS ======================================== */.alert{padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin-bottom:var(--space-4);display:flex;align-items:flex-start;gap:var(--space-3);}.alert svg{width:20px;height:20px;flex-shrink:0;margin-top:1px;}.alert-success{background:var(--color-success-50);color:var(--color-success-700);border:1px solid var(--color-success-100);}.alert-error{background:var(--color-error-50);color:var(--color-error-700);border:1px solid var(--color-error-100);}.alert-warning{background:var(--color-warning-50);color:var(--color-warning-600);border:1px solid var(--color-warning-100);}.alert-info{background:var(--color-info-50);color:var(--color-primary-700);border:1px solid var(--color-primary-100);}.alert a{font-weight:var(--font-semibold);text-decoration:underline;color:inherit;}/* ======================================== TABLES ======================================== */.table-wrap{overflow-x:auto;border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm);}.table th{background:var(--color-slate-50);padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-semibold);color:var(--color-slate-600);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.05em;border-bottom:1px solid var(--color-slate-200);white-space:nowrap;}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-slate-100);color:var(--color-slate-700);vertical-align:middle;}.table tbody tr:last-child td{border-bottom:none;}.table tbody tr:hover{background:var(--color-slate-50);}.table-striped tbody tr:nth-child(even){background:var(--color-slate-50);}/* ======================================== TABS ======================================== */.tabs{display:flex;gap:0;border-bottom:2px solid var(--color-slate-200);overflow-x:auto;-webkit-overflow-scrolling:touch;}.tab-item{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-slate-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:all var(--transition-fast);background:none;border-top:none;border-left:none;border-right:none;font-family:var(--font-sans);}.tab-item:hover{color:var(--color-primary-600);}.tab-item.active{color:var(--color-primary-600);border-bottom-color:var(--color-primary-600);}.tab-panel{display:none;padding:var(--space-6) 0;}.tab-panel.active{display:block;}/* ======================================== MODAL ======================================== */.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);z-index:var(--z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);opacity:0;visibility:hidden;transition:all var(--transition-base);}.modal-overlay.open{opacity:1;visibility:visible;}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;transform:translateY(10px);transition:transform var(--transition-base);}.modal-overlay.open .modal{transform:translateY(0);}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--color-slate-200);display:flex;align-items:center;justify-content:space-between;}.modal-header h3{margin-bottom:0;}.modal-body{padding:var(--space-6);}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-slate-200);display:flex;justify-content:flex-end;gap:var(--space-3);}.modal-close{background:none;border:none;cursor:pointer;padding:var(--space-1);color:var(--color-slate-400);transition:color var(--transition-fast);}.modal-close:hover{color:var(--color-slate-600);}/* ======================================== SPINNER / LOADING ======================================== */.spinner{width:20px;height:20px;border:2px solid var(--color-slate-200);border-top-color:var(--color-primary-600);border-radius:50%;animation:spin 0.6s linear infinite;}.spinner-lg{width:36px;height:36px;border-width:3px;}@keyframes spin{to{transform:rotate(360deg);}}/* ======================================== DIVIDER ======================================== */.divider{height:1px;background:var(--color-slate-200);margin:var(--space-6) 0;border:none;}.divider-text{display:flex;align-items:center;gap:var(--space-4);color:var(--color-slate-400);font-size:var(--text-sm);margin:var(--space-6) 0;}.divider-text::before,.divider-text::after{content:'';flex:1;height:1px;background:var(--color-slate-200);}/* ======================================== EMPTY STATE ======================================== */.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-slate-400);}.empty-state svg{width:48px;height:48px;margin:0 auto var(--space-4);color:var(--color-slate-300);}.empty-state h4{color:var(--color-slate-600);margin-bottom:var(--space-2);}.empty-state p{color:var(--color-slate-400);max-width:360px;margin:0 auto;}/* ======================================== UPLOAD FORM ======================================== */.upload-section{background:var(--color-slate-50);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-slate-200);margin-bottom:var(--space-6);}.upload-section h3{margin-bottom:var(--space-4);}.upload-device-info{background:rgba(6,90,130,0.08);border:1px solid var(--color-primary-500);color:var(--color-primary-600);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-5);font-size:var(--text-sm);}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-5);}.upload-box{background:var(--color-surface);border:2px dashed var(--color-slate-300);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;cursor:pointer;transition:all var(--transition-base);}.upload-box:hover{border-color:var(--color-primary-500);background:rgba(6,90,130,0.03);}.upload-box.has-file{border-color:var(--color-primary-500);border-style:solid;}.upload-label{font-weight:var(--font-semibold);margin-bottom:var(--space-1);}.upload-hint{font-size:var(--text-sm);color:var(--color-slate-400);}.upload-size{font-size:var(--text-xs);margin-top:var(--space-1);color:var(--color-primary-600);}.upload-progress{margin-bottom:var(--space-4);}.progress-track{background:var(--color-slate-200);border-radius:var(--radius-sm);height:8px;overflow:hidden;}.progress-fill{background:var(--color-primary-600);height:100%;width:0%;transition:width 0.3s ease;}.upload-status{text-align:center;margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-slate-500);}.validation-card{background:var(--color-slate-50);border-radius:var(--radius-md);padding:var(--space-5);margin-top:var(--space-5);}.validation-card.approved{border:1px solid var(--color-success-500);}.validation-card.rejected{border:1px solid var(--color-error-500);}@media (max-width:480px){.upload-grid{grid-template-columns:1fr;}}
/* === layout.css === */
/* * Aviometrics Layout * Navbar,Footer,Grid,Hero,Sections * Version:1.0.0 *//* ======================================== NAVBAR ======================================== */.navbar{position:sticky;top:0;z-index:var(--z-sticky);background:var(--color-surface);border-bottom:1px solid var(--color-slate-200);box-shadow:0 1px 3px rgba(0,0,0,0.04);height:64px;}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-6);}/* Logo */.navbar-brand{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;flex-shrink:0;}.navbar-brand-text{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-primary-700);letter-spacing:-0.02em;}.navbar-brand-icon{width:32px;height:32px;background:var(--color-primary-600);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;}.navbar-brand-icon svg{width:18px;height:18px;}/* Nav links */.navbar-links{display:flex;align-items:center;gap:var(--space-1);list-style:none;}.navbar-link{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-slate-600);text-decoration:none;border-radius:var(--radius-sm);transition:all var(--transition-fast);white-space:nowrap;}.navbar-link:hover{color:var(--color-primary-600);background:var(--color-primary-50);}.navbar-link.active{color:var(--color-primary-600);background:var(--color-primary-50);}.navbar-link svg{width:16px;height:16px;}/* Dropdown wrapper for nav items */.navbar-dropdown-wrapper{position:relative;}.navbar-dropdown-trigger{border:none;background:none;cursor:pointer;font-family:var(--font-sans);}.navbar-dropdown-nav{left:0;right:auto;}/* Nav actions (right side) */.navbar-actions{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;}/* User dropdown */.navbar-user{position:relative;}.navbar-user-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:none;border:1px solid var(--color-slate-200);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans);color:var(--color-slate-700);}.navbar-user-btn:hover{border-color:var(--color-slate-300);background:var(--color-slate-50);}.navbar-avatar{width:32px;height:32px;background:var(--color-primary-100);color:var(--color-primary-700);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:var(--font-semibold);}.navbar-user-name{font-size:var(--text-sm);font-weight:var(--font-medium);max-width:120px;overflow:hidden;text-overflow:ellipsis;}.navbar-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--color-surface);border:1px solid var(--color-slate-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:200px;padding:var(--space-2);opacity:0;visibility:hidden;transform:translateY(-4px);transition:all var(--transition-fast);z-index:var(--z-dropdown);}.navbar-dropdown.open{opacity:1;visibility:visible;transform:translateY(0);}.navbar-dropdown-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-slate-600);border-radius:var(--radius-sm);transition:all var(--transition-fast);text-decoration:none;border:none;background:none;width:100%;cursor:pointer;font-family:var(--font-sans);}.navbar-dropdown-item:hover{background:var(--color-slate-50);color:var(--color-slate-800);}.navbar-dropdown-item svg{width:16px;height:16px;color:var(--color-slate-400);}.navbar-dropdown-divider{height:1px;background:var(--color-slate-100);margin:var(--space-2) 0;}.navbar-dropdown-item.danger{color:var(--color-error-600);}.navbar-dropdown-item.danger svg{color:var(--color-error-400);}/* Mobile menu toggle */.navbar-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--space-2);color:var(--color-slate-600);}.navbar-toggle svg{width:24px;height:24px;}/* Mobile menu */.navbar-mobile{display:none;position:absolute;top:64px;left:0;right:0;background:var(--color-surface);border-bottom:1px solid var(--color-slate-200);box-shadow:var(--shadow-lg);padding:var(--space-4);z-index:var(--z-dropdown);}.navbar-mobile.open{display:block;}.navbar-mobile .navbar-link{display:flex;padding:var(--space-3) var(--space-4);font-size:var(--text-base);border-radius:var(--radius-md);}.navbar-mobile .navbar-actions{flex-direction:column;padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--color-slate-200);}.navbar-mobile .btn{width:100%;}@media (max-width:768px){.navbar-links{display:none;}.navbar-actions.desktop-only{display:none;}.navbar-toggle{display:block;}}/* ======================================== FOOTER ======================================== */.footer{background:var(--color-slate-800);border-top:none;padding:var(--space-16) 0 var(--space-8);margin-top:auto;color:rgba(255,255,255,0.7);}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:var(--space-10);margin-bottom:var(--space-12);}.footer-brand p{color:rgba(255,255,255,0.5);font-size:var(--text-sm);margin-top:var(--space-3);max-width:280px;line-height:var(--leading-relaxed);}.footer .navbar-brand-text{color:#fff;}.footer-heading{font-size:var(--text-sm);font-weight:var(--font-semibold);color:#fff;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:var(--space-4);}.footer-links{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);}.footer-links a{font-size:var(--text-sm);color:rgba(255,255,255,0.5);transition:color var(--transition-fast);}.footer-links a:hover{color:var(--color-accent-500);}.footer-newsletter{margin-bottom:var(--space-12);padding:var(--space-8);background:rgba(255,255,255,0.05);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,0.1);text-align:center;}.footer-newsletter h3{margin-bottom:var(--space-2);color:#fff;}.footer-newsletter p{color:rgba(255,255,255,0.5);margin-bottom:var(--space-4);}.footer-newsletter-form{display:flex;gap:var(--space-3);max-width:440px;margin:0 auto;}.footer-newsletter-form .form-input{flex:1;}.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-8);border-top:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.4);font-size:var(--text-sm);}.footer-social{display:flex;gap:var(--space-4);}.footer-social a{color:rgba(255,255,255,0.4);transition:color var(--transition-fast);}.footer-social a:hover{color:var(--color-accent-500);}.footer-social svg{width:20px;height:20px;}@media (max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-8);}.footer-brand{grid-column:span 2;}.footer-newsletter-form{flex-direction:column;}.footer-bottom{flex-direction:column;gap:var(--space-4);text-align:center;}}@media (max-width:480px){.footer-grid{grid-template-columns:1fr;}.footer-brand{grid-column:span 1;}}/* ======================================== GRID SYSTEM ======================================== */.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6);}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);}@media (max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr);}}@media (max-width:768px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;}.grid-4{grid-template-columns:1fr;}}/* ======================================== HERO SECTIONS ======================================== */.hero{padding:var(--space-20) 0;text-align:center;background:linear-gradient(180deg,#FFFFFF 0%,#EDF5F9 100%);}.hero h1{font-size:var(--text-5xl);color:var(--color-slate-900);margin-bottom:var(--space-4);max-width:800px;margin-left:auto;margin-right:auto;}.hero .hero-subtitle{font-size:var(--text-xl);color:var(--color-slate-500);max-width:600px;margin:0 auto var(--space-8);line-height:var(--leading-relaxed);}.hero .btn-group{justify-content:center;}.hero-bg{background-size:cover;background-position:center;background-repeat:no-repeat;position:relative;}.hero-bg::before{content:'';position:absolute;inset:0;background:rgba(15,23,42,0.55);z-index:0;}.hero-bg > *{position:relative;z-index:1;}.hero-bg h1,.hero-bg .hero-subtitle,.hero-bg .section-label,.hero-bg p{color:#fff;}.hero-bg .hero-subtitle{color:rgba(255,255,255,0.85);}.hero-bg .section-label{color:rgba(255,255,255,0.7);}.hero-sm{padding:var(--space-16) 0 var(--space-12);}.hero-sm h1{font-size:var(--text-4xl);}@media (max-width:768px){.hero{padding:var(--space-16) 0 var(--space-12);}.hero h1{font-size:var(--text-3xl);}.hero .hero-subtitle{font-size:var(--text-lg);}}/* ======================================== PAGE SECTIONS ======================================== */.section{padding:var(--space-20) 0;}.section-alt{background:var(--color-slate-50);}.section-header{text-align:center;margin-bottom:var(--space-12);max-width:700px;margin-left:auto;margin-right:auto;}.section-header h2{margin-bottom:var(--space-3);}.section-header p{color:var(--color-slate-500);font-size:var(--text-lg);}.section-sm{padding:var(--space-12) 0;}@media (max-width:768px){.section{padding:var(--space-12) 0;}.section-header{margin-bottom:var(--space-8);}}/* ======================================== AUTH LAYOUT (login,register,etc.) ======================================== */.auth-page{background:var(--color-slate-50);}.auth-card{width:100%;max-width:440px;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200);overflow:hidden;}.auth-card-wide{max-width:560px;}.auth-header{padding:var(--space-8) var(--space-8) var(--space-4);text-align:center;}.auth-logo{width:56px;height:56px;background:var(--color-primary-600);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-5);color:#fff;}.auth-logo svg{width:28px;height:28px;}.auth-header h1{font-size:var(--text-2xl);margin-bottom:var(--space-1);}.auth-header p{color:var(--color-slate-500);font-size:var(--text-sm);}.auth-body{padding:var(--space-4) var(--space-8) var(--space-8);}.auth-footer{text-align:center;padding:var(--space-5) var(--space-8);background:var(--color-slate-50);border-top:1px solid var(--color-slate-200);font-size:var(--text-sm);color:var(--color-slate-500);}.auth-footer a{font-weight:var(--font-semibold);}.auth-back-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-slate-500);font-size:var(--text-sm);margin-bottom:var(--space-6);transition:color var(--transition-fast);}.auth-back-link:hover{color:var(--color-primary-600);}.auth-back-link svg{width:16px;height:16px;}/* Auth container — centers the card between nav and footer */.auth-container{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:var(--space-8) var(--space-4);background:var(--color-slate-50);}.auth-card h1{font-size:var(--text-2xl);text-align:center;margin-bottom:var(--space-6);}.auth-card{padding:var(--space-8);}.auth-form .form-group{margin-bottom:var(--space-4);}.auth-form .form-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);}.password-input-wrapper{position:relative;}.password-input-wrapper .form-input{padding-right:var(--space-10);}.password-toggle{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-slate-400);padding:var(--space-1);display:flex;align-items:center;}.password-toggle:hover{color:var(--color-slate-600);}.password-strength{font-size:var(--text-xs);margin-top:var(--space-1);}.password-strength.strength-weak{color:var(--color-error-500);}.password-strength.strength-moderate{color:var(--color-warning-500);}.password-strength.strength-strong{color:var(--color-success-500);}.checkbox-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-slate-600);cursor:pointer;}.checkbox-label input[type="checkbox"]{accent-color:var(--color-primary-600);}.text-link{color:var(--color-primary-600);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;}.text-link:hover{color:var(--color-primary-700);text-decoration:underline;}.text-success{color:var(--color-success-500);}.text-error{color:var(--color-error-500);}@media (max-width:480px){.auth-page{padding:var(--space-4);}.auth-container{padding:var(--space-6) var(--space-4);min-height:auto;}.auth-card{padding:var(--space-5);}.auth-header{padding:var(--space-6) var(--space-5) var(--space-3);}.auth-body{padding:var(--space-3) var(--space-5) var(--space-6);}.auth-footer{padding:var(--space-4) var(--space-5);}}/* Extra-small screens */@media (max-width:360px){.hero{padding:3rem 0 2rem;}.hero h1{font-size:1.5rem;}.hero-subtitle{font-size:0.9375rem;}.section{padding:2rem 0;}.footer-grid{gap:1.5rem;}.footer-newsletter-form .btn{width:100%;}.auth-page{padding:var(--space-3);}.auth-card{padding:var(--space-4);}}/* ======================================== PAGE BODY (below navbar) ======================================== */.page-body{min-height:calc(100vh - 64px);display:flex;flex-direction:column;}/* Document / prose content */.prose{max-width:720px;margin:0 auto;}.prose h2{margin-top:var(--space-10);}.prose h3{margin-top:var(--space-8);}.prose p{line-height:var(--leading-relaxed);}.prose ul,.prose ol{padding-left:var(--space-6);margin-bottom:var(--space-4);}.prose ul{list-style:disc;}.prose ol{list-style:decimal;}.prose li{margin-bottom:var(--space-2);line-height:var(--leading-relaxed);}.prose a{color:var(--color-primary-600);text-decoration:underline;}.prose strong{color:var(--color-slate-800);font-weight:var(--font-semibold);}.prose code{background:var(--color-slate-100);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-mono);}
