/* Cresco V1.12 — refonte visuelle glass premium, sans décor végétal de fond */
:root{
  --ink:#17335e;
  --ink-2:#425b7e;
  --glass:rgba(255,255,255,.58);
  --glass-strong:rgba(255,255,255,.74);
  --glass-border:rgba(255,255,255,.86);
  --glass-line:rgba(93,126,172,.16);
  --glass-shadow:0 22px 70px rgba(42,70,110,.12), inset 0 1px 0 rgba(255,255,255,.82);
  --glass-shadow-soft:0 12px 34px rgba(46,74,111,.09), inset 0 1px 0 rgba(255,255,255,.72);
  --blue-glass:#73a8ff;
  --aqua-glass:#5ccfce;
  --green-glass:#74c99d;
  --violet-glass:#9b8cf3;
  --amber-glass:#f3c96d;
}

body{
  color:var(--ink);
  background:
    radial-gradient(circle at 13% 5%,rgba(126,180,255,.22),transparent 30%),
    radial-gradient(circle at 87% 12%,rgba(104,215,200,.18),transparent 29%),
    radial-gradient(circle at 75% 90%,rgba(156,137,244,.12),transparent 31%),
    linear-gradient(145deg,#f3f8ff 0%,#fbfcff 46%,#f4fbf8 100%);
}
body::before{
  background:
    radial-gradient(circle at 28% 24%,rgba(255,255,255,.9),transparent 16%),
    radial-gradient(circle at 73% 18%,rgba(255,255,255,.72),transparent 12%),
    linear-gradient(115deg,transparent 0 46%,rgba(255,255,255,.28) 50%,transparent 54%);
  background-size:auto;
  mask-image:none;
  opacity:.85;
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 9% 78%,rgba(101,180,255,.11),transparent 18%),
    radial-gradient(circle at 92% 68%,rgba(91,210,176,.10),transparent 20%);
}

/* Glass system */
.setup-card,.builder-card,.onboarding-card,.context-door,.bank-panel,.contract-panel,
.bilan-content,.bilan-topbar,.bilan-step,.bilan-card,.modal form{
  background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(255,255,255,.48));
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow-soft);
  backdrop-filter:blur(26px) saturate(135%);
  -webkit-backdrop-filter:blur(26px) saturate(135%);
}

/* Logo / landing */
.landing-shell{width:min(1160px,100%)}
.landing-brand{margin:0 0 14px}
.landing-logo{filter:drop-shadow(0 10px 22px rgba(57,101,145,.12))}
.onboarding-card{padding:22px;border-radius:30px;box-shadow:var(--glass-shadow);position:relative;overflow:hidden}
.onboarding-card::before{content:"";position:absolute;inset:-20% 45% auto -10%;height:220px;background:radial-gradient(circle,rgba(118,185,255,.17),transparent 68%);pointer-events:none}
.onboarding-heading{position:relative;z-index:1;padding:0 6px 17px}
.onboarding-heading .eyebrow{color:#6d8b87;letter-spacing:.15em}
.onboarding-heading h2{font-family:"DM Serif Display",serif;font-weight:400;color:#19385e;font-size:clamp(25px,3vw,34px);letter-spacing:-.015em}
.carousel{position:relative;z-index:1;border:1px solid rgba(255,255,255,.86);background:linear-gradient(145deg,rgba(247,251,255,.72),rgba(245,252,250,.55));box-shadow:inset 0 1px 0 rgba(255,255,255,.88);backdrop-filter:blur(22px)}
.carousel-slide h3{font-family:"DM Serif Display",serif;font-weight:400;font-size:25px;color:#16385d;letter-spacing:-.01em}
.carousel-slide p{color:#617692}
.slide-number{background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.8);box-shadow:0 6px 20px rgba(42,75,114,.08)}
.slide-visual{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.86);box-shadow:0 18px 38px rgba(43,73,110,.10),inset 0 1px 0 rgba(255,255,255,.95);background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,255,255,.35))!important}
.slide-visual::after,.stage-icon::after,.door-icon::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 22%,rgba(255,255,255,.65) 48%,transparent 66%);transform:translateX(-130%);transition:transform .75s ease;pointer-events:none}
.carousel-slide.active .slide-visual::after,.context-door:hover .door-icon::after{transform:translateX(130%)}
.carousel-arrow{border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.64);backdrop-filter:blur(14px);box-shadow:0 8px 20px rgba(37,68,105,.08)}
.carousel-dot{background:rgba(105,128,157,.25)}
.carousel-dot.active{background:linear-gradient(90deg,#6da7f4,#63c7bd,#998be9)}

/* Context doors */
.context-section{margin-top:18px}
.context-heading .eyebrow{color:#7c8da7}
.context-grid{gap:20px}
.context-door{position:relative;overflow:hidden;min-height:148px;padding:25px 26px;border-radius:28px;box-shadow:var(--glass-shadow);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.context-door::before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-90px;top:-100px;filter:blur(2px);pointer-events:none}
.school-door{background:linear-gradient(145deg,rgba(245,250,255,.78),rgba(221,237,255,.55));border-color:rgba(135,184,247,.28)}
.school-door::before{background:radial-gradient(circle,rgba(103,167,255,.24),transparent 67%)}
.home-door{background:linear-gradient(145deg,rgba(247,253,250,.8),rgba(224,246,236,.58));border-color:rgba(116,202,158,.3)}
.home-door::before{background:radial-gradient(circle,rgba(96,199,149,.22),transparent 67%)}
.context-door:hover{transform:translateY(-4px) scale(1.005);box-shadow:0 26px 55px rgba(36,74,119,.14),inset 0 1px 0 rgba(255,255,255,.9)}
.door-icon{position:relative;z-index:1;width:78px;height:78px;border-radius:25px;background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(255,255,255,.35))!important;border:1px solid rgba(255,255,255,.92);box-shadow:0 15px 30px rgba(47,76,110,.1),inset 0 1px 0 #fff;overflow:hidden}
.door-copy,.door-arrow{position:relative;z-index:1}
.door-copy strong{font-family:"DM Serif Display",serif;font-size:27px;font-weight:400;letter-spacing:-.01em}
.school-door .door-copy strong{color:#315f9e}.home-door .door-copy strong{color:#327957}
.door-copy small{font-size:12px;line-height:1.6;color:#61758e}
.door-arrow{border:1px solid rgba(255,255,255,.82);background:rgba(255,255,255,.56)!important;box-shadow:0 6px 16px rgba(47,76,110,.08)}

/* Builder */
.app-shell{width:min(1240px,100%)}
.topbar{align-items:center;margin-bottom:18px;padding:10px 12px;border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.52),rgba(255,255,255,.26));border:1px solid rgba(255,255,255,.76);box-shadow:0 10px 34px rgba(41,69,103,.07);backdrop-filter:blur(20px)}
.topbar-logo{filter:drop-shadow(0 8px 14px rgba(48,84,126,.10))}
.topbar h1{font-family:"DM Serif Display",serif;font-weight:400;letter-spacing:-.015em;color:#17375c}
.subtitle{color:#6a7d96}
.context-back{color:#66819d}
.setup-card{border-radius:24px;padding:18px 20px;box-shadow:var(--glass-shadow-soft)}
.setup-card input[type=text],.setup-card input[type=date],.bank-toolbar select,.search-box input{background:rgba(255,255,255,.62);border-color:rgba(255,255,255,.9);box-shadow:inset 0 0 0 1px rgba(101,132,170,.10),0 5px 16px rgba(45,75,110,.05);backdrop-filter:blur(12px)}
.segmented{background:rgba(226,236,247,.58);border:1px solid rgba(255,255,255,.82)}
.segmented input:checked+span{background:rgba(255,255,255,.78);box-shadow:0 8px 18px rgba(45,82,127,.08)}

.stepper{gap:12px;margin-bottom:18px}
.step{position:relative;grid-template-columns:46px 1fr;min-height:78px;padding:13px 15px;border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.57),rgba(255,255,255,.32));border:1px solid rgba(255,255,255,.82);box-shadow:0 9px 25px rgba(42,72,108,.06);backdrop-filter:blur(18px);overflow:hidden}
.step::after{content:"";position:absolute;right:-22px;bottom:-32px;width:92px;height:92px;border-radius:50%;opacity:.22;filter:blur(1px)}
.step[data-step="0"]::after{background:radial-gradient(circle,#73a8ff,transparent 70%)}
.step[data-step="1"]::after{background:radial-gradient(circle,#5ccfce,transparent 70%)}
.step[data-step="2"]::after{background:radial-gradient(circle,#74c99d,transparent 70%)}
.step[data-step="3"]::after{background:radial-gradient(circle,#9b8cf3,transparent 70%)}
.step span{width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.66);box-shadow:inset 0 0 0 1px rgba(90,122,163,.08)}
.step.active{transform:translateY(-2px);background:linear-gradient(145deg,rgba(255,255,255,.85),rgba(255,255,255,.55));border-color:rgba(255,255,255,.95);box-shadow:0 16px 36px rgba(43,73,109,.11)}
.step b{font-size:13px;color:#29466d}.step small{color:#7d8ca1}

.builder-card{border-radius:30px;box-shadow:var(--glass-shadow);background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(255,255,255,.4));border:1px solid rgba(255,255,255,.88)}
.builder-head{padding:24px 28px;background:linear-gradient(100deg,rgba(111,166,246,.09),rgba(91,204,192,.07),rgba(154,137,240,.07));border-bottom-color:rgba(255,255,255,.68)}
.builder-head h2{font-family:"DM Serif Display",serif;font-weight:400;font-size:27px;color:#1c3d63;letter-spacing:-.01em}
.stage-icon{position:relative;width:66px;height:66px;border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(255,255,255,.32));border:1px solid rgba(255,255,255,.92);box-shadow:0 14px 30px rgba(46,77,111,.10),inset 0 1px 0 white;overflow:hidden;background-repeat:no-repeat;background-position:center;background-size:56%}
.selection-counter{background:rgba(255,255,255,.62);border-color:rgba(255,255,255,.86);box-shadow:0 8px 22px rgba(45,74,109,.06);backdrop-filter:blur(12px)}
.workspace{gap:20px;padding:24px 28px 26px}
.bank-panel,.contract-panel{border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.66),rgba(255,255,255,.4));border:1px solid rgba(255,255,255,.88);box-shadow:0 15px 38px rgba(44,73,108,.08)}
.card-bank{background:rgba(243,248,254,.48);border-color:rgba(110,151,200,.20)}
.selected-zone{background:linear-gradient(180deg,rgba(251,253,255,.72),rgba(244,249,255,.5));border-color:rgba(111,158,219,.25)}
.stage-tip{background:linear-gradient(145deg,rgba(238,247,255,.72),rgba(239,251,248,.62));border:1px solid rgba(255,255,255,.88)}
.contract-card{background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(255,255,255,.58));border-color:rgba(255,255,255,.9);box-shadow:0 9px 24px rgba(31,63,100,.075),inset 0 1px 0 #fff;backdrop-filter:blur(12px)}
.contract-card:hover{transform:translateY(-1px);border-color:rgba(124,171,226,.35);box-shadow:0 14px 30px rgba(31,63,100,.11)}
.card-add{background:rgba(235,244,255,.72);border:1px solid rgba(255,255,255,.86);box-shadow:0 5px 13px rgba(43,75,112,.07)}
.builder-actions{background:rgba(255,255,255,.18);border-top-color:rgba(255,255,255,.72)}
.btn{border-radius:14px;box-shadow:0 7px 18px rgba(45,75,111,.06)}
.btn-primary{background:linear-gradient(135deg,#67bca9,#6e9cf3,#9489ef);box-shadow:0 12px 28px rgba(91,119,198,.18)}
.btn-soft{background:rgba(239,246,255,.65);border-color:rgba(255,255,255,.9);color:#4773ad}
.btn-ghost{background:rgba(255,255,255,.58);border-color:rgba(255,255,255,.86)}

/* Bilan */
.bilan-modal{background:radial-gradient(circle at 12% 8%,rgba(117,178,255,.18),transparent 27%),radial-gradient(circle at 88% 12%,rgba(89,205,175,.14),transparent 28%),linear-gradient(145deg,#f4f9ff,#fbfdff 50%,#f4fbf8)}
.bilan-shell{background:transparent}
.bilan-heading h2{font-family:"DM Serif Display",serif;font-weight:400;color:#193a60;letter-spacing:-.01em}
.bilan-stepper{gap:10px}.bilan-step{border-radius:18px}
.bilan-content{border-radius:26px;box-shadow:var(--glass-shadow)}

/* Icônes Cresco glass : vectorielles, sans emoji */
.slide-visual,.stage-icon,.door-icon{background-repeat:no-repeat!important;background-position:center!important}
[data-icon="objectives"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%236fc8a4'/%3E%3Cstop offset='1' stop-color='%23669cf4'/%3E%3C/linearGradient%3E%3C/defs%3E%3Ccircle cx='48' cy='52' r='31' fill='none' stroke='url(%23g)' stroke-width='7' opacity='.82'/%3E%3Ccircle cx='48' cy='52' r='18' fill='none' stroke='url(%23g)' stroke-width='6' opacity='.9'/%3E%3Ccircle cx='48' cy='52' r='6' fill='%2369afa9'/%3E%3Cpath d='M51 47 78 20M67 20h11v11' fill='none' stroke='%236b9cf1' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-size:62%!important}
[data-icon="strategies"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%235fcfc7'/%3E%3Cstop offset='1' stop-color='%237da5ef'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M23 77c10-20 35-11 38-29 2-12-12-12-7-25' fill='none' stroke='url(%23g)' stroke-width='9' stroke-linecap='round'/%3E%3Cpath d='M54 23l1-10 9 5' fill='none' stroke='%2371b8d6' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='22' cy='78' r='7' fill='%236bc7b6'/%3E%3Ccircle cx='61' cy='48' r='5' fill='%237fa3ee' opacity='.75'/%3E%3C/svg%3E")!important;background-size:61%!important}
[data-icon="adult"],[data-icon="teacher"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%2369c7b3'/%3E%3Cstop offset='1' stop-color='%238b87ed'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M18 44l17-16 19 13 13-6 15 15-21 21c-6 6-15 6-21 0L18 49c-2-2-2-4 0-5z' fill='none' stroke='url(%23g)' stroke-width='7' stroke-linejoin='round'/%3E%3Cpath d='M36 54l10-8c4-3 8-3 12 0l8 7' fill='none' stroke='%2374bbaa' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E")!important;background-size:63%!important}
[data-icon="rewards"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop stop-color='%239c89f0'/%3E%3Cstop offset='1' stop-color='%23f1c36e'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='20' y='43' width='60' height='38' rx='8' fill='none' stroke='url(%23g)' stroke-width='7'/%3E%3Cpath d='M50 43v38M18 43h64M34 43c-9-8-5-20 5-17 7 2 11 11 11 17M66 43c9-8 5-20-5-17-7 2-11 11-11 17' fill='none' stroke='url(%23g)' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E")!important;background-size:61%!important}
[data-icon="school"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M18 45 50 20l32 25v35H18z' fill='none' stroke='%236b9ff2' stroke-width='7' stroke-linejoin='round'/%3E%3Cpath d='M42 80V57h16v23M25 50h50M50 20v-9M50 12h17l-6 8 6 8H50' fill='none' stroke='%236b9ff2' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-size:60%!important}
[data-icon="home"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M16 49 50 20l34 29M24 44v36h52V44M43 80V59h14v21' fill='none' stroke='%2360b786' stroke-width='7' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='68' cy='60' r='5' fill='%2360b786' opacity='.7'/%3E%3C/svg%3E")!important;background-size:58%!important}

/* Mode contexte : accents plus raffinés */
body.context-school{--context-accent:#5a8fe6;--context-accent-2:#7eb6f4;background:radial-gradient(circle at 9% 5%,rgba(112,170,244,.24),transparent 31%),radial-gradient(circle at 89% 13%,rgba(122,197,240,.13),transparent 28%),linear-gradient(145deg,#f1f7ff,#fbfcff 52%,#f4f8ff)}
body.context-home{--context-accent:#58aa7f;--context-accent-2:#76c59a;background:radial-gradient(circle at 9% 5%,rgba(92,190,145,.19),transparent 31%),radial-gradient(circle at 89% 13%,rgba(122,211,174,.12),transparent 28%),linear-gradient(145deg,#f3fbf7,#fcfdfc 52%,#f3faf6)}
body.context-school .step.active span,body.context-school .btn-primary{background:linear-gradient(135deg,#5d93e7,#76b3ef)!important}
body.context-home .step.active span,body.context-home .btn-primary{background:linear-gradient(135deg,#55aa7e,#79c79a)!important}

/* Le document PDF garde son style de document : pas de glass ni décor ajouté. */
.contract-sheet,.contract-page,.contract-sheet *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

@media(max-width:820px){
  .context-door{min-height:126px}
  .door-copy strong{font-size:24px}
  .stepper{gap:8px}.step{min-height:72px}
}
@media(max-width:560px){
  .onboarding-card{padding:15px;border-radius:24px}.context-door{min-height:100px;border-radius:22px}
  .door-icon{width:58px;height:58px;border-radius:19px}.door-copy strong{font-size:21px}
  .topbar{padding:8px;border-radius:20px}.builder-card{border-radius:24px}.builder-head h2{font-size:23px}
  .stage-icon{width:56px;height:56px;border-radius:18px}.bank-panel,.contract-panel{border-radius:20px}
}
@media(prefers-reduced-motion:reduce){.slide-visual::after,.stage-icon::after,.door-icon::after{display:none}}

/* V1.13 — Icônes validées par l’utilisatrice, extraites de la planche de sélection.
   École 1B · Maison 2A · Objectifs 3C · Stratégies 4A · Adulte 5B · Gratifications 6C */
.slide-visual,.stage-icon,.door-icon,.step-symbol{
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
}
[data-icon="school"]{background-image:url("icon-school.png")!important}
[data-icon="home"]{background-image:url("icon-home.png")!important}
[data-icon="objectives"]{background-image:url("icon-objectives.png")!important}
[data-icon="strategies"]{background-image:url("icon-strategies.png")!important}
[data-icon="adult"],[data-icon="teacher"]{background-image:url("icon-adult.png")!important}
[data-icon="rewards"]{background-image:url("icon-rewards.png")!important}

/* Les assets comprennent déjà leur propre tuile glass : ne pas les redessiner. */
.slide-visual,.stage-icon,.door-icon,.step-symbol{
  background-color:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.slide-visual::before,.slide-visual::after,
.stage-icon::before,.stage-icon::after,
.door-icon::before,.door-icon::after,
.step-symbol::before,.step-symbol::after{display:none!important}
.slide-visual{width:112px!important;height:112px!important;border-radius:28px!important}
.door-icon{width:92px!important;height:92px!important;border-radius:28px!important;flex:0 0 92px!important}
.stage-icon{width:78px!important;height:78px!important;border-radius:24px!important;flex:0 0 78px!important}

/* Les quatre étapes utilisent désormais les quatre icônes validées. */
.step{grid-template-columns:54px 1fr!important}
.step .step-symbol{
  width:50px!important;height:50px!important;border-radius:16px!important;
  font-size:0!important;color:transparent!important;
}
.step.active .step-symbol{background-color:transparent!important;box-shadow:none!important}
body.context-school .step.active .step-symbol,
body.context-home .step.active .step-symbol{background-color:transparent!important;box-shadow:none!important}

@media(max-width:720px){
  .door-icon{width:70px!important;height:70px!important;flex-basis:70px!important}
  .stage-icon{width:64px!important;height:64px!important;flex-basis:64px!important}
  .slide-visual{width:90px!important;height:90px!important}
  .step{grid-template-columns:44px 1fr!important}
  .step .step-symbol{width:42px!important;height:42px!important}
}
