  :root{
    --bg:#111111;
    --bg2:#1a1a1a;
    --panel:rgba(26,26,26,0.45);
    --panel-solid:#1a1a1a;
    --cyan:#00eeff;
    --cyan2:#6ff5ff;
    --cyan3:#00c8e0;
    --cyan-dim:#0d4a54;
    --cyan-glow:rgba(0,238,255,0.55);
    --amber:#ffb020;
    --amber-glow:rgba(255,176,32,0.45);
    --red:#ff2463;
    --white:#ffffff;
    --text-dim:#999999;
    --line:rgba(0,238,255,0.22);
    --font-display:'Montserrat', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'Space Mono', monospace;
  }
  *{margin:0; padding:0; box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg); color:var(--white); font-family:var(--font-body); font-weight:500; overflow-x:hidden; position:relative; font-size:17px; min-height:100vh;}
  a{color:inherit;} button{font-family:inherit;} img,svg{display:block; max-width:100%;}
  ::selection{background:var(--cyan); color:#fff;}

  .bg-grid{position:fixed; inset:0; z-index:0; pointer-events:none; background-image:linear-gradient(rgba(0,238,255,0.07) 1px, transparent 1px), linear-gradient(90deg, rgba(0,238,255,0.07) 1px, transparent 1px); background-size:56px 56px; mask-image:radial-gradient(ellipse 90% 70% at 50% 20%, black 30%, transparent 85%);}
  .bg-radar{position:fixed; top:-30vw; right:-30vw; width:80vw; height:80vw; z-index:0; pointer-events:none; border-radius:50%; opacity:.18; background:conic-gradient(from 0deg, var(--cyan) 0deg, var(--cyan2) 120deg, transparent 240deg, transparent 360deg); animation:radarspin 6s linear infinite;}
  @keyframes radarspin{to{transform:rotate(360deg);}}
  .scan-sweep{position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.5; background:linear-gradient(to bottom, transparent 0%, rgba(0,238,255,0.09) 50%, transparent 100%); height:220px; animation:sweepDown 7s linear infinite;}
  @keyframes sweepDown{0%{transform:translateY(-220px);} 100%{transform:translateY(100vh);}}

  main, header, footer{position:relative; z-index:2;}

  .hud{position:relative;}
  .corners{position:absolute; inset:0; pointer-events:none; z-index:3;}
  .corners span{position:absolute; width:14px; height:14px;}
  .corners span:nth-child(1){top:-1px; left:-1px; border-top:2px solid var(--cyan); border-left:2px solid var(--cyan);}
  .corners span:nth-child(2){top:-1px; right:-1px; border-top:2px solid var(--cyan2); border-right:2px solid var(--cyan2);}
  .corners span:nth-child(3){bottom:-1px; left:-1px; border-bottom:2px solid var(--cyan2); border-left:2px solid var(--cyan2);}
  .corners span:nth-child(4){bottom:-1px; right:-1px; border-bottom:2px solid var(--cyan); border-right:2px solid var(--cyan);}

  #loader{position:fixed; inset:0; z-index:400; background:radial-gradient(ellipse at 50% 40%, var(--bg2), var(--bg)); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;}
  .arc-reactor{position:relative; width:140px; height:140px;}
  .arc-ring{position:absolute; inset:0; border-radius:50%; border:2px solid transparent;}
  .arc-ring.r1{border-top-color:var(--cyan); border-right-color:var(--cyan2); animation:spinCW 2.2s linear infinite;}
  .arc-ring.r2{inset:15px; border-bottom-color:var(--cyan3); border-left-color:rgba(0,238,255,.4); animation:spinCCW 1.6s linear infinite;}
  .arc-ring.r3{inset:32px; border-top-color:rgba(110,245,255,.8); animation:spinCW 1.1s linear infinite;}
  .arc-core{position:absolute; inset:52px; border-radius:50%; background:radial-gradient(circle, var(--cyan2), var(--cyan) 60%, rgba(0,238,255,.1)); box-shadow:0 0 50px var(--cyan-glow); animation:pulseCore 1.4s ease-in-out infinite;}
  @keyframes spinCW{to{transform:rotate(360deg);}}
  @keyframes spinCCW{to{transform:rotate(-360deg);}}
  @keyframes pulseCore{0%,100%{opacity:.7; transform:scale(.9);} 50%{opacity:1; transform:scale(1);}}
  #loaderText{font-family:var(--font-mono); font-size:.8rem; background:linear-gradient(90deg,var(--cyan),var(--cyan2)); -webkit-background-clip:text; background-clip:text; color:transparent; letter-spacing:.15em; text-align:center; min-height:1.4em; font-weight:600;}
  #loader.hide{animation:loaderOut .6s ease forwards;}
  @keyframes loaderOut{to{opacity:0; visibility:hidden;}}

  .reticle{position:fixed; top:0; left:0; z-index:250; pointer-events:none; transform:translate(-50%,-50%);}
  .reticle .ring{width:28px; height:28px; border:1px solid var(--cyan); border-radius:50%; position:relative; animation:spinCW 6s linear infinite; transition:width .2s, height .2s, border-color .2s; box-shadow:0 0 12px var(--cyan-glow);}
  .reticle .ring::before, .reticle .ring::after{content:''; position:absolute; background:var(--cyan2);}
  .reticle .ring::before{top:-6px; left:50%; width:1px; height:5px; transform:translateX(-50%);}
  .reticle .ring::after{bottom:-6px; left:50%; width:1px; height:5px; transform:translateX(-50%);}
  .reticle .dot{position:absolute; top:50%; left:50%; width:3px; height:3px; background:var(--cyan2); border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 8px var(--cyan2);}
  .reticle.grow .ring{width:46px; height:46px; border-color:var(--amber); box-shadow:0 0 14px var(--amber-glow);}
  body.no-cursor .reticle{display:none;}

  header{position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(17,17,17,.78); backdrop-filter:blur(16px); border-bottom:1px solid var(--line); box-shadow:0 4px 30px rgba(0,238,255,.08); display:flex; align-items:center; padding:16px 5vw; gap:14px;}
  .header-top{display:flex; align-items:center; justify-content:space-between; flex:1; min-width:0; gap:14px;}
  .logo-wrap{display:flex; flex-direction:column; gap:3px;}
  .logo-tag{font-family:var(--font-mono); font-size:.56rem; letter-spacing:.16em; color:var(--text-dim); text-transform:uppercase; padding-left:35px;}
  .logo{font-family:var(--font-display); font-weight:700; font-size:1.05rem; letter-spacing:.08em; background:linear-gradient(90deg,var(--cyan),var(--cyan2)); -webkit-background-clip:text; background-clip:text; color:transparent; display:flex; align-items:center; gap:9px;}
  .logo-icon{width:26px; height:26px; flex-shrink:0;}
  .logo span{color:var(--white); background:none; -webkit-text-fill-color:var(--white);}
  .clock-box{text-align:right; font-family:var(--font-mono);}
  .clock-time{font-size:1.15rem; color:var(--cyan2); letter-spacing:.06em; text-shadow:0 0 12px var(--cyan-glow);}
  .clock-date{font-size:.66rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:.1em; margin-top:2px;}
  .nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer;}
  .nav-toggle span{width:22px; height:2px; background:var(--cyan); border-radius:2px;}

  .tab-nav{display:flex; gap:0; padding:0 5vw; border-top:1px solid var(--line); overflow-x:auto;}
  .tab-btn{
    background:none; border:none; color:var(--text-dim); font-family:var(--font-mono); font-size:.74rem; letter-spacing:.12em;
    text-transform:uppercase; padding:14px 20px; cursor:pointer; position:relative; white-space:nowrap; transition:color .25s, transform .2s;
  }
  .tab-btn .n{color:var(--cyan2); margin-right:8px; opacity:.7;}
  .tab-btn::after{content:''; position:absolute; left:0; bottom:-1px; width:100%; height:2px; background:linear-gradient(90deg,var(--cyan),var(--cyan2)); transform:scaleX(0); transition:transform .3s ease; box-shadow:0 0 10px var(--cyan-glow);}
  .tab-btn:hover{color:var(--white); transform:translateY(-1px);}
  .tab-btn.active{color:var(--cyan2);}
  .tab-btn.active::after{transform:scaleX(1);}

  main{padding:190px 5vw 100px; min-height:100vh;}
  .module{display:none; animation:modIn .5s ease;}
  .module.active{display:block;}
  @keyframes modIn{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);}}

  .eyebrow{font-family:var(--font-mono); font-size:.72rem; color:var(--cyan2); letter-spacing:.25em; text-transform:uppercase; margin-bottom:.9rem; display:flex; align-items:center; gap:10px;}
  .eyebrow::before{content:'['; color:var(--text-dim);}
  .eyebrow::after{content:']'; color:var(--text-dim);}
  .sec-title{font-family:var(--font-display); font-weight:700; font-size:clamp(1.6rem,3.4vw,2.4rem); background:linear-gradient(90deg,var(--white),var(--cyan2) 120%); -webkit-background-clip:text; background-clip:text; color:transparent;}

  /* ---------- BUTTONS: universal "wow" treatment ---------- */
  button{ position:relative; overflow:hidden; -webkit-tap-highlight-color:transparent; }
  button::before{
    content:''; position:absolute; top:50%; left:50%; width:0; height:0; border-radius:50%;
    background:rgba(255,255,255,.35); transform:translate(-50%,-50%); pointer-events:none;
    transition:width .5s ease, height .5s ease, opacity .6s ease; opacity:0;
  }
  button.rippling::before{ width:280px; height:280px; opacity:1; transition:width 0s, height 0s, opacity 0s; }
  button:active{ transform:scale(.96); }

  /* ---------- HOME ---------- */
  .home-hero{display:flex; flex-direction:column; align-items:center; text-align:center; padding:20px 0 40px;}
  .core-wrap{position:relative; width:180px; height:180px; margin-bottom:1.8rem;}
  .orbit{position:absolute; border-radius:50%; border:1px solid rgba(0,238,255,0.28);}
  .orbit.o1{inset:0; animation:spinCW 18s linear infinite;}
  .orbit.o2{inset:20px; border-style:dashed; border-color:rgba(110,245,255,.3); animation:spinCCW 24s linear infinite;}
  .orbit.o3{inset:40px; animation:spinCW 12s linear infinite;}
  .orbit .blip{position:absolute; top:-3px; left:50%; width:6px; height:6px; background:var(--cyan2); border-radius:50%; box-shadow:0 0 12px var(--cyan2); transform:translateX(-50%);}
  .core-center{position:absolute; inset:54px; border-radius:50%; background:radial-gradient(circle at 40% 35%, rgba(110,245,255,.4), rgba(0,238,255,.12) 70%); border:1px solid var(--cyan); display:flex; align-items:center; justify-content:center; box-shadow:0 0 60px -6px var(--cyan-glow), inset 0 0 34px rgba(0,238,255,.22); animation:corePulse 3s ease-in-out infinite;}
  @keyframes corePulse{0%,100%{box-shadow:0 0 60px -6px var(--cyan-glow), inset 0 0 34px rgba(0,238,255,.22);} 50%{box-shadow:0 0 90px -4px var(--cyan-glow), inset 0 0 44px rgba(110,245,255,.3);}}
  .core-center span{font-family:var(--font-display); font-weight:800; font-size:2rem; background:linear-gradient(135deg,var(--cyan2),var(--cyan)); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 0 24px var(--cyan-glow);}
  .greeting{font-family:var(--font-mono); font-size:.8rem; color:var(--cyan2); letter-spacing:.25em; text-transform:uppercase; margin-bottom:.6rem;}
  .home-hero h1{font-family:var(--font-display); font-weight:800; font-size:clamp(2rem,5.6vw,3.4rem); background:linear-gradient(100deg,var(--white) 20%,var(--cyan2) 60%,var(--cyan3) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 0 40px rgba(0,238,255,.2);}
  .home-hero h1 .accent{background:linear-gradient(90deg,var(--cyan),var(--cyan2)); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .home-hero p{color:var(--text-dim); max-width:560px; margin:1.2rem auto 0; line-height:1.7;}

  .quick-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1.4rem; margin-top:3.4rem;}
  .quick-card{background:linear-gradient(160deg,rgba(26,26,26,.4),rgba(17,17,17,.5)); border:1px solid var(--line); padding:24px; position:relative; backdrop-filter:blur(10px); border-radius:2px; transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .35s;}
  .quick-card:hover{transform:translateY(-6px); border-color:var(--cyan); box-shadow:0 18px 44px -14px rgba(0,238,255,.5), 0 0 0 1px rgba(0,238,255,.25);}
  .quick-card .qk{font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:.12em;}
  .quick-card .qv{font-family:var(--font-display); font-size:1.15rem; color:var(--cyan2); margin-top:10px; font-weight:600; min-height:1.4em; text-shadow:0 0 16px rgba(110,245,255,.3);}
  .quick-card .qsub{font-family:var(--font-mono); font-size:.72rem; color:var(--text-dim); margin-top:6px;}
  .quick-card .go{display:inline-block; margin-top:16px; font-family:var(--font-mono); font-size:.7rem; color:var(--amber); cursor:pointer; letter-spacing:.08em; text-transform:uppercase; background:none; border:none; text-decoration:none; transition:letter-spacing .25s, color .25s;}
  .quick-card .go:hover{letter-spacing:.14em; color:#6ff5ff; text-decoration:none;}

  .status-strip{margin-top:3rem; display:flex; gap:2.2rem; flex-wrap:wrap; justify-content:center; font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); letter-spacing:.08em;}
  .status-strip .dot{width:6px; height:6px; border-radius:50%; background:var(--cyan2); display:inline-block; margin-right:6px; box-shadow:0 0 10px var(--cyan2); animation:dotPulse 2s ease-in-out infinite;}
  @keyframes dotPulse{0%,100%{opacity:1;} 50%{opacity:.4;}}

  /* ---------- CALENDAR ---------- */
  .cal-layout{display:grid; grid-template-columns:1.35fr .95fr; gap:2.6vw; align-items:start; margin-top:2.2rem;}
  .cal-panel{background:linear-gradient(160deg,rgba(26,26,26,.35),rgba(17,17,17,.45)); border:1px solid var(--line); padding:26px; backdrop-filter:blur(10px); border-radius:2px; transition:box-shadow .4s;}
  .cal-panel:hover{box-shadow:0 0 60px -20px rgba(0,238,255,.4);}
  .cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:20px;}
  .cal-head h3{font-family:var(--font-display); font-size:1.15rem; color:var(--white); letter-spacing:.02em;}
  .cal-nav{display:flex; gap:8px;}
  .cal-nav button{background:none; border:1px solid var(--cyan-dim); color:var(--cyan2); width:34px; height:34px; cursor:pointer; font-family:var(--font-mono); transition:all .25s; border-radius:2px;}
  .cal-nav button:hover{background:rgba(0,238,255,.15); box-shadow:0 0 18px -2px var(--cyan-glow); border-color:var(--cyan);}
  .cal-grid{display:grid; grid-template-columns:repeat(7, 1fr); gap:6px;}
  .cal-dow{font-family:var(--font-mono); font-size:.62rem; color:var(--text-dim); text-align:center; text-transform:uppercase; letter-spacing:.08em; padding-bottom:6px;}
  .cal-day{
    aspect-ratio:1/1; border:1px solid var(--line); display:flex; flex-direction:column; align-items:center; justify-content:center;
    cursor:pointer; position:relative; font-family:var(--font-mono); font-size:.82rem; color:var(--text-dim); transition:all .25s; border-radius:3px;
  }
  .cal-day.empty{border-color:transparent; cursor:default;}
  .cal-day:not(.empty):hover{border-color:var(--cyan); color:var(--white); background:rgba(0,238,255,.08); transform:scale(1.06);}
  .cal-day.today{border-color:var(--amber); color:var(--amber); font-weight:700; box-shadow:0 0 14px -4px var(--amber-glow);}
  .cal-day.selected{border-color:var(--cyan); background:linear-gradient(160deg,rgba(0,238,255,.22),rgba(110,245,255,.08)); color:var(--white); box-shadow:0 0 20px -4px var(--cyan-glow);}
  .cal-day .ev-dot{position:absolute; bottom:5px; width:4px; height:4px; border-radius:50%; background:var(--cyan2); box-shadow:0 0 8px var(--cyan2);}

  .day-detail{min-height:420px; display:flex; flex-direction:column;}
  .day-detail .dd-date{font-family:var(--font-mono); font-size:.7rem; color:var(--amber); letter-spacing:.15em; text-transform:uppercase;}
  .day-detail h4{font-family:var(--font-display); font-size:1.3rem; margin-top:.6rem; color:var(--white);}
  .ev-list{margin-top:1.4rem; display:flex; flex-direction:column; gap:10px; max-height:180px; overflow-y:auto;}
  .ev-item{border:1px solid var(--line); padding:10px 14px; border-radius:3px; transition:border-color .25s, transform .25s; background:rgba(0,238,255,.03);}
  .ev-item:hover{border-color:var(--cyan); transform:translateX(3px);}
  .ev-item summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:10px;}
  .ev-item summary::-webkit-details-marker{display:none;}
  .ev-item summary::after{content:'▾'; font-family:var(--font-mono); font-size:.7rem; color:var(--amber); transition:transform .3s; flex-shrink:0; margin-left:10px;}
  .ev-item[open] summary::after{transform:rotate(180deg);}
  .ev-item .ev-body{margin-top:10px; padding-top:10px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:10px;}
  .ev-item .ev-info .ev-time{font-family:var(--font-mono); font-size:.68rem; color:var(--cyan2);}
  .ev-item .ev-info .ev-title{font-family:var(--font-body); font-size:.92rem; color:var(--white); font-weight:600;}
  .ev-item .ev-del{background:none; border:1px solid var(--red); color:var(--red); width:26px; height:26px; cursor:pointer; font-family:var(--font-mono); font-size:.8rem; flex-shrink:0; transition:all .2s; border-radius:2px;}
  .ev-item .ev-del:hover{background:rgba(255,36,99,.18); box-shadow:0 0 14px -2px rgba(255,36,99,.5);}
  .ev-item-actions{display:flex; gap:6px; align-items:center; flex-shrink:0;}
  .ev-item .ev-ics{background:none; border:1px solid var(--cyan-dim); color:var(--cyan2); width:26px; height:26px; cursor:pointer; font-family:var(--font-mono); font-size:.72rem; transition:all .2s; border-radius:2px;}
  .ev-item .ev-ics:hover{background:rgba(0,238,255,.15); box-shadow:0 0 14px -2px var(--cyan-glow); border-color:var(--cyan);}
  .export-all-btn{background:none; border:1px solid var(--cyan-dim); color:var(--cyan2); font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; padding:9px 14px; cursor:pointer; transition:all .25s; white-space:nowrap; border-radius:2px;}
  .export-all-btn:hover{background:rgba(0,238,255,.15); box-shadow:0 0 18px -2px var(--cyan-glow); border-color:var(--cyan); transform:translateY(-1px);}
  .cal-head-actions{display:flex; align-items:center; gap:10px;}
  .ev-empty{font-family:var(--font-mono); font-size:.78rem; color:var(--text-dim); margin-top:1.4rem;}

  .ev-form{margin-top:auto; padding-top:1.6rem; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:10px;}
  .ev-form label{font-family:var(--font-mono); font-size:.65rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:.1em;}
  .ev-form input{
    background:rgba(0,238,255,.06); border:1px solid var(--line); color:var(--white); padding:10px 12px; font-family:var(--font-body);
    font-size:.92rem; width:100%; border-radius:2px; transition:border-color .25s, box-shadow .25s;
  }
  .ev-form input:focus{outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(0,238,255,.15);}
  .ev-row{display:flex; gap:10px;}
  .ev-row > div{flex:1;}
  .ev-add-btn{background:linear-gradient(120deg,var(--cyan),var(--cyan2)); color:#1a1a1a; border:none; padding:12px; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; cursor:pointer; margin-top:4px; transition:all .3s; border-radius:2px; box-shadow:0 4px 20px -6px rgba(0,238,255,.6);}
  .ev-add-btn:hover{box-shadow:0 8px 30px -4px rgba(0,238,255,.8); transform:translateY(-2px);}

  /* ---------- DROPDOWN SECTIONS ---------- */
  .section-menu{margin-top:2rem;display:flex;flex-direction:column;gap:12px;}
  .section-menu details{background:linear-gradient(160deg,rgba(26,26,26,.35),rgba(17,17,17,.45));border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:2px;transition:border-color .3s;}
  .section-menu details:hover{border-color:rgba(0,238,255,.5);}
  .section-menu summary{cursor:pointer;list-style:none;padding:18px 22px;font-family:var(--font-display);color:var(--cyan2);font-size:1rem;display:flex;align-items:center;justify-content:space-between;}
  .section-menu summary::-webkit-details-marker{display:none;}
  .section-menu summary::after{content:'+';font-family:var(--font-mono);font-size:1.2rem;color:var(--amber);transition:transform .3s;}
  .section-menu details[open] summary::after{content:'−';transform:rotate(180deg);}
  .section-menu .section-content{padding:0 22px 22px;color:var(--text-dim);line-height:1.7;}

  /* ---------- PERCORSO ---------- */
  .console{display:grid; grid-template-columns:.4fr .6fr; gap:3vw; align-items:start; margin-top:2rem;}
  .track-list{display:flex; flex-direction:column; gap:10px;}
  .track-item{background:var(--panel); border:1px solid var(--line); padding:18px 20px; cursor:pointer; position:relative; transition:border-color .3s, background .3s, transform .3s; border-radius:2px;}
  .track-item .blip-dot{position:absolute; left:20px; top:20px; width:7px; height:7px; border-radius:50%; border:1px solid var(--text-dim);}
  .track-item .role{font-family:var(--font-display); font-weight:600; font-size:.96rem; color:var(--text-dim); margin-left:20px; transition:color .3s;}
  .track-item .org{font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); opacity:.6; margin-left:20px; display:block; margin-top:5px;}
  .track-item:hover{border-color:var(--cyan-dim); transform:translateX(4px);}
  .track-item.active{border-color:var(--cyan); background:linear-gradient(160deg,rgba(0,238,255,.15),rgba(110,245,255,.05));}
  .track-item.active .blip-dot{background:var(--cyan2); border-color:var(--cyan2); box-shadow:0 0 12px var(--cyan2);}
  .track-item.active .role{color:var(--cyan2);}
  .detail-panel{background:var(--panel); border:1px solid var(--line); padding:34px; min-height:360px; position:relative; backdrop-filter:blur(10px); border-radius:2px;}
  .detail-card{display:none;}
  .detail-card.active{display:block; animation:panelFlicker .4s ease;}
  @keyframes panelFlicker{0%{opacity:0;} 20%{opacity:.6;} 40%{opacity:.15;} 60%{opacity:.8;} 100%{opacity:1;}}
  .detail-card .period{font-family:var(--font-mono); font-size:.68rem; color:var(--amber); letter-spacing:.15em; text-transform:uppercase;}
  .detail-card h3{font-family:var(--font-display); font-size:1.5rem; margin-top:.6rem; color:var(--white); font-weight:700;}
  .detail-card .org-line{font-family:var(--font-mono); font-size:.78rem; color:var(--cyan2); margin-top:6px;}
  .detail-card p{color:var(--text-dim); line-height:1.8; margin-top:1.2rem; font-size:.95rem;}
  .detail-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:1.4rem;}
  .detail-tags span{font-family:var(--font-mono); font-size:.66rem; padding:6px 14px; border:1px solid var(--cyan-dim); color:var(--cyan2); border-radius:2px;}

  /* ---------- CONTATTI ---------- */
  .contact-box{background:linear-gradient(160deg,rgba(26,26,26,.4),rgba(17,17,17,.5)); border:1px solid var(--cyan-dim); padding:4vw 5vw; text-align:center; position:relative; backdrop-filter:blur(10px); margin-top:2rem; border-radius:2px; overflow:hidden;}
  .contact-box::before{content:''; position:absolute; inset:-2px; border-radius:2px; background:linear-gradient(120deg,transparent,rgba(0,238,255,.25),transparent); z-index:-1; animation:borderSheen 4s linear infinite;}
  @keyframes borderSheen{0%{transform:translateX(-100%);} 100%{transform:translateX(100%);}}
  .contact-box h2{font-family:var(--font-display); font-size:clamp(1.6rem,3.8vw,2.6rem); font-weight:700; color:var(--white);}
  .contact-box .accent{background:linear-gradient(90deg,var(--cyan),var(--cyan2)); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 0 30px rgba(0,238,255,.4);}
  .contact-box p{color:var(--text-dim); margin-top:1.1rem; font-size:1rem;}
  .contact-links{display:flex; justify-content:center; gap:1.2rem; margin-top:2.2rem; flex-wrap:wrap;}
  .contact-pill{font-family:var(--font-mono); font-size:.82rem; padding:14px 26px; border:1px solid var(--cyan-dim); color:var(--cyan2); text-decoration:none; display:flex; align-items:center; gap:10px; transition:all .3s; border-radius:2px;}
  .contact-pill:hover{background:linear-gradient(120deg,rgba(0,238,255,.18),rgba(110,245,255,.08)); box-shadow:0 10px 30px -8px rgba(0,238,255,.6); transform:translateY(-3px); border-color:var(--cyan);}

  footer{padding:36px 5vw; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:var(--font-mono); font-size:.68rem; color:var(--text-dim); border-top:1px solid var(--line);}

  @media (max-width:940px){
    .tab-nav{display:none; flex-direction:column; position:fixed; top:96px; left:0; right:0; background:rgba(17,17,17,.98); padding:10px 5vw 20px; border-bottom:1px solid var(--line);}
    .tab-nav.open{display:flex;}
    .nav-toggle{display:flex;}
    .logo-tag{display:none;}
    .cal-layout, .console{grid-template-columns:1fr;}
    .quick-grid{grid-template-columns:1fr;}
    main{padding-top:150px;}
  }
  @media (hover:none){ .reticle{display:none;} }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- MOBILE POLISH (smartphone) ---------- */
  @media (max-width:940px){
    .tab-btn{min-height:44px; padding:12px 18px;}
    .nav-toggle{padding:8px; min-width:44px; min-height:44px; align-items:center; justify-content:center;}
  }
  @media (max-width:700px){
    main{padding:140px 6vw 80px;}
    header{padding:14px 6vw; gap:10px;}
    .logo{font-size:.92rem;}
    .logo-icon{width:22px; height:22px;}
    .clock-time{font-size:.98rem;}
    .clock-date{font-size:.58rem;}
    .sec-title{font-size:clamp(1.35rem,6vw,2rem);}
    .quick-grid{gap:1rem; margin-top:2.2rem;}
    .quick-card{padding:18px;}
    .core-wrap{width:140px; height:140px;}
    .cal-panel, .quick-card, .console, .contact-box{padding-left:18px; padding-right:18px;}
    .cal-day{font-size:.7rem;}
    .cal-nav button{width:38px; height:38px;}
    .ev-item .ev-del, .ev-item .ev-ics{width:32px; height:32px;}
    .export-all-btn, .ev-add-btn, .tab-btn, button{min-height:40px;}
    /* impedisce lo zoom automatico di iOS Safari sui campi con font < 16px */
    .ev-form input, .auth-card input, input, select, textarea{font-size:16px !important;}
    .status-strip{gap:1.1rem; font-size:.62rem;}
    footer{flex-direction:column; text-align:center; padding:28px 6vw;}
  }
  @media (max-width:420px){
    .quick-grid{grid-template-columns:1fr;}
    header{flex-wrap:wrap;}
    .clock-box{text-align:left;}
    .cal-grid{gap:4px;}
  }

  /* ---------- MINIMAL JARVIS LANDING ---------- */
  body.landing-mode header{display:none;}
  body.landing-mode #mod-home .hero::before,
  body.landing-mode #mod-home .hero::after{opacity:.35;}
  body.landing-mode #mod-home .hero{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:0 5vw;}
  body.landing-mode #mod-home .hero > *{display:none !important;}
  body.landing-mode #mod-home .landing-jarvis{display:flex !important;}
  body.landing-mode .module:not(#mod-home), body.landing-mode footer{display:none !important;}

  .landing-jarvis{display:none; width:min(760px,94vw); min-height:540px; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative;}
  .lj-eyebrow{font-family:var(--font-mono); color:var(--cyan2); font-size:.58rem; letter-spacing:.34em; margin-bottom:20px; opacity:.85;}
  .lj-greeting{font-family:var(--font-display); font-size:clamp(2.4rem,7vw,5.5rem); line-height:.95; letter-spacing:.02em; margin:0; text-transform:uppercase; background:linear-gradient(100deg,var(--white) 10%,var(--cyan2) 55%,var(--cyan3) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 0 50px rgba(0,238,255,.25);}
  .lj-name{background:linear-gradient(90deg,var(--cyan),var(--cyan2)); -webkit-background-clip:text; background-clip:text; color:transparent;}
  .lj-tagline{font-family:var(--font-mono); font-size:.72rem; color:var(--cyan3); letter-spacing:.1em; text-transform:uppercase; margin-top:14px; opacity:.9;}
  .lj-clock{font-family:var(--font-mono); font-size:clamp(1rem,3vw,1.65rem); color:var(--white); letter-spacing:.14em; margin-top:18px; text-shadow:0 0 20px rgba(0,238,255,.3);}
  .lj-date{font-family:var(--font-mono); font-size:.62rem; color:var(--text-dim); letter-spacing:.16em; text-transform:uppercase; margin-top:8px;}
  .lj-divider{width:1px;height:34px;background:linear-gradient(transparent,var(--cyan2),transparent);margin:26px 0 18px;box-shadow:0 0 18px var(--cyan-glow);}

  .landing-orb-zone{position:relative; width:220px;height:170px; display:flex; align-items:center; justify-content:center;}
  .landing-orb{width:96px;height:96px;border:0;border-radius:50%;background:radial-gradient(circle at 38% 32%,rgba(200,250,255,.85),rgba(110,245,255,.35) 26%,rgba(0,238,255,.12) 52%,rgba(17,17,17,.98) 70%);position:relative;cursor:pointer;box-shadow:0 0 0 1px rgba(0,238,255,.8),0 0 45px rgba(0,238,255,.35),inset 0 0 30px rgba(110,245,255,.35);transition:.35s cubic-bezier(.2,.8,.2,1);z-index:5; animation:orbBreathe 4s ease-in-out infinite;}
  @keyframes orbBreathe{0%,100%{box-shadow:0 0 0 1px rgba(0,238,255,.8),0 0 45px rgba(0,238,255,.35),inset 0 0 30px rgba(110,245,255,.35);} 50%{box-shadow:0 0 0 1px rgba(110,245,255,.9),0 0 65px rgba(110,245,255,.5),inset 0 0 40px rgba(110,245,255,.5);}}
  .landing-orb::before,.landing-orb::after{content:'';position:absolute;border-radius:50%;pointer-events:none;}
  .landing-orb::before{inset:-15px;border:1px solid rgba(0,238,255,.6);border-left-color:transparent;animation:spinCW 7s linear infinite;}
  .landing-orb::after{inset:-28px;border:1px dashed rgba(110,245,255,.32);animation:spinCCW 11s linear infinite;}
  .landing-orb .orb-mark{position:absolute;inset:27px;border-radius:50%;border:1px solid var(--cyan);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.7rem;color:#fff;letter-spacing:.1em;background:rgba(0,238,255,.15);}
  .orb-mark-icon{width:78%; height:78%;}
  .landing-orb:hover,.landing-orb-zone.open .landing-orb{transform:scale(1.14);box-shadow:0 0 0 1px var(--cyan2),0 0 80px rgba(110,245,255,.55),inset 0 0 50px rgba(110,245,255,.45);}

  .orb-menu{position:absolute; left:50%; top:50%; width:620px; height:300px; transform:translate(-50%,-50%); pointer-events:none;}
  .orb-choice{position:absolute; width:135px; min-height:52px; display:flex;align-items:center;gap:9px;padding:10px 13px;background:rgba(26,26,26,.96);border:1px solid rgba(0,238,255,.28);color:var(--white);cursor:pointer;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.09em;text-align:left;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .32s cubic-bezier(.2,.8,.2,1),border-color .2s,background .2s;transform:scale(.65); border-radius:2px;}
  .orb-choice b{color:var(--cyan2);font-size:.6rem;font-weight:500;}
  .orb-choice:hover{border-color:var(--cyan);background:rgba(0,238,255,.15);box-shadow:0 0 26px -8px var(--cyan-glow);}
  .oc-home{left:0;top:24px}.oc-cal{right:0;top:24px}.oc-path{left:0;bottom:24px}.oc-contact{right:0;bottom:24px}.oc-exp{left:0;right:0;bottom:24px;margin:0 auto;}
  .landing-orb-zone:hover .orb-choice,.landing-orb-zone.open .orb-choice{opacity:1;pointer-events:auto;transform:scale(1);}
  .landing-orb-zone:hover .oc-home,.landing-orb-zone.open .oc-home{transform:translate(0,0) scale(1);}
  .landing-orb-zone:hover .oc-cal,.landing-orb-zone.open .oc-cal{transform:translate(0,0) scale(1);}
  .landing-orb-zone:hover .oc-path,.landing-orb-zone.open .oc-path{transform:translate(0,0) scale(1);}
  .landing-orb-zone:hover .oc-contact,.landing-orb-zone.open .oc-contact{transform:translate(0,0) scale(1);}
  .landing-orb-zone:hover .oc-exp,.landing-orb-zone.open .oc-exp{transform:scale(1);}
  .lj-hint{font-family:var(--font-mono);font-size:.5rem;color:var(--text-dim);letter-spacing:.2em;margin-top:16px;transition:.2s;}
  .landing-orb-zone:hover + .lj-hint,.landing-orb-zone.open + .lj-hint{opacity:0;}

  @media(max-width:700px){
    .landing-jarvis{min-height:100vh}.lj-greeting{font-size:2.6rem}.orb-menu{width:min(96vw,500px);height:330px}
    .orb-choice{width:120px;font-size:.57rem}.oc-home{left:1%;top:25px}.oc-cal{right:1%;top:25px}.oc-path{left:1%;bottom:25px}.oc-contact{right:1%;bottom:25px}.oc-exp{left:0;right:0;bottom:25px;margin:0 auto;}
  }

  /* ---------- ORB-ONLY NAVIGATION: NO RECTANGLES ---------- */
  body.landing-mode .orb-choice{
    width:86px !important;
    height:86px !important;
    min-height:0 !important;
    padding:0 !important;
    border-radius:50% !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    gap:3px !important;
    text-align:center !important;
    background:radial-gradient(circle,rgba(0,238,255,.18),rgba(26,26,26,.92) 72%) !important;
    border:1px solid rgba(0,238,255,.5) !important;
    box-shadow:0 0 22px -8px var(--cyan-glow);
  }
  body.landing-mode .orb-choice::after{
    content:'';
    position:absolute;
    inset:-5px;
    border-radius:50%;
    border:1px dashed rgba(110,245,255,.28);
    animation:spinCW 9s linear infinite;
    pointer-events:none;
  }
  body.landing-mode .orb-choice b{font-size:.58rem !important; line-height:1;}
  body.landing-mode .orb-choice:hover{transform:scale(1.15) !important;box-shadow:0 0 36px rgba(110,245,255,.45) !important;border-color:var(--cyan2) !important;}
  body.landing-mode .orb-menu{width:520px !important;height:300px !important;}
  body.landing-mode .oc-home{left:16px !important;top:30px !important;}
  body.landing-mode .oc-cal{right:16px !important;top:30px !important;}
  body.landing-mode .oc-path{left:16px !important;bottom:30px !important;}
  body.landing-mode .oc-contact{right:16px !important;bottom:30px !important;}
  body.landing-mode .oc-exp{left:0 !important;right:0 !important;top:auto !important;bottom:30px !important;margin:0 auto !important;}
  @media(max-width:700px){
    body.landing-mode .orb-menu{width:94vw !important;height:280px !important;}
    body.landing-mode .orb-choice{width:72px !important;height:72px !important;font-size:.5rem !important;}
    body.landing-mode .oc-home{left:3% !important;top:28px !important;}
    body.landing-mode .oc-cal{right:3% !important;top:28px !important;}
    body.landing-mode .oc-path{left:3% !important;bottom:28px !important;}
    body.landing-mode .oc-contact{right:3% !important;bottom:28px !important;}
    body.landing-mode .oc-exp{left:0 !important;right:0 !important;top:auto !important;bottom:28px !important;margin:0 auto !important;}
  }

  /* ---------- FINAL CLEAN LANDING: ABSOLUTELY NO LEGACY MENU ---------- */
  body.landing-mode header,
  body.landing-mode .tab-nav,
  body.landing-mode .jarvis-nav-wrap,
  body.landing-mode [id="tabNav"],
  body.landing-mode .nav-toggle,
  body.landing-mode .desktop-nav,
  body.landing-mode .mobile-nav{
    display:none !important;
  }

  body.landing-mode #mod-home > :not(.hero){display:none !important;}
  body.landing-mode #mod-home .hero > :not(.landing-jarvis){display:none !important;}
  body.landing-mode .landing-jarvis{display:flex !important;}

  body.landing-mode .orb-choice{
    display:none !important;
  }
  body.landing-mode .landing-orb-zone:hover .orb-choice,
  body.landing-mode .landing-orb-zone.open .orb-choice{
    display:flex !important;
  }

  body.landing-mode .orb-choice{
    width:auto !important;
    height:auto !important;
    min-height:0 !important;
    padding:9px 13px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:var(--cyan2) !important;
    flex-direction:row !important;
    gap:7px !important;
    font-size:.62rem !important;
    text-shadow:0 0 14px rgba(110,245,255,.55);
  }
  body.landing-mode .orb-choice::after{display:none !important;}
  body.landing-mode .orb-choice:hover{
    background:transparent !important;
    box-shadow:none !important;
    transform:scale(1.12) !important;
    color:#fff !important;
  }
  body.landing-mode .orb-choice b{
    display:inline !important;
    color:var(--cyan2) !important;
  }

  body.landing-mode #mod-home{
    display:block !important;
    min-height:100vh !important;
  }

  /* ---------- CLICKABLE ORB NAV FIX ---------- */
  body.landing-mode .landing-orb-zone{
    width:660px !important;
    max-width:94vw !important;
    height:300px !important;
    overflow:visible !important;
  }
  body.landing-mode .orb-menu{
    pointer-events:auto !important;
    z-index:3 !important;
  }
  body.landing-mode .orb-choice{
    display:flex !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:opacity .25s ease, visibility .25s step-end, transform .28s ease !important;
  }
  body.landing-mode .landing-orb-zone:hover .orb-choice,
  body.landing-mode .landing-orb-zone.open .orb-choice{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transition:opacity .25s ease, transform .28s ease !important;
  }
  body.landing-mode .orb-choice:hover{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
  @media(max-width:700px){
    body.landing-mode .landing-orb-zone{
      width:94vw !important;
      height:300px !important;
    }
  }

  /* ---------- COMPACT LANDING ---------- */
  body.landing-mode #mod-home,
  body.landing-mode #mod-home .hero{
    min-height:100dvh !important;
    height:100dvh !important;
    overflow:hidden !important;
  }
  body.landing-mode #mod-home .hero{
    padding:0 5vw !important;
    align-items:center !important;
  }
  body.landing-mode .landing-jarvis{
    min-height:0 !important;
    height:auto !important;
    padding:24px 0 14px !important;
    justify-content:center !important;
  }
  body.landing-mode .landing-orb-zone{
    height:150px !important;
    margin:0 !important;
  }
  body.landing-mode .lj-divider{
    margin:18px 0 10px !important;
    height:24px !important;
  }
  body.landing-mode .lj-hint{margin-top:6px !important;}
  body.landing-mode main{padding-bottom:0 !important;}
  @media(max-width:700px){
    body.landing-mode .landing-jarvis{padding:16px 0 8px !important;}
    body.landing-mode .landing-orb-zone{height:135px !important;}
    body.landing-mode .lj-divider{margin:14px 0 8px !important;}
  }

  /* ---------- ESPERIMENTI: 5° VOCE CENTRATA DELL'ORB (vince sulle regole width:auto sopra) ---------- */
  body.landing-mode .oc-exp{
    width:150px !important;
    left:0 !important;
    right:0 !important;
    top:auto !important;
    bottom:30px !important;
    margin:0 auto !important;
    justify-content:center !important;
  }
  @media(max-width:700px){
    body.landing-mode .oc-exp{
      width:130px !important;
      bottom:28px !important;
    }
  }

/* Auth + extended event form */
.auth-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(17,17,17,.94);backdrop-filter:blur(16px)}
.auth-overlay.hidden{display:none}.auth-card{width:min(430px,100%);padding:32px;background:linear-gradient(160deg,#1a1a1a,#141414);border:1px solid rgba(0,238,255,.4);box-shadow:0 0 70px rgba(0,238,255,.18);border-radius:4px}
.auth-card h2{margin:0 0 8px;font-family:var(--font-display);letter-spacing:.08em;background:linear-gradient(90deg,var(--white),var(--cyan2));-webkit-background-clip:text;background-clip:text;color:transparent}.auth-card p{color:var(--text-dim);font-size:.9rem}.auth-card label{display:block;margin:14px 0 6px;font-family:var(--font-mono);font-size:.72rem;color:var(--cyan2)}
.auth-card input{width:100%;box-sizing:border-box;padding:12px;background:#1a1a1a;border:1px solid rgba(0,238,255,.25);color:#fff;border-radius:3px;transition:border-color .25s, box-shadow .25s}
.auth-card input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,238,255,.15)}
.auth-actions{display:flex;gap:10px;margin-top:18px}.auth-actions button{flex:1;background:linear-gradient(120deg,var(--cyan),var(--cyan2));border:none;color:#1a1a1a;padding:12px;font-family:var(--font-mono);font-weight:700;letter-spacing:.08em;border-radius:3px;cursor:pointer;transition:transform .25s, box-shadow .25s}
.auth-actions button:hover{transform:translateY(-2px);box-shadow:0 8px 24px -6px rgba(0,238,255,.6)}
.auth-actions button#signupBtn{background:transparent;border:1px solid var(--cyan-dim);color:var(--cyan2)}
.auth-msg{min-height:20px;margin-top:12px;color:var(--cyan2);font-size:.82rem}.logout-btn{margin-left:auto;background:transparent;border:1px solid rgba(0,238,255,.35);color:var(--cyan2);padding:8px 11px;cursor:pointer;border-radius:2px;transition:all .25s}
.logout-btn:hover{background:rgba(0,238,255,.12);box-shadow:0 0 16px -4px var(--cyan-glow)}
.ev-form textarea,.ev-form select{width:100%;box-sizing:border-box;margin-top:4px;padding:10px;background:#1a1a1a;border:1px solid rgba(0,238,255,.25);color:#fff;border-radius:3px;font:inherit;transition:border-color .25s}
.ev-form textarea:focus,.ev-form select:focus{outline:none;border-color:var(--cyan)}
.ev-form textarea{min-height:72px;resize:vertical}.ev-meta{margin-top:4px;color:var(--text-dim);font-size:.76rem}.ev-details{font-size:.76rem;color:var(--text-dim);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap}.ev-color{width:46px!important;height:38px;padding:3px!important;border-radius:3px}
.ev-form select{font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;appearance:none;-webkit-appearance:none;background:linear-gradient(160deg,rgba(0,238,255,.14),rgba(0,238,255,.04));background-image:linear-gradient(160deg,rgba(0,238,255,.14),rgba(0,238,255,.04)),linear-gradient(45deg,transparent 50%,var(--cyan2) 50%),linear-gradient(135deg,var(--cyan2) 50%,transparent 50%);background-position:0 0,calc(100% - 18px) center,calc(100% - 13px) center;background-size:100% 100%,5px 5px,5px 5px;background-repeat:no-repeat;padding:10px 34px 10px 12px;border:1px solid var(--line);border-radius:3px;color:var(--white);font-size:.92rem;width:100%;box-sizing:border-box;transition:border-color .25s,box-shadow .25s,background .25s}
.ev-form select:hover{border-color:rgba(0,238,255,.55)}
.ev-form select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,238,255,.15),0 0 18px -4px var(--cyan-glow)}
.ev-form select option{background:#141414;color:#fff;padding:6px}
.ev-form select#evTime,.ev-form select#evEndTime{padding-left:34px}
.time-field{position:relative;display:flex;align-items:center}
.time-field .time-ico{position:absolute;left:11px;font-size:.85rem;color:var(--cyan2);pointer-events:none;text-shadow:0 0 8px var(--cyan-glow);z-index:1}

html{scrollbar-width:thin;scrollbar-color:#00eeff #111111}
body::-webkit-scrollbar{width:9px}body::-webkit-scrollbar-track{background:#111111}
body::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#00eeff,#6ff5ff);border:2px solid #111111;border-radius:10px}
body::-webkit-scrollbar-thumb:hover{background:#6ff5ff}
.ev-edit{border:1px solid #6ff5ff;background:transparent;color:#6ff5ff;min-width:44px;height:26px;font-family:inherit;font-size:10px;cursor:pointer;border-radius:2px;transition:all .2s}
.ev-edit:hover{background:rgba(0,238,255,.15);box-shadow:0 0 14px -2px rgba(0,238,255,.5)}
.ev-item-actions{display:flex;gap:6px;align-items:center}

/* JARVIS landing: perfectly centered in the viewport */
body.landing-mode .landing-jarvis,
.landing-jarvis{
  min-height:100vh;
  min-height:100svh;
  width:100%;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
body.landing-mode .landing-jarvis{padding:32px 20px;}
body.landing-mode .landing-jarvis > *{flex-shrink:0;}

.landing-jarvis{width:100%;min-height:100svh;box-sizing:border-box}
body.landing-mode{overflow-x:hidden}
body.landing-mode .landing-jarvis{min-height:100svh;width:100%;display:grid!important;place-items:center!important;margin:0!important;padding:24px!important;box-sizing:border-box}
body.landing-mode .landing-jarvis>*{margin-left:auto!important;margin-right:auto!important}

/* Registration mode */
#nameFieldWrap{margin-bottom:10px}
#authName{width:100%;box-sizing:border-box}
.auth-mode-note{margin:8px 0 0;text-align:center;font-size:.74rem;color:#b3f5ff;min-height:18px}

/* Reset password */
.forgot-link{display:block;text-align:right;margin-top:10px;background:none;border:none;color:var(--text-dim);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;cursor:pointer;text-decoration:underline;padding:0}
.forgot-link:hover{color:var(--cyan2)}
.auth-view{display:block}
.auth-view.hidden{display:none}
.auth-back{display:inline-block;margin-bottom:4px;background:none;border:none;color:var(--text-dim);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.05em;cursor:pointer;padding:0}
.auth-back:hover{color:var(--cyan2)}

/* ==================================================================
   VISUAL POLISH PASS — profondità, gerarchia, dettagli premium
   ================================================================== */

/* scrollbar coerente col tema, dove supportata */
*{scrollbar-width:thin; scrollbar-color:var(--cyan-dim) transparent;}
::-webkit-scrollbar{width:9px; height:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--cyan-dim),var(--cyan)); border-radius:10px; border:2px solid var(--bg2); background-clip:padding-box;}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(var(--cyan),var(--cyan2)); background-clip:padding-box;}

/* focus visibile elegante invece dell'outline di default */
a:focus-visible, button:focus-visible, input:focus-visible{outline:2px solid var(--cyan2); outline-offset:3px; border-radius:2px;}

/* titoli di sezione: piccola linea luminosa sotto, più respiro */
.sec-title{position:relative; padding-bottom:16px; letter-spacing:.01em;}
.sec-title::after{content:''; position:absolute; left:0; bottom:0; width:52px; height:2px; background:linear-gradient(90deg,var(--cyan),var(--cyan2)); box-shadow:0 0 12px var(--cyan-glow); border-radius:2px;}
.eyebrow{opacity:.92;}

/* card esperimenti/percorso/console: più profondità e vivacità all'hover */
.quick-card{position:relative; overflow:hidden; box-shadow:0 6px 20px -14px rgba(0,0,0,.6);}
.quick-card::before{content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--cyan2),transparent); opacity:0; transition:opacity .35s;}
.quick-card:hover::before{opacity:1;}
.quick-card:hover{box-shadow:0 22px 48px -16px rgba(0,238,255,.45), 0 0 0 1px rgba(0,238,255,.3), 0 6px 20px -10px rgba(0,0,0,.6);}
.quick-card .qv{transition:text-shadow .3s, color .3s;}
.quick-card:hover .qv{text-shadow:0 0 22px rgba(110,245,255,.55);}

.cal-panel, .contact-box, .track-item, .section-menu details{box-shadow:0 8px 26px -18px rgba(0,0,0,.55);}
.cal-panel:hover{transform:translateY(-2px);}
.track-item:hover{box-shadow:0 14px 30px -16px rgba(0,238,255,.4);}

/* pulsanti: lift + glow più coerente ovunque */
.export-all-btn, .ev-add-btn, .contact-pill, .refresh-btn, .tab-btn{transition:all .25s cubic-bezier(.2,.8,.2,1), transform .2s;}
.export-all-btn:hover, .contact-pill:hover{transform:translateY(-2px);}

/* home hero: nucleo un filo più ricco */
.core-center{box-shadow:0 0 70px -4px var(--cyan-glow), inset 0 0 40px rgba(0,238,255,.26);}

/* header: leggero rilievo e separazione più netta dal contenuto */
header{box-shadow:0 8px 34px -18px rgba(0,0,0,.7);}
.logo-icon{filter:drop-shadow(0 0 6px rgba(0,238,255,.45));}

/* status strip: puntini più vivi, spaziatura più ariosa */
.status-strip{margin-top:3.4rem; padding-top:1.6rem; border-top:1px solid var(--line);}

/* footer: rifinitura */
footer{background:linear-gradient(180deg,transparent,rgba(0,238,255,.03));}
footer a{transition:color .2s;}
footer a:hover{color:var(--cyan2);}

/* selettori dettaglio evento / dropdown: leggero arrotondamento in più per morbidezza */
.ev-item, .quick-card, .cal-panel, .contact-box, .section-menu details, .track-item{border-radius:6px;}

/* ==================================================================
   PORTFOLIO-MASTER LOOK — decorazioni HUD più discrete, tono minimale
   ================================================================== */
.bg-grid{opacity:.4;}
.bg-radar{opacity:.35;}
.scan-sweep{opacity:.25;}
.corners{display:none;}
.reticle .ring{border-width:1px;}
.core-center{box-shadow:0 0 50px -8px var(--cyan-glow), inset 0 0 26px rgba(0,238,255,.14);}
.quick-card:hover{box-shadow:0 18px 40px -18px rgba(0,238,255,.32), 0 0 0 1px rgba(0,238,255,.2);}
.tab-btn .n{opacity:.5; font-weight:400;}
.logo-icon{filter:drop-shadow(0 0 5px rgba(0,238,255,.35));}

/* ==================================================================
   THEME TOGGLE — variabili tema chiaro
   ================================================================== */
[data-theme="light"]{
  --bg:#f2f2f2;
  --bg2:#ffffff;
  --panel:rgba(0,0,0,0.045);
  --panel-solid:#ffffff;
  --cyan:#0091a3;
  --cyan2:#00747f;
  --cyan3:#007a8c;
  --cyan-dim:#bdeef4;
  --cyan-glow:rgba(0,145,163,0.30);
  --amber:#a35a00;
  --amber-glow:rgba(163,90,0,0.30);
  --red:#c81346;
  --white:#111111;
  --text-dim:#5c5c5c;
  --line:rgba(0,0,0,0.14);
}
[data-theme="light"] body{background:var(--bg);}
[data-theme="light"] .bg-grid{opacity:.15;}
[data-theme="light"] .bg-radar{opacity:.12;}
[data-theme="light"] .scan-sweep{display:none;}
[data-theme="light"] header{background:rgba(255,255,255,.72);}
[data-theme="light"] .quick-card, [data-theme="light"] .cal-panel, [data-theme="light"] .contact-box,
[data-theme="light"] .section-menu details, [data-theme="light"] .track-item, [data-theme="light"] .detail-panel{
  background:linear-gradient(160deg,rgba(0,0,0,.035),rgba(0,0,0,.015));
}
[data-theme="light"] .ev-item{background:rgba(0,0,0,.02);}
[data-theme="light"] .ev-form input, [data-theme="light"] .ev-form select, [data-theme="light"] .ev-form textarea{
  background:rgba(0,0,0,.03); color:var(--white);
}
[data-theme="light"] .ev-form select option{background:#ffffff; color:#111111;}
[data-theme="light"] .auth-card{
  background:linear-gradient(160deg,#ffffff,#f0f0f0);
  border-color:rgba(0,145,163,.35);
  box-shadow:0 0 70px rgba(0,145,163,.10);
}
[data-theme="light"] .auth-card input{background:#f2f2f2; color:#111111; border-color:rgba(0,145,163,.25);}
[data-theme="light"] .core-center span, [data-theme="light"] .home-hero h1, [data-theme="light"] .sec-title,
[data-theme="light"] .lj-greeting, [data-theme="light"] .contact-box .accent, [data-theme="light"] .auth-card h2{
  -webkit-text-fill-color:initial; background:none; color:var(--white);
}
[data-theme="light"] html{scrollbar-color:var(--cyan) #e6e6e6;}
[data-theme="light"] body::-webkit-scrollbar-track{background:#e6e6e6;}
[data-theme="light"] .logo-icon{filter:drop-shadow(0 0 4px rgba(0,145,163,.3));}

.theme-toggle-btn{
  background:none; border:1px solid var(--line); color:var(--cyan2); width:38px; height:38px;
  border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center;
  font-size:1rem; transition:all .25s; flex-shrink:0;
}
.theme-toggle-btn:hover{border-color:var(--cyan); box-shadow:0 0 14px -2px var(--cyan-glow); transform:translateY(-1px) scale(1.05);}

/* ==================================================================
   BARRA LATERALE VERTICALE (stile portfolio-master) — solo desktop
   Orologio e pulsante tema ora scorrono DENTRO la colonna della sidebar
   (niente più position:fixed agganciato alla finestra): l'orologio
   resta sotto il logo, il pulsante tema resta in fondo, spinto giù
   dalla tab-nav che occupa lo spazio centrale con flex:1.
   ================================================================== */
@media (min-width:941px){
  body:not(.landing-mode) header{
    position:fixed; top:0; left:0; right:auto; bottom:0; width:108px; height:100vh;
    display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
    padding:32px 0 24px; gap:0;
    background:rgba(17,17,17,.72); backdrop-filter:blur(18px);
    border-right:1px solid var(--line); border-bottom:none; box-shadow:none;
  }
  body:not(.landing-mode) .header-top{
    display:flex; flex-direction:column; align-items:center; padding:0; gap:12px; width:100%; flex:0 0 auto;
  }
  body:not(.landing-mode) .logo-wrap{align-items:center; gap:0;}
  body:not(.landing-mode) .logo{flex-direction:column; gap:6px; font-size:0; align-items:center;}
  body:not(.landing-mode) .logo-icon{width:30px; height:30px;}
  body:not(.landing-mode) .logo-tag{display:none;}
  body:not(.landing-mode) .clock-box{
    position:static; text-align:center; width:100%; padding:0 8px; box-sizing:border-box;
  }
  body:not(.landing-mode) .clock-time{font-size:.72rem; letter-spacing:.02em;}
  body:not(.landing-mode) .clock-date{font-size:.5rem; line-height:1.35; word-break:break-word;}
  body:not(.landing-mode) .nav-toggle{display:none !important;}
  body:not(.landing-mode) .theme-toggle-btn{
    flex:0 0 auto; margin-top:24px; margin-bottom:6px;
  }
  body:not(.landing-mode) .tab-nav{
    display:flex !important; flex-direction:column; align-items:center; justify-content:center;
    flex:1; width:100%; gap:10px; padding:0; border-top:none; margin-top:20px; overflow:visible; min-height:0;
  }
  body:not(.landing-mode) .tab-btn{
    writing-mode:vertical-lr; transform:rotate(180deg);
    padding:18px 8px; font-size:.74rem; letter-spacing:.16em;
  }
  body:not(.landing-mode) .tab-btn .n{display:none;}
  body:not(.landing-mode) .tab-btn::after{
    left:2px; right:auto; bottom:0; top:0; width:2px; height:100%;
    transform:scaleY(0); transform-origin:bottom;
  }
  body:not(.landing-mode) .tab-btn:hover::after, body:not(.landing-mode) .tab-btn.active::after{
    transform:scaleY(1); transform-origin:top;
  }
  body:not(.landing-mode) main{padding:48px 5vw 100px 152px;}
}
