:root{--frn-navy-950:#06172d;--frn-navy-900:#071a33;--frn-navy-800:#0b2445;--frn-blue-700:#1e3a5f;--frn-blue-600:#2563eb;--frn-teal-500:#14b8a6;--frn-teal-600:#0f766e;--frn-green-500:#22c55e;--frn-green-600:#16a34a;--frn-amber-500:#f59e0b;--frn-red-500:#ef4444;--frn-red-600:#dc2626;--frn-info-500:#0ea5e9;--frn-bg:#f5f8fc;--frn-bg-strong:#eaf1f8;--frn-surface:#fff;--frn-surface-soft:#f8fafc;--frn-surface-raised:#fffffff0;--frn-text:#0f172a;--frn-text-soft:#334155;--frn-muted:#64748b;--frn-border:#1e3a5f1f;--frn-border-strong:#1e3a5f38;--frn-focus:#14b8a647;--frn-sidebar-bg:#071a33;--frn-topbar-bg:#ffffffe0;--frn-card-bg:#fff;--frn-input-bg:#fff;--frn-shadow-xs:0 1px 2px #0f172a0f;--frn-shadow-sm:0 8px 22px #0f172a12;--frn-shadow-md:0 18px 44px #0f172a1a;--frn-shadow-lg:0 26px 70px #071a332e;--frn-radius-xs:8px;--frn-radius-sm:10px;--frn-radius-md:14px;--frn-radius-lg:18px;--frn-radius-xl:24px;--frn-space-1:4px;--frn-space-2:8px;--frn-space-3:12px;--frn-space-4:16px;--frn-space-5:20px;--frn-space-6:24px;--frn-space-8:32px;--frn-control-height:46px;--frn-header-height:76px;--frn-sidebar-width:292px;--frn-content-max:1480px;--frn-z-topbar:30;--frn-z-sidebar:40;--frn-z-overlay:1000;--frn-transition:.16s ease;--frn-safe-top:env(safe-area-inset-top,0px);--frn-safe-right:env(safe-area-inset-right,0px);--frn-safe-bottom:env(safe-area-inset-bottom,0px);--frn-safe-left:env(safe-area-inset-left,0px);--haccp-blue:var(--frn-blue-700);--haccp-blue-2:var(--frn-navy-800);--haccp-green:var(--frn-green-500);--haccp-green-2:var(--frn-teal-600);--haccp-turquoise:var(--frn-teal-500);--haccp-warning:var(--frn-amber-500);--haccp-danger:var(--frn-red-500);--haccp-bg:var(--frn-bg);--haccp-card:var(--frn-card-bg);--haccp-text:var(--frn-text);--haccp-muted:var(--frn-muted);--haccp-border:var(--frn-border);--haccp-border-strong:var(--frn-border-strong);--haccp-shadow:var(--frn-shadow-md);--haccp-shadow-soft:var(--frn-shadow-sm);--haccp-radius:var(--frn-radius-lg);--haccp-radius-sm:var(--frn-radius-md)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;min-height:100%;font-size:16px}body{background:linear-gradient(180deg, #ffffffb8, #eaf1f8b8), var(--frn-bg);min-height:100vh;color:var(--frn-text);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5}#root{min-height:100vh}::selection{color:var(--frn-text);background:#14b8a647}a{color:var(--frn-blue-600);text-underline-offset:.18em;text-decoration-thickness:.08em}img,svg{max-width:100%}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--frn-focus);outline-offset:2px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}fieldset{border:0;min-width:0;margin:0;padding:0}legend{color:var(--frn-text);font-weight:900}textarea{resize:vertical;width:100%;min-height:112px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#64748b57 padding-box padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-track{background:0 0}.plan-badge,.nav-plan-badge{letter-spacing:0;color:#0f172a;white-space:nowrap;background:#e2e8f0;border-radius:999px;justify-content:center;align-items:center;min-height:22px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.plan-base{color:#1d4ed8;background:#dbeafe}.plan-professional{color:#166534;background:#dcfce7}.plan-enterprise{color:#92400e;background:#fef3c7}.nav-item{justify-content:space-between;align-items:center;gap:8px;display:flex}.nav-item.locked{border:1px solid #facc1559}.nav-plan-badge{min-width:34px;padding:2px 6px;font-size:10px}.upgrade-required-card,.subscription-summary-card{background:#fff;border:1px solid #cbd5e1;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:18px;padding:20px;display:grid;box-shadow:0 10px 24px #0f172a12}.upgrade-required-card h2,.subscription-summary-card h2{margin:6px 0}.upgrade-required-card p{color:#475569;margin:0 0 10px}.subscription-inline,.subscription-facts{flex-wrap:wrap;gap:8px;display:flex}.subscription-facts span{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;min-width:128px;padding:10px 12px}.subscription-facts strong{color:#0f172a;display:block}.plan-feature-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:18px;display:grid}.plan-feature-list span,.plan-limit-meter{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.plan-feature-list strong{margin-bottom:4px;display:block}.feature-on strong{color:#15803d}.feature-off strong{color:#b45309}.plan-limit-meter{gap:8px;min-width:150px;display:grid}.plan-limit-meter>div:first-child{justify-content:space-between;gap:10px;display:flex}.meter-track{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.meter-track span{background:#2563eb;height:100%;display:block}.qr-disabled{opacity:.72;cursor:not-allowed}.login-page{background:linear-gradient(135deg,#08213f,#123d7a);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:24px;width:380px;padding:40px;box-shadow:0 20px 60px #00000040}.logo,.brand-logo{color:#fff;background:#0f766e;justify-content:center;align-items:center;font-weight:700;display:flex}.logo{border-radius:22px;width:76px;height:76px;margin:0 auto 18px;font-size:26px}input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;width:100%;margin-top:14px;padding:14px;font-size:15px}button{cursor:pointer}.login-card button{color:#fff;background:#2563eb;border:none;border-radius:10px;width:100%;margin-top:18px;padding:14px;font-size:16px;font-weight:700}.demo{color:#475569;border-top:1px solid #e2e8f0;flex-direction:column;gap:8px;margin-top:24px;padding-top:18px;font-size:13px;display:flex}.app-layout{min-height:100vh;display:flex}.sidebar{color:#fff;background:#071a33;flex-direction:column;width:280px;padding:24px;display:flex}.brand{align-items:center;gap:12px;margin-bottom:32px;display:flex}.brand-logo{border-radius:14px;width:48px;height:48px}.brand h2{margin:0;font-size:18px}.brand p{color:#94a3b8;margin:4px 0 0;font-size:13px}.nav-item{text-align:left;color:#dbeafe;background:0 0;border:none;border-radius:10px;width:100%;margin-bottom:8px;padding:13px;font-size:15px}.nav-item:hover{background:#123d7a}.user-box{border-top:1px solid #1e3a5f;flex-direction:column;gap:5px;margin-top:auto;padding-top:20px;display:flex}.user-box span{color:#93c5fd;font-size:13px}.main{flex:1;padding:32px}.topbar{justify-content:space-between;align-items:center;display:flex}.logout{color:#fff;background:#ef4444;border:none;border-radius:10px;padding:10px 16px;font-weight:700}.cards{grid-template-columns:repeat(4,1fr);gap:22px;margin-top:28px;display:grid}.card,.panel{background:#fff;border-radius:18px;padding:26px;box-shadow:0 10px 25px #0f172a14}.card span{color:#64748b}.card strong{color:#0f172a;margin-top:14px;font-size:34px;display:block}.dashboard-grid{grid-template-columns:1fr 1fr;gap:22px;margin-top:28px;display:grid}.panel p{color:#94a3b8}.active{background:#123d7a}.form-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0;display:grid}select{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;width:100%;margin-top:14px;padding:14px;font-size:15px}.primary{color:#fff;background:#2563eb;border:none;border-radius:10px;width:auto;margin-bottom:24px;padding:13px 18px;font-weight:700}table{border-collapse:collapse;background:#fff;width:100%;margin-top:18px}th,td{text-align:left;border-bottom:1px solid #e2e8f0;padding:14px}th{color:#64748b;font-size:13px}.ok{color:#16a34a;font-weight:700}.ko{color:#dc2626;font-weight:700}.row{border-bottom:1px solid #e2e8f0;grid-template-columns:1fr auto auto;gap:12px;padding:12px 0;display:grid}.upload-box{background:#f8fafc;border:1px dashed #94a3b8;border-radius:14px;margin:14px 0 20px;padding:18px}.upload-box p{color:#0f766e;margin:10px 0 0;font-weight:700}a{color:#2563eb;font-weight:700;text-decoration:none}.button-grid{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.chart-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;margin-top:22px;padding:22px}.bar-row{grid-template-columns:140px 1fr 50px;align-items:center;gap:14px;margin:18px 0;display:grid}.bar-bg{background:#e2e8f0;border-radius:999px;height:18px;overflow:hidden}.bar-ok{background:#16a34a;height:100%}.bar-ko{background:#dc2626;height:100%}.ingredient-card,.prep-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;margin:18px 0;padding:20px}.prep-card h3{margin-top:0}.signature-box{background:#f8fafc;border:1px dashed #94a3b8;border-radius:14px;margin:16px 0;padding:14px}.signature-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.signature-box canvas{touch-action:none;background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;max-width:420px;height:130px}.mini{color:#0f172a;cursor:pointer;background:#e2e8f0;border:none;border-radius:8px;padding:7px 10px;font-weight:700}.ccp-qr-cell{align-items:center;gap:10px;min-width:220px;display:flex}.ccp-qr-cell>div{gap:4px;display:grid}.ccp-qr-cell small{color:#64748b;overflow-wrap:anywhere;font-size:12px}.notice{border-radius:12px;margin:10px 0;padding:14px;font-weight:700}.notice.red{color:#991b1b;background:#fee2e2}.notice.yellow{color:#92400e;background:#fef3c7}.file-label{display:inline-block;width:auto!important}.file-label input{display:none}.user-avatar{object-fit:cover;border:2px solid #ffffff59;border-radius:50%;width:52px;height:52px;margin-bottom:10px}.placeholder-avatar{color:#fff;background:#2563eb;justify-content:center;align-items:center;font-weight:800;display:flex}.table-avatar{object-fit:cover;vertical-align:middle;border:2px solid #e2e8f0;border-radius:50%;width:42px;height:42px;margin-right:10px}.warn{color:#ca8a04;font-weight:700}.brand-logo-img{object-fit:cover;background:#fff;border-radius:50%;width:70px;height:70px;padding:3px}.login-logo-img{object-fit:cover;background:#fff;border-radius:50%;width:120px;height:120px;margin:0 auto 20px;padding:5px;display:block}:root{--haccp-blue:#071a33;--haccp-blue-2:#0b3b60;--haccp-green:#16834a;--haccp-green-2:#0f766e;--haccp-soft:#f3f8f6}.login-card{border:1px solid #16834a2e}.login-logo-img{object-fit:cover;background:#fff;border-radius:50%;width:120px;height:120px;margin:0 auto 20px;padding:5px;display:block;box-shadow:0 12px 28px #071a332e}.brand-logo-img{object-fit:cover;background:#fff;border-radius:50%;width:72px;height:72px;padding:3px;box-shadow:0 10px 22px #00000038}.sidebar{background:linear-gradient(180deg, var(--haccp-blue), #082744)}.nav-item.active{background:linear-gradient(135deg, #1d4ed8, var(--haccp-green-2))}.card{border-top:4px solid var(--haccp-green)}.panel h2{color:var(--haccp-blue)}.primary{background:linear-gradient(135deg, #2563eb, var(--haccp-green-2))}.qr-button{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;justify-content:center;align-items:center;min-width:42px;padding:7px 10px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.qr-button:hover{background:#d1fae5}.enterprise-qr-button{gap:8px;min-height:44px;padding:7px 11px}.enterprise-qr-button svg{background:#fff;border-radius:8px;width:28px;height:28px;padding:3px}.qr-enterprise-card{border:1px solid var(--haccp-border);background:linear-gradient(135deg, #1e3a5f0f, #14b8a614), var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:22px;grid-template-columns:minmax(220px,320px) minmax(0,1fr);align-items:stretch;gap:22px;margin-bottom:18px;padding:20px;display:grid}.qr-enterprise-visual{border:1px solid var(--haccp-border);background:#f8fafc;border-radius:20px;min-height:260px;overflow:hidden}.qr-enterprise-visual img,.qr-enterprise-placeholder{width:100%;height:100%;min-height:260px}.qr-enterprise-visual img{object-fit:cover;display:block}.qr-enterprise-placeholder{background:radial-gradient(circle at 30% 20%,#14b8a62e,#0000 34%),linear-gradient(135deg,#f8fafc,#e0f2fe);place-items:center;display:grid}.qr-enterprise-main{align-content:center;gap:14px;display:grid}.qr-enterprise-main h2{color:var(--haccp-text);margin:0;font-size:clamp(26px,3vw,40px)}.qr-status-row{color:var(--haccp-muted);flex-wrap:wrap;align-items:center;gap:8px;font-weight:800;display:flex}.status-pill{border-radius:999px;align-items:center;min-height:32px;padding:6px 11px;font-size:13px;font-weight:900;display:inline-flex}.ok-pill{background:var(--haccp-soft-green);color:#15803d;border:1px solid #22c55e47}.warn-pill{background:var(--haccp-soft-warning);color:#b45309;border:1px solid #f59e0b4d}.danger-pill{background:var(--haccp-soft-danger);color:#b91c1c;border:1px solid #ef444447}.neutral-pill{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1}.signature-meta-badge{background:var(--haccp-soft-teal);color:#0f766e;overflow-wrap:anywhere;border:1px solid #0f766e38;border-radius:999px;max-width:100%;margin-top:6px;padding:5px 8px;font-size:11px;font-weight:900;line-height:1.2;display:inline-flex}.archive-prep-btn,.mini.warning{color:#111827;background:#f59e0b;border:none}html[data-theme=dark] .signature-meta-badge{color:#5eead4;background:#14b8a624;border-color:#5eead43d}.qr-detail-grid,.qr-enterprise-grid{gap:12px;display:grid}.qr-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-detail-grid span,.qr-history-row{border:1px solid var(--haccp-border);color:var(--haccp-muted);background:#f8fafcc7;border-radius:14px;justify-content:space-between;gap:12px;padding:11px 12px;display:flex}.qr-detail-grid strong,.qr-history-row strong{color:var(--haccp-text);text-align:right}.qr-enterprise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-info-panel{border:1px solid var(--haccp-border);background:var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:18px;padding:16px}.qr-info-panel h3{margin-top:0}.qr-history-row{align-items:center;margin-top:8px}.privacy-hero{border:1px solid var(--haccp-border);background:linear-gradient(135deg, #1e3a5f14, #14b8a614), var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:22px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:18px;padding:20px;display:grid}.privacy-hero h3{margin:4px 0 8px;font-size:28px}.privacy-hero p{color:var(--haccp-muted);margin:0}.privacy-score-card{text-align:center;min-width:150px;box-shadow:var(--haccp-shadow-soft);background:#fff;border:1px solid #14b8a63d;border-radius:18px;padding:18px}.privacy-score-card strong{color:var(--haccp-blue);font-size:30px;display:block}.privacy-score-card span{color:var(--haccp-muted);font-size:13px;font-weight:800}.privacy-grid,.privacy-treatment-grid,.privacy-mini-dashboard{gap:16px;display:grid}.privacy-mini-dashboard{grid-template-columns:repeat(6,minmax(130px,1fr));margin-bottom:16px}.privacy-mini-dashboard>div{border:1px solid var(--haccp-border);background:var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:16px;padding:14px}.privacy-mini-dashboard span{color:var(--haccp-muted);font-size:12px;font-weight:900;display:block}.privacy-mini-dashboard strong{color:var(--haccp-text);margin-top:6px;font-size:20px;display:block}.gdpr-ready-badge{background:var(--haccp-soft-green)!important;border-color:#22c55e52!important}.privacy-grid{grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr)}.privacy-treatment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.privacy-card,.privacy-treatment-card{border:1px solid var(--haccp-border);background:var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:18px;margin-bottom:16px;padding:18px}.privacy-card h3,.privacy-treatment-card strong{color:var(--haccp-text);margin-top:0}.privacy-card label{color:var(--haccp-muted);margin:12px 0 6px;font-weight:900;display:block}.privacy-card textarea{resize:vertical;width:100%}.privacy-treatment-card{gap:10px;margin:0;display:grid}.privacy-consent-status{gap:8px;margin-bottom:14px;display:grid}.privacy-consent-status p{color:var(--haccp-muted);margin:0}.prep-title-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.signature-box:after{content:"Firma facoltativa";color:#64748b;margin-top:8px;font-size:12px;display:inline-block}.muted{color:#64748b;font-size:14px}.notice,.upload-box,.signature-box,.ingredient-card,.prep-card,.chart-box{border-color:#16834a47}@media (width<=900px){.brand-logo-img{width:58px;height:58px}}.notice{border-left:5px solid var(--haccp-green,#16834a)}.notice.red{border-left-color:#dc2626}.notice.yellow{border-left-color:#ea580c}.panel .muted{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px}.notification-info-card{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:16px;margin:14px 0;padding:14px 16px}.hero-dashboard{color:#fff;background:linear-gradient(135deg,#071a33,#0f766e);border-radius:28px;grid-template-columns:1fr 220px;align-items:center;gap:22px;margin-bottom:24px;padding:34px;display:grid;box-shadow:0 24px 60px #071a332e}.hero-dashboard h2{margin:8px 0 10px;font-size:34px}.hero-dashboard p{color:#dbeafe;max-width:760px}.eyebrow{letter-spacing:.12em;color:#bbf7d0;font-size:12px;font-weight:900}.hero-logo-card{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #fff3;border-radius:24px;padding:18px}.hero-logo-card img{object-fit:cover;background:#fff;border-radius:50%;width:92px;height:92px;margin:0 auto 12px;padding:4px;display:block}.hero-logo-card strong{font-size:34px;display:block}.hero-logo-card span{color:#dbeafe;font-size:14px}.premium-cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:24px;display:grid}.premium-card{background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:22px;position:relative;overflow:hidden;box-shadow:0 18px 42px #0f172a14}.premium-card:after{content:"";opacity:.12;background:currentColor;border-radius:50%;width:110px;height:110px;position:absolute;top:-30px;right:-30px}.premium-icon{background:#f1f5f9;border-radius:14px;place-items:center;width:44px;height:44px;margin-bottom:14px;font-size:22px;display:grid}.premium-card span{color:#64748b;font-weight:700}.premium-card strong{margin:8px 0;font-size:34px;display:block}.premium-card small{color:#64748b}.premium-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.donut-wrap{grid-template-columns:150px 1fr;align-items:center;gap:24px;display:grid}.donut{border-radius:50%;place-items:center;width:142px;height:142px;display:grid;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;width:96px;height:96px;position:absolute}.donut span{z-index:1;color:#071a33;font-size:26px;font-weight:900;position:relative}.alert-row{border-radius:14px;justify-content:space-between;gap:12px;margin:10px 0;padding:13px 14px;font-weight:700;display:flex}.alert-row.danger{color:#991b1b;background:#fee2e2}.alert-row.warning{color:#9a3412;background:#ffedd5}.deadline-dashboard-summary{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0 0 12px;display:grid}.deadline-summary-card{border:1px solid var(--haccp-border);background:#fff;border-radius:8px;gap:3px;padding:12px;display:grid}.deadline-summary-card strong{font-size:24px;line-height:1}.deadline-summary-card span{color:var(--haccp-muted);font-size:12px;font-weight:900}.deadline-summary-card.summary-red{border-left:5px solid #dc2626}.deadline-summary-card.summary-orange{border-left:5px solid #f97316}.deadline-summary-card.summary-yellow{border-left:5px solid #eab308}.deadline-summary-card.summary-green{border-left:5px solid #16a34a}.activity-row{border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:16px;padding:12px 0;display:flex}.activity-row div{gap:4px;display:grid}.activity-row span,.activity-row small{color:#64748b}@media (width<=800px){.hero-dashboard{grid-template-columns:1fr;padding:24px}.hero-dashboard h2{font-size:26px}.donut-wrap{grid-template-columns:1fr}}.delete-prep-btn{color:#fff!important;cursor:pointer!important;background:#dc2626!important;border:none!important;border-radius:10px!important;min-width:180px!important;padding:10px 16px!important;font-weight:800!important;display:inline-block!important}:root{--haccp-blue:#1e3a5f;--haccp-blue-2:#142c49;--haccp-turquoise:#14b8a6;--haccp-green:#22c55e;--haccp-green-2:#16a34a;--haccp-warning:#f59e0b;--haccp-danger:#ef4444;--haccp-bg:#f8fafc;--haccp-card:#fff;--haccp-text:#0f172a;--haccp-muted:#64748b;--haccp-border:#e2e8f0;--haccp-border-strong:#cbd5e1;--haccp-soft-blue:#eff6ff;--haccp-soft-teal:#f0fdfa;--haccp-soft-green:#f0fdf4;--haccp-soft-warning:#fffbeb;--haccp-soft-danger:#fef2f2;--haccp-shadow:0 18px 45px #0f172a14;--haccp-shadow-soft:0 10px 28px #0f172a0f;--haccp-radius:18px;--haccp-radius-sm:12px}*{box-sizing:border-box}html{background:var(--haccp-bg);color:var(--haccp-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{background:radial-gradient(circle at top left, #14b8a614, transparent 34rem), linear-gradient(180deg, #fff 0%, var(--haccp-bg) 34rem);color:var(--haccp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input,select{font:inherit}button,a,input,select,canvas{-webkit-tap-highlight-color:transparent}a{color:var(--haccp-blue);transition:color .16s,background .16s,border-color .16s,transform .16s}a:hover{color:var(--haccp-turquoise)}button{min-height:42px;transition:background .16s,border-color .16s,box-shadow .16s,color .16s,transform .16s}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.68}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible{outline-offset:2px;outline:3px solid #14b8a647}.login-page{background:radial-gradient(circle at 18% 18%, #14b8a638, transparent 28rem), linear-gradient(135deg, var(--haccp-blue-2), var(--haccp-blue));padding:24px}.login-card{border:1px solid #ffffff61;border-radius:22px;width:min(420px,100%);padding:38px;box-shadow:0 28px 70px #0f172a47}.login-card h1{color:var(--haccp-text);letter-spacing:-.02em;margin:4px 0 6px;font-size:30px}.login-card button,.primary,.secondary,.small,.mini,.logout,.qr-button,.delete-prep-btn{min-height:44px}.login-card button,.primary{background:linear-gradient(135deg, var(--haccp-blue), var(--haccp-turquoise));box-shadow:0 12px 26px #1e3a5f2e}.login-card button:hover,.primary:hover{transform:translateY(-1px);box-shadow:0 16px 34px #1e3a5f38}.welcome-splash{z-index:9999;background:linear-gradient(135deg, #08213ffa, #0f766ef0), var(--haccp-blue);color:#fff;text-align:center;place-items:center;min-height:100vh;padding:24px;animation:6s ease-in-out forwards welcomeFade;display:grid;position:fixed;inset:0;overflow:hidden}.welcome-splash:before{content:"";pointer-events:none;border:1px solid #ffffff2e;border-radius:22px;position:absolute;inset:18px}.welcome-splash-content{justify-items:center;gap:12px;width:min(680px,100%);animation:6s ease-in-out forwards welcomeScale;display:grid;position:relative}.welcome-splash-intro,.welcome-splash-main,.welcome-briefing{justify-items:center;display:grid}.welcome-splash-intro{gap:10px;animation:6s ease-in-out forwards welcomeIntro}.welcome-splash-main{gap:8px}.welcome-splash-logo{border-radius:18px;width:112px;height:auto;margin-bottom:6px;box-shadow:0 18px 44px #00000042}.welcome-splash-brand{color:#ffffffc7;letter-spacing:0;text-transform:uppercase;font-size:13px;font-weight:800}.welcome-splash p{color:#ffffffe0;opacity:0;margin:4px 0 0;font-size:24px;font-weight:700;animation:6s ease-in-out forwards welcomeName}.welcome-splash-company{color:#ffffffb8;opacity:0;font-size:15px;font-weight:800;animation:6s ease-in-out forwards welcomeName}.welcome-splash h1{color:#fff;letter-spacing:0;text-shadow:0 16px 38px #00000047;opacity:0;margin:0;font-size:82px;line-height:.98;animation:6s ease-in-out forwards welcomeTitle}.welcome-splash strong{color:#c7fff5;letter-spacing:0;opacity:0;font-size:30px;animation:6s ease-in-out forwards welcomeWork}.welcome-briefing{opacity:0;grid-template-columns:repeat(auto-fit,minmax(190px,max-content));justify-content:center;gap:10px;width:100%;margin-top:18px;animation:6s ease-in-out forwards welcomeBriefing}.welcome-briefing-pill{color:#fff;background:#ffffff1f;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;min-height:40px;padding:9px 14px;font-size:14px;font-weight:900;display:inline-flex;box-shadow:0 14px 34px #00000029}.welcome-briefing-pill.ok{background:#22c55e38;border-color:#86efac8c}.welcome-briefing-pill.warning{background:#f9731640;border-color:#fdba7494}.welcome-briefing-pill.danger{background:#ef444440;border-color:#fca5a599}.welcome-briefing-pill.info{background:#3b82f63d;border-color:#93c5fd99}.app-proprietary-footer{width:100%;color:var(--haccp-muted);justify-content:center;align-items:center;gap:6px;margin:24px 0 0;font-size:12px;font-weight:800;display:flex}.login-page .app-proprietary-footer{color:#ffffffc7;position:fixed;bottom:14px;left:0;right:0}.app-proprietary-footer strong{color:inherit}.software-about-panel,.owner-dashboard-panel{border:1px solid var(--haccp-border);background:#f8fafc;border-radius:8px;gap:14px;margin-top:20px;padding:18px;display:grid}.software-about-panel h3,.owner-dashboard-panel h2{margin:0}.software-about-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.software-about-grid span,.brand-badge-row span{border:1px solid var(--haccp-border);color:var(--haccp-muted);background:#fff;border-radius:999px;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;font-weight:800;display:inline-flex}.brand-badge-row{flex-wrap:wrap;gap:8px;display:flex}.enterprise-qr-button small{font-size:9px;font-weight:900;line-height:1}.compliance-score-hero{border:1px solid var(--haccp-border);background:linear-gradient(135deg,#14b8a61f,#2563eb14);border-radius:8px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:22px;display:flex}.compliance-score-hero h2{margin:4px 0;font-size:54px;line-height:1}.smart-notification{border:1px solid var(--haccp-border);background:#fff;border-left-width:6px;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.smart-notification h3,.smart-notification p{margin:2px 0}.smart-red,.smart-alta{border-left-color:#dc2626}.smart-yellow,.smart-media{border-left-color:#f97316}.smart-green,.smart-bassa{border-left-color:#16a34a}.smart-blue{border-left-color:#2563eb}@media (width<=640px){.welcome-splash{padding:18px}.welcome-splash:before{border-radius:18px;inset:12px}.welcome-splash-logo{width:92px}.welcome-splash p{font-size:19px}.welcome-splash h1{font-size:44px}.welcome-splash strong{font-size:21px}.welcome-splash-company{font-size:13px}.welcome-briefing{grid-template-columns:1fr;gap:8px;margin-top:12px}.welcome-briefing-pill{width:100%;min-height:36px;padding:8px 12px;font-size:13px}.software-about-grid{grid-template-columns:1fr}.compliance-score-hero,.smart-notification{flex-direction:column;align-items:stretch}}@keyframes welcomeFade{0%{opacity:0}10%,90%{opacity:1}to{opacity:0}}@keyframes welcomeScale{0%{opacity:0;transform:scale(.94)}12%,88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.03)}}@keyframes welcomeIntro{0%{opacity:0;transform:translateY(10px)scale(.96)}16%,86%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-4px)scale(1.02)}}@keyframes welcomeName{0%,10%{opacity:0;transform:translateY(8px)}18%,88%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes welcomeTitle{0%,16%{opacity:0;transform:scale(.96)}26%,88%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.03)}}@keyframes welcomeWork{0%,32%{opacity:0;transform:translateY(8px)}44%,88%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes welcomeBriefing{0%,48%{opacity:0;transform:translateY(14px)scale(.98)}58%,88%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-6px)scale(1.01)}}.secondary,.small{border:1px solid var(--haccp-border);background:var(--haccp-card);color:var(--haccp-blue);border-radius:10px;padding:10px 14px;font-weight:800}.secondary:hover,.small:hover,.mini:hover{background:var(--haccp-soft-teal);border-color:#14b8a673}.danger,.danger-btn{background:var(--haccp-danger)!important;color:#fff!important;border-color:var(--haccp-danger)!important}.danger:hover,.danger-btn:hover{background:#dc2626!important}.app-layout{background:var(--haccp-bg)}.sidebar{background:linear-gradient(180deg, #14b8a624, transparent 220px), linear-gradient(180deg, var(--haccp-blue), var(--haccp-blue-2));border-right:1px solid #ffffff14;width:292px;min-width:292px;padding:22px 18px;box-shadow:18px 0 45px #0f172a14}.brand{border-bottom:1px solid #ffffff1a;gap:14px;margin-bottom:22px;padding:8px 6px 18px}.brand h2{color:#fff;letter-spacing:-.01em;font-size:17px;line-height:1.2}.brand p{color:#cbd5e1;line-height:1.35}.brand-logo-img{width:58px;height:58px;box-shadow:0 14px 30px #00000038}.sidebar nav{flex-direction:column;gap:6px;padding-right:4px;display:flex;overflow-y:auto}.sidebar nav::-webkit-scrollbar{width:8px}.sidebar nav::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:999px}.nav-item{color:#e2e8f0;letter-spacing:-.01em;border:1px solid #0000;border-radius:12px;min-height:44px;margin-bottom:0;padding:11px 13px;font-weight:700}.nav-item:hover{color:#fff;background:#ffffff17;border-color:#ffffff1a}.active,.nav-item.active{color:#fff;background:linear-gradient(135deg,#14b8a6f2,#22c55ee0);box-shadow:0 12px 24px #14b8a633}.user-box{border-top:1px solid #ffffff1f;margin-top:18px;padding:18px 8px 0}.user-box strong{color:#fff}.user-box span{color:#cbd5e1}.placeholder-avatar{background:linear-gradient(135deg, var(--haccp-turquoise), var(--haccp-green))}.main{min-width:0;padding:30px}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fafce0;border-bottom:1px solid #e2e8f0d1;margin:-30px -30px 24px;padding:22px 30px;position:sticky;top:0}.topbar h1{color:var(--haccp-text);letter-spacing:-.035em;margin:0;font-size:clamp(25px,2vw,34px)}.topbar-title{min-width:0}.topbar-title p{color:var(--haccp-muted);margin:3px 0 0;font-size:14px}.topbar-kicker,.panel-eyebrow{color:var(--haccp-turquoise);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:900;display:inline-flex}.topbar-actions{flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.role-pill{background:var(--haccp-soft-teal);color:#0f766e;border:1px solid #14b8a647;border-radius:999px;align-items:center;min-height:34px;padding:7px 11px;font-size:12px;font-weight:900;display:inline-flex}.logout{background:var(--haccp-danger);box-shadow:0 10px 22px #ef44442e}.logout:hover{background:#dc2626}.card,.panel,.premium-card{background:var(--haccp-card);border-radius:var(--haccp-radius);box-shadow:var(--haccp-shadow-soft);border:1px solid #e2e8f0eb}.panel h2,.panel h3{color:var(--haccp-text);letter-spacing:-.02em}.panel h2{margin:2px 0 0;font-size:24px}.panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.panel h3{margin-top:24px;margin-bottom:10px}.panel p,.muted,.card span,.premium-card span,.premium-card small,.activity-row span,.activity-row small{color:var(--haccp-muted)}.cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.card{border-top:0;padding:22px}.stat-card{position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(180deg, var(--haccp-turquoise), var(--haccp-green));width:4px;position:absolute;inset:0 auto 0 0}.card strong,.premium-card strong{color:var(--haccp-text);letter-spacing:-.03em}.premium-cards{gap:18px}.premium-card{box-shadow:var(--haccp-shadow-soft);padding:22px}.premium-card:after{opacity:.09}.premium-icon{background:var(--haccp-soft-blue);border:1px solid #e2e8f0c7}.premium-card.blue{color:var(--haccp-blue)}.premium-card.red{color:var(--haccp-danger)}.premium-card.orange{color:var(--haccp-warning)}.premium-card.green{color:var(--haccp-green)}.premium-card.violet{color:#6366f1}.premium-card.teal{color:var(--haccp-turquoise)}.hero-dashboard{background:radial-gradient(circle at 88% 10%, #22c55e47, transparent 19rem), linear-gradient(135deg, var(--haccp-blue), var(--haccp-blue-2) 52%, #0f766e);border-radius:24px;box-shadow:0 22px 56px #1e3a5f33}.hero-dashboard h2{letter-spacing:-.035em}.eyebrow{color:#99f6e4;letter-spacing:.11em}.hero-logo-card{border-color:#ffffff47;box-shadow:inset 0 1px #ffffff24}.page-header{background:radial-gradient(circle at 88% 10%, #22c55e42, transparent 18rem), linear-gradient(135deg, var(--haccp-blue), var(--haccp-blue-2) 52%, #0f766e);color:#fff;border-radius:24px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;margin-bottom:24px;padding:34px;display:grid;box-shadow:0 22px 56px #1e3a5f33}.page-header h2{color:#fff;letter-spacing:-.04em;margin:8px 0 10px;font-size:clamp(28px,3vw,38px);line-height:1.08}.page-header p{color:#dbeafe;max-width:760px;margin:0}.page-header .eyebrow{color:#99f6e4}.page-header-metric{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff3d;border-radius:22px;min-width:190px;padding:20px}.page-header-metric strong{color:#fff;letter-spacing:-.04em;font-size:38px;line-height:1;display:block}.page-header-metric span{color:#dbeafe;margin-top:8px;font-size:14px;font-weight:800;display:block}input,select{min-height:46px;color:var(--haccp-text);border:1px solid var(--haccp-border-strong);background:#fff;border-radius:12px;margin-top:0;padding:12px 14px;box-shadow:0 1px #0f172a08}input::placeholder{color:#94a3b8}input:focus,select:focus{border-color:var(--haccp-turquoise);box-shadow:0 0 0 4px #14b8a61f}.button-grid{align-items:center;gap:10px}.primary,.secondary,.small,.mini,.qr-button{border-radius:11px}.primary{margin-bottom:18px;padding:12px 17px}.mini{border:1px solid var(--haccp-border);color:var(--haccp-text);background:#f1f5f9;padding:8px 12px}.qr-button{background:var(--haccp-soft-teal);color:#0f766e;border-color:#14b8a657;min-width:48px}.qr-button:hover{color:#0f766e;background:#ccfbf1}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}table{border-collapse:separate;border-spacing:0;border:1px solid var(--haccp-border);border-radius:14px;overflow:hidden;box-shadow:0 1px #0f172a08}th,td{border-bottom:1px solid var(--haccp-border);vertical-align:middle}th{color:var(--haccp-muted);letter-spacing:.04em;text-transform:uppercase;background:#f8fafc;font-size:12px;font-weight:900}tbody tr:last-child td{border-bottom:0}.ok{color:var(--haccp-green-2)}.ko{color:var(--haccp-danger)}.warn{color:var(--haccp-warning)}.notice,.upload-box,.signature-box,.ingredient-card,.prep-card,.chart-box,.notification-info-card{border-radius:var(--haccp-radius-sm)}.notice{background:var(--haccp-soft-green);color:#166534;border:1px solid #22c55e38;border-left:5px solid var(--haccp-green)}.notice.red{background:var(--haccp-soft-danger);color:#991b1b;border-color:#ef44443d;border-left-color:var(--haccp-danger)}.notice.yellow{background:var(--haccp-soft-warning);color:#92400e;border-color:#f59e0b47;border-left-color:var(--haccp-warning)}.upload-box,.signature-box,.ingredient-card,.prep-card,.chart-box{border-color:var(--haccp-border);background:#fff;box-shadow:0 1px #0f172a08}.upload-box{background:#fbfdff;border-style:dashed}.upload-box p{color:#0f766e}.signature-box{border-style:dashed}.signature-required{background:#fff7ed;border-color:#f59e0b7a}.signature-status{margin-top:8px}.signature-box canvas{border-color:var(--haccp-border-strong);box-shadow:inset 0 1px 2px #0f172a0d}.prep-title-row{align-items:flex-start}.alert-row{border:1px solid #0000}.alert-row.danger{background:var(--haccp-soft-danger);color:#991b1b;border-color:#ef444438}.alert-row.warning{background:var(--haccp-soft-warning);color:#92400e;border-color:#f59e0b3d}.activity-row{border-bottom-color:var(--haccp-border)}.bar-bg{background:#e5edf6}.bar-ok{background:linear-gradient(90deg, var(--haccp-green), var(--haccp-turquoise))}.bar-ko{background:linear-gradient(90deg, var(--haccp-danger), #fb7185)}.donut:after{background:var(--haccp-card)}.donut span{color:var(--haccp-text)}.delete-prep-btn{background:var(--haccp-danger)!important;box-shadow:0 10px 22px #ef44442e!important}.delete-prep-btn:hover{background:#dc2626!important}@media (width<=1100px){.app-layout{flex-direction:column}.sidebar{width:100%;min-width:0;min-height:auto;padding:16px}.brand{margin-bottom:14px;padding-bottom:14px}.sidebar nav{scroll-snap-type:x proximity;flex-direction:row;padding:2px 2px 10px;overflow:auto hidden}.nav-item{scroll-snap-align:start;width:auto;min-width:max-content}.user-box{display:none}.main{padding:24px}.topbar{margin:-24px -24px 22px;padding:18px 24px}}@media (width<=760px){.login-card{padding:28px 22px}.main{padding:18px}.topbar{flex-direction:column;align-items:flex-start;gap:12px;margin:-18px -18px 18px;padding:16px 18px}.topbar h1{font-size:24px}.logout{padding-inline:12px}.topbar-actions{justify-content:space-between;width:100%}.page-header{border-radius:18px;grid-template-columns:1fr;padding:22px}.page-header-metric{width:100%;min-width:0}.hero-dashboard{border-radius:18px;padding:22px}.premium-grid{grid-template-columns:1fr}.panel{padding:20px}.panel-head{flex-direction:column;gap:10px}.form-grid{grid-template-columns:1fr}.button-grid{align-items:stretch}.button-grid>button,.button-grid>.primary,.button-grid>.secondary,.file-label{width:100%}table{white-space:nowrap;-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}th,td{padding:12px}.row,.activity-row,.alert-row,.prep-title-row{flex-direction:column;grid-template-columns:1fr}.signature-head{flex-direction:column;align-items:flex-start;gap:8px}}@media print{body{background:#fff}.sidebar,.topbar,.button-grid,.logout,.panel,.card,.premium-card{box-shadow:none}}.app-layout{isolation:isolate}.main>.notice:first-child{margin-top:0}.sidebar .brand:after{content:"Enterprise HACCP";color:#99f6e4;letter-spacing:.07em;text-transform:uppercase;background:#14b8a61c;border:1px solid #99f6e438;border-radius:999px;align-self:flex-start;align-items:center;margin-left:auto;padding:5px 8px;font-size:10px;font-weight:900;display:inline-flex}.nav-item{align-items:center;gap:10px;display:flex;position:relative}.nav-item:before{content:"";background:#e2e8f06b;border-radius:999px;flex:none;width:7px;height:7px;transition:background .16s,box-shadow .16s,transform .16s}.nav-item:hover:before{background:#99f6e4db}.nav-item.active:before,.active:before{background:#fff;transform:scale(1.08);box-shadow:0 0 0 4px #ffffff29}.topbar{min-height:88px}.topbar-title h1{max-width:920px}.topbar-actions .logout{min-width:96px}.page-header{position:relative;overflow:hidden}.page-header:after{content:"";pointer-events:none;background:#ffffff14;border-radius:999px;width:230px;height:230px;position:absolute;bottom:-86px;right:-64px}.page-header>*{z-index:1;position:relative}.page-header-metric{box-shadow:inset 0 1px #ffffff24,0 18px 34px #0f172a24}.panel{position:relative}.panel-head+table,.panel-head+.table-wrap{margin-top:0}.panel-actions .primary,.panel-actions .secondary,.panel-actions .small,.panel-actions .mini{margin-bottom:0}.premium-card{min-height:168px}.premium-card:hover,.stat-card:hover{box-shadow:var(--haccp-shadow);transform:translateY(-2px)}.premium-icon{color:currentColor;letter-spacing:-.04em;font-size:13px;font-weight:1000}.premium-card small{max-width:22rem;line-height:1.35;display:block}.primary,.secondary,.small,.mini,.logout,.qr-button,.delete-prep-btn{text-align:center;justify-content:center;align-items:center;gap:8px;line-height:1.2;display:inline-flex}.primary:active,.secondary:active,.small:active,.mini:active,.logout:active,.qr-button:active,.delete-prep-btn:active{transform:translateY(0)}@media (width<=1100px){.sidebar .brand:after{display:none}.topbar{min-height:auto}}@media (width<=760px){.topbar-title p{display:none}.role-pill{text-overflow:ellipsis;white-space:nowrap;max-width:46%;overflow:hidden}.premium-card{min-height:142px}}.panel-body{display:flow-root}.panel-body>:first-child{margin-top:0}.panel-body>:last-child{margin-bottom:0}.panel-body .cards:first-child,.panel-body .premium-cards:first-child,.panel-body .dashboard-grid:first-child,.panel-body>table:first-child,.panel-body>.table-wrap:first-child{margin-top:0}.stat-card{align-items:center;gap:16px;min-height:118px;display:flex}.stat-card .card-icon{background:linear-gradient(135deg, var(--haccp-soft-teal), #fff);color:#0f766e;letter-spacing:-.04em;border:1px solid #14b8a638;border-radius:15px;flex:none;place-items:center;width:48px;height:48px;font-size:13px;font-weight:1000;display:grid}.stat-card span{font-weight:800;line-height:1.3;display:block}.stat-card strong{margin-top:6px;line-height:1}.panel .cards{margin-bottom:18px}.panel .chart-box,.panel .prep-card,.panel .ingredient-card,.panel .upload-box,.panel .signature-box{margin-top:16px}.panel h3+.button-grid,.panel p+.button-grid,.panel .muted+.button-grid{margin-top:12px}.panel .button-grid+h3,.panel table+h3,.panel .table-wrap+h3{margin-top:28px}.onboarding-overlay{z-index:1000;background:#0f172a94;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.onboarding-panel{background:var(--haccp-card);width:min(760px,100%);max-height:min(760px,100vh - 40px);color:var(--haccp-text);border:1px solid var(--haccp-border);box-shadow:var(--haccp-shadow);border-radius:8px;padding:24px;overflow:auto}.onboarding-head h2{letter-spacing:0;margin:6px 0 8px;font-size:clamp(1.35rem,2vw,2rem)}.onboarding-head p,.onboarding-step p,.context-tip p{color:var(--haccp-muted)}.onboarding-progress{grid-template-columns:repeat(7,1fr);gap:8px;margin:20px 0;display:grid}.onboarding-progress button{border:1px solid var(--haccp-border);color:#475569;background:#e2e8f0;border-radius:8px;min-height:34px;font-weight:900;transition:transform .18s,background .18s,color .18s}.onboarding-progress button.done,.onboarding-progress button.active{color:#fff;background:#0f766e;border-color:#0f766e}.onboarding-progress button:hover{transform:translateY(-1px)}.onboarding-progress-meter{background:#e2e8f0;border-radius:999px;height:8px;margin-top:18px;overflow:hidden}.onboarding-progress-meter>div{border-radius:inherit;background:linear-gradient(90deg,#0f766e,#2563eb);height:100%;transition:width .22s}.onboarding-checklist{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.onboarding-checklist span{background:var(--haccp-soft-teal);color:#0f766e;text-align:center;border:1px solid #0f766e2e;border-radius:8px;padding:9px 10px;font-size:12px;font-weight:900}.onboarding-step{border:1px solid var(--haccp-border);background:linear-gradient(135deg, var(--haccp-soft-teal), #ffffffbf);border-radius:8px;padding:18px}.onboarding-step span{color:#0f766e;font-size:.85rem;font-weight:900}.onboarding-step h3{margin:8px 0}.onboarding-step-list{color:var(--haccp-muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:18px 0 0;padding-left:20px;display:grid}.onboarding-step-list li.active{color:var(--haccp-text);font-weight:900}.onboarding-step-list li.done{color:#0f766e}.onboarding-step-list li span{color:#334155;background:#e2e8f0;border-radius:999px;place-items:center;width:22px;height:22px;margin-right:8px;font-size:12px;font-weight:900;display:inline-grid}.onboarding-step-list li.active span,.onboarding-step-list li.done span{color:#fff;background:#0f766e}.onboarding-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.onboarding-actions button{min-width:116px}.context-tip{background:linear-gradient(135deg,#ecfdf5eb,#eff6ffeb);border:1px solid #0e749038;border-left:4px solid #0e7490;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 16px;padding:14px 16px;display:flex}.context-tip strong{margin-bottom:4px;display:block}.context-tip p{margin:0}@media (width<=760px){.stat-card{align-items:flex-start;min-height:auto}.stat-card .card-icon{width:42px;height:42px}.onboarding-panel{padding:18px}.onboarding-step-list{grid-template-columns:1fr}.onboarding-actions{justify-content:stretch}.onboarding-actions button,.context-tip button{width:100%}.context-tip{flex-direction:column}}.main{container-type:inline-size}.panel+.panel,.panel+.cards,.panel+.dashboard-grid,.cards+.panel,.dashboard-grid+.panel{margin-top:22px}.panel-body label,.upload-box,.signature-box{color:var(--haccp-text)}.form-grid input,.form-grid select{margin-top:0}.form-grid input[disabled],.form-grid select[disabled]{color:var(--haccp-muted);border-color:var(--haccp-border);background:#f8fafc}.panel input:not(.file-label input)+input,.panel select+input,.panel input+select{margin-top:0}.panel>input,.panel-body>input{max-width:680px}.panel-body>input+table,.panel-body>input+.table-wrap{margin-top:18px}.button-grid .primary,.button-grid .secondary,.button-grid .small,.button-grid .mini{margin-bottom:0}.button-grid .primary,.button-grid .secondary{min-width:150px}.primary,.secondary,.small,.mini,.qr-button{white-space:normal}.primary.file-label{cursor:pointer}table{font-size:14px}td em{font-style:normal}td .primary,td .secondary,td .small,td .mini,td .qr-button{margin:2px}td a{align-items:center;min-height:36px;display:inline-flex}.row{align-items:center}.row strong,.activity-row strong,.alert-row strong{color:var(--haccp-text)}.alert-row.danger strong,.alert-row.warning strong{color:inherit}.activity-row{align-items:flex-start}.notice+.panel,.notice+.cards,.notice+.dashboard-grid{margin-top:18px}.notification-info-card{box-shadow:0 8px 20px #14b8a614}.ingredient-card,.prep-card{box-shadow:0 8px 24px #0f172a0a}.ingredient-card strong{color:var(--haccp-blue)}.prep-card h3{color:var(--haccp-text);letter-spacing:-.02em}.prep-card table{margin-top:14px}.signature-box:after{display:none}.signature-box canvas{max-width:min(100%,520px);display:block}.signature-status small{align-items:center;min-height:28px;display:inline-flex}.upload-box input[type=file]{background:#fff;border-style:dashed;min-height:auto;padding:10px}.login-card .secondary{width:100%;margin-top:12px}@container (width<=920px){.premium-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.premium-grid{grid-template-columns:1fr}}@media (width<=900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.donut-wrap{grid-template-columns:132px 1fr}.donut{width:124px;height:124px}.donut:after{width:84px;height:84px}}@media (width<=640px){.cards,.premium-cards{grid-template-columns:1fr}.brand{align-items:flex-start}.brand-logo-img{width:48px;height:48px}.nav-item{min-height:42px;padding:10px 12px;font-size:14px}.topbar-actions{gap:8px}.role-pill{max-width:none}.logout{min-width:88px}.panel{border-radius:16px}.panel h2{font-size:21px}.panel h3{font-size:17px}.page-header h2{font-size:26px}.page-header-metric strong{font-size:34px}.donut-wrap{grid-template-columns:1fr}table{font-size:13px}th,td{padding:11px 10px}.button-grid{width:100%}.button-grid .primary,.button-grid .secondary,.button-grid .small,.button-grid .mini{min-width:0}.prep-title-row>.button-grid,.prep-title-row>div:last-child,.prep-title-row button,.prep-title-row .secondary,.prep-title-row .primary{width:100%}.signature-box canvas{height:150px}}@media (width<=420px){.login-page{padding:14px}.login-card{padding:24px 18px}.main{padding:14px}.topbar{margin:-14px -14px 16px;padding:14px}.page-header,.panel,.premium-card,.card{border-radius:14px;padding:18px}.stat-card{gap:12px}.stat-card strong,.premium-card strong{font-size:30px}}.dashboard-control-center .page-header,.dashboard-kpi-grid{margin-bottom:0}.dashboard-kpi-grid .premium-card{min-height:174px}.dashboard-quick-actions{border:1px solid var(--haccp-border);background:linear-gradient(135deg, #14b8a614, transparent 45%), var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:20px;grid-template-columns:minmax(240px,.8fr) minmax(0,1.6fr);align-items:center;gap:18px;padding:22px;display:grid}.dashboard-quick-actions h2{color:var(--haccp-text);letter-spacing:-.03em;margin:3px 0 6px;font-size:23px}.dashboard-quick-actions p{color:var(--haccp-muted);margin:0}.dashboard-action-list{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;display:grid}.dashboard-action{min-height:72px;color:var(--haccp-text);text-align:left;background:#fff;border:1px solid #14b8a63d;border-radius:14px;align-content:center;justify-items:start;gap:4px;padding:13px 14px;display:grid;box-shadow:0 8px 18px #0f172a0a}.dashboard-action:hover{background:var(--haccp-soft-teal);border-color:#14b8a680;transform:translateY(-1px)}.dashboard-action strong{letter-spacing:-.01em;font-size:14px}.dashboard-action span{color:var(--haccp-muted);font-size:12px;font-weight:800}.ai-enterprise-shell{gap:18px;margin-bottom:22px;display:grid}.ai-risk-hero{border:1px solid var(--haccp-border);background:linear-gradient(135deg, #1e3a5f14, #14b8a614), var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:22px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:24px;display:grid}.ai-risk-hero h2{color:var(--haccp-text);margin:4px 0 8px;font-size:32px}.ai-risk-hero p{color:var(--haccp-muted);margin:0}.ai-risk-hero.risk-alto{border-left:6px solid var(--haccp-danger)}.ai-risk-hero.risk-medio{border-left:6px solid var(--haccp-warning)}.ai-risk-hero.risk-basso{border-left:6px solid var(--haccp-green)}.ai-risk-score{background:#fff;border:1px solid #1e3a5f1f;border-radius:999px;align-content:center;place-items:center;width:132px;height:132px;display:grid;box-shadow:inset 0 0 0 10px #14b8a61a}.ai-risk-score strong{color:var(--haccp-blue);font-size:40px;line-height:1}.ai-risk-score span{color:var(--haccp-muted);font-size:12px}.ai-panel,.ai-chart-card,.ai-donut-card{border:1px solid var(--haccp-border);background:var(--haccp-card);box-shadow:var(--haccp-shadow-soft);border-radius:18px}.ai-panel{min-width:0;padding:18px}.ai-panel h3{margin-top:0}.ai-chart-card{padding:10px;overflow:hidden}.ai-chart-card svg{width:100%;height:auto;display:block}.ai-chart-card text{fill:var(--haccp-muted);font-size:10px}.ai-chart-grid{stroke:#64748b2e;stroke-width:1px}.ai-line-path{fill:none;stroke:var(--haccp-teal);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.ai-line-dot{fill:var(--haccp-teal);stroke:#fff;stroke-width:2px}.ai-line-dot.alert{fill:var(--haccp-danger)}.ai-trend-strip,.ai-kpi-list{gap:8px;margin-top:12px;display:grid}.ai-trend-strip span,.ai-kpi-list span{color:var(--haccp-muted);background:#f8fafc;border-radius:12px;justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.ai-trend-strip strong,.ai-kpi-list strong{color:var(--haccp-text)}.ai-bar-chart{gap:11px;display:grid}.ai-bar-row{grid-template-columns:120px minmax(0,1fr) 42px;align-items:center;gap:10px;display:grid}.ai-bar-row span{color:var(--haccp-muted);font-size:13px}.ai-bar-row strong{text-align:right;color:var(--haccp-text)}.ai-bar-track{background:#e2e8f0;border-radius:999px;height:12px;overflow:hidden}.ai-bar-track div{border-radius:inherit;background:linear-gradient(90deg, var(--haccp-blue), var(--haccp-teal));height:100%}.ai-donut-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.ai-donut-card{justify-items:center;gap:10px;padding:14px;display:grid}.ai-donut-svg{width:140px;transform:rotate(-90deg)}.ai-donut-svg text{transform-origin:50%;fill:var(--haccp-text);font-size:5px;font-weight:800;transform:rotate(90deg)}.ai-donut-bg{fill:#0000;stroke:#e2e8f0;stroke-width:5px}.ai-donut-card div{gap:5px;width:100%;display:grid}.ai-donut-card span{color:var(--haccp-muted);align-items:center;gap:7px;font-size:12px;display:flex}.ai-donut-card i{border-radius:999px;width:9px;height:9px;display:inline-block}@media (width<=860px){.ai-risk-hero,.ai-analytics-grid,.ai-donut-grid{grid-template-columns:1fr}.ai-risk-score{justify-self:start;width:112px;height:112px}.ai-bar-row{grid-template-columns:92px minmax(0,1fr) 36px}.ai-trend-strip span,.ai-kpi-list span{display:grid}}.dashboard-main-grid{grid-template-columns:minmax(360px,1fr) minmax(360px,1fr);gap:18px;margin-top:0}.dashboard-main-grid .panel-body{gap:10px;display:grid}.dashboard-empty-state{border:1px dashed var(--haccp-border-strong);background:#fbfdff;border-radius:14px;gap:5px;padding:18px;display:grid}.dashboard-empty-state strong{color:var(--haccp-text)}.dashboard-empty-state span{color:var(--haccp-muted);font-size:14px}.compact-empty-state{padding:14px}.dashboard-monitor-row{border-bottom:1px solid var(--haccp-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 0;display:grid}.dashboard-monitor-row:last-child{border-bottom:0}.dashboard-monitor-row>div{gap:3px;display:grid}.dashboard-monitor-row>div:last-child{text-align:right;justify-items:end}.dashboard-monitor-row strong{color:var(--haccp-text);line-height:1.2}.dashboard-monitor-row span{color:var(--haccp-muted);font-size:13px}.dashboard-monitor-row em{background:#f8fafc;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:4px 9px;font-size:12px;font-style:normal;font-weight:900;display:inline-flex}.dashboard-monitor-row em.ok{background:var(--haccp-soft-green)}.dashboard-monitor-row em.ko{background:var(--haccp-soft-danger)}.dashboard-control-center .alert-row{margin:0}.dashboard-control-center .activity-row{padding:12px 0}@media (width<=1180px){.dashboard-quick-actions,.dashboard-main-grid{grid-template-columns:1fr}}@media (width<=760px){.dashboard-control-center{gap:16px}.dashboard-quick-actions{padding:18px}.dashboard-action-list{grid-template-columns:1fr}.dashboard-action{min-height:62px}.dashboard-monitor-row{grid-template-columns:1fr}.dashboard-monitor-row>div:last-child{text-align:left;justify-items:start}}.equipment-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-bottom:24px;display:grid}.equipment-card{border:1px solid var(--haccp-border);background:linear-gradient(180deg, #f8fafca3, transparent 44%), var(--haccp-card);min-height:430px;box-shadow:var(--haccp-shadow-soft);border-radius:22px;gap:16px;padding:18px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid;overflow:hidden}.equipment-card:hover{box-shadow:var(--haccp-shadow);border-color:#14b8a659;transform:translateY(-1px)}.equipment-visual{min-height:154px;color:var(--haccp-blue);background:radial-gradient(circle at 26% 18%,#ffffffb8,#0000 54px),linear-gradient(#eff6ff,#dbeafe);border:1px solid #1e3a5f1f;border-radius:20px;place-items:center;display:grid;position:relative}.equipment-svg{fill:currentColor;filter:drop-shadow(0 16px 24px #0f172a21);width:min(178px,86%);height:auto}.equipment-svg-screen{fill:#ffffffa3}.equipment-svg-accent{fill:var(--haccp-turquoise)}.equipment-svg-accent-fill{fill:none;stroke:var(--haccp-turquoise);stroke-width:6px;stroke-linecap:round}.equipment-svg-line{fill:none;stroke:var(--haccp-blue);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.equipment-card-freezer .equipment-visual,.equipment-card-refrigerator .equipment-visual{color:#0369a1;background:radial-gradient(circle at 30% 20%,#ffffff80,#0000 28px),linear-gradient(#ecfeff,#dbeafe)}.equipment-card-oven .equipment-visual{color:#c2410c;background:radial-gradient(circle at 30% 20%,#ffffff6b,#0000 28px),linear-gradient(#fff7ed,#fed7aa)}.equipment-card-blast-chiller .equipment-visual{color:#0f766e;background:radial-gradient(circle at 30% 20%,#ffffff85,#0000 28px),linear-gradient(#f0fdfa,#ccfbf1)}.equipment-card-generic .equipment-visual{color:var(--haccp-blue);background:radial-gradient(circle at 30% 20%,#ffffff85,#0000 28px),linear-gradient(#f8fafc,#e2e8f0)}.equipment-content{align-content:start;gap:12px;min-width:0;display:grid}.equipment-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.equipment-type{color:var(--haccp-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900;display:inline-flex}.equipment-card h3{color:var(--haccp-text);letter-spacing:-.03em;margin:4px 0 0;font-size:20px;line-height:1.2}.equipment-status{min-height:28px;color:var(--haccp-muted);white-space:nowrap;background:#f8fafc;border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:12px;font-weight:900;display:inline-flex}.equipment-status-compliant .equipment-status{background:var(--haccp-soft-green);color:#166534;border:1px solid #22c55e42}.equipment-status-non-compliant .equipment-status{background:var(--haccp-soft-danger);color:#991b1b;border:1px solid #ef444442}.equipment-status-missing .equipment-status{background:var(--haccp-soft-warning);color:#92400e;border:1px solid #f59e0b4d}.equipment-live{background:linear-gradient(135deg,#14b8a614,#0000 62%),#fff;border:1px solid #14b8a62e;border-radius:16px;gap:4px;padding:14px;display:grid}.equipment-live span{color:var(--haccp-muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:900}.equipment-live strong{color:var(--haccp-text);letter-spacing:-.05em;font-size:34px;line-height:1}.equipment-meta{grid-template-columns:1fr;gap:10px;display:grid}.equipment-meta span{border:1px solid var(--haccp-border);color:var(--haccp-muted);background:#fbfdff;border-radius:12px;gap:4px;padding:10px;font-size:12px;font-weight:800;display:grid}.equipment-meta strong{color:var(--haccp-text);font-size:15px;line-height:1.25}.equipment-future{display:none}.equipment-inline-entry{gap:10px;padding-top:2px;display:grid}.equipment-field{gap:6px;display:grid}.equipment-field>span{color:var(--haccp-muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:900}.equipment-field input{border-radius:12px;min-height:48px;margin-top:0}.equipment-temp-input{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.equipment-temp-input input{letter-spacing:-.03em;min-height:56px;font-size:24px;font-weight:900}.equipment-temp-input strong{border:1px solid var(--haccp-border);min-width:48px;min-height:56px;color:var(--haccp-blue);background:#f8fafc;border-radius:12px;place-items:center;font-size:18px;display:grid}.equipment-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.equipment-actions .secondary,.equipment-inline-entry .secondary{background:linear-gradient(135deg, var(--haccp-blue), var(--haccp-turquoise));color:#fff;border-color:#14b8a652;width:100%;min-height:52px;font-size:15px;box-shadow:0 14px 28px #1e3a5f29}.equipment-actions .secondary:hover,.equipment-inline-entry .secondary:hover{background:linear-gradient(135deg, var(--haccp-blue-2), var(--haccp-turquoise));color:#fff}.monitoring-entry-panel{background:linear-gradient(135deg,#14b8a614,#0000 60%),#fff;border:1px solid #14b8a62e;border-radius:16px;justify-content:space-between;align-items:flex-start;gap:16px;margin:4px 0 16px;padding:16px;display:flex}.monitoring-entry-panel:focus{outline-offset:3px;outline:3px solid #14b8a638}.monitoring-entry-panel h3{margin:2px 0 4px}.monitoring-entry-panel p{margin:0}@media (width<=760px){.equipment-grid{grid-template-columns:1fr}.equipment-card{min-height:0}.equipment-visual{min-height:136px}.equipment-card-head{flex-direction:column}.equipment-meta{grid-template-columns:1fr}.equipment-actions .secondary{width:100%}}.topbar{min-height:76px;box-shadow:0 10px 24px #0f172a0a}.topbar-kicker{color:var(--haccp-blue)}.topbar-title p{color:#718096}.role-pill{color:var(--haccp-blue);background:#fff;border-color:#1e3a5f1f}.sidebar{box-shadow:12px 0 32px #0f172a0f}.nav-item.active{background:#14b8a62e;border-color:#99f6e42e;box-shadow:inset 3px 0 #14b8a6}.dashboard-control-center .page-header:before{content:"";pointer-events:none;border:1px solid #ffffff1a;border-radius:20px;position:absolute;inset:22px}.dashboard-kpi-grid .premium-card{border-color:#1e3a5f14}.dashboard-kpi-grid .premium-card strong{font-size:38px}.dashboard-kpi-grid .premium-icon{background:#fff;border-radius:16px;width:48px;height:48px;box-shadow:0 10px 20px #0f172a0f}.dashboard-kpi-emoji{flex-shrink:0;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.55rem;line-height:1;display:inline-flex}.premium-card span.dashboard-kpi-emoji{color:initial;font-weight:400}.dashboard-quick-actions{border-color:#14b8a633;box-shadow:0 16px 36px #0f172a0f}.dashboard-action{border-color:#1e3a5f1a;position:relative;overflow:hidden}.dashboard-action:after{content:">";color:var(--haccp-turquoise);font-weight:1000;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.dashboard-action:hover{box-shadow:0 14px 26px #14b8a61f}.dashboard-main-grid .panel{border-color:#1e3a5f14}.equipment-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.equipment-card{border-color:#1e3a5f1a}.equipment-status-compliant{border-top:5px solid var(--haccp-green)}.equipment-status-non-compliant{border-top:5px solid var(--haccp-danger)}.equipment-status-missing{border-top:5px solid var(--haccp-warning)}.equipment-status{min-height:32px;padding-inline:12px}.equipment-live{border-color:#1e3a5f14}.equipment-live strong{font-size:40px}.equipment-temp-input input{border-width:2px;min-height:64px;font-size:28px}.equipment-temp-input input:focus{border-color:var(--haccp-turquoise);box-shadow:0 0 0 5px #14b8a621}.equipment-temp-input strong{background:var(--haccp-blue);border-color:var(--haccp-blue);color:#fff;min-width:56px;min-height:64px}.equipment-inline-entry .secondary{letter-spacing:-.01em;min-height:58px;font-size:16px}.equipment-inline-entry .secondary:after{content:"Firma obbligatoria";background:#ffffff29;border-radius:999px;margin-left:4px;padding:4px 7px;font-size:11px;font-weight:900;display:inline-flex}.monitoring-entry-panel{border-color:#14b8a647;box-shadow:0 12px 26px #14b8a60f}@media (width<=1100px){.sidebar{box-shadow:0 12px 24px #0f172a0f}.nav-item.active{box-shadow:inset 0 -3px #14b8a6}}@media (width<=760px){.topbar{min-height:0}.topbar-actions{align-items:stretch}.topbar-actions .logout,.topbar-actions .role-pill{flex:1;justify-content:center}.dashboard-control-center .page-header{min-height:0}.dashboard-kpi-grid .premium-card strong{font-size:34px}.equipment-grid{grid-template-columns:1fr;gap:16px}.equipment-card{border-radius:18px;padding:16px}.equipment-live strong{font-size:36px}.equipment-inline-entry .secondary:after{display:none}}.module-hero{background:radial-gradient(circle at 94% 12%,#14b8a61f,#0000 180px),linear-gradient(135deg,#fff,#f8fafc);border:1px solid #14b8a633;border-radius:20px;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:20px;padding:20px;display:grid;box-shadow:0 16px 34px #0f172a0f}.module-hero-icon,.module-record-icon{background:linear-gradient(135deg, var(--haccp-blue), var(--haccp-turquoise));color:#fff;letter-spacing:-.05em;border-radius:16px;place-items:center;font-weight:1000;display:grid;box-shadow:0 12px 24px #1e3a5f29}.module-hero-icon{width:64px;height:64px}.module-hero h3{color:var(--haccp-text);margin:3px 0 4px;font-size:24px}.module-hero p{color:var(--haccp-muted);margin:0}.module-hero-stat{border:1px solid var(--haccp-border);background:#fff;border-radius:16px;justify-items:center;gap:2px;min-width:104px;padding:12px 14px;display:grid}.module-hero-stat strong{color:var(--haccp-text);font-size:30px;line-height:1}.module-hero-stat span{color:var(--haccp-muted);text-transform:uppercase;font-size:12px;font-weight:900}.module-entry-card{box-shadow:var(--haccp-shadow-soft);background:#fff;border:1px solid #1e3a5f14;border-radius:18px;margin:16px 0 22px;padding:18px}.module-entry-card>h3{margin-top:0}.module-record-grid,.preparation-card-grid,.label-card-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;margin:14px 0 24px;display:grid}.module-record-card,.preparation-visual-card,.label-preview-card{box-shadow:var(--haccp-shadow-soft);background:#fff;border:1px solid #1e3a5f14}.module-record-card{border-radius:18px;gap:14px;padding:18px;display:grid}.module-record-head{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;display:grid}.module-record-icon{width:48px;height:48px;font-size:12px}.module-record-card h4{color:var(--haccp-text);margin:0;font-size:18px}.module-record-card p{margin:2px 0 0}.module-record-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.module-record-meta span{color:var(--haccp-muted);background:#f8fafc;border-radius:12px;gap:3px;padding:10px;font-size:12px;font-weight:800;display:grid}.module-record-meta strong{color:var(--haccp-text);font-size:13px}.module-record-note{border-left:4px solid var(--haccp-turquoise);background:var(--haccp-soft-teal);color:var(--haccp-blue);border-radius:10px;padding:11px 12px}.module-record-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.module-record-actions .secondary,.module-record-actions .qr-button,.module-record-actions .mini{margin:0}.module-empty-state{border:1px dashed var(--haccp-border-strong);color:var(--haccp-muted);background:#fbfdff;border-radius:16px;padding:18px;font-weight:800}.lots-hero .module-hero-icon,.module-record-pulizie .module-record-icon{background:linear-gradient(135deg, #0f766e, var(--haccp-green))}.labels-hero .module-hero-icon,.module-record-documentazione .module-record-icon{background:linear-gradient(135deg, var(--haccp-blue), #2563eb)}.module-record-ricevimento-merci .module-record-icon{background:linear-gradient(135deg, #92400e, var(--haccp-warning))}.preparation-visual-card,.label-preview-card{border-radius:20px;overflow:hidden}.preparation-visual-card:before,.label-preview-card:before{content:"";background:linear-gradient(90deg, var(--haccp-turquoise), var(--haccp-green));height:8px;display:block}.label-preview-card:before{background:linear-gradient(90deg, var(--haccp-blue), var(--haccp-turquoise))}.label-preview-card .prep-title-row,.preparation-visual-card .prep-title-row{padding-top:6px}.label-preview-card table,.preparation-visual-card table{box-shadow:none}.labels-toolbar{margin-top:0}.lot-entry-card .ingredient-card{background:#fbfdff}@media (width<=860px){.module-hero{grid-template-columns:56px minmax(0,1fr)}.module-hero-stat{grid-column:1/-1;justify-items:start}.module-record-meta{grid-template-columns:1fr}}@media (width<=640px){.module-hero{grid-template-columns:1fr}.module-hero-icon{width:56px;height:56px}.module-record-grid,.preparation-card-grid,.label-card-grid{grid-template-columns:1fr}.module-record-actions>*{width:100%}}.theme-toggle{min-height:38px;color:var(--haccp-blue);background:#fff;border:1px solid #1e3a5f1f;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900}.refresh-app-btn{background:var(--haccp-soft-teal);color:#0f766e;border:1px solid #14b8a642;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:8px 12px;font-size:12px;font-weight:900;display:inline-flex}.refresh-app-btn span{font-size:15px;line-height:1}.theme-toggle:hover,.refresh-app-btn:hover{background:var(--haccp-soft-teal);border-color:#14b8a657}.dashboard-customizer{box-shadow:var(--haccp-shadow-soft);background:#fff;border:1px solid #1e3a5f14;border-radius:18px;grid-template-columns:minmax(220px,.5fr) minmax(0,1.5fr);align-items:center;gap:14px;padding:16px;display:grid}.dashboard-customizer h3{color:var(--haccp-text);margin:2px 0 0}.dashboard-widget-toggles{flex-wrap:wrap;gap:8px;display:flex}.dashboard-app-status{box-shadow:var(--haccp-shadow-soft);background:radial-gradient(circle at 96% 0,#14b8a61a,#0000 180px),#fff;border:1px solid #1e3a5f14;border-radius:18px;grid-template-columns:auto repeat(3,minmax(0,1fr));align-items:center;gap:14px;padding:16px;display:grid}.dashboard-app-status>div:not(.status-dot){gap:3px;display:grid}.dashboard-app-status strong{color:var(--haccp-text)}.dashboard-app-status span{color:var(--haccp-muted);font-size:12px;font-weight:800}.cloud-status-card{border:1px solid var(--haccp-border);border-radius:14px;padding:10px 12px}.cloud-status-card.cloud-ok{background:var(--haccp-soft-green);border-color:#22c55e47}.cloud-status-card.cloud-warning{background:var(--haccp-soft-warning);border-color:#f59e0b4d}.cloud-status-card.cloud-error,.cloud-status-card.cloud-offline{background:var(--haccp-soft-danger);border-color:#ef444447}.status-dot{border-radius:999px;width:14px;height:14px;box-shadow:0 0 0 6px #94a3b821}.status-dot.online{background:var(--haccp-green);box-shadow:0 0 0 6px #22c55e24}.status-dot.offline{background:var(--haccp-danger);box-shadow:0 0 0 6px #ef444424}.widget-toggle{border:1px solid var(--haccp-border);min-height:36px;color:var(--haccp-muted);background:#fff;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:900}.widget-toggle.active{background:var(--haccp-blue);border-color:var(--haccp-blue);color:#fff}.equipment-photo,.prep-real-photo,.module-record-photo{object-fit:cover;width:100%;display:block}.equipment-photo{border-radius:18px;height:100%;min-height:154px}.equipment-qr-badge{min-width:40px;min-height:30px;color:var(--haccp-blue);background:#ffffffdb;border-radius:10px;justify-content:center;align-items:center;padding:5px 8px;font-size:12px;font-weight:1000;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 8px 18px #0f172a1f}.equipment-history{border:1px solid var(--haccp-border);background:#fbfdff;border-radius:14px;gap:8px;padding:12px;display:grid}.equipment-history>span{color:var(--haccp-muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:900}.equipment-history-row{border-top:1px solid var(--haccp-border);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding-top:7px;display:grid}.equipment-history-row strong{color:var(--haccp-text)}.equipment-history-row small{color:var(--haccp-muted)}.equipment-history-row em{text-align:center;border-radius:999px;min-width:34px;padding:4px 7px;font-size:11px;font-style:normal;font-weight:1000}.equipment-history-row em.ok{background:var(--haccp-soft-green);color:#166534}.equipment-history-row em.ko{background:var(--haccp-soft-danger);color:#991b1b}.prep-real-photo{border-bottom:1px solid var(--haccp-border);height:180px}.module-record-photo{border:1px solid var(--haccp-border);border-radius:14px;height:150px}.module-qr-label{background:var(--haccp-soft-teal);color:#0f766e;border:1px solid #14b8a63d;border-radius:999px;align-items:center;min-height:34px;padding:6px 9px;font-size:12px;font-weight:900;display:inline-flex}.qr-button{box-shadow:0 8px 18px #14b8a614}@keyframes haccpFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.panel,.premium-card,.equipment-card,.module-record-card,.prep-card,.dashboard-quick-actions,.dashboard-customizer,.dashboard-app-status{animation:.26s both haccpFadeUp}.nav-item,.dashboard-action,.primary,.secondary,.mini,.small,.qr-button,.widget-toggle,.theme-toggle,.refresh-app-btn{transition:transform .15s,box-shadow .15s,background .15s,border-color .15s,color .15s}.dashboard-action:hover,.primary:hover,.secondary:hover,.mini:hover,.small:hover,.qr-button:hover,.widget-toggle:hover,.theme-toggle:hover,.refresh-app-btn:hover{transform:translateY(-1px)}html[data-theme=dark]{--haccp-bg:#0f172a;--haccp-card:#111827;--haccp-text:#e5eefb;--haccp-muted:#94a3b8;--haccp-border:#94a3b838;--haccp-border-strong:#94a3b857;--haccp-soft-blue:#1e3a5f6b;--haccp-soft-teal:#14b8a621;--haccp-soft-green:#22c55e21;--haccp-soft-warning:#f59e0b24;--haccp-soft-danger:#ef444424;--haccp-shadow:0 18px 45px #00000057;--haccp-shadow-soft:0 10px 28px #0000003d}html[data-theme=dark] body{color:var(--haccp-text);background:radial-gradient(circle at 0 0,#14b8a61f,#0000 34rem),linear-gradient(#111827 0%,#0f172a 34rem)}html[data-theme=dark] .topbar,html[data-theme=dark] .panel,html[data-theme=dark] .card,html[data-theme=dark] .premium-card,html[data-theme=dark] .dashboard-customizer,html[data-theme=dark] .dashboard-app-status,html[data-theme=dark] .dashboard-quick-actions,html[data-theme=dark] .module-entry-card,html[data-theme=dark] .module-hero,html[data-theme=dark] .module-record-card,html[data-theme=dark] .prep-card,html[data-theme=dark] .equipment-card,html[data-theme=dark] .monitoring-entry-panel,html[data-theme=dark] .onboarding-panel,html[data-theme=dark] .login-card{background-color:var(--haccp-card);border-color:var(--haccp-border)}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] table,html[data-theme=dark] .upload-box,html[data-theme=dark] .signature-box,html[data-theme=dark] .chart-box,html[data-theme=dark] .equipment-live,html[data-theme=dark] .equipment-history,html[data-theme=dark] .equipment-meta span,html[data-theme=dark] .module-record-meta span,html[data-theme=dark] .theme-toggle,html[data-theme=dark] .refresh-app-btn,html[data-theme=dark] .widget-toggle,html[data-theme=dark] .role-pill{color:var(--haccp-text);border-color:var(--haccp-border);background:#0b1220}html[data-theme=dark] .onboarding-step,html[data-theme=dark] .context-tip{border-color:var(--haccp-border);background:linear-gradient(135deg,#14b8a61f,#1e3a5f57)}html[data-theme=dark] .onboarding-progress button{color:#cbd5e1;background:#263448}html[data-theme=dark] .onboarding-progress button.done,html[data-theme=dark] .onboarding-progress button.active{color:#042f2e;background:#14b8a6;border-color:#14b8a6}html[data-theme=dark] th,html[data-theme=dark] tbody tr:hover td{background:#121c2e}html[data-theme=dark] .secondary,html[data-theme=dark] .small,html[data-theme=dark] .mini{color:var(--haccp-text);border-color:var(--haccp-border);background:#0b1220}html[data-theme=dark] .widget-toggle.active{background:var(--haccp-turquoise);color:#052f2b}html[data-theme=dark] .page-header,html[data-theme=dark] .hero-dashboard{background:radial-gradient(circle at 88% 10%,#14b8a640,#0000 19rem),linear-gradient(135deg,#0b1220,#111827 52%,#0f766e)}html[data-theme=dark] .equipment-visual,html[data-theme=dark] .premium-icon,html[data-theme=dark] .stat-card .card-icon{background:linear-gradient(#162238,#0b1220)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=760px){.dashboard-customizer{grid-template-columns:1fr}.dashboard-app-status{grid-template-columns:auto minmax(0,1fr)}.dashboard-widget-toggles{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.widget-toggle,.theme-toggle,.refresh-app-btn{width:100%}}@media (width<=520px){.dashboard-app-status{grid-template-columns:1fr}.status-dot{margin-left:6px}}.equipment-section-head{box-shadow:var(--haccp-shadow-soft);background:radial-gradient(circle at 95% 0,#14b8a61f,#0000 180px),linear-gradient(135deg,#fff,#f8fafc);border:1px solid #14b8a638;border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:18px;padding:18px;display:grid}.equipment-section-head h3{color:var(--haccp-text);margin:4px 0;font-size:24px}.equipment-section-head p{color:var(--haccp-muted);margin:0}.equipment-section-stat{border:1px solid var(--haccp-border);background:#fff;border-radius:16px;justify-items:center;gap:3px;min-width:120px;padding:12px 14px;display:grid}.equipment-section-stat strong{color:var(--haccp-text);font-size:32px;line-height:1}.equipment-section-stat span{color:var(--haccp-muted);text-transform:uppercase;font-size:12px;font-weight:900}.equipment-photo{object-position:center;box-shadow:inset 0 0 0 1px #0f172a14}.equipment-photo-tools{background:var(--haccp-soft-teal);border:1px dashed #14b8a64d;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.equipment-photo-tools .secondary,.equipment-photo-tools .mini{min-height:40px;margin:0}.equipment-photo-tools .file-label{width:100%}html[data-theme=dark] .equipment-section-head,html[data-theme=dark] .equipment-section-stat,html[data-theme=dark] .equipment-photo-tools{border-color:var(--haccp-border);background:#0b1220}@media (width<=760px){.equipment-section-head{grid-template-columns:1fr}.equipment-section-stat{justify-items:start}.equipment-photo-tools{grid-template-columns:1fr}}.equipment-register-hero .module-hero-icon{background:linear-gradient(135deg, var(--haccp-blue), var(--haccp-turquoise))}.equipment-registry-form{border-color:#14b8a633}.haccp-equipment-registry-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin:18px 0 22px;display:grid}.haccp-equipment-registry-grid .equipment-card{min-height:0}.equipment-registry-details{border:1px solid var(--haccp-border);background:#fbfdff;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;display:grid}.equipment-registry-details span{color:var(--haccp-muted);gap:3px;font-size:12px;font-weight:800;display:grid}.equipment-registry-details strong{color:var(--haccp-text);text-transform:capitalize;font-size:13px}html[data-theme=dark] .equipment-registry-details{border-color:var(--haccp-border);background:#0b1220}.section-header{border:1px solid var(--haccp-border);background:#fbfdff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:10px 12px;display:flex}.back-button{min-height:40px;color:var(--haccp-blue);cursor:pointer;background:#fff;border:1px solid #0e749040;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:9px 13px;font-weight:900;display:inline-flex}.back-button:hover{border-color:var(--haccp-blue);background:#14b8a614}.page-breadcrumb{color:var(--haccp-muted);text-align:right;overflow-wrap:anywhere;font-size:13px;font-weight:800}html[data-theme=dark] .section-header,html[data-theme=dark] .back-button{border-color:var(--haccp-border);background:#0b1220}.document-folder-panel{border:1px solid var(--haccp-border);background:#fbfdff;border-radius:8px;gap:16px;margin:18px 0 22px;padding:16px;display:grid}.document-folder-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.document-folder-toolbar h3{margin:2px 0 0}.document-folder-create{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.document-folder-create input{min-width:min(260px,100%)}.document-folder-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.document-folder-card{border:1px solid var(--haccp-border);background:#fff;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:12px;min-height:150px;padding:14px;display:grid}.document-folder-card h4{overflow-wrap:anywhere;margin:0 0 4px}.document-folder-card p{color:var(--haccp-muted);margin:0;font-weight:700}.document-folder-icon{width:44px;height:44px;color:var(--haccp-blue);background:#14b8a61f;border-radius:8px;place-items:center;font-size:12px;font-weight:900;display:grid}.deadline-view-switch{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.deadline-calendar{border:1px solid var(--haccp-border);background:#fbfdff;border-radius:8px;gap:14px;margin:14px 0 20px;padding:14px;display:grid}.deadline-calendar-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.deadline-calendar-head h3{text-transform:capitalize;margin:0}.deadline-weekdays,.deadline-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.deadline-weekdays span{color:var(--haccp-muted);text-align:center;font-size:12px;font-weight:900}.deadline-day{border:1px solid var(--haccp-border);min-height:74px;color:var(--haccp-text);text-align:left;cursor:pointer;background:#fff;border-radius:8px;align-content:space-between;padding:8px;display:grid}.deadline-day:disabled{cursor:default;opacity:.35}.deadline-day.selected{border-color:var(--haccp-blue);box-shadow:0 0 0 2px #0e74901f}.deadline-day span{color:#fff;border-radius:999px;justify-self:start;min-width:22px;padding:2px 7px;font-size:12px;font-weight:900}.deadline-day-ok span,.deadline-badge.deadline-ok{background:#16a34a}.deadline-day-warning span,.deadline-badge.deadline-warning{background:#eab308}.deadline-day-reminder span,.deadline-badge.deadline-reminder{background:#f97316}.deadline-day-danger span,.deadline-badge.deadline-danger{background:#dc2626}.deadline-day-done span,.deadline-badge.deadline-done{background:#64748b}.deadline-badge{color:#fff;white-space:nowrap;border-radius:999px;align-items:center;min-height:24px;padding:3px 8px;font-size:12px;font-weight:900;display:inline-flex}.deadline-selected{gap:10px;display:grid}.deadline-selected h3{margin:0}.deadline-selected-row{border:1px solid var(--haccp-border);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.deadline-selected-row div{gap:3px;display:grid}.deadline-selected-row span{color:var(--haccp-muted);font-size:13px;font-weight:700}.deadline-linked-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.document-deadline-toggle{align-items:center;gap:8px;font-weight:900;display:inline-flex}.document-deadline-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:10px 0;display:grid}.ai-document-reader{background:#f8fafc;border:1px solid #0e74902e;border-radius:8px;gap:12px;padding:14px;display:grid}.ai-document-reader-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ai-document-reader-head h3{margin:2px 0 0}.ai-document-preview{gap:10px;display:grid}.ai-document-preview textarea{min-height:82px}.ai-lot-reader{background:#f8fafc;border:1px solid #0e74902e;border-radius:8px;gap:12px;margin-top:12px;padding:14px;display:grid}.ai-lot-reader-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ai-lot-reader-head h4{margin:2px 0 0}.ai-lot-photo-preview{object-fit:contain;border:1px solid var(--haccp-border);background:#fff;border-radius:8px;width:min(260px,100%);max-height:180px}.ai-lot-preview textarea{min-height:78px}.ai-lot-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ingredient-ai-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;display:flex}.ingredient-ai-meta small{color:var(--haccp-muted);font-weight:800}.visually-hidden-file{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}html[data-theme=dark] .document-folder-panel,html[data-theme=dark] .document-folder-card,html[data-theme=dark] .deadline-calendar,html[data-theme=dark] .deadline-day,html[data-theme=dark] .deadline-selected-row,html[data-theme=dark] .deadline-summary-card,html[data-theme=dark] .ai-document-reader,html[data-theme=dark] .ai-lot-reader,html[data-theme=dark] .ai-lot-photo-preview,html[data-theme=dark] .software-about-panel,html[data-theme=dark] .owner-dashboard-panel,html[data-theme=dark] .software-about-grid span,html[data-theme=dark] .brand-badge-row span{border-color:var(--haccp-border);background:#0b1220}html[data-theme=dark] .ai-risk-score,html[data-theme=dark] .ai-trend-strip span,html[data-theme=dark] .ai-kpi-list span,html[data-theme=dark] .ai-bar-track{background:#0b1220}html[data-theme=dark] .ai-line-dot{stroke:#0f172a}html[data-theme=dark] .ai-donut-bg{stroke:#1e293b}html[data-theme=dark] .enterprise-qr-button svg,html[data-theme=dark] .qr-enterprise-visual,html[data-theme=dark] .qr-enterprise-placeholder,html[data-theme=dark] .qr-detail-grid span,html[data-theme=dark] .qr-history-row,html[data-theme=dark] .privacy-score-card{background:#0b1220}@media (width<=760px){.qr-enterprise-card,.qr-enterprise-grid,.qr-detail-grid,.privacy-hero,.privacy-grid,.privacy-treatment-grid,.privacy-mini-dashboard{grid-template-columns:1fr}.qr-enterprise-card{padding:14px}.qr-enterprise-visual,.qr-enterprise-visual img,.qr-enterprise-placeholder{min-height:210px}.qr-detail-grid span,.qr-history-row{display:grid}.haccp-equipment-registry-grid,.equipment-registry-details{grid-template-columns:1fr}.document-folder-panel{padding:12px}.section-header{flex-direction:column;align-items:stretch}.section-header .back-button,.section-header .page-breadcrumb{width:100%}.section-header .page-breadcrumb{text-align:left}.document-folder-toolbar,.document-folder-create{flex-direction:column;align-items:stretch}.document-folder-create input,.document-folder-create button{width:100%}.deadline-weekdays,.deadline-calendar-grid{gap:4px}.deadline-day{min-height:58px;padding:6px}.deadline-selected-row{flex-direction:column;align-items:start}}.main{background:linear-gradient(180deg, #f8fafceb, #f1f5f9b8), var(--haccp-bg,#f4f7fb)}.sidebar{background:linear-gradient(#071a33 0%,#0b2445 54%,#071a33 100%);border-right:1px solid #94a3b829}.brand{border-bottom:1px solid #94a3b829;align-items:flex-start;margin-bottom:18px;padding:4px 0 18px}.brand h2{letter-spacing:0;line-height:1.12}.brand p{color:#99f6e4;margin-top:5px;font-weight:800}.brand-company{color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap;border:1px solid #99f6e42e;border-radius:999px;max-width:190px;margin-top:7px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex;overflow:hidden}.sidebar nav{gap:12px}.nav-item{border:1px solid #0000;border-radius:12px;min-height:42px;margin-bottom:0;padding:10px 12px;font-size:14px}.nav-item.active{background:linear-gradient(90deg,#14b8a63d,#2563eb1f);border-color:#99f6e43d}.user-box{background:#0f172a47;border:1px solid #94a3b829;border-radius:18px;margin-top:18px;padding:16px}.dashboard-control-center .page-header{background:radial-gradient(circle at 86% 12%,#a7f3d042,#0000 18rem),linear-gradient(135deg,#071a33 0%,#123d7a 54%,#0f766e 100%);position:relative;overflow:hidden}.dashboard-control-center .page-header:after{content:"Pronto per controllo ASL/NAS";color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff3d;border-radius:999px;align-items:center;min-height:30px;padding:6px 12px;font-size:12px;font-weight:1000;display:inline-flex;position:absolute;bottom:24px;right:30px}.dashboard-app-status,.dashboard-quick-actions,.dashboard-main-grid .panel,.ai-panel,.module-record-card,.software-about-panel,.subscription-summary-card,.upgrade-required-card{border-color:#1e3a5f1a;border-radius:18px;box-shadow:0 16px 40px #0f172a12}.premium-card{background:linear-gradient(#fffffff5,#f8fafcf0);border:1px solid #1e3a5f1a;border-radius:18px;transition:transform .17s,box-shadow .17s,border-color .17s;position:relative;overflow:hidden}.premium-card:hover,.ai-panel:hover,.module-record-card:hover,.panel:hover{transform:translateY(-2px);box-shadow:0 20px 44px #0f172a1a}.premium-card-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.premium-status-badge{color:currentColor;background:#2563eb1a;border-radius:999px;min-height:24px;padding:4px 9px;font-weight:1000}.premium-card.red .premium-status-badge,.alert-row.danger strong{animation:1.8s ease-in-out infinite haccpCriticalPulse}.premium-card.green .premium-status-badge{background:#16a34a1f}.premium-card.orange .premium-status-badge{background:#f59e0b24}.premium-card.red .premium-status-badge{background:#ef44441f}.premium-card.violet .premium-status-badge{background:#6366f11f}.dashboard-empty-state{text-align:center;background:linear-gradient(#f8fafcf5,#fffffff5);border-radius:18px;align-content:center;justify-items:center;min-height:132px}.empty-state-icon{background:var(--haccp-soft-blue,#dbeafe);width:34px;height:34px;color:var(--haccp-blue,#1e3a5f);border-radius:999px;place-items:center;font-size:22px;font-weight:900;display:grid}.enterprise-feedback{color:#1d4ed8;background:#eff6ff;border:1px solid #2563eb2e;border-radius:999px;align-items:center;gap:10px;width:fit-content;min-height:40px;padding:9px 14px;font-size:13px;font-weight:900;display:inline-flex;box-shadow:0 10px 24px #2563eb14}.enterprise-feedback.loading:before,.cloud-status-card strong:before{content:"";background:currentColor;border-radius:999px;width:9px;height:9px;margin-right:7px;animation:1.2s ease-in-out infinite haccpStatusPulse;display:inline-block}.ai-lot-reader button:disabled,button:disabled{opacity:.68;cursor:wait}.primary,.secondary,.mini,.small,.qr-button{border-radius:12px;min-height:42px}@keyframes haccpCriticalPulse{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 5px #ef44441a}}@keyframes haccpStatusPulse{0%,to{opacity:.38;transform:scale(.88)}50%{opacity:1;transform:scale(1)}}@media (width<=1100px){.sidebar nav{padding-bottom:8px;display:flex;overflow-x:auto}.nav-section{min-width:210px}.brand-company{max-width:260px}}@media (width<=760px){.main{padding:16px}.dashboard-control-center .page-header{padding:24px 20px 64px}.dashboard-control-center .page-header:after{bottom:18px;left:20px;right:auto}.dashboard-kpi-grid .premium-card{min-height:142px}.premium-card strong{font-size:32px}.ai-analytics-grid,.dashboard-main-grid{gap:14px}.form-grid{grid-template-columns:1fr}.primary,.secondary,.mini,.small,.qr-button,.dashboard-action{min-height:48px}}html[data-theme=dark] .premium-card,html[data-theme=dark] .dashboard-empty-state,html[data-theme=dark] .enterprise-feedback{border-color:var(--haccp-border);background:#0b1220}.app-layout{background:linear-gradient(180deg, #ffffffa3, #eaf1f8cc), var(--frn-bg);min-height:100dvh}.main{width:100%;min-width:0;padding:calc(var(--frn-space-6) + var(--frn-safe-top)) calc(var(--frn-space-6) + var(--frn-safe-right)) calc(var(--frn-space-6) + var(--frn-safe-bottom)) calc(var(--frn-space-6) + var(--frn-safe-left))}.main-content{width:min(100%, var(--frn-content-max));margin:0 auto}.sidebar{z-index:var(--frn-z-sidebar);width:var(--frn-sidebar-width);min-width:var(--frn-sidebar-width);height:100dvh;padding:calc(18px + var(--frn-safe-top)) 16px calc(18px + var(--frn-safe-bottom));background:linear-gradient(180deg, #14b8a61a, transparent 280px), var(--frn-sidebar-bg);position:sticky;top:0;box-shadow:14px 0 32px #071a3314}.brand{align-items:center;gap:12px;margin-bottom:16px;padding:6px 6px 16px}.brand-logo-img{object-fit:contain;background:#fff;border-radius:16px;flex:none;width:54px;height:54px;box-shadow:0 12px 28px #00000038}.brand h2{letter-spacing:0;font-size:16px}.brand-company{max-width:170px}.sidebar nav{gap:10px;max-height:calc(100dvh - 220px);padding-right:2px}.nav-section{gap:4px;display:grid}.nav-section-title{color:#cbd5e1c7;letter-spacing:.08em;text-transform:uppercase;padding:8px 10px 3px;font-size:10px;font-weight:900}.nav-item{min-height:42px;transition:background var(--frn-transition), border-color var(--frn-transition), transform var(--frn-transition);border:1px solid #0000;border-radius:12px;padding:8px 10px}.nav-item-main{align-items:center;gap:9px;min-width:0;display:inline-flex}.nav-item-main>span:last-child{text-overflow:ellipsis;overflow:hidden}.nav-icon{color:#99f6e4;background:#ffffff0f;border:1px solid #99f6e424;border-radius:10px;flex:0 0 28px;place-items:center;width:28px;height:28px;font-size:10px;font-weight:1000;display:inline-grid}.nav-item.active .nav-icon{color:var(--frn-teal-600);background:#fffffff0}.nav-item:hover{transform:translate(2px)}.user-box{border-radius:16px;margin-top:auto}.topbar{z-index:var(--frn-z-topbar);min-height:var(--frn-header-height);margin:calc(-1 * var(--frn-space-6) - var(--frn-safe-top)) calc(-1 * var(--frn-space-6) - var(--frn-safe-right)) var(--frn-space-6) calc(-1 * var(--frn-space-6) - var(--frn-safe-left));padding:calc(16px + var(--frn-safe-top)) calc(var(--frn-space-6) + var(--frn-safe-right)) 16px calc(var(--frn-space-6) + var(--frn-safe-left));background:var(--frn-topbar-bg);border-bottom:1px solid var(--frn-border);box-shadow:var(--frn-shadow-xs)}.topbar-title h1,.topbar h1{letter-spacing:0;max-width:820px;font-size:clamp(24px,2.1vw,34px);line-height:1.08}.topbar-title p{max-width:860px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.theme-toggle,.refresh-app-btn,.role-pill,.logout{white-space:nowrap;min-height:40px}.theme-toggle,.refresh-app-btn{align-items:center;gap:7px;display:inline-flex}.logout{min-width:84px}.login-page{min-height:100dvh;padding:calc(24px + var(--frn-safe-top)) calc(16px + var(--frn-safe-right)) calc(24px + var(--frn-safe-bottom)) calc(16px + var(--frn-safe-left));background:linear-gradient(145deg, #071a33f5, #0b2445f0 54%, #0f766ee6), var(--frn-navy-900);flex-direction:column;grid-template-rows:1fr auto;align-content:center;place-items:center;gap:18px;display:grid}.login-page .app-proprietary-footer,.login-page .proprietary-footer{color:#e2e8f0b8;text-align:center;flex:none;width:min(100%,760px);margin-inline:auto}.app-proprietary-footer{overflow-wrap:anywhere;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;display:flex}.login-card{width:min(100%,420px);box-shadow:var(--frn-shadow-lg);text-align:left;background:#fffffff5;border:1px solid #ffffff2e;border-radius:22px;justify-self:center;padding:clamp(24px,5vw,38px)}.login-brand-block{text-align:center;justify-items:center;margin-bottom:22px;display:grid}.login-header,.login-header h1,.login-header p,.app-proprietary-footer{text-align:center}.login-logo-img{object-fit:contain;background:#fff;border-radius:24px;width:92px;height:92px;box-shadow:0 16px 38px #071a3333}.login-card h1{color:var(--frn-text);letter-spacing:0;margin:16px 0 6px;font-size:clamp(28px,7vw,38px);line-height:1.02}.login-card p{color:var(--frn-muted);margin:0}.login-form-stack{gap:8px;display:grid}.field-label,.panel-body label,.document-deadline-toggle,.equipment-field span{color:var(--frn-text-soft);font-size:13px;font-weight:850}.login-card input,input,select,textarea{min-height:var(--frn-control-height);border:1px solid var(--frn-border-strong);background:var(--frn-input-bg);color:var(--frn-text);transition:border-color var(--frn-transition), box-shadow var(--frn-transition), background var(--frn-transition);border-radius:12px;font-size:16px}textarea{padding:12px 14px}.login-card input{margin-top:0}.primary,.secondary,.small,.mini,.danger,.danger-btn,.logout,.theme-toggle,.refresh-app-btn,.qr-button,.login-card button,.ui-button{text-align:center;overflow-wrap:anywhere;max-width:100%;min-height:44px;transition:transform var(--frn-transition), box-shadow var(--frn-transition), border-color var(--frn-transition), background var(--frn-transition), color var(--frn-transition);border-radius:12px;justify-content:center;align-items:center;gap:8px;font-weight:850;line-height:1.15;display:inline-flex}.button-content{justify-content:center;align-items:center;gap:8px;min-width:0;display:inline-flex}.primary,.login-card button:not(.secondary){border:1px solid var(--frn-blue-600);background:linear-gradient(180deg, #2f6df3, var(--frn-blue-600));color:#fff;box-shadow:0 12px 24px #2563eb2e}.secondary,.small,.theme-toggle,.refresh-app-btn{border:1px solid var(--frn-border-strong);background:var(--frn-surface);color:var(--frn-blue-700);box-shadow:var(--frn-shadow-xs)}.mini{min-height:38px;padding:8px 11px}.primary:hover,.secondary:hover,.small:hover,.mini:hover,.login-card button:hover,.theme-toggle:hover,.refresh-app-btn:hover{transform:translateY(-1px)}.primary:active,.secondary:active,.small:active,.mini:active,.login-card button:active,.theme-toggle:active,.refresh-app-btn:active{transform:translateY(0)}.ai-lot-reader button:disabled,button:disabled{opacity:.56;cursor:not-allowed;box-shadow:none;transform:none}.card,.panel,.premium-card,.module-entry-card,.module-record-card,.prep-card,.ingredient-card,.equipment-card,.privacy-card,.subscription-summary-card,.upgrade-required-card,.software-about-panel,.owner-dashboard-panel,.document-folder-panel,.document-folder-card,.dashboard-customizer,.dashboard-app-status,.dashboard-quick-actions,.ai-panel,.monitoring-entry-panel{border:1px solid var(--frn-border);border-radius:var(--frn-radius-lg);background:var(--frn-surface);box-shadow:var(--frn-shadow-sm)}.panel{padding:clamp(18px,2.2vw,26px)}.panel:hover,.premium-card:hover,.ai-panel:hover,.module-record-card:hover{transform:none}.panel-head{border-bottom:1px solid #1e3a5f14;padding-bottom:12px}.panel h2,.panel h3,.section-header h2,.module-hero h2{letter-spacing:0}.panel-eyebrow,.topbar-kicker,.eyebrow{letter-spacing:.07em}.status-pill,.plan-badge,.deadline-badge,.role-pill,.premium-status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-height:26px;font-size:12px;font-weight:900;line-height:1;display:inline-flex}.status-dot{background:currentColor;border-radius:999px;flex:0 0 7px;width:7px;height:7px}.ok-pill,.feature-on,.deadline-done{color:#166534;background:#22c55e1f;border-color:#22c55e3d}.warn-pill,.deadline-warning,.deadline-reminder{color:#92400e;background:#f59e0b24;border-color:#f59e0b47}.danger-pill,.suspended-pill,.deadline-danger{color:#991b1b;background:#ef44441f;border-color:#ef44443d}.info-pill{color:#075985;background:#0ea5e91f;border-color:#0ea5e93d}.readonly-pill,.neutral-pill{color:#475569;border-color:var(--frn-border);background:#f1f5f9}.dashboard-empty-state{border:1px dashed var(--frn-border-strong);border-radius:var(--frn-radius-lg);min-height:148px;color:var(--frn-muted);text-align:center;background:linear-gradient(#f8fafcf0,#fffffff5);align-content:center;place-items:center;gap:12px;padding:24px;display:grid}.compact-empty-state{min-height:104px;padding:16px}.empty-state-icon{width:42px;height:42px;font-size:0}.empty-state-icon svg{stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:20px;height:20px}.empty-state-copy{gap:4px;display:grid}.empty-state-copy strong{color:var(--frn-text);font-size:15px}.empty-state-copy span{max-width:46rem}.page-header,.hero-dashboard,.module-hero,.privacy-hero,.compliance-score-hero{background:linear-gradient(135deg, var(--frn-navy-900), var(--frn-blue-700) 60%, var(--frn-teal-600));box-shadow:var(--frn-shadow-md);border:1px solid #ffffff29}.page-header h2,.hero-dashboard h2,.module-hero h2{letter-spacing:0}.dashboard-kpi-grid,.premium-grid,.cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.dashboard-main-grid,.ai-analytics-grid,.qr-enterprise-grid,.privacy-grid{align-items:start}.premium-card{min-height:154px;padding:20px}.premium-card strong{font-size:clamp(30px,3vw,42px);line-height:1}.premium-icon{border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}.module-entry-card .form-grid,.lot-entry-card .form-grid,.equipment-registry-form .form-grid,.privacy-card .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.upload-box,.signature-box{border-radius:var(--frn-radius-md)}.upload-box input[type=file],.visually-hidden-file{max-width:100%}.file-label{min-height:44px}.signature-box canvas{touch-action:none;max-width:100%}.table-wrap,.panel>table,.panel-body>table,.privacy-card>table{scrollbar-width:thin}table{border-color:var(--frn-border);background:var(--frn-surface);width:100%;max-width:100%}th{color:var(--frn-text-soft);background:#f8fafc;position:relative}td{color:var(--frn-text)}tbody tr:nth-child(2n) td{background:#f8fafc6b}tbody tr:hover td{background:#eff6ffb8}td .button-grid,td .module-record-actions{align-items:center}.notice,.alert-row,.smart-notification,.deadline-selected-row{border-radius:var(--frn-radius-md)}.alert-row,.activity-row,.dashboard-monitor-row{gap:12px}.context-tip{border-radius:var(--frn-radius-md);background:linear-gradient(135deg,#ecfdf5f5,#eff6fff5)}.onboarding-overlay{z-index:var(--frn-z-overlay);padding:calc(18px + var(--frn-safe-top)) calc(14px + var(--frn-safe-right)) calc(18px + var(--frn-safe-bottom)) calc(14px + var(--frn-safe-left));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#071a33a8}.onboarding-panel{border-radius:var(--frn-radius-xl);box-shadow:var(--frn-shadow-lg)}.onboarding-progress button{min-width:0}.software-about-panel,.owner-dashboard-panel{overflow:hidden}.brand-badge-row{gap:8px}.proprietary-footer{width:min(100%, var(--frn-content-max));margin:18px auto 0}html[data-theme=dark]{--frn-bg:#0f172a;--frn-surface:#111827;--frn-surface-soft:#0b1220;--frn-card-bg:#111827;--frn-input-bg:#0b1220;--frn-text:#e5eefb;--frn-text-soft:#cbd5e1;--frn-muted:#94a3b8;--frn-border:#94a3b838;--frn-border-strong:#94a3b857;--frn-topbar-bg:#111827e0}html[data-theme=dark] .main,html[data-theme=dark] .app-layout{background:#0f172a}html[data-theme=dark] .login-card,html[data-theme=dark] .panel,html[data-theme=dark] .card,html[data-theme=dark] .premium-card,html[data-theme=dark] .module-entry-card,html[data-theme=dark] .module-record-card,html[data-theme=dark] .prep-card,html[data-theme=dark] .ingredient-card,html[data-theme=dark] .equipment-card,html[data-theme=dark] .privacy-card{background:var(--frn-surface)}html[data-theme=dark] tbody tr:nth-child(2n) td,html[data-theme=dark] tbody tr:hover td,html[data-theme=dark] th{background:#121c2e}@media (width<=1100px){.app-layout{display:block}.sidebar{width:100%;min-width:0;height:auto;max-height:48dvh;padding:calc(12px + var(--frn-safe-top)) calc(14px + var(--frn-safe-right)) 10px calc(14px + var(--frn-safe-left));position:sticky;top:0}.brand{margin-bottom:10px;padding-bottom:10px}.brand-logo-img{width:46px;height:46px}.sidebar nav{overscroll-behavior-x:contain;scroll-snap-type:x proximity;grid-auto-columns:minmax(210px,260px);grid-auto-flow:column;max-height:none;display:grid;overflow:auto hidden}.nav-section{scroll-snap-align:start}.nav-item:hover{transform:none}.main{padding:calc(var(--frn-space-5) + var(--frn-safe-top)) calc(var(--frn-space-5) + var(--frn-safe-right)) calc(var(--frn-space-5) + var(--frn-safe-bottom)) calc(var(--frn-space-5) + var(--frn-safe-left))}.topbar{margin:calc(-1 * var(--frn-space-5) - var(--frn-safe-top)) calc(-1 * var(--frn-space-5) - var(--frn-safe-right)) var(--frn-space-5) calc(-1 * var(--frn-space-5) - var(--frn-safe-left));padding:calc(14px + var(--frn-safe-top)) calc(var(--frn-space-5) + var(--frn-safe-right)) 14px calc(var(--frn-space-5) + var(--frn-safe-left))}}@media (width<=760px){body{font-size:15px}.main{padding:calc(14px + var(--frn-safe-top)) calc(14px + var(--frn-safe-right)) calc(18px + var(--frn-safe-bottom)) calc(14px + var(--frn-safe-left))}.topbar{min-height:0;margin:calc(-14px - var(--frn-safe-top)) calc(-14px - var(--frn-safe-right)) 14px calc(-14px - var(--frn-safe-left));padding:calc(12px + var(--frn-safe-top)) calc(14px + var(--frn-safe-right)) 12px calc(14px + var(--frn-safe-left));gap:10px}.topbar-title h1,.topbar h1{font-size:clamp(22px,7vw,28px)}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.role-pill{grid-column:1/-1;justify-content:center}.logout{min-width:0}.theme-toggle,.refresh-app-btn,.logout{width:100%}.sidebar{max-height:42dvh}.brand-company{max-width:min(62vw,260px)}.sidebar nav{grid-auto-columns:minmax(190px,72vw)}.page-header,.hero-dashboard,.module-hero,.privacy-hero,.compliance-score-hero{border-radius:var(--frn-radius-lg);padding:22px}.page-header-metric,.module-hero-stat{width:100%}.dashboard-kpi-grid,.premium-grid,.cards,.dashboard-main-grid,.ai-analytics-grid,.privacy-grid,.qr-enterprise-grid,.label-card-grid,.preparation-card-grid,.module-record-grid,.haccp-equipment-registry-grid,.equipment-grid{grid-template-columns:1fr}.panel,.card,.premium-card,.module-entry-card,.module-record-card,.prep-card,.ingredient-card{border-radius:var(--frn-radius-md)}.panel-head,.section-header,.module-record-head,.prep-title-row{align-items:stretch}.form-grid,.module-entry-card .form-grid,.lot-entry-card .form-grid,.equipment-registry-form .form-grid,.privacy-card .form-grid{grid-template-columns:1fr}.button-grid,.module-record-actions,.ai-lot-actions,.equipment-actions{grid-template-columns:1fr;align-items:stretch;display:grid}.button-grid>*,.module-record-actions>*,.ai-lot-actions>*,.equipment-actions>*{width:100%}table{white-space:normal}.panel>table,.panel-body>table,.privacy-card>table,.prep-card table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}th,td{min-width:112px;padding:11px}td:last-child,th:last-child{min-width:132px}.signature-box canvas{min-height:150px}.login-card{width:min(100%,390px)}}@media (width<=430px){.login-page{justify-content:flex-start}.login-card{border-radius:18px;padding:22px 18px}.login-logo-img{width:76px;height:76px}.topbar-actions{grid-template-columns:1fr}.sidebar{max-height:46dvh}.sidebar nav{grid-auto-columns:minmax(176px,82vw)}.nav-icon{flex-basis:26px;width:26px;height:26px}.panel,.premium-card,.module-entry-card,.module-record-card,.prep-card,.ingredient-card{padding:16px}th,td{min-width:104px;padding:10px}}@media print{.main-content{width:100%;max-width:none}.panel:hover,.premium-card:hover,.ai-panel:hover,.module-record-card:hover{box-shadow:none;transform:none}}.dashboard-control-center{gap:18px;display:grid}.dashboard-control-center .page-header{align-items:end;min-height:220px}.dashboard-control-center .page-header:after{content:"Controllo operativo";bottom:22px;right:28px}.dashboard-kpi-grid{gap:14px;display:grid}.dashboard-kpi-grid.premium-cards{margin-top:0}.premium-card{isolation:isolate;align-content:space-between;gap:10px;display:grid}.premium-card:before{content:"";opacity:.72;background:currentColor;width:4px;position:absolute;inset:0 auto 0 0}.premium-card span{color:var(--frn-muted);font-size:13px;font-weight:850}.premium-card small:not(.premium-status-badge){color:var(--frn-muted);font-size:12px}.premium-card-top{min-height:34px}.dashboard-app-status,.dashboard-quick-actions,.dashboard-customizer{padding:18px}.dashboard-app-status{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;display:grid}.cloud-status-card{gap:4px;display:grid}.dashboard-quick-actions{gap:12px;display:grid}.dashboard-action-grid,.dashboard-actions-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.dashboard-action{border:1px solid var(--frn-border);background:var(--frn-surface);min-height:52px;color:var(--frn-text);box-shadow:var(--frn-shadow-xs);border-radius:14px;justify-content:flex-start}.dashboard-action:hover{background:#ecfdf5db;border-color:#14b8a657}.ai-analytics-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:16px;display:grid}.ai-panel{gap:12px;padding:20px;display:grid}.ai-panel h3{margin:0;font-size:18px}.ai-kpi-list,.ai-trend-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.ai-kpi-list span,.ai-trend-strip span{border:1px solid var(--frn-border);background:var(--frn-surface-soft);border-radius:12px;padding:10px}.dashboard-main-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashboard-main-grid .panel{min-height:100%}.dashboard-monitor-row,.activity-row,.alert-row{border:1px solid var(--frn-border);background:var(--frn-surface-soft);border-radius:13px;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:12px;display:grid}.dashboard-monitor-row+.dashboard-monitor-row,.activity-row+.activity-row,.alert-row+.alert-row{margin-top:8px}.deadline-dashboard-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.deadline-summary-card{border:1px solid var(--frn-border);border-radius:14px;min-height:90px;padding:12px}.donut-wrap{align-items:center}.donut{box-shadow:inset 0 0 0 1px var(--frn-border), var(--frn-shadow-xs)}.bar-bg{border-radius:999px;height:10px}@media (width<=980px){.ai-analytics-grid,.dashboard-main-grid{grid-template-columns:1fr}}@media (width<=760px){.dashboard-control-center .page-header{min-height:0;padding-bottom:62px}.dashboard-app-status{grid-template-columns:1fr}.dashboard-monitor-row,.activity-row,.alert-row{grid-template-columns:1fr;align-items:start}}.form-grid>label,.form-grid>.field-group,.equipment-field,.document-deadline-toggle{gap:6px;display:grid}.form-grid input,.form-grid select,.form-grid textarea,.panel input,.panel select,.panel textarea{max-width:100%}.panel input:not([type=checkbox]):not([type=radio]):not([type=file]),.panel select,.panel textarea,.privacy-card input,.privacy-card textarea,.privacy-card select{margin-top:0}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--frn-teal-600)}input[type=file]{background:var(--frn-surface-soft);border-radius:12px;min-height:44px;padding:10px}.upload-box{gap:10px;padding:16px;display:grid}.upload-box p{margin:0;font-weight:850}.primary.file-label,label.secondary,label.mini{justify-content:center;align-items:center;gap:8px;display:inline-flex;position:relative;overflow:hidden}.signature-box{gap:10px;padding:14px;display:grid}.signature-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.signature-box canvas{background:#fff;border-radius:12px;width:100%}.signature-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.signature-meta-badge,.table-wrap,.document-folder-panel,.privacy-card,.owner-dashboard-panel,.software-about-panel{max-width:100%}.table-wrap{border-radius:14px;position:relative}.table-wrap:after,.panel>table:after,.privacy-card>table:after{content:""}.table-scroll-hint{display:none}table{min-width:720px}.panel>table,.panel-body>table,.privacy-card>table,.prep-card table,.label-preview-card table,.preparation-visual-card table{overflow-x:auto}th,td{overflow-wrap:anywhere}td strong,td small,td span,td p{max-width:100%}td .primary,td .secondary,td .mini,td .small,td .danger{margin-bottom:0}td .button-grid{flex-wrap:wrap;gap:6px;display:flex}td .button-grid>button,td .button-grid>a,td .button-grid>label{flex:0 auto;min-width:max-content}td select,td input,td textarea{min-width:160px}.module-record-grid,.preparation-card-grid,.label-card-grid,.haccp-equipment-registry-grid{align-items:stretch}.module-record-card,.prep-card,.label-preview-card,.preparation-visual-card{gap:12px;display:grid}.module-record-head,.prep-title-row,.section-header{gap:12px}.module-record-meta,.equipment-meta,.deadline-badge-row{flex-wrap:wrap;gap:7px;display:flex}.module-record-actions{flex-wrap:wrap;gap:8px;display:flex}.module-record-photo,.prep-real-photo,.ai-lot-photo-preview,.equipment-photo{object-fit:cover}.document-folder-toolbar,.document-folder-create,.deadline-selected-row{gap:10px}@media (width>=900px){.form-grid,.module-entry-card .form-grid,.equipment-registry-form .form-grid,.privacy-card .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.form-grid>*,.panel>input,.panel-body>input{min-width:0}input,select,textarea{font-size:16px}.upload-box,.signature-box{padding:12px}.signature-head,.signature-status{flex-direction:column;align-items:stretch}.signature-head button,.signature-status button{width:100%}.table-wrap,.panel>table,.panel-body>table,.privacy-card>table,.prep-card table,.label-preview-card table,.preparation-visual-card table{background:linear-gradient(90deg, #f5f8fc00, #f5f8fc00), var(--frn-surface);border-radius:14px;display:block;position:relative;overflow-x:auto}.table-wrap:before,.panel>table:before,.panel-body>table:before,.privacy-card>table:before,.prep-card table:before{content:"Scorri per vedere tutte le colonne";border:1px solid var(--frn-border);color:#1d4ed8;background:#eff6ff;border-radius:999px;width:max-content;max-width:calc(100vw - 36px);margin:0 0 8px;padding:6px 10px;font-size:12px;font-weight:850;display:block;position:sticky;left:0}table{min-width:680px}.module-record-actions,td .button-grid{grid-template-columns:1fr;align-items:stretch;display:grid}td .button-grid>button,td .button-grid>a,td .button-grid>label{width:100%;min-width:0}td select,td input,td textarea{min-width:180px}}@media (width<=390px){table{min-width:620px}.signature-box canvas{min-height:132px}}.module-hero{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:18px;padding:24px;display:grid}.module-hero-icon{color:#fff;background:#ffffff1f;border:1px solid #ffffff3d;border-radius:18px;place-items:center;width:58px;height:58px;font-size:14px;font-weight:1000;display:grid}.module-hero-stat{text-align:center;background:#ffffff1f;border:1px solid #ffffff38;border-radius:18px;min-width:132px;padding:14px}.module-hero-stat strong{color:#fff;font-size:32px;line-height:1;display:block}.module-entry-card{margin:16px 0;padding:clamp(16px,2vw,22px)}.module-record-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.module-record-card{padding:18px}.module-record-icon{width:38px;height:38px;color:var(--frn-teal-600);background:#14b8a61f;border-radius:14px;place-items:center;font-size:12px;font-weight:1000;display:inline-grid}.module-record-note,.module-record-card p,.prep-card p{color:var(--frn-muted)}.module-qr-label,.equipment-qr-badge{color:var(--frn-teal-600);font-size:12px;font-weight:900}.equipment-section-head{border:1px solid var(--frn-border);border-radius:var(--frn-radius-lg);background:var(--frn-surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin:8px 0 16px;padding:18px;display:grid}.equipment-grid,.haccp-equipment-registry-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.equipment-card{overflow:hidden}.equipment-visual{border-radius:16px}.equipment-inline-entry,.equipment-photo-tools,.equipment-registry-details{border-radius:14px}.preparation-card-grid,.label-card-grid{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px;display:grid}.prep-card{padding:18px}.prep-title-row{justify-content:space-between;align-items:flex-start;display:flex}.ingredient-card,.ai-lot-reader,.ai-lot-preview,.document-folder-card,.document-folder-panel,.deadline-calendar,.deadline-selected-row{border:1px solid var(--frn-border);border-radius:var(--frn-radius-md);background:var(--frn-surface-soft)}.ingredient-card,.ai-lot-reader,.ai-lot-preview,.document-folder-card{padding:14px}.document-folder-panel{padding:16px}.document-folder-toolbar,.document-folder-create{flex-wrap:wrap;align-items:center;display:flex}.deadline-calendar{padding:14px}.deadline-day{border-radius:10px}.deadline-day:not(:disabled):hover{border-color:#14b8a657}.owner-dashboard-panel{gap:16px;padding:20px;display:grid}.manual-billing-panel{-webkit-overflow-scrolling:touch;overflow-x:auto}.manual-billing-table{table-layout:fixed;min-width:1180px}.manual-billing-table th,.manual-billing-table td{overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;vertical-align:top;white-space:normal}.manual-billing-table th:first-child,.manual-billing-table td:first-child{width:190px}.manual-billing-table th:nth-child(2),.manual-billing-table td:nth-child(2),.manual-billing-table th:nth-child(3),.manual-billing-table td:nth-child(3){width:130px}.manual-billing-table th:nth-child(4),.manual-billing-table td:nth-child(4){width:165px}.manual-billing-table th:nth-child(5),.manual-billing-table td:nth-child(5),.manual-billing-table th:nth-child(6),.manual-billing-table td:nth-child(6){width:170px}.manual-billing-table th:nth-child(7),.manual-billing-table td:nth-child(7){width:220px}.manual-billing-table th:nth-child(8),.manual-billing-table td:nth-child(8){width:310px}.manual-billing-table td strong,.manual-billing-table td small{overflow-wrap:break-word;word-break:normal}.manual-billing-table input,.manual-billing-table select,.manual-billing-table textarea{width:100%;min-width:0;margin:0}.manual-billing-table textarea{resize:vertical;min-height:92px}.manual-billing-table .button-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;display:grid}.manual-billing-table .button-grid>button{white-space:normal;width:100%;min-width:0;margin:0;padding-inline:10px}.manual-billing-table .mini.danger{grid-column:span 2}.software-about-grid,.subscription-facts,.privacy-treatment-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.software-about-grid span,.subscription-facts span,.privacy-treatment-card,.privacy-consent-status{border:1px solid var(--frn-border);background:var(--frn-surface-soft);border-radius:14px;padding:12px}.privacy-hero{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-bottom:18px;padding:24px;display:grid}.privacy-score-card{border-radius:18px;min-width:180px}.privacy-card{padding:18px}.backup-history-table,.audit-log-table{width:100%}.upgrade-required-card,.subscription-summary-card{border-radius:var(--frn-radius-lg)}.plan-feature-list span,.plan-limit-meter{border-radius:14px}.danger,.danger-btn,.delete-prep-btn,.archive-prep-btn{min-height:42px}.danger,.danger-btn,.delete-prep-btn{box-shadow:0 10px 22px #ef444429!important}.archive-prep-btn,.mini.warning{color:#92400e!important;background:#f59e0b24!important;border-color:#f59e0b47!important}.smart-notification-list{gap:10px;display:grid}.smart-notification{padding:14px}.plan-limit-meter .meter-track{height:9px}@media (width<=760px){.module-hero,.privacy-hero,.equipment-section-head{grid-template-columns:1fr;align-items:stretch}.module-hero-icon{width:48px;height:48px}.module-record-grid,.equipment-grid,.haccp-equipment-registry-grid,.preparation-card-grid,.label-card-grid{grid-template-columns:1fr}.document-folder-toolbar,.document-folder-create{grid-template-columns:1fr;display:grid}.privacy-score-card,.module-hero-stat{min-width:0}}.ai-assistant-shell,.ai-assistant-page,.ai-haccp-page,.inspector-report,.inspector-summary,.asl-report-page{gap:16px;display:grid}.ai-risk-grid,.ai-priority-grid,.ai-suggestion-grid,.inspector-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.ai-risk-card,.ai-priority-card,.ai-suggestion-card,.inspector-summary-card{border:1px solid var(--frn-border);border-radius:var(--frn-radius-md);background:var(--frn-surface);box-shadow:var(--frn-shadow-xs);padding:14px}.ai-risk-score{min-width:58px;min-height:58px;color:var(--frn-teal-600);background:#14b8a61f;border-radius:18px;place-items:center;font-weight:1000;display:inline-grid}.ai-panel textarea,.ai-assistant-page textarea,textarea[placeholder*=AI],textarea[placeholder*=Domanda]{min-height:140px;line-height:1.55}.ai-document-reader,.ai-lot-reader{gap:12px;display:grid}.ai-lot-reader-head,.ai-document-reader-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ai-lot-preview{gap:12px;display:grid}.ai-lot-photo-preview{border-radius:14px;width:100%;max-height:260px}.ingredient-ai-meta{flex-wrap:wrap;gap:8px;display:flex}.read-only-banner,.inspector-readonly,.notice.readonly{border-left-color:var(--frn-info-500);color:#075985;background:#0ea5e91a}.compliance-score-hero{color:#fff;gap:14px;padding:24px;display:grid}.compliance-score-hero .notice,.module-hero .notice,.page-header .notice{color:var(--frn-text)}.global-search-results,.smart-notification-list,.ai-result-list{gap:10px;display:grid}.enterprise-feedback,.notice{line-height:1.45}.enterprise-feedback.loading{color:#075985;background:#0ea5e91a;border-color:#0ea5e93d}.onboarding-panel{width:min(780px,100%);max-height:min(820px, calc(100dvh - 32px - var(--frn-safe-top) - var(--frn-safe-bottom)));gap:18px;padding:clamp(18px,3vw,28px);display:grid}.onboarding-head{gap:8px;display:grid}.onboarding-progress{grid-template-columns:repeat(7,minmax(28px,1fr))}.onboarding-progress button{border-radius:999px}.onboarding-step{border-radius:var(--frn-radius-lg)}.onboarding-step-list{border-top:1px solid var(--frn-border);padding-top:16px}.onboarding-actions{background:linear-gradient(180deg, #fff0, var(--frn-surface) 28%);margin:0 -4px -4px;padding-top:12px;position:sticky;bottom:-1px}html[data-theme=dark] .onboarding-actions{background:linear-gradient(180deg, #11182700, var(--frn-surface) 28%)}.context-tip{align-items:center}.context-tip button{flex:none}@media (width<=760px){.ai-lot-reader-head,.ai-document-reader-head,.context-tip{flex-direction:column;align-items:stretch}.onboarding-progress{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.onboarding-progress button{min-height:32px;padding:4px;font-size:12px}.onboarding-checklist{grid-template-columns:1fr}.onboarding-actions{grid-template-columns:1fr;display:grid}}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--frn-focus);outline-offset:2px}.nav-item:focus-visible,.primary:focus-visible,.secondary:focus-visible,.mini:focus-visible,.small:focus-visible,.logout:focus-visible,.qr-button:focus-visible{box-shadow:0 0 0 4px var(--frn-focus)}.nav-item[aria-current=page]{font-weight:950}.visually-hidden,.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.muted{color:var(--frn-muted)!important}.ok,.ko,.warn{align-items:center;gap:6px;display:inline-flex}.ok:before,.ko:before,.warn:before{content:"";background:currentColor;border-radius:999px;width:7px;height:7px}button[aria-label],.qr-button,.theme-toggle,.refresh-app-btn{position:relative}.topbar-title,.brand,.panel-head,.module-record-head,.prep-title-row{min-width:0}.topbar-title h1,.topbar-title p,.brand h2,.brand p,.panel h2,.panel h3,.module-record-card h3,.prep-card h3{overflow-wrap:anywhere}.page-header p,.module-hero p,.privacy-hero p,.panel p{max-width:72ch}.button-grid{flex-wrap:wrap}@media (width>=1440px){.main-content{--frn-content-max:1520px}}@media (width<=1024px){.main-content{width:100%}.topbar-title h1,.topbar h1{max-width:100%}}@media (width<=768px){.page-header h2,.module-hero h2,.hero-dashboard h2{font-size:clamp(25px,8vw,32px)}.premium-card strong{font-size:clamp(28px,10vw,36px)}}@media (width<=430px){.page-header,.hero-dashboard,.module-hero,.privacy-hero,.compliance-score-hero{padding:18px}.page-header h2,.module-hero h2,.hero-dashboard h2{font-size:clamp(24px,9vw,30px)}.topbar-kicker,.panel-eyebrow,.eyebrow{font-size:10px}.premium-card{min-height:128px}.dashboard-action,.primary,.secondary,.mini,.small,.qr-button{min-height:48px}}@media (width<=375px){.main{padding-left:calc(12px + var(--frn-safe-left));padding-right:calc(12px + var(--frn-safe-right))}.topbar{margin-left:calc(-12px - var(--frn-safe-left));margin-right:calc(-12px - var(--frn-safe-right));padding-left:calc(12px + var(--frn-safe-left));padding-right:calc(12px + var(--frn-safe-right))}.panel,.premium-card,.module-entry-card,.module-record-card,.prep-card,.ingredient-card,.privacy-card{padding:14px}.brand h2{font-size:15px}.brand p,.brand-company{font-size:10px}}@media (width<=320px){.login-card{padding:18px 14px}.login-card h1{font-size:27px}.sidebar nav{grid-auto-columns:minmax(164px,86vw)}.nav-item{padding:8px}.nav-item-main{gap:7px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.premium-card.red .premium-status-badge,.alert-row.danger strong,.enterprise-feedback.loading:before,.cloud-status-card strong:before{animation:none!important}}.signature-box canvas,canvas.signature-canvas{border-style:solid;height:auto;display:block}.qr-button,.enterprise-qr-button,.ccp-qr-cell,.qr-enterprise-card,.qr-enterprise-visual,.qr-detail-grid,.qr-history-row{contain:layout style}.qr-button svg,.enterprise-qr-button svg,.ccp-qr-cell svg,.qr-enterprise-visual svg{flex:none}.qr-enterprise-visual img,.qr-enterprise-placeholder,.ccp-qr-cell img{image-rendering:auto}.label-preview-card table,.preparation-visual-card table,.prep-card table{contain:layout}.label-preview-card .qr-button,.preparation-visual-card .qr-button{contain:none}@media print{html,body{background:#fff!important}body{color:#111827!important}.app-layout,.main,.main-content{background:#fff!important;margin:0!important;padding:0!important;display:block!important}.sidebar,.topbar,.context-tip,.dashboard-customizer,.button-grid,.module-record-actions,.topbar-actions,.logout,.theme-toggle,.refresh-app-btn{display:none!important}.panel,.card,.premium-card,.module-entry-card,.module-record-card,.prep-card,.ingredient-card,.privacy-card{break-inside:avoid;box-shadow:none!important;background:#fff!important;border-color:#d1d5db!important}table{border-color:#d1d5db!important;min-width:0!important}th,td{color:#111827!important;background:#fff!important}.signature-box canvas{max-width:100%!important}.qr-button,.enterprise-qr-button{color:#111827!important;background:#fff!important;border-color:#d1d5db!important}.table-wrap:before,.panel>table:before,.panel-body>table:before,.privacy-card>table:before,.prep-card table:before{content:none!important;display:none!important}}.primary,.secondary,.mini,.small,.qr-button,.dashboard-action,.nav-item{-webkit-tap-highlight-color:transparent}.primary:not(:disabled):active,.secondary:not(:disabled):active,.mini:not(:disabled):active,.small:not(:disabled):active,.qr-button:not(:disabled):active,.dashboard-action:not(:disabled):active{filter:saturate(1.08)}.panel,.premium-card,.module-record-card,.prep-card,.equipment-card,.privacy-card,.ai-panel{transition:border-color var(--frn-transition), box-shadow var(--frn-transition), background var(--frn-transition)}.panel:hover,.premium-card:hover,.module-record-card:hover,.prep-card:hover,.equipment-card:hover,.privacy-card:hover,.ai-panel:hover{border-color:#14b8a633}.notice strong,.alert-row strong,.smart-notification strong{color:inherit}.notice p:last-child,.alert-row p:last-child,.smart-notification p:last-child{margin-bottom:0}.plan-badge,.nav-plan-badge,.deadline-badge,.status-pill{border:1px solid;border-color:color-mix(in srgb, currentColor 24%, transparent)}.equipment-live,.equipment-history,.equipment-meta span,.module-record-meta span,.deadline-linked-actions,.ai-bar-track{border-radius:12px}.ai-line-svg,.ai-donut-svg,.equipment-svg{overflow:visible}.ai-line-dot{filter:drop-shadow(0 2px 4px #0f172a29)}.loading,.cloud-status-card strong,.enterprise-feedback.loading{text-wrap:balance}html[data-theme=dark] .notice{color:#bbf7d0;background:#22c55e1f}html[data-theme=dark] .notice.yellow{color:#fde68a;background:#f59e0b24}html[data-theme=dark] .notice.red{color:#fecaca;background:#ef444424}html[data-theme=dark] .dashboard-empty-state,html[data-theme=dark] .ai-kpi-list span,html[data-theme=dark] .ai-trend-strip span,html[data-theme=dark] .software-about-grid span,html[data-theme=dark] .subscription-facts span,html[data-theme=dark] .privacy-treatment-card,html[data-theme=dark] .privacy-consent-status,html[data-theme=dark] .ingredient-card,html[data-theme=dark] .ai-lot-reader,html[data-theme=dark] .ai-lot-preview,html[data-theme=dark] .document-folder-card,html[data-theme=dark] .document-folder-panel,html[data-theme=dark] .deadline-calendar,html[data-theme=dark] .deadline-selected-row,html[data-theme=dark] .dashboard-monitor-row,html[data-theme=dark] .activity-row,html[data-theme=dark] .alert-row{border-color:var(--frn-border);background:#0b1220}html[data-theme=dark] .secondary,html[data-theme=dark] .small,html[data-theme=dark] .mini,html[data-theme=dark] .theme-toggle,html[data-theme=dark] .refresh-app-btn{color:var(--frn-text);background:#0b1220}html[data-theme=dark] .primary{background:linear-gradient(#2563eb,#1d4ed8)}.ui-emoji{vertical-align:-.08em;flex:none;justify-content:center;align-items:center;width:1.35em;min-width:1.35em;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:1.05em;line-height:1;display:inline-flex}.ui-emoji--nav{width:28px;min-width:28px;height:28px;font-size:16px;line-height:1}.ui-emoji--header{width:1.45em;min-width:1.45em;font-size:.92em}.ui-emoji--action{width:1.25em;min-width:1.25em;font-size:1.05em}.ui-emoji--empty{width:42px;min-width:42px;height:42px;font-size:22px}.nav-icon.ui-emoji{font-weight:400;display:inline-flex}.nav-item.active .nav-icon.ui-emoji{color:inherit}.page-header h2{align-items:center;gap:10px;display:flex}.page-header h2>span:last-child{min-width:0}.dashboard-action strong,.button-grid .secondary{align-items:center;display:inline-flex}.dashboard-action strong{gap:8px}.dashboard-action strong span:not(.ui-emoji){color:inherit;font:inherit}.button-grid .secondary{justify-content:center;gap:8px}.button-grid .secondary span:not(.ui-emoji){min-width:0}.empty-state-icon .ui-emoji{color:inherit}@media (width<=760px){.ui-emoji--nav{width:26px;min-width:26px;height:26px;font-size:15px}.page-header h2{gap:8px}}@media print{.ui-emoji{display:none!important}}.dashboard-control-center .page-header.compliance-widget{isolation:isolate;grid-template-columns:minmax(0,1fr) minmax(190px,auto);align-items:center;gap:20px;min-height:220px;padding:34px;position:relative;overflow:hidden}.dashboard-control-center .page-header.compliance-widget:before,.dashboard-control-center .page-header.compliance-widget:after{pointer-events:none;z-index:0}.dashboard-control-center .page-header.compliance-widget:before{inset:22px}.dashboard-control-center .page-header.compliance-widget:after{content:"";-webkit-backdrop-filter:none;backdrop-filter:none;background:#ffffff12;border:0;border-radius:999px;width:180px;height:180px;min-height:0;padding:0;position:absolute;bottom:-58px;right:-42px}.compliance-widget .page-header-content,.compliance-widget .page-header-metric{z-index:2;position:relative}.compliance-widget .page-header-content{justify-items:start;min-width:0;display:grid}.compliance-widget .page-header-metric{min-width:190px}.page-header-caption{color:#fff;overflow-wrap:anywhere;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #ffffff3d;border-radius:999px;align-items:center;width:fit-content;max-width:100%;min-height:30px;margin-top:16px;padding:6px 12px;font-size:12px;font-weight:1000;line-height:1.2;display:inline-flex}@media (width<=640px){.dashboard-control-center .page-header.compliance-widget{grid-template-columns:1fr;min-height:0;padding:24px 20px}.dashboard-control-center .page-header.compliance-widget:after{opacity:.72;width:150px;height:150px;bottom:-64px;right:-54px}.compliance-widget .page-header-metric{width:100%;min-width:0}}@supports not (color:color-mix(in srgb, red, white)){.plan-badge,.nav-plan-badge,.deadline-badge,.status-pill{border-color:var(--frn-border)}}:root{--glass-bg:#ffffffad;--glass-bg-strong:#ffffffd6;--glass-bg-soft:#ffffff7a;--glass-dark-bg:#05182fc2;--glass-dark-bg-strong:#041224e6;--glass-border:#ffffff94;--glass-border-soft:#94a3b83d;--glass-highlight:#ffffffc7;--glass-shadow:0 18px 50px #0f172a1f, 0 2px 10px #0f172a0f;--glass-shadow-floating:0 24px 70px #08193233, 0 4px 14px #0819321a;--glass-blur:22px;--glass-blur-soft:14px;--glass-saturate:145%;--glass-transition:.18s ease}body{background:radial-gradient(circle at 8% 4%,#14b8a621,#0000 26rem),radial-gradient(circle at 96% 10%,#2563eb1f,#0000 30rem),linear-gradient(#f7fbff 0%,#edf5fb 48%,#f6fafc 100%)}.app-layout{isolation:isolate;position:relative;overflow-x:clip}.app-layout:before,.app-layout:after{content:"";z-index:-1;pointer-events:none;filter:blur(18px);border-radius:999px;position:fixed}.app-layout:before{background:radial-gradient(circle,#14b8a629,#0000 66%);width:min(44vw,620px);height:min(44vw,620px);top:8vh;left:max(-160px,-10vw)}.app-layout:after{background:radial-gradient(circle,#2563eb21,#0000 68%);width:min(38vw,540px);height:min(38vw,540px);top:18vh;right:max(-180px,-12vw)}.sidebar{box-shadow:var(--glass-shadow-floating);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));background:linear-gradient(#ffffff1f,#0000 84px),linear-gradient(160deg,#06203bf0,#073246d1 58%,#064b46c2);border-right:1px solid #ffffff29}.brand,.user-box{-webkit-backdrop-filter:blur(var(--glass-blur-soft)) saturate(130%);background:#ffffff0f;border:1px solid #ffffff24;box-shadow:inset 0 1px #ffffff1f}.nav-item{color:#f1f5f9eb}.nav-item:hover{background:#ffffff14;border-color:#ffffff21}.nav-item.active{box-shadow:inset 3px 0 0 var(--frn-teal-500), inset 0 1px 0 #ffffff1f;background:linear-gradient(90deg,#14b8a657,#2563eb29),#ffffff14;border-color:#99f6e452}.nav-icon,.nav-icon.ui-emoji{background:#ffffff14;border-color:#ffffff29;box-shadow:inset 0 1px #ffffff1f}.topbar{border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));background:linear-gradient(#ffffffdb,#ffffffa8);box-shadow:0 12px 34px #0f172a14}.role-pill,.theme-toggle,.refresh-app-btn{box-shadow:0 8px 18px #0f172a0f, inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(var(--glass-blur-soft)) saturate(130%);background:linear-gradient(#ffffffe0,#ffffff94);border-color:#ffffff9e}.logout,.danger,.danger-btn,.delete-prep-btn{-webkit-backdrop-filter:none}.login-card{box-shadow:var(--glass-shadow-floating), inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));background:linear-gradient(#ffffffe6,#ffffffbd);border-color:#ffffff8a}.login-logo-img{box-shadow:0 18px 42px #071a3338, inset 0 1px 0 var(--glass-highlight);background:#ffffffdb;border:1px solid #ffffffb8}.login-card input,input,select,textarea{background:#fffffff0}.login-page .app-proprietary-footer,.login-page .proprietary-footer{text-shadow:0 1px 14px #071a333d}.page-header,.hero-dashboard,.module-hero,.privacy-hero,.compliance-score-hero{isolation:isolate;box-shadow:var(--glass-shadow-floating), inset 0 1px 0 #ffffff29;-webkit-backdrop-filter:blur(var(--glass-blur-soft)) saturate(135%);background:radial-gradient(circle at 86% 12%,#99f6e433,#0000 18rem),linear-gradient(135deg,#071a33f0 0%,#123d7adb 54%,#0f766ed1 100%);border-color:#fff3;position:relative;overflow:hidden}.page-header>*,.hero-dashboard>*,.module-hero>*,.privacy-hero>*,.compliance-score-hero>*{z-index:2;position:relative}.page-header-metric,.page-header-caption,.module-hero-stat,.privacy-score-card{-webkit-backdrop-filter:blur(var(--glass-blur-soft)) saturate(130%);background:#ffffff24;border-color:#ffffff47;box-shadow:inset 0 1px #ffffff2e,0 18px 34px #071a3329}.dashboard-control-center .page-header.compliance-widget:after{background:#ffffff0e}.premium-card,.panel,.dashboard-quick-actions,.dashboard-app-status,.dashboard-customizer,.ai-panel,.module-entry-card,.module-record-card,.prep-card,.equipment-card,.privacy-card,.subscription-summary-card,.upgrade-required-card,.dashboard-empty-state,.software-about-panel{box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-highlight);background:linear-gradient(#ffffffd1,#ffffffad);border-color:#ffffff9e}.premium-card{isolation:isolate}.premium-card:after{z-index:0;opacity:.08}.premium-card:before{z-index:1}.premium-card>*{z-index:2;position:relative}.dashboard-kpi-grid .premium-card{background:linear-gradient(#ffffffe6,#fafdffc2)}.dashboard-kpi-grid .premium-icon{box-shadow:0 10px 20px #0f172a12, inset 0 1px 0 var(--glass-highlight);background:#ffffffe0;border:1px solid #ffffffb8}.dashboard-action{box-shadow:0 12px 28px #0f172a12, inset 0 1px 0 var(--glass-highlight);background:linear-gradient(#ffffffdb,#ffffffa3);border-color:#ffffffa3}.dashboard-action:hover{background:linear-gradient(#fffffff0,#ecfdf5c7);transform:translateY(-1px)}.primary,.secondary,.small,.mini,.theme-toggle,.refresh-app-btn,.qr-button,.ui-button,.login-card button{box-shadow:0 10px 22px #0f172a14, inset 0 1px 0 var(--glass-highlight);border-color:#ffffff94}.secondary,.small,.mini,.theme-toggle,.refresh-app-btn,.qr-button{-webkit-backdrop-filter:blur(var(--glass-blur-soft)) saturate(130%);background:linear-gradient(#ffffffdb,#ffffff9e)}.primary,.login-card button:not(.secondary){box-shadow:0 14px 28px #2563eb33,inset 0 1px #ffffff3d}.danger,.danger-btn,.delete-prep-btn,.mini.danger,.archive-prep-btn,button[class*=danger]{box-shadow:0 10px 22px #ef444429!important}.primary:not(:disabled):hover,.secondary:not(:disabled):hover,.small:not(:disabled):hover,.mini:not(:disabled):hover,.qr-button:not(:disabled):hover{transform:translateY(-1px)}.primary:not(:disabled):active,.secondary:not(:disabled):active,.small:not(:disabled):active,.mini:not(:disabled):active,.qr-button:not(:disabled):active,.dashboard-action:not(:disabled):active{filter:saturate(1.08);transform:translateY(0)}.form-grid,.panel-body,.document-folder-panel,.equipment-inline-entry,.equipment-registry-details,.ai-lot-reader,.ai-lot-preview,.ingredient-card,.deadline-calendar,.deadline-selected-row{background:#ffffff94;border-color:#ffffff7a;box-shadow:inset 0 1px #ffffff70}input,select,textarea{background:#fffffff5;border-color:#1e3a5f2e;box-shadow:inset 0 1px #ffffffb8}input:focus,select:focus,textarea:focus{border-color:#14b8a69e;box-shadow:0 0 0 4px #14b8a624,inset 0 1px #ffffffb8}.table-wrap,.panel>table,.panel-body>table,.privacy-card>table,.manual-billing-panel,.backup-history-table,.audit-log-table{background:#ffffffc7;border-color:#ffffff94;box-shadow:0 12px 28px #0f172a0f}table,th,td{-webkit-hyphens:none;hyphens:none;word-break:normal}th{background:#f8fafcf5}td{background:#fffffff0}.manual-billing-table th,.manual-billing-table td{word-break:normal;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none}.onboarding-overlay,.modal-overlay,.drawer-overlay,.mobile-sidebar-overlay{-webkit-backdrop-filter:blur(8px)saturate(120%);background:#05182f6b}.onboarding-panel,.modal,.dialog,.drawer,.mobile-menu,.toast,.enterprise-feedback{box-shadow:var(--glass-shadow-floating), inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));background:linear-gradient(#ffffffeb,#fffc);border-color:#ffffff94}.notice,.alert-row,.smart-notification,.status-pill,.premium-status-badge,.nav-plan-badge,.plan-badge{background-color:#ffffffd1}html[data-theme=dark]{--glass-bg:#0f172aa3;--glass-bg-strong:#0f172ad1;--glass-bg-soft:#0f172a7a;--glass-border:#94a3b842;--glass-border-soft:#94a3b82e;--glass-highlight:#ffffff1f}html[data-theme=dark] body{background:radial-gradient(circle at 10% 6%,#14b8a61c,#0000 28rem),radial-gradient(circle at 94% 12%,#2563eb1f,#0000 30rem),linear-gradient(#07111f 0%,#0b1728 52%,#08131f 100%)}html[data-theme=dark] .topbar,html[data-theme=dark] .premium-card,html[data-theme=dark] .panel,html[data-theme=dark] .dashboard-quick-actions,html[data-theme=dark] .dashboard-app-status,html[data-theme=dark] .dashboard-customizer,html[data-theme=dark] .ai-panel,html[data-theme=dark] .module-entry-card,html[data-theme=dark] .module-record-card,html[data-theme=dark] .prep-card,html[data-theme=dark] .equipment-card,html[data-theme=dark] .privacy-card,html[data-theme=dark] .subscription-summary-card,html[data-theme=dark] .upgrade-required-card,html[data-theme=dark] .dashboard-empty-state,html[data-theme=dark] .software-about-panel,html[data-theme=dark] .onboarding-panel,html[data-theme=dark] .modal,html[data-theme=dark] .dialog,html[data-theme=dark] .drawer,html[data-theme=dark] .mobile-menu{background:linear-gradient(#0f172ad1,#0b1220b8);border-color:#94a3b83d;box-shadow:0 18px 48px #00000042,inset 0 1px #ffffff0f}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] td{background:#0b1220f0;border-color:#94a3b842}html[data-theme=dark] th{background:#0f172af5}html[data-theme=dark] .secondary,html[data-theme=dark] .small,html[data-theme=dark] .mini,html[data-theme=dark] .theme-toggle,html[data-theme=dark] .refresh-app-btn,html[data-theme=dark] .qr-button{background:linear-gradient(#1e293bd1,#0f172ab3);border-color:#94a3b842}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.sidebar{background:#071a33}.topbar,.login-card,.premium-card,.panel,.dashboard-quick-actions,.dashboard-app-status,.dashboard-customizer,.ai-panel,.module-entry-card,.module-record-card,.prep-card,.equipment-card,.privacy-card,.onboarding-panel,.modal,.dialog,.drawer,.mobile-menu{background:#fff}html[data-theme=dark] .topbar,html[data-theme=dark] .premium-card,html[data-theme=dark] .panel,html[data-theme=dark] .dashboard-quick-actions,html[data-theme=dark] .dashboard-app-status,html[data-theme=dark] .dashboard-customizer,html[data-theme=dark] .ai-panel,html[data-theme=dark] .module-entry-card,html[data-theme=dark] .module-record-card,html[data-theme=dark] .prep-card,html[data-theme=dark] .equipment-card,html[data-theme=dark] .privacy-card,html[data-theme=dark] .onboarding-panel,html[data-theme=dark] .modal,html[data-theme=dark] .dialog,html[data-theme=dark] .drawer,html[data-theme=dark] .mobile-menu{background:#0b1220}}@media (width<=768px){:root{--glass-blur:14px;--glass-blur-soft:8px}.topbar{box-shadow:0 8px 22px #0f172a14}.premium-card,.panel,.dashboard-action,.dashboard-quick-actions,.dashboard-app-status{-webkit-backdrop-filter:none}}@media (prefers-contrast:more){:root{--glass-bg:#fffffff0;--glass-bg-strong:#fffffffa;--glass-border:#1e3a5f57}.premium-card,.panel,.topbar,.login-card,.dashboard-quick-actions,.dashboard-app-status,.ai-panel{background:var(--glass-bg-strong);border-color:var(--glass-border)}}@media (prefers-reduced-motion:reduce){.primary,.secondary,.small,.mini,.qr-button,.dashboard-action,.nav-item,.premium-card,.panel,.topbar{transition:none!important}}@media print{.app-layout:before,.app-layout:after,.page-header:before,.page-header:after,.premium-card:after,.hero-dashboard:before,.module-hero:before,.privacy-hero:before,.compliance-score-hero:before{content:none!important;display:none!important}.sidebar,.topbar,.login-card,.premium-card,.panel,.dashboard-quick-actions,.dashboard-app-status,.ai-panel,.module-entry-card,.module-record-card,.prep-card,.equipment-card,.privacy-card,.onboarding-panel,.modal,.dialog,.drawer,.mobile-menu{box-shadow:none!important;-webkit-backdrop-filter:none!important;background:#fff!important}}html,body,#root{width:100%;max-width:100%;min-height:100%;overflow-x:hidden}body{margin:0}.app-layout{width:100%;max-width:100%;min-height:100dvh;overflow-x:clip}.main,.main-content,.app-main,.page-content{min-width:0;max-width:100%}.mobile-menu-button,.sidebar-close,.mobile-nav-backdrop,.mobile-account-actions{display:none}.login-page{width:100%;min-height:100dvh;padding:env(safe-area-inset-top,0px) max(16px, env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(16px, env(safe-area-inset-left,0px));grid-template-rows:minmax(0,1fr) auto;align-content:stretch;justify-items:stretch;display:grid;overflow-x:hidden}.login-main{place-items:center;min-height:0;padding-block:24px;display:grid}.login-card{width:min(100%,510px);margin:0 auto}.app-proprietary-footer{text-align:center;justify-self:center;width:100%;padding:14px 8px}@media (height<=760px){.login-main{place-items:start center;padding-top:16px}.login-card{margin-block:0}}@media (width<=768px){:root{--glass-blur:12px;--glass-blur-soft:6px}html,body,#root,.app-layout,.main,.main-content{width:100%;max-width:100%;overflow-x:hidden}.app-layout{min-height:100dvh;display:block}.main{width:100%;min-width:0;padding:0 max(14px, env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(14px, env(safe-area-inset-left,0px));margin-left:0!important}.main-content{width:100%;margin:0 auto;padding-top:14px}.topbar{z-index:1200;min-height:56px;margin:0 calc(-1 * max(14px, env(safe-area-inset-right,0px))) 0 calc(-1 * max(14px, env(safe-area-inset-left,0px)));padding:calc(8px + env(safe-area-inset-top,0px)) max(14px, env(safe-area-inset-right,0px)) 8px max(14px, env(safe-area-inset-left,0px));border-radius:0;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;display:grid;position:sticky;top:0}.mobile-menu-button{width:44px;height:44px;min-height:44px;color:var(--frn-text);box-shadow:var(--frn-shadow-xs);background:#ffffffdb;border:1px solid #1e3a5f24;border-radius:12px;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;display:inline-flex}.topbar-title{min-width:0}.topbar-kicker{display:none}.topbar-title h1,.topbar h1{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:clamp(18px,5vw,22px);line-height:1.12;overflow:hidden}.topbar-title p,.topbar-actions{display:none!important}.mobile-nav-backdrop{z-index:1300;-webkit-backdrop-filter:blur(4px);background:#020c1b8c;border:0;border-radius:0;width:100%;min-height:100dvh;padding:0;display:block;position:fixed;inset:0}.sidebar{z-index:1400;overscroll-behavior:contain;width:min(88vw,360px);min-width:0;max-width:calc(100vw - 24px);height:100dvh;max-height:100dvh;padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(14px + env(safe-area-inset-bottom,0px));pointer-events:none;visibility:hidden;transition:transform .18s;inset:0 auto 0 0;overflow:hidden auto;transform:translate(-105%);position:fixed!important}.sidebar.is-open,.sidebar[data-open=true]{pointer-events:auto;visibility:visible;transform:translate(0)}.sidebar-brand,.brand.sidebar-brand{grid-template-columns:56px minmax(0,1fr) 40px;align-items:center;gap:10px;min-height:92px;max-height:150px;margin:0 0 12px;padding:10px;display:grid}.sidebar-brand .brand-logo-img{border-radius:16px;width:56px;height:56px}.sidebar-brand h2,.sidebar-brand p,.brand-company{overflow-wrap:normal;word-break:normal;min-width:0;max-width:100%}.sidebar-close{color:#fff;background:#ffffff1a;border:1px solid #ffffff2e;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;min-height:40px;padding:0;font-size:26px;line-height:1;display:inline-flex}.sidebar-nav,.sidebar nav,.nav-section{flex-direction:column;gap:6px;width:100%;min-width:0;display:flex!important}.sidebar nav{max-height:none;padding:0 2px 0 0;overflow:visible}.nav-section{margin:0}.nav-section-title{padding:10px 10px 2px}.nav-item{text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;min-width:0;min-height:48px;padding:10px 12px;display:flex}.nav-item-main{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.nav-icon.ui-emoji{width:30px;min-width:30px;height:30px}.nav-item-label,.nav-item-main>span:last-child{white-space:normal;word-break:normal;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none;text-overflow:clip;min-width:0;overflow:visible}.nav-plan-badge{flex:none}.user-box{margin-top:14px}.mobile-account-actions{background:#ffffff0f;border:1px solid #ffffff24;border-radius:16px;gap:8px;margin-top:14px;padding:12px;display:grid}.mobile-account-actions .role-pill,.mobile-account-actions button{justify-content:center;align-items:center;width:100%;min-height:46px;margin:0;display:inline-flex}.mobile-account-actions .logout{color:#fff;background:linear-gradient(#ef4444,#dc2626);border-color:#f8717161}.dashboard-control-center,.page-header,.dashboard-kpi-grid,.dashboard-quick-actions,.panel,.premium-card{max-width:100%}.login-page{padding:env(safe-area-inset-top,0px) max(16px, env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(16px, env(safe-area-inset-left,0px))}.login-main{padding-block:22px}.login-card{width:min(100%,100vw - 32px);padding:clamp(24px,7vw,28px)}.login-logo-img{width:76px;height:76px}.login-card h1,.login-title{font-size:clamp(1.8rem,8vw,2.6rem)}.login-card input{font-size:16px}.login-card button{min-height:50px}}@media (width>=769px){.sidebar{visibility:visible!important;pointer-events:auto!important;transform:none!important}}
