:root{color-scheme:dark;--bg:#202428;--panel:#252a2e;--line:#ffffff12;--text:#f0f2ef;--muted:#a6afab;--green:#b2d889;--green-soft:#b2d88913;--red:#f0a698;--radius:18px;font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:var(--bg);font-size:15px;line-height:1.55}body:has(dialog[open]){overflow:hidden}.ambient{position:fixed;inset:0;z-index:-1;background:linear-gradient(#20242830,#202428ee),url('/assets/lab-pattern.webp') center top/1050px auto;opacity:.48;pointer-events:none}.topbar{display:flex;align-items:center;justify-content:space-between;max-width:1420px;margin:auto;padding:26px 42px;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea,summary{outline-offset:5px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--green)}.brand{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;letter-spacing:1.8px}.brand>span:last-child{margin-left:10px}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:2px;margin-top:2px}.element{display:inline-flex;align-items:center;justify-content:center;position:relative;vertical-align:middle;font-size:.85em;font-weight:700;width:1.15em;height:1.12em;border:1px solid #cde5a366;background:linear-gradient(135deg,#48563b99,#35472f88);box-shadow:inset 0 0 20px #a1d27b0d;letter-spacing:-.05em;border-radius:4px;padding:4px}.element sup{position:absolute;top:4%;left:10%;font-size:.14em;letter-spacing:0;line-height:1}.element.small{width:36px;height:38px;font-size:24px}.element.small sup{font-size:8px;top:2px;left:4px}.account{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.account button{background:none;border:none;color:var(--muted);cursor:pointer}.status-dot{width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 14px #b2d88966}nav{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;padding:20px 24px;max-width:1200px;margin:auto}nav:empty{padding:10px}nav button{display:flex;align-items:center;gap:7px;cursor:pointer;border:1px solid transparent;background:transparent;color:var(--muted);padding:10px 15px;border-radius:9px;font-size:13px;transition:.2s}nav button:hover{background:#ffffff06;color:var(--text)}nav button.active{border-color:#b2d88930;color:var(--green);background:var(--green-soft)}.icon{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.65;vertical-align:middle}main{max-width:1170px;margin:auto;padding:0 32px 70px}.hero{text-align:center;padding:38px 0 46px}.eyebrow{font-size:10px;letter-spacing:2.6px;color:var(--green);font-weight:600;margin:0 0 17px}.hero h1{font-size:clamp(50px,7vw,79px);font-weight:720;line-height:1.18;letter-spacing:-4px;margin:0 0 14px}.hero h1 .element{margin-right:0;transform:translateY(-3px)}.period{color:var(--green)}.hero>p:last-child{margin:0;color:var(--muted);font-size:14px}.panel{background:linear-gradient(135deg,#292e32ef,#24292ded);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 10px 45px #0000000c}.panel h2,h2{font-size:23px;font-weight:600;letter-spacing:-.6px;margin:0 0 8px}h3{font-size:16px;font-weight:600;margin:0 0 8px}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin:7px 0 0}.intro{margin:0 0 25px;color:var(--muted);font-size:14px}.narrow{max-width:660px;margin:auto}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stat{padding:22px}.stat .value{display:block;font-size:32px;font-weight:600;letter-spacing:-1.4px}.stat .label{font-size:11px;color:var(--muted)}.stat .icon{color:var(--green);margin-bottom:7px;width:20px;height:20px}.featured{padding:34px;position:relative;overflow:hidden}.featured:after{content:'He';font-size:150px;color:#b2d88907;position:absolute;right:20px;bottom:-45px;font-weight:800;pointer-events:none}.featured .eyebrow{margin-bottom:15px}.featured p{max-width:540px}.module-list{display:grid;gap:0}.module-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.module-row:last-child{border:0}.module-row h3{margin:0;font-size:14px}.module-row p{margin:3px 0 0;font-size:12px;color:var(--muted)}.pill{display:inline-block;border:1px solid #b2d88930;padding:4px 10px;border-radius:999px;font-size:10px;white-space:nowrap;color:var(--green);background:var(--green-soft)}.pill.off{color:var(--muted);border-color:var(--line);background:#ffffff05}.button{border:1px solid #cee4a71a;border-radius:9px;background:var(--green);color:#243020;font-size:13px;font-weight:650;padding:11px 18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.18s}.button:hover{filter:brightness(1.07);transform:translateY(-1px)}.button:disabled{opacity:.5;cursor:wait;transform:none}.button.secondary{color:var(--text);background:#ffffff06;border-color:#ffffff18}.button.danger{background:#b86354;color:#fff;border-color:#d88171}.button.sm{padding:7px 12px;font-size:12px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:23px}.actions .hint{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px;margin:0 0 19px}.form-grid .field{margin:0}.field.full{grid-column:1/-1}.field>label,.field>span{font-size:12px;font-weight:600;color:#c8ceca}input,select,textarea{width:100%;background:#1e2326;border:1px solid #ffffff15;border-radius:8px;color:var(--text);padding:11px 12px;min-height:44px;transition:.15s}input:focus,textarea:focus,select:focus{border-color:#b2d88977;outline:1px solid #b2d88933}textarea{resize:vertical;min-height:110px}select[multiple]{min-height:120px}input[type=checkbox]{width:16px;min-height:16px;height:16px;accent-color:var(--green)}.check{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer;margin:10px 0}.switchline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:24px}.switchline p{margin:0;color:var(--muted);font-size:12px}.switchline input{width:20px;height:20px;min-height:20px;accent-color:var(--green)}.stack{display:grid;gap:20px}.notice{border:1px solid #b2d88922;background:var(--green-soft);border-radius:10px;padding:14px 16px;font-size:12px;color:#cfdbbf;line-height:1.7;margin:18px 0}.notice.warning{border-color:#e2b97927;color:#dfc59f;background:#e2b97908}.line{height:1px;background:var(--line);margin:25px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:500;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:13px 10px;border-bottom:1px solid var(--line)}td input,td select{min-width:100px;font-size:12px;padding:8px}td:first-child{padding-left:0}th:first-child{padding-left:0}table tr:last-child td{border:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.toolbar input{max-width:250px;min-height:35px;font-size:12px}.empty{padding:34px;text-align:center;color:var(--muted);font-size:13px}.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}.category-tabs button{cursor:pointer;background:#ffffff04;border:1px solid var(--line);color:var(--muted);padding:9px 12px;border-radius:8px;font-size:12px}.category-tabs button.active{border-color:#b2d88944;color:var(--green)}details.role{border-bottom:1px solid var(--line)}details.role:last-child{border:0}details.role summary{padding:16px 0;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:14px;list-style:none}details.role summary::-webkit-details-marker{display:none}details.role summary span{font-size:11px;color:var(--muted)}details.role[open] summary span{color:var(--green)}.permissions{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;padding:0 0 22px;font-size:12px;color:var(--muted)}.permissions>span:before{content:'✓';color:var(--green);margin-right:8px}.role-title{display:flex;gap:9px;align-items:center}.role-dot{height:5px;width:5px;background:var(--green);border-radius:50%}.staff-row{display:grid;grid-template-columns:minmax(180px,1fr) 3fr 30px;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding:16px 0}.staff-caps{display:flex;gap:12px;flex-wrap:wrap}.staff-caps .check{font-size:11px;margin:4px 0}.icon-button{background:none;border:0;color:var(--muted);cursor:pointer;padding:7px}.artist-row{display:grid;grid-template-columns:1fr 1.3fr 1.3fr 26px;gap:10px;margin:10px 0}.artist-row input{font-size:12px;min-height:38px;padding:8px}.log{display:grid;grid-template-columns:115px 110px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.log time{color:var(--muted);font-size:11px}.log strong{font-weight:500;color:var(--green)}.log p{margin:0;overflow-wrap:anywhere}.log small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.event-row{padding:19px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.event-row h3{font-size:14px;margin:0}.event-row p{font-size:12px;color:var(--muted);margin:3px 0}.step{display:flex;align-items:flex-start;gap:15px;margin:20px 0}.step>b{flex:none;width:27px;height:27px;border:1px solid #b2d88944;color:var(--green);border-radius:8px;text-align:center;font-size:12px;padding-top:3px}.step p{margin:0}.step small{display:block;color:var(--muted);margin-top:3px}.login{text-align:center;padding:40px}.login .avatar{width:80px;height:80px;border-radius:18px;margin-bottom:20px;object-fit:cover}.login p{font-size:14px;color:var(--muted);max-width:430px;margin:10px auto 27px}.loading{text-align:center;color:var(--muted);padding:60px}.error-screen{border:1px solid #f0a69822;padding:25px;border-radius:15px;color:var(--red)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);max-width:min(90vw,650px);background:#d0e9b0;color:#273520;border-radius:12px;padding:13px 21px;font-size:13px;opacity:0;pointer-events:none;transition:.2s;z-index:100;box-shadow:0 12px 40px #0004}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#f0b4a9;color:#401c16}footer{border-top:1px solid var(--line);max-width:1350px;margin:0 auto;display:flex;justify-content:space-between;gap:20px;padding:24px 32px;color:#89918b;font-size:10px;letter-spacing:.5px}footer b{color:var(--green);margin:0 8px}footer a:hover{color:var(--green)}dialog{border:1px solid #b2d88933;background:#252b2e;color:var(--text);border-radius:18px;padding:30px;width:min(92vw,480px)}dialog::backdrop{background:#101418aa;backdrop-filter:blur(5px)}dialog p{font-size:14px;color:var(--muted)}code{background:#0002;padding:3px 6px;border-radius:4px;font-size:12px;overflow-wrap:anywhere}.fade-in{animation:appear .25s ease-out}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(min-width:1400px){.hero{padding-top:52px}}@media(max-width:900px){.grid.stats{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:1fr}.staff-row{grid-template-columns:1fr 30px}.staff-caps{grid-column:1/-1;grid-row:2}.artist-row{grid-template-columns:1fr 26px}.artist-row input:nth-child(2),.artist-row input:nth-child(3){grid-column:1/-1}.artist-row button{grid-column:2;grid-row:1}}@media(max-width:650px){.topbar{padding:20px}.brand{font-size:10px}.brand small{font-size:6px}.element.small{width:27px;height:29px;font-size:19px}.account{font-size:10px}.account .status-dot{display:none}nav{padding:15px 10px;gap:2px}nav button{padding:8px 10px;font-size:11px}nav .icon{width:14px;height:14px}main{padding:0 17px 40px}.hero{padding:27px 0 33px}.hero h1{letter-spacing:-2px}.eyebrow{font-size:8px;letter-spacing:2px}.grid,.form-grid{grid-template-columns:1fr}.form-grid .field.full{grid-column:1}.panel{padding:21px;border-radius:14px}.panel h2{font-size:21px}.grid.stats{gap:9px}.stat{padding:18px}.stat .value{font-size:27px}.log{grid-template-columns:1fr 1fr;gap:5px}.log p{grid-column:1/-1}.permissions{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.toolbar input{max-width:none}footer{padding:20px;flex-wrap:wrap}footer span:last-child{display:none}.hero>p:last-child{font-size:12px}.notice{font-size:11px}.login{padding:30px 23px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Module workspace */
.module-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}.module-menu{position:sticky;top:20px;display:grid;gap:6px;padding:10px;background:#242a2d;border:1px solid #384039;border-radius:16px}.module-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:14px 12px;border:0;background:transparent;color:#d3d7d2;border-radius:10px;cursor:pointer;font:inherit;font-size:12px}.module-menu button:hover,.module-menu button.active{background:#354333;color:#d5ecb3}.module-menu small{color:#a4b194;font-size:10px;white-space:nowrap}.module-layout .stack{min-width:0}.option-set{border:1px solid #3b443e;border-radius:12px;padding:16px;margin:0}.option-set legend{color:#c3cbc1;padding:0 7px;font-size:12px}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:260px;overflow:auto}.option-grid .check{align-items:flex-start;overflow-wrap:anywhere}.option-grid input{flex:none;min-width:16px;width:16px;margin-top:3px}.module-toggle{margin:0;grid-column:1/-1}.module-toggle input{width:20px;height:20px;flex:none}.module-entry{margin:16px 0;padding:22px;border:1px solid #3c483c;border-radius:14px;background:#202728}.module-entry .toolbar{margin-bottom:18px}.module-layout h3{margin-bottom:12px}input[type=color]{width:100%;height:44px;padding:5px}input[type=file]{padding:12px;max-width:100%}.voice-edit{padding:15px 0;border-bottom:1px solid #394238}.voice-edit .check{margin:16px 0}.module-row>div{min-width:0}.module-row .hint{display:block;overflow-wrap:anywhere}.module-layout .form-grid{margin:20px 0}.module-menu~.stack .panel{min-width:0}nav{flex-wrap:wrap} .option-grid .check input{accent-color:#b5d58b}.module-entry label{overflow-wrap:anywhere}
@media(max-width:960px){.module-layout{grid-template-columns:1fr}.module-menu{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.module-menu button{padding:10px;font-size:11px}}@media(max-width:600px){.option-grid{grid-template-columns:1fr}.module-entry{padding:16px}.module-menu{gap:3px;padding:7px}.module-menu button{align-items:flex-start;flex-direction:column;gap:3px}.module-row .actions{flex-wrap:wrap}}
/* V3 : confort, configuration et laboratoire. */
body{background:var(--bg);font-size:var(--body-size,15px)}main{max-width:var(--content-width,1170px)}.panel{background:var(--panel);padding:calc(28px * var(--space-scale,1));box-shadow:0 0 calc(35px * var(--glow,0)) var(--green-soft)}.ambient{opacity:var(--pattern-opacity,.48)}.panel-tools{display:flex;gap:10px;align-items:center;max-width:1170px;margin:8px auto 0;padding:0 32px}.global-search{position:relative;flex:1}.global-search input{font-size:13px}#search-results:not(:empty){position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;box-shadow:0 12px 30px #0008}#search-results button{display:block;width:100%;text-align:left;background:none;color:var(--text);padding:10px;border:0;border-radius:6px;cursor:pointer}#search-results button:hover{background:var(--green-soft)}#search-results p{padding:10px}.selector-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}.selector-tools input{flex:1;min-width:120px;font-size:12px}.select-search{min-height:32px;padding:6px 10px;font-size:11px;opacity:.85}.favorite-button{float:right;font-size:23px;border:0;background:none;color:var(--green);cursor:pointer}.data-view{font:12px/1.6 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#0002;border:1px solid var(--line);padding:18px;border-radius:10px;max-height:480px;overflow:auto}.history-entry{margin:18px 0;border-bottom:1px solid var(--line);padding:14px}.history-entry summary{cursor:pointer;color:var(--green)}.history-entry select{max-width:400px}.message-preview{border-left:3px solid var(--green);padding:16px 20px;background:#0002;margin:14px 0}.message-preview p{white-space:pre-wrap}.custom-logo{width:45px;height:45px;object-fit:contain;margin-right:10px}#dirty-bar{position:fixed;z-index:35;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:13px 18px;border-radius:12px;background:#273328;border:1px solid var(--green);box-shadow:0 10px 35px #0008;max-width:95vw;font-size:12px}#confirm-body{white-space:pre-wrap;overflow-wrap:anywhere;max-height:55vh;overflow:auto}.advanced-field{position:relative}body[data-mode=simple] .advanced-field{display:none}body[data-motion=off] *,body[data-motion=off] *::before,body[data-motion=off] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}[hidden]{display:none!important}.module-entry .toolbar{flex-wrap:wrap}.module-menu button{font-size:12px}.module-menu{max-height:calc(100vh - 40px);overflow:auto}.module-menu button.active{background:var(--green-soft);color:var(--green)}[aria-invalid=true]{border-color:var(--red)}.module-layout .form-grid>label{min-width:0}
@media(max-width:700px){.panel-tools{flex-wrap:wrap;padding:0 20px}.global-search{flex-basis:100%}.module-menu{max-height:360px}#dirty-bar{bottom:8px;width:calc(100% - 18px);flex-wrap:wrap;gap:7px}#dirty-bar span{flex-basis:100%}.data-view{font-size:11px;padding:12px}.brand small{letter-spacing:1px}.hero{padding:30px 0}.panel{padding:calc(20px * var(--space-scale,1))}}
