:root{--ink:#22332b;--muted:#576a60;--green:#235c3d;--dark:#193829;--line:#d8e2db;--bg:#f1f5f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--green);text-underline-offset:3px}header{background:white;border-bottom:4px solid var(--green);padding:16px max(20px,calc((100vw - 1160px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;font-weight:750;font-size:22px;color:var(--dark)}.brand img{width:145px;height:81px;object-fit:contain}.brand small{display:block;font-size:14px;font-weight:500;color:var(--muted);margin-top:3px}.header-access{display:flex;gap:15px;align-items:center;font-size:14px}.header-access form{margin:0}.wrap{max-width:1204px;margin:auto;padding:28px 22px 50px}.narrow{max-width:760px;margin:35px auto;padding:28px}.card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}.padded{padding:24px;margin-bottom:24px}.login{max-width:540px;padding:30px;margin:40px auto 60px;border-top:5px solid var(--green)}h1{font-size:28px;line-height:1.25;margin:10px 0 20px}h2{font-size:21px;line-height:1.35;margin:0 0 15px}h3{font-size:17px;margin:0}p{margin:10px 0 18px}form h2{margin-top:28px}.eyebrow{font-size:13px;letter-spacing:.09em;font-weight:750;color:var(--green);text-transform:uppercase}.hint,.meta{font-size:14px;color:var(--muted)}.meta{margin:5px 0 0}label{display:block;font-size:14px;font-weight:650;margin:16px 0}input,select{display:block;width:100%;max-width:100%;padding:10px 12px;border:1px solid #9aada0;border-radius:5px;background:white;color:var(--ink);font:inherit;font-size:16px;margin-top:6px}input[type=file]{font-size:14px}.check{display:flex;gap:10px;align-items:start}.check input{width:auto;margin-top:4px}button,.button{display:inline-block;border:1px solid var(--green);border-radius:5px;background:var(--green);color:white;text-decoration:none;padding:10px 15px;font:inherit;font-size:14px;font-weight:650;cursor:pointer}.secondary{background:white;color:var(--green)}.danger{background:#963c32;border-color:#963c32}.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.layout{display:grid;grid-template-columns:280px 1fr;gap:25px}.identity{padding:24px;align-self:start;border-top:5px solid var(--green)}.detail{padding:14px 0;border-top:1px solid var(--line)}.detail span{display:block;font-size:14px;color:var(--muted)}.detail strong{font-weight:600}.sectionhead{padding:22px 24px;border-bottom:1px solid var(--line)}.sectionhead h2{margin:0}.document{padding:22px 24px;border-bottom:1px solid var(--line)}.document:last-child{border-bottom:0}.layout section>.card{margin-bottom:24px}.docrow{display:flex;gap:20px;justify-content:space-between;align-items:center}.actions{display:flex;gap:8px;flex-shrink:0}.badge{display:inline-block;font-size:12px;background:#edf0ed;border-radius:3px;padding:3px 7px;color:#536357}.empty{padding:24px}details{border-top:1px solid var(--line);padding-top:15px;margin-top:18px}summary{cursor:pointer;color:var(--green);font-weight:650;font-size:15px}details form{padding-top:5px}.revoke{margin-top:22px;border-top:1px solid var(--line)}nav{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:24px;font-size:15px}.plants{display:grid;grid-template-columns:1fr 1fr;gap:16px}.planttile{display:block;padding:20px;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:5px;text-decoration:none;color:var(--ink)}.planttile h2{margin:10px 0}.planttile p{margin:0;color:var(--muted)}.alert,.success{padding:15px 18px;border-left:4px solid #a74b2f;background:#fff1e8}.success{background:#e3f2e8;border-color:var(--green)}footer{border-top:1px solid var(--line);padding:24px 0;margin-top:30px;color:var(--muted);font-size:14px}footer .slogan{margin-bottom:12px;color:var(--dark);font-size:15px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #c68400;outline-offset:3px}.labelpage{background:white}.label{width:105mm;max-width:100%;padding:7mm;border:1px solid black;margin:20px auto;text-align:center;color:black}.label h1{font-size:18px;margin:0 0 8px}.label p{font-size:13px;margin:8px 0}.label .plant-label{font-size:15px;font-weight:650}.label #qr{width:58mm;max-width:100%;margin:8px auto}.label #qr svg{display:block;width:100%;height:auto}.label>strong{font-size:14px}.print-tools{max-width:650px;margin:25px auto;text-align:center;padding:0 20px}.print-tools a{margin-left:20px}.print-tools p{font-size:14px}@media(max-width:780px){.layout{grid-template-columns:1fr}.brand{font-size:17px;gap:10px}.brand img{width:105px;height:62px}header{padding:12px 16px;flex-wrap:wrap;gap:10px}.header-access{margin-left:auto}.wrap{padding:20px 16px}.grid,.plants{grid-template-columns:1fr}.login{margin:15px auto 35px;padding:24px}.docrow{align-items:start;flex-direction:column}.narrow{margin:18px 12px;padding:22px}.padded{padding:20px}h1{font-size:25px}}@media print{.print-tools{display:none}.label{margin:0;break-inside:avoid}@page{size:A4;margin:12mm}}
.document-section{margin:0;padding:0;border-top:0;border-bottom:1px solid var(--line)}.document-section>summary{padding:20px 24px;background:#edf4ef;font-size:18px}.section-content{padding:0 12px 12px}.document-folder{margin:12px;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}.document-folder>summary{padding:16px;background:#f8faf8}.document-folder .document{padding:18px}.folder-symbol{display:inline-block;width:18px;height:13px;margin:0 10px 0 4px;border:1px solid #578167;border-radius:2px;background:#dfece3;position:relative;vertical-align:middle}.folder-symbol:before{content:'';position:absolute;width:8px;height:4px;top:-4px;left:0;background:#dfece3;border:1px solid #578167;border-bottom:0;border-radius:2px 2px 0 0}.placement{padding:0 14px;background:#f5f8f5;border:1px solid var(--line);border-radius:5px;margin:18px 0}.label h1.plant-label{font-size:18px;font-weight:750;overflow-wrap:anywhere}.label .label-heading{font-size:14px;font-weight:700}.label strong{overflow-wrap:anywhere}button:disabled{opacity:.5;cursor:wait}.docrow h3{overflow-wrap:anywhere}summary .badge{font-weight:400;margin-left:8px}
.upload-panel{background:#eef6ff;border:2px solid #6c9bc5;border-top:6px solid #24638f}.upload-panel>h2{color:#184f76}.upload-panel .placement{background:#f9fcff}.drop-area{background:white;border:2px dashed #6c9bc5;border-radius:8px;padding:18px;margin:20px 0}.drop-area.drag-over{background:#dcecff;border-color:#174f85}.selection-info{font-size:14px;overflow-wrap:anywhere;margin-bottom:0}.upload-status{font-weight:600;color:#184f76}.category-choice{display:block}.category-choice input{margin-top:8px}.revealed-code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font-family:monospace;margin-top:12px;font-size:17px}.suspension-badge{background:#fbe9e8;color:#96201e}.suspended-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f8f4f3}.suspension-card{position:relative;isolation:isolate;overflow:hidden;width:100%;max-width:720px;padding:42px;background:white;border:1px solid #e5c4c1;border-top:7px solid #b91c1c;border-radius:12px;box-shadow:0 12px 40px #5d1c1510}.no-entry{position:absolute;z-index:-1;width:380px;height:380px;border-radius:50%;background:#b91c1c;opacity:.065;right:-60px;top:90px;pointer-events:none}.no-entry:after{content:'';position:absolute;top:40%;left:15%;width:70%;height:20%;background:white;border-radius:5px}.suspension-content{position:relative}.suspension-kicker{color:#a91b1b;font-size:17px;font-weight:800;letter-spacing:.025em;margin:0 0 24px}.suspension-card h1{margin-bottom:24px}.blocked-message{font-weight:750;color:#a91b1b;font-size:20px}.suspension-contact{margin-top:28px;padding-top:20px;border-top:1px solid #e8ceca}.suspension-contact a{font-weight:650;color:#9c2424}@media(max-width:600px){.suspension-card{padding:28px 22px}.no-entry{width:300px;height:300px;right:-90px}.suspended-page{padding:16px}.blocked-message{font-size:18px}} 
/* Stato manutenzioni periodiche */
.maintenance-badge{display:inline-block;margin:4px 8px 4px 0;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:800;letter-spacing:.03em}.maintenance-positive{border-color:#3d7a50!important}.maintenance-positive.maintenance-badge{background:#e3f2e8;color:#235c3d}.maintenance-warning{border-color:#b98516!important}.maintenance-warning.maintenance-badge{background:#fff3cd;color:#795600}.maintenance-negative,.maintenance-overdue{border-color:#b42318!important}.maintenance-negative.maintenance-badge,.maintenance-overdue.maintenance-badge{background:#fde7e5;color:#9f1c13}.maintenance-pending{border-color:#8b9690!important}.maintenance-pending.maintenance-badge{background:#edf0ed;color:#536357}.planttile.maintenance-positive{border-left:6px solid #3d7a50!important}.planttile.maintenance-warning{border-left:6px solid #b98516!important}.planttile.maintenance-negative,.planttile.maintenance-overdue{border-left:6px solid #b42318!important}.planttile.maintenance-pending{border-left:6px solid #8b9690!important}.periodic-check{padding:18px;margin:14px 0;border:2px solid var(--line);border-radius:7px}.document-section.maintenance-negative>summary,.document-section.maintenance-overdue>summary{background:#fde7e5}.document-section.maintenance-warning>summary{background:#fff3cd}.document-section.maintenance-positive>summary{background:#e3f2e8}.document-folder.maintenance-negative>summary,.document-folder.maintenance-overdue>summary{background:#fde7e5}.document-folder.maintenance-warning>summary{background:#fff3cd}.document-folder.maintenance-positive>summary{background:#e3f2e8}

.maintenance-scheduled.maintenance-badge{background:#e8f0f6;color:#315a74}.document.maintenance-negative{border-left:5px solid #b42318;background:#fffafa}.document.maintenance-positive{border-left:5px solid #3d7a50}.document .maintenance-badge{vertical-align:middle}.periodic-check .maintenance-badge{margin-right:6px}

/* Stato tecnico arancio: incompleto / da integrare. Priorità: rosso > arancio > ambra > verde. */
.maintenance-incomplete{border-color:#d66a00!important}.maintenance-incomplete.maintenance-badge{background:#fff0df;color:#9a4700}.planttile.maintenance-incomplete{border-left:6px solid #d66a00!important}.document-section.maintenance-incomplete>summary{background:#fff0df}.document-folder.maintenance-incomplete>summary{background:#fff0df}.document.maintenance-incomplete{border-left:5px solid #d66a00;background:#fffaf4}.periodic-check.maintenance-incomplete{border-color:#d66a00!important}.maintenance-warning{border-color:#c39a00!important}.maintenance-warning.maintenance-badge{background:#fff8cc;color:#6f5900}.planttile.maintenance-warning{border-left-color:#c39a00!important}.document-section.maintenance-warning>summary,.document-folder.maintenance-warning>summary{background:#fff8cc}
