:root{--color-brand-orange: #E84C0E;--color-brand-orange-dark: #C23D08;--color-brand-orange-light: #FF6B35;--color-brand-orange-glow: rgba(232, 76, 14, .15);--color-bg-primary: #0F0F0F;--color-bg-secondary: #1A1A1A;--color-surface: #242424;--color-surface-elevated: #2E2E2E;--color-surface-hover: #353535;--color-border: #383838;--color-border-light: #444444;--color-text-primary: #FFFFFF;--color-text-secondary: #A3A3A3;--color-text-tertiary: #666666;--color-text-inverse: #0F0F0F;--color-safe-zone: #22C55E;--color-safe-zone-bg: rgba(34, 197, 94, .1);--color-structural-alert: #EF4444;--color-structural-alert-bg:rgba(239, 68, 68, .1);--color-warning: #F59E0B;--color-warning-bg: rgba(245, 158, 11, .1);--color-info: #3B82F6;--color-info-bg: rgba(59, 130, 246, .1);--color-cat-laminas: rgba(59, 130, 246, .2);--color-cat-estructura: rgba(34, 197, 94, .2);--color-cat-caballetes: rgba(232, 76, 14, .2);--color-cat-fijacion: rgba(163, 163, 163, .2);--color-cat-selladores: rgba(168, 85, 247, .2);--color-cat-resumen: rgba(234, 179, 8, .2);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-black: 900;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--spacing-field-ready: 3.5rem;--spacing-field-ready-sm: 2.75rem;--touch-target-min: 44px;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-brand: 0 4px 20px rgba(232, 76, 14, .25);--transition-fast: .1s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1);--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--header-height: 4rem;--sidebar-width: 16rem;--z-base: 0;--z-raised: 10;--z-overlay: 100;--z-modal: 200;--z-toast: 300;--z-tooltip: 400}[data-theme=light]{--color-bg-primary: #F5F5F5;--color-bg-secondary: #EEEEEE;--color-surface: #FFFFFF;--color-surface-elevated: #F9F9F9;--color-surface-hover: #F0F0F0;--color-border: #E0E0E0;--color-border-light: #CCCCCC;--color-text-primary: #111111;--color-text-secondary: #555555;--color-text-tertiary: #888888;--color-text-inverse: #FFFFFF}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--color-bg-primary: #F5F5F5;--color-bg-secondary: #EEEEEE;--color-surface: #FFFFFF;--color-surface-elevated: #F9F9F9;--color-surface-hover: #F0F0F0;--color-border: #E0E0E0;--color-border-light: #CCCCCC;--color-text-primary: #111111;--color-text-secondary: #555555;--color-text-tertiary: #888888}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-normal);line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,video,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:1.2;letter-spacing:-.02em}p{line-height:1.6}:focus-visible{outline:2px solid var(--color-brand-orange);outline-offset:2px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-brand-orange)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.flex-center{display:flex;align-items:center;justify-content:center}.container{width:100%;max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-4)}@media(min-width:768px){.container{padding:0 var(--space-6)}}.skeleton{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface-elevated) 50%,var(--color-surface) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-alert{0%,to{opacity:1}50%{opacity:.5}}@keyframes resultBounce{0%{transform:scale(.95)}60%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease}.animate-slide-up{animation:slideUp var(--transition-slow) ease}.animate-slide-down{animation:slideDown var(--transition-slow) ease}.animate-slide-right{animation:slideInRight var(--transition-base) ease}.animate-scale-in{animation:scaleIn var(--transition-spring)}.animate-result{animation:resultBounce var(--transition-spring)}.animate-shake{animation:shake .3s ease}.animate-spin{animation:spin .8s linear infinite}.animate-pulse-alert{animation:pulse-alert 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
