:root{--bg:#f4f6f9;--surface:#fff;--surface2:#f8f9fa;--border:#dee2e6;--text:#212529;--muted:#6c757d;--accent:#3c8dbc;--blue:#3c8dbc;--red:#dd4b39;--green:#00a65a;--yellow:#f39c12;--orange:#fd7e14;--sidebar-bg:#222d32;--sidebar-text:#b8c7ce;--sidebar-border:#fff1;--sidebar-label:#ffffff4d;--sidebar-hover-bg:#1e282c;--sidebar-active-bg:#1e282c;--sidebar-active-text:#fff;--header-bg:#1e3a5f;--header-text:#fff;--sans:"Source Sans Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--shadow-sm:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow:0 2px 8px #00000017}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;font-size:14px}.app-header{background:var(--header-bg);z-index:100;align-items:center;gap:12px;height:50px;padding:0 15px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #0003}.app-header .logo{color:var(--header-text);white-space:nowrap;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.app-header .logo-icon{color:#fff;background:#ffffff26;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.app-header .divider{flex:1}.header-btn{color:#ffffffb3;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:6px 8px;font-size:18px;line-height:1;transition:color .15s,background .15s;display:flex}.header-btn:hover{color:#fff;background:#ffffff1a}.header-sep{color:#ffffff59;flex-shrink:0;font-size:16px}.header-subtitle{color:#ffffffbf;flex-shrink:0;font-size:14px}.header-right-icons{flex-shrink:0;align-items:center;gap:4px;display:flex}.progress-bar-wrap{color:#ffffffa6;align-items:center;gap:10px;font-size:12px;display:flex}.progress-bar{background:#fff3;border-radius:3px;width:120px;height:4px;overflow:hidden}.progress-fill{background:#fffc;border-radius:3px;height:100%;transition:width .4s}.header-user{color:#ffffffd9;align-items:center;gap:7px;padding:0 4px;font-size:13px;display:flex}.header-user-avatar{color:#fff;text-transform:uppercase;background:#fff3;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.btn{cursor:pointer;font-family:var(--sans);border:1px solid #0000;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:500;line-height:1.5;transition:all .15s}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover{background:#367fa9;border-color:#367fa9}.btn-primary:disabled{opacity:.65;cursor:not-allowed}.btn-ghost{color:#ffffffbf;background:0 0;border-color:#ffffff4d}.btn-ghost:hover{color:#fff;border-color:#fff9}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.btn-outline{color:var(--blue);border-color:var(--blue);background:0 0}.btn-outline:hover{background:var(--blue);color:#fff}.btn-secondary{color:#fff;background:#6c757d;border-color:#6c757d}.btn-secondary:hover{background:#5a6268}.layout{grid-template-columns:210px 1fr;min-height:calc(100vh - 50px);display:grid}.sidebar{background:var(--sidebar-bg);max-height:calc(100vh - 50px);position:sticky;top:50px;overflow-y:auto}.sidebar-search{border-bottom:1px solid var(--sidebar-border);padding:8px 10px}.sidebar-search-wrap{background:#ffffff14;border:1px solid #ffffff1a;border-radius:3px;align-items:center;gap:6px;padding:4px 8px;display:flex}.sidebar-search-icon{color:#fff6;flex-shrink:0;font-size:13px}.sidebar-search-input{color:#fffc;font-family:var(--sans);background:0 0;border:none;outline:none;width:100%;font-size:12px}.sidebar-search-input::placeholder{color:#ffffff59}.sidebar-section{border-bottom:1px solid var(--sidebar-border);padding:12px 14px}.sidebar-label{color:var(--sidebar-label);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;padding:0 2px;font-size:10px;font-weight:600}.meta-row{border-bottom:1px solid var(--sidebar-border);justify-content:space-between;align-items:center;padding:4px 2px;font-size:12px;display:flex}.meta-row:last-child{border-bottom:none}.meta-key{color:var(--sidebar-text);opacity:.75}.meta-val{color:var(--sidebar-text);font-weight:600;font-family:var(--mono);font-size:12px}.meta-val.accent{color:#4db3ff}.item-list{padding:4px 0}.item-btn{text-align:left;cursor:pointer;width:100%;font-family:var(--sans);color:var(--sidebar-text);background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:8px;padding:9px 14px 9px 11px;font-size:13px;transition:all .15s;display:flex}.item-btn:hover{background:var(--sidebar-hover-bg);color:#fff}.item-btn.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);border-left-color:var(--blue)}.item-btn.done{color:#8cc57a}.item-btn.done .status-dot{background:var(--green)}.item-btn.pending .status-dot{background:#ffffff40}.item-btn.active .status-dot{background:#ffffffe6}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.item-num{font-family:var(--mono);opacity:.65;font-size:11px}.main{padding:20px 24px}.form-header{margin-bottom:20px}.form-header h2{color:var(--text);margin-bottom:4px;font-size:20px;font-weight:700}.form-header .subtitle{color:var(--muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:4px;margin-bottom:16px}.card-header{background:var(--surface);border-bottom:3px solid var(--blue);border-radius:4px 4px 0 0;align-items:center;gap:10px;padding:10px 16px;display:flex}.card-header h3{color:var(--text);font-size:14px;font-weight:600}.card-header .tag{color:var(--blue);text-transform:uppercase;letter-spacing:.04em;background:#e7f1ff;border:1px solid #b8d4ff;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:600}.card-body{padding:16px}.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.form-grid.wide{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.field{flex-direction:column;gap:5px;display:flex}.field.span2{grid-column:span 2}.field.span3{grid-column:span 3}.field label{color:var(--muted);font-size:12px;font-weight:600}.field input,.field select,.field textarea{background:var(--surface);color:var(--text);font-family:var(--sans);border:1px solid #ced4da;border-radius:3px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 2px #3c8dbc33}.field textarea{resize:vertical;min-height:70px}@keyframes spin{to{transform:rotate(360deg)}}.presiones-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.presion-box{background:var(--surface2);border:1px solid var(--border);text-align:center;border-radius:4px;padding:20px}.presion-box .p-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:11px;font-weight:600}.presion-box input{border:none;border-bottom:2px solid var(--border);width:100%;color:var(--blue);font-family:var(--mono);text-align:center;background:0 0;border-radius:0;outline:none;padding:4px 0;font-size:26px;font-weight:700;transition:border-color .15s}.presion-box input:focus{border-bottom-color:var(--blue)}.presion-box .p-unit{color:var(--muted);margin-top:6px;font-size:11px;font-weight:500}.espesores-table{border-collapse:collapse;width:100%;font-size:13px}.espesores-table th{background:var(--surface2);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;text-align:center;border:1px solid var(--border);padding:8px 12px;font-size:11px;font-weight:600}.espesores-table td{border:1px solid var(--border);text-align:center;padding:7px 12px}.espesores-table tr:nth-child(2n) td{background:#fafbfc}.espesores-table td.pos-label{font-family:var(--mono);color:var(--muted);background:var(--surface2);text-align:left;font-weight:500}.espesores-table td input{color:var(--text);font-family:var(--mono);text-align:center;background:0 0;border:none;outline:none;width:80px;padding:2px;font-size:13px}.espesores-table td input:focus{background:#3c8dbc14;border-radius:3px}.nominal{color:var(--muted);font-family:var(--mono)}.minimo{color:var(--red);font-family:var(--mono);font-weight:600}.add-espesor-btn{border:1px dashed var(--blue);color:var(--blue);cursor:pointer;font-size:12px;font-family:var(--sans);background:#e7f1ff;border-radius:4px;align-items:center;gap:6px;margin-top:12px;padding:6px 14px;font-weight:500;transition:all .15s;display:inline-flex}.add-espesor-btn:hover{background:#d0e8ff}.end-table{border-collapse:collapse;width:100%;font-size:12px}.end-table th{background:var(--surface2);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:left;border:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:10px;font-weight:600}.end-table td{border:1px solid var(--border);vertical-align:middle;padding:6px 8px}.end-table tr:nth-child(2n) td{background:#fafbfc}.end-table td.end-code-cell{font-family:var(--mono);color:var(--muted);white-space:nowrap;width:70px;font-size:13px;font-weight:700}.end-table td.end-name-cell{color:var(--text);min-width:160px;font-size:12px}.end-table td.end-result-cell{width:140px}.end-table td.end-obs-cell input,.end-table td.end-proc-cell input,.end-table td.end-sec-cell input,.end-table td.end-crit-cell input{background:var(--surface);width:100%;color:var(--text);box-sizing:border-box;border:1px solid #ced4da;border-radius:3px;outline:none;padding:4px 7px;font-size:12px;transition:border-color .15s,box-shadow .15s}.end-table td.end-obs-cell input:focus,.end-table td.end-proc-cell input:focus,.end-table td.end-sec-cell input:focus,.end-table td.end-crit-cell input:focus{border-color:var(--blue);box-shadow:0 0 0 2px #3c8dbc33}.end-table td.end-rechazo-cell select{background:var(--surface);width:100%;color:var(--text);box-sizing:border-box;border:1px solid #ced4da;border-radius:3px;outline:none;padding:4px 7px;font-size:11px;transition:border-color .15s}.end-table td.end-rechazo-cell select:focus{border-color:var(--blue)}.end-toggle{gap:4px;display:flex}.toggle-btn{background:var(--surface);cursor:pointer;color:var(--muted);font-size:10px;font-weight:600;font-family:var(--mono);border:1px solid #ced4da;border-radius:3px;flex:1;padding:4px 2px;transition:all .15s}.toggle-btn:hover{border-color:var(--muted)}.toggle-btn.apto.selected{border-color:var(--green);color:#155724;background:#d4edda}.toggle-btn.noapto.selected{border-color:var(--red);color:#721c24;background:#f8d7da}.toggle-btn.na.selected{color:#0c5460;background:#d1ecf1;border-color:#17a2b8}.consumibles-list{flex-direction:column;gap:6px;display:flex}.consumible-row-new{background:var(--surface2);border:1px solid var(--border);border-radius:4px;grid-template-columns:1fr 80px;align-items:center;gap:12px;padding:8px 14px;font-size:13px;display:grid}.consumible-row-new:hover{background:#eef2f7}.consumible-row-new select{background:var(--surface);color:var(--text);border:1px solid #ced4da;border-radius:3px;outline:none;padding:4px 8px;font-size:12px;transition:border-color .15s}.consumible-row-new select:focus{border-color:var(--blue)}.consumible-nombre{color:var(--text)}.aptitud-section{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.aptitud-card{border:2px solid var(--border);text-align:center;cursor:pointer;background:var(--surface);box-shadow:var(--shadow-sm);border-radius:4px;padding:20px 16px;transition:all .2s}.aptitud-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.aptitud-card.selected.apto{border-color:var(--green);background:#d4edda}.aptitud-card.selected.cuarentena{border-color:var(--yellow);background:#fff3cd}.aptitud-card.selected.reparacion{border-color:var(--red);background:#f8d7da}.aptitud-card .aptitud-icon{margin-bottom:8px;font-size:28px}.aptitud-card .aptitud-label{letter-spacing:.04em;font-size:13px;font-weight:700}.aptitud-card.apto .aptitud-label{color:#155724}.aptitud-card.cuarentena .aptitud-label{color:#856404}.aptitud-card.reparacion .aptitud-label{color:#721c24}.aptitud-card .aptitud-desc{color:var(--muted);margin-top:4px;font-size:11px}.tecnicos-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tecnico-card{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:14px}.tecnico-card .tc-label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;font-size:11px;font-weight:600}.tecnico-card select{background:var(--surface);width:100%;color:var(--text);font-family:var(--sans);border:1px solid #ced4da;border-radius:3px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .15s}.tecnico-card select:focus{border-color:var(--blue)}.fotos-section{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.fotos-section-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;font-size:11px;font-weight:600}.fotos-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.foto-slot{flex-direction:column;gap:6px;display:flex}.foto-slot-label{font-family:var(--mono);color:var(--blue);text-align:center;font-size:11px;font-weight:700}.foto-drop{aspect-ratio:1;cursor:pointer;background:var(--surface2);border:2px dashed #ced4da;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative;overflow:hidden}.foto-drop:hover{border-color:var(--blue);background:#e7f1ff}.foto-drop.has-img{border-style:solid;border-color:var(--blue)}.foto-drop .drop-icon{color:#adb5bd;pointer-events:none;font-size:22px}.foto-drop .drop-text{color:var(--muted);pointer-events:none;margin-top:4px;font-size:10px}.foto-drop img{object-fit:cover;border-radius:3px;width:100%;height:100%;position:absolute;inset:0}.foto-drop .foto-overlay{opacity:0;background:#00000080;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:opacity .2s;display:flex;position:absolute;inset:0}.foto-drop:hover .foto-overlay{opacity:1}.foto-overlay button{color:#fff;cursor:pointer;font-size:11px;font-family:var(--sans);background:#fff3;border:1px solid #fff6;border-radius:3px;width:80%;padding:4px 10px;transition:background .15s}.foto-overlay button:hover{background:#ffffff59}.foto-overlay button.del{color:#ffcdd2;background:#dc354533;border-color:#ef9a9a}.foto-count{color:var(--muted);text-align:center;font-size:10px;font-family:var(--mono);min-height:14px}.foto-count.ok{color:var(--green);font-weight:600}.foto-input{display:none}.fotos-generales{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.fotos-generales-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;display:grid}.foto-general-slot{aspect-ratio:1;cursor:pointer;background:var(--surface2);border:2px dashed #ced4da;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative;overflow:hidden}.foto-general-slot:hover{background:#d1ecf1;border-color:#17a2b8}.foto-general-slot.has-img{border-style:solid;border-color:#17a2b8}.foto-general-slot img{object-fit:cover;border-radius:3px;width:100%;height:100%;position:absolute;inset:0}.foto-general-slot .drop-icon{color:#adb5bd;font-size:20px}.foto-general-slot .drop-text{color:var(--muted);margin-top:3px;font-size:10px}.foto-general-slot .foto-overlay{opacity:0;background:#00000080;border-radius:3px;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.foto-general-slot:hover .foto-overlay{opacity:1}.foto-general-slot .foto-overlay button{color:#ffcdd2;cursor:pointer;background:#dc354533;border:1px solid #ef9a9a;border-radius:3px;padding:4px 10px;font-size:11px}.add-foto-btn{aspect-ratio:1;cursor:pointer;color:#0c5460;background:#d1ecf1;border:2px dashed #17a2b8;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;transition:all .2s;display:flex}.add-foto-btn:hover{background:#bee5eb}.lightbox{z-index:500;background:#000000d9;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:none;position:fixed;inset:0}.lightbox.open{display:flex}.lightbox img{border-radius:6px;max-width:90vw;max-height:80vh;box-shadow:0 20px 60px #00000080}.lightbox-caption{color:#ffffffa6;font-family:var(--mono);font-size:12px}.lightbox-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:28px;position:absolute;top:20px;right:24px}.nav-footer{background:var(--surface);border-top:1px solid var(--border);z-index:50;justify-content:space-between;align-items:center;padding:10px 24px;display:flex;position:sticky;bottom:0;box-shadow:0 -2px 6px #0000000a}.nav-info{color:var(--muted);font-size:12px}.toast{background:var(--green);color:#fff;opacity:0;z-index:200;border-radius:4px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .3s;position:fixed;bottom:70px;right:24px;transform:translateY(20px);box-shadow:0 4px 12px #00a65a59}.toast.show{opacity:1;transform:translateY(0)}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-block}.badge-apto{color:#155724;background:#d4edda;border:1px solid #c3e6cb}.badge-cuarentena{color:#856404;background:#fff3cd;border:1px solid #ffeeba}.badge-reparacion{color:#721c24;background:#f8d7da;border:1px solid #f5c6cb}.separator{background:var(--sidebar-border);height:1px;margin:4px 0}@media (width<=900px){.layout{grid-template-columns:1fr}.sidebar{max-height:none;position:static}.main{padding:14px}.aptitud-section,.tecnicos-grid{grid-template-columns:1fr}.fotos-grid{grid-template-columns:repeat(2,1fr)}}
