
:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#172033;background:#eef2f7;--nav:#15233c;--accent:#2e6bc6;--card:#fff;--muted:#68758b}*{box-sizing:border-box}body{margin:0;background:#eef2f7}button,input,select,textarea{font:inherit}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#12213b,#315f9f)}.login-card{width:min(430px,100%);background:white;border-radius:18px;padding:32px;box-shadow:0 24px 60px #07132666}.brand{font-size:28px;font-weight:800;color:#17345f}.subtitle{color:var(--muted);margin:6px 0 24px}.field{display:grid;gap:7px;margin:14px 0}.field input,.field select,.field textarea{border:1px solid #ccd5e3;border-radius:9px;padding:11px 12px;background:white}.primary{border:0;border-radius:9px;padding:11px 16px;background:var(--accent);color:white;font-weight:700;cursor:pointer}.secondary{border:1px solid #cbd4e2;border-radius:9px;padding:9px 13px;background:white;cursor:pointer}.quick-insert-card{width:min(820px,calc(100vw - 28px));max-height:92vh;overflow:auto}.quick-insert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.quick-insert-grid .wide{grid-column:1/-1}.quick-insert-note{background:#f5f8fc;border:1px solid #dce5ef;border-radius:10px;padding:11px 13px;color:#536176;margin-bottom:12px}@media(max-width:720px){.quick-insert-grid{grid-template-columns:1fr}.quick-insert-grid .wide{grid-column:auto}}.error{color:#b42318;margin-top:12px;min-height:22px}.app{min-height:100vh;display:grid;grid-template-columns:255px 1fr}.sidebar{background:var(--nav);color:white;padding:22px 14px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar .brand{color:white;padding:0 8px;font-size:23px}.mobile-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.mobile-menu-close,.mobile-menu-toggle,.mobile-recognition-quick{display:none}.mobile-nav-backdrop{display:none}.nav{margin-top:24px;display:grid;gap:5px}.nav button{border:0;background:transparent;color:#d9e3f2;text-align:left;padding:11px;border-radius:9px;cursor:pointer;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav button:hover,.nav button.active{background:#ffffff18;color:white}.nav .recognition-nav-button{background:#2e6bc633;border:1px solid #77a9ff;color:#fff;font-weight:800}.main{min-width:0}.topbar{height:70px;background:white;border-bottom:1px solid #dfe5ee;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:4}.top-user{display:flex;align-items:center;gap:9px;min-width:0}.top-actions{display:flex;align-items:center;gap:9px}.password-help{font-size:13px;line-height:1.45;color:var(--muted);background:#f5f7fa;border-radius:9px;padding:10px 12px}.tech-search{background:linear-gradient(135deg,#17345f,#2e6bc6);color:white;border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 8px 24px #17345f28}.tech-search h2{margin:0 0 6px;font-size:24px}.tech-search p{margin:0 0 15px;color:#e8f1ff}.tech-search-row{display:flex;gap:10px;flex-wrap:wrap}.tech-search-row input{flex:1;min-width:260px;border:0;border-radius:10px;padding:12px 14px}.tech-search-row .primary{background:white;color:#174ea6}.search-results{margin-top:16px;background:#fff;color:#172033;border-radius:12px;padding:12px}.search-result-line{display:grid;grid-template-columns:140px 160px 1fr 120px;gap:10px;padding:10px;border-bottom:1px solid #edf0f4}.search-result-line:last-child{border-bottom:0}.catalog-note{background:#fff8e6;border:1px solid #f3d68a;border-radius:10px;padding:11px 13px;margin-bottom:12px;color:#6b4a00}.error-search{border-color:#c9daf8;background:linear-gradient(135deg,#f6f9ff,#edf4ff)}.error-result-line{display:grid;grid-template-columns:90px 120px 1fr 1.5fr;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid #e8edf5;cursor:pointer}.error-result-line:hover{background:#eef5ff}.error-code-pill,.severity-pill,.reset-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-weight:800;font-size:12px}.error-code-pill{background:#0b5ed7;color:#fff;font-size:15px}.severity-pill{background:#fff0cf;color:#704c00}.reset-pill{background:#e6f4ea;color:#176b36}.detail-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.detail-brand{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:#66758a;font-weight:800}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.error-detail-card{width:min(820px,100%);max-height:92vh;overflow:auto}.detail-grid{display:grid;grid-template-columns:170px 1fr;gap:0;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.detail-grid dt,.detail-grid dd{margin:0;padding:12px 14px;border-bottom:1px solid #edf1f5}.detail-grid dt{font-weight:800;background:#f7f9fc;color:#44536a}.detail-grid dd{white-space:pre-wrap;line-height:1.45}.safety-text{color:#8a2c17;font-weight:700}.error-row{cursor:pointer}.error-row:hover td{background:#eef5ff!important}.document-search{border-color:#d7c6ef;background:linear-gradient(135deg,#fbf8ff,#f3edff)}.error-search,.document-search{color:#172033}.error-search h2,.document-search h2{color:#10233f}.error-search p,.document-search p{color:#41536f}.error-search input,.document-search input{color:#172033;background:#fff}.error-search input::placeholder,.document-search input::placeholder{color:#66758a;opacity:1}.document-result-line{display:grid;grid-template-columns:115px 150px 1fr 170px;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid #ece7f4;cursor:pointer}.document-result-line:hover{background:#f7f2ff}.doc-row{cursor:pointer}.doc-row:hover td{background:#f7f2ff!important}.doc-type-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#ede5ff;color:#5d2aa5;font-weight:800;font-size:12px}.official-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e6f4ea;color:#176b36;font-weight:800;font-size:12px}.document-detail-card{width:min(820px,100%);max-height:92vh;overflow:auto}.doc-link{display:inline-flex;align-items:center;gap:7px;border-radius:9px;padding:10px 14px;background:#2e6bc6;color:#fff;text-decoration:none;font-weight:800}.doc-link:hover{background:#2459a5}.parts-search{border-color:#cbe5d3;background:linear-gradient(135deg,#f4fff7,#eaf8ef);color:#172033}.parts-search h2{color:#123f27}.parts-search p{color:#3d6450}.parts-search input{color:#172033;background:#fff}.parts-search input::placeholder{color:#66758a;opacity:1}.part-result-line{display:grid;grid-template-columns:110px 165px 150px 1fr;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid #e2efe6;cursor:pointer}.part-result-line:hover{background:#effaf2}.part-row{cursor:pointer}.part-row:hover td{background:#effaf2!important}.part-type-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e6f4ea;color:#176b36;font-weight:800;font-size:12px}.part-code-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e8f1ff;color:#174ea6;font-weight:800;font-size:12px}.part-detail-card{width:min(860px,100%);max-height:92vh;overflow:auto}.diagnosis-search{background:linear-gradient(135deg,#123f49,#1f7a78);color:#fff}.diagnosis-search h2{color:#fff}.diagnosis-search p{color:#e6fffb}.diagnosis-shell{display:grid;gap:16px}.diagnosis-intro{background:#fff;border:1px solid #dce5ee;border-radius:14px;padding:18px}.diagnosis-warning{background:#fff7e6;border:1px solid #efc66e;border-radius:12px;padding:13px 15px;color:#6b4700;line-height:1.45}.diagnosis-stop{background:#fff0f0;border:1px solid #e69a9a;border-radius:12px;padding:16px;color:#8b1d1d;font-weight:750;line-height:1.5}.diagnosis-search-box{display:flex;gap:10px;flex-wrap:wrap}.diagnosis-search-box input{flex:1;min-width:260px;border:1px solid #cdd6e4;border-radius:9px;padding:11px 13px}.diagnosis-results{background:#fff;border:1px solid #dfe7ef;border-radius:12px;overflow:hidden}.diagnosis-result{display:grid;grid-template-columns:100px 130px 1fr 1.4fr;gap:12px;padding:12px 14px;border-bottom:1px solid #edf1f5;cursor:pointer;align-items:center}.diagnosis-result:hover{background:#eef8f7}.diagnosis-result:last-child{border-bottom:0}.diagnosis-card{background:#fff;border:1px solid #dde5ee;border-radius:14px;padding:18px}.diagnosis-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.diagnosis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.diagnosis-fact{background:#f6f8fb;border-radius:10px;padding:12px}.diagnosis-fact strong{display:block;color:#44536a;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.diagnosis-gate{display:grid;gap:12px;margin-top:16px}.diagnosis-gate label{display:flex;gap:9px;align-items:flex-start;background:#f7f9fc;border:1px solid #e1e7ef;border-radius:10px;padding:12px}.diagnosis-checks{display:grid;gap:12px;margin-top:16px}.diagnosis-check{display:grid;grid-template-columns:1fr 190px;gap:12px;align-items:center;background:#f7f9fc;border:1px solid #e1e7ef;border-radius:10px;padding:12px}.diagnosis-check select{border:1px solid #cbd5e1;border-radius:8px;padding:9px;background:#fff}.diagnosis-summary{white-space:pre-wrap;background:#f5f9ff;border:1px solid #cbdcf5;border-radius:12px;padding:15px;line-height:1.5}.diagnosis-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.diagnosis-related-list{display:grid;gap:8px}.diagnosis-related-item{border:1px solid #e1e7ef;border-radius:9px;padding:10px;background:#fff;cursor:pointer}.diagnosis-related-item:hover{background:#f7fafc}.diagnosis-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.diagnosis-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#dff7f4;color:#155f5b;font-weight:800;font-size:12px}@media(max-width:820px){.diagnosis-result,.diagnosis-check{grid-template-columns:1fr}}@media(max-width:820px){.part-result-line{grid-template-columns:1fr}}@media(max-width:820px){.document-result-line{grid-template-columns:1fr}}@media(max-width:820px){.error-result-line{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.detail-grid dt{border-bottom:0;padding-bottom:3px}.detail-grid dd{padding-top:3px}}.content{padding:24px}.page-title{font-size:27px;margin:0 0 18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.card{background:var(--card);border-radius:13px;padding:18px;box-shadow:0 2px 9px #23324f12;border:1px solid #e4e9f1}.metric{font-size:30px;font-weight:800;margin-top:6px}.muted{color:var(--muted)}.status{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:6px 10px;background:#e9f7ef;color:#177245;font-weight:700}.status.bad{background:#fdecec;color:#a12121}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.section-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.build-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e8f1ff;color:#174ea6;font-size:12px;font-weight:800}.toolbar input{min-width:260px;flex:1;border:1px solid #cdd6e4;border-radius:9px;padding:10px}.table-wrap{background:white;border:1px solid #e1e7ef;border-radius:13px;overflow:auto;max-height:calc(100vh - 250px);scrollbar-gutter:stable both-edges;overscroll-behavior:contain}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{position:sticky;top:0;z-index:2;background:#f5f7fa;text-align:left;font-size:13px;color:#526078}.data-table th,.data-table td{padding:11px 13px;border-bottom:1px solid #edf0f4;white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.data-table tr:hover td{background:#f8fbff}.modal{position:fixed;inset:0;background:#0c172c99;display:flex;align-items:flex-start;justify-content:center;padding:12px;z-index:10;overflow-y:auto;overscroll-behavior:contain}.modal-card{background:white;width:min(560px,100%);border-radius:15px;padding:20px;max-height:calc(100vh - 24px);overflow-y:auto;box-shadow:0 22px 60px #08132655}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;position:sticky;bottom:-20px;background:white;padding:14px 0 4px;border-top:1px solid #e2e8f0;z-index:3}#subscriptionModal .modal-card{width:min(620px,100%)}#subscriptionModal h2{margin-top:0;padding-right:70px}@media(max-width:820px){.search-result-line{grid-template-columns:1fr}.app{display:block}.sidebar{position:fixed;inset:0 auto 0 0;width:min(88vw,340px);height:100dvh;z-index:40;transform:translateX(-105%);transition:transform .2s ease;box-shadow:16px 0 36px #07132655;padding-top:16px}.app.mobile-nav-open .sidebar{transform:translateX(0)}.mobile-menu-close{display:inline-flex;border:1px solid #ffffff33;background:#ffffff12;color:#fff;border-radius:9px;min-width:44px;min-height:44px;align-items:center;justify-content:center;font-weight:800}.mobile-nav-backdrop{display:block;position:fixed;inset:0;background:#0713268f;border:0;z-index:35;opacity:0;pointer-events:none;transition:opacity .2s}.app.mobile-nav-open .mobile-nav-backdrop{opacity:1;pointer-events:auto}.nav{grid-template-columns:1fr;margin-top:12px}.nav button{font-size:16px;padding:13px 14px;min-height:48px}.topbar{position:sticky;top:0;height:auto;min-height:64px;padding:8px 10px;gap:8px;z-index:20}.top-user{gap:6px;flex-wrap:wrap}.mobile-menu-toggle,.mobile-recognition-quick{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;min-height:44px;padding:8px 11px;font-weight:800;touch-action:manipulation}.mobile-menu-toggle{border:1px solid #cbd4e2;background:#fff;color:#17345f}.mobile-recognition-quick{border:0;background:#2e6bc6;color:#fff}.top-actions{gap:5px}.top-actions .company-selector{max-width:125px;min-width:0}.top-actions #changePassword{display:none}.top-actions button,.top-actions select{min-height:42px;padding:7px 9px}.content{padding:14px}.page-title{font-size:23px}.toolbar input{min-width:100%}.recognition-file,.recognition-actions button{min-height:48px}.recognition-text{font-size:16px}.recognition-panel{padding:15px}.recognition-intro{padding:16px}}.import-shell{display:grid;gap:16px}.import-panel{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:18px}.import-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.import-drop{border:2px dashed #aebed2;border-radius:12px;padding:18px;background:#f8fbff}.import-drop input{width:100%}.import-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.import-kpi{background:#f5f8fc;border-radius:11px;padding:13px}.import-kpi strong{display:block;font-size:25px;color:#17345f}.import-preview{overflow:auto;border:1px solid #e1e7ef;border-radius:12px}.import-preview table{width:100%;border-collapse:collapse}.import-preview th,.import-preview td{padding:9px 11px;border-bottom:1px solid #edf1f5;text-align:left}.import-status{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.import-status.valid{background:#e6f4ea;color:#176b36}.import-status.error{background:#fde7e7;color:#9b1c1c}.import-status.duplicate_database,.import-status.duplicate_file{background:#fff0cf;color:#704c00}.import-actions{display:flex;gap:10px;flex-wrap:wrap}.import-note{background:#fff8e6;border:1px solid #efd38a;border-radius:10px;padding:12px;color:#694900}.import-success{background:#e8f6ec;border:1px solid #9ed0aa;border-radius:12px;padding:15px;color:#176b36;font-weight:700}
.tenant-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.tenant-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:18px}
.tenant-card{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:16px;box-shadow:0 5px 16px #17345f12}
.tenant-card h3{margin:0 0 6px;color:#17345f}.tenant-meta{display:grid;grid-template-columns:1fr auto;gap:7px 12px;font-size:14px}
.tenant-meta span:nth-child(odd){color:#68758b}.tenant-meta strong{text-align:right}
.tenant-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}
.tenant-pill.active{background:#e7f6ec;color:#176b36}.tenant-pill.trial{background:#e8f1ff;color:#174ea6}
.tenant-pill.suspended,.tenant-pill.expired{background:#fff0f0;color:#9b1c1c}
.company-selector{min-width:220px;max-width:340px;border:1px solid #cbd4e2;border-radius:9px;padding:8px 10px;background:#fff;color:#172033}
.saas-note{background:#edf6ff;border:1px solid #bed8f4;border-radius:11px;padding:12px 14px;color:#17345f;margin-bottom:14px}
.tenant-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.tenant-form-grid .wide{grid-column:1/-1}
.subscription-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 16px}
.subscription-metric{background:#fff;border:1px solid #dce4ee;border-radius:13px;padding:14px;box-shadow:0 4px 14px #17345f0d}
.subscription-metric .value{font-size:27px;font-weight:800;color:#17345f;margin-top:4px}
.subscription-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}
.subscription-card{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:16px;box-shadow:0 5px 16px #17345f12}
.subscription-card.expiring{border-color:#e7b34e;background:#fffaf0}
.subscription-card.overdue,.subscription-card.suspended,.subscription-card.expired{border-color:#e4a0a0;background:#fff7f7}
.subscription-price{font-size:24px;font-weight:800;color:#17345f}
.subscription-card .actions{justify-content:flex-start;margin-top:12px}
.subscription-note{background:#f4f8ff;border:1px solid #c9dcf5;border-radius:11px;padding:12px 14px;color:#17345f;margin-bottom:14px}
.subscription-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.subscription-form-grid .wide{grid-column:1/-1}
.checkbox-field{display:flex;align-items:center;gap:9px;margin:14px 0}.checkbox-field input{width:18px;height:18px}
.price-help{font-size:13px;color:#68758b;margin-top:-7px}
.password-temporary{background:#fff8e6;border:1px solid #f0d184;border-radius:9px;padding:10px 12px;color:#694800;font-size:13px}
@media(max-width:760px){.tenant-form-grid{grid-template-columns:1fr}.tenant-form-grid .wide{grid-column:auto}.company-selector{min-width:150px;width:100%}}

.security-center{display:grid;gap:16px}.security-banner{background:linear-gradient(135deg,#142a46,#244e78);color:#fff;border-radius:15px;padding:18px 20px}.security-banner h2{margin:0 0 6px}.security-banner p{margin:0;color:#e8f2ff}.security-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px}.security-kpi{background:#fff;border:1px solid #dce4ee;border-radius:13px;padding:14px}.security-kpi .value{font-size:27px;font-weight:800;color:#17345f;margin-top:5px}.security-panel{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:17px}.security-panel h3{margin-top:0;color:#17345f}.security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.security-fact{background:#f6f8fb;border-radius:10px;padding:12px;line-height:1.45}.security-fact strong{display:block;color:#536179;font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.security-ok{color:#176b36;font-weight:800}.security-bad{color:#a12121;font-weight:800}.security-warning{color:#7a5200;font-weight:800}.security-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.security-message{min-height:22px;color:#176b36;font-weight:700}.security-events{width:100%;border-collapse:collapse}.security-events th,.security-events td{padding:10px 11px;border-bottom:1px solid #edf1f5;text-align:left}.security-events th{background:#f5f7fa;color:#526078;font-size:13px}.security-path{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.security-note{background:#fff8e6;border:1px solid #efd38a;border-radius:10px;padding:12px;color:#694900}

.recognition-search{background:linear-gradient(135deg,#4a246f,#7c3fb0);color:#fff}.recognition-search h2{color:#fff}.recognition-search p{color:#f3eaff}
.recognition-shell{display:grid;gap:16px}.recognition-intro{background:linear-gradient(135deg,#3d1f63,#7840a8);color:#fff;border-radius:16px;padding:20px}.recognition-intro h2{margin:0 0 7px}.recognition-intro p{margin:0;color:#f4ebff;line-height:1.5}
.recognition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:15px}.recognition-panel{background:#fff;border:1px solid #ded8e8;border-radius:14px;padding:17px;box-shadow:0 4px 14px #30164e0d}.recognition-panel h3{margin-top:0;color:#3d1f63}.recognition-panel p{line-height:1.45}
.recognition-file{display:block;border:2px dashed #b8a4ca;border-radius:12px;padding:16px;background:#fbf8ff;cursor:pointer}.recognition-file input{display:block;width:100%;margin-top:10px}.recognition-preview{width:100%;max-height:360px;object-fit:contain;background:#172033;border-radius:12px;margin-top:12px}.recognition-video{width:100%;max-height:430px;background:#101827;border-radius:12px;margin-top:12px}
.recognition-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.recognition-progress{height:10px;background:#ece6f3;border-radius:999px;overflow:hidden;margin:12px 0 5px}.recognition-progress>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#6b35a0,#2e6bc6);transition:width .2s}.recognition-message{min-height:24px;color:#4e3661;font-weight:700;margin-top:7px}
.recognition-text{width:100%;min-height:150px;border:1px solid #cfc4dc;border-radius:10px;padding:12px;line-height:1.45;resize:vertical}.recognition-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:12px}.recognition-field{background:#f7f3fb;border-radius:10px;padding:11px}.recognition-field strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6d5c7c;margin-bottom:5px}
.recognition-results{display:grid;gap:12px}.recognition-candidate{background:#fff;border:1px solid #dcd3e6;border-radius:14px;padding:15px;box-shadow:0 4px 14px #30164e0d}.recognition-candidate.best{border:2px solid #6d39a1;background:#fcf9ff}.recognition-candidate-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.recognition-candidate h3{margin:0;color:#28354b}.recognition-confidence{display:inline-flex;border-radius:999px;padding:6px 10px;background:#e9def5;color:#542482;font-weight:800}.recognition-reasons{color:#68758b;font-size:13px;margin-top:5px}.recognition-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:12px 0}.recognition-meta div{background:#f6f8fb;border-radius:9px;padding:9px}.recognition-meta strong{display:block;color:#536179;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.recognition-note{background:#fff8e6;border:1px solid #efd38a;border-radius:10px;padding:12px;color:#694900;line-height:1.45}.recognition-privacy{background:#eaf6ef;border:1px solid #b6dac2;border-radius:10px;padding:12px;color:#176b36;line-height:1.45}.recognition-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;word-break:break-all}
@media(max-width:820px){.recognition-grid{grid-template-columns:1fr}.recognition-actions button{flex:1}.recognition-preview,.recognition-video{max-height:300px}}


/* Accesso professionale 148.0 */
.login{padding:0;background:#0c1c35}.professional-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(360px,.95fr);width:100%}.professional-login-hero{padding:clamp(36px,6vw,88px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,#102849,#1c4f86 58%,#16736f);color:#fff;position:relative;overflow:hidden}.professional-login-hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-170px;bottom:-180px;background:#ffffff12}.professional-mark{display:inline-flex;width:64px;height:64px;border-radius:18px;background:#fff;color:#17345f;align-items:center;justify-content:center;font-size:32px;font-weight:900;box-shadow:0 15px 35px #07132645}.professional-login-hero h1{font-size:clamp(35px,5vw,62px);line-height:1;margin:26px 0 12px}.professional-login-hero p{font-size:18px;line-height:1.6;max-width:660px;color:#e5f1ff}.professional-login-points{display:grid;gap:12px;margin-top:24px}.professional-login-point{display:flex;gap:10px;align-items:center;color:#eaf6ff}.professional-login-side{display:flex;align-items:center;justify-content:center;padding:28px;background:#f4f7fb}.login-card{width:min(470px,100%);padding:34px;border:1px solid #dce5f0}.login-card .brand{font-size:31px}.login-card-header{margin-bottom:22px}.login-security-badge{display:inline-flex;gap:7px;align-items:center;background:#e9f7ef;color:#176b36;border:1px solid #b9dfc8;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:800;margin-bottom:15px}.password-wrap{display:grid;grid-template-columns:1fr auto;border:1px solid #ccd5e3;border-radius:9px;overflow:hidden;background:#fff}.password-wrap input{border:0!important;border-radius:0!important;min-width:0}.password-toggle{border:0;border-left:1px solid #e2e8f0;background:#f8fafc;padding:0 13px;cursor:pointer;font-weight:700;color:#31527e}.login-submit{width:100%;min-height:48px;margin-top:8px}.login-links{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:15px;font-size:14px}.link-button{border:0;background:transparent;color:#215fac;text-decoration:underline;cursor:pointer;padding:4px 0}.login-panel{display:none}.login-panel.active{display:block}.recovery-note{background:#edf4ff;border:1px solid #c9dafa;border-radius:10px;padding:12px;color:#274a79;line-height:1.45}.professional-version{text-align:center;color:#7b8798;font-size:12px;margin-top:18px}.mandatory-password-notice{background:#fff4d8;border:1px solid #edc566;border-radius:10px;padding:12px;color:#6f4b00;margin-bottom:13px;font-weight:700}.app.password-change-required .sidebar,.app.password-change-required .topbar,.app.password-change-required .content{filter:blur(2px);pointer-events:none;user-select:none}.professional-banner{background:linear-gradient(135deg,#17345f,#245b96);color:#fff;border-radius:14px;padding:18px 20px;margin-bottom:17px;display:flex;align-items:center;justify-content:space-between;gap:16px}.professional-banner h2{margin:0 0 5px;color:#fff}.professional-banner p{margin:0;color:#e4efff}.professional-banner .professional-role{background:#ffffff1c;border:1px solid #ffffff35;border-radius:999px;padding:8px 12px;font-weight:800;white-space:nowrap}.access-warning{border-radius:10px;padding:12px 14px;margin:0 0 16px;background:#fff4d8;border:1px solid #edc566;color:#704b00}.access-blocked{max-width:720px;margin:60px auto;background:#fff;border:1px solid #edc2c0;border-radius:18px;padding:35px;text-align:center;box-shadow:0 18px 45px #07132618}.access-blocked .symbol{font-size:52px}.professional-summary{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-bottom:16px}.professional-metric{background:#fff;border:1px solid #dce4ef;border-radius:12px;padding:14px}.professional-metric .value{font-size:25px;font-weight:900;color:#17345f;margin-top:6px}.professional-toolbar{display:flex;gap:9px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fff;border:1px solid #dce4ef;border-radius:12px;padding:12px;margin-bottom:14px}.professional-users{display:grid;gap:10px}.professional-user-card{background:#fff;border:1px solid #dce4ef;border-radius:13px;padding:16px;display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(120px,1fr)) auto;gap:12px;align-items:center}.professional-user-card.inactive{opacity:.64}.professional-user-name{font-size:17px;font-weight:900;color:#17345f}.professional-user-meta{font-size:13px;color:#68758b;margin-top:4px}.status-pill{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.status-pill.ok{background:#e7f6ed;color:#176b36}.status-pill.warn{background:#fff3d6;color:#7a4e00}.status-pill.off{background:#f2f3f5;color:#5e6878}.professional-user-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.professional-user-actions button{padding:8px 10px}.reset-request-list{display:grid;gap:8px;margin-top:12px}.reset-request{background:#fff;border:1px solid #e0e6ef;border-radius:10px;padding:11px;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:center}.mail-status{font-size:13px;font-weight:800}.mail-status.ok{color:#176b36}.mail-status.warn{color:#9a6100}.professional-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.professional-form-grid .wide{grid-column:1/-1}.temporary-password-box{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:18px;font-weight:900;background:#f4f7fb;border:1px dashed #7892b7;border-radius:10px;padding:12px;word-break:break-all}.reset-success{background:#e8f7ee;border:1px solid #b9dfc8;color:#176b36;border-radius:10px;padding:12px;margin-top:12px}
@media(max-width:1050px){.professional-summary{grid-template-columns:repeat(3,1fr)}.professional-user-card{grid-template-columns:1.5fr 1fr 1fr}.professional-user-card>div:nth-child(4),.professional-user-card>div:nth-child(5){display:none}}
@media(max-width:820px){.professional-login-shell{grid-template-columns:1fr}.professional-login-hero{display:none}.professional-login-side{min-height:100vh;padding:16px}.login-card{padding:24px}.login-links{align-items:flex-start;flex-direction:column}.professional-banner{align-items:flex-start;flex-direction:column}.professional-summary{grid-template-columns:repeat(2,1fr)}.professional-user-card{grid-template-columns:1fr}.professional-user-card>div{display:block!important}.professional-user-actions{justify-content:flex-start}.reset-request{grid-template-columns:1fr}.professional-form-grid{grid-template-columns:1fr}.professional-form-grid .wide{grid-column:auto}}


/* Schede clienti e interventi 150.1 */
.record-row{cursor:pointer}.record-row:hover td{background:#edf5ff!important}.record-open-button{white-space:nowrap;font-weight:800;color:#174ea6;border-color:#a9c3ea;background:#f5f9ff}.record-open-button:hover{background:#e6f0ff}.record-detail-card{width:min(920px,100%);max-height:92vh;overflow:auto}.record-detail-hero{background:linear-gradient(135deg,#17345f,#2e6bc6);color:#fff;border-radius:14px;padding:17px 18px;margin:12px 0 16px}.record-detail-hero h3{margin:0 0 5px;color:#fff}.record-detail-hero p{margin:0;color:#e7f0ff}.record-detail-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.record-badge{display:inline-flex;border-radius:999px;padding:6px 10px;background:#ffffff20;border:1px solid #ffffff35;color:#fff;font-size:12px;font-weight:800}.record-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(230px,1fr));gap:11px;margin:14px 0}.record-field{border:1px solid #dfe6ef;background:#f8fafc;border-radius:11px;padding:11px 12px;min-width:0}.record-field.wide{grid-column:1/-1}.record-field strong{display:block;color:#536179;font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.record-field .record-value{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.record-field a{color:#174ea6;font-weight:750}.record-related{margin-top:18px}.record-related h3{margin:0 0 10px;color:#17345f}.record-related-list{display:grid;gap:9px}.record-related-item{border:1px solid #dfe6ef;border-radius:11px;padding:11px 12px;background:#fff}.record-related-title{font-weight:850;color:#263850}.record-related-meta{color:#68758b;font-size:13px;margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere}.record-empty{border:1px dashed #cbd5e1;border-radius:10px;padding:12px;color:#68758b;background:#f8fafc}.record-loading{padding:24px;text-align:center;color:#526078}.record-action-head{width:92px}
@media(max-width:820px){.record-detail-grid{grid-template-columns:1fr}.record-field.wide{grid-column:auto}.record-detail-card{padding:16px}.data-table .record-open-button{min-height:40px}}


/* Storico interventi, ricambi, contratti e pagamenti 151.0 */
.intervention-modal-card{width:min(1180px,100%);max-height:94vh;overflow:auto;padding:0}.intervention-modal-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #e0e7f0;padding:18px 22px;display:flex;justify-content:space-between;gap:16px;align-items:center}.intervention-form-body{padding:18px 22px 24px}.form-section{border:1px solid #dce4ef;border-radius:14px;padding:16px;margin-bottom:15px;background:#fff}.form-section h3{margin:0 0 12px;color:#17345f}.form-section-note{color:#68758b;font-size:13px;margin:-6px 0 12px}.intervention-form-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:0 13px}.intervention-form-grid .span-2{grid-column:span 2}.intervention-form-grid .wide{grid-column:1/-1}.intervention-form-grid textarea{min-height:88px}.parts-editor{display:grid;gap:10px}.part-editor-row{display:grid;grid-template-columns:130px minmax(180px,1fr) 82px 100px 82px 82px 105px 40px;gap:8px;align-items:end;border:1px solid #e0e6ef;border-radius:11px;padding:10px;background:#f9fbfd}.part-editor-row label{display:grid;gap:5px;font-size:12px;color:#526078}.part-editor-row input{min-width:0;width:100%;border:1px solid #ccd5e3;border-radius:8px;padding:9px}.part-editor-notes{grid-column:1/-2}.part-warranty{display:flex!important;align-items:center;gap:7px!important;padding:8px 0}.part-remove{border:0;background:#fde8e8;color:#a22525;border-radius:8px;height:38px;cursor:pointer;font-weight:900}.totals-panel{margin-left:auto;width:min(440px,100%);display:grid;grid-template-columns:1fr auto;gap:7px 18px;background:#f4f7fb;border-radius:12px;padding:14px}.totals-panel strong{font-size:18px;color:#17345f}.totals-balance{border-top:1px solid #ccd6e3;padding-top:8px;margin-top:3px}.payment-note{background:#fff7df;border:1px solid #ecd18b;border-radius:10px;padding:11px;color:#684b05;font-size:13px}.record-detail-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0 16px}.history-list{display:grid;gap:10px}.history-item{border:1px solid #dce4ef;border-radius:12px;padding:13px;background:#fff;display:grid;grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(110px,1fr)) auto;gap:10px;align-items:center}.history-title{font-weight:850;color:#17345f}.history-meta{font-size:13px;color:#68758b}.history-money{font-weight:850;text-align:right}.history-item button{white-space:nowrap}.payment-summary{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.payment-card{border:1px solid #dce4ef;border-radius:11px;padding:12px;background:#f8fafc}.payment-card strong{display:block;color:#17345f;font-size:17px;margin-top:4px}.parts-used-table{width:100%;border-collapse:collapse}.parts-used-table th,.parts-used-table td{padding:9px;border-bottom:1px solid #e6ebf2;text-align:left}.parts-used-table th{background:#f2f6fb;color:#43536a}.contract-card{border:1px solid #dce4ef;border-radius:12px;padding:13px;background:#fff}.contract-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:9px;margin-top:9px}.paypal-action{display:inline-flex;align-items:center;gap:7px;background:#0070ba;color:#fff;text-decoration:none;border-radius:9px;padding:9px 13px;font-weight:800}.paypal-action:hover{background:#005f9e}.contract-modal-card{width:min(900px,100%);max-height:92vh;overflow:auto}.contract-form-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:0 13px}.contract-form-grid .wide{grid-column:1/-1}.contract-form-grid .span-2{grid-column:span 2}.record-section-block{margin-top:17px;border-top:1px solid #e1e7ef;padding-top:15px}.record-section-block h3{color:#17345f;margin:0 0 10px}
@media(max-width:1000px){.intervention-form-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.part-editor-row{grid-template-columns:repeat(4,minmax(110px,1fr))}.part-editor-notes{grid-column:1/-1}.history-item{grid-template-columns:1fr 1fr}.payment-summary{grid-template-columns:repeat(2,1fr)}.contract-form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.intervention-modal-card,.contract-modal-card{width:100%;max-height:100vh;border-radius:0}.intervention-modal-head{padding:13px}.intervention-form-body{padding:12px}.intervention-form-grid,.contract-form-grid{grid-template-columns:1fr}.intervention-form-grid .span-2,.intervention-form-grid .wide,.contract-form-grid .span-2,.contract-form-grid .wide{grid-column:auto}.part-editor-row{grid-template-columns:1fr 1fr}.part-editor-notes{grid-column:1/-1}.history-item{grid-template-columns:1fr}.history-money{text-align:left}.payment-summary,.contract-grid{grid-template-columns:1fr 1fr}.record-detail-actions button{flex:1;min-width:150px}}


.diagnosis-recognition{display:grid;grid-template-columns:minmax(0,2fr) minmax(160px,1fr);gap:12px;margin:14px 0}.diagnosis-recognition>div{background:linear-gradient(135deg,#eef8f7,#f8fbff);border:1px solid #cfe5e2;border-radius:12px;padding:13px}.diagnosis-recognition strong{display:block;color:#174d52;margin-bottom:5px}.diagnosis-recognition span{line-height:1.45}.diagnosis-estimate-note{margin:12px 0;background:#f4f7fb;border-left:4px solid #2e6bc6;border-radius:8px;padding:11px 13px;color:#46556c}.diagnosis-step-number{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#1f7a78;color:#fff;font-weight:900;flex:0 0 auto}.diagnosis-check{grid-template-columns:auto minmax(0,1fr) minmax(170px,220px);align-items:center}.diagnosis-related-item{cursor:pointer}.diagnosis-related-item:hover{background:#eef8f7}@media(max-width:820px){.diagnosis-recognition{grid-template-columns:1fr}.diagnosis-check{grid-template-columns:auto minmax(0,1fr)}.diagnosis-check select{grid-column:1/-1;width:100%}}


/* Pagamenti online e PayPal 152.0 */
.payment-shell{display:grid;gap:16px}.payment-banner{background:linear-gradient(135deg,#143b67,#0070ba);color:#fff;border-radius:16px;padding:22px}.payment-banner h2{margin:0 0 7px}.payment-banner p{margin:0;color:#eaf5ff}.payment-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.payment-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.payment-kpi{background:#fff;border:1px solid #dfe6ef;border-radius:13px;padding:15px}.payment-kpi strong{display:block;font-size:25px;color:#17345f;margin-top:5px}.payment-panel{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:18px}.payment-status-ready{display:inline-flex;border-radius:999px;padding:6px 10px;background:#e6f4ea;color:#176b36;font-weight:800}.payment-status-off{display:inline-flex;border-radius:999px;padding:6px 10px;background:#fff0cf;color:#704c00;font-weight:800}.payment-table{width:100%;border-collapse:collapse;min-width:980px}.payment-table th,.payment-table td{padding:11px 12px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:top}.payment-table th{background:#f5f7fa;color:#526078;position:sticky;top:0}.payment-actions{display:flex;gap:6px;flex-wrap:wrap}.payment-actions button,.payment-actions a{font-size:12px;padding:7px 9px}.payment-pill{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.payment-pill.completed{background:#e6f4ea;color:#176b36}.payment-pill.created,.payment-pill.approved{background:#e8f1ff;color:#174ea6}.payment-pill.failed,.payment-pill.cancelled{background:#fde7e7;color:#9b1c1c}.payment-pill.draft{background:#f1f3f5;color:#526078}.payment-form-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:0 14px}.payment-form-grid .wide{grid-column:1/-1}.payment-help{background:#f4f7fb;border-left:4px solid #0070ba;border-radius:9px;padding:11px 13px;color:#46556c;line-height:1.45}.payment-config-warning{background:#fff7df;border:1px solid #ecd18b;border-radius:10px;padding:12px;color:#684b05}.payment-copy{border:1px solid #cbd4e2;background:#fff;border-radius:8px;cursor:pointer}.paypal-blue{background:#0070ba!important}.payment-dialog{margin-top:14px;border-top:1px solid #e1e7ef;padding-top:14px}.payment-dialog.hidden{display:none}.payment-no-company{background:#fff;border:1px solid #e1e7ef;border-radius:14px;padding:24px}@media(max-width:820px){.payment-form-grid{grid-template-columns:1fr}.payment-form-grid .wide{grid-column:auto}.payment-table{min-width:780px}}


/* Magazzino ricambi intelligenti 153.0 */
.inventory-shell{display:grid;gap:16px}.inventory-banner{background:linear-gradient(135deg,#17345f,#1f7a78);color:#fff;border-radius:16px;padding:22px}.inventory-banner h2{margin:0 0 7px}.inventory-banner p{margin:0;color:#e7fbf7}.inventory-toolbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.inventory-toolbar input[type=search]{flex:1;min-width:260px;border:1px solid #ccd5e3;border-radius:9px;padding:10px 12px}.inventory-filter{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #dce4ee;border-radius:9px;padding:9px 11px}.inventory-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.inventory-kpi{background:#fff;border:1px solid #dfe6ef;border-radius:13px;padding:15px}.inventory-kpi strong{display:block;font-size:25px;color:#17345f;margin-top:5px}.inventory-panel{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:18px}.inventory-alert{background:#fff4dd;border:1px solid #e8c56d;border-radius:11px;padding:12px;color:#694900}.inventory-table{width:100%;border-collapse:collapse;min-width:1060px}.inventory-table th,.inventory-table td{padding:10px 11px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:top}.inventory-table th{background:#f5f7fa;color:#526078;position:sticky;top:0}.inventory-actions{display:flex;gap:5px;flex-wrap:wrap}.inventory-actions button{font-size:12px;padding:7px 9px}.stock-pill{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850}.stock-pill.ok{background:#e6f4ea;color:#176b36}.stock-pill.low{background:#fff0cf;color:#704c00}.stock-pill.out{background:#fde7e7;color:#9b1c1c}.inventory-code{font-weight:900;color:#17345f}.inventory-description{font-weight:760}.inventory-form-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:0 13px}.inventory-form-grid .wide{grid-column:1/-1}.inventory-form-grid .span-2{grid-column:span 2}.inventory-dialog{border-top:5px solid #1f7a78}.inventory-movement-dialog{border-top:5px solid #2e6bc6}.movement-plus{color:#176b36;font-weight:850}.movement-minus{color:#9b1c1c;font-weight:850}.inventory-empty{padding:25px;text-align:center;color:#68758b}.inventory-reorder{font-size:12px;color:#704c00;margin-top:4px}.inventory-movement-list{display:grid;gap:7px}.inventory-movement-row{display:grid;grid-template-columns:145px minmax(180px,1fr) 90px 100px 1fr;gap:10px;padding:10px;border-bottom:1px solid #edf1f5;align-items:center}@media(max-width:820px){.inventory-form-grid{grid-template-columns:1fr}.inventory-form-grid .wide,.inventory-form-grid .span-2{grid-column:auto}.inventory-table{min-width:860px}.inventory-movement-row{grid-template-columns:1fr 1fr}.inventory-movement-row>*:last-child{grid-column:1/-1}}

/* Agenda tecnici e pianificazione 155.0 + fatture IVA automatica 155.1 */
.agenda-shell{display:grid;gap:16px}.agenda-banner{background:linear-gradient(135deg,#17345f,#2e6bc6);color:#fff;border-radius:16px;padding:21px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.agenda-banner h2{margin:0 0 6px}.agenda-banner p{margin:0;color:#e8f1ff}.agenda-banner .primary{background:#fff;color:#174ea6}.agenda-toolbar{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.agenda-toolbar label{display:grid;gap:5px;color:#526078;font-size:13px}.agenda-toolbar select{min-width:190px;border:1px solid #cbd5e1;border-radius:9px;padding:9px;background:#fff}.agenda-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.agenda-kpi{background:#fff;border:1px solid #dce4ee;border-radius:13px;padding:14px}.agenda-kpi span{display:block;color:#68758b;font-size:13px}.agenda-kpi strong{display:block;color:#17345f;font-size:23px;margin-top:5px}.agenda-week{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:9px;overflow-x:auto;padding-bottom:5px}.agenda-day{background:#fff;border:1px solid #dce4ee;border-radius:13px;min-height:330px;overflow:hidden}.agenda-day.today{border:2px solid #2e6bc6}.agenda-day>header{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:#f4f7fb;color:#17345f;text-transform:capitalize}.agenda-day.today>header{background:#e8f1ff}.agenda-day-body{padding:9px;display:grid;align-content:start;gap:9px}.agenda-event{border:1px solid #dce4ee;border-left:5px solid #8290a5;border-radius:10px;padding:10px;background:#fff;box-shadow:0 3px 10px #17345f0d}.agenda-event.priority-high{border-left-color:#e49b19}.agenda-event.priority-urgent{border-left-color:#c32c2c;background:#fff9f9}.agenda-event h4{margin:7px 0 4px;color:#17345f}.agenda-event-head{display:flex;justify-content:space-between;gap:8px;font-size:12px}.agenda-event-meta,.agenda-address{font-size:12px;color:#5e6b7e;margin-top:6px;line-height:1.35}.agenda-event-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.agenda-event-actions button{font-size:12px;padding:7px 9px}.agenda-empty-day{padding:18px 10px;text-align:center;color:#8792a4;font-size:13px}.agenda-unscheduled{background:#fff;border:1px solid #dce4ee;border-radius:14px;padding:17px;display:grid;gap:9px}.agenda-unscheduled h3{margin:0;color:#17345f}.agenda-unscheduled-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e1e7ef;border-radius:10px;padding:11px;background:#f9fbfd}.agenda-planner{position:fixed;inset:0;background:#0c172c99;display:grid;place-items:center;padding:16px;z-index:50}.agenda-planner-card{width:min(760px,100%);background:#fff;border-radius:15px;padding:20px;box-shadow:0 24px 65px #07132666}.agenda-planner-card h3{margin:4px 0}.agenda-planner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 13px}@media(max-width:1100px){.agenda-week{grid-template-columns:repeat(7,minmax(230px,1fr))}}@media(max-width:760px){.agenda-banner{align-items:stretch}.agenda-banner .primary{width:100%}.agenda-toolbar button,.agenda-toolbar label{flex:1;min-width:145px}.agenda-toolbar select{width:100%;min-width:0}.agenda-week{grid-template-columns:repeat(7,minmax(260px,1fr))}.agenda-unscheduled-card{align-items:flex-start;flex-direction:column}.agenda-planner-grid{grid-template-columns:1fr}.agenda-planner-card{max-height:92vh;overflow:auto}}

@media(max-width:760px){.table-wrap{max-height:calc(100vh - 210px)}}

/* ThermoExpert Mobile 1.0 - RSP */
html{min-height:100%;background:#eef2f7}body{min-height:100%;padding-bottom:env(safe-area-inset-bottom)}
#pwa-install-button{position:fixed;z-index:10000;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));border:0;border-radius:999px;padding:12px 18px;background:#1f7a4d;color:#fff;font-weight:700;box-shadow:0 8px 28px rgba(17,39,71,.28);cursor:pointer}
#pwa-install-button:hover{filter:brightness(1.05)}#pwa-install-button:focus{outline:3px solid rgba(46,107,198,.35);outline-offset:3px}
@media (display-mode:standalone){#pwa-install-button{display:none!important}}
@media (max-width:720px){.shell{min-height:100dvh}.content{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.topbar{padding-top:max(10px,env(safe-area-inset-top))}}
.mobile-offline{min-height:100vh;display:grid;place-items:center;padding:28px;background:#eef2f7;color:#172033}.mobile-offline-card{max-width:440px;background:#fff;border:1px solid #d7dfeb;border-radius:18px;padding:28px;text-align:center}.mobile-offline-mark{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;margin:0 auto 18px;background:#15233c;color:#fff;font-size:26px;font-weight:800}.mobile-offline a{display:inline-block;margin-top:12px;padding:11px 18px;border-radius:10px;background:#2e6bc6;color:#fff;text-decoration:none;font-weight:700}


/* ThermoExpert Mobile 158.2 - Credenziali, fotocamera e privacy - RSP */
html,body{max-width:100%;overflow-x:hidden}
img,picture,video,canvas,svg{max-width:100%;height:auto}
img{object-fit:contain}
iframe,object,embed{max-width:100%;width:100%}
#content,.content,.main,.app{min-width:0;max-width:100%}
.table-wrap,.import-preview{width:100%;max-width:100%;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.data-table,.payment-table,.inventory-table,.parts-used-table{max-width:none}
.record-value,.record-related-meta,.detail-grid dd,.card,.catalog-note,.saas-note,.subscription-note,.payment-help,.recognition-note,.recognition-privacy{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:820px){
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;min-width:0;background:#eef2f7}
button,input,select,textarea{font-size:16px}
button,.primary,.secondary,.link-button{min-height:44px;touch-action:manipulation}
input,select,textarea{max-width:100%;width:100%;min-width:0}
.app{width:100%;min-height:100dvh}.main{width:100%;min-width:0}
.content{width:100%;padding:12px 10px calc(22px + env(safe-area-inset-bottom))}
.page-title{font-size:21px;line-height:1.2;margin:4px 0 13px}
.topbar{width:100%;padding:calc(7px + env(safe-area-inset-top)) 9px 7px;align-items:flex-start;flex-wrap:wrap}
.top-user{width:100%;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px}
#userLabel{min-width:0;max-width:100%;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.top-actions .company-selector{width:100%;max-width:none;min-width:0}.top-actions #logout{min-width:66px}
.sidebar{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.nav button{width:100%;font-size:16px;line-height:1.25}
.card,.tech-search,.diagnosis-card,.diagnosis-intro,.payment-panel,.inventory-panel,.agenda-unscheduled,.import-panel,.recognition-panel,.tenant-card,.subscription-card,.professional-toolbar,.professional-user-card{padding:14px;border-radius:12px}
.cards,.tenant-grid,.subscription-grid,.professional-summary,.payment-kpis,.inventory-kpis,.agenda-kpis,.recognition-grid,.recognition-fields,.import-grid,.import-summary,.diagnosis-grid,.diagnosis-related,.record-detail-grid,.payment-summary,.contract-grid{grid-template-columns:1fr!important}
.quick-insert-grid,.tenant-form-grid,.subscription-form-grid,.professional-form-grid,.intervention-form-grid,.contract-form-grid,.payment-form-grid,.inventory-form-grid,.agenda-planner-grid{grid-template-columns:1fr!important}
.quick-insert-grid .wide,.tenant-form-grid .wide,.subscription-form-grid .wide,.professional-form-grid .wide,.intervention-form-grid .wide,.intervention-form-grid .span-2,.contract-form-grid .wide,.contract-form-grid .span-2,.payment-form-grid .wide,.inventory-form-grid .wide,.inventory-form-grid .span-2{grid-column:auto!important}
.professional-user-card,.history-item,.inventory-movement-row,.part-editor-row{grid-template-columns:1fr!important}
.part-editor-notes,.inventory-movement-row>*:last-child{grid-column:auto!important}
.toolbar,.section-actions,.tenant-toolbar,.professional-toolbar,.payment-toolbar,.inventory-toolbar,.agenda-toolbar,.recognition-actions,.diagnosis-actions,.record-detail-actions{align-items:stretch}
.toolbar>*:not(.muted),.section-actions button,.tenant-toolbar button,.payment-toolbar button,.inventory-toolbar button,.agenda-toolbar button,.recognition-actions button,.diagnosis-actions button,.record-detail-actions button{flex:1 1 145px}
.toolbar input,.tech-search-row input,.diagnosis-search-box input,.inventory-toolbar input[type=search]{min-width:0;width:100%;flex-basis:100%}
.table-wrap{max-height:calc(100dvh - 210px);overflow:auto;border-radius:10px;scrollbar-gutter:auto}
.data-table{min-width:760px;width:max-content}.payment-table{min-width:780px;width:max-content}.inventory-table{min-width:860px;width:max-content}.parts-used-table{min-width:620px;width:max-content}
.data-table th,.data-table td,.payment-table th,.payment-table td,.inventory-table th,.inventory-table td{padding:10px 11px;max-width:280px}
.modal{padding:0;align-items:stretch;background:#0c172ccc}
.modal-card,.quick-insert-card,.record-detail-card,.error-detail-card,.document-detail-card,.part-detail-card,.intervention-modal-card,.contract-modal-card,.agenda-planner-card{width:100%!important;max-width:none!important;min-height:100dvh;max-height:100dvh!important;border-radius:0!important;padding:14px!important;padding-top:calc(14px + env(safe-area-inset-top))!important;padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;overflow-y:auto}
.intervention-modal-card{padding:0!important}.intervention-modal-head{padding:calc(12px + env(safe-area-inset-top)) 12px 12px}.intervention-form-body{padding:12px 10px calc(18px + env(safe-area-inset-bottom))}
.detail-heading,.diagnosis-title,.recognition-candidate-head{gap:9px;flex-wrap:wrap}
.detail-grid{grid-template-columns:1fr}.detail-grid dt{border-bottom:0;padding-bottom:5px}.detail-grid dd{padding-top:5px}
.actions{display:flex;flex-wrap:wrap;bottom:calc(-14px - env(safe-area-inset-bottom));padding:12px 0 calc(8px + env(safe-area-inset-bottom))}.actions button,.actions a{flex:1 1 130px;min-height:46px}
.form-section{padding:12px;margin-bottom:11px}.field{margin:10px 0;gap:6px}
.record-detail-hero,.professional-banner,.payment-banner,.inventory-banner,.agenda-banner,.tech-search{padding:15px}.professional-banner{align-items:flex-start;flex-direction:column}.professional-banner .professional-role{white-space:normal}
.search-result-line,.error-result-line,.document-result-line,.part-result-line,.diagnosis-result{grid-template-columns:1fr!important;gap:5px}
.agenda-week{width:100%;max-width:100%;overflow-x:auto;grid-template-columns:repeat(7,minmax(260px,1fr));-webkit-overflow-scrolling:touch}.agenda-unscheduled-card{align-items:stretch}
.recognition-preview,.recognition-video{width:100%;height:auto;max-height:55dvh;object-fit:contain}
[class*="gallery"],[class*="photo-grid"],[class*="image-grid"],[class*="media-grid"]{grid-template-columns:1fr!important;max-width:100%}
[class*="gallery"] img,[class*="photo"] img,[class*="image"] img{width:100%;height:auto;object-fit:contain}
.doc-link,.paypal-action{max-width:100%;white-space:normal;text-align:center;justify-content:center}
.metric,.subscription-metric .value,.professional-metric .value,.payment-kpi strong,.inventory-kpi strong,.agenda-kpi strong{font-size:24px}
#pwa-install-button{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;text-align:center}
}
@media(max-width:560px){
.login{padding:0;align-items:stretch;background:#eef2f7}.professional-login-shell{display:block;min-height:100dvh}.professional-login-hero{display:none}
.professional-login-side{min-height:100dvh;padding:calc(14px + env(safe-area-inset-top)) 10px calc(14px + env(safe-area-inset-bottom));display:flex;align-items:center}
.login-card{width:100%;max-width:none;padding:18px 15px;border-radius:16px;box-shadow:0 10px 30px #07132624}.login-card .brand{font-size:23px}.login-submit{width:100%;min-height:48px}
.password-wrap{grid-template-columns:minmax(0,1fr) auto}.mobile-menu-toggle,.mobile-recognition-quick{padding:7px 9px;font-size:14px}
.top-user{grid-template-columns:auto auto minmax(0,1fr)}.top-actions{grid-template-columns:minmax(0,1fr) auto}.cards{gap:10px}.card{padding:12px}.page-title{font-size:20px}
h1{font-size:23px}h2{font-size:20px}h3{font-size:18px}.payment-summary,.contract-grid{grid-template-columns:1fr!important}
}


/* Legal, remember-session and source notices 158.2 */
.remember-session{margin:.15rem 0 0;align-items:center}.remember-session-note{font-size:.78rem;color:#52637a;line-height:1.35;margin:-.2rem 0 .5rem}.login-legal-links{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:.9rem;font-size:.78rem}.login-legal-links a,.legal-footer a,.technical-source-disclaimer a{color:#1f5fbf;text-decoration:underline}.technical-source-disclaimer{border:1px solid #e1b24b;background:#fff7df;color:#5b4312;border-radius:10px;padding:10px 12px;margin:0 0 12px;line-height:1.45}.legal-footer{margin-top:28px;border-top:1px solid #d7dfeb;padding:16px 2px 26px;color:#52637a;font-size:.8rem;line-height:1.45;display:grid;gap:6px}.legal-page{max-width:920px;margin:0 auto;padding:24px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#17233a;line-height:1.55}.legal-page h1{font-size:1.65rem}.legal-page h2{font-size:1.15rem;margin-top:1.4rem}.legal-warning{border:1px solid #e1b24b;background:#fff7df;padding:12px;border-radius:10px}.legal-page a{color:#1f5fbf}.legal-form{display:grid;gap:12px;max-width:620px}.legal-form input,.legal-form textarea{width:100%;box-sizing:border-box;padding:11px;border:1px solid #b9c5d6;border-radius:8px;font:inherit}.legal-form button{padding:11px 16px;border:0;border-radius:8px;background:#245fc1;color:white;font-weight:700}.legal-success{border:1px solid #7bb48a;background:#edf9f0;padding:12px;border-radius:10px}
@media(max-width:700px){.technical-source-disclaimer{font-size:.82rem}.legal-footer{font-size:.76rem}.legal-page{padding:16px}.login-legal-links{gap:.55rem}}

