:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#172033;--panel:#fff;--line:#d9e1ec;--text-soft:#627188;--dark:#152033;--ok:#168255;--info:#2563eb;--warn:#b7790f;--danger:#dc2626;--commercial:#7c3aed;--maintenance:#0891b2;--muted:#64748b;background:#eef2f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#dbeafe 0,#0000 32rem),#eef2f6;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb61}button:disabled{cursor:not-allowed;opacity:1}button,.badge,.card,.metric,.journey-card,.compact-list article{min-width:0}p,h1,h2,h3,strong,span,small,dd,dt,button{overflow-wrap:break-word;word-break:normal}a,code,.technical-token{overflow-wrap:anywhere}.shell{min-height:100vh;display:flex}.sidebar{z-index:4;color:#fff;background:#101827;flex-direction:column;gap:12px;width:236px;height:100vh;padding:12px 10px;transition:width .18s;display:flex;position:sticky;top:0}.superadmin-shell .sidebar{background:linear-gradient(#111827,#3b1f6d)}.superadmin-shell .topbar{border-bottom-color:#d8b4fe}.sidebar.collapsed{width:76px}.brand,.collapse,.sidebar nav button,.sidebar nav a{color:#cbd5e1;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;height:42px;padding:0 14px;text-decoration:none;display:flex}.brand{color:#fff;background:#1d2b44;flex:1;font-weight:800}.brand-row{align-items:center;gap:8px;display:flex}.side-toggle{color:#fff;background:#1d2b44;border:0;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.sidebar nav{flex:1;gap:4px;min-height:0;display:grid;overflow:auto}.sidebar nav button:hover,.sidebar nav button.active,.sidebar nav a:hover,.sidebar nav a.active,.collapse:hover{color:#fff;background:#263650}.sidebar span{opacity:1;white-space:nowrap;transition:opacity .12s}.sidebar.collapsed span{opacity:0;width:0;overflow:hidden}.sidebar-update{color:#cbd5e1;text-align:left;background:#1d2b44;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:42px;padding:0 14px;display:flex}.sidebar-update span{font-weight:800}.sidebar-update:hover:not(:disabled),.sidebar-update.needs-update{color:#fff;background:#263650}.sidebar-update.needs-update{color:#dbeafe}.sidebar-update:disabled{cursor:progress;opacity:.8}.workspace{flex:1;min-width:0}.version-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.version-actions button{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:40px;padding:8px 11px;font-weight:850}.connectivity-banner{color:#7c4a03;background:#fffbeb;border:1px solid #fcd34d;border-radius:14px;align-items:center;gap:8px;margin:10px 24px 0;padding:10px 12px;font-weight:850;display:flex}.runtime-error{color:#7f1d1d;background:#fff1f2;border:1px solid #fecaca;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:10px 24px 0;padding:10px 12px;display:flex}.runtime-error strong,.runtime-error span,.runtime-error small{display:block}.runtime-error span,.runtime-error small{font-size:12px;font-weight:750}.topbar{z-index:3;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#f8fafce6;align-items:center;gap:14px;min-height:74px;padding:14px 24px;transition:transform .22s,min-height .22s,padding .22s;display:flex;position:sticky;top:0}.top-title{min-width:190px}.topbar h1{margin:0;font-size:19px}.eyebrow{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;margin:0 0 2px;font-size:11px;font-weight:800}.search-wrap{flex:1;min-width:260px;position:relative}.search{border:1px solid var(--line);height:42px;color:var(--text-soft);background:#fff;border-radius:14px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input,.filters input,.filters select{color:#172033;background:0 0;border:0;outline:0;width:100%}.search-results{z-index:8;border:1px solid var(--line);background:#fff;border-radius:16px;gap:6px;padding:8px;display:grid;position:absolute;top:48px;left:0;right:0;box-shadow:0 24px 70px #0f172a29}.search-results button{text-align:left;background:#f8fafc;border:0;border-radius:12px;gap:4px;padding:10px;display:grid}.search-results span,.search-results small{color:#334155}.search-results p{color:var(--text-soft);margin:8px}.icon-btn,.mobile-menu,.tech-top button{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:5px;min-width:42px;height:42px;display:inline-flex}.mobile-menu{display:none}.user{color:var(--text-soft);align-items:center;gap:9px;font-weight:700;display:flex}.user-button{background:0 0;border:0;border-radius:14px;padding:4px 8px}.user-menu-wrap{position:relative}.mobile-session-actions{gap:8px;display:none}.mobile-session-actions button{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:6px;min-height:42px;padding:0 10px;font-weight:850;display:inline-flex}.popover-backdrop{z-index:14;cursor:default;background:0 0;border:0;position:fixed;inset:0}.user-popover{z-index:15;border:1px solid var(--line);background:#fff;border-radius:16px;gap:6px;width:260px;padding:8px;display:grid;position:absolute;top:50px;right:0;box-shadow:0 24px 70px #0f172a29}.user-popover button{text-align:left;background:#f8fafc;border:0;border-radius:12px;align-items:center;gap:8px;padding:10px;font-weight:800;display:flex}.workspace-switch{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:6px;padding:8px 0;display:grid}.workspace-switch strong{color:var(--text-soft);text-transform:uppercase;letter-spacing:.04em;padding:0 10px;font-size:12px}.workspace-switch button.active{color:#1d4ed8;background:#dbeafe}.user>span{background:var(--dark);color:#fff;border-radius:12px;place-items:center;width:36px;height:36px;font-size:12px;display:grid}.user strong,.user small{display:block}.user small{font-size:12px;font-weight:700}main{padding:24px}.mini-modal{z-index:40;padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:#0f172a57;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.mini-modal>div,.mini-modal>form{border:1px solid var(--line);background:#fff;border-radius:20px;gap:12px;width:min(640px,100vw - 24px);max-height:min(92dvh,100dvh - 24px);padding:18px;display:grid;overflow:auto;box-shadow:0 24px 70px #0f172a33}.mini-modal:has(.multi-equipment-list)>form{width:min(900px,100vw - 32px)}.invoice-draft-modal>div{width:min(1100px,100vw - 24px)}.invoice-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.invoice-context-grid section{border:1px solid var(--line);background:#f8fbff;border-radius:14px;padding:12px}.invoice-context-grid h4{color:#0f4c81;letter-spacing:.06em;margin:0 0 8px;font-size:.78rem}.invoice-context-grid p{margin:5px 0}.sat-review-summary{background:#fffaf0;border:1px solid #f1c27d;border-radius:14px;grid-column:1/-1;padding:12px}.sat-review-summary h4{color:#9a5b00;letter-spacing:.06em;margin:0 0 8px;font-size:.78rem}.sat-review-flags{border:1px solid var(--line);border-radius:14px;gap:8px;margin:0;padding:12px;display:grid}.sat-review-flag{border:1px solid var(--line);cursor:pointer;background:#f8fbff;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:11px;gap:10px!important;display:grid!important}.sat-review-flag input{width:18px;min-height:18px;margin:0}.invoice-totals{border-top:1px solid var(--line);justify-content:flex-end;gap:18px;padding-top:12px;display:flex}.invoice-print-document{display:none}.invoice-print-document header{border-bottom:2px solid #152033;justify-content:space-between;gap:24px;padding-bottom:18px;display:flex}.invoice-print-document h1,.invoice-print-document h2,.invoice-print-document p{margin:0}.invoice-print-document h1{font-size:30px}.invoice-print-document h2{text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:13px}.invoice-print-emitter,.invoice-print-parties div{gap:3px;display:grid}.invoice-print-emitter{text-align:right}.invoice-print-parties{grid-template-columns:1fr 1fr;gap:24px;padding:24px 0;display:grid}.invoice-print-document table{border-collapse:collapse;width:100%}.invoice-print-document th,.invoice-print-document td{text-align:left;vertical-align:top;border-bottom:1px solid #d9e1ec;padding:9px 6px}.invoice-print-document th{text-transform:uppercase;background:#f1f5f9;font-size:11px}.invoice-print-totals{justify-content:flex-end;gap:24px;padding-top:18px;display:flex}.invoice-print-totals span{text-align:right;color:#627188;gap:4px;display:grid}.invoice-print-totals strong{color:#172033;font-size:16px}.invoice-print-notes{border-top:1px solid #d9e1ec;padding-top:12px;margin-top:24px!important}.mini-modal h3{margin:0}.mini-modal label{gap:7px;font-weight:850;display:grid}.mini-modal input,.mini-modal textarea,.mini-modal select{border:1px solid var(--line);min-height:42px;color:var(--dark);background:#fff;border-radius:12px;min-width:0;padding:0 10px}.mini-modal textarea{resize:vertical;padding:10px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.modal-footer{z-index:2;border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:8px;padding:12px 0 0;display:flex;position:sticky;bottom:-18px}.modal-footer button{border:1px solid var(--line);color:var(--dark);background:#fff;border-radius:12px;min-height:44px;padding:10px 13px;font-weight:850}.page{gap:18px;display:grid}.breadcrumb{color:var(--text-soft);font-size:13px;font-weight:700}.page-head,.detail-hero{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-head h2,.detail-hero h2{letter-spacing:-.03em;margin:0 0 4px;font-size:clamp(24px,3vw,34px)}.page-head p,.detail-hero p{color:var(--text-soft);margin:0}.primary,.actions button,.actions a,.card header button,.card header a,.link-button,.tabs button,.status-options button,.reset-demo{border:1px solid var(--line);color:var(--dark);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:10px 13px;font-weight:800;text-decoration:none;display:inline-flex}.primary{color:#fff;background:#14213d;border-color:#14213d}.primary:hover:not(:disabled){color:#fff;background:#1f3158;border-color:#1f3158}.primary:active:not(:disabled),.actions button:active:not(:disabled),.actions a:active,.link-button:active{transform:translateY(1px)}.actions button:hover:not(:disabled),.actions a:hover,.card header button:hover:not(:disabled),.card header a:hover,.link-button:hover,.tabs button:hover:not(:disabled),.modal-footer button:hover:not(:disabled),.row-actions button:hover:not(:disabled){color:#0f172a;background:#eef6ff;border-color:#b9d5ff}.primary:disabled,.modal-footer .primary:disabled{color:#475569;cursor:not-allowed;background:#cbd5e1;border-color:#cbd5e1}.wide{width:100%}.big{min-height:54px;font-size:17px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;display:grid}.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.dashboard-grid .card{min-width:0}.quick-actions{margin-top:0}.quick-actions a,.quick-actions button{min-height:44px}.dashboard-list article{grid-template-columns:minmax(150px,210px) minmax(0,1fr) auto}.interactive-bars{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));align-items:end;gap:12px;min-height:190px;padding-top:12px;display:grid}.interactive-bars a,.interactive-bars>div{color:var(--dark);background:#f8fafc;border:1px solid #e7edf5;border-radius:14px;grid-template-rows:1fr auto auto;place-items:end center;gap:6px;min-width:0;padding:10px;text-decoration:none;display:grid}.interactive-bars a:hover{background:#eef6ff}.interactive-bars span{background:linear-gradient(180deg, var(--info), var(--maintenance));border-radius:10px 10px 4px 4px;width:100%;max-width:44px;min-height:12px}.interactive-bars strong{font-size:18px}.interactive-bars small{color:var(--text-soft);text-align:center;overflow-wrap:break-word;word-break:normal}.metric{border:1px solid var(--line);text-align:left;background:#fff;border-radius:18px;min-height:98px;padding:14px;text-decoration:none;box-shadow:0 12px 30px #0f172a0d}.metric div{color:var(--text-soft);align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.metric strong{color:#172033;margin-top:13px;font-size:25px;display:block}.metric small{color:var(--text-soft);font-weight:800}.metric.ok{border-top:4px solid var(--ok)}.metric.info{border-top:4px solid var(--info)}.metric.warn{border-top:4px solid var(--warn)}.metric.danger{border-top:4px solid var(--danger)}.metric.commercial{border-top:4px solid var(--commercial)}.metric.maintenance{border-top:4px solid var(--maintenance)}.metric.muted{border-top:4px solid var(--muted)}.grid{gap:18px;display:grid}.two-one{grid-template-columns:minmax(0,1.6fr) minmax(320px,.9fr)}.half{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.table-card{border:1px solid var(--line);background:#fffffff0;border-radius:20px;padding:16px;box-shadow:0 12px 30px #0f172a0e}.card header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.card h3{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.work-list,.tech-list,.compact-list,.detail-rows{gap:10px;display:grid}.work-row{text-align:left;background:#f8fafc;border:1px solid #e6edf5;border-radius:15px;grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;padding:12px;display:grid}.work-row:hover,tbody tr:hover,.detail-rows button:hover{background:#eef6ff}.work-row strong,.tech-card strong{margin-bottom:4px;display:block}.work-row span,.tech-card span,.tech-card small{color:var(--text-soft);font-size:12px;display:block}.work-row>div:last-child{flex-wrap:wrap;justify-content:end;align-items:end;gap:6px;display:flex}.tech-card{background:#fbfcfe;border:1px solid #e6edf5;border-radius:15px;gap:7px;padding:12px;display:grid}.tech-card>div{justify-content:space-between;align-items:center;gap:8px;display:flex}.badge{white-space:normal;overflow-wrap:break-word;word-break:normal;border-radius:999px;align-items:center;gap:5px;width:fit-content;max-width:100%;padding:5px 8px;font-size:12px;font-weight:900;line-height:1.15;display:inline-flex!important}.badge.ok{color:#065f46;background:#dff8eb}.badge.info{color:#1d4ed8;background:#dbeafe}.badge.warn{color:#92400e;background:#fef3c7}.badge.danger{color:#991b1b;background:#fee2e2}.badge.commercial{color:#6d28d9;background:#ede9fe}.badge.maintenance{color:#0e7490;background:#cffafe}.badge.muted{color:#475569;background:#e2e8f0}.compact-list article{background:#fafcff;border:1px solid #e7edf5;border-radius:14px;grid-template-columns:minmax(130px,190px) minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px;display:grid;overflow:hidden}.compact-list.multi-equipment-list article{grid-template-columns:auto minmax(180px,1.2fr) minmax(180px,1fr) minmax(90px,auto);align-items:center;overflow:visible}.multi-equipment-list article>*{min-width:0}.multi-equipment-list article strong,.multi-equipment-list article p{overflow-wrap:normal;word-break:normal;white-space:normal;grid-area:1/2/auto/4;min-width:160px;max-width:100%}.multi-equipment-list article>.badge{grid-area:1/1}.multi-equipment-list article:has(label)>label{grid-row:2}.multi-equipment-list article:has(label)>label:first-of-type{grid-column:2}.multi-equipment-list article:has(label)>label:nth-of-type(2){grid-column:3}.multi-equipment-list article:has(label)>button{grid-area:2/4}.multi-equipment-list article:not(:has(label))>button{grid-area:1/4}.multi-equipment-list article label{gap:5px;min-width:0;display:grid}.multi-equipment-list article input{width:100%;min-width:0}.compact-list p{color:#334155;margin:0}.compact-list p,.compact-list small{overflow-wrap:break-word;word-break:normal}.work-time-list article{grid-template-columns:minmax(96px,max-content) minmax(220px,1fr) minmax(180px,auto);overflow:visible}.work-time-list article p,.work-time-list article strong{overflow-wrap:break-word;word-break:normal;white-space:normal;min-width:0}.work-time-list .time-meta{gap:3px;display:grid}.work-time-list .time-money{text-align:right;white-space:normal}.stock-movements-list article{grid-template-columns:minmax(170px,1fr) minmax(110px,auto);align-items:start;overflow:visible}.stock-movement-main{gap:5px;display:grid}.stock-movement-main strong,.stock-movement-main span,.stock-movement-main small{display:block}.stock-movement-meta{color:var(--text-soft);font-weight:750}.stock-movement-qty{text-align:right;justify-self:end;justify-items:end;gap:5px;display:grid}.stock-movement-qty strong{white-space:nowrap}.finalize-modal>div{width:min(1040px,100%)}.finalize-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.planned-materials{gap:10px;display:grid}.planned-group{border-top:1px solid var(--line);gap:8px;padding-top:10px;display:grid}.planned-group h4{color:var(--dark);letter-spacing:.04em;margin:0;font-size:13px}.compact-list small{color:var(--text-soft)}.compact-list article>button,.compact-list article>a{border:1px solid var(--line);color:var(--dark);text-align:center;background:#fff;border-radius:10px;padding:8px 10px;font-weight:800;text-decoration:none}.filters{grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(140px,1fr));gap:10px;display:grid}.filters label,.filters select,.filters input{border:1px solid var(--line);height:40px;color:var(--text-soft);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:0 10px;display:flex}.sat-filters{grid-template-columns:repeat(2,minmax(180px,1fr))}.rate-status-filter{flex-wrap:wrap;align-items:stretch;gap:6px;display:flex}.rate-status-filter button{border:1px solid var(--line);color:var(--dark);background:#fff;border-radius:12px;min-height:40px;padding:8px 11px;font-weight:800}.rate-status-filter button.active,.rate-status-filter button[aria-pressed=true]{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}.sat-work-list{gap:12px;display:grid}.sat-work-card{border:1px solid var(--line);background:#fff;border-radius:18px;gap:12px;padding:14px;display:grid;box-shadow:0 10px 28px #0f172a0d}.sat-work-card header,.sat-work-card footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.sat-work-card strong,.sat-work-card span,.sat-work-card small,.sat-work-card b{display:block}.sat-work-card span,.sat-work-card small{color:var(--text-soft);font-size:12px}.record-list{gap:10px;display:grid}.record-card{border:1px solid var(--line);background:#fff;border-radius:16px;gap:9px;min-width:0;padding:12px 14px;display:grid;box-shadow:0 8px 22px #0f172a0b}.record-card header{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.record-card .record-title{min-width:0;color:var(--dark);font-weight:900}.record-card .record-title a{color:inherit;text-decoration:none}.record-meta{color:var(--text-soft);flex-wrap:wrap;gap:3px 16px;min-width:0;font-size:12px;font-weight:750;display:flex}.record-meta b{color:var(--dark);margin-right:4px;font-weight:900}.record-card footer{justify-content:flex-end;align-items:center;gap:8px;display:flex}.record-card .lifecycle-panel{margin-top:0}.record-open{white-space:nowrap}.sat-meta-row{color:var(--text-soft);flex-wrap:wrap;gap:4px 16px;min-width:0;font-size:12px;font-weight:700;display:flex}.sat-meta-row b{color:var(--dark);margin-right:4px;font-weight:900}.sat-meta-row span{display:inline}.assignment-list{gap:10px;display:grid}.assignment-row{background:#f8fafc;border:1px solid #e7edf5;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.assignment-row div:first-child{gap:4px;display:grid}.assignment-row span,.assignment-row small{color:#64748b}.work-actions{align-items:center}.status-selector{gap:8px;font-size:1.05rem;font-weight:900;display:grid}.status-selector select{border:1px solid var(--line);min-height:52px;color:var(--dark);background:#fff;border-radius:14px;padding:0 12px;font-size:1rem;font-weight:850}.work-detail .table-card table{min-width:820px}button.danger{color:#991b1b;background:#fff1f2;border-color:#fecaca}button.danger:disabled{opacity:.6;cursor:progress}.table-card{padding:0;overflow:auto}.quote-detail-page{max-width:1180px;margin-inline:auto}.quote-head{align-items:flex-start}.quote-print{gap:16px;min-width:0;display:grid}.print-only{display:none}.quote-report{color:#172033;border:1px solid var(--line);background:#fff;border-radius:24px;gap:18px;padding:24px;display:none}.quote-report-hero{color:#fff;background:linear-gradient(135deg,#111827,#24324a);border-radius:22px;justify-content:space-between;gap:18px;padding:20px;display:flex}.quote-report-hero h1,.quote-report-hero p{margin:0}.quote-report-hero span,.quote-report-hero strong{color:#e2e8f0;text-align:right;display:block}.quote-report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.quote-report-grid div,.quote-report-section,.quote-report-totals div{background:#f8fafc;border:1px solid #e7edf5;border-radius:16px;padding:14px}.quote-report-grid h3,.quote-report-section h3{margin:0 0 8px}.quote-report-grid p,.quote-report-section p{color:#334155;margin:0;line-height:1.5}.quote-report-table{overflow-x:auto}.quote-report-table table{min-width:680px}.quote-report-totals{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.quote-report-totals span,.quote-report-totals small{color:var(--text-soft);font-size:12px;font-weight:850;display:block}.quote-report-totals strong{margin-top:4px;font-size:19px;display:block}.quote-report-total{color:#fff;background:#111827!important}.quote-report-total span{color:#cbd5e1}.quote-lines-table{max-width:100%;overflow-x:auto}.quote-lines-table table{min-width:760px}.table-card.slim table{min-width:700px}table{border-collapse:collapse;width:100%;min-width:920px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e8eef6;padding:12px 14px}th{color:var(--text-soft);text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;font-size:12px}td span{color:var(--text-soft);margin-top:3px;font-size:12px;display:block}.detail-hero{color:#fff;background:linear-gradient(135deg,#111827,#24324a);border-radius:22px;padding:18px}.detail-hero p{color:#cbd5e1}.actions{flex-wrap:wrap;gap:9px;display:flex}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.info-grid div{background:#f8fafc;border:1px solid #e7edf5;border-radius:13px;padding:11px}dt{color:var(--text-soft);font-size:12px;font-weight:800}dd{margin:3px 0 0;font-weight:750}.large-note{color:#334155;margin:0 0 12px;line-height:1.55}.timeline{gap:10px;margin:0;padding-left:22px;display:grid}.timeline li{color:#334155;padding-left:5px}.link-button{width:max-content}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tabs button.active{background:var(--dark);color:#fff}.overlay{z-index:20;background:#0f172a57;justify-content:flex-end;display:flex;position:fixed;inset:0}.side-panel{background:#f8fafc;width:min(520px,100vw);height:100%;padding:18px;overflow:auto;box-shadow:-20px 0 70px #0f172a40}.side-panel header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.side-panel h2{margin:0}.side-panel header button,.detail-rows button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px}.detail-rows button{text-align:left;gap:8px;display:grid}.bar-chart{grid-template-columns:repeat(6,1fr);align-items:end;gap:10px;height:210px;display:grid}.bar-chart div{text-align:center;min-height:100%;color:var(--text-soft);grid-template-rows:1fr auto auto;gap:6px;font-size:12px;display:grid}.bar-chart span{background:var(--info);border-radius:10px 10px 4px 4px;align-self:end;min-height:18px}.bar-chart span.commercial{background:var(--commercial)}.bar-chart span.info{background:var(--info)}.dual-bars{gap:18px;padding:14px 0;display:grid}.dual-bars label{grid-template-columns:110px 1fr 40px;align-items:center;gap:10px;font-weight:800;display:grid}.dual-bars span{background:#e2e8f0;border-radius:999px;height:16px;overflow:hidden}.dual-bars i{background:linear-gradient(90deg, var(--info), var(--maintenance));height:100%;display:block}.donut-list{gap:12px;display:grid}.donut-list div{border-bottom:1px solid #e7edf5;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.login-page{background:radial-gradient(circle at 20% 20%,#dbeafe,#0000 28rem),#e9eef5;grid-template-columns:minmax(360px,.95fr) minmax(380px,1.05fr);min-height:100vh;padding:0;display:grid}.login-visual{color:#fff;background:linear-gradient(135deg,#101827,#24324a);align-content:center;gap:20px;padding:clamp(32px,6vw,72px);display:grid;position:relative;overflow:hidden}.login-visual:after{content:"";border:1px solid #ffffff1f;border-radius:50%;width:360px;height:360px;position:absolute;inset:auto -80px -80px auto}.industrial-mark{letter-spacing:.08em;align-items:center;gap:12px;font-weight:900;display:flex}.login-visual h1{letter-spacing:-.05em;margin:0;font-size:clamp(38px,5vw,62px)}.login-visual p{color:#cbd5e1;max-width:520px;line-height:1.55}.door-illustration{aspect-ratio:1.9;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:24px;grid-template-columns:repeat(3,1fr);gap:10px;width:min(460px,100%);padding:22px;display:grid}.door-illustration span{background:linear-gradient(#94a3b873,#1e293bb3);border:2px solid #ffffff3d;border-radius:10px}.door-illustration i{background:var(--maintenance);border-radius:999px;width:90px;height:14px;position:absolute;transform:translate(310px,118px)}.visual-tags{flex-wrap:wrap;gap:8px;display:flex}.login-card{border:1px solid var(--line);background:#fffffff5;border-radius:28px;place-self:center;gap:16px;width:min(460px,100% - 32px);padding:clamp(22px,4vw,34px);display:grid;box-shadow:0 24px 80px #0f172a24}.login-brand{align-items:center;gap:12px;display:flex}.login-brand strong,.login-brand span{display:block}.login-brand strong{font-size:23px}.login-brand span,.login-card footer{color:var(--text-soft);font-size:13px}.login-card label{color:#334155;gap:7px;font-weight:850;display:grid}.login-card input,.password-field{border:1px solid var(--line);background:#fff;border-radius:13px;height:44px;padding:0 12px}.password-field{align-items:center;padding-right:4px;display:flex}.password-field input{border:0;outline:0;flex:1;height:auto;padding:0}.password-field button{background:0 0;border:0;place-items:center;width:38px;height:38px;display:grid}.login-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.login-row .check{grid-template-columns:auto 1fr;align-items:center;gap:8px;font-weight:700;display:flex}.login-row input{width:auto;height:auto}.text-button{color:var(--info);background:0 0;border:0;font-weight:850}.form-error,.success-note{color:#991b1b;background:#fee2e2;border-radius:12px;align-items:center;gap:8px;margin:0;padding:10px;font-weight:800;display:flex}.success-note{color:#065f46;background:#dff8eb}.state-warning{color:#6b4e00;background:#fff7d6;border:1px solid #e5c76b;border-radius:12px;align-items:center;gap:8px;margin:0;padding:10px;font-weight:850;display:flex}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.archived-record,.archived-row{opacity:.74;filter:grayscale(.18)}.archived-record{background:#f8fafc;border:1px dashed #94a3b8;border-radius:16px;padding:10px}.lifecycle-panel{gap:8px;margin-top:10px;display:grid}.lifecycle-panel .actions{justify-content:flex-start}.danger-action{color:#991b1b!important;background:#fff7f7!important;border-color:#fecaca!important}.lifecycle-modal .compact-list article{grid-template-columns:auto 1fr}.archive-tabs{align-items:center}.ops-actions{justify-content:flex-start;margin-top:12px}.row-actions button{border:1px solid var(--line);color:var(--dark);background:#fff;border-radius:10px;padding:8px 10px;font-weight:850}.row-actions button:disabled{color:var(--text-soft);background:#eef2f6}.template-builder{gap:12px;margin-top:12px;display:grid}.template-section{border:1px solid var(--line);background:#f8fafc;border-radius:14px;gap:10px;padding:12px;display:grid}.template-section header,.template-item{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.template-items{gap:8px;display:grid}.template-item{border-top:1px solid var(--line);padding-top:8px}.checkbox-line{align-items:center;gap:8px;grid-template-columns:none!important;display:flex!important}.checkbox-line input{width:auto;min-height:auto}.alerts-panel.compact-list article{grid-template-columns:minmax(0,1fr);align-items:start}.alerts-panel .badge{white-space:normal;line-height:1.25}.alerts-panel p{gap:6px;display:grid}.alerts-panel .row-actions{grid-column:1/-1;justify-content:flex-start}.compact-list article.read{opacity:.65}.work-detail{gap:14px}.work-summary{z-index:2;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-radius:22px;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex;position:sticky;top:86px;box-shadow:0 12px 30px #0f172a0f}.work-summary h2{margin:0 0 4px;font-size:clamp(22px,3vw,32px)}.work-summary p{color:var(--text-soft);margin:0}.work-progress{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.work-progress article{background:#f8fafc;border:1px solid #e7edf5;border-radius:14px;gap:4px;padding:10px;display:grid}.work-progress article.done{background:#ecfdf5;border-color:#9bd7bd}.work-progress small,.check-summary-card small,.media-grid small{color:var(--text-soft)}.work-detail-list{gap:10px;display:grid}.work-detail-list article,.check-summary-card{background:#fafcff;border:1px solid #e7edf5;border-radius:14px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;display:grid}.check-summary-card a{border:1px solid var(--line);color:var(--dark);background:#fff;border-radius:10px;padding:8px 10px;font-weight:850;text-decoration:none}.media-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.media-grid a{color:var(--dark);background:#f8fafc;border:1px solid #e7edf5;border-radius:14px;gap:6px;padding:10px;text-decoration:none;display:grid}.media-grid img{aspect-ratio:4/3;object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%}.tech-app{color:#172033;background:#eef2f6;min-height:100vh}.tech-top{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8fafcf0;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0}.tech-top strong,.tech-top small{display:block}.tech-top small{color:var(--text-soft);font-size:12px}.tech-main{gap:14px;width:min(760px,100%);margin:0 auto;padding:14px 14px 88px;display:grid}.tech-hero{color:#fff;background:linear-gradient(135deg,#111827,#24324a);border-radius:24px;gap:10px;padding:18px;display:grid}.tech-hero h1{margin:0;font-size:28px}.tech-hero p{color:#cbd5e1;margin:0}.tech-sections{gap:14px;display:grid}.tech-sections textarea{border:1px solid var(--line);resize:vertical;border-radius:14px;width:100%;min-height:96px;padding:12px}.photo-strip{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.photo-strip span,.photo-strip button,.component-photo{min-height:86px;color:var(--text-soft);background:#f8fafc;border:1px dashed #b8c4d6;border-radius:16px;place-items:center;font-weight:900;display:grid}.component-photo input{max-width:160px;font-size:12px}.journey-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:18px;grid-template-columns:1fr auto;gap:12px;width:100%;padding:14px;display:grid;box-shadow:0 10px 28px #0f172a0d}.journey-card strong,.journey-card span,.journey-card small,.journey-card b{display:block}.journey-card span,.journey-card small{color:var(--text-soft);font-size:12px}.journey-card p{color:#334155;margin:8px 0 0}.journey-card>div:last-child{justify-items:end;gap:6px;display:grid}.sync-box{align-content:start;gap:6px;display:grid}.sync-box p{color:#334155;margin:0;font-size:12px;font-weight:800}.technician-page textarea{border:1px solid var(--line);resize:vertical;border-radius:14px;width:100%;min-height:92px;padding:10px}.technician-page label{color:#334155;gap:7px;font-weight:850;display:grid}.state-back{color:#fff;background:#ffffff14;border:1px solid #ffffff47;border-radius:14px;min-height:46px;font-weight:900}.doc-list{gap:8px;display:grid}.doc-list article{background:#f8fafc;border:1px solid #e7edf5;border-radius:14px;align-items:center;gap:10px;padding:10px;display:flex}.doc-list article div{flex:1}.doc-list article button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font-weight:850}.doc-list strong,.doc-list span{display:block}.doc-list span{color:var(--text-soft);font-size:12px}.check-mobile{gap:14px;width:min(640px,100%);margin:0 auto;display:grid}.check-mobile header{border:1px solid var(--line);background:#fff;border-radius:20px;padding:14px}.check-mobile h2{margin:0 0 6px}.progress{background:#dbe3ed;border-radius:999px;height:10px;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--info), var(--maintenance));height:100%;display:block}.door-check{border:1px solid var(--line);background:#dbe3ed;border-radius:22px;position:relative;overflow:hidden}.door-check img{object-fit:contain;width:100%;height:auto;display:block}.door-check.placeholder{aspect-ratio:1.35;background:linear-gradient(135deg,#e2e8f0,#f8fafc)}.equipment-placeholder{color:#475569;text-align:center;align-content:center;place-items:center;gap:8px;min-height:360px;display:grid}.equipment-placeholder strong,.equipment-placeholder span{display:block}.hotspot{background:#2563eb29;border:2px solid #fffffff2;border-radius:14px;place-items:center;min-width:44px;min-height:42px;padding:5px;text-decoration:none;transition:transform .12s,background .12s,box-shadow .12s;display:grid;position:absolute;box-shadow:0 0 0 3px #0f172a1a}.hotspot:hover,.hotspot:focus-visible,.hotspot:active{background:#2563eb47;transform:scale(1.03);box-shadow:0 0 0 5px #2563eb40}.hotspot span{color:#0f172a;text-align:center;text-shadow:0 1px #ffffffbf;font-size:11px;font-weight:900;line-height:1.15}.hotspot.ok{background:#1682553d}.hotspot.warn{background:#b7790f47}.hotspot.danger{background:#dc262640}.hotspot.muted{background:#64748b38}.block-list{gap:8px;display:grid}.block-list button,.block-list a,.block-list article{border:1px solid var(--line);text-align:left;min-height:52px;color:var(--dark);background:#fff;border-radius:15px;justify-content:space-between;align-items:center;gap:10px;padding:10px;font-weight:900;text-decoration:none;display:flex}.block-list article div:first-child,.block-list a div:first-child{gap:4px;display:grid}.block-list article small,.block-list a small{color:var(--text-soft);font-weight:700}.summary-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.status-summary article{cursor:default}.sticky-back{z-index:4;background:#fff;position:sticky;top:8px}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.status-grid button,.component-select label{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px;font-weight:850}.status-grid button.active{background:var(--dark);color:#fff}.component-select{gap:8px;display:grid}.component-select input{width:auto;min-height:auto}.confirm-bar{z-index:6;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8fafcf5;border-radius:18px;gap:8px;padding:8px;display:grid;position:sticky;bottom:8px}.block-page{padding-bottom:18px}.photo-list{gap:8px;margin-top:10px;display:grid}.photo-list span{border:1px solid var(--line);background:#f8fafc;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.photo-list button{color:var(--danger);background:0 0;border:0;font-weight:900}.signature-pad{border:1px solid var(--line);touch-action:none;background:#fff;border-radius:16px;width:100%;max-width:520px;height:180px}.tech-bottom{z-index:11;padding:10px max(12px, env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#f8fafcf5;grid-template-columns:1fr 1fr;gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0}.tech-bottom button{border:1px solid var(--line);background:#fff;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:48px;font-weight:900;display:flex}.tech-bottom button.active{background:var(--dark);color:#fff}.sheet-backdrop{z-index:30;background:#0f172a5c;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{background:#fff;border-radius:24px 24px 0 0;gap:8px;width:100%;max-height:80vh;padding:14px;display:grid;overflow:auto}.bottom-sheet button{border:1px solid var(--line);text-align:left;background:#f8fafc;border-radius:14px;min-height:48px;padding:10px 12px;font-weight:850}.sheet-close{color:#fff;text-align:center!important;background:var(--dark)!important}@media (width<=1180px){.two-one,.half,.three,.filters,.dashboard-grid{grid-template-columns:1fr}.topbar{flex-wrap:wrap}}@media (width<=760px){.shell{display:block}.sidebar{width:min(292px,100vw - 24px);height:100dvh;position:fixed;left:0;transform:translate(-100%)}.sidebar:not(.collapsed){transform:translate(0)}.sidebar span{opacity:1}.mobile-menu{display:inline-flex}.mobile-menu,.icon-btn{flex:0 0 42px}.topbar{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;flex-wrap:wrap;align-items:center;gap:8px;min-height:auto;transform:none}.connectivity-banner,.runtime-error{flex-direction:column;align-items:stretch;margin:8px 12px 0}.version-actions{grid-template-columns:1fr;display:grid}.version-actions button{width:100%}.top-title{flex:1;min-width:0}.topbar h1{font-size:16px}.tech-top{position:static}.topbar .search-wrap{flex:1 0 100%;order:5;min-width:0}.search{width:100%}.search-results{max-height:calc(100dvh - 128px);position:fixed;top:104px;left:12px;right:12px;overflow:auto}.user{display:none}.mobile-session-actions{display:flex}main{padding:14px}.stats-grid{grid-template-columns:1fr}.rate-status-filter{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rate-status-filter button{padding-left:6px;padding-right:6px}.dashboard-kpis,.dashboard-list article{grid-template-columns:1fr}.page-head,.detail-hero{flex-direction:column;align-items:flex-start}.work-row{grid-template-columns:1fr}.work-row>div:last-child{justify-content:flex-start}.compact-list article,.alerts-panel.compact-list article,.info-grid,.form-grid{grid-template-columns:1fr}.compact-list.multi-equipment-list article{grid-template-columns:1fr;align-items:stretch}.multi-equipment-list article strong,.multi-equipment-list article p,.multi-equipment-list article>.badge{grid-area:auto;min-width:0}.multi-equipment-list article:has(label)>label{grid-area:auto;min-width:0}.multi-equipment-list article:has(label)>button{grid-area:auto;min-width:0}.multi-equipment-list article:not(:has(label))>button{grid-area:auto;min-width:0}.finalize-grid{grid-template-columns:1fr}.work-time-list article{grid-template-columns:minmax(0,1fr);align-items:start}.sat-filters{grid-template-columns:1fr}.assignment-row{flex-direction:column;align-items:stretch}.assignment-row .row-actions,.work-actions{grid-template-columns:1fr;display:grid}.sat-work-card header,.sat-work-card footer{flex-direction:column;align-items:flex-start}.sat-work-card footer .primary{width:100%}.record-card header{flex-wrap:wrap;align-items:flex-start}.record-card footer{flex-direction:column;align-items:stretch}.record-card footer .row-actions{justify-content:stretch;width:100%}.record-card footer .primary{width:100%}.record-open{white-space:normal}.actions button,.actions a,.primary{width:100%}.mini-modal{align-items:end;padding:10px}.mini-modal>div,.mini-modal>form{border-radius:18px 18px 0 0;max-height:94vh}.invoice-draft-modal>div{width:100%}.invoice-context-grid{grid-template-columns:1fr}.invoice-totals{flex-direction:column;gap:4px}.modal-footer{flex-direction:column-reverse}.check-mobile{gap:10px}.check-mobile header{padding:10px 12px}.check-mobile h2{font-size:18px}.hotspot span{font-size:10px}.row-actions{justify-content:stretch}.row-actions button{flex:120px}.table-card{max-width:100%;overflow-x:auto}.quote-detail-page{max-width:100%}.quote-lines-table table,.quote-lines-table thead,.quote-lines-table tbody,.quote-lines-table tr,.quote-lines-table th,.quote-lines-table td{width:100%;min-width:0;display:block}.quote-lines-table thead{display:none}.quote-lines-table tr{border-bottom:1px solid #e8eef6;padding:10px}.quote-lines-table td{border-bottom:0;padding:6px 4px}.quote-lines-table td:first-child:before{content:"Tipo: ";font-weight:900}.quote-lines-table td:nth-child(2):before{content:"Descripción: ";font-weight:900}.quote-lines-table td:nth-child(3):before{content:"Cantidad: ";font-weight:900}.quote-lines-table td:nth-child(4):before{content:"Coste ud.: ";font-weight:900}.quote-lines-table td:nth-child(5):before{content:"Venta ud.: ";font-weight:900}.quote-lines-table td:nth-child(6):before{content:"IVA: ";font-weight:900}.quote-lines-table td:nth-child(7):before{content:"Total coste: ";font-weight:900}.quote-lines-table td:nth-child(8):before{content:"Total venta: ";font-weight:900}.template-section header,.template-item{display:grid}.template-item span{overflow-wrap:break-word;word-break:normal}.badge{white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.2}.work-time-list article,.stock-movements-list article{grid-template-columns:minmax(0,1fr);align-items:start}.work-time-list .badge,.stock-movement-qty,.stock-movement-qty .badge{text-align:left;justify-self:start;justify-items:start}.demo-grid,.photo-strip{grid-template-columns:1fr}.login-page{grid-template-columns:1fr;align-items:center;padding:14px}.login-visual{display:none}.login-card{width:100%}.journey-card{grid-template-columns:1fr}.journey-card>div:last-child{justify-items:start}.work-summary{flex-direction:column;align-items:flex-start;position:static}.work-detail-list article,.check-summary-card{grid-template-columns:1fr;align-items:start}.media-grid{grid-template-columns:1fr}.journey-card .primary,.sync-box,.sync-box .primary{width:100%}.status-grid{grid-template-columns:1fr}.confirm-bar{bottom:calc(8px + env(safe-area-inset-bottom))}.equipment-placeholder{min-height:280px}}@media print{@page{size:A4;margin:0}body{background:#fff}.sidebar,.topbar,.connectivity-banner,.runtime-error,.screen-only,.link-button,.modal-footer{display:none!important}main,.page,.quote-detail-page{max-width:none!important;padding:0!important;display:block!important}.card,.table-card{box-shadow:none;break-inside:avoid}.print-only,.quote-report{display:grid!important}.quote-report{box-shadow:none;border:0;border-radius:0;padding:0}.quote-report-table{overflow:visible}.quote-report-table table{min-width:0}.quote-lines-table{overflow:visible}.quote-lines-table table{min-width:0}.invoice-view-modal{display:none!important}.invoice-print-document{color:#172033;background:#fff;padding:12mm;position:absolute;inset:0;display:block!important}.invoice-print-document header,.invoice-print-document table,.invoice-print-document .invoice-print-parties,.invoice-print-document .invoice-print-totals{break-inside:avoid}}
