﻿:root{--inp:#fff;--res:#f0f9ff;--tab:#e2e8f0;--bg:#f4f7fb;--card:#fff;--ink:#0f172a;--mut:#64748b;--brand:#0ea5e9;--brand2:#0369a1;--navy:#0b1f3a;--line:#e2e8f0;--ok:#16a34a;--bad:#dc2626;--warn:#f59e0b}
*{box-sizing:border-box}
body{margin:0;font:17px/1.5 system-ui,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
header{background:linear-gradient(90deg,var(--navy),var(--brand2));color:#fff;padding:12px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:5}
header .logo{font-weight:800;font-size:22px;color:#fff;text-decoration:none;margin-right:auto}
header select{font-size:15px;padding:6px 8px;border-radius:8px;border:0}
.layout{display:flex;max-width:1200px;margin:0 auto}
nav{width:220px;padding:16px 8px;flex-shrink:0}
nav a{display:block;padding:10px 14px;border-radius:12px;color:var(--ink);text-decoration:none;font-weight:600;margin-bottom:2px}
nav a:hover{background:#e0f2fe}nav a.on{background:var(--brand);color:#fff}
nav small{display:block;color:var(--mut);margin:14px 14px 4px;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
main{flex:1;padding:20px 16px;min-width:0}
h1{margin:0 0 4px;font-size:28px}.sub{color:var(--mut);margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:0 2px 8px #0f172a0d}
.cols{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.tiles{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
a.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;color:inherit;text-decoration:none;box-shadow:0 2px 8px #0f172a0d}
a.tile:hover{border-color:var(--brand);transform:translateY(-2px)}
.tile .ic{font-size:30px}.tile h3{margin:6px 0 2px}.tile p{margin:0;color:var(--mut);font-size:15px}
.tag{font-size:12px;background:#fef3c7;color:#92400e;border-radius:8px;padding:1px 8px;margin-left:6px;vertical-align:middle}
label{display:block;font-weight:600;margin:14px 0 4px}
.row{display:flex;gap:12px;align-items:center}
input,select{font:inherit}
input[type=number],input[type=text],input[type=date],input[type=month],select.f{padding:8px 10px;border:1px solid var(--line);border-radius:10px;width:100%;background:var(--inp);color:var(--ink)}
.row input[type=number]{width:150px;flex-shrink:0;font-size:19px}
input[type=range]{flex:1;height:34px;accent-color:var(--brand)}
.res{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:16px 0}
.res div{background:var(--res);border-radius:12px;padding:12px 14px;color:var(--mut);font-size:14px}
.res b{display:block;font-size:24px;color:var(--brand2)}.res b.bad{color:var(--bad)}.res b.ok{color:var(--ok)}
.answer{background:linear-gradient(135deg,#e0f2fe,#f0fdf4);border-radius:14px;padding:14px 16px;font-size:18px;margin:14px 0}
button,.btn{font:inherit;font-weight:600;padding:10px 18px;border:0;border-radius:12px;background:var(--brand);color:#fff;cursor:pointer}
button.alt{background:var(--tab);color:var(--ink)}button.del{background:none;color:var(--bad);padding:2px 8px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.tabs button{background:var(--tab);color:var(--ink)}.tabs button.on{background:var(--brand);color:#fff}
canvas{width:100%;display:block}
table{width:100%;border-collapse:collapse;font-size:15px}th,td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:right}th:first-child,td:first-child{text-align:left}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;margin-top:8px}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px}
.disc{font-size:13px;color:var(--mut);margin-top:20px}
.due{color:var(--bad);font-weight:700}.soon{color:var(--warn);font-weight:700}
@media(max-width:800px){.layout{display:block}nav{width:auto;display:flex;overflow-x:auto;padding:8px}nav a{white-space:nowrap}nav small{display:none}}
@media print{header,nav,button,.noprint{display:none!important}body{background:var(--inp);color:var(--ink)}.card{box-shadow:none;break-inside:avoid}}

[data-theme=dark]{--bg:#0a1220;--card:#111c2e;--ink:#e6edf7;--mut:#8fa3bf;--line:#1f2f48;--inp:#0d1828;--res:#0d1828;--tab:#1b2a42;--brand:#22d3ee;--brand2:#38bdf8;--navy:#050b16;--ok:#22c55e;--bad:#ef4444}
[data-theme=dark] nav a:hover{background:#1b2a42}[data-theme=dark] .answer{background:linear-gradient(135deg,#0d2a3f,#0d2a22)}[data-theme=dark] .tag{background:#3b2f0b;color:#fbbf24}[data-theme=dark] button{color:#04121f}[data-theme=dark] .tabs button:not(.on),[data-theme=dark] button.alt{color:var(--ink)}


/* restyle v2 */
:root{--grad:linear-gradient(135deg,#06b6d4,#10b981);--brand:#0891b2;--brand2:#0e7490}
body{background:radial-gradient(900px 500px at 85% -10%,#06b6d41f,transparent 60%),radial-gradient(700px 400px at -5% 10%,#10b9811a,transparent 60%),var(--bg);background-attachment:fixed}
header{background:linear-gradient(90deg,#050b16,#0b2a3f);border-bottom:2px solid transparent;border-image:var(--grad) 1;box-shadow:0 4px 20px #0006}
header .logo{display:flex;align-items:center;gap:10px;letter-spacing:-.02em}
header .logo .lg{width:34px;height:34px;filter:drop-shadow(0 2px 6px #06b6d466)}
header .logo em{font-style:normal;color:#22d3ee}
header select{background:#ffffff14;color:#fff;border:1px solid #ffffff29}header select option{color:#0f172a}
header button.alt{background:#ffffff14;color:#fff;border:1px solid #ffffff29}
nav a{transition:.15s}nav a.on{background:var(--grad);color:#04121f;box-shadow:0 4px 14px #06b6d44d}
button,.btn{background:var(--grad);color:#04121f;box-shadow:0 2px 8px #06b6d433;transition:.15s}
button:hover{filter:brightness(1.07);transform:translateY(-1px)}
button.alt,.tabs button{background:var(--tab);color:var(--ink);box-shadow:none}
.tabs button.on{background:var(--grad);color:#04121f}
.card,a.tile{transition:.2s}.card:hover,a.tile:hover{box-shadow:0 8px 24px #06b6d41f}
a.tile{border-top:3px solid #06b6d4}a.tile:nth-child(3n+2){border-top-color:#10b981}a.tile:nth-child(3n){border-top-color:#f59e0b}
.tile .ic{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;border-radius:14px;background:#06b6d41a}
h1{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block;letter-spacing:-.02em}
.res b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.res b.bad{background:none;color:var(--bad)}.res b.ok{background:none;color:var(--ok)}
.res div{border-left:3px solid #06b6d4}
input[type=range]{accent-color:#10b981}
[data-theme=dark]{--bg:#070d1a;--card:#0f1b2e}
[data-theme=dark] header{background:linear-gradient(90deg,#03070f,#0a2236)}
/* tema chiaro v3: ciano, bordi netti */
:root:not([data-theme=dark]){--bg:#e3f6fb;--card:#fff;--line:#0e7490;--res:#d9f3fa;--inp:#fff;--tab:#cdeef7;--brand:#0891b2;--brand2:#0e7490}
:root:not([data-theme=dark]) body{background:#e3f6fb}
:root:not([data-theme=dark]) header{background:linear-gradient(90deg,#ffffff,#cdeff8);color:#0b2a3f;border-bottom:3px solid #0891b2;box-shadow:none;border-image:none}
:root:not([data-theme=dark]) header .logo,:root:not([data-theme=dark]) header .logo span{color:#0b2a3f}
:root:not([data-theme=dark]) header .logo em{color:#0891b2}
:root:not([data-theme=dark]) header select,:root:not([data-theme=dark]) header button.alt{background:#fff;color:#0b2a3f;border:1.5px solid #0891b2}
:root:not([data-theme=dark]) nav{background:#fff;border:2px solid #0891b2;border-radius:16px;margin:16px 0 16px 12px;padding:10px 8px;align-self:flex-start;box-shadow:4px 4px 0 #0891b233}
:root:not([data-theme=dark]) nav a:hover{background:#d9f3fa}
:root:not([data-theme=dark]) nav small{color:#0e7490;font-weight:700}
:root:not([data-theme=dark]) .card,:root:not([data-theme=dark]) a.tile{background:linear-gradient(180deg,#fff 0%,#e6f8fd 100%);border:2px solid #0891b2;border-radius:14px;box-shadow:4px 4px 0 #0891b233}
:root:not([data-theme=dark]) a.tile{border-top-width:6px}
:root:not([data-theme=dark]) .card:hover,:root:not([data-theme=dark]) a.tile:hover{box-shadow:6px 6px 0 #0891b24d}
:root:not([data-theme=dark]) .res div{background:#d9f3fa;border:1.5px solid #0891b2;border-left-width:5px;border-radius:10px}
:root:not([data-theme=dark]) .answer{background:#e6fbf3;border:2px solid #10b981;border-radius:12px}
:root:not([data-theme=dark]) input[type=number],:root:not([data-theme=dark]) input[type=text],:root:not([data-theme=dark]) input[type=date],:root:not([data-theme=dark]) input[type=month],:root:not([data-theme=dark]) select.f{border:1.5px solid #0891b2;background:#fff}
:root:not([data-theme=dark]) table th,:root:not([data-theme=dark]) table td{border-bottom:1px solid #9bd7e6}
:root:not([data-theme=dark]) h1{background:none;color:#0b4a63}
@media(max-width:800px){:root:not([data-theme=dark]) nav{margin:8px;box-shadow:none}}
/* layout: parametri a sinistra, grafici in diretta a destra */
.grid2{display:grid;grid-template-columns:minmax(290px,400px) minmax(0,1fr);gap:26px;align-items:start}
.grid2 .out{position:sticky;top:84px;min-width:0}
.grid2 .out .res{margin-top:0}
.after{margin-top:12px}
@media(max-width:900px){.grid2{display:block}.grid2 .out{position:sticky;top:64px;z-index:4;background:var(--card);border-bottom:2px solid var(--brand);margin:-8px -4px 12px;padding:8px 4px 6px}.grid2 .out .res{display:none}.grid2 .out .answer{font-size:15px;margin:6px 0}}
.tick{flex:1 1 200px;max-width:420px;overflow:hidden;white-space:nowrap;font-weight:600;font-size:14px;color:#67e8f9;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tick span{display:inline-block;padding-left:100%;animation:tickmove 16s linear infinite}
.tick:hover span{animation-play-state:paused}
:root:not([data-theme=dark]) .tick{color:#0e7490}
@keyframes tickmove{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.tick span{animation:none;padding-left:0}.tick{white-space:normal}}
@media (max-width:700px){.tick{order:5;flex-basis:100%;max-width:none}}

header .logo{margin-right:0}.tick{margin-right:auto}

.print-only{display:none}@media print{.print-only{display:block}}
