:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SF Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.125rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--color-danger:#ed3d31;--color-danger-light:#ffeceb;--color-danger-dark:#c5261b;--color-safe:#007bff;--color-safe-light:#e6f2ff;--color-safe-dark:#1368c3;--color-organic:#1fb757;--color-organic-light:#edfdf3;--color-organic-dark:#1d8644;--color-success:#1fb757;--color-warning:#ffa200;--color-warning-light:#fff6e6;--color-primary:#336aeb;--color-primary-light:#ebf1ff;--color-primary-dark:#1d4fc3;--surface-primary:#f7f7f7;--surface-secondary:#fff;--surface-elevated:#fff;--surface-grouped:#f0f0f0;--surface-glass:#ffffffb8;--text-primary:#121212;--text-secondary:#666;--text-tertiary:#999;--text-placeholder:#b8b8b8;--text-on-color:#fff;--border-color:#0000001f;--border-color-mid:#0003;--separator:#00000014;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--shadow-lg:0 10px 15px #00000014, 0 4px 6px #0000000d;--shadow-xl:0 20px 25px #0000001a, 0 10px 10px #0000000a;--shadow-card:0 2px 8px #00000014, 0 0 0 1px #0000000f;--tab-bar-height:83px;--top-bar-height:56px;--content-max-width:480px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--transition-spring:.4s cubic-bezier(.34, 1.56, .64, 1)}@media (prefers-color-scheme:dark){:root{--surface-primary:#1a1a1a;--surface-secondary:#242424;--surface-elevated:#2e2e2e;--surface-grouped:#1f1f1f;--surface-glass:#242424cc;--text-primary:#f5f5f5;--text-secondary:#a6a6a6;--text-tertiary:#7a7a7a;--text-placeholder:#5c5c5c;--border-color:#ffffff1f;--border-color-mid:#fff3;--separator:#ffffff14;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 6px #00000059;--shadow-lg:0 10px 15px #0006;--shadow-card:0 2px 8px #0006, 0 0 0 1px #ffffff0f}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box;touch-action:manipulation;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);background-color:var(--surface-primary);color:var(--text-primary);min-height:100dvh;line-height:1.5;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}.page-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-primary);text-wrap:balance;letter-spacing:-.02em;line-height:1.15}.section-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-xs);padding:var(--space-4) var(--space-4) var(--space-2)}.card{background:var(--surface-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.card-section{background:var(--surface-secondary);border-radius:var(--radius-lg);overflow:hidden}.card-section .card-row{padding:var(--space-4);border-bottom:1px solid var(--separator);align-items:center;gap:var(--space-3);min-height:44px;display:flex}.card-section .card-row:last-child{border-bottom:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;transition:opacity var(--transition-fast), transform var(--transition-fast), background-color var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:var(--text-on-color)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-danger{background:var(--color-danger);color:var(--text-on-color)}.btn-danger:hover:not(:disabled){background:var(--color-danger-dark)}.btn-secondary{background:var(--surface-grouped);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){opacity:.8}.btn-ghost{color:var(--color-primary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-primary-light)}.btn-full{border-radius:var(--radius-lg);width:100%}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary)}.input{width:100%;min-height:44px;padding:var(--space-3) var(--space-4);background:var(--surface-secondary);border:1.5px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-md);color:var(--text-primary);transition:border-color var(--transition-fast);appearance:none;outline:none}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #336aeb26}.input::placeholder{color:var(--text-placeholder)}.input-error{border-color:var(--color-danger)}.input-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #ed3d3126}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}.segmented-control{background:var(--surface-grouped);border-radius:var(--radius-md);gap:3px;padding:3px;display:flex;position:relative}.segmented-control-btn{min-height:32px;padding:var(--space-2) var(--space-3);border-radius:calc(var(--radius-md) - 2px);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;flex:1}.segmented-control-btn[aria-selected=true]{background:var(--surface-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.segmented-control-btn[aria-selected=true].danger{background:var(--color-danger);color:var(--text-on-color)}.segmented-control-btn[aria-selected=true].safe{background:var(--color-safe);color:var(--text-on-color)}.tab-bar{max-width:var(--content-max-width);height:var(--tab-bar-height);padding-bottom:env(safe-area-inset-bottom,16px);padding-left:var(--space-2);padding-right:var(--space-2);background:var(--surface-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border-top:1px solid var(--border-color);z-index:100;justify-content:space-around;align-items:center;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar-item{min-height:44px;padding:var(--space-1) var(--space-2);cursor:pointer;color:var(--text-tertiary);transition:color var(--transition-fast);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex}.tab-bar-item[aria-selected=true]{color:var(--color-primary)}.tab-bar-item-label{font-size:10px;font-weight:var(--weight-medium);line-height:1}.top-bar{z-index:50;height:var(--top-bar-height);background:var(--surface-glass);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--border-color);padding:0 var(--space-4);align-items:center;display:flex;position:sticky;top:0}.top-bar-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary);text-align:center;flex:1}.dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;padding:0 var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0px));background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}dialog{border-radius:var(--radius-xl) var(--radius-xl) var(--radius-md) var(--radius-md);background:var(--surface-secondary);max-width:calc(var(--content-max-width) - var(--space-8));width:100%;padding:var(--space-6);box-shadow:var(--shadow-xl);overscroll-behavior:contain;border:none;outline:none}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006}.badge{padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);align-items:center;line-height:1;display:inline-flex}.badge-danger{background:var(--color-danger-light);color:var(--color-danger-dark)}.badge-safe{background:var(--color-safe-light);color:var(--color-safe-dark)}.badge-success{background:var(--color-organic-light);color:var(--color-organic-dark)}.badge-warning{background:var(--color-warning-light);color:#b37100}.badge-neutral{background:var(--surface-grouped);color:var(--text-secondary)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2.5px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.stepper{align-items:center;gap:var(--space-2);background:var(--surface-grouped);border-radius:var(--radius-full);padding:3px;display:flex}.stepper-btn{background:var(--surface-secondary);width:36px;height:36px;color:var(--color-primary);font-size:var(--text-xl);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), opacity var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.stepper-btn:active{transform:scale(.92)}.stepper-btn:disabled{opacity:.3;cursor:not-allowed}.stepper-value{text-align:center;min-width:36px;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.switch-row{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:44px;display:flex}.switch-label{font-size:var(--text-md);color:var(--text-primary);flex:1}.switch{flex-shrink:0;width:51px;height:31px;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch-track{border-radius:var(--radius-full);background:var(--border-color-mid);transition:background var(--transition-normal);cursor:pointer;position:absolute;inset:0}.switch input:checked+.switch-track{background:var(--color-organic)}.switch-track:after{content:"";width:27px;height:27px;transition:transform var(--transition-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #00000040}.switch input:checked+.switch-track:after{transform:translate(20px)}.residuo-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.residuo-card{background:var(--surface-secondary);border-radius:var(--radius-md);padding:var(--space-4);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-card);align-items:center;gap:var(--space-2);text-align:center;border:2px solid #0000;flex-direction:column;justify-content:center;min-height:90px;display:flex}.residuo-card:hover{transform:scale(1.02)}.residuo-card:active{transform:scale(.97)}.residuo-card.selected-danger{border-color:var(--color-danger);background:var(--color-danger-light)}.residuo-card.selected-safe{border-color:var(--color-safe);background:var(--color-safe-light)}.residuo-card-icon{font-size:28px;line-height:1}.residuo-card-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:1.3}@keyframes slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}.toast{bottom:calc(var(--tab-bar-height) + var(--space-4));left:var(--space-4);right:var(--space-4);max-width:calc(var(--content-max-width) - var(--space-8));background:var(--text-primary);color:var(--surface-primary);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);box-shadow:var(--shadow-xl);z-index:300;align-items:center;gap:var(--space-3);animation:slide-up .4s var(--transition-spring) forwards;margin:0 auto;display:flex;position:fixed}.firma-canvas-container{border:2px dashed var(--border-color-mid);border-radius:var(--radius-lg);background:var(--surface-secondary);position:relative;overflow:hidden}.firma-canvas-placeholder{color:var(--text-placeholder);font-size:var(--text-sm);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.auditoria-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.auditoria-table th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--separator);background:var(--surface-grouped)}.auditoria-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--separator);color:var(--text-primary);vertical-align:middle}.auditoria-table tr:last-child td{border-bottom:none}.auditoria-table tr:hover td{background:var(--surface-grouped)}.admin-table-wrapper{border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow-x:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.w-full{width:100%}.text-muted{color:var(--text-secondary)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.font-semibold{font-weight:var(--weight-semibold)}
