:root{--primary: #1f4e79;--primary-dark: #163a5c;--primary-light: #e9f0f6;--danger: #dc3545;--success: #28a745;--warning: #ffc107;--gray-50: #f8f9fa;--gray-100: #f1f3f5;--gray-200: #e9ecef;--gray-300: #dee2e6;--gray-400: #ced4da;--gray-500: #adb5bd;--gray-600: #868e96;--gray-700: #495057;--gray-800: #343a40;--gray-900: #212529;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.1);--shadow-lg: 0 10px 15px rgba(0,0,0,.1);--radius: 6px;--radius-sm: 4px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;background:var(--gray-100);color:var(--gray-900);line-height:1.5}.app-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--gray-900);color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh;z-index:100}.sidebar-mobile-quickbar{display:none}.sidebar-header{padding:20px;border-bottom:1px solid var(--gray-700)}.sidebar-header h1{font-size:1.2rem;font-weight:700;color:#fff}.sidebar-header p{font-size:.8rem;color:var(--gray-500);margin-top:4px}.sidebar-nav{flex:1;padding:12px;overflow-y:auto}.nav-section{margin-bottom:20px}.nav-section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gray-500);padding:0 12px;margin-bottom:8px}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--gray-400);text-decoration:none;font-size:.9rem;transition:all .15s ease;cursor:pointer}.nav-link:hover{background:var(--gray-800);color:#fff}.nav-link.active{background:var(--primary);color:#fff}.nav-link svg{width:18px;height:18px;flex-shrink:0}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--gray-700)}.ejercicio-select{width:100%;padding:8px 12px;background:var(--gray-800);border:1px solid var(--gray-700);border-radius:var(--radius-sm);color:#fff;font-size:.9rem;cursor:pointer}.ejercicio-select option{background:var(--gray-800)}.ejercicio-select:focus{outline:none;border-color:var(--primary)}.btn-refresh-sync{width:100%;margin-top:12px;padding:10px 12px;border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.btn-refresh-sync:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn-refresh-sync:disabled{opacity:.7;cursor:wait}.sync-status-message{margin-top:8px;color:var(--gray-400);font-size:.8rem;line-height:1.4}.main-content{flex:1;margin-left:260px;padding:24px 32px;min-height:100vh}.page-header{margin-bottom:24px}.page-header h2{font-size:1.5rem;font-weight:700;color:var(--gray-900)}.page-header p{color:var(--gray-600);margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--gray-200)}.stat-card .stat-label{font-size:.8rem;color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.stat-card .stat-value{font-size:1.8rem;font-weight:700;color:var(--gray-900)}.stat-card .stat-value.primary{color:var(--primary)}.stat-card .stat-value.success{color:var(--success)}.stat-card .stat-value.warning{color:var(--warning)}.table-container{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden}.table-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--gray-200);flex-wrap:wrap;gap:12px}.table-toolbar h3{font-size:1rem;font-weight:600}.search-input{padding:8px 14px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.9rem;width:280px;transition:border-color .15s}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}thead{background:var(--gray-50)}th{padding:12px 16px;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-600);border-bottom:1px solid var(--gray-200);white-space:nowrap}td{padding:12px 16px;font-size:.9rem;border-bottom:1px solid var(--gray-100);color:var(--gray-800)}tbody tr:hover{background:var(--gray-50)}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--primary-light)}.text-right{text-align:right}.text-center{text-align:center}.currency{font-variant-numeric:tabular-nums;font-family:Cascadia Code,Fira Code,Consolas,monospace}.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600}.badge-pending{background:#fff3cd;color:#856404}.badge-accepted{background:#d4edda;color:#155724}.badge-rejected{background:#f8d7da;color:#721c24}.detail-panel{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);margin-bottom:24px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;border-bottom:1px solid var(--gray-200);flex-wrap:wrap;gap:12px}.detail-header .detail-title{font-size:1.25rem;font-weight:700}.detail-header .detail-subtitle{color:var(--gray-600);margin-top:4px;font-size:.9rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;padding:24px}.detail-field{display:flex;flex-direction:column}.detail-field .field-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:4px}.detail-field .field-value{font-size:.95rem;color:var(--gray-900);font-weight:500}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;border:none;cursor:pointer;transition:all .15s ease;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#bb2d3b}.btn-outline{background:transparent;color:var(--gray-700);border:1px solid var(--gray-300)}.btn-outline:hover{background:var(--gray-50);border-color:var(--gray-400)}.btn-back{background:transparent;color:var(--gray-600);padding:6px 0;font-size:.85rem;margin-bottom:16px}.btn-back:hover{color:var(--gray-900)}.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--gray-500)}.spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-right:12px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--gray-500)}.totals-section{padding:24px;border-top:2px solid var(--gray-200);background:var(--gray-50);border-radius:0 0 var(--radius) var(--radius)}.totals-grid{max-width:400px;margin-left:auto}.total-row{display:flex;justify-content:space-between;padding:6px 0;font-size:.9rem}.total-row .total-label{color:var(--gray-600)}.total-row .total-value{font-weight:600;font-family:Cascadia Code,Fira Code,Consolas,monospace}.total-row.total-final{font-size:1.1rem;border-top:2px solid var(--gray-300);padding-top:10px;margin-top:6px}.total-row.total-final .total-label,.total-row.total-final .total-value{font-weight:700;color:var(--gray-900)}.error-message{background:#f8d7da;color:#721c24;padding:16px 20px;border-radius:var(--radius);border:1px solid #f5c6cb;margin-bottom:20px}.top-clientes{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);padding:20px}.top-clientes h3{font-size:1rem;font-weight:600;margin-bottom:16px}.cliente-bar{margin-bottom:12px}.cliente-bar .cliente-info{display:flex;justify-content:space-between;margin-bottom:4px;font-size:.85rem}.cliente-bar .cliente-name{color:var(--gray-700);font-weight:500}.cliente-bar .cliente-amount{color:var(--gray-900);font-weight:600;font-family:Cascadia Code,Fira Code,Consolas,monospace}.cliente-bar .bar-track{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}.cliente-bar .bar-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s ease}@media(max-width:768px){.app-layout{display:block}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;border-top:1px solid var(--gray-700)}.sidebar-mobile-quickbar{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#212529fa;border-bottom:1px solid var(--gray-700)}.sidebar-mobile-year{flex:1;margin:0}.sidebar-mobile-refresh{width:auto;min-width:56px;margin-top:0;padding:8px 10px}.sidebar-mobile-logout{white-space:nowrap;padding:8px 10px;color:#fff;border-color:var(--gray-500)}.sidebar-header,.sidebar-footer,.nav-section-title,.nav-link span{display:none}.sidebar-nav{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px}.nav-section{display:flex;align-items:center;gap:8px;margin:0}.nav-link{justify-content:center;width:48px;height:48px;padding:0;border-radius:14px}.nav-link svg{width:20px;height:20px}.main-content{margin-left:0;padding:72px 12px 92px;width:100%;overflow-x:hidden}.search-input,.table-scroll{width:100%}table{min-width:100%}.detail-grid{grid-template-columns:1fr}.partes-page-header,.obras-page-header{flex-direction:column}.partes-page-actions{width:100%}.obras-page-header .btn,.partes-page-actions .btn{width:100%;justify-content:center}.parte-mobile-grid-2,.parte-mobile-line-actions,.partes-mobile-modal-actions{grid-template-columns:1fr}.mobile-inline-list{padding:8px}.mobile-inline-row{grid-template-columns:64px minmax(0,1fr) auto;gap:10px;padding:12px}.btn{min-height:44px}.form-input,.search-input,select,textarea.form-input,.ejercicio-select{font-size:16px}}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%;justify-content:center}}@media(min-width:769px)and (max-width:1024px){.main-content{padding:20px 24px}}.login-page{min-height:100vh;background:radial-gradient(circle at top left,rgba(31,78,121,.14),transparent 28%),linear-gradient(180deg,#f7f9fc,#eef3f8);padding:32px}.login-shell{max-width:460px;margin:0 auto;min-height:100vh;display:flex;justify-content:center;align-items:center}.login-brand-badge{align-self:flex-start;padding:8px 14px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);font-size:.75rem;font-weight:700;letter-spacing:.08em;margin-bottom:22px}.login-brand-badge-dark{background:var(--primary-light);border-color:#1f4e791a;color:var(--primary-dark)}.login-card{background:#fff;border-radius:24px;box-shadow:var(--shadow-lg);width:100%;overflow:hidden}.login-card-elevated{border:1px solid rgba(31,78,121,.08)}.login-header{padding:28px 32px 0}.login-header-light h2{color:var(--gray-900);font-size:1.6rem;font-weight:700}.login-header-light p{color:var(--gray-600);font-size:.92rem;margin-top:6px}.login-form{padding:32px}.login-form .form-group{margin-bottom:20px}.login-form label{display:block;font-size:.8rem;font-weight:600;color:var(--gray-700);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.login-form .form-input{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.95rem;transition:border-color .15s}.login-form .form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.login-error{background:#f8d7da;color:#721c24;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:16px;border:1px solid #f5c6cb}.btn-login{width:100%;padding:12px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-login:hover{background:var(--primary-dark)}.btn-login:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.login-shell{min-height:auto}}.form-container{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);padding:32px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{display:flex;flex-direction:column;min-width:0}.form-group label{font-size:.8rem;font-weight:600;color:var(--gray-700);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.9rem;color:var(--gray-900);background:#fff;transition:border-color .15s}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}textarea.form-input{resize:vertical;font-family:inherit}.form-actions{display:flex;gap:12px;margin-top:24px}.form-help-text{margin-top:6px;font-size:.8rem;color:var(--gray-500)}.form-group-compact label{margin-bottom:4px}.parte-actions{margin-top:16px;display:flex;justify-content:flex-end}.partes-page-header,.obras-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.partes-page-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.partes-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--gray-700)}.parte-mobile-page{padding-bottom:16px}.parte-mobile-card{overflow:hidden}.parte-mobile-stack{display:grid;gap:14px}.parte-actions-mobile{justify-content:stretch}.parte-actions-mobile .btn{width:100%;justify-content:center}.parte-mobile-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}.parte-mobile-lines{display:grid;gap:12px}.parte-mobile-list-panel{overflow:hidden}.parte-mobile-list-head,.parte-mobile-row{display:grid;grid-template-columns:40px minmax(0,1fr) 56px;align-items:center;gap:10px}.parte-mobile-list-head{padding:12px 16px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500)}.parte-mobile-list-body{display:grid}.parte-mobile-row{width:100%;padding:12px 16px;border:0;border-bottom:1px solid var(--gray-100);background:#fff;text-align:left;cursor:pointer}.parte-mobile-row:last-child{border-bottom:0}.parte-mobile-row-index,.parte-mobile-row-qty{font-weight:700;color:var(--gray-800)}.parte-mobile-row-qty{text-align:right}.parte-mobile-row-main{min-width:0;display:grid;gap:2px}.parte-mobile-row-main strong,.parte-mobile-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parte-mobile-row-main strong{font-size:.88rem;color:var(--gray-900)}.parte-mobile-row-main small{font-size:.76rem;color:var(--gray-500)}.parte-mobile-empty{color:var(--gray-500);text-align:center}.parte-mobile-line-card{overflow:visible}.parte-mobile-line-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid var(--gray-200);font-size:.9rem}.parte-mobile-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.parte-mobile-line-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.parte-mobile-total-card{display:flex;justify-content:space-between;align-items:center;padding:18px;font-size:1rem}.parte-mobile-editor-modal{max-width:520px}.picker-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:12px;z-index:200;margin-top:4px}.picker-list{max-height:200px;overflow-y:auto}.picker-item{padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;color:var(--gray-700);transition:background .1s}.picker-item:hover{background:var(--primary-light);color:var(--primary-dark)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:700px;max-height:80vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--gray-200)}.modal-header h3{font-size:1.1rem;font-weight:600}.modal-body{overflow-y:auto;flex:1}.sidebar-user{margin-top:12px;padding-top:12px;border-top:1px solid var(--gray-700);display:flex;justify-content:space-between;align-items:center}.sidebar-username{font-size:.8rem;color:var(--gray-400);display:block}.sidebar-user-role{display:block;margin-top:2px;font-size:.72rem;text-transform:capitalize;color:var(--gray-500)}.btn-logout{background:transparent;border:1px solid var(--gray-600);color:var(--gray-400);padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:all .15s}.btn-logout:hover{background:var(--danger);border-color:var(--danger);color:#fff}.success-message{background:#d4edda;color:#155724;padding:16px 20px;border-radius:var(--radius);border:1px solid #bfe6c9;margin-bottom:20px}.section-heading{margin-bottom:20px}.section-heading h3{font-size:1.05rem;font-weight:700;color:var(--gray-900)}.section-heading p{color:var(--gray-600);margin-top:4px;font-size:.9rem}.users-page-grid{display:grid;grid-template-columns:minmax(360px,520px) minmax(0,1fr);gap:20px;align-items:start}.users-stats-grid{margin-bottom:20px}.users-table-panel{min-height:100%}.users-form{width:100%}.hourly-rates-toolbar-panel{margin-bottom:20px}.hourly-rates-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hourly-rates-selected-client{color:var(--gray-700);font-size:.92rem}.hourly-rates-input-wrap{display:flex;flex-direction:column;gap:6px}.hourly-rates-input-wrap small{color:var(--gray-600);font-size:.78rem}.users-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-toolbar-meta{color:var(--gray-600);font-size:.85rem}.users-actions-cell{display:inline-flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.btn-table-action{min-width:88px;justify-content:center}.users-empty-state{padding:32px 12px}.badge-role{text-transform:capitalize}.badge-role-administrador{background:#1f4e7924;color:var(--primary-dark)}.badge-role-encargado{background:#ffc10738;color:#8a6700}.badge-role-operario{background:#28a74529;color:#1f7a38}@media(max-width:1080px){.users-page-grid{grid-template-columns:1fr}}@media(max-width:640px){.users-form-grid{grid-template-columns:1fr}.hourly-rates-toolbar{flex-direction:column;align-items:stretch}}.avisos-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:20px;align-items:start}.avisos-type-description{padding:0 20px;margin:-4px 0 16px;color:var(--gray-600);font-size:.85rem}.avisos-add-form{display:flex;gap:8px;padding:0 20px 16px;flex-wrap:wrap}.avisos-add-form .form-input{flex:1;min-width:180px}.avisos-edit-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;width:100%}.avisos-edit-form .form-input{flex:1;min-width:160px}.avisos-posicion-input{width:90px;flex:0 0 auto}.avisos-edit-actions{display:flex;gap:8px;flex:0 0 auto}@media(max-width:1080px){.avisos-settings-grid{grid-template-columns:1fr}}@media(max-width:640px){.avisos-add-form,.avisos-edit-form{flex-direction:column;align-items:stretch}.avisos-posicion-input{width:100%}}.badge-activa{background:#d4edda;color:#155724}.badge-finalizada{background:#cce5ff;color:#004085}.badge-cancelada{background:#f8d7da;color:#721c24}.badge-borrador{background:#fff3cd;color:#856404}.badge-confirmado{background:#d4edda;color:#155724}.badge-cerrado{background:#d1ecf1;color:#0c5460}.parte-photos-toolbar{align-items:flex-start}.parte-photos-help{margin-top:4px;color:var(--gray-600);font-size:.85rem}.parte-photos-actions{display:flex;gap:8px;flex-wrap:wrap}.parte-photos-content{padding:20px}.parte-photos-status,.parte-photos-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--gray-600);text-align:center}.parte-photos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.parte-photo-card{border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;background:var(--gray-50);display:flex;flex-direction:column}.parte-photo-thumb{border:none;background:var(--gray-900);padding:0;cursor:pointer;aspect-ratio:4 / 3}.parte-photo-thumb img{display:block;width:100%;height:100%;object-fit:cover}.parte-photo-card-body{padding:12px;display:flex;flex-direction:column;gap:4px}.parte-photo-card-body strong,.parte-photo-card-body small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parte-photo-card-body small{color:var(--gray-600)}.validation-page{display:flex;flex-direction:column;gap:20px}.validation-page-header{margin-bottom:0}.validation-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.validation-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}.validation-sidebar,.validation-detail{min-height:70vh}.validation-sidebar{padding:0;overflow:hidden}.validation-sidebar-toolbar{padding:18px 18px 12px;border-bottom:1px solid var(--gray-200)}.validation-sidebar-list{display:flex;flex-direction:column;max-height:calc(70vh - 82px);overflow:auto}.validation-list-item{width:100%;border:none;background:#fff;padding:16px 18px;text-align:left;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .18s ease,border-color .18s ease}.validation-list-item:hover{background:var(--gray-50)}.validation-list-item.active{background:var(--primary-light);box-shadow:inset 3px 0 0 var(--primary)}.validation-list-item-top,.validation-list-item-meta,.validation-summary,.validation-actions,.validation-detail-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.validation-list-item-main{margin:8px 0 6px;font-weight:600;color:var(--gray-900)}.validation-list-item-meta{font-size:.82rem;color:var(--gray-600)}.validation-detail{padding:20px}.validation-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.validation-notes{margin-bottom:16px;padding:14px 16px;border-radius:14px;background:var(--gray-50);color:var(--gray-700)}.validation-table-wrap{margin-top:8px}.validation-line-dirty{background:#2ea04314}.validation-price-input{min-width:96px}.validation-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--gray-200)}.validation-summary{color:var(--gray-700);flex-wrap:wrap}.validation-actions{flex-wrap:wrap}.validation-close-btn{background:#155724;border-color:#155724}.validation-close-btn:hover{background:#0f431b;border-color:#0f431b}.validation-empty{min-height:240px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--gray-600);padding:24px}@media(max-width:1200px){.validation-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.validation-layout{grid-template-columns:1fr}.validation-sidebar-list{max-height:320px}}@media(max-width:640px){.validation-detail-grid{grid-template-columns:1fr}.validation-list-item-top,.validation-list-item-meta,.validation-footer,.validation-actions,.validation-detail-header{flex-direction:column;align-items:flex-start}.validation-actions,.validation-actions .btn{width:100%}}.parte-photo-delete{margin:0 12px 12px;justify-content:center;color:var(--danger);border-color:#dc354540}.parte-photo-viewer{width:min(92vw,980px)}.parte-photo-viewer-body{padding:0;background:#0f172a}.parte-photo-viewer-body img{display:block;max-width:100%;max-height:76vh;margin:0 auto}.parte-photo-viewer-meta{display:flex;justify-content:space-between;gap:12px;padding:12px 18px 18px;color:#fff;font-size:.85rem}@media(max-width:768px){.parte-photos-content{padding:16px}.parte-photos-actions{width:100%}.parte-photos-actions .btn{flex:1;justify-content:center}.parte-photos-grid{grid-template-columns:1fr}.parte-photo-viewer-meta{flex-direction:column}}.audio-recorder{margin-top:8px}.audio-recorder-controls{display:flex;align-items:center;gap:12px}.btn-record{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-record:hover{background:var(--primary-dark)}.btn-record:disabled{opacity:.5;cursor:not-allowed}.btn-stop-record{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--danger);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;animation:pulse-border 1.5s ease-in-out infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 #dc354566}50%{box-shadow:0 0 0 8px #dc354500}}.recording-dot{width:10px;height:10px;background:#fff;border-radius:50%;animation:blink 1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.audio-processing{display:flex;align-items:center;color:var(--gray-600);font-size:.9rem}.audio-help-text{margin-top:10px;font-size:.8rem;color:var(--gray-600);line-height:1.45}.audio-error{margin-top:8px;padding:8px 12px;background:#f8d7da;color:#721c24;border-radius:var(--radius-sm);font-size:.85rem}.audio-transcription{margin-top:10px;padding:10px 14px;background:var(--primary-light);border-radius:var(--radius-sm);font-size:.85rem;color:var(--gray-800);border-left:3px solid var(--primary)}.partes-mobile-list{display:grid;gap:0;padding:12px}.partes-mobile-row{width:100%;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px;background:#fff;border:0;border-bottom:1px solid var(--gray-100);text-align:left}.partes-mobile-row:first-child{border-top-left-radius:14px;border-top-right-radius:14px}.partes-mobile-row:last-child{border-bottom:0;border-bottom-left-radius:14px;border-bottom-right-radius:14px}.partes-mobile-row-id{font-weight:700;color:var(--gray-900)}.partes-mobile-row-main{min-width:0;display:grid;gap:2px}.partes-mobile-row-main strong,.partes-mobile-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.partes-mobile-row-main strong{font-size:.88rem;color:var(--gray-900)}.partes-mobile-row-main small{font-size:.76rem;color:var(--gray-500)}.partes-mobile-row-status{display:flex;justify-content:flex-end}.partes-mobile-modal{max-width:520px}.partes-mobile-modal-body{display:grid;gap:14px;padding:18px}.partes-mobile-detail-row{display:grid;gap:4px}.partes-mobile-detail-row span{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500)}.partes-mobile-detail-row strong{font-size:.95rem;color:var(--gray-900)}.partes-mobile-detail-notes strong{font-weight:500}.partes-mobile-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 18px 18px}.mobile-inline-list{display:grid;gap:0;padding:12px}.mobile-inline-row{width:100%;display:grid;grid-template-columns:minmax(72px,max-content) minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;background:#fff;border:0;border-bottom:1px solid var(--gray-100);text-align:left}.mobile-inline-row.clickable{cursor:pointer}.mobile-inline-row.clickable:hover{background:var(--primary-light)}.mobile-inline-row:first-child{border-top-left-radius:14px;border-top-right-radius:14px}.mobile-inline-row:last-child{border-bottom:0;border-bottom-left-radius:14px;border-bottom-right-radius:14px}.mobile-inline-row-static{cursor:default}.mobile-inline-row-leading{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;color:var(--gray-900)}.mobile-inline-row-main{min-width:0;display:grid;gap:2px}.mobile-inline-row-main strong,.mobile-inline-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-inline-row-main strong{font-size:.88rem;color:var(--gray-900)}.mobile-inline-row-main small{font-size:.76rem;color:var(--gray-500)}.mobile-inline-row-trailing{min-width:0;display:grid;justify-items:end;gap:6px}.mobile-inline-row-trailing strong{font-size:.82rem;color:var(--gray-900);white-space:nowrap}.mobile-inline-row-trailing-muted strong{color:var(--gray-500);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.mobile-inline-row-trailing .badge{white-space:nowrap}.badge-albaran{background:#e2e3f1;color:#383d6e}.rentabilidad-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.rent-card{flex:1;min-width:140px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;text-align:center}.rent-card-result{flex:1.5;border-width:2px}.rent-card-positive{border-color:#28a745;background:#f0faf3}.rent-card-negative{border-color:#dc3545;background:#fef5f5}.rent-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-600);margin-bottom:6px;font-weight:600}.rent-value{font-size:1.1rem;font-weight:700}.rent-positive{color:#28a745}.rent-negative{color:#dc3545}.rent-margin{margin-top:4px;font-size:.8rem;color:var(--gray-600)}.rentabilidad-tables{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rent-table-col{overflow:hidden}.rent-table-col h4{font-size:.95rem;font-weight:600;color:var(--gray-800)}@media(max-width:900px){.rentabilidad-tables{grid-template-columns:1fr}.rentabilidad-summary{flex-direction:column}}.badge-alquiler{background:#cce5ff;color:#004085}.badge-stock{background:#fff3cd;color:#856404}.badge-de_cliente{background:#d4edda;color:#155724}.maquinas-filters-panel{padding:20px 24px}.maquinas-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.maquinas-filters-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:16px}.select-with-add{display:flex;gap:8px;align-items:center}.select-with-add .form-input{flex:1;min-width:0}.btn-add-inline{flex-shrink:0;padding:8px 12px;font-weight:700;line-height:1}.maquina-form-locked{text-align:center;padding:32px 24px;color:var(--gray-600);font-size:.95rem}.maquina-form-section{opacity:1;transition:opacity .15s ease}.maquina-form-section.disabled{opacity:.5;pointer-events:none}.placa-upload-block{display:flex;flex-direction:column;gap:12px}.placa-upload-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.placa-preview{max-width:260px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--gray-200)}.placa-preview img{display:block;width:100%;height:auto}.placa-extract-status{font-size:.85rem;padding:10px 14px;border-radius:var(--radius-sm);background:#1f4e7914;color:var(--gray-700)}.placa-extract-warning{font-size:.85rem;padding:10px 14px;border-radius:var(--radius-sm);background:#fff3cd;color:#856404}.field-error-inline{color:#dc3545;font-size:.8rem;margin-top:4px}.maquina-detail-photo{max-width:320px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--gray-200);margin:0 24px 24px}.maquina-detail-photo img{display:block;width:100%;height:auto}.badge-situacion-operativa{background:#d4edda;color:#155724}.badge-situacion-en_reparacion{background:#fff3cd;color:#856404}.badge-situacion-alquilada{background:#cce5ff;color:#004085}.badge-situacion-reservada{background:#e2d9f3;color:#4a2f7a}.badge-situacion-baja{background:#e2e3e5;color:#383d41}.maquina-alta-opciones{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:stretch;padding:24px}.maquina-alta-opcion{border:1px solid var(--gray-200);border-radius:var(--radius);padding:28px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.maquina-alta-opcion h3{font-size:1.05rem}.maquina-alta-opcion p{color:var(--gray-600);font-size:.85rem;margin-bottom:4px}.maquina-alta-opcion-destacada{border:2px solid var(--primary);background:var(--primary-light)}.maquina-alta-opcion-icono{font-size:2.4rem;line-height:1}.maquina-alta-separador{display:flex;align-items:center;justify-content:center;color:var(--gray-500);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}@media(max-width:720px){.maquina-alta-opciones{grid-template-columns:1fr}.maquina-alta-separador{padding:4px 0}}.maquina-form-fieldset{border:1px solid var(--gray-200);border-radius:var(--radius);margin:0 24px 16px;overflow:hidden}.maquina-form-fieldset:last-of-type{margin-bottom:0}.maquina-form-fieldset summary{cursor:pointer;list-style:none;padding:14px 20px;font-weight:700;color:var(--gray-800);background:var(--gray-50);display:flex;align-items:center;justify-content:space-between}.maquina-form-fieldset summary::-webkit-details-marker{display:none}.maquina-form-fieldset summary:after{content:"▾";color:var(--gray-500);transition:transform .15s ease}.maquina-form-fieldset:not([open]) summary:after{transform:rotate(-90deg)}.maquina-form-fieldset .form-grid,.maquina-form-fieldset-body{padding:20px}.maquina-completitud{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid var(--gray-200)}.maquina-completitud-barra{flex:1;height:8px;border-radius:4px;background:var(--gray-200);overflow:hidden}.maquina-completitud-relleno{height:100%;background:var(--primary);border-radius:4px;transition:width .2s ease}.maquina-completitud-texto{font-size:.8rem;color:var(--gray-600);white-space:nowrap}.maquina-banner{margin-bottom:24px;padding:16px 20px;border-radius:var(--radius);border:1px solid transparent}.maquina-banner-creada{background:#d4edda;border-color:#b7dfc2;color:#155724}.maquina-banner-existente{background:#fff3cd;border-color:#f0dfa8;color:#856404}.maquina-banner strong{display:block;margin-bottom:6px;font-size:.95rem}.maquina-banner p{font-size:.88rem}.maquina-banner ul{margin:8px 0 10px 20px;font-size:.88rem}.maquina-banner-acciones{margin-top:10px}.maquina-stats-destacados{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;padding:20px 24px;border-bottom:1px solid var(--gray-200)}.maquina-stat-card{background:var(--gray-50);border-radius:var(--radius-sm);padding:14px 16px}.maquina-stat-card .field-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:4px;display:block}.maquina-stat-card .field-value{font-size:1.15rem;font-weight:700;color:var(--gray-900)}.maquina-stat-card-meta{font-size:.75rem;color:var(--gray-500);margin-top:4px}.maquina-stat-card.alerta .field-value{color:var(--danger)}.maquinas-list-horas{white-space:nowrap;color:var(--gray-700)}.badge-venta{background:#d4edda;color:#155724}.badge-reparacion_con_cargo{background:#fff3cd;color:#856404}.badge-renting{background:#cce5ff;color:#004085}.badge-encargo_sin_cargo,.badge-mecanica{background:#e2e3e5;color:#383d41}.badge-hidraulica{background:#cce5ff;color:#004085}.badge-electrica{background:#fff3cd;color:#856404}.badge-sin_especificar{background:#f1f3f5;color:#868e96}.clasificacion-select-row{display:flex;align-items:center;gap:8px}.badge-ia{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:700;letter-spacing:.02em;background:var(--primary-light);color:var(--primary-dark);white-space:nowrap}.clasificacion-sugerencia{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px;padding:8px 12px;background:var(--primary-light);border-left:3px solid var(--primary);border-radius:var(--radius-sm);font-size:.85rem;color:var(--gray-800)}.btn-clasificacion-sugerencia{padding:5px 12px;font-size:.8rem}.parte-wizard-steps{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.parte-wizard-step{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--gray-100);color:var(--gray-600);font-size:.85rem;font-weight:600}.parte-wizard-step-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--gray-400);color:#fff;font-size:.75rem;flex-shrink:0}.parte-wizard-step.active{background:var(--primary-light);color:var(--primary-dark)}.parte-wizard-step.active .parte-wizard-step-number{background:var(--primary)}.parte-wizard-step.done .parte-wizard-step-number{background:var(--success)}.parte-wizard-title{font-size:1.05rem;font-weight:700;margin-bottom:4px;color:var(--gray-900)}.parte-wizard-subtitle{font-size:.85rem;color:var(--gray-600);margin-bottom:18px}.parte-wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px;flex-wrap:wrap}.parte-tipo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.parte-tipo-card{display:block;width:100%;border:2px solid var(--gray-200);border-radius:var(--radius);padding:16px;text-align:left;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.parte-tipo-card:hover{border-color:var(--primary)}.parte-tipo-card.selected{border-color:var(--primary);background:var(--primary-light)}.parte-tipo-card strong{display:block;font-size:.95rem;margin-bottom:4px;color:var(--gray-900)}.parte-tipo-card small{color:var(--gray-600);font-size:.78rem}.parte-tipo-suggested-note{display:inline-block;font-size:.8rem;color:var(--primary-dark);background:var(--primary-light);padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:12px}.parte-numero-badge{display:inline-flex;align-items:baseline;gap:8px;background:var(--primary-light);color:var(--primary-dark);padding:10px 20px;border-radius:var(--radius);font-size:1.4rem;font-weight:800;letter-spacing:.5px}.parte-numero-badge small{font-size:.7rem;font-weight:600;color:var(--gray-600);letter-spacing:normal}.parte-summary-header{display:flex;flex-wrap:wrap;gap:20px;padding:20px 24px}.parte-summary-field{display:flex;flex-direction:column;gap:2px;min-width:140px}.parte-summary-field span{font-size:.72rem;color:var(--gray-600);text-transform:uppercase;letter-spacing:.4px}.parte-summary-field strong{font-size:.95rem;color:var(--gray-900)}.parte-horas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.parte-hora-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px 16px;border-radius:var(--radius);border:2px solid var(--gray-200);background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.parte-hora-button:hover{border-color:var(--primary)}.parte-hora-button.set{border-color:var(--success);background:#eaf7ec}.parte-hora-button-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600);font-weight:600}.parte-hora-button-value{font-size:1.6rem;font-weight:800;color:var(--gray-900)}.parte-horas-manual{margin-top:8px;max-width:260px}.parte-avisos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.parte-avisos-group h4{margin-bottom:10px;font-size:.9rem;color:var(--gray-800)}.parte-aviso-item{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px}.parte-aviso-item.checked{border-color:var(--primary);background:var(--primary-light)}.parte-aviso-item-head{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;cursor:pointer;color:var(--gray-800)}.parte-aviso-item-notes{margin-top:8px}.parte-link-inline{font-size:.85rem;color:var(--primary);text-decoration:underline;cursor:pointer;background:none;border:none;padding:0}.parte-inline-note{font-size:.78rem;color:var(--gray-600);margin-top:6px}@media(max-width:768px){.parte-wizard-actions{flex-direction:column-reverse}.parte-wizard-actions .btn{width:100%}.parte-summary-header{padding:16px 18px;gap:14px}.parte-horas-grid,.parte-tipo-grid,.parte-avisos-grid{grid-template-columns:1fr}}.dashboard-clasificacion-row{display:flex;flex-wrap:wrap;gap:12px 24px}.dashboard-clasificacion-item{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--gray-900)}.parte-voz-total-panel{background:linear-gradient(135deg,var(--primary-light) 0%,#ffffff 60%);border:1px solid var(--primary-light)}.parte-voz-total-intro{margin-bottom:16px}.parte-voz-total-intro h3{font-size:1.1rem;font-weight:700;color:var(--gray-900);margin-bottom:6px}.parte-voz-total-intro p{font-size:.85rem;color:var(--gray-700);max-width:640px}.audio-recorder-protagonist .audio-recorder-controls{flex-wrap:wrap}.audio-recorder-protagonist .btn-record{padding:18px 28px;font-size:1.05rem;font-weight:700;border-radius:var(--radius);box-shadow:var(--shadow-md)}.audio-recorder-protagonist .btn-record svg{width:26px;height:26px}.audio-recorder-protagonist .btn-stop-record{padding:18px 28px;font-size:1.05rem;font-weight:700;border-radius:var(--radius)}.audio-recorder-protagonist .audio-processing{font-size:1rem;font-weight:600;color:var(--primary-dark)}@media(max-width:768px){.audio-recorder-protagonist .btn-record,.audio-recorder-protagonist .btn-stop-record{width:100%;justify-content:center}.audio-recorder .btn-record,.audio-recorder-protagonist .btn-record{width:100%;justify-content:center;padding-top:16px;padding-bottom:16px;font-size:1.05rem}}.parte-dictado-panel{position:relative;margin-top:18px;padding:16px 40px 16px 16px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);display:flex;flex-direction:column;gap:14px}.parte-dictado-panel-close{position:absolute;top:8px;right:10px;background:none;border:none;font-size:1.3rem;line-height:1;color:var(--gray-500);cursor:pointer;padding:4px}.parte-dictado-panel-close:hover{color:var(--gray-800)}.parte-dictado-panel-section strong{display:block;font-size:.85rem;margin-bottom:6px}.parte-dictado-panel-section ul{list-style:none;display:flex;flex-direction:column;gap:4px}.parte-dictado-panel-section li{font-size:.85rem;color:var(--gray-800);padding-left:4px}.parte-dictado-ok strong{color:#155724}.parte-dictado-warning{padding-top:10px;border-top:1px dashed var(--gray-200)}.parte-dictado-warning strong{color:#856404}.parte-dictado-dudas{padding-top:10px;border-top:1px dashed var(--gray-200)}.parte-dictado-dudas strong{color:#004085}.parte-linea-tipo-select{font-weight:600}.parte-linea-tipo-select.tipo-desplazamiento{background:#ede7f6;color:#4527a0;border-color:#d1c4e9}.badge-desplazamiento{background:#ede7f6;color:#4527a0;margin-bottom:4px;display:inline-block}.parte-linea-badge{margin-right:6px}.parte-descripcion-audio-toggle{margin-top:4px}.articulos-filtros-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.articulos-filtros-toolbar .form-input{max-width:200px}.stock-valor{font-weight:600}.stock-valor.negativo,.stock-valor.agotado{color:#721c24}.stock-valor.bajo-minimo{color:#856404}.stock-badge-rojo{background:#f8d7da;color:#721c24;margin-left:8px}.stock-badge-ambar{background:#fff3cd;color:#856404;margin-left:8px}.ajuste-stock-actual{font-size:1.1rem;font-weight:700;color:var(--gray-800);padding:6px 0}.movimiento-cantidad{font-weight:600}.movimiento-cantidad.positiva{color:#155724}.movimiento-cantidad.negativa{color:#721c24}.parte-linea-tipo-select.tipo-material{background:#e0f2f1;color:#00695c;border-color:#b2dfdb}.badge-material{background:#e0f2f1;color:#00695c;margin-bottom:4px;display:inline-block}.badge-material-codigo{background:#263238;color:#fff;margin-bottom:4px;display:inline-block;font-family:monospace}.parte-material-autocomplete{position:relative}.parte-material-suggestions{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:220px;overflow-y:auto;margin-top:4px}.parte-material-suggestion-item{display:block;width:100%;text-align:left;padding:8px 10px;font-size:.82rem;background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;color:var(--gray-800)}.parte-material-suggestion-item:last-child{border-bottom:none}.parte-material-suggestion-item:hover{background:var(--gray-100)}.parte-dictado-pendientes-material{padding-top:10px;border-top:1px dashed var(--gray-200)}.parte-dictado-pendientes-material strong{color:#00695c}.parte-pendiente-material-item{margin-top:10px;padding:10px 12px;background:var(--gray-100);border-radius:var(--radius)}.parte-pendiente-material-texto{font-size:.85rem;color:var(--gray-800);margin-bottom:8px}.parte-pendiente-material-opciones{display:flex;flex-wrap:wrap;gap:8px}.btn-pendiente-candidato,.btn-pendiente-texto-libre{padding:6px 12px;font-size:.8rem}.btn-pendiente-texto-libre{color:var(--gray-600);border-color:var(--gray-300)}.btn-cancel-record{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;min-height:44px;background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-cancel-record:hover{background:#f5c2c7}.audio-recorder-protagonist .btn-cancel-record{padding:18px 28px;font-size:1.05rem;font-weight:700;border-radius:var(--radius)}@media(max-width:768px){.audio-recorder-protagonist .btn-cancel-record{width:100%;justify-content:center}}.entity-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.entity-toolbar .table-toolbar-meta{color:var(--gray-600);white-space:nowrap}.modal-form{display:flex;flex-direction:column;background:#fff;width:min(760px,calc(100vw - 32px));max-width:760px;max-height:90vh;border-radius:var(--radius);border:1px solid var(--gray-300);box-shadow:var(--shadow-lg);padding:0;overflow:hidden}.modal-form-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--gray-200);flex-shrink:0}.modal-form-title{font-size:1.15rem;font-weight:600;letter-spacing:.01em;color:var(--gray-900)}.modal-form-subtitle{margin-top:4px;font-size:.85rem;color:var(--gray-600)}.modal-form-body{flex:1 1 auto;min-height:0;max-height:70vh;padding:24px;overflow-y:auto}.modal-form-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;border-top:1px solid var(--gray-200);background:var(--gray-50);flex-shrink:0}.form-section{margin-bottom:20px}.form-section:last-child{margin-bottom:0}.form-section-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray-600);border-bottom:1px solid var(--gray-200);padding-bottom:6px;margin-bottom:14px}.form-grid-2,.form-grid-3{display:grid;gap:14px 16px}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-group.span-full{grid-column:1 / -1}@media(max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}@media(max-width:640px){.modal-overlay:has(.modal-form){padding:0}.modal-form{width:100vw;height:100dvh;max-width:none;max-height:100dvh;border-radius:0;border:none}.modal-form-body{flex:1 1 auto;max-height:none}}@media(max-width:640px){table.table-cards thead{display:none}table.table-cards,table.table-cards tbody,table.table-cards tr,table.table-cards td{display:block;width:100%}table.table-cards tr{margin-bottom:12px;padding:4px 14px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius)}table.table-cards tr:last-child{margin-bottom:0}table.table-cards td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;text-align:right;border-bottom:1px solid var(--gray-100)}table.table-cards td:last-child{border-bottom:none}table.table-cards td:before{content:attr(data-label);margin-right:12px;text-align:left;font-weight:600;color:var(--gray-600)}table.table-cards td:has(.users-actions-cell){flex-direction:column;align-items:stretch}table.table-cards td:has(.users-actions-cell):before{margin-bottom:6px}table.table-cards .users-actions-cell{width:100%;justify-content:stretch}table.table-cards .users-actions-cell .btn{flex:1;justify-content:center}}tr.row-clickable{cursor:pointer;touch-action:manipulation}tr.row-clickable:hover td{background:var(--primary-light)}.modal-form-footer .btn-danger{margin-right:auto}.paginador{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:14px}.paginador-info{color:var(--gray-600);font-size:.85rem}.paginador-controles{display:flex;align-items:center;gap:10px}.paginador-pagina{color:var(--gray-700);font-size:.9rem;white-space:nowrap}@media(max-width:640px){.paginador{justify-content:center}}.articulos-toolbar-count{color:var(--gray-600);font-size:.85rem;white-space:nowrap}.articulos-familia-otra{margin-top:8px}.articulos-proveedores-editor{display:flex;flex-direction:column;gap:8px}.articulos-proveedor-fila{display:grid;grid-template-columns:2fr 2fr 1.2fr auto;gap:10px;align-items:center}.articulos-proveedor-fila-cabecera{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500)}.btn-quitar-proveedor{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--gray-500);font-size:.95rem;cursor:pointer;transition:all .15s ease}.btn-quitar-proveedor:hover{background:var(--gray-100);color:var(--danger)}.articulos-btn-add-proveedor{align-self:flex-start}@media(max-width:700px){.articulos-proveedor-fila{grid-template-columns:1fr;gap:6px;padding-bottom:10px;border-bottom:1px solid var(--gray-100)}.articulos-proveedor-fila-cabecera{display:none}}.articulos-stock-actual-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.articulos-stock-actual-botones{display:flex;gap:8px;flex-wrap:wrap}.btn-compact{padding:6px 12px;font-size:.82rem}.entity-toolbar-count{white-space:nowrap;font-size:.9rem;color:var(--gray-600)}@media(max-width:640px){.maquina-form-page .form-grid{grid-template-columns:1fr}}@media(max-width:640px){.maquinas-list-page .mobile-inline-row{grid-template-columns:88px minmax(0,1fr) auto}.maquinas-list-page .mobile-inline-row-trailing{max-width:132px}}
