:root{--navy:#092d5c;--gold:#b77b19;--cream:#fffdf8;--line:#d7b06a;--purple:#74247f;--blue:#176a9d;--teal:#087d86;--ink:#17243a;--soft:#f8f3e8}
*{box-sizing:border-box}body{margin:0;background:#f3f0ea;color:var(--ink);font-family:Georgia,'Times New Roman',serif}.app-shell{max-width:1240px;margin:auto;background:var(--cream);min-height:100vh;padding:24px 28px 42px;box-shadow:0 0 45px #00000012}.hero{text-align:center;padding:4px 10px 20px}.brand-line{display:flex;justify-content:center;gap:20px;align-items:center;color:var(--gold);letter-spacing:.17em}.brand-line b{font-size:clamp(30px,5vw,56px);color:var(--navy);letter-spacing:.04em}.hero h1{font-size:clamp(24px,3.6vw,42px);margin:6px 0;color:var(--gold);font-weight:500}.hero p{margin:4px;color:var(--navy);letter-spacing:.08em}.hero small{color:#777}.input-card,.section-card,.detail-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px;margin-bottom:22px}.input-card{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field.wide{grid-column:span 2}.field label{color:var(--navy);font-weight:bold}.field input{padding:11px 12px;border:1px solid #cdbd9f;border-radius:9px;font:inherit;background:#fff}.field small{font-size:11px;color:#777}.wide-all{grid-column:1/-1}.actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}.actions button{border:1px solid var(--navy);background:#fff;color:var(--navy);padding:10px 17px;border-radius:9px;font-weight:bold;cursor:pointer}.actions .primary{background:var(--navy);color:#fff}.alert{padding:14px 18px;border:1px solid #d7a13c;background:#fff7df;border-radius:12px;margin-bottom:18px}.date-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;text-align:center;position:relative}.date-grid h2{grid-column:1/-1;color:var(--navy);margin:0 0 10px}.date-box{padding:10px;border-right:1px solid #dfc491}.date-box:last-child{border-right:none}.date-box span{display:block;color:var(--navy);font-size:23px;font-weight:bold}.date-box strong{display:inline-grid;place-items:center;width:92px;height:92px;border-radius:50%;border:3px double currentColor;font-size:34px;color:var(--purple);margin:8px}.date-box:nth-of-type(3) strong{color:var(--blue)}.date-box:nth-of-type(4) strong{color:var(--teal);font-size:25px}.date-box em{display:block;color:var(--gold);font-size:18px;font-style:normal}.main-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.85fr);gap:22px;align-items:stretch}.matrix-card,.hd-card,.name-card{border:1px solid var(--line);border-radius:20px;background:#fff;position:relative;overflow:hidden}.matrix-card{min-height:620px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px}.matrix-card h2{color:var(--navy);z-index:2}.equation{font-size:clamp(27px,4vw,48px);color:var(--gold);z-index:2}.big-number{font-size:clamp(130px,20vw,245px);line-height:.8;color:var(--purple);font-weight:bold;z-index:2;text-shadow:0 6px 18px #74247f18}.verify{z-index:2;border-top:1px solid var(--line);padding-top:14px}.ornament{position:absolute;top:14px;color:var(--gold);font-size:28px}.matrix-orbits{position:absolute;inset:65px;display:grid;place-items:center;opacity:.22}.matrix-orbits i{position:absolute;width:68%;height:90%;border:2px solid var(--blue);border-radius:50%;transform:rotate(calc(var(--n)*30deg))}.matrix-orbits i:nth-child(1){--n:0}.matrix-orbits i:nth-child(2){--n:1;border-color:var(--purple)}.matrix-orbits i:nth-child(3){--n:2;border-color:var(--teal)}.matrix-orbits i:nth-child(4){--n:3;border-color:var(--gold)}.matrix-orbits i:nth-child(5){--n:4;border-color:var(--blue)}.matrix-orbits i:nth-child(6){--n:5;border-color:var(--purple)}.hd-card{padding:22px}.hd-card h2{text-align:center;color:var(--navy);font-size:24px}.hd-card h3{text-align:center;color:var(--gold);text-transform:uppercase;font-size:15px;letter-spacing:.08em;border-block:1px dotted var(--line);padding:9px}.astro-line{display:flex;justify-content:space-between;gap:10px;padding:7px 2px}.micro{font-size:12px;color:#6b6b6b}.hd-sub{border-left:4px solid var(--purple);padding:10px 12px;margin:12px 0;background:#fbf7fc;border-radius:8px}.hd-sub.design{border-color:var(--blue);background:#f5fafe}.hd-sub p{margin:7px 0}.asc-gate{border:1px solid #8ab0b2;background:#f4fbfb;border-radius:10px;padding:10px;margin:12px 0}.asc-gate small{display:block;color:#666;margin-top:5px}.hd-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0}.hd-summary div{border:1px solid #e4d6ba;border-radius:8px;padding:8px}.hd-summary small{display:block;color:#777}.hd-summary strong{color:var(--navy)}.cross{text-align:center;border:1px solid var(--line);padding:10px;border-radius:10px;color:var(--navy)}.name-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px 0}.name-card{padding:20px}.name-card h2{text-align:center;font-size:21px}.name-card p{line-height:1.6;border-bottom:1px dotted #cbb;padding-bottom:10px}.name-card strong{font-size:22px}.name-card.purple h2,.name-card.purple strong{color:var(--purple)}.name-card.blue h2,.name-card.blue strong{color:var(--blue)}.name-card.teal h2,.name-card.teal strong{color:var(--teal)}.name-card .total{border-bottom:0}.detail-card{margin-top:16px}.detail-card summary{cursor:pointer;color:var(--navy);font-size:20px;font-weight:bold}.detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:15px}.detail-card table{width:100%;border-collapse:collapse;font-size:14px}.detail-card th,.detail-card td{padding:8px;border-bottom:1px solid #e6decf;text-align:left}.detail-card th{color:var(--navy);background:#faf7f0}.hd-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 20px}footer{text-align:center;color:#777;border-top:1px solid #dbc7a2;padding-top:18px;margin-top:25px;font-size:13px}
@media(max-width:900px){.input-card{grid-template-columns:1fr 1fr}.main-grid{grid-template-columns:1fr}.name-grid{grid-template-columns:1fr}.detail-cols{grid-template-columns:1fr}.matrix-card{min-height:520px}}
@media(max-width:560px){.app-shell{padding:14px}.input-card{grid-template-columns:1fr}.field.wide{grid-column:span 1}.date-grid{grid-template-columns:1fr}.date-box{border-right:0;border-bottom:1px solid #dfc491}.date-box:last-child{border-bottom:0}.matrix-card{min-height:430px;padding:24px}.matrix-orbits{inset:50px 25px}.hd-summary,.hd-facts{grid-template-columns:1fr}.actions button{flex:1 1 45%}}
@media print{body{background:#fff}.app-shell{box-shadow:none;max-width:none;padding:0}.input-card,.actions,.alert{display:none!important}.main-grid{grid-template-columns:1.7fr .9fr;gap:10px}.matrix-card{min-height:520px}.name-grid{grid-template-columns:repeat(3,1fr);gap:8px}.detail-card{break-before:page}.detail-card:not([open]){display:none}.hero{padding-bottom:8px}.hd-card,.matrix-card,.name-card,.section-card{break-inside:avoid}}

/* ===== CODEXORTUS 1.01 · BodyGraph Human Design ===== */
.bodygraph-section{margin-top:22px;padding:24px 24px 18px;overflow:hidden}.bodygraph-heading{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr);gap:22px;align-items:end;border-bottom:1px solid #eadfc9;padding-bottom:16px}.bodygraph-heading .eyebrow{display:block;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:bold}.bodygraph-heading h2{color:var(--navy);font-size:30px;margin:5px 0 7px}.bodygraph-heading p{margin:0;line-height:1.55;color:#566070;max-width:760px}.bodygraph-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;font-size:12px;color:#4e5661}.bodygraph-legend span{display:flex;align-items:center;gap:8px}.legend-gate,.legend-center{display:inline-block;flex:0 0 auto}.legend-gate{width:20px;height:20px;border-radius:50%;border:1px solid #999}.legend-gate.personality{background:#191919;border-color:#191919}.legend-gate.design{background:#c93035;border-color:#a72328}.legend-gate.dual{background:linear-gradient(90deg,#191919 0 50%,#c93035 50% 100%);border-color:#6d2024}.legend-center{width:20px;height:17px;border:2px solid #8c8577}.legend-center.defined{background:#e7cf53}.legend-center.undefined{background:#fffdf8}.bodygraph-layout{display:grid;grid-template-columns:minmax(155px,.6fr) minmax(440px,1.75fr) minmax(180px,.72fr);gap:18px;align-items:center;margin-top:18px}.bodygraph-canvas{display:flex;justify-content:center;align-items:center;min-width:0;background:radial-gradient(circle at 50% 42%,#fff 0,#fffdf8 55%,#fbf7ef 100%);border:1px solid #eee4d4;border-radius:18px;padding:8px}.bodygraph-svg{display:block;width:100%;max-width:700px;height:auto;overflow:visible}.bodygraph-side{border:1px solid #e5d7be;border-radius:14px;background:#fffdf9;padding:14px;box-shadow:0 6px 20px #0a2d5c0a}.bodygraph-side h3{margin:4px 0 10px;color:var(--navy);font-size:16px;text-align:center}.bodygraph-side p{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin:0;padding:8px 0;border-bottom:1px dotted #d6c8af;font-size:13px;line-height:1.35}.bodygraph-side p:last-child{border-bottom:0}.bodygraph-side p span{text-align:right;color:var(--navy);font-weight:bold}.bodygraph-side hr{border:0;border-top:1px solid #e6dccb;margin:11px 0}.bodygraph-side-right p{display:block}.bodygraph-side-right p b{display:block;color:#6b6255;font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.bodygraph-side-right p span{display:block;text-align:left;font-size:14px}.bodygraph-cross span{color:var(--gold)!important}.bodygraph-counts{font-size:11px!important;color:#6e6e6e;line-height:1.45!important}.bodygraph-note{font-size:12px;color:#726b60;text-align:center;margin:12px auto 0;max-width:840px}.hd-center text{font-family:Georgia,'Times New Roman',serif}.hd-gate text{font-family:Arial,Helvetica,sans-serif}.channel-active{transition:stroke-width .2s ease}.hd-gate circle{transition:transform .2s ease}.hd-gate:hover circle{transform:scale(1.12);transform-box:fill-box;transform-origin:center}.hd-gate.inactive{opacity:.88}
@media(max-width:1050px){.bodygraph-layout{grid-template-columns:180px minmax(420px,1fr)}.bodygraph-side-right{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.bodygraph-side-right h3,.bodygraph-side-right hr{display:none}.bodygraph-side-right p{border:1px solid #e6dccb;border-radius:8px;padding:8px}.bodygraph-side-right .bodygraph-cross,.bodygraph-side-right .bodygraph-counts{grid-column:span 2}}
@media(max-width:760px){.bodygraph-heading{grid-template-columns:1fr}.bodygraph-legend{grid-template-columns:1fr 1fr}.bodygraph-layout{grid-template-columns:1fr}.bodygraph-side-left{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}.bodygraph-side-left h3{grid-column:span 1}.bodygraph-side-left hr{display:none}.bodygraph-canvas{order:2}.bodygraph-side-right{order:3;grid-template-columns:1fr 1fr}.bodygraph-side-right .bodygraph-cross,.bodygraph-side-right .bodygraph-counts{grid-column:1/-1}}
@media(max-width:520px){.bodygraph-section{padding:17px 10px}.bodygraph-heading h2{font-size:24px}.bodygraph-legend{grid-template-columns:1fr}.bodygraph-side-left,.bodygraph-side-right{grid-template-columns:1fr}.bodygraph-side-left h3,.bodygraph-side-right .bodygraph-cross,.bodygraph-side-right .bodygraph-counts{grid-column:1}.bodygraph-canvas{padding:0;margin-inline:-4px}.bodygraph-svg{min-width:0}.hd-gate text{font-size:11px}}
@media print{.bodygraph-section{break-before:page;break-inside:avoid;padding:10px}.bodygraph-layout{grid-template-columns:150px minmax(400px,1fr) 170px;gap:8px}.bodygraph-heading{grid-template-columns:1.2fr .8fr}.bodygraph-svg{max-height:690px}.bodygraph-side{box-shadow:none;padding:8px}.bodygraph-note{margin-top:4px}.bodygraph-section .hd-gate:hover circle{transform:none}}

/* ===== CODEXORTUS 1.02 · Saisie latérale + BodyGraph agrandi ===== */
.app-shell{max-width:1680px;padding:22px 24px 40px}
.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start;transition:grid-template-columns .22s ease}
.workspace.input-collapsed{grid-template-columns:62px minmax(0,1fr)}
.results-area{min-width:0}
.input-panel{position:sticky;top:14px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 28px #092d5c0b;overflow:hidden;min-height:74px;z-index:4}
.input-panel-content{padding:14px 14px 16px;transition:opacity .15s ease}
.input-panel-title{display:flex;align-items:center;gap:10px;color:var(--navy);padding:4px 4px 12px;border-bottom:1px solid #eadfc9;margin-bottom:12px}
.input-panel-title>span{color:var(--gold);font-size:22px}
.input-panel-title b{display:block;font-size:19px}
.input-panel-title small{display:block;color:#777;font-size:11px;margin-top:2px}
.sidebar-toggle{width:100%;height:42px;border:0;border-bottom:1px solid #eadfc9;background:#fbf7ef;color:var(--navy);font:700 13px Georgia,'Times New Roman',serif;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.sidebar-toggle:hover{background:#f4ead9}
.toggle-icon{color:var(--gold);font-size:16px}
.sidebar-form{display:flex!important;flex-direction:column;gap:11px;border:0!important;border-radius:0!important;margin:0!important;padding:0!important;background:transparent!important}
.sidebar-form .field,.sidebar-form .field.wide,.sidebar-form .wide-all{grid-column:auto!important;width:100%}
.sidebar-form .field input{width:100%;min-width:0}
.sidebar-form .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:6px}
.sidebar-form .actions button{padding:9px 8px;font-size:13px}
.input-panel-collapsed-label{display:none;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.18em;color:var(--navy);font-size:12px;font-weight:bold;margin:22px auto 0}
.input-panel.collapsed .input-panel-content{display:none}
.input-panel.collapsed .input-panel-collapsed-label{display:block}
.input-panel.collapsed .sidebar-toggle{height:54px;flex-direction:column;gap:1px;padding:4px}
.input-panel.collapsed .toggle-label{font-size:10px}

/* Le panneau de résultats conserve de l'air malgré la colonne de saisie. */
.results-area .section-card,.results-area .detail-card{margin-bottom:20px}
.results-area .matrix-card{min-height:560px}
.results-area .main-grid{grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);gap:18px}
.results-area .name-grid{gap:14px}

/* BodyGraph V1.02 : le dessin occupe toute la largeur avant les panneaux de synthèse. */
.bodygraph-section{padding:24px 18px 20px;overflow:visible}
.bodygraph-heading{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}
.bodygraph-heading h2{font-size:34px}
.bodygraph-layout{display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;align-items:start!important;margin-top:18px!important}
.bodygraph-canvas{grid-column:1/-1;grid-row:1;min-height:980px;padding:18px 10px;background:radial-gradient(circle at 50% 43%,#fff 0,#fffdf8 58%,#f7f1e5 100%)}
.bodygraph-side-left{grid-column:1;grid-row:2}
.bodygraph-side-right{grid-column:2;grid-row:2}
.bodygraph-svg{width:min(100%,900px)!important;max-width:900px!important;height:auto!important;margin:auto;overflow:visible}
.bodygraph-side{padding:16px 18px}
.bodygraph-side h3{font-size:18px}
.bodygraph-side p{font-size:14px}
.bodygraph-note{max-width:980px;font-size:13px}
.hd-center text{font-size:18px;font-weight:700}
.hd-gate.inactive{opacity:.72}
.hd-gate.inactive text{font-weight:600}
.hd-gate.personality,.hd-gate.design,.hd-gate.dual{filter:drop-shadow(0 1px 1px #ffffff)}

@media(max-width:1180px){
  .workspace{grid-template-columns:300px minmax(0,1fr);gap:16px}
  .results-area .main-grid{grid-template-columns:1fr}
  .bodygraph-canvas{min-height:850px}
}
@media(max-width:900px){
  .app-shell{padding:14px}
  .workspace,.workspace.input-collapsed{grid-template-columns:1fr}
  .input-panel{position:relative;top:auto}
  .input-panel.collapsed{min-height:54px}
  .input-panel.collapsed .input-panel-collapsed-label{display:none}
  .input-panel.collapsed .sidebar-toggle{height:54px;flex-direction:row}
  .bodygraph-heading{grid-template-columns:1fr}
  .bodygraph-layout{grid-template-columns:1fr!important}
  .bodygraph-canvas{grid-column:1;grid-row:1;min-height:0;padding:8px}
  .bodygraph-side-left{grid-column:1;grid-row:2}
  .bodygraph-side-right{grid-column:1;grid-row:3}
  .bodygraph-svg{width:100%!important;max-width:760px!important}
}
@media(max-width:600px){
  .sidebar-form .actions{grid-template-columns:1fr}
  .bodygraph-section{padding:16px 8px}
  .bodygraph-heading h2{font-size:27px}
  .bodygraph-legend{grid-template-columns:1fr}
  .bodygraph-canvas{margin:0;padding:0;border-radius:10px}
  .bodygraph-svg{min-width:0!important}
}
@media print{
  .workspace,.workspace.input-collapsed{display:block!important}
  .input-panel{display:none!important}
  .results-area{width:100%!important}
  .bodygraph-layout{display:block!important}
  .bodygraph-canvas{min-height:0!important;border:0!important;padding:0!important}
  .bodygraph-svg{max-width:680px!important;margin:0 auto!important}
  .bodygraph-side{margin-top:8px;box-shadow:none}
}
