:root{--color-primary: #1E3A8A;--color-secondary: #EA580C;--color-bg: #F9FAFB;--color-text: #1F2937;--color-error: #DC2626;--color-success: #16A34A;--color-warning: #D97706;--color-brand-navy: #1E3A8A;--color-brand-navy-dark: #17306E;--color-brand-orange: #EA580C;--color-brand-orange-dark: #C2410C;--color-brand-gray-light: #D1D5DB;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-heading: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;letter-spacing:-.01em}.page{padding:1rem;max-width:768px;margin:0 auto;min-height:100vh}.page.center{display:flex;align-items:center;justify-content:center}.btn-primary{background:var(--color-primary);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;cursor:pointer;width:100%}.btn-secondary{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary);padding:12px 24px;border-radius:8px;font-size:16px;cursor:pointer;width:100%}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;padding:8px 0}.app-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-bottom:1px solid #e5e7eb;position:relative}.app-header .logo{width:32px;height:32px;object-fit:contain}.app-header .app-name{flex:1;font-weight:600}.app-header .header-nav{position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid #e5e7eb;padding:.5rem;display:flex;flex-direction:column;gap:.25rem;z-index:100;box-shadow:0 4px 6px #0000001a}.app-header .header-nav a,.app-header .header-nav button{text-align:left}.connectivity-badge{font-size:.875rem;display:flex;align-items:center;gap:.25rem}.connectivity-badge .dot{width:8px;height:8px;border-radius:50%}.connectivity-badge .dot.online{background:var(--color-success)}.connectivity-badge .dot.offline{background:var(--color-error)}.sync-indicator-wrapper{position:relative;margin-left:.5rem;display:inline-block}.sync-indicator{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;background:transparent;border:1px solid rgba(0,0,0,.1);border-radius:999px;padding:.25rem .6rem;cursor:pointer;color:inherit}.sync-indicator:focus-visible{outline:2px solid var(--color-primary, #2563eb);outline-offset:2px}.sync-dot{width:16px;height:16px;border-radius:50%;display:inline-block;box-shadow:0 0 0 2px #fff6}.sync-dot--red{background:var(--color-error, #dc2626)}.sync-dot--yellow{background:var(--color-warning, #f59e0b);animation:sync-pulse 1.4s ease-in-out infinite}.sync-dot--green{background:var(--color-success, #16a34a)}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.55}}.sync-label{white-space:nowrap}.sync-indicator-details{position:absolute;right:0;top:100%;margin-top:.35rem;background:#fff;color:#111;border:1px solid rgba(0,0,0,.15);border-radius:.5rem;padding:.5rem .75rem;font-size:.8rem;box-shadow:0 4px 12px #0000001f;z-index:20;min-width:200px}.sync-indicator-details .sync-error{color:var(--color-error, #dc2626);margin-top:.25rem}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center}.login-badge{position:absolute;top:1rem;right:1rem}.login-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;width:100%;max-width:360px}.login-card h1{text-align:center;margin-bottom:1.5rem;font-size:1.5rem}.login-card label{display:block;margin-bottom:1rem}.login-card input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px}.login-card .password-wrap{display:flex;gap:.5rem}.login-card .password-wrap input{flex:1}.login-card .error{color:var(--color-error);font-size:.875rem;margin-top:.25rem}.login-card .btn-primary{margin-top:1rem}.login-logo{width:64px;height:64px;margin:0 auto 1rem;display:block;object-fit:contain}form label{display:block;margin-bottom:.75rem}form label input,form label select{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px}form .error{color:var(--color-error);font-size:.875rem}.grabado-list{list-style:none}.grabado-card{display:block;padding:1rem;background:#fff;border-radius:8px;margin-bottom:.5rem;text-decoration:none;color:inherit;border:1px solid #e5e7eb}.grabado-card-patente{font-weight:700;font-size:1.125rem}.grabado-card-meta{font-size:.875rem;color:#6b7280;margin-top:.25rem}.home-main{padding:1rem 0;position:relative;padding-bottom:80px}.home-selectors{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.selector-group{display:flex;flex-direction:column;gap:.35rem}.selector-label{font-size:.8125rem;font-weight:500;color:#6b7280}.toggle-row{display:flex;gap:.5rem}.toggle-btn{flex:1;min-height:48px;font-size:1rem;font-weight:600;border:2px solid var(--color-brand-gray-light);background:#fff;color:var(--color-text);border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.toggle-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.fab{position:fixed;bottom:2rem;right:1rem;width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:1.5rem;cursor:pointer;box-shadow:0 2px 8px #00000026}.flujo-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.flujo-progress{display:flex;gap:.5rem;margin-bottom:1.5rem}.flujo-progress .dot{width:10px;height:10px;border-radius:50%;background:#e5e7eb}.flujo-progress .dot.done{background:var(--color-primary)}.vidrio-step{text-align:center}.vidrio-step .vidrio-patente{margin:1rem 0;letter-spacing:.1em}.vidrio-step .vidrio-nombre{font-size:1.125rem;margin-bottom:.5rem}.vidrio-step .vidrio-count{font-size:.875rem;color:#6b7280;margin-bottom:1rem}.vidrio-step .btn-primary{margin-bottom:.5rem}.vidrio-step .btn-link{margin-bottom:1rem;display:block}.vidrio-step .btn-secondary{margin-top:.5rem}.menu-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem}.page-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.page-header h1{font-size:1.25rem;font-weight:600}.icon-button{background:none;border:none;padding:.25rem;font-size:1.25rem;cursor:pointer}.form-page form label{font-size:.8125rem;color:#6b7280;font-weight:500;margin-bottom:1rem}.form-page form label .error{font-size:.75rem}.form-page form label input,.form-page form label select{font-size:1rem;color:var(--color-text);min-height:48px;padding:10px 12px}.form-page form label input.input-primary{font-size:1.75rem;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.05em;min-height:56px;padding:12px 14px}.form-page form label input.input-primary-sm{font-size:1.25rem;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;letter-spacing:.04em;min-height:52px;padding:12px 14px}
