:root{color-scheme:dark;--bg:#05080d;--panel:#0d1724;--panel2:#122136;--text:#f5f7fb;--muted:#94a2b5;--line:rgba(255,255,255,.12);--accent:#ffb000;--ok:#63dfc4;--danger:#ff7676}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%}body{margin:0;color:var(--text);background:var(--bg);font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,textarea{font:inherit}.construction-page{display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 42rem),#020304}.construction-page main{width:100%;min-height:100vh;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem)}.construction-link{width:min(1120px,100%);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);overflow:hidden;border:0;border-radius:1.3rem;color:var(--text);background:#080a0e;text-decoration:none;box-shadow:0 35px 120px #000,0 0 80px color-mix(in srgb,var(--accent) 14%,transparent);transition:transform .25s}.construction-link:hover,.construction-link:focus-visible{transform:translateY(-4px);outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:3px}.construction-link img{width:100%;height:100%;min-height:480px;object-fit:cover}.construction-link>span{padding:clamp(1.4rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center;align-items:start}.construction-link small{color:var(--accent);font-size:.74rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.construction-link strong{margin:.8rem 0;font:600 clamp(2.4rem,5vw,4.8rem)/.92 Georgia,serif;letter-spacing:-.05em}.construction-link em{color:var(--muted);font-style:normal}.construction-link b{margin-top:2rem;padding:.75rem 1rem;border-radius:.65rem;color:#080808;background:var(--accent)}
.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 50% 0,#1d334b,#07111f 48%)}.login-card{width:min(430px,100%);padding:2rem;border:1px solid var(--line);border-radius:1.2rem;background:rgba(13,23,36,.94);box-shadow:0 35px 100px #0008}.login-mark{width:52px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;color:#07111f;background:var(--accent);font-weight:950}.eyebrow{margin:1.2rem 0 .2rem;color:var(--ok);font-size:.7rem;font-weight:900;letter-spacing:.13em}.login-card h1{margin:.2rem 0;font:500 2.4rem/1 Georgia,serif}.login-card>p:not(.eyebrow){color:var(--muted)}.login-card form{margin:1.4rem 0 1rem;display:grid;gap:.9rem}.login-card label,.editor-form label{display:grid;gap:.4rem;color:var(--muted);font-size:.78rem;font-weight:800}.login-card input,.editor-form input,.editor-form textarea{width:100%;min-height:45px;padding:.7rem .8rem;border:1px solid var(--line);border-radius:.65rem;color:var(--text);background:#07111f;outline:none}.login-card input:focus,.editor-form input:focus,.editor-form textarea:focus{border-color:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 15%,transparent)}.login-card form button,.editor-form button{min-height:46px;border:0;border-radius:.65rem;color:#07111f;background:var(--accent);font-weight:900;cursor:pointer}.login-card>a{color:var(--muted);font-size:.76rem}.login-error,.success-message{margin:1rem 0;padding:.8rem;border:1px solid color-mix(in srgb,var(--danger) 40%,transparent);border-radius:.65rem;color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent)}.success-message{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:color-mix(in srgb,var(--ok) 8%,transparent)}
.dashboard-page{background:radial-gradient(circle at 90% 0,#173653,#07111f 30rem)}.dashboard-bar{min-height:72px;padding:.65rem 1.2rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem;border-bottom:1px solid var(--line);background:rgba(7,17,31,.94);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.dashboard-brand{display:flex;align-items:center;gap:.65rem;color:var(--text);text-decoration:none}.dashboard-brand>i{width:42px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;color:#07111f;background:var(--accent);font-style:normal;font-weight:950}.dashboard-brand span{display:grid}.dashboard-brand small{color:var(--muted);font-size:.68rem}.dashboard-bar nav{display:flex;justify-content:center;gap:.2rem}.dashboard-bar nav a,.dashboard-bar>div a{padding:.5rem .65rem;border-radius:.5rem;color:var(--muted);text-decoration:none;font-size:.75rem}.dashboard-bar nav a.active{color:var(--text);background:#ffffff0b}.dashboard-bar>div{display:flex;gap:.3rem}.dashboard-main{width:min(1420px,100%);margin:auto;padding:clamp(1rem,3vw,2.4rem)}.dashboard-title{display:flex;align-items:end;justify-content:space-between;gap:1.5rem}.dashboard-title h1{margin:.15rem 0;font:500 clamp(2.8rem,5vw,5rem)/.95 Georgia,serif;letter-spacing:-.05em}.dashboard-title>div>p:last-child{margin:.4rem 0 0;color:var(--muted)}.primary-action{padding:.7rem .9rem;border-radius:.65rem;color:#07111f;background:var(--accent);font-weight:900;text-decoration:none}.metrics{margin:1.3rem 0;display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.metrics article{min-height:112px;padding:.9rem;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:.85rem;background:linear-gradient(145deg,#12263e,#0c1929)}.metrics span,.metrics em{color:var(--muted);font-size:.72rem;font-style:normal}.metrics strong{font:600 1.55rem Georgia,serif}.metrics em{display:flex;align-items:center;gap:.35rem}.metrics em i{width:.45rem;aspect-ratio:1;border-radius:50%;background:var(--ok)}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:.8rem}.dashboard-card{padding:1rem;border:1px solid var(--line);border-radius:.9rem;background:rgba(13,29,47,.9)}.card-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}.card-head .eyebrow{margin:0}.card-head h2{margin:.15rem 0;font:500 1.35rem Georgia,serif}.card-head>span,.card-head>strong{color:var(--ok);font-size:.72rem}.universe-focus>p{max-width:64ch;color:var(--muted)}.focus-actions{display:flex;flex-wrap:wrap;gap:.5rem}.focus-actions button{padding:.55rem .7rem;border:1px solid var(--line);border-radius:.55rem;color:var(--text);background:transparent}.health-card ul,.notifications-card ul{margin:1rem 0 0;padding:0;display:grid;gap:.45rem;list-style:none}.health-card li{padding:.55rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;border-radius:.55rem;background:#ffffff06;color:var(--muted);font-size:.72rem}.health-card li>i{width:.45rem;aspect-ratio:1;border-radius:50%;background:var(--ok)}.health-card li>i.warn{background:var(--accent)}.health-card li>b{color:var(--text)}.versions-card ol{margin:1rem 0 0;padding:0;display:grid;gap:.7rem;list-style:none}.versions-card li{display:flex;gap:.6rem}.versions-card li>i{width:.5rem;height:.5rem;margin-top:.35rem;border-radius:50%;background:var(--accent)}.versions-card li>span{display:grid}.versions-card li small{color:var(--muted);font-size:.68rem}.notifications-card li{padding:.65rem;display:grid;grid-template-columns:auto 1fr;gap:.7rem;border-radius:.55rem;background:#ffffff06}.notifications-card li>span{padding:.2rem .4rem;border-radius:.35rem;color:#07111f;background:var(--accent);font-size:.6rem;font-weight:900;height:max-content}.notifications-card li>div{display:grid}.notifications-card li small{color:var(--muted);font-size:.68rem}.checklist-card{display:grid;gap:.6rem}.checklist-card .card-head{margin-bottom:.35rem}.checklist-card label{padding:.5rem;display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.74rem}.checklist-card input{accent-color:var(--ok)}.system-card dl{margin:1rem 0 0;display:grid;gap:.55rem}.system-card dl>div{display:grid;grid-template-columns:110px 1fr;gap:.5rem;padding:.5rem;border-bottom:1px solid var(--line)}.system-card dt{color:var(--muted);font-size:.7rem}.system-card dd{margin:0;font-size:.75rem}.editor-main{width:min(1220px,100%);margin:auto;padding:clamp(1rem,4vw,3rem);display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:2rem}.editor-copy h1{margin:.2rem 0;font:500 clamp(2.5rem,5vw,4.5rem)/.95 Georgia,serif}.editor-copy>p:not(.eyebrow){color:var(--muted)}.editor-form{margin-top:1.5rem;display:grid;gap:1rem}.editor-form textarea{resize:vertical}.editor-form input[type=color]{padding:.25rem}.editor-preview{padding:1rem;align-self:start;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:1rem;background:#080a0e;box-shadow:0 30px 90px #0007}.editor-preview img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:.65rem}.editor-preview small{margin-top:1rem;color:var(--accent);font-weight:900}.editor-preview strong{margin:.5rem 0;font:500 2rem Georgia,serif}.editor-preview p{color:var(--muted)}
@media(max-width:900px){.construction-link{grid-template-columns:1fr}.construction-link img{min-height:0;aspect-ratio:3/2}.dashboard-bar{grid-template-columns:1fr auto}.dashboard-bar nav{grid-column:1/-1;grid-row:2;justify-content:start;overflow-x:auto}.dashboard-bar>div{grid-column:2;grid-row:1}.metrics{grid-template-columns:1fr 1fr}.dashboard-grid,.editor-main{grid-template-columns:1fr}}@media(max-width:580px){.construction-page main{padding:.5rem}.construction-link strong{font-size:2.4rem}.construction-link>span{padding:1.2rem}.dashboard-title{align-items:start;flex-direction:column}.metrics{grid-template-columns:1fr}.dashboard-bar>div a:first-child{display:none}.dashboard-main{padding:.8rem}.system-card dl>div{grid-template-columns:90px 1fr}}

/* Accueil public minimal : l'image seule reste le lien discret vers le tableau privé. */
.construction-page main{padding:0}
.construction-page .construction-link{width:min(1536px,var(--public-image-width,100%));display:block;border-radius:var(--public-radius,0);background:transparent;box-shadow:0 0 calc(var(--public-glow,0) * 1px) color-mix(in srgb,var(--accent) 55%,transparent);transition:none}
.construction-page .construction-link:hover,.construction-page .construction-link:focus-visible{transform:none;outline:none}
.construction-page .construction-link img{display:block;width:100%;height:var(--public-image-height,100vh);min-height:0;max-height:none;object-fit:var(--public-image-fit,contain);border-radius:inherit;aspect-ratio:auto}
.construction-page{background:var(--public-bg,#05080d)}
.construction-page main{padding:var(--public-padding,0)}

/* Éditeur public V0.1 : outils à gauche et page réelle à droite. */
.editor-workbench{height:100vh;overflow:hidden}.live-editor-main{height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(300px,390px) minmax(0,1fr);background:#050b13}.live-editor-tools{min-height:0;padding:1.15rem;overflow:auto;border-right:1px solid var(--line);background:#091523}.live-editor-intro h1{margin:.15rem 0;font:500 2.35rem/1 Georgia,serif}.live-editor-intro>p:last-child{margin:.5rem 0 1rem;color:var(--muted);font-size:.78rem}.ajax-editor-status{margin-bottom:.8rem;padding:.65rem .75rem;display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:.65rem;color:var(--muted);background:#06111f;font-size:.72rem}.ajax-editor-status i{width:.5rem;aspect-ratio:1;border-radius:50%;background:#63dfc4}.ajax-editor-status[data-state=preview] i{background:#ffb547}.ajax-editor-status[data-state=saving] i{background:#54a9eb;animation:editorPulse .8s infinite alternate}.ajax-editor-status[data-state=error] i{background:#ff7676}@keyframes editorPulse{to{opacity:.3}}.live-editor-form{margin-top:.7rem}.live-editor-form details{border:1px solid var(--line);border-radius:.75rem;background:#0d1b2c}.live-editor-form summary{padding:.75rem;cursor:pointer;color:#fff;font-size:.77rem;font-weight:900}.editor-setting-grid{padding:0 .75rem .8rem;display:grid;gap:.75rem}.editor-setting-grid.two{grid-template-columns:1fr 1fr}.editor-setting-grid .wide{grid-column:1/-1}.editor-setting-grid label{display:grid;grid-template-columns:1fr auto;gap:.35rem;align-items:center}.editor-setting-grid label>input[type=range],.editor-setting-grid label>select{grid-column:1/-1}.editor-setting-grid select{width:100%;min-height:42px;padding:.55rem;border:1px solid var(--line);border-radius:.55rem;color:var(--text);background:#07111f}.editor-setting-grid label>span{color:#fff;font-size:.66rem}.editor-form-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:.55rem}.editor-form-actions button:first-child{border:1px solid var(--line);color:var(--text);background:transparent}.live-editor-preview{min-width:0;min-height:0;padding:1rem;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.55rem}.live-editor-preview>header{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.7rem}.live-editor-preview>header span{display:flex;align-items:center;gap:.4rem}.live-editor-preview>header i{width:.45rem;aspect-ratio:1;border-radius:50%;background:var(--ok)}.live-editor-preview>header a{color:#8fb2ff;text-decoration:none}.preview-browser-bar{padding:.55rem .7rem;display:flex;align-items:center;gap:.35rem;border:1px solid var(--line);border-radius:.75rem .75rem 0 0;background:#111d2b}.preview-browser-bar>i{width:.48rem;aspect-ratio:1;border-radius:50%;background:#ff7676}.preview-browser-bar>i:nth-child(2){background:#ffcf66}.preview-browser-bar>i:nth-child(3){background:#63dfc4}.preview-browser-bar span{margin-left:.5rem;color:var(--muted);font-size:.68rem}.live-editor-preview iframe{width:100%;height:100%;border:1px solid var(--line);border-radius:0 0 .75rem .75rem;background:#05080d}
@media(max-width:850px){.editor-workbench{height:auto;overflow:auto}.live-editor-main{height:auto;grid-template-columns:1fr}.live-editor-tools{overflow:visible;border-right:0}.live-editor-preview{min-height:70vh}.editor-setting-grid.two{grid-template-columns:1fr}}

.editor-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin-bottom:.65rem}.editor-mode-switch button{padding:.65rem;display:flex;align-items:center;gap:.5rem;text-align:left;border:1px solid var(--line);border-radius:.65rem;color:var(--muted);background:#07111f}.editor-mode-switch button.active{border-color:#4d79ed;color:#fff;background:#10264a}.editor-mode-switch button>i{width:.55rem;aspect-ratio:1;border-radius:50%;background:#28df83}.editor-mode-switch button[data-mode=draft]>i{background:#ffb547}.editor-mode-switch span{display:grid}.editor-mode-switch small{font-size:.58rem;color:var(--muted)}

/* Éditeur CV */
.cv-editor-main{width:min(1420px,100%);margin:auto;padding:clamp();
/* Éditeur CV */
.cv-editor-main{width:min(1420px,100%);margin:auto;padding:clamp(1.);

/* Éditeur CV */
.cv-editor-main{width:min(1420px,100%);margin:auto;padding:clamp(1.25rem,3vw,2.8rem)}
.cv-editor-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.2rem}.cv-editor-title h1{margin:.15rem 0;font:500 clamp(2.7rem,5vw,4.8rem)/.95 Georgia,serif;letter-spacing:-.05em}.cv-editor-title>div>p:last-child{margin:.65rem 0 0;color:var(--muted)}
.cv-editor-actions{display:flex;flex-wrap:wrap;gap:.55rem}.cv-editor-actions a,.cv-editor-actions button{min-height:44px;padding:.7rem .9rem;border:1px solid var(--line);border-radius:.65rem;color:var(--text);background:#0d1b2c;text-decoration:none}.cv-editor-actions button:disabled{opacity:.5}
.cv-editor-status{margin-bottom:1rem;padding:.85rem 1rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;border:1px solid var(--line);border-radius:.8rem;background:#0b1726}.cv-editor-status>i{width:.62rem;aspect-ratio:1;border-radius:50%;background:var(--ok);box-shadow:0 0 18px color-mix(in srgb,var(--ok) 65%,transparent)}.cv-editor-status>div{display:grid}.cv-editor-status span{color:var(--muted);font-size:.72rem}.cv-editor-status>b{color:var(--ok);font-size:.75rem}
.cv-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.cv-section-card{min-height:205px;padding:1rem;position:relative;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:1rem;color:var(--text);background:linear-gradient(145deg,#12263e,#0b1726);text-decoration:none;transition:transform .2s,border-color .2s,background .2s}.cv-section-card:hover,.cv-section-card:focus-visible{transform:translateY(-4px);border-color:#4d79ed;background:linear-gradient(145deg,#17345a,#0d1d31);outline:none}.cv-section-card>i{width:48px;aspect-ratio:1;margin:.8rem 0;display:grid;place-items:center;border-radius:.8rem;background:#ffffff0a;font-size:1.65rem;font-style:normal}.cv-section-card>strong{font:600 1.08rem Georgia,serif}.cv-section-card>small{margin:.45rem 0 1rem;color:var(--muted);line-height:1.45}.cv-section-card>em{margin-top:auto;color:#8fb2ff;font-size:.7rem;font-style:normal;font-weight:800}.cv-section-number{position:absolute;top:1rem;right:1rem;color:#55718f;font-size:.68rem;font-weight:900;letter-spacing:.12em}
.cv-editor-footer{margin-top:1.4rem;padding-top:1rem;display:flex;justify-content:space-between;border-top:1px solid var(--line);color:var(--muted);font-size:.7rem;letter-spacing:.08em}.cv-editor-footer a,.system-card .card-head>a{color:#8fb2ff;text-decoration:none}
@media(max-width:1050px){.cv-section-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.cv-editor-title{align-items:flex-start;flex-direction:column}.cv-section-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.cv-section-grid{grid-template-columns:1fr}.cv-editor-status{grid-template-columns:auto 1fr}.cv-editor-status>b{grid-column:2}.cv-editor-footer{gap:.7rem;flex-direction:column}}

}}
/* Éditeur CV */
.cv-editor-main{width:min(1420px,100%);margin:auto;padding:clamp(1.25rem,3vw,2.8rem)}
.cv-editor-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.2rem}.cv-editor-title h1{margin:.15rem 0;font:500 clamp(2.7rem,5vw,4.8rem)/.95 Georgia,serif;letter-spacing:-.05em}.cv-editor-title>div>p:last-child{margin:.65rem 0 0;color:var(--muted)}
.cv-editor-actions{display:flex;flex-wrap:wrap;gap:.55rem}.cv-editor-actions a,.cv-editor-actions button{min-height:44px;padding:.7rem .9rem;border:1px solid var(--line);border-radius:.65rem;color:var(--text);background:#0d1b2c;text-decoration:none}.cv-editor-actions button:disabled{opacity:.5}
.cv-editor-status{margin-bottom:1rem;padding:.85rem 1rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;border:1px solid var(--line);border-radius:.8rem;background:#0b1726}.cv-editor-status>i{width:.62rem;aspect-ratio:1;border-radius:50%;background:var(--ok);box-shadow:0 0 18px color-mix(in srgb,var(--ok) 65%,transparent)}.cv-editor-status>div{display:grid}.cv-editor-status span{color:var(--muted);font-size:.72rem}.cv-editor-status>b{color:var(--ok);font-size:.75rem}
.cv-section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}.cv-section-card{min-height:205px;padding:1rem;position:relative;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:1rem;color:var(--text);background:linear-gradient(145deg,#12263e,#0b1726);text-decoration:none;transition:transform .2s,border-color .2s,background .2s}.cv-section-card:hover,.cv-section-card:focus-visible{transform:translateY(-4px);border-color:#4d79ed;background:linear-gradient(145deg,#17345a,#0d1d31);outline:none}.cv-section-card>i{width:48px;aspect-ratio:1;margin:.8rem 0;display:grid;place-items:center;border-radius:.8rem;background:#ffffff0a;font-size:1.65rem;font-style:normal}.cv-section-card>strong{font:600 1.08rem Georgia,serif}.cv-section-card>small{margin:.45rem 0 1rem;color:var(--muted);line-height:1.45}.cv-section-card>em{margin-top:auto;color:#8fb2ff;font-size:.7rem;font-style:normal;font-weight:800}.cv-section-number{position:absolute;top:1rem;right:1rem;color:#55718f;font-size:.68rem;font-weight:900;letter-spacing:.12em}
.cv-editor-footer{margin-top:1.4rem;padding-top:1rem;display:flex;justify-content:space-between;border-top:1px solid var(--line);color:var(--muted);font-size:.7rem;letter-spacing:.08em}.cv-editor-footer a,.system-card .card-head>a{color:#8fb2ff;text-decoration:none}
@media(max-width:1050px){.cv-section-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.cv-editor-title{align-items:flex-start;flex-direction:column}.cv-section-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.cv-section-grid{grid-template-columns:1fr}.cv-editor-status{grid-template-columns:auto 1fr}.cv-editor-status>b{grid-column:2}.cv-editor-footer{gap:.7rem;flex-direction:column}}
