:root{--navy:#071b38;--navy2:#0b2c58;--blue:#0876e8;--cyan:#20d5dc;--green:#2bc784;--ice:#eef7fb;--ink:#0b1d35;--muted:#62758a;--line:#d8e7ee;--white:#fff;--shadow:0 18px 50px rgba(19,57,86,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}html,body,#app{width:100%;min-height:100%;margin:0}body{background:var(--ice);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}.shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}.workspace{min-width:0}.side{position:fixed;inset:0 auto 0 0;width:270px;z-index:30;display:flex;flex-direction:column;padding:26px 18px 20px;color:#fff;background:radial-gradient(circle at 20% 18%,rgba(32,213,220,.18),transparent 22%),radial-gradient(circle at 110% 75%,rgba(43,199,132,.18),transparent 32%),linear-gradient(160deg,#06172f,#0a2a53 62%,#073c4b);overflow:hidden}.side:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(64,224,216,.13);border-radius:50%;right:-205px;top:22%;box-shadow:0 0 0 44px rgba(64,224,216,.03),0 0 0 88px rgba(64,224,216,.025);pointer-events:none}.gate-brand{display:flex;align-items:center;gap:12px;padding:2px 10px 28px;position:relative;z-index:1}.gate-brand strong{display:block;font-size:19px;letter-spacing:.12em}.gate-brand small{display:block;margin-top:4px;color:#7edee0;font-size:9px;letter-spacing:.14em}.gate-mark{position:relative;width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(71,224,219,.5);border-radius:16px;background:linear-gradient(145deg,rgba(8,118,232,.35),rgba(43,199,132,.15));box-shadow:inset 0 0 25px rgba(34,211,220,.12),0 8px 28px rgba(0,0,0,.25)}.gate-mark b{font-size:17px;letter-spacing:.05em}.gate-mark i{position:absolute;inset:5px;border:1px solid rgba(255,255,255,.12);border-radius:12px}.side nav{display:grid;gap:6px;position:relative;z-index:1}.side nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid transparent;border-radius:12px;color:#bbcbdb;text-decoration:none;font-size:14px;font-weight:650;transition:.2s}.side nav a span{width:22px;color:#64e4df;font-size:18px;text-align:center}.side nav a:hover,.side nav a.active{color:#fff;background:linear-gradient(90deg,rgba(8,118,232,.38),rgba(32,213,220,.08));border-color:rgba(86,220,224,.24);box-shadow:inset 3px 0 #2bd7d5}.eco-card{position:relative;z-index:1;margin:auto 8px 18px;padding:17px;border:1px solid rgba(75,219,197,.24);border-radius:16px;background:rgba(4,22,43,.32);backdrop-filter:blur(6px)}.eco-card span{display:block;color:#54e0d2;font-size:9px;letter-spacing:.2em}.eco-card b{display:block;margin:8px 0 5px;font-size:14px}.eco-card small{color:#9eb5c7;line-height:1.45}.side-user{position:relative;z-index:1;margin:0 8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}.side-user span,.side-user small{display:block}.side-user span{font-weight:700}.side-user small{margin-top:4px;color:#81dadd}.workspace{grid-column:2}.top{height:68px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:flex-end;padding:0 34px;border-bottom:1px solid rgba(9,72,115,.11);background:rgba(249,253,255,.88);backdrop-filter:blur(14px)}.system-state{margin-right:auto;color:#28716e;font-size:10px;font-weight:800;letter-spacing:.14em}.system-state i{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(43,199,132,.12),0 0 12px #2bc784}.who{display:flex;align-items:center;gap:15px}.who>span{text-align:right;font-size:13px;font-weight:750}.who small{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:500}.who button,#logout{min-height:auto;padding:9px 13px;color:#123559;background:#fff;border:1px solid #c9dae3;border-radius:9px;box-shadow:none}.menu-toggle,.mobile-brand{display:none}.main{width:100%;max-width:none;padding:32px clamp(24px,3vw,58px) 26px}.hero{position:relative;min-height:180px;display:flex;align-items:center;justify-content:space-between;padding:30px 38px;margin-bottom:20px;border:1px solid rgba(27,159,192,.18);border-radius:24px;background:radial-gradient(circle at 80% 20%,rgba(32,213,220,.16),transparent 24%),linear-gradient(120deg,#fff 20%,#f0fbfd);box-shadow:var(--shadow);overflow:hidden}.hero:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:linear-gradient(90deg,var(--blue),var(--cyan),var(--green),transparent)}.eyebrow,.section-heading span{color:#0876a4;font-size:10px;font-weight:800;letter-spacing:.19em}.hero h1{margin:8px 0 8px;font-size:clamp(30px,3vw,48px);line-height:1;letter-spacing:-.035em}.hero p{max-width:680px;margin:0;color:var(--muted);font-size:15px}.hero-orbit{position:relative;flex:0 0 128px;height:128px;margin-right:20px;display:grid;place-items:center;border:1px solid rgba(8,118,232,.22);border-radius:50%;box-shadow:0 0 0 17px rgba(32,213,220,.05),0 0 0 34px rgba(43,199,132,.025)}.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;inset:17px;border:1px dashed rgba(18,151,190,.28);border-radius:50%}.hero-orbit:after{inset:35px;background:linear-gradient(145deg,#0b2c58,#0876e8);border:0;box-shadow:0 12px 30px rgba(8,118,232,.22)}.hero-orbit b{position:relative;z-index:2;color:#fff;letter-spacing:.08em}.hero-orbit i{position:absolute;width:8px;height:8px;border-radius:50%;background:#2bc784;box-shadow:0 0 12px #2bc784}.hero-orbit i:nth-child(1){top:3px}.hero-orbit i:nth-child(2){right:4px;bottom:32px;background:#20d5dc}.hero-orbit i:nth-child(3){left:11px;bottom:18px;background:#0876e8}.legend{position:sticky;top:82px;z-index:15;display:flex;align-items:center;gap:18px;min-height:52px;padding:10px 18px;margin-bottom:18px;border:1px solid rgba(16,98,142,.14);border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 8px 25px rgba(19,57,86,.07);backdrop-filter:blur(12px)}.legend strong{margin-right:auto;color:#51697d;font-size:10px;letter-spacing:.13em}.legend span{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:650}.dot{width:11px;height:11px;display:inline-block;border-radius:50%;box-shadow:0 0 0 4px rgba(80,100,120,.08)}.dot.APERTA,.dot.APERTO{background:#e63b32}.dot.PROGRAMMATA,.dot.PROGRAMMATO{background:#f49a16}.dot.IN_CORSO{background:#1975dc}.dot.SOSPESA,.dot.SOSPESO{background:#7657d9}.dot.ESEGUITA_DA_RGD{background:#149965}.dot.CHIUSA,.dot.CHIUSO{background:#647284}.actionbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}.actionbar:empty{display:none}.actionbar button,button{border-radius:10px;background:linear-gradient(135deg,#0c70df,#079cb8);box-shadow:0 8px 20px rgba(8,118,232,.16)}.actionbar .secondary{color:#153d60;background:#fff;border:1px solid #bdd6e2;box-shadow:none}.privacy-note{margin:0 0 30px;padding:13px 17px!important;border:1px solid #bee4e8!important;border-radius:12px!important;color:#31556c!important;background:linear-gradient(90deg,#effcff,#f7fffb)!important;font-size:12px!important}.privacy-note b{margin-right:8px;color:#058d91;font-size:9px;letter-spacing:.12em}.main h2{margin:28px 0 14px;font-size:21px;letter-spacing:-.015em}.main h2:before{content:"";display:inline-block;width:4px;height:19px;margin-right:10px;border-radius:3px;background:linear-gradient(var(--cyan),var(--green));vertical-align:-3px}.panel{border:1px solid var(--line)!important;border-radius:16px!important;background:rgba(255,255,255,.94)!important;box-shadow:0 14px 35px rgba(24,66,94,.07)!important;overflow:auto}.panel table{width:100%;min-width:900px;border-collapse:collapse}.panel th{padding:14px 16px!important;color:#62798c!important;background:#f5fafc!important;border-bottom:1px solid #dce9ef!important;font-size:10px!important;letter-spacing:.08em;text-transform:uppercase}.panel td{padding:15px 16px!important;border-bottom:1px solid #e8eff3!important;font-size:13px}.panel tbody tr:last-child td{border-bottom:0!important}.panel tbody tr[data-id]{cursor:pointer;transition:.15s}.panel tbody tr[data-id]:hover{background:#effafd;box-shadow:inset 3px 0 var(--cyan)}td.status{font-size:11px!important;font-weight:800;letter-spacing:.04em}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-top:34px}.section-heading h2{margin:5px 0 14px}.section-heading h2:before{display:none}.main footer{display:flex;justify-content:space-between;margin-top:40px;padding:20px 2px;border-top:1px solid #d7e6ec;color:#7890a0;font-size:10px;letter-spacing:.08em}.main footer b{color:#2e6673}.modal{z-index:100;background:rgba(4,18,36,.7);backdrop-filter:blur(8px)}.modal .card{border:1px solid rgba(31,174,190,.25);border-radius:20px;box-shadow:0 30px 90px rgba(0,18,42,.35)}.modal .card h2{font-size:26px}.permission-grid .permission{background:#f5fbfd!important;border-color:#d4e9ee!important}.login{position:relative;width:min(460px,calc(100vw - 32px));margin:0;padding:52px 46px;border:1px solid rgba(32,213,220,.3);border-radius:26px;background:rgba(255,255,255,.95);box-shadow:0 35px 100px rgba(0,28,59,.32)}body:has(.login){display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 15% 20%,rgba(32,213,220,.23),transparent 24%),radial-gradient(circle at 85% 82%,rgba(43,199,132,.2),transparent 28%),linear-gradient(145deg,#061830,#0b315e 58%,#075061)}.login .brand{display:flex;align-items:baseline;gap:10px;color:#0b315e}.login .brand b{font-size:30px}.login .brand span{color:#0e9a9a;letter-spacing:.15em}.login h1{margin:28px 0 10px;font-size:30px;line-height:1.1}.login>p{color:var(--muted);line-height:1.5}.login label{color:#29475f}.login input{border-radius:10px;border-color:#c8dde7;background:#f7fbfd}.login button{width:100%;margin-top:8px;padding:13px}
@media(max-width:1100px){.shell{grid-template-columns:230px minmax(0,1fr)}.side{width:230px;padding-inline:12px}.workspace{grid-column:2}.legend{gap:12px;overflow-x:auto}.hero-orbit{display:none}.main{padding-inline:24px}}
@media(max-width:760px){.shell{display:block}.workspace{grid-column:auto}.side{width:min(310px,86vw);transform:translateX(-105%);transition:transform .25s;box-shadow:20px 0 60px rgba(0,17,37,.35)}.side.open{transform:translateX(0)}.top{height:60px;padding:0 14px}.menu-toggle{display:block;margin-right:11px;padding:8px 10px;color:#0a3158;background:#fff;border:1px solid #cee0e8;box-shadow:none}.mobile-brand{display:block;margin-right:auto;font-size:12px;letter-spacing:.06em}.mobile-brand b{color:#078e9e}.system-state{display:none}.who>span{display:none}.main{padding:16px 12px}.hero{min-height:145px;padding:24px 20px;border-radius:18px}.hero h1{font-size:31px}.hero p{font-size:13px;line-height:1.45}.legend{top:68px;margin:0 -2px 16px;padding:10px 12px;gap:14px;border-radius:12px}.legend strong{display:none}.legend span{font-size:11px}.actionbar{display:grid;grid-template-columns:1fr}.actionbar button{width:100%;margin:0}.privacy-note{line-height:1.45}.panel{border-radius:13px!important}.panel table{min-width:760px}.main h2{font-size:19px}.modal .card{width:calc(100vw - 18px);max-height:94vh;padding:22px 18px;border-radius:17px}.main footer{display:block;line-height:1.8}}
