/* ═══════════════════════════════════════════════════════════════════
   WAHOO! JAPAN — DESIGN SYSTEM v3
   Blanc + Orange vermillon · Yahoo!JP meets rue de Tokyo
   Inspiration : Yahoo! Japan, tabicons JR, enseignes Shinjuku,
                 papier washi, tampon hanko, portail portail portail
═══════════════════════════════════════════════════════════════════ */

/* ─── TOKENS LIGHT (défaut) ─── */
:root{
  /* Orange Wahoo! — couleur du soleil levant, torii, enseigne */
  --o:        #FF6600;   /* orange primaire */
  --o2:       #E65500;   /* orange foncé hover */
  --o3:       #FF8C33;   /* orange clair */
  --og:       rgba(255,102,0,.18);  /* glow orange */
  --og2:      rgba(255,102,0,.10);

  /* Jaune accent — taxi, feux, JR signals */
  --y:        #FFB800;
  --yg:       rgba(255,184,0,.20);

  /* Surfaces */
  --bg:       #f7f5f0;   /* crème washi */
  --panel:    #ffffff;
  --panel2:   #faf8f4;
  --panel3:   #f0ece4;
  --panel4:   #e8e2d8;

  /* Bordures */
  --bd:       rgba(0,0,0,.10);
  --bd2:      rgba(0,0,0,.18);
  --bd3:      rgba(0,0,0,.06);

  /* Texte */
  --t1:       #1a1410;
  --t2:       rgba(26,20,16,.62);
  --t3:       rgba(26,20,16,.40);
  --t4:       rgba(26,20,16,.22);

  /* Ombres */
  --s0: 0 1px 3px rgba(0,0,0,.10);
  --s1: 0 2px 10px rgba(0,0,0,.12);
  --s2: 0 4px 20px rgba(0,0,0,.14);
  --s3: 0 8px 36px rgba(0,0,0,.16);

  /* Rayons */
  --r0: 4px;
  --r1: 8px;
  --r2: 12px;
  --r3: 18px;

  /* Orbs saison */
  --orb1:#ff7f3f;--orb2:#f5ba45;--orb3:#ff541b;
}

/* Saison orbs */
body.season-printemps{--orb1:#f472b6;--orb2:#c084fc;--orb3:#fb7185;}
body.season-ete      {--orb1:#fbbf24;--orb2:#f97316;--orb3:#06b6d4;}
body.season-automne  {--orb1:#ef4444;--orb2:#f97316;--orb3:#d97706;}
body.season-hiver    {--orb1:#93c5fd;--orb2:#e0f2fe;--orb3:#7dd3fc;}

/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{width:100vw;height:100vh;overflow:hidden;
  font-family:'Outfit','Noto Sans JP',sans-serif;}
body{background:var(--bg);position:relative;color:var(--t1);}


/* ═══════════════════════════════════════════════════
   BACKGROUND LIGHT — washi paper + motif vague seigaiha
═══════════════════════════════════════════════════ */
#bg-grad{
  position:fixed;inset:0;z-index:0;
  /* Fond crème chaud avec très léger halo orange soleil levant */
  background:
    radial-gradient(ellipse 70% 55% at 50% -10%, rgb(255, 102, 0) 0%, transparent 0%),
    radial-gradient(ellipse 50% 40% at 100% 60%,  rgb(255, 183, 0) 0%, transparent 0%),
    radial-gradient(ellipse 45% 35% at 0%   80%,  rgb(185, 74, 0) 0%, transparent 0%),
    linear-gradient(180deg, #fdf9f4 0%, #f7f3ec 50%, #f2ece2 100%);
}
/* Grille fine style papier quadrillé nippon */
#bg-grad::after{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,102,0,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,102,0,.04) 1px, transparent 1px);
  background-size:36px 36px;
  pointer-events:none;
}

/* Saison BG */
body.season-printemps #bg-grad{background:
  radial-gradient(ellipse 70% 50% at 50% -5%, rgba(244,114,182,.14) 0%,transparent 60%),
  radial-gradient(ellipse 50% 40% at 90% 60%,  rgba(192,132,252,.10) 0%,transparent 55%),
  linear-gradient(180deg,#fff0f7 0%,#fce8f3 50%,#f5d9ef 100%);}
body.season-ete #bg-grad{background:
  radial-gradient(ellipse 70% 50% at 50% -5%, rgba(251,191,36,.16) 0%,transparent 60%),
  radial-gradient(ellipse 50% 40% at 90% 60%,  rgba(6,182,212,.10) 0%,transparent 55%),
  linear-gradient(180deg,#fffdf0 0%,#fff8e1 50%,#fdf0c8 100%);}
body.season-automne #bg-grad{background:
  radial-gradient(ellipse 70% 50% at 50% -5%, rgba(239,68,68,.14) 0%,transparent 60%),
  radial-gradient(ellipse 50% 40% at 90% 60%,  rgba(249,115,22,.10) 0%,transparent 55%),
  linear-gradient(180deg,#fff8f0 0%,#ffede0 50%,#fde0c8 100%);}
body.season-hiver #bg-grad{background:
  radial-gradient(ellipse 70% 50% at 50% -5%, rgba(147,197,253,.16) 0%,transparent 60%),
  radial-gradient(ellipse 50% 40% at 90% 60%,  rgba(125,211,252,.10) 0%,transparent 55%),
  linear-gradient(180deg,#f0f8ff 0%,#e4f0fa 50%,#d8eaf7 100%);}

/* ─── SEASON OVERLAY ─── */
#season-overlay{position:fixed;inset:0;z-index:1;pointer-events:none;transition:opacity .1s;}
body.season-default   #season-overlay{opacity:0;}
body.season-printemps #season-overlay{opacity:1;background:
  radial-gradient(ellipse 60% 50% at 20% 30%,rgba(238, 10, 128, 0.829) 0%,transparent 65%),
  radial-gradient(ellipse 50% 40% at 80% 60%,rgba(192, 132, 252, 0.822) 0%,transparent 65%);}
body.season-ete       #season-overlay{opacity:1;background:
  radial-gradient(ellipse 65% 45% at 70% 15%,rgb(251, 190, 36) 0%,transparent 65%),
  radial-gradient(ellipse 50% 45% at 10% 70%,rgb(6, 181, 212) 0%,transparent 70%);}
body.season-automne   #season-overlay{opacity:1;background:
  radial-gradient(ellipse 60% 45% at 25% 35%,rgb(239, 68, 68) 0%,transparent 70%),
  radial-gradient(ellipse 55% 40% at 75% 55%,rgb(249, 116, 22) 0%,transparent 65%);}
body.season-hiver     #season-overlay{opacity:1;background:
  radial-gradient(ellipse 60% 50% at 50% 20%,rgba(147,197,253,.38) 0%,transparent 65%),
  radial-gradient(ellipse 45% 40% at 85% 65%,rgb(125, 212, 252) 0%,transparent 75%);}

#wp-layer{position:fixed;inset:0;z-index:2;background-size:cover;background-position:center;opacity:1;transition:opacity .6s;pointer-events:none;}
#wp-layer.active{opacity:1;}
body.has-wallpaper #bg-grad{opacity:1;}
/* Season Overlay visible même avec wallpaper */
body.has-wallpaper #season-overlay {
  opacity: var(--overlay-intensity, 0.70);   /* Intensité réglable */
  z-index: 3;                               /* Plus haut que le wp-layer */
}

/* Optionnel : rendre le wp-layer un peu plus transparent pour mieux voir le glow */
#wp-layer {
  opacity: 0.75;                            /* 1 = opaque, 0.85 = plus transparent */
  transition: opacity .6s;
}

body.has-wallpaper #bg-grad {
  opacity: 0.25;                            /* Fond très léger derrière l'image */
}

/* ─── ORBS & PARTICLES ─── */
#orbs{position:fixed;inset:0;z-index:3;pointer-events:none;overflow:hidden;}
.orb{position:absolute;border-radius:50%;filter:blur(47.5px);opacity: 0.28;;animation:floatOrb linear infinite;}
@keyframes floatOrb{
  0%  {transform:translateY(110vh) scale(.5);opacity:0}
  6%  {opacity:.18}
  94% {opacity:.12}
  100%{transform:translateY(-10vh) translateX(80px) scale(1.2);opacity:0}
}
#particles{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden;}
.particle{position:absolute;top:-40px;animation:fallParticle linear infinite;will-change:transform,opacity;}
@keyframes fallParticle{
  0%  {transform:translateY(0) rotate(0deg) translateX(0);opacity:.8}
  50% {transform:translateY(50vh) rotate(180deg) translateX(var(--dx,30px));opacity:.6}
  100%{transform:translateY(110vh) rotate(360deg) translateX(0);opacity:0}
}

/* === BOOST SPÉCIAL MODE CLAIR === */
/* Encore plus visible sur saison Default en mode clair */
body.mode-light.season-default .orb {
  filter: blur(8px);
  opacity: 50%;
}


/* ═══════════════════════════════════════════════════
   PAGE
═══════════════════════════════════════════════════ */
#page{position:relative;z-index:10;width:100vw;height:100vh;display:flex;flex-direction:column;}

/* ═══════════════════════════════════════════════════
   HEADER — transparent flottant, icônes centrées
   Logo ancré à gauche via grid 3 colonnes
═══════════════════════════════════════════════════ */
#header{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  padding:10px 18px;
  background:transparent;
  position:relative;z-index:200;
  flex-shrink:0;
}

#logo-wrap{display:flex;align-items:center;justify-content:flex-start;}
#logo{
  height:48px;
  object-fit:contain;
  border-radius:6px;
  transition:transform .22s,opacity .18s,filter .22s;
  filter:drop-shadow(0 1px 4px rgba(255,102,0,.20));
}
#logo:hover{transform:scale(1.7);opacity:1.5;}
#logo-fallback{
  display:none;align-items:center;
  justify-content:center;
  width: 40px ; height:60px;
  border-radius:6px;
  background:var(--panel3);
  font-size:18px; 
  border:1px solid var(--bd2);
}

/* Cluster icônes — centré dans la colonne du milieu */
#header-center {
  display: flex;
  align-items: center;
  gap: 5px;
  justify-content: center;
  background: rgba(255, 102, 0, 0.12);   /* orange très clair */
  border-radius: 999px;                  /* pill */
  padding: 5px 10px;                     /* épaisseur de la barre */
}

#header-center::after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 12.5%;
  height: 3px;
  background: rgba(255, 102, 0, 0.22);   
  border-radius: 999px;              
}

#header-right-spacer{/* équilibre le logo */}

/* ─── BOUTONS ICÔNE header ─── */
.hbtn{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  font-size:17px;cursor:pointer;
  background:var(--panel);
  border:1px solid var(--bd2);
  border-radius:50%;
  box-shadow:var(--s0);
  transition:background .16s,border-color .16s,transform .14s,box-shadow .16s;
  outline:none;
}
.hbtn:hover{
  background:var(--o);color:white;
  border-color:var(--o);
  box-shadow:0 0 12px var(--og),var(--s1);
  transform:scale(1.10);
}
.hbtn:active{transform:scale(.95);}

/* ═══════════════════════════════════════════════════
   DROPDOWNS — centrés horizontalement sous le bouton
═══════════════════════════════════════════════════ */
.panel-wrap{position:relative;}

.dropdown{
  position:absolute;
  top:calc(100% + 8px);
  left:50%;                        /* centré sous le bouton */
  transform:translateX(-50%) translateY(-8px) scale(.97);
  min-width:278px;
  z-index:999;
  overflow:hidden auto;
  max-height:0;opacity:0;
  transition:max-height .32s cubic-bezier(.4,0,.2,1), opacity .20s, transform .20s;
  pointer-events:none;
  /* Panel solide style portail */
  background:var(--panel);
  border:1px solid var(--bd2);
  border-top:3px solid var(--o);
  border-radius:var(--r0) var(--r0) var(--r2) var(--r2);
  box-shadow:var(--s3);
}
.dropdown.open{
  max-height:84vh;opacity:1;
  transform:translateX(-50%) translateY(0) scale(1);
  pointer-events:all;
}

.dropdown-inner{padding:11px;display:flex;flex-direction:column;gap:5px;}

/* Titre de section — barre orange gauche style news-box Yahoo! */
.dtitle{
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.4px;
  color:var(--t3);
  padding:4px 8px 4px 11px;
  border-left:3px solid var(--o);
  background:var(--panel2);
  border-radius:0 var(--r0) var(--r0) 0;
  margin-bottom:1px;
}

.sep{height:1px;background:var(--bd);margin:4px 0;}

/* ─── OPTS ─── */
.opt{
  display:flex;align-items:center;gap:9px;
  cursor:pointer;padding:7px 10px;
  border-radius:var(--r0);
  color:var(--t1);font-size:13px;font-weight:500;
  border-left:2px solid transparent;
  transition:background .13s,padding-left .13s,border-color .13s;
}
.opt:hover{background:var(--panel2);padding-left:13px;border-left-color:var(--y);}
.opt.sel{background:var(--panel3);font-weight:700;border-left-color:var(--o);}
.dot{
  width:7px;height:7px;border-radius:50%;
  border:2px solid var(--bd2);flex-shrink:0;
  transition:background .13s,border-color .13s;
}
.opt.sel .dot{background:var(--o);border-color:var(--o);}

/* ─── ACTION ROWS ─── */
.action-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--r0);cursor:pointer;
  color:var(--t1);font-size:12px;font-weight:600;
  background:var(--panel2);
  border:1px solid var(--bd);
  border-left:3px solid var(--y);
  transition:background .13s,border-color .13s,box-shadow .13s;
}
.action-row:hover{background:var(--panel3);box-shadow:0 0 8px var(--yg);}

/* ═══════════════════════════════════════════════════
   TIMEZONE
═══════════════════════════════════════════════════ */
#tz-search{
  width:100%;padding:7px 10px;border-radius:var(--r0);
  border:1.5px solid var(--bd2);background:var(--panel2);
  color:var(--t1);font-size:12px;font-family:inherit;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
#tz-search:focus{border-color:var(--o);box-shadow:0 0 0 2px var(--og);}
#tz-search::placeholder{color:var(--t3);}
#tz-list{max-height:144px;overflow-y:auto;display:none;flex-direction:column;border-radius:var(--r0);border:1px solid var(--bd2);background:var(--panel);margin-top:3px;}
#tz-list.show{display:flex;}
.tz-item{padding:6px 10px;cursor:pointer;font-size:11px;color:var(--t1);transition:background .11s;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-shrink:0;border-bottom:1px solid var(--bd3);}
.tz-item:last-child{border-bottom:none;}
.tz-item:hover{background:var(--panel2);}
.tz-item.sel{background:var(--panel3);font-weight:700;color:var(--o);}
.tz-offset{font-size:9px;color:var(--t3);flex-shrink:0;font-variant-numeric:tabular-nums;}
#tz-info{font-size:10px;color:var(--t3);display:flex;justify-content:space-between;padding:3px 1px 0;}
#tz-cur-label{color:var(--t3);}
#tz-reset-btn{font-size:10px;cursor:pointer;color:var(--o);text-decoration:underline;}
#tz-reset-btn:hover{opacity:.7;}
#tz-list::-webkit-scrollbar{width:3px;}
#tz-list::-webkit-scrollbar-thumb{background:var(--o);border-radius:2px;}

/* ═══════════════════════════════════════════════════
   SEASON PILLS
═══════════════════════════════════════════════════ */
#season-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;}
.spill{
  padding:8px 5px;border-radius:var(--r0);cursor:pointer;
  text-align:center;font-size:11px;font-weight:800;
  color:white;text-shadow:0 1px 3px rgba(0,0,0,.40);
  border:2px solid transparent;
  transition:transform .18s,box-shadow .18s,border-color .18s;
}
.spill:hover{transform:scale(1.05);}
.spill.sel{border-color:var(--o);box-shadow:0 0 10px var(--og);}
.spill[data-s=default]  {background:linear-gradient(135deg,var(--o),var(--y));}
.spill[data-s=printemps]{background:linear-gradient(135deg,#f472b6,#c084fc);}
.spill[data-s=ete]      {background:linear-gradient(135deg,#fbbf24,#f97316);}
.spill[data-s=automne]  {background:linear-gradient(135deg,#ef4444,#d97706);}
.spill[data-s=hiver]    {background:linear-gradient(135deg,#7dd3fc,#bfdbfe);color:#0a2540;text-shadow:none;}

/* ═══════════════════════════════════════════════════
   WALLPAPER GRID
═══════════════════════════════════════════════════ */
#wp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;}
.wp-t{aspect-ratio:16/10;border-radius:var(--r0);cursor:pointer;border:2px solid var(--bd);overflow:hidden;position:relative;transition:border-color .16s,transform .16s,box-shadow .16s;}
.wp-t:hover{transform:scale(1.04);box-shadow:0 0 10px var(--yg);}
.wp-t.sel{border-color:var(--o);box-shadow:0 0 10px var(--og);}
.wp-t img{width:100%;height:100%;object-fit:cover;}
.wp-lbl{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:9px;color:white;text-shadow:0 1px 3px rgba(0,0,0,.8);font-weight:800;}
.wp-def{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:18px;}
.wp-ph{display:none;width:100%;height:100%;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:white;}

/* ═══════════════════════════════════════════════════
   CUSTOM PHOTO SLOTS
═══════════════════════════════════════════════════ */
#custom-slots-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;}
.cslot{aspect-ratio:1;border-radius:var(--r0);overflow:hidden;position:relative;}
.cslot.empty{border:1.5px dashed var(--bd2);cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--panel2);transition:background .15s,border-color .15s;}
.cslot.empty:hover{background:var(--panel3);border-color:var(--o);}
.cslot-plus{font-size:16px;opacity:.38;pointer-events:none;}
.cslot.filled{cursor:pointer;border:2px solid transparent;transition:transform .16s,border-color .16s,box-shadow .16s;}
.cslot.filled:hover{transform:scale(1.06);}
.cslot.filled.sel{border-color:var(--o);box-shadow:0 0 7px var(--og);}
.cslot.filled img{width:100%;height:100%;object-fit:cover;display:block;}
.cslot-del{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.60);color:white;font-size:8px;font-weight:900;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .13s;border:1px solid rgba(255,255,255,.3);z-index:5;}
.cslot.filled:hover .cslot-del{opacity:1;}
.cslot-del:hover{background:rgba(200,0,0,.85)!important;}

/* ═══════════════════════════════════════════════════
   WIDGET TOGGLE ROWS
═══════════════════════════════════════════════════ */
.widget-toggle-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px;border-radius:var(--r0);
  background:var(--panel2);border:1px solid var(--bd);
  border-left:3px solid var(--bd2);
  gap:10px;transition:background .13s,border-color .13s;
}
.widget-toggle-row:hover{background:var(--panel3);}
.wtg-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}
.wtg-icon{font-size:16px;flex-shrink:0;}
.wtg-name{font-size:12px;font-weight:700;color:var(--t1);}
.wtg-desc{font-size:10px;color:var(--t2);}

/* Toggle LINE-style */
.toggle-switch{width:38px;height:21px;border-radius:11px;background:var(--panel4);border:1.5px solid var(--bd2);position:relative;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s;flex-shrink:0;}
.toggle-switch.on{background:#06C755;border-color:#06C755;box-shadow:0 0 7px rgba(6,199,85,.35);}
.toggle-thumb{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:white;transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 4px rgba(0,0,0,.25);}
.toggle-switch.on .toggle-thumb{transform:translateX(17px);}

/* ═══════════════════════════════════════════════════
   WEATHER WIDGET — WeatherWidget.org embed sizing
═══════════════════════════════════════════════════ */
.weather-card{
  width: 460px !important;   
  max-width: calc(100vw - 40px);
}

.wc-body-embed{
  padding: 0 !important;
  overflow: hidden;
  border-radius: 0 0 var(--r1) var(--r1);
  min-height: 80px;
}

.wc-body-embed > div{
  width: 100% !important;
  display: block;
}
/* Sur petit écran, passer en mode compact */
@media(max-width:520px){
  .weather-card{ width: calc(100vw - 40px) !important; }
}


/* ═══════════════════════════════════════════════════
   MAIN — centré, horloge simple flottante
═══════════════════════════════════════════════════ */
#main{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:20px;gap:12px;position:relative;
}

/* ─── HORLOGE — style original flottant, sobre ─── */
#clock-wrap{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  animation:fadeInUp .6s ease both;
}
#clock{
  font-size:60px;font-weight:300;
  color:var(--t1);
  letter-spacing:5px;line-height:1;
  font-variant-numeric:tabular-nums;
  text-shadow: 0 2px 14px rgba(255,102,0,.10);
  transition:color .4s;
}
body.season-printemps #clock{color:#9d1463;text-shadow:0 2px 14px rgba(244,114,182,.25);}
body.season-ete       #clock{color:#7c4a00;text-shadow:0 2px 14px rgba(251,191,36,.30);}
body.season-automne   #clock{color:#8b1a00;text-shadow:0 2px 14px rgba(239,68,68,.25);}
body.season-hiver     #clock{color:#0a2540;text-shadow:0 2px 14px rgba(147,197,253,.30);}
#date-line{font-size:13px;color:var(--t2);font-weight:500;letter-spacing:.8px;}
#tz-badge{font-size:10px;color:var(--t3);letter-spacing:.5px;margin-top:1px;}
#greeting{
  font-size:13px;font-weight:600;
  color:var(--o);letter-spacing:2px;
  text-transform:uppercase;
  animation:fadeInUp .6s .08s ease both;
}

/* ═══════════════════════════════════════════════════
   BARRE DE RECHERCHE + BOUTON SÉPARÉ
   [ input field           ] [ 🔍 Search ]
═══════════════════════════════════════════════════ */
#search-area{
  display:flex;flex-direction:column;
  align-items:center;gap:8px;width:100%;
  animation:fadeInUp .6s .14s ease both;
}

/* Rangée : input + bouton côte à côte */
#search-row{
  display:flex;align-items:center;
  gap:10px;
  width:100%;max-width:640px;
}

/* Input — barre pleine, s'étend */
#search-box{
  flex:1;
  display:flex;align-items:center;
  padding:0 16px;height:52px;
  background:var(--panel);
  border:2px solid var(--bd2);
  border-radius:var(--r3);
  box-shadow:var(--s1);
  transition:border-color .2s,box-shadow .2s;
}
#search-box:focus-within{
  border-color:var(--o);
  box-shadow:0 0 0 3px var(--og),var(--s2);
}
#s-input{
  width:100%;background:none;border:none;outline:none;
  font-size:16px;color:var(--t1);font-family:inherit;
  caret-color:var(--o);
}
#s-input::placeholder{color:var(--t3);}

/* Bouton SÉPARÉ — loupe + label, style tampon hanko */
#s-btn{
  display:flex;align-items:center;gap:8px;
  height:52px;padding:0 22px;
  border-radius:var(--r3);
  border:2px solid var(--o);
  background:var(--o);
  color:white;font-family:inherit;font-size:14px;font-weight:800;
  cursor:pointer;flex-shrink:0;letter-spacing:.3px;
  box-shadow:var(--s1),0 2px 12px var(--og);
  transition:background .16s,transform .13s,box-shadow .16s,border-color .16s;
}
#s-btn:hover{
  background:var(--o2);border-color:var(--o2);
  box-shadow:var(--s2),0 0 18px var(--og);
}
#s-btn:active{transform:scale(.97);}
#s-btn-icon{font-size:16px;line-height:1;}

/* Suggestions — sous l'input uniquement */
#suggestions{
  width:100%;max-width:640px;overflow:hidden;display:none;
  border-radius:var(--r1);
  background:var(--panel);
  border:1px solid var(--bd2);
  border-top:2px solid var(--o);
  box-shadow:var(--s2);
}
#suggestions.show{display:block;}
.sug{
  padding:9px 16px;color:var(--t1);font-size:13px;cursor:pointer;
  transition:background .11s;display:flex;align-items:center;gap:9px;
  border-bottom:1px solid var(--bd3);
}
.sug:last-child{border-bottom:none;}
.sug:hover{background:var(--panel2);}
.sug-ic{font-size:11px;color:var(--t3);}

#eng-badge{font-size:11px;color:var(--t3);font-weight:500;letter-spacing:.4px;}
#eng-badge span{color:var(--t2);font-weight:700;}

/* ═══════════════════════════════════════════════════
   FOOTER — bande orange bas
═══════════════════════════════════════════════════ */
#footer{
  display:flex;justify-content:space-between;align-items:center;
  padding:7px 22px 10px;
  font-size:10px;color:var(--t3);
  background:var(--panel);
  border-top:2px solid var(--o);
  position:relative;z-index:10;
  flex-shrink:0;letter-spacing:.4px;
}
#footer a{color:var(--t3);text-decoration:none;transition:color .15s;}
#footer a:hover{color:var(--o);}

/* ═══════════════════════════════════════════════════
   MODAL
═══════════════════════════════════════════════════ */
#modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.45);}
#modal.show{display:flex;}
#modal-inner{
  width:90%;max-width:430px;padding:22px;gap:11px;display:flex;flex-direction:column;
  background:var(--panel);
  border:1px solid var(--bd2);
  border-top:3px solid var(--o);
  border-radius:var(--r2);
  box-shadow:var(--s3),0 0 28px var(--og);
}
#modal-inner h3{color:var(--t1);font-size:16px;font-weight:800;}
#modal-inner p{color:var(--t2);font-size:12px;line-height:1.6;}
.minput{width:100%;padding:10px 12px;border-radius:var(--r0);border:1.5px solid var(--bd2);background:var(--panel2);color:var(--t1);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s;}
.minput::placeholder{color:var(--t3);}
.minput:focus{border-color:var(--o);box-shadow:0 0 0 2px var(--og);}
.mbtns{display:flex;gap:7px;justify-content:flex-end;}
.mbtn{padding:9px 18px;border-radius:var(--r0);border:none;cursor:pointer;font-size:13px;font-weight:800;font-family:inherit;transition:opacity .15s,transform .13s;}
.mbtn.cancel{background:var(--panel3);color:var(--t1);border:1px solid var(--bd2);}
.mbtn.ok{background:var(--o);color:white;box-shadow:0 2px 8px var(--og);}
.mbtn:hover{opacity:.85;}
.mbtn:active{transform:scale(.97);}
code.pill{background:var(--panel2);padding:2px 6px;border-radius:3px;font-size:11px;font-family:monospace;border:1px solid var(--bd2);color:var(--o);}

/* ═══════════════════════════════════════════════════
   .glass (héritage — encore utilisé par rien dans index
   mais conservé pour rétrocompatibilité)
═══════════════════════════════════════════════════ */
.glass{background:var(--panel);border:1px solid var(--bd2);border-radius:var(--r2);box-shadow:var(--s1);}

/* ═══════════════════════════════════════════════════
   DARK MODE — nuit de Tokyo, orange néon
═══════════════════════════════════════════════════ */
body:not(.mode-light){
  --bg:       #0e0e0e;
  --panel:    #181818;
  --panel2:   #0e0e0e;
  --panel3:   #1c2138;
  --panel4:   #222844;
  --bd:       rgba(255,255,255,.09);
  --bd2:      rgba(255,255,255,.16);
  --bd3:      rgba(255,255,255,.05);
  --t1: rgba(240,242,248,.93);
  --t2: rgba(240,242,248,.58);
  --t3: rgba(240,242,248,.32);
  --t4: rgba(240,242,248,.16);
  --s0: 0 1px 3px rgba(0,0,0,.6);
  --s1: 0 2px 10px rgba(0, 0, 0, 0.808);
  --s2: 0 5px 22px rgba(0,0,0,.70);
  --s3: 0 10px 38px rgba(0, 0, 0, 0.39);
  background:var(--bg);
}
body:not(.mode-light) #bg-grad{
  background:
    radial-gradient(ellipse 55% 38% at 8% 15%, rgba(255,102,0,.20) 0%,transparent 65%),
    radial-gradient(ellipse 45% 30% at 92% 28%,rgba(255,184,0,.14) 0%,transparent 60%),
    radial-gradient(ellipse 60% 28% at 50% 100%,rgba(255,102,0,.10) 0%,transparent 55%),
    linear-gradient(180deg,#080a18 0%,#0b0e1e 50%,#07091a 100%);
}
body:not(.mode-light) #bg-grad::after{
  background-image:
    linear-gradient(rgba(255,102,0,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,102,0,.05) 1px,transparent 1px);
}
/* Saison dark */
body.season-printemps:not(.mode-light) #bg-grad{background:
  radial-gradient(ellipse 55% 38% at 8% 15%, rgba(244,114,182,.24) 0%,transparent 65%),
  radial-gradient(ellipse 45% 30% at 92% 28%,rgba(192,132,252,.18) 0%,transparent 60%),
  linear-gradient(180deg,#0f0718 0%,#180a28 50%,#0e0520 100%);}
body.season-ete:not(.mode-light) #bg-grad{background:
  radial-gradient(ellipse 55% 38% at 8% 15%, rgba(251,191,36,.22) 0%,transparent 65%),
  radial-gradient(ellipse 45% 30% at 92% 28%,rgba(6,182,212,.18) 0%,transparent 60%),
  linear-gradient(180deg,#06100a 0%,#082038 50%,#040e18 100%);}
body.season-automne:not(.mode-light) #bg-grad{background:
  radial-gradient(ellipse 55% 38% at 8% 15%, rgba(239,68,68,.24) 0%,transparent 65%),
  radial-gradient(ellipse 45% 30% at 92% 28%,rgba(249,115,22,.20) 0%,transparent 60%),
  linear-gradient(180deg,#0f0400 0%,#1e0800 50%,#0c0200 100%);}
body.season-hiver:not(.mode-light) #bg-grad{background:
  radial-gradient(ellipse 55% 38% at 8% 15%, rgba(147,197,253,.20) 0%,transparent 65%),
  radial-gradient(ellipse 45% 30% at 92% 28%,rgba(125,211,252,.16) 0%,transparent 60%),
  linear-gradient(180deg,#020710 0%,#050e1e 50%,#04091a 100%);}

body:not(.mode-light) #clock{color:var(--t1);text-shadow:0 0 20px rgba(255,102,0,.20);}
body.season-printemps:not(.mode-light) #clock{color:#ffd6ee;text-shadow:0 0 18px rgba(244,114,182,.35);}
body.season-ete:not(.mode-light)       #clock{color:#fff8d0;text-shadow:0 0 18px rgba(251,191,36,.35);}
body.season-automne:not(.mode-light)   #clock{color:#fff0cc;text-shadow:0 0 18px rgba(239,68,68,.35);}
body.season-hiver:not(.mode-light)     #clock{color:#d6ecff;text-shadow:0 0 18px rgba(147,197,253,.35);}

body:not(.mode-light) #greeting{color:var(--o3);}
body:not(.mode-light) .hbtn{background:var(--panel2);}
body:not(.mode-light) .hbtn:hover{background:var(--o);color:white;}
body:not(.mode-light) #search-box{background:var(--panel);}
body:not(.mode-light) #s-input{color:var(--t1);}
body:not(.mode-light) #suggestions{background:var(--panel);}
body:not(.mode-light) #footer{background:var(--panel);}
body:not(.mode-light) #modal-inner{background:var(--panel);}
body:not(.mode-light) .minput{background:var(--panel2);}
body:not(.mode-light) .mbtn.cancel{background:var(--panel3);color:var(--t1);}
body:not(.mode-light) .dropdown{background:var(--panel);}
body:not(.mode-light) .dtitle{background:var(--panel2);}
body:not(.mode-light) .opt.sel{background:var(--panel2);}
body:not(.mode-light) .action-row{background:var(--panel2);}
body:not(.mode-light) .widget-toggle-row{background:var(--panel2);}
body:not(.mode-light) .cslot.empty{background:var(--panel2);}
body:not(.mode-light) #tz-search{background:var(--panel2);color:var(--t1);}
body:not(.mode-light) #tz-list{background:var(--panel);}
body:not(.mode-light) .tz-item.sel{color:var(--o3);}
body:not(.mode-light) .tz-item:hover{background:var(--panel2);}
body:not(.mode-light) #tz-cur-label{color:var(--t3) !important;}
body:not(.mode-light) .widget-card{background:var(--panel);}
body:not(.mode-light) .wc-header{background:var(--panel2);}
body:not(.mode-light) .opt:hover{background:var(--panel2);}

/* ═══════════════════════════════════════════════════
   ANIMATIONS
═══════════════════════════════════════════════════ */
@keyframes fadeInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* ═══════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════ */
@media(max-width:520px){
  #clock{font-size:40px;letter-spacing:4px;}
  #search-row{max-width:100%;gap:7px;}
  #search-box{height:48px;padding:0 13px;}
  #s-input{font-size:15px;}
  #s-btn{height:48px;padding:0 14px;font-size:13px;gap:5px;}
  #s-btn-label{display:none;}
  #header{padding:8px 12px;}
  .hbtn{width:34px;height:34px;font-size:15px;}
  #widget-board{gap:8px;}
  .widget-card{width:152px;}
}
