:root{ --bg:#f6f1ea; --text:#211d1a; --muted:#6f665d; --line:rgba(86,66,44,0.14); --accent:#b08a5a; --accent-deep:#8a6940; }
*{ box-sizing:border-box; } body{ margin:0; font-family:"Manrope", ui-sans-serif, system-ui, sans-serif; color:var(--text); background:var(--bg); }
.top{ display:flex; justify-content:space-between; align-items:center; padding:12px 20px; background:#211d1a; color:#fff; }
.top .brand{ font-weight:800; letter-spacing:.04em; } .top nav{ display:flex; gap:16px; align-items:center; } .top a{ color:#fff; text-decoration:none; } .top .chi{ color:#cbbfae; font-size:13px; }
.container{ max-width:1100px; margin:0 auto; padding:20px; }
.panel{ background:#fffdf9; border:1px solid var(--line); border-radius:18px; padding:18px 20px; box-shadow:0 18px 40px rgba(49,37,21,0.08); }
h1{ margin:0 0 12px; font-size:24px; } h2{ font-size:16px; margin:18px 0 8px; }
label{ display:block; margin:8px 0; font-size:13px; font-weight:700; color:#8a7c64; } input,select{ display:block; width:100%; font:inherit; font-size:15px; padding:9px 12px; border:1px solid #d9cbb3; border-radius:10px; background:#fff; margin-top:4px; }
button{ font:inherit; font-weight:700; padding:9px 16px; border:0; border-radius:10px; background:var(--accent); color:#fff; cursor:pointer; } button:hover{ filter:brightness(1.05); }
.inline{ display:inline; } .inline button{ padding:5px 10px; font-size:12px; background:#8a7c64; }
.login{ max-width:420px; margin:60px auto; } .errore{ color:#b8433a; font-weight:700; } .ok{ color:#3f7f3a; font-weight:700; }
.cards{ list-style:none; padding:0; display:flex; gap:12px; flex-wrap:wrap; } .card{ display:block; padding:18px 22px; border-radius:14px; background:#fff; border:1px solid var(--line); color:var(--accent-deep); font-weight:800; text-decoration:none; }
.table-wrap{ overflow:auto; border:1px solid var(--line); border-radius:12px; background:#fff; } .table{ width:100%; border-collapse:collapse; font-size:13px; } .table th{ text-align:left; padding:8px; background:#f6efe3; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#8a7c64; } .table td{ padding:7px 8px; border-top:1px solid #f0e7d8; }
.due{ display:grid; grid-template-columns:1fr 1fr; gap:16px; } .box{ border:1px solid var(--line); border-radius:14px; padding:14px; background:#fff; } fieldset{ border:1px solid var(--line); border-radius:10px; } fieldset label{ display:inline-block; margin-right:12px; }
.nota,.foot{ color:var(--muted); font-size:12px; } .foot{ text-align:center; padding:20px; }
@media (max-width:720px){ .due{ grid-template-columns:1fr; } }
.testata{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; }
.strumenti{ display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin:6px 0 12px; } .inline-label{ margin:0; } .inline-label select{ display:inline-block; width:auto; margin:4px 6px 0 0; }
.filtro{ width:min(420px,100%); font:inherit; font-size:14px; padding:9px 12px; border:1px solid #d9cbb3; border-radius:10px; background:#fff; }
.table td.num, .table th.num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; } .table td{ white-space:nowrap; } .table td:nth-child(6){ white-space:normal; min-width:220px; }
tr[hidden]{ display:none; }
.table td.foto, .table th.foto{ width:44px; padding:3px 6px; } .mini{ width:36px; height:36px; object-fit:contain; padding:2px; box-sizing:border-box; border-radius:6px; border:1px solid var(--line); cursor:zoom-in; display:block; background:#fff; }
.lightbox{ position:fixed; inset:0; background:rgba(20,15,10,0.72); display:flex; align-items:center; justify-content:center; z-index:50; cursor:zoom-out; } .lightbox[hidden]{ display:none; }
.lightbox figure{ margin:0; background:#fff; padding:12px; border-radius:16px; box-shadow:0 30px 60px rgba(0,0,0,0.4); cursor:default; } .lightbox img{ display:block; max-width:min(90vw,480px); max-height:80vh; border-radius:10px; } .lightbox figcaption{ text-align:center; font-weight:700; color:var(--accent-deep); margin-top:8px; }
.table td:nth-child(6){ white-space:nowrap; min-width:0; } .table td:nth-child(7){ white-space:normal; min-width:220px; }
.lightbox figcaption small{ display:block; font-weight:500; color:var(--muted); font-size:12px; margin-top:2px; }
.simulazione{ background:#fff3c4; color:#5a4300; border-bottom:2px solid #e2b93b; padding:8px 20px; font-size:14px; display:flex; gap:14px; align-items:center; flex-wrap:wrap; } .simulazione .inline button{ background:#a2781d; }
button.vedi{ background:var(--accent-deep); }
