@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
:root{--bg:#07100e;--panel:#0d1916;--panel2:#11221d;--line:#294239;--green:#b5ef69;--muted:#879b90;--white:#f1f6ee}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;background:var(--bg);color:var(--white);font-family:Inter,system-ui,sans-serif}button,input{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(410px,.92fr)}.scanlines{pointer-events:none;position:fixed;z-index:8;inset:0;background:repeating-linear-gradient(0deg,transparent 0,transparent 4px,#0002 5px);opacity:.23}.operations{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;overflow:hidden;padding:36px 48px 26px;border-right:1px solid #47634a;background:radial-gradient(ellipse at 45% 45%,#1b3429 0,#10221d 45%,#081410 85%)}.operations:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#9ecf7a12 1px,transparent 1px),linear-gradient(90deg,#9ecf7a12 1px,transparent 1px);background-size:43px 43px;mask-image:linear-gradient(90deg,#000,transparent 95%)}.operations:after{content:'';position:absolute;inset:-40%;background:radial-gradient(circle,#b5ef690a,transparent 60%);animation:glow 9s ease-in-out infinite alternate;pointer-events:none}.operations>*{position:relative;z-index:1}.brand{display:flex;align-items:center;gap:13px;font-family:'Barlow Condensed',sans-serif;font-size:30px;line-height:.9;font-weight:900;letter-spacing:1px}.brand-mark{width:44px;height:44px;border:2px solid var(--green);display:grid;place-items:center;color:var(--green);font-size:25px;clip-path:polygon(15% 0,85% 0,100% 15%,100% 85%,85% 100%,15% 100%,0 85%,0 15%)}.brand-accent{color:var(--green)}.brand small{display:block;font:500 9px 'IBM Plex Mono',monospace;letter-spacing:2.5px;color:#9ab6a4;margin-top:9px}.coordinates,.operations-footer,.top-line,.login-footer,.kicker,.section-id,.status,.radar-label{font:500 10px 'IBM Plex Mono',monospace;letter-spacing:1.7px}.coordinates{position:absolute;top:114px;left:49px;color:#6d8c7b}.coordinates span{color:var(--green)}.hero-main{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 0 20px}.status{align-self:flex-start;color:#a6c4a9;display:flex;gap:10px;align-items:center}.status-dot,.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green);animation:blink 2.2s infinite}.status-line{height:1px;width:36px;background:#6a8d6d}.radar-wrap{width:min(340px,70%);aspect-ratio:1;position:relative;margin:24px auto 20px}.radar{position:absolute;inset:9%;border:1px solid #80b08075;border-radius:50%;overflow:hidden;background:repeating-radial-gradient(circle,transparent 0 46px,#a8e78a33 47px 48px),radial-gradient(circle,#173b2c 0,#0c1d17 80%);box-shadow:0 0 0 24px #8bb88108,0 0 0 48px #8bb88106,inset 0 0 35px #0009}.radar-sweep{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 265deg,#a5f47b06 286deg,#a5f47b77 358deg,transparent 360deg);animation:spin 6s linear infinite}.radar-cross{position:absolute;background:#9acb8a55}.radar-cross-x{height:1px;top:50%;left:0;right:0}.radar-cross-y{width:1px;left:50%;top:0;bottom:0}.radar-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:24px;color:var(--green);text-shadow:0 0 16px var(--green)}.radar-ping{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px 3px #b5ef6960;animation:ping 3s infinite}.ping-one{top:27%;left:65%}.ping-two{top:63%;left:26%;animation-delay:1s}.ping-three{top:74%;left:76%;animation-delay:2s}.radar-label{position:absolute;color:#b4d3a7}.label-n{top:0;left:50%}.label-e{right:0;top:50%}.label-s{bottom:0;left:50%}.label-w{left:0;top:50%}.headline{align-self:flex-start}.section-id{color:var(--green)}.headline h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(64px,7.5vw,112px);line-height:.83;letter-spacing:1px;margin:18px 0 22px;font-weight:900}.headline h1 em{color:var(--green);font-style:normal}.headline p{color:#a5b8ac;font-size:13px;line-height:1.8;max-width:380px}.operations-footer{display:flex;justify-content:space-between;color:#86a38d}.operations-footer span:last-child{color:var(--green)}.login-side{display:flex;flex-direction:column;justify-content:space-between;padding:37px clamp(28px,5vw,86px) 25px;background:linear-gradient(145deg,#0b1713,#0a1411 60%,#101d17)}.top-line{display:flex;align-items:center;gap:9px;color:#9cb6a3}.terminal-id{margin-left:auto;color:#5f806e}.login-card{width:100%;max-width:490px;margin:35px auto}.shield{width:56px;height:58px;position:relative;font-size:60px;color:var(--green);line-height:1;display:grid;place-items:center;margin-bottom:25px}.shield span{position:absolute;font-size:24px;top:16px;left:21px}.kicker{color:var(--green);margin:0 0 12px}.login-card h2{font:800 clamp(43px,4.2vw,62px)/.96 'Barlow Condensed',sans-serif;letter-spacing:.4px;margin:0}.login-card h2 span{color:var(--green)}.subtitle{font-size:13px;color:#9bad9f;line-height:1.7;max-width:365px;margin:16px 0 29px}.roles{border:0;margin:0;padding:0;min-width:0}.roles legend,.password-group>label{font:600 12px 'IBM Plex Mono',monospace;color:var(--green);letter-spacing:1px;margin-bottom:12px}.roles legend span,.password-group>label span{color:#c7d6c7;margin-left:10px}.role{display:block;margin:0 0 9px;cursor:pointer}.role input{position:absolute;opacity:0;width:1px;height:1px}.role-content{display:flex;align-items:center;gap:16px;min-height:70px;padding:11px 15px;background:#11221b;border:1px solid #30483a;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);transition:background .2s,border-color .2s,transform .2s}.role:hover .role-content{background:#1a3024;transform:translateX(3px)}.role input:checked+.role-content{border-color:var(--green);background:#1d3524;box-shadow:inset 3px 0 var(--green)}.role input:focus-visible+.role-content{outline:2px solid white;outline-offset:3px}.role-symbol{display:grid;place-items:center;width:42px;height:42px;border:1px solid #365447;background:#0b1813;font-size:24px}.blue{color:#6aaeff}.red{color:#ff7272}.amber{color:#f5c568}.role-name{font:700 18px 'Barlow Condensed',sans-serif;letter-spacing:1px}.role-name small{display:block;font:500 9px 'IBM Plex Mono',monospace;color:#92a89a;letter-spacing:.5px;margin-top:6px}.role-check{margin-left:auto;color:var(--green);opacity:0;font-size:18px}.role input:checked+.role-content .role-check{opacity:1}.password-group{margin-top:24px}.password-group>label{display:block}.password-wrap{display:flex;align-items:center;border:1px solid #405746;background:#0b1712;padding:0 12px}.password-wrap:focus-within{border-color:var(--green)}.password-wrap>span{font-size:23px;color:var(--green)}.password-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:white;padding:17px 12px;font-size:14px}.password-wrap input::placeholder{color:#647a6b}.password-wrap button{border:0;background:none;color:var(--green);font:600 10px 'IBM Plex Mono',monospace;cursor:pointer;letter-spacing:1px;padding:10px 0}.submit{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:21px;padding:19px 22px;background:var(--green);color:#101c0c;border:0;cursor:pointer;font:800 15px 'Barlow Condensed',sans-serif;letter-spacing:2px;transition:filter .2s,transform .2s}.submit:hover{filter:brightness(1.13);transform:translateY(-2px)}.submit span:last-child{font:600 24px Inter,sans-serif}.security-note{font:400 10px 'IBM Plex Mono',monospace;line-height:1.8;color:#718e7c;margin-top:23px}.security-note span{color:var(--green);margin-right:6px}.login-footer{display:flex;justify-content:space-between;color:#57715e}.error{border-left:3px solid #fa8888;background:#4a1b1d55;padding:12px;color:#ffd2d2;font-size:13px;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.3}}@keyframes ping{50%{opacity:.3;transform:scale(.7)}}@keyframes glow{to{transform:translate(10%,10%)}}@media(max-width:920px){.shell{grid-template-columns:1fr}.operations{min-height:260px;padding:22px 28px}.coordinates,.radar-wrap,.operations-footer,.status{display:none}.hero-main{padding:30px 0 0;align-items:flex-start}.headline h1{font-size:64px;margin:9px 0}.headline p{display:none}.login-side{padding:22px 28px;min-height:calc(100vh - 260px)}.login-card{margin:35px auto}}@media(max-width:480px){.operations{min-height:210px}.headline h1{font-size:54px}.brand{font-size:24px}.login-side{padding:20px}.login-card{margin:30px auto}.role-content{min-height:64px}.login-footer{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}


/* DIMONIOS MAP — fotografia evidente, impaginazione responsive */
:root{--green:#a8ee86;--white:#f3f6ed}
html,body{min-height:100%;width:100%}
body{background:#09120e}
.shell{grid-template-columns:minmax(0,1.65fr) minmax(400px,1fr);min-height:100svh;background:#08110d}
.operations{
  min-height:100svh;
  padding:clamp(22px,2.5vw,44px);
  border-right:0;
  background-image:linear-gradient(90deg,rgba(2,10,7,.18),rgba(2,10,7,.14) 48%,rgba(2,10,7,.38)),url('sfondo_militare.webp');
  background-size:cover,cover;
  background-position:center,35% center;
}
.operations:before{background-image:linear-gradient(#b5ef6920 1px,transparent 1px),linear-gradient(90deg,#b5ef6920 1px,transparent 1px);background-size:44px 44px;mask-image:none;opacity:.52}
.operations:after{pointer-events:none}
.operations .brand,.operations .coordinates,.operations .headline,.operations .status{text-shadow:0 2px 14px #000,0 0 28px #000}
.brand{font-size:clamp(30px,3.8vw,58px);letter-spacing:1px}
.brand-mark{width:55px;height:55px;font-size:33px;background:#03140b80}
.brand small{font-size:10px}
.coordinates{top:clamp(105px,8vw,128px);left:clamp(22px,2.5vw,44px);color:#c0efac}
.hero-main{padding:50px 0 22px}
.status{align-self:center;order:2;margin:8px auto 16px;padding:8px 12px;background:#03130dc9;border:1px solid #84b75e70}
.radar-wrap{order:1;width:min(370px,57%);margin:18px auto 10px;filter:drop-shadow(0 0 13px #0c211a)}
.radar{background:repeating-radial-gradient(circle,transparent 0 40px,#a8e78a33 41px 42px),radial-gradient(circle,#0d351e9e 0,#04160ba8 80%)}
.headline{order:3;align-self:center;text-align:center;background:#03110a61;padding:12px 18px;border-radius:4px}
.headline h1{font-size:clamp(55px,5.2vw,89px);line-height:.94;margin:14px 0}
.headline h1 em{font-family:Georgia,serif;font-style:italic;color:#f1f4e8;letter-spacing:5px}
.headline p{margin:0 auto;max-width:460px;color:#e6e9e0}
.login-side{
  padding:clamp(18px,2.6vw,42px);
  background:linear-gradient(180deg,#07110cb0,#05100ae6),url('sfondo_militare.webp') 80% center/cover;
  border-left:1px solid #a2e7845c;
}
.top-line{padding:0 0 14px;border-bottom:1px solid #9bc97d65}
.login-card{
  width:100%;max-width:510px;margin:24px auto;
  padding:clamp(20px,2vw,30px);
  border:1px solid #a1df867f;
  background:rgba(2,13,9,.82);
  box-shadow:0 16px 70px #000b,inset 0 0 30px #1a472a1f;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
}
.shield{margin:0 auto 14px}
.kicker{text-align:center}
.login-card h2{text-align:center;font-size:clamp(40px,3.8vw,56px)}
.login-card .subtitle.sassari-heading{max-width:none;margin:14px 0 25px}
.role-content{background:#03130dbb;min-height:63px}
.role input:checked+.role-content{background:#123321c9}
.password-wrap{background:#06130ec9}
.submit{background:linear-gradient(180deg,#21552b,#0e3018);color:#f2ffe7;border:1px solid #a5f37c;box-shadow:inset 0 0 17px #9cfa7040}
.submit:hover{filter:brightness(1.24)}
@media(max-width:950px){
 .shell{grid-template-columns:1fr}
 .operations{min-height:340px;padding:20px 24px;background-position:center,35% 30%}
 .coordinates,.operations-footer,.status{display:none}
 .hero-main{padding:16px 0 0;align-items:flex-start}
 .radar-wrap{position:absolute;right:3%;top:55px;width:180px;opacity:.75}
 .headline{align-self:flex-start;text-align:left;position:relative;z-index:2;padding:10px}
 .headline h1{font-size:clamp(40px,6vw,65px)}
 .headline p{display:none}
 .login-side{min-height:auto;padding:22px 18px;border-left:0;border-top:1px solid #a2e7845c}
 .login-card{margin:20px auto}
}
@media(max-width:550px){
 .operations{min-height:270px;background-position:center,25% center}
 .brand{font-size:29px}
 .brand-mark{width:42px;height:42px;font-size:24px}
 .radar-wrap{width:120px;top:82px;right:0;opacity:.55}
 .headline h1{font-size:43px}
 .login-card{padding:18px 14px}
 .login-card h2{font-size:42px}
 .login-side{padding:16px 12px}
 .role-content{padding:10px;gap:10px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* VERSIONE FEDELE ALL'ANTEPRIMA - immagini estratte dall'anteprima approvata */
:root{--green:#9ded7a;--white:#f6f7f0}
html,body{min-height:100%;width:100%}
body{background:#06120c}
.shell{grid-template-columns:minmax(0,1.62fr) minmax(400px,1fr);min-height:100svh;background:#06120c}
.operations{min-height:100svh;padding:clamp(24px,2.5vw,43px);border-right:0;
 background-image:linear-gradient(90deg,rgba(1,12,7,.08) 0%,rgba(1,12,7,.05) 60%,rgba(1,12,7,.25) 100%),url('militari_anteprima.webp');
 background-size:cover;background-position:center center}
.operations:before{background-image:linear-gradient(#c1efab24 1px,transparent 1px),linear-gradient(90deg,#c1efab24 1px,transparent 1px);background-size:42px 42px;mask-image:none;opacity:.48}
.operations:after{display:none}
.operations>*{z-index:1}
.brand{font-size:clamp(31px,3.8vw,59px);text-shadow:0 2px 18px #000}
.brand-mark{width:60px;height:60px;font-size:35px;background:#061a0d75}
.brand small{font-size:10px}
.coordinates{color:#c7f7af;text-shadow:0 2px 9px #000;top:125px;left:clamp(24px,2.5vw,43px)}
.hero-main{padding:30px 0 8px;justify-content:space-between;flex:1}
.radar-wrap{order:1;width:min(355px,52%);margin:20px auto 0;filter:drop-shadow(0 0 14px #153e24)}
.radar{background:repeating-radial-gradient(circle,transparent 0 37px,#b6f6a258 38px 39px),radial-gradient(circle,#123d24aa 0,#041a0c91 80%);box-shadow:0 0 35px #4eea3d28,inset 0 0 30px #0007}
.status{order:2;align-self:center;margin:10px auto;padding:7px 12px;background:#03170bbd;border:1px solid #8fda7b66;color:#cbf6c3}
.headline{order:3;align-self:center;text-align:center;padding:14px 20px;background:#04140d91;backdrop-filter:blur(2px);border-radius:5px;text-shadow:0 2px 10px #000}
.headline h1{font-size:clamp(48px,5vw,84px);line-height:.95;margin:14px 0}
.headline h1 em{color:#f2f4e8;font-family:Georgia,serif;font-style:italic;letter-spacing:5px}
.headline p{color:#e9f1e7;max-width:490px;margin:0 auto}
.operations-footer{padding-top:10px;text-shadow:0 2px 8px #000}
.login-side{min-height:100svh;padding:clamp(20px,2.3vw,38px);background:linear-gradient(180deg,#06130ddd,#06130df5),url('militari_anteprima.webp') 75% center/cover;border-left:1px solid #9be77b6b}
.top-line{padding-bottom:13px;border-bottom:1px solid #9be77b69}
.login-card{max-width:510px;margin:18px auto;padding:clamp(20px,2vw,29px);border:1px solid #9be77b9c;background:#03110de0;box-shadow:0 16px 75px #0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px))}
.shield{margin:0 auto 12px}.kicker{text-align:center;color:#c3d2c6}
.login-card h2{text-align:center;font-size:clamp(40px,3.7vw,55px)}
.login-card .subtitle.sassari-heading{max-width:none;margin:13px 0 24px}
.role-content{background:#051b14df;min-height:61px;border-color:#65866c}
.role input:checked+.role-content{background:#0d3121e8;border-color:#9ded7a}
.password-wrap{background:#061812e8}
.submit{background:linear-gradient(180deg,#1e5328,#0b3018);color:#e9ffe2;border:1px solid #a7fa81;box-shadow:inset 0 0 18px #8ffb5940}
.submit:hover{filter:brightness(1.2)}
@media(max-width:1000px){
.shell{grid-template-columns:1fr}
.operations{min-height:340px;padding:20px 24px;background-position:center 38%}
.coordinates,.operations-footer,.status{display:none}
.hero-main{padding:22px 0 0;align-items:flex-start;justify-content:center}
.radar-wrap{position:absolute;right:4%;top:55px;width:175px;opacity:.86}
.headline{align-self:flex-start;text-align:left;padding:10px;max-width:70%}
.headline h1{font-size:clamp(40px,6vw,62px)}
.headline p{display:none}
.login-side{min-height:auto;padding:20px 16px;border-left:0;border-top:1px solid #9be77b6b}
.login-card{margin:20px auto}
}
@media(max-width:540px){.operations{min-height:255px;background-position:34% 30%}.brand{font-size:29px}.brand-mark{width:44px;height:44px;font-size:25px}.radar-wrap{width:110px;top:70px;right:5%}.headline{max-width:90%}.headline h1{font-size:43px}.login-card{padding:18px 14px}.role-content{min-height:62px}}
