*,:before,:after{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif}:root{--color-primary:#1a1a2e;--color-primary-hover:#2d2d4e;--color-danger:#c33;--color-danger-hover:#a22;--color-success:#2a7a2a;--color-text:#1a1a1a;--color-text-secondary:#666;--color-text-muted:#999;--color-border:#e0e0e0;--color-border-light:#f0f0f0;--color-bg:#f5f5f5;--color-bg-white:#fff;--color-bg-input:#fafafa;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:16px;--font-size-lg:20px;--font-size-xl:24px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--input-height:40px;--btn-height:40px;--table-row-height:44px;--header-height:56px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}.btn{height:var(--btn-height);border-radius:var(--radius-md);font-size:var(--font-size-base);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:0 16px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{color:var(--color-primary);border:1px solid var(--color-border);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary)}.btn-danger{color:var(--color-danger);font-size:var(--font-size-sm);background:0 0;border:none;height:auto;padding:0;font-weight:500}.btn-danger:hover:not(:disabled){color:var(--color-danger-hover)}.btn-ghost{color:var(--color-text-secondary);font-size:var(--font-size-sm);background:0 0;border:none;height:auto;padding:0}.btn-ghost:hover:not(:disabled){color:var(--color-text)}.btn-full{width:100%}.btn-sm{height:32px;font-size:var(--font-size-sm);padding:0 12px}.input{width:100%;height:var(--input-height);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-family:var(--font-family);background:var(--color-bg-input);color:var(--color-text);padding:0 12px;transition:border-color .15s,background .15s}.input:focus{border-color:var(--color-primary);background:var(--color-bg-white);outline:none}.input::placeholder{color:var(--color-text-muted)}textarea.input{resize:none;height:auto;padding:10px 12px}select.input{cursor:pointer}.table-container{-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--color-border-light);background:var(--color-bg-white);width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--color-border);background:var(--color-bg-white);white-space:nowrap;padding:8px 16px;font-weight:600}.table td{border-bottom:1px solid var(--color-border-light);height:40px;font-size:var(--font-size-base);color:var(--color-text);vertical-align:middle;padding:0 12px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#fafafa}.table tbody tr{cursor:default}.table tbody tr.clickable{cursor:pointer}.table .col-actions{text-align:right;white-space:nowrap}.icon-btn{border-radius:var(--radius-sm);cursor:pointer;width:30px;height:30px;color:var(--color-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover{color:var(--color-text);background:#f0f0f0}.icon-btn.icon-btn-primary:hover{color:var(--color-primary);background:#eef0f8}.icon-btn.icon-btn-danger:hover{color:var(--color-danger);background:#fdf0f0}.section-label{font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-sm);font-weight:600}.stat-card{background:var(--color-bg-white);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg)}.stat-card-label{font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-xs);font-weight:600}.stat-card-value{font-size:var(--font-size-xl);color:var(--color-text);font-weight:700}.page{background:var(--color-bg);min-height:100vh}.page-header{height:var(--header-height);background:var(--color-primary);color:#fff;padding:0 var(--space-lg);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.page-content{max-width:960px;padding:var(--space-lg);margin:0 auto}@media (width<=768px){.page-content{padding:var(--space-md)}.page-header{padding:0 var(--space-md)}.btn,.input{min-height:44px}.hide-mobile{display:none!important}.stack-mobile{flex-direction:column!important}.full-mobile{width:100%!important}.table td,.table th{padding:0 8px}.table td{height:52px}.equipo-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table{table-layout:fixed;width:100%}.col-checkbox{width:32px}.col-equipo-id{width:55%}.col-cliente{width:45%}.col-actions{width:auto}.table td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-btn{width:34px;height:34px}}.kebab-wrapper{display:inline-block;position:relative}.kebab-btn{cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;display:none}.kebab-btn:hover{background:#f0f0f0}.kebab-menu{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;background:#fff;min-width:160px;display:none;position:absolute;top:100%;right:0;overflow:hidden}.kebab-menu.open{display:block}.kebab-menu-item{color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:13px;display:flex}.kebab-menu-item:hover{background:#f5f5f5}.kebab-menu-item.danger{color:var(--color-danger)}.icon-buttons-desktop{gap:4px;display:inline-flex}.icon-buttons-mobile{display:none}@media (width<=768px){.icon-buttons-desktop{display:none}.icon-buttons-mobile{display:inline-block}.kebab-btn{justify-content:center;align-items:center;display:inline-flex}.ver-expediente-btn{width:100%;margin-top:8px;margin-left:0!important}}.action-buttons-grid{flex-wrap:wrap;gap:8px;display:flex}@media (width<=768px){.summary-cards-grid{display:none!important}.stat-card{text-align:center;padding:10px 8px}.stat-card-value{font-size:22px}.stat-card-label{font-size:9px}.action-buttons-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.action-buttons-grid .btn{white-space:normal;text-align:center;justify-content:center;align-items:center;line-height:1.3;height:56px!important;min-height:56px!important;padding:6px 4px!important;font-size:11px!important;display:flex!important}.hide-mobile{display:none!important}}@media (width>=769px){.hide-desktop{display:none!important}}@media (width<=768px){.expedient-stat-last-visit{display:none}.expedient-stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid!important}.expedient-stats-grid .stat-card{text-align:center;padding:10px 8px}.expedient-filters{flex-wrap:wrap;gap:8px;display:flex}.expedient-filters .input{flex:1;width:auto;min-width:0}}.order-print-btn{display:inline-flex}.order-share-btn{display:none}@media (width<=768px){.order-print-btn{display:none!important}.order-share-btn{display:inline-flex!important}}.mobile-bottom-nav{display:none}@media (width<=768px){.mobile-bottom-nav{z-index:100;height:60px;padding-bottom:env(safe-area-inset-bottom);background:#1a1a2e;border-top:1px solid #2d2d4e;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-item{cursor:pointer;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;height:100%;font-size:10px;font-weight:600;transition:color .15s;display:flex}.mobile-nav-item.active{color:#fff}.mobile-nav-item:active{color:#a5b4fc}.dashboard-content{padding-bottom:72px}.mobile-hide-nav-btn{display:none!important}}.asset-card{background:#fff;border-bottom:1px solid #f0f0f0;gap:12px;padding:14px 16px;display:flex}.asset-card-checkbox{padding-top:2px}.asset-card-content{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.asset-card-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.asset-card-title-row{align-items:flex-start}.asset-card-title{color:#1a1a1a;font-size:15px;font-weight:700;line-height:1.2}.asset-card-badges{flex-shrink:0;gap:4px;display:flex}.asset-badge-seq{color:#374151;background:#e5e7eb;border:1px solid #d1d5db;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:10px;font-weight:700}.asset-badge-token{color:#6b7280;text-transform:uppercase;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:10px;font-weight:700}.asset-card-client{color:#6b7280;font-size:13px}.asset-card-date{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.warranty-badge{text-transform:uppercase;border-radius:999px;align-items:center;gap:3px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.warranty-badge-active{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.warranty-badge-expired{color:#9ca3af;background:#f9fafb;border:1px solid #e5e7eb}.warranty-badge-none{color:#d1d5db;background:#f9fafb;border:1px solid #f3f4f6}.ft-table{border-collapse:collapse;border:1px solid #d1d5db;width:100%}.ft-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .15s}.ft-table tbody tr:hover{background:#f9fafb}.ft-table td{vertical-align:middle;padding:0 16px}.ft-cell{flex-direction:column;justify-content:center;height:72px;display:flex}.ft-name{color:#111827;align-items:center;gap:6px;margin-bottom:8px;font-size:16px;font-weight:700;line-height:1.2;display:flex}.ft-meta{align-items:center;gap:10px;display:flex}.ft-badge-seq{color:#fff;background:#1a1a2e;border-radius:0;padding:1px 6px;font-family:ui-monospace,monospace;font-size:11px;font-weight:600}.ft-badge-token{color:#475569;text-transform:uppercase;background:#f1f5f9;border:1px solid #d1d5db;border-radius:0;padding:1px 6px;font-family:ui-monospace,monospace;font-size:11px;font-weight:500}.ft-separator{color:#d1d5db;font-size:10px}.ft-client{color:#6b7280;align-items:center;gap:4px;font-size:12px;display:flex}.ft-date{color:#9ca3af;font-size:11px}.ft-warranty-dot-active{color:#16a34a;align-items:center;display:flex}.ft-warranty-dot-expired{color:#dc2626;align-items:center;display:flex}.ft-warranty-dot-none{color:#d1d5db;align-items:center;display:flex}.ft-actions{align-items:center;gap:4px;display:inline-flex}.load-more-btn{margin:16px auto;display:block}.btn-ver-ficha{color:#3b82f6;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:11px;font-weight:500;text-decoration:underline}.drawer-form-divider{background:0 0;height:1px;margin:28px 0 20px}.drawer-form-empty{color:#999;padding:8px 0;font-size:13px}.drawer-form-list{display:block}.drawer-form-row{border-bottom:1px solid #f0f0f0;align-items:center;gap:12px;min-height:44px;padding:6px 0;display:flex}.drawer-form-row:last-child{border-bottom:none}.drawer-form-row-info{flex:1;min-width:0}.drawer-form-row-name{color:#1a1a1a;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.drawer-form-row-sub,.drawer-form-row-notes{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.drawer-form-row-sub{color:#888}.drawer-form-row-notes{color:#aaa}.drawer-form-row-actions{opacity:0;flex-shrink:0;gap:16px;transition:opacity .15s;display:flex}.drawer-form-row:hover .drawer-form-row-actions{opacity:1}.drawer-form-action-edit,.drawer-form-action-delete,.drawer-form-action-expedient{cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:12px}.drawer-form-action-edit{color:#666}.drawer-form-action-delete{color:#c33}.drawer-form-action-expedient{color:#1a1a2e}.drawer-form-action-edit:hover,.drawer-form-action-delete:hover,.drawer-form-action-expedient:hover{text-decoration:underline}.drawer-form-edit-block{border-bottom:1px solid #f0f0f0;padding:8px 0}.drawer-form-edit-field{margin-bottom:6px}.drawer-form-edit-input,.drawer-form-edit-textarea{color:#1a1a1a;box-sizing:border-box;background:#fafafa;border:1px solid #e0e0e0;border-radius:4px;outline:none;width:100%;font-family:inherit;font-size:13px}.drawer-form-edit-input{height:32px;padding:0 8px}.drawer-form-edit-textarea{resize:vertical;min-height:54px;padding:8px}.drawer-form-edit-input:focus,.drawer-form-edit-textarea:focus{background:#fff;border-color:#1a1a2e}.drawer-form-edit-actions{align-items:center;gap:10px;margin-top:8px;display:flex}.drawer-form-edit-save{color:#fff;cursor:pointer;background:#1a1a2e;border:0;border-radius:4px;flex:1;height:32px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:600}.drawer-form-edit-save:hover:not(:disabled){background:#2d2d4e}.drawer-form-edit-save:disabled{cursor:not-allowed;background:#9ca3af}.drawer-form-edit-cancel{color:#666;cursor:pointer;background:0 0;border:0;padding:0 4px;font-family:inherit;font-size:13px}.drawer-form-edit-cancel:hover:not(:disabled){text-decoration:underline}.drawer-form-confirm-row{border-bottom:1px solid #f0f0f0;align-items:center;gap:14px;min-height:44px;display:flex}.drawer-form-confirm-text{color:#666;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;overflow:hidden}.drawer-form-confirm-yes,.drawer-form-confirm-no{cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:13px;font-weight:500}.drawer-form-confirm-yes{color:#c33}.drawer-form-confirm-no{color:#666}.drawer-form-confirm-yes:hover:not(:disabled),.drawer-form-confirm-no:hover:not(:disabled){text-decoration:underline}.drawer-form-inline-error{color:#c33;padding:4px 0 8px;font-size:12px}.drawer-form-notes-textarea{box-sizing:border-box;color:#1a1a1a;resize:none;background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;outline:none;width:100%;height:80px;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s,background-color .15s}.drawer-form-notes-textarea:focus{background:#fff;border-color:#1a1a2e}.tp-root{color:#d4d4d8;background-color:#09090b;background-image:radial-gradient(circle,#ffffff26 1px,#0000 1px);background-size:24px 24px;min-height:100vh;padding-bottom:48px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.tp-nav{color:#f4f4f5;z-index:100;isolation:isolate;background:#000;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0;box-shadow:0 1px #27272a}.tp-nav-name{letter-spacing:.2em;text-transform:uppercase;font-family:Courier New,monospace;font-size:13px;font-weight:800}.tp-main{max-width:900px;margin:0 auto;padding:40px 24px 0}.tp-header{border-bottom:2px solid #27272a;margin-bottom:40px;padding-bottom:24px}.tp-header-meta{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.tp-category{color:#a1a1aa;text-transform:uppercase;letter-spacing:.3em;align-items:center;gap:8px;font-family:Courier New,monospace;font-size:11px;font-weight:700;display:flex}.tp-category-dot{background:#3f3f46;width:8px;height:8px;display:inline-block}.tp-divider-line{background:#3f3f46;width:48px;height:1px}.tp-id-badge{background:#18181b;border:1px solid #3f3f46;align-items:center;gap:8px;padding:6px 12px;display:flex}.tp-id-label{color:#71717a;text-transform:uppercase;letter-spacing:.1em;font-family:Courier New,monospace;font-size:10px}.tp-id-value{letter-spacing:.1em;color:#10b981;font-family:Courier New,monospace;font-size:13px;font-weight:700}.tp-brand{color:#a1a1aa;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-family:Courier New,monospace;font-size:14px;font-weight:600}.tp-model{color:#f4f4f5;letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(36px,6vw,60px);font-weight:900;line-height:1}.tp-card{background:#18181b;border:2px solid #27272a;flex-direction:column;width:100%;margin-bottom:32px;display:flex;box-shadow:0 20px 40px #0006}@media (width>=768px){.tp-card{flex-direction:row}}.tp-card-left{border-bottom:2px solid #27272a;flex-direction:column;flex:1;justify-content:space-between;min-width:0;padding:32px;display:flex}@media (width>=768px){.tp-card-left{border-bottom:none;border-right:2px solid #27272a}}.tp-card-right{background:#09090b;flex-direction:column;flex:1;justify-content:space-between;min-width:0;padding:32px;display:flex}.tp-section-header{border-bottom:2px solid #27272a;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:12px;display:flex}.tp-section-dot{flex-shrink:0;width:12px;height:12px}.tp-section-dot-green{background:#10b981}.tp-section-dot-gray{background:#3f3f46}.tp-section-dot-red{background:#ef4444}.tp-section-title{text-transform:uppercase;letter-spacing:.15em;font-family:Courier New,monospace;font-size:12px;font-weight:700}.tp-section-title-green{color:#10b981}.tp-section-title-white{color:#f4f4f5}.tp-section-title-red{color:#ef4444}.tp-data-rows{flex-direction:column;gap:0;display:flex}.tp-data-row{border-bottom:1px dashed #27272a;justify-content:space-between;align-items:flex-end;padding:10px 0;display:flex}.tp-data-row:last-child{border-bottom:none}.tp-data-label{color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;margin-right:16px;font-family:Courier New,monospace;font-size:11px}.tp-data-value{color:#f4f4f5;text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:60%;font-size:14px;font-weight:700;overflow:hidden}.tp-footer-note{color:#71717a;border-top:2px solid #27272a;margin-top:24px;padding-top:16px;font-family:Courier New,monospace;font-size:11px}.tp-warranty-badge{text-transform:uppercase;letter-spacing:.1em;margin-left:auto;padding:4px 8px;font-family:Courier New,monospace;font-size:10px;font-weight:700}.tp-warranty-badge-green{color:#fff;background:#059669}.tp-warranty-badge-red{color:#fff;background:#dc2626}.tp-warranty-badge-gray{color:#a1a1aa;background:#3f3f46}.tp-warranty-info{flex-direction:column;gap:24px;margin-bottom:24px;display:flex}.tp-warranty-field-label{color:#a1a1aa;text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-family:Courier New,monospace;font-size:11px}.tp-warranty-field-value{color:#e4e4e7;font-size:14px;font-weight:700}.tp-warranty-date{color:#f4f4f5;font-family:Courier New,monospace;font-size:22px;font-weight:700}.tp-progress-bar-track{background:#18181b;border:1px solid #27272a;width:100%;height:8px;margin-bottom:8px}.tp-progress-bar-fill-green{background:#10b981;height:100%}.tp-progress-bar-fill-red{background:#ef4444;height:100%}.tp-warranty-footer{color:#71717a;text-transform:uppercase;letter-spacing:.05em;font-family:Courier New,monospace;font-size:10px}.tp-warranty-footer strong{color:#10b981}.tp-no-warranty{color:#71717a;padding:16px 0;font-family:Courier New,monospace;font-size:13px}.tp-timeline-card{background:#18181b;border:2px solid #27272a;margin-bottom:48px;padding:32px;box-shadow:0 20px 40px #0006}.tp-timeline-header{color:#f4f4f5;text-transform:uppercase;letter-spacing:.15em;border-bottom:2px solid #27272a;margin-bottom:40px;padding-bottom:16px;font-family:Courier New,monospace;font-size:12px;font-weight:700}.tp-timeline-container{border-left:2px solid #3f3f46;flex-direction:column;gap:48px;margin-left:8px;padding-left:32px;display:flex;position:relative}.tp-timeline-item{position:relative}.tp-timeline-dot{border:4px solid #09090b;outline:1px solid #3f3f46;width:16px;height:16px;position:absolute;top:6px;left:-43px}.tp-timeline-dot-green{background:#10b981}.tp-timeline-dot-gray{background:#52525b}.tp-timeline-item-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.tp-timeline-item-title{color:#f4f4f5;text-transform:uppercase;letter-spacing:.05em;font-size:16px;font-weight:700}.tp-timeline-item-title-old{color:#a1a1aa}.tp-timeline-date-badge{text-transform:uppercase;border:1px solid #27272a;padding:4px 12px;font-family:Courier New,monospace;font-size:11px;font-weight:700}.tp-timeline-date-badge-green{color:#10b981;background:#09090b}.tp-timeline-date-badge-gray{color:#71717a}.tp-timeline-content{background:#09090b;border:1px solid #27272a;padding:20px}.tp-timeline-desc{color:#d4d4d8;margin-bottom:16px;font-size:14px;line-height:1.6}.tp-timeline-meta{background:#18181b;border:1px solid #27272a;flex-wrap:wrap;gap:16px;padding:12px;font-family:Courier New,monospace;font-size:11px;display:flex}.tp-timeline-meta-label{color:#f4f4f5;text-transform:uppercase;font-weight:700}.tp-timeline-meta-value{color:#a1a1aa}.tp-no-records{color:#71717a;padding:16px 0;font-family:Courier New,monospace;font-size:13px}.tp-unassigned{text-align:center;background:#09090b;justify-content:center;align-items:center;min-height:100vh;font-family:Courier New,monospace;display:flex}.tp-unassigned-dash{color:#27272a;margin-bottom:16px;font-size:64px;font-weight:900}.tp-unassigned-title{color:#71717a;text-transform:uppercase;letter-spacing:.2em;margin-bottom:8px;font-size:16px;font-weight:700}.tp-unassigned-token{color:#52525b;font-size:12px}
