:root{--bg:#07050d;--panel:#100d19;--panel2:#171321;--line:#2a2438;--text:#f6f3fb;--muted:#9c96ad;--accent:#8b5cf6;--accent2:#6d4bd4;--good:#34d399;--bad:#fb7185;--warn:#fbbf24;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:13px -apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;overscroll-behavior:none}body{overflow:hidden}button,select,input,textarea{font:inherit}button{touch-action:manipulation}#appShell{height:100%;background:radial-gradient(circle at 50% -20%,#22153c 0,#07050d 44%)}
header{height:64px;display:grid;grid-template-columns:auto auto 38px;grid-template-rows:32px 1fr;align-items:center;gap:3px 10px;padding:calc(7px + var(--safe-top)) 12px 7px;border-bottom:1px solid #211a2d;background:#090611e8;backdrop-filter:blur(18px);position:relative;z-index:1200}.brand{display:flex;align-items:center;gap:8px;min-width:0}.brand-mark{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(145deg,#9d72ff,#5b37bd);font-weight:800;box-shadow:0 6px 18px #6d4bd466}.brand b{display:block;font-size:12px;letter-spacing:.35px;white-space:nowrap}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:1px}header #status{justify-self:end;color:var(--good);font-size:10px;font-weight:700;border:1px solid #265e48;background:#0c241b;padding:4px 7px;border-radius:999px}header #layoutBtn{width:36px;height:32px;padding:0;border-radius:10px;border:1px solid var(--line);color:#d9ccff;background:#171120;font-size:17px}header input{grid-column:1/4;width:100%;height:34px;border:1px solid #302743;background:#100c18;color:var(--text);border-radius:12px;padding:0 12px;outline:none}header input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf622}
nav{height:44px;display:flex;gap:5px;padding:5px 8px;border-bottom:1px solid var(--line);background:#0b0812;overflow:auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav button{flex:1;min-width:78px;border:0;border-radius:11px;color:var(--muted);background:transparent;font-weight:650;padding:7px 10px}nav button.active{color:white;background:#221a31;box-shadow:inset 0 0 0 1px #3a2d50}
main{height:calc(100% - 108px - var(--safe-top));position:relative;overflow:hidden}.panel{position:absolute;background:linear-gradient(160deg,#12101a,#0d0a13);border:1px solid var(--line);min-width:240px;min-height:150px;box-shadow:0 12px 38px #0009;overflow:hidden;border-radius:12px}.panel.max{inset:0!important;width:auto!important;height:auto!important;z-index:999}.panel-head{height:36px;background:#181321;display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-bottom:1px solid var(--line);cursor:move;user-select:none}.panel-head b{color:#ddd6ea;font-size:11px;letter-spacing:.2px}.panel-tools{display:flex;gap:4px}.panel-tools button{padding:2px 7px;border-radius:7px;background:#211a2d;color:#cfc6dc;border:1px solid #362b48}.panel-body{height:calc(100% - 36px);overflow:auto;padding:9px;-webkit-overflow-scrolling:touch}.resize{position:absolute;right:0;bottom:0;width:15px;height:15px;cursor:nwse-resize;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent)}canvas{width:100%;height:100%;display:block;background:#09070e;border-radius:8px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px}.metric{background:#0b0910;border:1px solid #262033;padding:10px;border-radius:10px}.metric small{color:var(--muted);display:block;margin-bottom:3px}.metric strong{font-size:16px}table{width:100%;border-collapse:collapse}th,td{padding:7px;border-bottom:1px solid #221c2e;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}.good{color:var(--good)}.bad{color:var(--bad)}.muted{color:var(--muted)}#palette{position:fixed;inset:calc(92px + var(--safe-top)) 12px auto;background:#120e1b;border:1px solid #5b4380;border-radius:17px;z-index:2000;padding:12px;max-height:70vh;overflow:auto;box-shadow:0 20px 70px #000c}.hidden{display:none!important}#toast{position:fixed;left:14px;right:14px;bottom:calc(16px + var(--safe-bottom));background:#171120eF;border:1px solid #60458e;padding:12px;border-radius:13px;display:none;z-index:3000;text-align:center;box-shadow:0 14px 38px #000b}.toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.toolbar button,.toolbar select,.panel-body>button{background:#1a1425;color:#eee;border:1px solid #352944;border-radius:9px;padding:7px 9px}.split{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bar{height:7px;background:#241e30;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#7650dc,#a882ff)}textarea{border:1px solid #332943!important;border-radius:10px!important;padding:10px!important}
@media(max-width:700px){body{overflow:hidden}header{height:104px;grid-template-columns:1fr auto 38px;grid-template-rows:36px 38px}.brand b{font-size:11px}header input{height:36px}nav{position:fixed;z-index:1500;left:0;right:0;bottom:0;height:calc(64px + var(--safe-bottom));padding:7px 7px calc(7px + var(--safe-bottom));border-top:1px solid #292137;border-bottom:0;background:#090611ee;backdrop-filter:blur(20px);gap:3px}nav button{min-width:0;font-size:10px;padding:28px 3px 4px;position:relative}nav button::before{content:'◈';position:absolute;top:7px;left:50%;transform:translateX(-50%);font-size:17px;color:#9289a4}nav button:nth-child(1)::before{content:'⌁'}nav button:nth-child(2)::before{content:'◫'}nav button:nth-child(3)::before{content:'⌕'}nav button:nth-child(4)::before{content:'∿'}nav button.active{background:#20182d;color:white}nav button.active::before{color:#9c72ff}main{height:calc(100% - 104px - 64px - var(--safe-top) - var(--safe-bottom));overflow-y:auto;padding:8px 8px 18px}.panel{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;min-height:0;margin:0 0 9px;border-radius:16px;box-shadow:0 10px 30px #0007}.panel-head{height:40px;cursor:default}.panel-tools button[data-act="pop"],.panel-tools button[data-act="close"],.resize{display:none}.panel-body{height:auto;max-height:none;overflow:visible;padding:10px}.panel[data-id="chart"] .panel-body{height:430px}.panel[data-id="book"] .panel-body{max-height:420px;overflow:auto}.panel[data-id="watch"] .panel-body,.panel[data-id="scanner"] .panel-body{overflow-x:auto}.panel[data-id="portfolio"] table{display:block}.panel[data-id="portfolio"] tbody{display:block}.panel[data-id="portfolio"] tr{display:grid;grid-template-columns:1.25fr .9fr;gap:2px 10px;border-bottom:1px solid #292137;padding:11px 4px}.panel[data-id="portfolio"] tr:first-child{display:none}.panel[data-id="portfolio"] td{border:0;padding:2px;text-align:left}.panel[data-id="portfolio"] td:nth-child(3),.panel[data-id="portfolio"] td:nth-child(4),.panel[data-id="portfolio"] td:nth-child(5),.panel[data-id="portfolio"] td:nth-child(6){text-align:right}.panel[data-id="portfolio"] td:nth-child(2)::before{content:'Qté ';color:var(--muted)}.panel[data-id="portfolio"] td:nth-child(3)::before{content:'PRU ';color:var(--muted)}.panel[data-id="portfolio"] td:nth-child(4)::before{content:'Valeur ';color:var(--muted)}.panel[data-id="portfolio"] td:nth-child(6)::before{content:'Poids ';color:var(--muted)}#palette{inset:calc(110px + var(--safe-top)) 10px auto}.split{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric strong{font-size:15px}}
@media(min-width:701px){header{grid-template-columns:auto auto 1fr auto;grid-template-rows:1fr;height:50px}header input{grid-column:auto}main{height:calc(100% - 94px)}}
/* iPhone Pro layer */
:root{--glass:rgba(17,12,27,.82);--ios-radius:22px}body{-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}.mobile-pro-widgets{display:none}.iphone-sheet{position:fixed;z-index:5000;left:0;right:0;bottom:0;max-height:88dvh;min-height:38dvh;padding:8px 16px calc(18px + var(--safe-bottom));border-radius:28px 28px 0 0;background:linear-gradient(160deg,rgba(28,22,42,.98),rgba(8,6,13,.99));border:1px solid #423455;box-shadow:0 -25px 80px #000d;transform:translateY(110%);transition:transform .34s cubic-bezier(.2,.85,.25,1);overflow:auto;overscroll-behavior:contain;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.iphone-sheet.open{transform:translateY(0)}.iphone-sheet>header{height:46px!important;min-height:46px;display:flex!important;position:sticky;top:0;padding:0!important;background:transparent!important;border:0!important;grid-template:none!important;justify-content:space-between;z-index:3}.iphone-sheet>header button{border:0;background:#332944;color:#fff;width:32px;height:32px;border-radius:50%;font-size:22px}.sheet-grabber{width:42px;height:5px;border-radius:99px;background:#665c76;margin:0 auto 5px}.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hub-grid button{min-height:92px;border:1px solid #382c4a;border-radius:18px;background:linear-gradient(145deg,#21182f,#100c18);color:#fff;padding:11px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px}.hub-grid i{font-style:normal;font-size:24px;color:#ae8cff}.hub-grid span{font-size:11px}.sheet-total{padding:18px;border:1px solid #3d3051;border-radius:22px;background:linear-gradient(145deg,#231735,#0f0a17);margin-bottom:12px}.sheet-total small,.sheet-total span{display:block}.sheet-total b{font-size:34px;display:block;margin:5px 0}.asset-cards{display:grid;gap:8px}.asset-cards article{display:grid;grid-template-columns:auto 1fr auto;gap:3px 10px;padding:13px;border:1px solid #302641;border-radius:17px;background:#0e0a15}.asset-cards article>b{font-size:16px}.asset-cards article>span{color:var(--muted)}.asset-cards article>strong,.asset-cards article>em{text-align:right}.asset-cards article>em{grid-column:3}.asset-cards article small{grid-column:1/4;color:var(--muted)}.weight{grid-column:1/4;height:5px;border-radius:9px;background:#211a2c;overflow:hidden}.weight i{display:block;height:100%;background:linear-gradient(90deg,#7953db,#a982ff)}.risk-ring{--risk:50;width:150px;height:150px;margin:15px auto;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#100b18 58%,transparent 59%),conic-gradient(#fb7185 calc(var(--risk)*1%),#292033 0);box-shadow:0 0 40px #fb718522}.risk-ring b{font-size:36px}.risk-ring small{color:var(--muted)}.risk-list p{display:flex;justify-content:space-between;padding:11px 3px;border-bottom:1px solid #2b2238}.signal{padding:14px;border-radius:16px;margin:8px 0;border:1px solid #49354f;background:#17101d}.signal.major{border-color:#81404e;background:#241117}.signal p{margin-bottom:0;color:#c9becf}.empty-state{padding:45px 15px;text-align:center;color:var(--muted)}.action-row{display:flex;gap:8px;margin:9px 0}.iphone-sheet button,.iphone-sheet input{min-height:44px;border-radius:12px;border:1px solid #443357;background:#21172e;color:#fff;padding:9px 12px}.iphone-sheet label{display:grid;gap:6px;margin:10px 0;color:#bdb3c8}.file-button{display:flex!important;align-items:center;justify-content:center;border:1px solid #443357;background:#21172e;padding:9px 12px;border-radius:12px}.toggle{display:flex!important;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #2b2238}.toggle input{width:52px;height:30px;accent-color:#8b5cf6}.install-steps{line-height:1.8;padding-left:22px}.ai-thread{height:52dvh;overflow:auto;padding:5px 0 12px}.ai-msg{max-width:86%;padding:11px 13px;border-radius:18px;margin:8px 0;line-height:1.42}.ai-msg.bot{background:#241a31;border:1px solid #3d2e50}.ai-msg.user{margin-left:auto;background:#7451d3}.iphone-sheet form{display:grid;grid-template-columns:1fr auto;gap:7px;position:sticky;bottom:0;background:#0c0812;padding-top:8px}.iphone-sheet form input{min-width:0}.iphone-fullscreen{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;z-index:4900!important;border-radius:0!important;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);background:#07050d!important}.iphone-fullscreen .panel-body{height:calc(100% - 42px)!important}.iphone-fullscreen canvas{transition:transform .12s linear}.exit-full{position:absolute;z-index:9;right:12px;top:calc(45px + var(--safe-top));border:1px solid #5a4770;background:#21172e;color:white;border-radius:12px;padding:9px 12px}.chart-full nav,.chart-full>div>#iphoneHub{display:none!important}#iphoneHub{display:none;position:fixed;z-index:3600;right:14px;bottom:calc(76px + var(--safe-bottom));width:54px;height:54px;border-radius:18px;border:1px solid #9a77d9;background:linear-gradient(145deg,#9d72ff,#5b37bd);color:#fff;font-weight:900;box-shadow:0 12px 35px #5d3abf88}#offlineBanner{position:fixed;z-index:6000;left:12px;right:12px;top:calc(10px + var(--safe-top));padding:10px;text-align:center;border-radius:12px;background:#8a4b11;color:#fff}.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:700px){#iphoneHub{display:block}.mobile-pro-widgets{display:block;margin-bottom:9px}.hero-widget{position:relative;padding:17px;border-radius:20px;border:1px solid #3b2d4f;background:linear-gradient(145deg,#241536,#0d0914);box-shadow:0 12px 35px #0007}.hero-widget small,.hero-widget span{display:block}.hero-widget strong{font-size:29px;display:block;margin:5px 0}.live-dot{position:absolute;right:13px;top:13px;color:#46dfa7;font-size:9px;font-weight:800}.live-dot:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#34d399;margin-right:5px;box-shadow:0 0 10px #34d399}.widget-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.widget-grid button{text-align:left;border:1px solid #302541;background:#100c18;color:#fff;border-radius:16px;padding:12px}.widget-grid small,.widget-grid b{display:block}.widget-grid small{color:var(--muted);margin-bottom:4px}.panel[data-id="chart"] canvas{touch-action:none}.panel{scroll-margin-top:8px}}

.brief-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.brief-title h2{margin:0 0 5px;font-size:20px}.brief-title p{margin:0;color:var(--muted)}.brief-title button{border:1px solid #4d3a67;background:#20172d;color:#fff;border-radius:10px;padding:9px 12px}.brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.brief-card{border:1px solid #302541;background:linear-gradient(145deg,#171021,#0c0912);padding:13px;border-radius:14px}.brief-card>small{color:var(--muted);display:block}.brief-card>strong{font-size:22px;display:block;margin:5px 0}.brief-card p{min-height:34px;margin:4px 0 8px;line-height:1.35}.source-line{color:#81798d!important;font-size:10px}.brief-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-top:14px}.honest-box{border:1px solid #5a4822;background:#211a0b;padding:13px;border-radius:14px;margin:14px 0}.honest-box li{margin:7px 0;line-height:1.4}.provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:8px}.provider{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;border:1px solid #2c2439;border-radius:11px;padding:9px}.provider b{grid-row:1/3;font-size:19px}.provider small{color:var(--muted)}.table-scroll{overflow:auto}.brief-warning{border:1px solid var(--bad);background:#281018;padding:16px;border-radius:14px}@media(max-width:700px){.brief-grid{grid-template-columns:1fr 1fr}.brief-columns{grid-template-columns:1fr}.brief-title{display:block}.brief-title button{margin-top:10px;width:100%}.panel[data-id="marketBrief"] .panel-body{padding-bottom:90px}}@media(max-width:420px){.brief-grid{grid-template-columns:1fr}}




/* V4 iPhone — en-tête professionnel intégré */
header{
  height:64px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 34px 34px;
  grid-template-rows:32px 1fr;
  align-items:center;
  gap:3px 8px;
}
header .brand{
  grid-column:1;
  overflow:hidden;
}
header #status{
  grid-column:2;
  min-width:48px;
  height:30px;
  padding:0 9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}
header .control-link,
header #layoutBtn{
  width:34px;
  height:32px;
  padding:0;
  border-radius:10px;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  box-sizing:border-box;
  text-decoration:none;
  background:#171120;
  color:#d9ccff;
  font-weight:800;
  line-height:1;
  box-shadow:none;
  position:static;
}
header .control-link{
  grid-column:3;
  font-size:16px;
}
header #layoutBtn{
  grid-column:4;
  font-size:17px;
}
header .control-link:hover,
header #layoutBtn:hover{
  border-color:#5a4678;
  background:#21182e;
}
header .control-link:active,
header #layoutBtn:active{
  transform:scale(.96);
}
header input{
  grid-column:1/5;
}
@media(max-width:430px){
  header{
    grid-template-columns:minmax(0,1fr) auto 32px 32px;
    gap:3px 6px;
    padding-left:10px;
    padding-right:10px;
  }
  .brand{
    gap:7px;
  }
  .brand-mark{
    width:28px;
    height:28px;
    border-radius:9px;
  }
  .brand b{
    font-size:11px;
    letter-spacing:.25px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .brand small{
    max-width:190px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  header #status{
    min-width:44px;
    height:30px;
    padding:0 7px;
    font-size:9px;
  }
  header .control-link,
  header #layoutBtn{
    width:32px;
    height:30px;
    border-radius:9px;
  }
}
@media(max-width:370px){
  .brand small{
    display:none;
  }
  header{
    grid-template-columns:minmax(0,1fr) auto 30px 30px;
    gap:3px 5px;
  }
  header .control-link,
  header #layoutBtn{
    width:30px;
  }
}

/* V5.2 iPhone */html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{overscroll-behavior-y:none}.card,section,article{content-visibility:auto;contain-intrinsic-size:1px 260px}button,a,input{touch-action:manipulation}[data-stale=true]{opacity:.72}html[data-network=offline] .live{color:#ff6b88!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media(max-width:430px){input,select,textarea{font-size:16px}table{font-variant-numeric:tabular-nums}}

/* V6 Ultimate production hardening */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#07050d}
body{overscroll-behavior-y:none;-webkit-font-smoothing:antialiased}
.card,section,article{content-visibility:auto;contain-intrinsic-size:1px 260px}
button,a,input,select{touch-action:manipulation}
input,select,textarea{font-size:16px}
[data-stale="true"]{opacity:.72}
[data-stale="true"]::after{content:" · ancien";color:#ffbf47;font-size:.75em}
[data-invalid="true"]{outline:1px solid #ff6b88}
html[data-network="offline"] .live,html[data-network="offline"] [data-live]{color:#ff6b88!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* V7 Sovereign */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overscroll-behavior-y:none;-webkit-font-smoothing:antialiased}
.card,section,article{content-visibility:auto;contain-intrinsic-size:1px 280px}
button,a,input,select,textarea{touch-action:manipulation}
input,select,textarea{font-size:16px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
