/* Stile comune del pannello (home, utenti, configurazione) */
:root{
  --c-bg0:#020617;--c-bgsub:#070f1d;--c-bg1:#0f172a;--c-bg2:#1e293b;--c-bg3:#334155;
  --c-tx4:#475569;--c-tx3:#64748b;--c-tx2:#94a3b8;--c-tx1:#cbd5e1;--c-tx0:#e2e8f0;--c-txhi:#f8fafc;
  --c-accent:#3b82f6;--c-orange:#FF6200;--c-good:#22c55e;--c-bad:#f43f5e;--c-warn:#f59e0b;--c-purple:#a78bfa;--c-cyan:#22d3ee;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{background:var(--c-bg0);color:var(--c-tx0);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased;position:relative;overflow-x:hidden;}
[hidden]{display:none !important;}

.yard-bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;background:url(sfondo.svg) center bottom/cover no-repeat;}
.yard-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--c-bg0) 0%,rgba(2,6,23,.55) 35%,var(--c-bg0) 100%);}

.hdr{position:relative;z-index:2;background:rgba(15,23,42,.72);backdrop-filter:blur(6px);border-bottom:1px solid rgba(148,163,184,.15);}
.hdr-inner{max-width:1000px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:18px clamp(20px,5vw,40px);}
.hdr-logo{font-family:'Arial Black',Arial,sans-serif;font-weight:900;font-size:24px;letter-spacing:-.5px;line-height:1;flex-shrink:0;color:var(--c-txhi);text-decoration:none;}
.hdr-logo span{color:var(--c-orange);}
.hdr-name{font-weight:700;font-size:16px;color:var(--c-txhi);line-height:1.2;margin:0;}
.hdr-sub{font-size:11px;color:var(--c-tx3);margin-top:2px;}
.hdr-right{margin-left:auto;display:flex;align-items:center;gap:14px;flex-shrink:0;font-size:12.5px;color:var(--c-tx2);}
.clock{display:flex;align-items:center;gap:7px;}
.clock .dot{width:7px;height:7px;border-radius:50%;background:var(--c-good);box-shadow:0 0 8px var(--c-good);animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
.who{color:var(--c-tx1);}
.linkbtn{all:unset;cursor:pointer;font-weight:600;color:var(--c-tx2);border:1px solid rgba(148,163,184,.25);border-radius:6px;padding:5px 10px;}
.linkbtn:hover{color:var(--c-txhi);border-color:rgba(148,163,184,.45);}
.linkbtn:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}

main{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:clamp(40px,7vw,72px) clamp(20px,5vw,40px) 90px;}
h1{font-weight:800;font-size:clamp(1.7rem,3.4vw,2.3rem);line-height:1.15;margin:0 0 12px;max-width:22ch;color:var(--c-txhi);}
.lede{color:var(--c-tx2);font-size:1rem;line-height:1.6;max-width:58ch;margin:0 0 36px;}

.card{position:relative;background:var(--c-bg1);border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:24px 24px 26px 28px;overflow:hidden;--kc:var(--c-accent);}
.card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--kc);}
.card + .card{margin-top:14px;}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;flex-wrap:wrap;}
.card h2{font-size:1.2rem;font-weight:700;color:var(--c-txhi);margin:0;}
.card .desc{margin:0 0 20px;color:var(--c-tx2);font-size:.9rem;line-height:1.5;max-width:60ch;}
.tag{display:flex;align-items:center;gap:8px;color:var(--c-tx3);font-size:12.5px;white-space:nowrap;}
.tag .led{width:8px;height:8px;border-radius:50%;background:var(--kc);box-shadow:0 0 8px var(--kc);}

label{display:block;font-size:12.5px;font-weight:600;color:var(--c-tx1);margin:0 0 6px;}
.field{margin-bottom:14px;}
.hint{font-size:12px;color:var(--c-tx3);margin-top:5px;}
input,select,textarea{width:100%;font:inherit;font-size:.92rem;color:var(--c-txhi);background:var(--c-bgsub);border:1px solid rgba(148,163,184,.2);border-radius:8px;padding:10px 12px;}
textarea{min-height:140px;resize:vertical;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.84rem;}
input::placeholder,textarea::placeholder{color:var(--c-tx4);}
input:hover,select:hover,textarea:hover{border-color:rgba(148,163,184,.35);}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--kc);outline-offset:1px;border-color:transparent;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

.btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-block;text-align:center;font-size:.9rem;font-weight:700;color:var(--c-txhi);background:var(--kc);padding:10px 18px;border-radius:8px;}
.btn:hover{filter:brightness(1.12);}
.btn:focus-visible{outline:2px solid var(--c-txhi);outline-offset:2px;}
.btn[disabled]{opacity:.5;cursor:default;filter:none;}
.btn.ghost{background:transparent;border:1px solid rgba(148,163,184,.3);color:var(--c-tx1);}
.btn.ghost:hover{border-color:rgba(148,163,184,.55);color:var(--c-txhi);filter:none;}
.btn.sm{font-size:.8rem;padding:6px 10px;font-weight:600;}
.btn.danger{background:transparent;border:1px solid rgba(244,63,94,.45);color:#fda4af;}
.btn.danger:hover{background:rgba(244,63,94,.1);filter:none;}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.textlink{all:unset;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--kc);}
.textlink:hover{text-decoration:underline;}
.textlink:focus-visible{outline:2px solid var(--kc);outline-offset:3px;}

.msg{margin-top:14px;font-size:.88rem;line-height:1.5;padding:11px 14px;border-radius:8px;border:1px solid;}
.msg:empty{display:none;}
.msg.ok{color:#bbf7d0;border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.08);}
.msg.err{color:#fecdd3;border-color:rgba(244,63,94,.4);background:rgba(244,63,94,.08);}
.msg.warn{color:#fde68a;border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08);}

.gates{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;}
.gate{display:flex;flex-direction:column;gap:6px;padding:16px 18px;background:var(--c-bgsub);border:1px solid rgba(148,163,184,.12);border-left:3px solid var(--gc,var(--kc));border-radius:8px;text-decoration:none;color:inherit;}
.gate:hover{background:var(--c-bg2);border-color:rgba(148,163,184,.25);border-left-color:var(--gc,var(--kc));}
.gate:focus-visible{outline:2px solid var(--gc,var(--kc));outline-offset:2px;}
.gate h3{font-size:1rem;font-weight:700;margin:0;color:var(--c-txhi);display:flex;align-items:center;gap:8px;}
.gate p{margin:0;color:var(--c-tx2);font-size:.86rem;line-height:1.5;}
.badge{font-size:11px;font-weight:700;color:var(--c-bg0);background:var(--c-warn);border-radius:999px;padding:1px 8px;}

table{width:100%;border-collapse:collapse;font-size:.86rem;}
th{text-align:left;font-size:12px;font-weight:600;color:var(--c-tx3);padding:8px 10px;border-bottom:1px solid rgba(148,163,184,.2);white-space:nowrap;}
td{padding:9px 10px;border-bottom:1px solid rgba(148,163,184,.1);vertical-align:middle;color:var(--c-tx1);}
td input,td select{padding:6px 8px;font-size:.84rem;}
.tbl-wrap{overflow-x:auto;margin:0 -4px;}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;color:var(--c-txhi);letter-spacing:.5px;white-space:nowrap;}
.st{font-size:12px;white-space:nowrap;}
.st.ok{color:#86efac;} .st.wait{color:#fcd34d;} .st.off{color:var(--c-tx3);} .st.err{color:#fda4af;}
.empty{color:var(--c-tx3);font-size:.9rem;margin:6px 0 0;}

footer{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:0 clamp(20px,5vw,40px) 40px;color:var(--c-tx4);font-size:11.5px;}

@media (max-width:760px){
  .card{padding:20px 16px 22px 20px;}
  .row{grid-template-columns:1fr;}
  .hdr-sub{display:none;}
  .clock{display:none;}
}
@media (prefers-reduced-motion:reduce){.clock .dot{animation:none;}}
