:root{font-family:Inter,system-ui,Arial,sans-serif;color:#e8eef7;background:#0a0f18;--accent:#2d78d2}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#0a0f18,#101828);min-height:100vh}a{color:#8cc8ff}.wrap{max-width:1180px;margin:auto;padding:22px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.brand{font-weight:800;font-size:22px}.pill{padding:6px 10px;border-radius:999px;background:#162235;color:#9fd4ff}.grid{display:grid;grid-template-columns:1fr 320px;gap:18px}.card{background:#111a29;border:1px solid #24324a;border-radius:16px;padding:18px;box-shadow:0 14px 40px #0004}.stack{display:grid;gap:12px}.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1}label{display:grid;gap:6px;font-size:13px;color:#aebbd0}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;padding:12px;border:1px solid #34445f;border-radius:10px;background:#0c1421;color:#fff}button,.btn{border:0;border-radius:10px;padding:11px 15px;background:var(--accent);color:white;font-weight:700;cursor:pointer}.btn.secondary,button.secondary{background:#26364e}.btn.danger{background:#a83f4a}.muted{color:#8e9bb0}.ok{color:#69d39d}.bad{color:#ff8e98}.user{padding:9px 0;border-bottom:1px solid #25324a}.ptt{width:220px;height:220px;border-radius:50%;font-size:34px;background:#2877db;touch-action:none;user-select:none}.ptt:active{transform:scale(.97)}.center{text-align:center}.hidden{display:none!important}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid #26334b;text-align:left;font-size:14px}.nav{display:flex;gap:8px;flex-wrap:wrap}.log{max-height:220px;overflow:auto;font-size:13px;color:#aebbd0}.hero{max-width:520px;margin:8vh auto}.status{font-size:18px;font-weight:800;margin:10px 0}@media(max-width:800px){.grid{grid-template-columns:1fr}.wrap{padding:12px}.ptt{width:190px;height:190px}}

.brandline{display:flex;align-items:center;gap:12px}.brand-logo{width:52px;height:52px;object-fit:contain;border-radius:12px}.modal{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:18px;z-index:999}.modal-panel{width:min(620px,96vw);max-height:90vh;overflow:auto;background:#111a29;border:1px solid #34445f;border-radius:18px;padding:20px;box-shadow:0 20px 70px #0009}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.iconbtn{width:auto;min-width:44px;padding:9px 12px}.brand-preview{min-height:130px;border-radius:16px;border:1px solid #34445f;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;overflow:hidden}.brand-preview img{max-width:160px;max-height:80px}.popup-link{cursor:pointer}

.radio-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.radio-actions button{width:auto;min-width:150px}.sos-button{background:#c62828;font-size:22px;padding:16px 30px;border:2px solid #ff7070}.sos-button:active{transform:scale(.97)}.danger-action{background:#8e3340!important}.offline-active{background:#2c7b55!important}.okbtn{outline:none!important;box-shadow:inset 0 0 0 2px #58c995}.sos-alert{background:#6e141d;border:2px solid #ff6573;color:#fff;border-radius:14px;padding:14px;margin-bottom:14px;box-shadow:0 0 24px #ff334455}.modal-panel .ok{color:#69d39d}.modal-panel .bad{color:#ff8e98}@media(max-width:600px){.radio-actions{display:grid;grid-template-columns:1fr}.radio-actions button{width:100%}.sos-button{width:100%}}

/* V2.0.7 WALKIE UI */
.radio-page{background:radial-gradient(circle at top,#1d2938 0,#0b111a 60%)}.radio-wrap{max-width:980px;margin:auto;padding:18px;display:grid;grid-template-columns:minmax(340px,600px) 320px;gap:18px;align-items:start}.walkie{position:relative;background:linear-gradient(145deg,#20252d,#11151b 55%,#090c10);border:2px solid #353d48;border-radius:34px;padding:22px;box-shadow:inset 0 0 0 2px #080a0d,0 28px 65px #0009;overflow:visible}.walkie:before{content:"";position:absolute;inset:8px;border:1px solid #414a56;border-radius:27px;pointer-events:none}.walkie-antenna{position:absolute;right:42px;top:-58px;width:24px;height:66px;background:linear-gradient(90deg,#111,#3a4148,#111);border-radius:10px 10px 4px 4px;border:2px solid #050607;box-shadow:0 5px 12px #0008}.walkie-head{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1;margin-bottom:14px}.walkie-led{font-size:11px;font-weight:800;color:#9dffb5;letter-spacing:.12em}.walkie-led span{display:inline-block;width:9px;height:9px;border-radius:50%;background:#4cff7e;box-shadow:0 0 12px #4cff7e;margin-right:5px}.walkie-screen{position:relative;z-index:1;background:linear-gradient(180deg,#0b1517,#061011);border:2px solid #2b3a3c;border-radius:14px;padding:15px;box-shadow:inset 0 0 30px #000c,0 3px 0 #303944;color:#c8ffd4}.walkie-screen.compact{max-width:620px;margin:auto}.walkie-screen select{background:#071012;border-color:#2e4a45;color:#dcffe4}.screen-row{display:flex;justify-content:space-between;gap:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;margin-bottom:10px}.destination-label{margin:10px 0;padding:7px 9px;border:1px solid #2b4e43;border-radius:7px;background:#0b231c;color:#72ffa1;font-weight:800;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.destination-label.direct{color:#ffe477;border-color:#6f6130;background:#241f0d}.meter-block{margin-top:10px}.meter-label{display:flex;justify-content:space-between;font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace;color:#87ad93;margin-bottom:5px;letter-spacing:.08em}.vu-meter{height:28px;display:grid;grid-template-columns:repeat(18,1fr);gap:3px;align-items:end;padding:4px;background:#020606;border-radius:6px;border:1px solid #263a35}.vu-meter i{height:100%;border-radius:2px;background:#15221d;opacity:.7;transition:background .05s,box-shadow .05s,opacity .05s}.vu-meter i.lit{background:#55f483;box-shadow:0 0 8px #55f483;opacity:1}.vu-meter i:nth-last-child(-n+5).lit{background:#ffd84a;box-shadow:0 0 8px #ffd84a}.vu-meter i:nth-last-child(-n+2).lit{background:#ff4d54;box-shadow:0 0 9px #ff4d54}.speaker-grill{position:relative;z-index:1;height:75px;margin:16px auto 12px;max-width:340px;border-radius:18px;background-color:#0b0e12;background-image:radial-gradient(#59616b 1.2px,transparent 1.4px);background-size:9px 9px;border:1px solid #343b43;box-shadow:inset 0 0 22px #000}.walkie-controls{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:18px;margin:10px 0 14px}.walkie .ptt,.control-ptt .ptt{width:220px;height:220px;border-radius:50%;border:10px solid #161b22;background:radial-gradient(circle at 35% 30%,#3489eb,#1856a0 62%,#0c376d);box-shadow:inset 0 0 0 3px #5d9ee7,inset 0 -18px 28px #08294f,0 8px 0 #080b0f,0 12px 22px #0008;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;user-select:none}.ptt span{font-size:42px}.ptt small{font-size:10px;letter-spacing:.12em;opacity:.8}.walkie .ptt:active,.control-ptt .ptt:active{transform:translateY(5px);box-shadow:inset 0 0 0 3px #5d9ee7,inset 0 -10px 20px #08294f,0 3px 0 #080b0f}.walkie .sos-button{width:92px;height:92px;border-radius:50%;padding:0;border:7px solid #2b1113;background:radial-gradient(circle at 35% 30%,#f24f54,#9c161b 65%,#67070a);box-shadow:inset 0 0 0 2px #ff8185,0 7px 0 #3b0608}.walkie-footer{position:relative;z-index:1;text-align:center;margin-top:10px}.mini{padding:7px 20px}.contact-panel{background:#111820;border:1px solid #303946;border-radius:20px;padding:16px;box-shadow:0 20px 50px #0007}.panel-title{font-weight:900;letter-spacing:.08em}.small{font-size:12px}.user-select{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:#161f29;border:1px solid #2b3744;margin-top:8px;padding:10px}.user-select:hover{background:#1c2a38}.user-select span:nth-child(2){display:grid;flex:1}.user-select small{color:#8695a6}.online-dot{width:10px;height:10px;border-radius:50%;background:#3ff077;box-shadow:0 0 8px #3ff077;flex:0 0 auto}.direct-badge{font-size:10px;background:#564b1c;color:#ffeb84;padding:4px 6px;border-radius:6px}.control-grid{display:grid;grid-template-columns:1fr 330px;gap:18px}.control-radio{text-align:center}.control-ptt{display:flex;gap:20px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:18px}.control-ptt .sos-button{height:75px}.admin-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.admin-item{border:1px solid #2b374b;background:#0e1724;border-radius:12px;padding:12px;margin:8px 0;display:grid;gap:10px}.action-row{display:flex;gap:7px;flex-wrap:wrap}.action-row button{padding:7px 10px;font-size:12px}.warn{background:#9a6a16!important}.danger{background:#9c3038!important}.state-badge{font-size:10px;padding:3px 6px;border-radius:999px;margin-left:5px}.state-badge.active{background:#174e32;color:#79eaa8}.state-badge.suspended{background:#6a4b12;color:#ffd873}.state-badge.archived{background:#552127;color:#ff9aa4}.member-list{margin-top:8px;border-top:1px solid #29364a}.member-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #29364a}.member-row small{color:#8795a9}
@media(max-width:850px){.radio-wrap,.control-grid,.admin-grid{grid-template-columns:1fr}.radio-wrap{padding:12px}.walkie{padding:18px 14px;border-radius:26px}.walkie-antenna{display:none}.contact-panel{order:2}.walkie-controls{gap:12px}.walkie .ptt,.control-ptt .ptt{width:190px;height:190px}.walkie .sos-button{width:78px;height:78px}.radio-actions{grid-template-columns:1fr}.member-row{align-items:flex-start;flex-direction:column}.member-row button{width:100%}}


/* V2.0.7 - niente riquadri/tap highlight sui comandi radio */
button,.btn,.user-select,.ptt,.sos-button{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;outline:none!important}
button:focus,button:focus-visible,button:active,.btn:focus,.btn:focus-visible,.user-select:focus,.user-select:focus-visible,.ptt:focus,.ptt:focus-visible,.sos-button:focus,.sos-button:focus-visible{outline:none!important}

#sos.holding{transform:scale(.97);box-shadow:0 0 0 5px rgba(239,68,68,.2) inset,0 0 22px rgba(239,68,68,.45);filter:brightness(1.15)}

.login-options{display:flex;gap:16px;flex-wrap:wrap;margin:2px 0 8px}.checkline{display:flex!important;align-items:center;gap:8px;font-size:14px}.checkline input{width:auto!important;margin:0!important}

/* V2.1.1 */
.copyright-footer{position:fixed;left:0;right:0;bottom:8px;text-align:center;font-size:12px;opacity:.62;pointer-events:none;z-index:20}.download-app-link{display:block;margin-top:10px;text-align:center}.download-app-link a{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid var(--line,#2b3d55);border-radius:10px;text-decoration:none;font-weight:700}.download-app-link a:hover{filter:brightness(1.08)}

/* V2.2.1 FINAL RADIO - look da ricetrasmittente professionale */
.radio-page{background:radial-gradient(circle at 50% -10%,#29384a 0,#101721 38%,#070b10 78%);min-height:100vh;padding-top:40px}
.radio-wrap{max-width:1040px;grid-template-columns:minmax(350px,610px) 300px;gap:22px;padding:26px 18px 34px}
.walkie{border-radius:42px;padding:24px 24px 20px;background:linear-gradient(145deg,#292f37 0,#171c22 44%,#0b0e12 100%);border:3px solid #454f5c;box-shadow:inset 0 0 0 3px #080a0d,inset 0 0 38px #0008,0 28px 70px #000b}
.walkie:after{content:"RADIO PTT";position:absolute;left:50%;bottom:13px;transform:translateX(-50%);font:800 9px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.24em;color:#59626d;pointer-events:none}
.walkie-antenna{right:44px;top:-72px;width:28px;height:82px;border-radius:12px 12px 5px 5px;background:repeating-linear-gradient(0deg,#111 0,#111 5px,#252b31 6px,#252b31 10px);border:2px solid #050607}
.walkie-head{min-height:54px}.walkie-head .brand{font-size:19px;letter-spacing:.04em}.walkie-head .brand-logo{width:46px;height:46px;background:#0a0d11;padding:4px;border:1px solid #3e4650}
.walkie-led{padding:7px 10px;border-radius:999px;background:#09140d;border:1px solid #294c35;box-shadow:inset 0 0 12px #000;color:#87ffa8}.walkie-led span{animation:radioPulse 1.8s ease-in-out infinite}@keyframes radioPulse{0%,100%{opacity:.55;box-shadow:0 0 5px #4cff7e}50%{opacity:1;box-shadow:0 0 16px #4cff7e}}
.walkie-screen{border-radius:11px;border:3px solid #343f42;background:linear-gradient(180deg,#0c1a17,#07110f);box-shadow:inset 0 0 28px #000d,0 4px 0 #050708,0 0 0 1px #4a565a;color:#baf7c6}
.walkie-screen label{font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;color:#759985;margin-top:8px}
.walkie-screen select{border-radius:5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;color:#d5ffe0;background:#06100d}
.destination-label{border-radius:4px;letter-spacing:.06em;text-align:center;text-transform:uppercase}
.vu-meter{height:31px;gap:4px;border-radius:4px;padding:5px;background:#010403;box-shadow:inset 0 0 12px #000}
.speaker-grill{height:92px;max-width:365px;margin:18px auto 16px;border-radius:24px;background-size:10px 10px;box-shadow:inset 0 0 30px #000,0 2px 0 #353c44}
.walkie-controls{gap:22px;margin-bottom:18px}.walkie .ptt{width:226px;height:226px;border:12px solid #12171d;background:radial-gradient(circle at 34% 28%,#4c9cf0 0,#1e6ab9 38%,#12487f 70%,#092d50 100%);box-shadow:inset 0 0 0 3px #76b2ee,inset 0 -22px 34px #061d35,0 9px 0 #05070a,0 14px 24px #000b}.walkie .ptt span{font-size:48px;text-shadow:0 2px 4px #0008}.walkie .ptt small{font-weight:900;letter-spacing:.17em}.walkie .sos-button{width:94px;height:94px;border:8px solid #2a0c0e;font-size:20px;box-shadow:inset 0 0 0 2px #ff8f93,inset 0 -12px 18px #5b070b,0 7px 0 #300306,0 12px 18px #0008}.walkie .sos-button.holding{animation:sosHold .45s linear infinite alternate;transform:scale(.98)}@keyframes sosHold{from{box-shadow:inset 0 0 0 2px #ff8f93,0 0 4px #ff3434}to{box-shadow:inset 0 0 0 2px #fff,0 0 28px #ff3434}}
.radio-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:relative;z-index:1}.radio-actions button{min-width:0;border:1px solid #485361;background:linear-gradient(#2a3542,#17202b);box-shadow:inset 0 1px 0 #ffffff14,0 3px 0 #07090c;border-radius:9px;letter-spacing:.035em}.radio-actions .danger-action{grid-column:1/-1;background:linear-gradient(#7d3640,#4d1920)!important;border-color:#963f4a}.offline-active{background:linear-gradient(#327e5b,#1d533c)!important}.walkie-footer{padding-bottom:12px}.contact-panel{border-radius:24px;background:linear-gradient(180deg,#161e27,#0d131a);border:2px solid #313b47;box-shadow:0 20px 50px #0009}.contact-panel .panel-title{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;color:#b9c9da}.contact-panel .user{background:#0c131a;border:1px solid #25313d;border-radius:10px;padding:9px;margin:7px 0}.contact-panel .user:hover{border-color:#4f7294}
.radio-page button,.radio-page select{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;outline:none!important}.radio-page button:focus,.radio-page button:focus-visible,.radio-page button:active,.radio-page select:focus,.radio-page select:focus-visible{outline:none!important}.radio-page button::-moz-focus-inner{border:0}
@media(max-width:760px){.radio-page{padding-top:56px}.radio-wrap{display:block;padding:14px 10px 26px}.walkie{border-radius:32px;padding:19px 16px 19px;max-width:520px;margin:0 auto}.walkie-antenna{top:-58px;height:68px;right:34px}.walkie .ptt{width:min(54vw,210px);height:min(54vw,210px)}.walkie .sos-button{width:78px;height:78px;border-width:6px}.speaker-grill{height:72px}.contact-panel{max-width:520px;margin:14px auto 0}.radio-actions{grid-template-columns:1fr 1fr}.walkie:after{bottom:10px}}
@media(max-width:400px){.walkie-controls{gap:12px}.walkie .ptt{width:184px;height:184px}.walkie .sos-button{width:68px;height:68px}.walkie .ptt span{font-size:42px}.radio-actions{grid-template-columns:1fr}.radio-actions .danger-action{grid-column:auto}.walkie-head{align-items:flex-start}.walkie-led{font-size:9px}}

/* V4.1.0 - allineamento comandi server */
.top .nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(118px,max-content);gap:8px;align-items:stretch;justify-content:end}
.top .nav>button,.top .nav>.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin:0;white-space:nowrap;text-align:center}
.admin-item .action-row,.member-row .action-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:7px;width:100%}
.admin-item .action-row button,.member-row .action-row button{min-height:38px;width:100%;display:inline-flex;align-items:center;justify-content:center;text-align:center}
@media(max-width:900px){.top{align-items:flex-start}.top .nav{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(120px,1fr));width:min(100%,420px)}.top .nav>button,.top .nav>.btn{width:100%}}
@media(max-width:520px){.top{display:grid}.top .nav{grid-template-columns:1fr 1fr;width:100%}}
