@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Roboto+Slab:wght@700&family=JetBrains+Mono&display=swap");:root{--upc-red:#E30613;--upc-red-dark:#C00511;--upc-red-light:#FFEBEE;--upc-dark:#1A1A1A;--upc-gray:#262626;--upc-gray-light:#363636;--bg:#F5F5F7;--card:#FFFFFF;--text:#1A1A1A;--text-muted:#6B6B6B;--text-light:#9E9E9E;--border:#E5E5EA;--border-light:#F2F2F7;--error:#D32F2F;--error-bg:#FFEBEE;--success:#2E7D32;--success-bg:#E8F5E9;--warning:#E65100;--warning-bg:#FFF3E0;--info:#1565C0;--info-bg:#E3F2FD;--shadow:0 1px 4px rgba(0,0,0,0.06),0 0 0 1px rgba(0,0,0,0.03);--shadow-md:0 4px 16px rgba(0,0,0,0.08);--shadow-lg:0 8px 32px rgba(0,0,0,0.10);--radius:10px;--radius-sm:6px;--transition:0.15s ease}*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.mono,code{font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:.92em}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#f5f5f7,#ffe8ea)}.login-container{background:var(--card);border-radius:16px;box-shadow:var(--shadow-lg);padding:48px 40px;width:100%;max-width:400px;border-top:4px solid var(--upc-red)}.login-logo{text-align:center;margin-bottom:32px}.login-logo h1{font-family:Roboto Slab,serif;font-size:26px;font-weight:700;color:var(--upc-dark);letter-spacing:-.5px}.login-logo p{font-size:13px;color:var(--text-muted);margin-top:4px}.login-error{background:var(--error-bg);color:var(--error);border-left:3px solid var(--error)}.login-error,.login-ratelimit{padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:20px}.login-ratelimit{background:var(--warning-bg);color:var(--warning);border-left:3px solid var(--warning)}.login-form-group{margin-bottom:20px}.login-form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.login-form-group input{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:8px;font-size:15px;font-family:inherit;transition:border-color var(--transition),box-shadow var(--transition);background:var(--border-light)}.login-form-group input:focus{outline:none;border-color:var(--upc-red);background:white;box-shadow:0 0 0 3px rgba(227,6,19,.1)}.btn-login{width:100%;padding:13px;background:var(--upc-red);color:white;border:none;border-radius:8px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:background var(--transition),transform var(--transition),box-shadow var(--transition);letter-spacing:.2px}.btn-login:hover{background:var(--upc-red-dark);box-shadow:0 4px 12px rgba(227,6,19,.3)}.btn-login:active{transform:translateY(1px)}.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.app-layout{display:flex;min-height:100vh}.sidebar-backdrop{display:none}.sidebar{width:240px;background:var(--upc-dark);color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:100;box-shadow:2px 0 12px rgba(0,0,0,.15);transition:transform .24s ease}.sidebar-close{display:none;position:absolute;top:18px;right:16px;width:32px;height:32px;align-items:center;justify-content:center;background:none;border:none;color:rgba(255,255,255,.5);cursor:pointer;border-radius:6px;transition:all var(--transition)}.sidebar-close:hover{color:#fff;background:rgba(255,255,255,.1)}.sidebar-header{padding:22px 24px 18px;border-bottom:1px solid rgba(255,255,255,.07);position:relative}.sidebar-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--upc-red)}.sidebar-header h1{font-family:Roboto Slab,serif;font-size:18px;font-weight:700;letter-spacing:-.3px}.sidebar-header p{font-size:11px;color:rgba(255,255,255,.4);margin-top:3px;text-transform:uppercase;letter-spacing:.6px}.sidebar-nav{flex:1 1;padding:8px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 20px 11px 24px;color:rgba(255,255,255,.5);cursor:pointer;font-size:13.5px;font-weight:500;transition:all var(--transition);border-left:3px solid transparent;text-decoration:none;position:relative}.nav-item:hover{background:rgba(255,255,255,.06);color:rgba(255,255,255,.9)}.nav-item.active{background:rgba(255,255,255,.08);color:var(--upc-red);border-left-color:var(--upc-red);font-weight:600}.nav-item svg{width:17px;height:17px;flex-shrink:0;opacity:.85}.nav-item.active svg{opacity:1}.sidebar-footer{padding:14px 20px;border-top:1px solid rgba(255,255,255,.07);font-size:12px}.user-info{color:rgba(255,255,255,.75);margin-bottom:8px;font-weight:500;font-size:13px;display:flex;align-items:center;gap:6px}.role-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.role-badge.admin{background:var(--upc-red);color:white}.role-badge.coordinador{background:rgba(255,255,255,.12);color:rgba(255,255,255,.6)}.btn-logout{color:rgba(255,255,255,.35);cursor:pointer;font-size:12px;text-decoration:none;background:none;border:none;font-family:inherit;padding:0;transition:color var(--transition)}.btn-logout:hover{color:var(--upc-red)}.main{flex:1 1;margin-left:240px;min-width:0;transition:margin-left .24s ease;display:flex;flex-direction:column}.topbar{gap:12px;padding:14px 24px;background:var(--bg);position:-webkit-sticky;position:sticky;top:0;z-index:50}.sidebar-toggle,.topbar{display:flex;align-items:center}.sidebar-toggle{justify-content:center;width:38px;height:38px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;color:var(--text-muted);transition:all var(--transition);flex-shrink:0}.sidebar-toggle:hover{border-color:var(--upc-red);color:var(--upc-red);background:var(--upc-red-light)}.main-content{padding:8px 36px 28px;flex:1 1}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.section-header h2{font-family:Roboto Slab,serif;font-size:22px;font-weight:700;letter-spacing:-.3px;color:var(--text)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px;transition:box-shadow var(--transition);border:1px solid rgba(0,0,0,.04)}.card:hover{box-shadow:var(--shadow-md)}.card-title{font-size:11.5px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.7px;margin-bottom:14px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:24px;width:100%}.kpi-grid[data-cols="2"]{grid-template-columns:repeat(2,1fr)}.kpi-grid[data-cols="3"]{grid-template-columns:repeat(3,1fr)}.kpi-grid[data-cols="4"]{grid-template-columns:repeat(4,1fr)}.kpi-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;border:1px solid rgba(0,0,0,.04);border-left:4px solid transparent;transition:transform var(--transition),box-shadow var(--transition)}.kpi-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.kpi-card .label{font-size:11px;color:var(--text-light);font-weight:700;text-transform:uppercase;letter-spacing:.6px}.kpi-card .value{font-size:26px;font-weight:700;margin-top:8px;font-family:Roboto Slab,serif;line-height:1.1;letter-spacing:-.5px}.kpi-card .sub{font-size:11.5px;color:var(--text-light);margin-top:5px}.kpi-card.accent{border-left-color:var(--upc-red);background:linear-gradient(90deg,rgba(227,6,19,.03),white)}.kpi-card.accent .value{color:var(--upc-red)}.kpi-card.success{border-left-color:var(--success);background:linear-gradient(90deg,rgba(46,125,50,.03),white)}.kpi-card.success .value{color:var(--success)}.kpi-card.warning{border-left-color:var(--warning);background:linear-gradient(90deg,rgba(230,81,0,.03),white)}.kpi-card.warning .value{color:var(--warning)}.kpi-card.info{border-left-color:var(--info);background:linear-gradient(90deg,rgba(21,101,192,.03),white)}.kpi-card.info .value{color:var(--info)}.chart-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}.chart-row>.card{flex:1 1;min-width:280px;margin-bottom:0}.bar-chart{flex-direction:column}.bar-chart,.bar-item{display:flex;gap:10px}.bar-item{align-items:center}.bar-label{width:130px;font-size:12.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.bar-track{flex:1 1;height:20px;background:var(--border-light);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .5s ease;opacity:.85}.bar-value{font-size:12.5px;font-weight:700;min-width:36px;text-align:right;color:var(--text-muted)}.sparkline{width:100%;height:96px}.table-wrapper{overflow-x:auto;border-radius:var(--radius-sm)}table{width:100%;border-collapse:collapse;font-size:13px}thead{position:-webkit-sticky;position:sticky;top:0;z-index:1}th{text-align:left;padding:10px 14px;border-bottom:2px solid var(--border);font-weight:700;color:var(--text-light);font-size:11px;text-transform:uppercase;letter-spacing:.6px;background:white;white-space:nowrap}td{padding:11px 14px;border-bottom:1px solid var(--border-light);vertical-align:middle}tbody tr:nth-child(2n) td{background:rgba(0,0,0,.01)}tbody tr:hover td{background:rgba(227,6,19,.03)}tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px;white-space:nowrap}.badge.success{background:var(--success-bg);color:var(--success)}.badge.error{background:var(--error-bg);color:var(--error)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.neutral{background:var(--border-light);color:var(--text-muted)}.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.form-group input,.form-group select,.form-group textarea{padding:8px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:white;transition:border-color var(--transition),box-shadow var(--transition);color:var(--text)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--upc-red);box-shadow:0 0 0 3px rgba(227,6,19,.08)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--transition);letter-spacing:.1px}.btn-primary{background:var(--upc-red);color:white;box-shadow:0 1px 4px rgba(227,6,19,.2)}.btn-primary:hover{background:var(--upc-red-dark);box-shadow:0 4px 12px rgba(227,6,19,.3);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:none}.btn-secondary{background:white;color:var(--text);border:1.5px solid var(--border)}.btn-secondary:hover{background:var(--border-light);border-color:#ccc}.btn-danger{background:white;color:#c0392b;border:1.5px solid #e74c3c}.btn-danger:hover{background:#fff5f5;border-color:#c0392b}.btn-small{padding:5px 12px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.chat-container{display:flex;gap:16px;height:calc(100vh - 175px)}.chat-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.chat-sidebar.hidden{display:none}.chat-main{flex:1 1;display:flex;flex-direction:column;border:1.5px solid var(--border);border-radius:var(--radius);background:white;overflow:hidden;box-shadow:var(--shadow)}.chat-messages{flex:1 1;overflow-y:auto;padding:20px;scroll-behavior:smooth}.chat-input-area{border-top:1.5px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:var(--border-light)}.chat-attachments{display:flex;flex-wrap:wrap;gap:8px}.chat-attachment{display:flex;align-items:center;gap:6px;background:white;border:1px solid var(--border);border-radius:8px;padding:5px 10px;font-size:12.5px;max-width:240px}.att-icon{font-size:15px;flex-shrink:0}.att-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-size{font-size:11px;flex-shrink:0}.att-remove,.att-size{color:var(--text-light)}.att-remove{cursor:pointer;font-size:16px;margin-left:4px;background:none;border:none;padding:0;line-height:1;transition:color var(--transition)}.att-remove:hover{color:var(--error)}.chat-input-row{display:flex;gap:8px;align-items:flex-end}.chat-attach-btn{width:42px;height:42px;flex-shrink:0;border:1.5px solid var(--border);border-radius:8px;background:white;cursor:pointer;font-size:20px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.chat-attach-btn.has-files,.chat-attach-btn:hover{border-color:var(--upc-red);color:var(--upc-red);background:var(--upc-red-light)}.chat-input{flex:1 1;min-height:42px;max-height:120px;resize:none;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;background:white;transition:border-color var(--transition)}.chat-input:focus{outline:none;border-color:var(--upc-red)}.message{margin-bottom:18px;max-width:82%}.message.user{margin-left:auto}.message-bubble{padding:12px 16px;border-radius:14px;font-size:14px;line-height:1.65;white-space:pre-wrap;word-wrap:break-word}.message-bubble.md-bubble{white-space:normal}.md-bubble .md-p{margin:0 0 8px}.md-bubble .md-p:last-child{margin-bottom:0}.md-bubble .md-h2{font-size:16px;font-weight:700;margin:10px 0 4px}.md-bubble .md-h3{font-size:15px;font-weight:700;margin:8px 0 4px}.md-bubble .md-h4{font-size:14px;font-weight:700;margin:6px 0 4px;opacity:.8}.md-bubble .md-ul{padding-left:20px;margin:4px 0 8px}.md-bubble .md-li{margin-bottom:3px}.md-bubble .md-hr{border:none;border-top:1px solid var(--border);margin:8px 0}.md-bubble .md-pre{border:1px solid var(--border);border-radius:6px;padding:10px 14px;overflow-x:auto;margin:6px 0;line-height:1.5;white-space:pre}.md-bubble .md-code,.md-bubble .md-pre{background:var(--bg-secondary,#f5f5f5);font-family:var(--font-mono,monospace);font-size:12px}.md-bubble .md-code{border:1px solid var(--border);border-radius:3px;padding:1px 5px}.message.user .message-bubble{background:var(--upc-red);color:white;border-bottom-right-radius:4px;box-shadow:0 2px 8px rgba(227,6,19,.2)}.message.assistant .message-bubble{background:var(--border-light);border-bottom-left-radius:4px;border:1px solid var(--border)}.message-meta{font-size:11px;color:var(--text-light);margin-top:5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.feedback-btns{display:flex;gap:4px;margin-top:5px}.feedback-btn{cursor:pointer;font-size:15px;background:none;border:1px solid transparent;padding:3px 7px;border-radius:6px;opacity:.45;transition:all var(--transition)}.feedback-btn.active,.feedback-btn:hover{opacity:1;background:var(--border-light);border-color:var(--border)}.kanban{display:flex;gap:16px;align-items:flex-start}.kanban-col{flex:1 1;min-width:280px}.kanban-col-header{padding:10px 16px;border-radius:8px;font-weight:700;font-size:13px;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;justify-content:space-between}.kanban-col-header.abierto{background:var(--error-bg);color:var(--error)}.kanban-col-header.en_curso{background:var(--warning-bg);color:var(--warning)}.kanban-col-header.resuelto{background:var(--success-bg);color:var(--success)}.kanban-card{background:white;border-radius:8px;box-shadow:var(--shadow);padding:14px 16px;margin-bottom:10px;cursor:pointer;border:1px solid var(--border);border-left:3px solid transparent;transition:transform var(--transition),box-shadow var(--transition)}.kanban-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kanban-card.feedback{border-left-color:var(--warning)}.kanban-card.manual{border-left-color:var(--info)}.kanban-card h4{font-size:13.5px;margin-bottom:7px;font-weight:600;line-height:1.4}.kanban-card .meta{font-size:11px;color:var(--text-light);display:flex;gap:8px;flex-wrap:wrap}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:14px 18px;border-radius:10px;font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);animation:slideIn .22s ease;max-width:360px;pointer-events:all;border-left:3px solid transparent}.toast.success{background:var(--success-bg);color:var(--success);border-left-color:var(--success)}.toast.error{background:var(--error-bg);color:var(--error);border-left-color:var(--error)}.toast.warning{background:var(--warning-bg);color:var(--warning);border-left-color:var(--warning)}.toast.info{background:var(--info-bg);color:var(--info);border-left-color:var(--info)}@keyframes slideIn{0%{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:200;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:white;border-radius:14px;padding:28px 32px;width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:scaleIn .18s ease}@keyframes scaleIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.modal h3{font-family:Roboto Slab,serif;font-size:19px;margin-bottom:20px;letter-spacing:-.3px}.modal .form-group{margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-light)}.detail-panel{position:fixed;top:0;right:0;bottom:0;width:480px;background:white;box-shadow:-4px 0 32px rgba(0,0,0,.12);transform:translateX(100%);transition:transform .22s ease;z-index:150;overflow-y:auto;padding:28px;border-left:1px solid var(--border)}.detail-panel.show{transform:translateX(0)}.detail-panel h3{font-family:Roboto Slab,serif;font-size:18px;margin-bottom:18px;padding-right:32px;letter-spacing:-.3px}.detail-close{position:absolute;top:20px;right:22px;cursor:pointer;font-size:22px;color:var(--text-light);background:none;border:none;padding:4px;line-height:1;border-radius:4px;transition:all var(--transition)}.detail-close:hover{color:var(--text);background:var(--border-light)}.pagination{display:flex;gap:6px;justify-content:center;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-light)}.pagination button{padding:6px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:white;cursor:pointer;font-size:13px;font-family:inherit;font-weight:500;transition:all var(--transition);color:var(--text-muted)}.pagination button:hover:not(:disabled):not(.current){border-color:var(--upc-red);color:var(--upc-red);background:var(--upc-red-light)}.pagination button:disabled{opacity:.35;cursor:not-allowed}.pagination button.current{background:var(--upc-red);color:white;border-color:var(--upc-red);cursor:default;font-weight:700;box-shadow:0 2px 8px rgba(227,6,19,.25)}.overflow-x-auto{overflow-x:auto}.empty-state{text-align:center;padding:32px 16px;color:var(--text-light);font-size:13.5px}.sidebar-collapsed .sidebar{transform:translateX(-100%)}.sidebar-collapsed .main{margin-left:0}@media (max-width:1023px){.main{margin-left:0}.sidebar{transform:translateX(-100%)}.app-layout:not(.sidebar-collapsed) .sidebar{transform:translateX(0)}.app-layout:not(.sidebar-collapsed) .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99;animation:fadeIn .15s ease}.sidebar-close{display:flex}.main-content{padding:8px 20px 24px}.topbar{padding:12px 20px}}@media (max-width:768px){.section-header h2{font-size:19px}.kpi-grid,.kpi-grid[data-cols="3"],.kpi-grid[data-cols="4"]{grid-template-columns:repeat(2,1fr);gap:10px}.kpi-grid .kpi-card[style*=gridColumn]{grid-column:span 2!important}.kpi-card .value{font-size:22px}.chart-row>.card{min-width:100%}.chat-container{flex-direction:column;height:auto;min-height:calc(100vh - 160px)}.chat-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;max-height:none;overflow-y:visible;gap:8px}.chat-sidebar .form-group{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);min-width:130px}.chat-sidebar .form-group:last-of-type{flex:1 1 100%}.chat-sidebar>.btn{width:100%}.chat-main{flex:1 1;min-height:55vh}.kanban{flex-direction:column}.kanban-col{min-width:100%}.detail-panel{width:100%}.modal{margin:16px;max-width:calc(100vw - 32px);padding:24px 20px}.message{max-width:95%}.main-content{padding:8px 14px 20px}.topbar{padding:10px 14px}}.audit-page{max-width:860px;margin:0 auto;padding:0 0 48px}.audit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.audit-title{font-size:22px;font-weight:700;color:var(--upc-dark);margin-bottom:4px}.audit-subtitle{font-size:13px;color:var(--text-muted)}.audit-session-badge{background:var(--upc-red-light);color:var(--upc-red-dark);border:1px solid #fcc;border-radius:20px;padding:4px 14px;font-size:12px;font-weight:600;white-space:nowrap;margin-top:4px}.audit-phase-tag{opacity:.75}.audit-tabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap}.audit-tab{display:flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition)}.audit-tab:hover:not(.audit-tab--disabled):not(.audit-tab--active){border-color:var(--upc-red);color:var(--upc-red)}.audit-tab--active{background:var(--upc-red);border-color:var(--upc-red);color:#fff;box-shadow:0 2px 8px rgba(227,6,19,.25)}.audit-tab--disabled{opacity:.4;cursor:not-allowed}.audit-tab-n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:11px;background:rgba(0,0,0,.08)}.audit-tab--active .audit-tab-n{background:rgba(255,255,255,.25)}.audit-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 32px}.audit-card-title{display:flex;gap:10px;font-size:16px;color:var(--upc-dark);margin-bottom:24px}.audit-card-title,.audit-step-dot{align-items:center;font-weight:700}.audit-step-dot{display:inline-flex;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--upc-red);color:#fff;font-size:12px;flex-shrink:0}.audit-field{margin-bottom:18px}.audit-label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text)}.audit-required{color:var(--upc-red)}.audit-input,.audit-select,.audit-textarea{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--text);background:var(--card);transition:border-color var(--transition);outline:none}.audit-input:focus,.audit-select:focus,.audit-textarea:focus{border-color:var(--upc-red)}.audit-select:disabled{opacity:.5;cursor:not-allowed}.audit-textarea{resize:vertical}.audit-hint{font-size:12px;color:var(--text-muted);margin-top:5px}.audit-divider{border:none;border-top:1px solid var(--border-light);margin:22px 0}.audit-section-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:10px}.audit-cascade{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.audit-context-pill{display:inline-flex;align-items:center;gap:6px;background:var(--upc-red-light);color:var(--upc-red-dark);border:1px solid #fcc;border-radius:20px;padding:5px 14px;font-size:12px;font-weight:600;margin-top:8px}.audit-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border-light)}.audit-actions--spread{justify-content:space-between}.audit-btn-main{min-width:180px}.audit-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:36px 20px;text-align:center;cursor:pointer;transition:all var(--transition);margin-bottom:16px}.audit-dropzone:hover{border-color:var(--upc-red);background:var(--upc-red-light)}.audit-dropzone-text{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px}.audit-filelist{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.audit-filerow{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.audit-filename{flex:1 1;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-filesize{font-size:12px;color:var(--text-muted);white-space:nowrap}.audit-file-remove{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:18px;line-height:1;padding:0 2px;transition:color var(--transition)}.audit-file-remove:hover{color:var(--error)}.audit-log{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:4px}.audit-log-header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--upc-dark);color:#ccc;font-size:12px;font-weight:600}.audit-log-count{font-weight:400;opacity:.6}.audit-log-body{background:#1e1e1e;padding:12px 14px;min-height:200px;max-height:340px;overflow-y:auto;font-family:JetBrains Mono,monospace;font-size:12px}.audit-log-empty{color:#555}.audit-log-line{display:flex;gap:10px;margin-bottom:4px;line-height:1.5}.audit-log-ts{color:#555;white-space:nowrap;flex-shrink:0}.audit-log-line--info .audit-log-text{color:#ccc}.audit-log-line--ok .audit-log-text{color:#6fcf97}.audit-log-line--warn .audit-log-text{color:#f2c94c}.audit-log-line--error .audit-log-text{color:#eb5757}.audit-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;margin-bottom:20px}.audit-banner--info{background:var(--info-bg);color:var(--info);border-left:3px solid var(--info)}.audit-banner--ok{background:var(--success-bg);color:var(--success);border-left:3px solid var(--success)}.audit-banner--error{background:var(--error-bg);color:var(--error);border-left:3px solid var(--error)}.audit-banner--warning{background:var(--warning-bg);color:var(--warning);border-left:3px solid var(--warning)}.audit-spinner{display:inline-block;width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}.audit-result-summary{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.audit-result-badge{display:flex;flex-direction:column;align-items:center;padding:14px 24px;border-radius:var(--radius);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;min-width:90px}.audit-result-count{font-size:28px;font-weight:800;line-height:1;margin-bottom:4px}.audit-result-badge--ok{background:var(--success-bg);color:var(--success)}.audit-result-badge--warning{background:var(--warning-bg);color:var(--warning)}.audit-result-badge--error{background:var(--error-bg);color:var(--error)}.input{padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13.5px;font-family:inherit;background:white;color:var(--text);transition:border-color var(--transition),box-shadow var(--transition);box-sizing:border-box}.input:focus{outline:none;border-color:var(--upc-red);box-shadow:0 0 0 3px rgba(227,6,19,.08)}.input::placeholder{color:var(--text-light)}.audit-result-resumen{background:var(--bg);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:20px;border-left:3px solid var(--border)}.audit-findings{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.audit-finding{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px}.audit-finding--ok{background:var(--success-bg)}.audit-finding--warning{background:var(--warning-bg)}.audit-finding--error{background:var(--error-bg)}.audit-finding-msg{flex:1 1;line-height:1.5}.audit-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0}.audit-badge--ok{background:#c8e6c9;color:#1b5e20}.audit-badge--warning{background:#fff3e0;color:#bf360c}.audit-badge--error{background:#ffebee;color:#b71c1c}.audit-badge--muted{background:var(--border-light);color:var(--text-muted)}.audit-raw{margin-bottom:4px}.audit-raw-pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto}