.machine-components-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem}.machine-components-kpi .kpi-card{padding:.75rem 1rem;border-radius:8px;background:var(--users-surface-alt, #f8fafc);border:1px solid var(--users-border, #e2e8f0)}.machine-components-kpi .kpi-label{display:block;font-size:.75rem;color:var(--users-muted, #64748b);margin-bottom:.25rem}.machine-components-kpi .kpi-value{font-size:1.1rem;font-weight:700}.machine-components-filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.machine-components-filters label{flex:1;min-width:160px}.quick-parts-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.maintenance-part-row{margin-bottom:.5rem}.maintenance-parts-used{margin-top:.35rem;font-size:.85rem;color:var(--users-muted, #64748b)}.machine-detail-page,.users-page{--users-ink: #1f2937;--users-muted: #8a94a3;--users-line: #e8eef4;--users-soft: #f6f8fb;--users-panel: #ffffff;--users-accent: #4f6ef7;--users-accent-hover: #3d5ce8;--users-accent-soft: #f4f7ff;--users-success: #1b8a4b;--users-success-soft: #e6f7ee;--users-warning: #8a5a00;--users-warning-soft: #fff4dc;--users-danger: #d12b2b;--users-danger-soft: #ffe8e8;--users-info: #1d6fd8;--users-info-soft: #e8f3ff;--users-purple: #5248d8;--users-purple-soft: #ecebff;color:var(--users-ink)}.machine-detail-page{display:flex;flex-direction:column;gap:1.35rem;max-width:1400px;margin:0 auto}.machine-header-wrapper{display:flex;flex-direction:column;gap:.75rem}.machine-breadcrumb{display:flex;align-items:center;gap:.5rem}.machine-back-link{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .9rem;border-radius:10px;border:1px solid var(--users-line);background:var(--users-panel);color:#4b5563;font-size:.84rem;font-weight:600;text-decoration:none;transition:all .15s ease;box-shadow:0 1px 2px #0f172a0a}.machine-back-link:hover{background:var(--users-soft);border-color:#cfd8e3;color:var(--users-ink);transform:translate(-2px)}.machine-hero-card{border:1px solid var(--users-line);border-radius:16px;background:var(--users-panel);box-shadow:0 1px 3px #0f172a0d;padding:1.35rem 1.6rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.25rem}.machine-hero-main{display:flex;flex-direction:column;gap:.45rem}.machine-badges-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.machine-hero-title{font-size:1.85rem;font-weight:700;letter-spacing:-.025em;margin:0;color:var(--users-ink);line-height:1.2}.machine-hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1rem;color:#64748b;font-size:.88rem;font-weight:500}.machine-meta-item{display:inline-flex;align-items:center;gap:.35rem}.machine-meta-item strong{color:var(--users-ink);font-weight:600}.machine-hero-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.machine-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.users-kpi{border:1px solid var(--users-line);border-radius:16px;background:var(--users-panel);box-shadow:0 1px 2px #0f172a0d;color:var(--users-ink);transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease;overflow:hidden}.users-kpi:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a14}.users-kpi .card-body{padding:1.1rem 1.25rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem}.users-kpi-content{flex:1;min-width:0}.users-kpi .card-title{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--users-muted);margin-bottom:.35rem}.users-kpi h2{font-size:1.65rem;font-weight:700;letter-spacing:-.03em;line-height:1.15;color:var(--users-ink);margin:0 0 .35rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.users-kpi small{color:#7b8493;font-size:.8rem;font-weight:500;display:block}.users-kpi-icon{width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.05rem}.users-kpi-attivi .users-kpi-icon{background:var(--users-success-soft);color:var(--users-success)}.users-kpi-inattivi .users-kpi-icon{background:#eef1f5;color:#5b6472}.users-kpi-contratti .users-kpi-icon{background:var(--users-warning-soft);color:#c48400}.users-kpi-senza .users-kpi-icon,.users-kpi-scaduti .users-kpi-icon{background:var(--users-danger-soft);color:var(--users-danger)}.users-kpi-attestati .users-kpi-icon{background:var(--users-info-soft);color:var(--users-info)}.users-kpi-mancanti .users-kpi-icon{background:var(--users-purple-soft);color:var(--users-purple)}.machine-detail-page .card,.machine-detail-page .users-panel{border:1px solid var(--users-line);border-radius:16px;background:var(--users-panel);box-shadow:0 1px 2px #0f172a0d;padding:1.35rem 1.5rem;margin-bottom:0}.machine-detail-page .card>h3,.machine-detail-page .users-panel h3{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:var(--users-ink);margin:0 0 1rem;display:flex;align-items:center;gap:.55rem}.machine-detail-page .card>h3 svg{color:var(--users-accent);flex-shrink:0}.machine-section-heading,.machine-detail-page .section-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.machine-section-heading h3,.machine-detail-page .section-heading h3{margin:0}.machine-detail-page label{font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--users-muted);margin-bottom:.25rem;display:flex;flex-direction:column;gap:.35rem}.machine-detail-page input,.machine-detail-page select,.machine-detail-page textarea{border:1px solid var(--users-line);border-radius:10px;background:#fff;color:var(--users-ink);font-size:.92rem;padding:.62rem .85rem;transition:border-color .15s ease,box-shadow .15s ease;font-family:inherit;width:100%}.machine-detail-page input:focus,.machine-detail-page select:focus,.machine-detail-page textarea:focus{border-color:var(--users-accent);box-shadow:0 0 0 3px #4f6ef724;outline:none}.machine-detail-page input:disabled,.machine-detail-page select:disabled,.machine-detail-page textarea:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed;border-color:#edf2f7}.machine-detail-page label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:.6rem;text-transform:none;font-size:.88rem;font-weight:500;color:var(--users-ink);cursor:pointer;margin-top:.35rem}.machine-detail-page input[type=checkbox]{width:18px;height:18px;accent-color:var(--users-accent);border-radius:4px;cursor:pointer}.machine-detail-page button,.machine-detail-page .btn{border-radius:10px;font-weight:600;font-size:.88rem;padding:.58rem 1.05rem;transition:all .15s ease;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--users-accent);border:1px solid var(--users-accent);color:#fff;box-shadow:0 1px 2px #0f172a0d}.machine-detail-page button:hover:not(:disabled),.machine-detail-page .btn:hover:not(:disabled){background:var(--users-accent-hover);border-color:var(--users-accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #4f6ef738}.machine-detail-page button.secondary,.machine-detail-page .btn-secondary,.machine-detail-page .btn-outline-secondary{background:#fff;border:1px solid var(--users-line);color:#4b5563;box-shadow:0 1px 2px #0f172a0a}.machine-detail-page button.secondary:hover:not(:disabled),.machine-detail-page .btn-secondary:hover:not(:disabled),.machine-detail-page .btn-outline-secondary:hover:not(:disabled){background:var(--users-soft);border-color:#cfd8e3;color:var(--users-ink);box-shadow:0 2px 6px #0f172a0f}.machine-detail-page button.danger,.machine-detail-page .btn-danger{background:var(--users-danger-soft);border:1px solid #fca5a5;color:var(--users-danger);box-shadow:none}.machine-detail-page button.danger:hover:not(:disabled),.machine-detail-page .btn-danger:hover:not(:disabled){background:#fee2e2;border-color:#f87171;color:#b91c1c;box-shadow:0 4px 12px #d12b2b26}.machine-detail-page button:disabled,.machine-detail-page .btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.machine-detail-page .badge{font-size:.72rem;font-weight:600;border-radius:8px;padding:.35em .65em;display:inline-flex;align-items:center;gap:.3rem;letter-spacing:.02em}.machine-detail-page .badge.active,.machine-detail-page .badge.public,.machine-detail-page .badge.bg-success{background:var(--users-success-soft)!important;color:var(--users-success)!important}.machine-detail-page .badge.disabled,.machine-detail-page .badge.expired,.machine-detail-page .badge.bg-danger{background:var(--users-danger-soft)!important;color:var(--users-danger)!important}.machine-detail-page .badge.pin,.machine-detail-page .badge.soon,.machine-detail-page .badge.bg-warning{background:var(--users-warning-soft)!important;color:var(--users-warning)!important}.machine-detail-page .badge.archived,.machine-detail-page .badge.bg-secondary{background:#eef1f5!important;color:#5b6472!important}.machine-detail-page .badge.published,.machine-detail-page .badge.bg-info{background:var(--users-info-soft)!important;color:var(--users-info)!important}.machine-detail-page .badge.draft,.machine-detail-page .badge.bg-primary{background:var(--users-purple-soft)!important;color:var(--users-purple)!important}.machine-photo-card{display:flex;flex-direction:column;gap:.85rem}.machine-photo-preview{border-radius:14px;overflow:hidden;border:1px solid var(--users-line);background:var(--users-soft);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:inset 0 1px 3px #0f172a0a}.machine-photo-img{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.machine-photo-preview:hover .machine-photo-img{transform:scale(1.02)}.machine-photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--users-muted);font-size:.88rem;font-weight:500;width:100%;height:100%}.machine-photo-placeholder svg{stroke:#b4bfce}.machine-detail-page .machine-photo-upload{display:flex;flex-direction:column;gap:.4rem}.machine-detail-page .machine-photo-actions{display:flex;gap:.5rem;flex-wrap:wrap}.machine-detail-page .machine-photo-hint{margin:.25rem 0 0;font-size:.78rem;color:var(--users-muted)}.machine-detail-page .qr-panel{display:flex;flex-direction:column;align-items:stretch}.machine-detail-page .qr-machine-code{text-align:center;font-weight:700;font-size:1.25rem;letter-spacing:-.01em;color:var(--users-ink);margin:.15rem 0 .65rem}.machine-detail-page .qr-preview-wrap{background:#fff;border:1px solid var(--users-line);border-radius:14px;padding:1.15rem;display:flex;flex-direction:column;align-items:center;margin:.4rem auto;box-shadow:0 4px 14px #0f172a0a}.machine-detail-page .qr-preview{border-radius:8px;display:block}.machine-detail-page .qr-preview-label{margin:.5rem 0 0;font-size:.78rem;font-weight:700;letter-spacing:.05em;color:var(--users-muted);text-transform:uppercase}.machine-detail-page .qr-url{margin:.6rem 0;text-align:center;overflow:hidden;text-overflow:ellipsis}.machine-detail-page .qr-url-link{display:inline-block;padding:.35rem .75rem;border-radius:8px;background:var(--users-soft);border:1px solid var(--users-line);color:#3554d4;font-size:.82rem;font-family:monospace;text-decoration:none;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.machine-detail-page .qr-url-link:hover{background:var(--users-accent-soft);border-color:#cbd8fb}.machine-detail-page .qr-rotation-warning{margin-top:1rem;border:1px solid #fecaca;border-radius:12px;background:#fff8f8;padding:1.1rem 1.25rem;color:#991b1b}.machine-detail-page .qr-rotation-warning p{color:#7f1d1d;font-size:.86rem;margin:.35rem 0 .75rem}.machine-detail-page .compliance-card{display:flex;flex-direction:column}.machine-detail-page .compliance-checklist{display:flex;flex-direction:column;gap:.5rem;margin:.85rem 0;padding:0;list-style:none}.machine-detail-page .compliance-checklist li{display:flex;justify-content:space-between;align-items:center;padding:.65rem .95rem;border-radius:10px;border:1px solid var(--users-line);background:#fff;font-size:.88rem;font-weight:500}.machine-detail-page .checklist-complete{border-left:4px solid var(--users-success)!important;background:#fafdfb!important}.machine-detail-page .checklist-complete strong{color:var(--users-success)}.machine-detail-page .checklist-missing{border-left:4px solid var(--users-purple)!important;background:#fafaff!important}.machine-detail-page .checklist-missing strong{color:var(--users-purple)}.machine-detail-page .checklist-expired{border-left:4px solid var(--users-danger)!important;background:snow!important}.machine-detail-page .checklist-expired strong{color:var(--users-danger)}.machine-detail-page .notification-list{display:flex;flex-direction:column;gap:.65rem;margin:.75rem 0;padding:0;list-style:none}.machine-detail-page .notification-list li{border:1px solid var(--users-line);border-radius:12px;background:#fff;padding:.85rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;box-shadow:0 1px 2px #0f172a08;transition:box-shadow .15s ease}.machine-detail-page .notification-list li:hover{box-shadow:0 4px 12px #0f172a0d}.machine-detail-page .notification-list li strong{font-size:.92rem;color:var(--users-ink)}.machine-detail-page .notification-list li p{margin:0;font-size:.85rem;color:#64748b}.machine-detail-page .deadline-expired{color:var(--users-danger);font-weight:700;font-size:.8rem}.machine-detail-page .deadline-warning{color:var(--users-warning);font-weight:700;font-size:.8rem}.machine-detail-page .table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--users-line);border-radius:14px;overflow:hidden;margin-top:.75rem}.machine-detail-page .table thead th{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--users-muted);background:#f7f9fc;border-bottom:1px solid var(--users-line);padding:.85rem 1.1rem;white-space:nowrap;vertical-align:middle}.machine-detail-page .table tbody td{padding:.85rem 1.1rem;vertical-align:middle;border-bottom:1px solid var(--users-line);background:#fff;font-size:.9rem;color:var(--users-ink)}.machine-detail-page .table tbody tr:last-child td{border-bottom:none}.machine-detail-page .table tbody tr:hover td{background:var(--users-accent-soft)}.machine-detail-page .table tbody a{color:#3554d4;font-weight:500}.machine-detail-page .document-editor,.machine-detail-page .document-versions{border:1px solid var(--users-line);border-radius:14px;background:var(--users-soft);padding:1.15rem 1.35rem;margin-top:1rem}.machine-detail-page .document-editor h4{margin:0 0 .85rem;font-size:.95rem;font-weight:700;color:var(--users-ink)}.modal-dialog{border-radius:16px!important;border:1px solid var(--users-line)!important;box-shadow:0 20px 50px #0f172a2e!important;overflow:hidden}.modal-header{background:linear-gradient(180deg,#f8faff,#fff)!important;border-bottom:1px solid #edf1f5!important;padding:1.15rem 1.35rem!important}.modal-header h3{font-size:1.05rem!important;font-weight:700!important;color:var(--users-ink)!important}.modal-footer{background:#fbfcfe!important;border-top:1px solid #edf1f5!important;padding:.95rem 1.35rem!important}@media(max-width:900px){.machine-hero-card{flex-direction:column;align-items:flex-start}.machine-hero-actions{width:100%;justify-content:flex-start}.machine-hero-title{font-size:1.55rem}}:root{font-family:Segoe UI,system-ui,sans-serif;color:#0f172a;background:#f8fafc;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:#2563eb;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:none;border-radius:8px;padding:.6rem 1rem;background:#2563eb;color:#fff}button.secondary{background:#e2e8f0;color:#0f172a}button.danger{background:#dc2626}input,select,textarea{width:100%;padding:.6rem .75rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.password-field{position:relative}.password-field input{padding-right:2.75rem}.password-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);padding:.35rem .5rem;background:transparent;color:#64748b;font-size:1rem;line-height:1}.password-toggle:hover{color:#0f172a;background:#f1f5f9}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:#0f172a;color:#fff;padding:1.5rem 1rem}.sidebar h1{font-size:1.1rem;margin:0 0 1.5rem}.sidebar nav{display:grid;gap:.5rem}.sidebar a{color:#cbd5e1;padding:.5rem .75rem;border-radius:8px}.sidebar a.active,.sidebar a:hover{background:#1e293b;color:#fff}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;margin-left:.5rem;padding:0 .35rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.75rem;font-weight:700}.main{padding:1.5rem}.acting-org-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:10px;padding:.65rem .85rem;margin-bottom:1rem}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1rem;margin-bottom:1rem}.grid-2{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.75rem;border-bottom:1px solid #e2e8f0}.table-subtitle{display:block;color:#64748b;font-size:.8rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.8rem;background:#e2e8f0}.badge.public{background:#dcfce7;color:#166534}.badge.pin{background:#fef3c7;color:#92400e}.badge.disabled,.badge.expired{background:#fee2e2;color:#991b1b}.badge.soon{background:#fef3c7;color:#92400e}.form-grid{display:grid;gap:.75rem;max-width:520px}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(480px,100%);background:#fff;border-radius:16px;padding:1.5rem;border:1px solid #e2e8f0;box-shadow:0 10px 30px #0f172a14}.auth-links{margin:0;text-align:center;font-size:.9rem}.public-shell{--brand: #0f4c81;min-height:100dvh;display:flex;flex-direction:column;background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 12%,#f8fafc),#f1f5f9 40%,#f8fafc);color:#0f172a}.public-header{padding:1.25rem 1rem .5rem;max-width:560px;margin:0 auto;width:100%}.public-brand{display:flex;align-items:center;gap:.85rem;background:#fff;border-radius:16px;padding:1rem 1.1rem;box-shadow:0 4px 24px #0f172a0f;border:1px solid #e2e8f0}.public-logo{width:52px;height:52px;object-fit:contain;border-radius:12px}.public-logo-fallback{width:52px;height:52px;border-radius:12px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.public-org-name{margin:0;font-size:1.05rem;font-weight:700;line-height:1.2}.public-org-tagline{margin:.2rem 0 0;font-size:.85rem;color:#64748b}.public-main{flex:1;width:100%;max-width:560px;margin:0 auto;padding:.75rem 1rem 1.5rem;display:grid;gap:.85rem}.public-card{background:#fff;border-radius:16px;padding:1.15rem 1.2rem;border:1px solid #e2e8f0;box-shadow:0 4px 20px #0f172a0d}.public-card--center{text-align:center;margin:auto 1rem;max-width:400px}.public-shell--empty,.public-shell--loading{min-height:100dvh}.public-main--empty{align-content:start}.public-empty-card{background:#fff;border-radius:20px;padding:1.5rem 1.35rem 1.35rem;border:1px solid #e2e8f0;box-shadow:0 12px 40px #0f172a14;text-align:center}.public-empty-visual{position:relative;width:120px;height:120px;margin:0 auto 1.25rem;color:var(--brand)}.public-empty-glow{position:absolute;top:10%;right:10%;bottom:10%;left:10%;border-radius:50%;background:color-mix(in srgb,var(--brand) 18%,transparent);filter:blur(12px)}.public-empty-icon{position:relative;width:100%;height:100%}.public-empty-eyebrow{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#94a3b8}.public-empty-title{margin:.35rem 0 .65rem;font-size:1.45rem;font-weight:800;line-height:1.2;color:#0f172a}.public-empty-text{margin:0 0 1.15rem;color:#475569;font-size:.98rem;line-height:1.55}.public-empty-tips{margin:0;list-style:none;text-align:left;display:grid;gap:.55rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:.9rem 1rem}.public-empty-tips li{position:relative;padding-left:1.1rem;font-size:.88rem;color:#64748b;line-height:1.45}.public-empty-tips li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--brand)}.public-empty-tips a{color:var(--brand);font-weight:600}.public-empty-retry{margin-top:1rem;width:100%}.public-loading-card{margin:auto;width:min(360px,calc(100% - 2rem));background:#fff;border-radius:16px;padding:1.25rem;border:1px solid #e2e8f0;box-shadow:0 8px 30px #0f172a0f}.public-loading-shimmer{height:120px;border-radius:12px;background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:shimmer 1.2s infinite;margin-bottom:1rem}.public-loading-lines{display:grid;gap:.5rem;margin-bottom:.75rem}.public-loading-lines span{display:block;height:10px;border-radius:999px;background:#e2e8f0}.public-loading-lines span.short{width:55%}.public-loading-card p{margin:0;text-align:center;color:#64748b;font-size:.9rem}.public-docs-empty{padding:.5rem 0 .25rem}.public-docs-empty-title{margin:0 0 .35rem;font-weight:700;color:#334155}.public-card h2{margin:0 0 .75rem;font-size:1.05rem}.public-machine-card{border-top:4px solid var(--brand)}.public-label{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.public-machine-code{margin:.25rem 0 .75rem;font-size:1.75rem;font-weight:800;color:var(--brand);line-height:1.1}.public-meta{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:0;font-size:.95rem}.public-meta dt{color:#64748b;font-weight:500}.public-meta dd{margin:0;font-weight:600}.public-description{margin:.85rem 0 0;color:#475569;font-size:.95rem;line-height:1.5}.public-muted{color:#64748b;margin:0 0 1rem;font-size:.95rem}.public-form{display:grid;gap:.75rem}.public-btn{width:100%;padding:.85rem 1rem;background:var(--brand);color:#fff;font-weight:600;border-radius:12px}.public-doc-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.public-doc-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.85rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.public-doc-icon{width:40px;height:40px;border-radius:10px;background:color-mix(in srgb,var(--brand) 15%,white);color:var(--brand);font-size:.7rem;font-weight:800;display:grid;place-items:center}.public-doc-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.public-doc-body strong{font-size:.95rem;line-height:1.3}.public-doc-cat{font-size:.8rem;color:#64748b}.public-doc-link{padding:.5rem .85rem;background:var(--brand);color:#fff!important;border-radius:10px;font-size:.85rem;font-weight:600;white-space:nowrap}.public-footer{padding:1rem;text-align:center;font-size:.8rem;color:#94a3b8}.public-footer-sep{margin:0 .35rem}.public-loading{margin:auto;padding:2rem;color:#64748b}.qr-panel .qr-preview-wrap{text-align:center;padding:1rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.qr-preview{width:min(220px,100%);height:auto;display:block;margin:0 auto}.qr-preview-label{margin:.5rem 0 0;font-weight:700;color:#0f172a}.qr-machine-code{font-size:1.1rem;font-weight:700}.qr-url{font-size:.8rem;word-break:break-all;color:#64748b}.qr-url-link{color:#2563eb;text-decoration:none}.qr-url-link:hover{text-decoration:underline}.public-footer-link{color:var(--brand);font-weight:600;text-decoration:none}.public-footer-link:hover{text-decoration:underline}.error{color:#dc2626;margin-top:.5rem}.message-ok{color:#166534;margin-top:.5rem}.settings-section{max-width:640px}.settings-hint{margin:-.25rem 0 0;font-size:.9rem;color:#64748b}.machine-photo-preview{aspect-ratio:4 / 3;border-radius:12px;overflow:hidden;background:#f1f5f9;border:1px solid #e2e8f0}.machine-photo-img{width:100%;height:100%;object-fit:cover;display:block}.machine-photo-placeholder{height:100%;display:grid;place-items:center;color:#94a3b8;font-size:.9rem}.machine-photo-upload{display:grid;gap:.5rem}.machine-photo-actions{display:flex;gap:.5rem;flex-wrap:wrap}.machine-photo-hint{margin:0;font-size:.8rem;color:#64748b}.org-logo-editor{display:grid;gap:.65rem}.org-logo-label{margin:0;font-size:.85rem;font-weight:600}.org-logo-preview{width:96px;height:96px;border-radius:16px;border:1px solid #e2e8f0;background:#f8fafc;display:grid;place-items:center;overflow:hidden;color:#94a3b8;font-size:.8rem}.org-logo-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.machine-list-thumb{width:48px;height:36px;object-fit:cover;border-radius:6px;display:block;background:#f1f5f9}.machine-list-thumb--empty{display:inline-grid;place-items:center;color:#cbd5e1;font-size:.85rem}.machine-list-thumb--loading{display:inline-block;background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.crop-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a8c;display:grid;place-items:center;padding:1rem}.crop-modal{width:min(520px,100%);max-height:min(92dvh,720px);background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 48px #0f172a33}.crop-modal-header{padding:1rem 1.15rem .5rem}.crop-modal-header h3{margin:0;font-size:1.05rem}.crop-modal-header p{margin:.25rem 0 0;font-size:.85rem;color:#64748b}.crop-stage{position:relative;height:min(52vw,320px);min-height:220px;background:#0f172a}.crop-zoom{padding:.75rem 1.15rem;display:grid;gap:.35rem;font-size:.85rem;color:#475569}.crop-actions{padding:0 1.15rem 1rem;display:flex;gap:.5rem;justify-content:flex-end}.public-machine-photo-wrap{margin:-.15rem -.2rem 1rem;border-radius:12px;overflow:hidden;aspect-ratio:4 / 3;background:#f1f5f9}.public-machine-photo{width:100%;height:100%;object-fit:cover;display:block}.public-contacts-card h2{margin:0 0 .85rem;font-size:1.05rem}.public-contacts-list{display:grid;grid-template-columns:auto 1fr;gap:.35rem .85rem;margin:0;font-size:.92rem}.public-contacts-list dt{color:#64748b;font-weight:500}.public-contacts-list dd{margin:0;font-weight:500;line-height:1.45}.public-contact-link{color:var(--brand);font-weight:600;word-break:break-word}.public-contacts-list a{color:var(--brand)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:1rem}.modal-dialog{width:min(480px,100%);background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 40px #0f172a38;animation:modalEnter .15s ease-out}@keyframes modalEnter{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-header{padding:1.25rem 1.25rem .75rem;border-bottom:1px solid #f1f5f9}.modal-header h3{margin:0;font-size:1.15rem;color:#0f172a}.modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;color:#334155;font-size:.95rem;line-height:1.5}.modal-description{color:#475569}.modal-error{margin:.25rem 0 0;padding:.65rem .85rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.88rem;font-weight:500}.modal-footer{padding:.85rem 1.25rem 1.25rem;display:flex;gap:.75rem;justify-content:flex-end;border-top:1px solid #f1f5f9;background:#f8fafc}.delete-modal-content{display:flex;flex-direction:column;gap:.65rem}.delete-modal-content p{margin:0}.delete-modal-warning-text{color:#64748b;font-size:.88rem}.modal-warning-box{margin-top:.4rem;padding:.85rem;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#92400e;font-size:.88rem;display:flex;flex-direction:column;gap:.5rem}.modal-warning-title{font-weight:600;font-size:.9rem}.modal-warning-desc{margin:0;line-height:1.4}.modal-checkbox-label{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;font-weight:500;color:#78350f;margin-top:.25rem}.modal-checkbox-label input[type=checkbox]{width:auto;margin-top:.2rem;cursor:pointer}html,body,#root{min-width:0;min-height:100%}body{overflow-x:hidden}img,svg{max-width:100%}.main,.card,.grid-2>*,.public-brand>div{min-width:0}.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.table-scroll:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.table-scroll .table{min-width:560px}@media(max-width:768px){button,input,select,textarea{min-height:44px}input,select,textarea{font-size:16px}.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:20;padding:max(.75rem,env(safe-area-inset-top)) 1rem .75rem;box-shadow:0 2px 12px #0f172a2e}.sidebar h1{margin:0 0 .6rem}.sidebar nav{display:flex;gap:.35rem;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.sidebar a{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding-inline:.85rem}.main{padding:1rem}.card{padding:.9rem}.grid-2{grid-template-columns:minmax(0,1fr)}.form-grid{max-width:none}.table th,.table td{padding:.65rem;white-space:nowrap}.public-header{padding-top:max(1rem,env(safe-area-inset-top))}.public-main{padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}.crop-modal-backdrop{align-items:end;padding:.5rem}.crop-modal{max-height:calc(100dvh - 1rem);border-radius:16px 16px 10px 10px}.crop-stage{height:min(48dvh,300px);min-height:180px}}@media(max-width:480px){.sidebar{padding-inline:.75rem}.main{padding:.75rem}.main h2{font-size:1.35rem}.actions{gap:.4rem}.actions button{padding-inline:.8rem}.card{border-radius:10px;padding:.8rem}.table-scroll{margin-inline:-.8rem;padding-inline:.8rem}.public-header,.public-main{padding-inline:.75rem}.public-brand,.public-card{padding:.9rem;border-radius:14px}.public-logo,.public-logo-fallback{width:44px;height:44px}.public-machine-code{overflow-wrap:anywhere;font-size:1.5rem}.public-meta,.public-contacts-list{grid-template-columns:minmax(0,1fr);gap:.1rem}.public-meta dd,.public-contacts-list dd{margin-bottom:.6rem;overflow-wrap:anywhere}.public-doc-item{grid-template-columns:auto minmax(0,1fr)}.public-doc-link{grid-column:1 / -1;text-align:center;min-height:44px;display:grid;place-items:center}.crop-modal-header{padding:.85rem .9rem .45rem}.crop-stage{min-height:150px}.crop-zoom{padding:.65rem .9rem}.crop-actions{padding:0 .9rem max(.75rem,env(safe-area-inset-bottom))}.crop-actions button{flex:1}}.compliance-checklist{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.compliance-checklist li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border-radius:8px;background:#f8fafc}.checklist-complete strong{color:#166534}.checklist-missing strong,.checklist-expired strong{color:#b91c1c}.document-manager{display:grid;gap:1rem}.document-editor,.document-versions,.qr-rotation-warning{padding:1rem;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}.document-versions ul{display:grid;gap:.55rem;padding:0;list-style:none}.document-versions li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.35rem .75rem;align-items:center}.document-versions small{grid-column:1 / -1;overflow-wrap:anywhere;color:#64748b}.link-button{padding:0;background:none;color:#2563eb;text-align:left}.table-subtitle{display:block;margin-top:.2rem;color:#64748b}.wrap-cell{min-width:220px;white-space:normal!important}.section-heading{justify-content:space-between;align-items:start}.section-heading h3{margin:0}.qr-rotation-warning{margin-top:1rem;border-color:#fca5a5;background:#fff7f7}.qr-rotation-warning label{display:block;margin-top:.75rem}.privacy-note{margin:0;font-size:.8rem;color:#64748b}.deadline-expired{color:#b91c1c;font-weight:700}.deadline-warning{color:#92400e;font-weight:700}.alert-history{margin-top:1rem}.public-language{display:grid;gap:.35rem;margin-bottom:.85rem;color:#475569;font-size:.9rem}.workflow-panel{display:grid;gap:.65rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #cbd5e1}.workflow-panel h4,.workflow-panel p{margin:0}.compliance-percentage{margin:.5rem 0;color:#0f4c81;font-size:clamp(2rem,6vw,3.5rem);font-weight:800}.notification-list{display:grid;gap:.75rem;padding:0;list-style:none}.notification-list li{padding:.75rem;border:1px solid #cbd5e1;border-radius:8px}.notification-unread{border-left:4px solid #0f4c81!important;background:#f0f7ff}@media(max-width:600px){.document-versions li{grid-template-columns:minmax(0,1fr)}.compliance-checklist li,.section-heading{align-items:stretch;flex-direction:column}}
