/* O'Phys Laboratoire v15.5.0 — scoped styles, public + private */
.lab{max-width:1260px;margin:0 auto;padding:clamp(28px,4vw,64px) clamp(16px,3vw,36px) 95px;color:#102838;font-family:'DM Sans',Manrope,Arial,sans-serif}
.lab *{box-sizing:border-box}
.lab-header{display:flex;gap:28px;align-items:flex-end;justify-content:space-between;margin-bottom:34px}
.lab-header h1{font-family:'Cormorant Garamond',Georgia,serif;color:#0B1F3A;font-size:clamp(2.6rem,5.4vw,4.5rem);line-height:1;letter-spacing:-.02em;margin:10px 0 12px}
.lab-header p:not(.lab-eyebrow){max-width:590px;font-size:1rem;color:#43596b;margin:0}
.lab-eyebrow{color:#986f36;font-size:11px;letter-spacing:.19em;font-weight:800;margin:0}
.lab-header-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.lab-header-links a{font-size:.85rem;text-decoration:none;color:#173B63;background:#f9f6ee;border:1px solid #d6d5c9;border-radius:4px;padding:11px 14px;white-space:nowrap}
.lab-list-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:26px 0 16px}
.lab-list-heading h2,.lab-prof-form h2,.lab-assigned h2{font-size:clamp(1.7rem,3vw,2.3rem);font-family:'Cormorant Garamond',Georgia,serif;margin:0;color:#0B1F3A}
.lab-list-heading p{font-size:13px;color:#627486;margin:0}
.lab-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.lab-experiment{min-width:0;display:flex;flex-direction:column;text-align:left;overflow:hidden;border:1px solid #d9d1c1!important;border-radius:9px!important;background:#fdfbf7!important;padding:0!important;box-shadow:0 18px 44px rgba(12,42,58,.08)!important;cursor:pointer;transition:transform .33s ease,box-shadow .33s ease}
.lab-experiment:hover{transform:translateY(-5px);box-shadow:0 25px 48px rgba(12,42,58,.14)!important}
.lab-experiment:focus-visible,.lab button:focus-visible,.lab a:focus-visible,.lab-home-teaser a:focus-visible{outline:3px solid #4cabae!important;outline-offset:3px}
.lab-experiment-art{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;height:clamp(155px,17vw,242px);background:linear-gradient(125deg,#102c40db,#0b2036e8),url('/assets/iznik-cobalt-wall.webp') center/310px}
.lab-experiment-art::before{content:'';position:absolute;width:190px;height:190px;border:1px solid #d6bc8855;border-radius:50%;box-shadow:0 0 0 20px #e9ceb510,0 0 0 50px #e9ceb50b;transform:scale(.72);transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.lab-experiment:hover .lab-experiment-art::before{transform:scale(.92)}
.lab-experiment-art>span{position:relative;color:#e2c98d;font-family:Georgia,serif;font-size:clamp(78px,10vw,150px);font-weight:400;line-height:1;text-shadow:0 8px 36px #010813a0}
.lab-art-projectile>span{font-family:Georgia,serif;transform:rotate(-20deg)}
.lab-art-ondes>span{font-size:clamp(80px,10vw,140px)}
.lab-card-info{padding:23px 23px 22px;display:flex;flex:1;gap:11px;flex-direction:column}
.lab-kind{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#876b43}
.lab-card-info strong{font:600 clamp(1.4rem,2.3vw,2rem) 'Cormorant Garamond',Georgia,serif;color:#0B1F3A;line-height:1.1}
.lab-card-info small{font-size:13px;color:#4c5964;line-height:1.55;min-height:40px}
.lab-open{margin-top:auto;padding-top:13px;border-top:1px solid #e0d9ca;color:#4c5664;font-weight:700;font-size:12px;display:flex;justify-content:space-between}
.lab-footer-note{font-size:12px;color:#67727d;margin-top:22px}
.lab-active-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin:0 0 23px;flex-wrap:wrap}
.lab-active-head h2{font:600 clamp(2rem,4vw,3.15rem) 'Cormorant Garamond',Georgia,serif;color:#0B1F3A;margin:5px 0 0}
.lab-go-back{background:transparent!important;border:1px solid #b7b9b8!important;color:#173B63!important;border-radius:5px;padding:11px 16px;cursor:pointer}
.lab-playground{display:grid;grid-template-columns:minmax(0,1.95fr) minmax(260px,1fr);gap:20px;align-items:stretch}
.lab-canvas-wrap{position:relative;min-height:430px;background:#081d2d;border-radius:8px;overflow:hidden;box-shadow:0 24px 55px #0e2d4233;border:1px solid #a7a08b80}
.lab-canvas-wrap canvas{width:100%;height:100%;min-height:430px;display:block}
.lab-canvas-actions{position:absolute;left:16px;bottom:16px;display:flex;gap:9px;flex-wrap:wrap}
.lab-canvas-actions button{background:#102839ec!important;border:1px solid #b9ab8d!important;color:#fdf4e4!important;padding:10px 16px;border-radius:3px;min-height:40px;font-size:13px;cursor:pointer}
.lab-controls{padding:25px 23px 23px;background:#f9f7f0;border:1px solid #d8d3c8;border-radius:8px}
.lab-controls h3{font:600 2rem 'Cormorant Garamond',Georgia,serif;margin:0 0 18px;color:#0B1F3A}
.lab-slider{display:block;margin:0 0 23px;color:#233a4b}
.lab-slider>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px;font-weight:600;margin-bottom:9px}
.lab-slider output{color:#8d642f;font-variant-numeric:tabular-nums;white-space:nowrap}
.lab-slider input{display:block;width:100%;accent-color:#3E9CA5;height:29px;cursor:pointer}
.lab-parameter-meta{font-size:12px;color:#697482;border-top:1px solid #ddd7c6;padding-top:15px;line-height:1.5}
.lab-prof-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1fr);gap:24px}
.lab-prof-form,.lab-assigned{padding:23px;border:1px solid #d9d2c5;border-radius:8px;background:#fbf9f4}
.lab-prof-form{display:flex;flex-direction:column;gap:14px}
.lab-prof-form h2{margin:0 0 10px}
.lab-prof-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:#183448}
.lab-prof-form select,.lab-prof-form input:not([type=checkbox]),.lab-prof-form textarea{width:100%;font:inherit;border:1px solid #b7bbb8;border-radius:4px;padding:12px;background:white;color:#183448;min-height:42px}
.lab-prof-form textarea{font:12px/1.6 ui-monospace,Consolas,monospace;resize:vertical}
.lab-prof-form label.lab-assign-check{display:flex;flex-direction:row;align-items:center}
.lab-prof-form .lab-assign-check input{width:auto}
.lab-button-row{display:flex;flex-wrap:wrap;gap:8px}
.lab-button{display:inline-flex!important;align-items:center;justify-content:center;text-decoration:none!important;min-height:44px;padding:12px 17px!important;border:1px solid #d8c09a!important;background:#faf4e8!important;color:#0B1F3A!important;border-radius:3px!important;font-size:13px;font-weight:700;cursor:pointer}
.lab-button.primary{background:#e4c58a!important;border-color:#e4c58a!important}
.lab-hint{font-size:12px;color:#566e7d;margin:0}
.lab-error{font-size:13px;color:#902938;min-height:16px;margin:0}
.lab-saved-item{border-bottom:1px solid #e0dbd0;padding:16px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.lab-saved-item>div{flex:1;min-width:160px;display:flex;flex-direction:column;gap:5px}
.lab-saved-item small{font-size:12px;color:#576b79}
.lab-saved-item button{font-size:12px;min-height:38px;padding:8px 12px;background:#fff;border:1px solid #b4b5ac;border-radius:4px;color:#1d3b4c;cursor:pointer}
.lab-notice{padding:25px;background:#f8f3e9;border:1px solid #d0b47f;color:#143448;line-height:1.6;border-radius:5px;max-width:740px}
.lab-inline-preview{grid-column:1/-1;margin-top:16px}
.lab-home-teaser{position:relative;display:grid;grid-template-columns:1fr 1.04fr;gap:14px;align-items:center;overflow:hidden;padding:clamp(25px,5vw,60px);margin:32px 0 55px;min-height:330px;background:#0B1F3A;color:#F8F3E9;border-radius:6px;border:1px solid #af955f55}
.lab-home-copy{z-index:1}
.lab-home-copy h2{font:600 clamp(2.3rem,5vw,4.1rem) 'Cormorant Garamond',Georgia,serif;margin:5px 0 12px;color:#f6eee2}
.lab-home-copy>p:not(.lab-eyebrow){color:#d6e3e3;line-height:1.65;font-size:15px;max-width:390px;margin-bottom:24px}
.lab-home-display{height:280px;min-width:0}
.lab-home-display canvas{display:block;width:100%;height:100%;border-radius:4px}
@media(max-width:880px){.lab-playground{grid-template-columns:1fr}.lab-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-prof-layout{grid-template-columns:1fr}.lab-header{align-items:flex-start;flex-direction:column}.lab-header-links{justify-content:flex-start}}
@media(max-width:620px){.lab{padding:27px 15px 90px}.lab-card-grid{grid-template-columns:1fr;gap:14px}.lab-experiment{flex-direction:row;min-height:157px}.lab-experiment-art{height:auto;width:36%;min-width:112px}.lab-experiment-art>span{font-size:75px}.lab-card-info{padding:16px;gap:6px}.lab-card-info small{min-height:0;font-size:12px}.lab-card-info strong{font-size:1.55rem}.lab-open{padding-top:7px}.lab-canvas-wrap,.lab-canvas-wrap canvas{min-height:360px}.lab-controls{padding:20px 17px}.lab-home-teaser{grid-template-columns:1fr;padding:29px 23px;gap:4px}.lab-home-display{height:210px}.lab-header h1{font-size:3rem}.lab-list-heading{flex-direction:column;gap:4px}.lab-active-head{align-items:flex-start;flex-direction:column-reverse}}
@media(prefers-reduced-motion: reduce){.lab-experiment{transition:none}.lab-experiment:hover{transform:none}.lab-experiment-art::before{transition:none}}

/* V15.5.1 — Gestion du laboratoire public. */
.lab-admin-summary{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 22px}
.lab-admin-summary span{background:#f8f3e9;color:#173B63;border:1px solid #d9d0c0;border-radius:5px;padding:12px 18px;font-size:13px}
.lab-admin-summary strong{font-size:18px;color:#0B1F3A;margin-right:5px}
.lab-admin-search{display:flex;flex-direction:column;font-size:13px;gap:6px;margin:17px 0;color:#234158}
.lab-admin-search input{border:1px solid #b5b8b2;border-radius:4px;padding:11px;font:inherit;background:#fff;color:#173B63}
.lab-admin-item{padding:16px 0;border-bottom:1px solid #e2d9c9;display:grid;grid-template-columns:1fr;gap:10px}
.lab-admin-item[draggable=true]{cursor:grab}
.lab-admin-info{display:flex;flex-direction:column;gap:5px;color:#0B1F3A}
.lab-admin-info strong{font-size:16px}
.lab-admin-info small{color:#5f6b75;line-height:1.45}
.lab-admin-actions{display:flex;flex-wrap:wrap;gap:6px}
.lab-admin-actions button{background:#fff!important;color:#193b51!important;border:1px solid #bab7ab!important;min-height:38px;padding:8px 10px;border-radius:4px;cursor:pointer;font-size:12px}
.lab-admin-actions button:hover{background:#f1e9d9!important}
.lab-admin-actions button:disabled{opacity:.45;cursor:not-allowed}
#pub-preview-host:not(:empty){margin-top:18px;min-width:0}
#pub-preview-host .lab-playground{grid-template-columns:1fr}
#pub-preview-host .lab-canvas-wrap,#pub-preview-host .lab-canvas-wrap canvas{min-height:300px}
.lab-admin-item:focus-within{outline:1px solid #57acaf;outline-offset:4px}


/* O'Phys v15.5.2 — Laboratoire clair scientifique / Contemporaine Çini */
.lab{
  background:#F8F3E9!important;
  color:#0B1F3A!important;
  border:1px solid #D9D4C8;
  border-radius:16px;
  margin:clamp(12px,2vw,30px) auto 54px;
  box-shadow:0 12px 45px rgba(4,22,40,.12);
  isolation:isolate;
}
.lab p,.lab small,.lab label,.lab span,.lab strong,.lab h1,.lab h2,.lab h3{opacity:1}
.lab .lab-header h1,.lab .lab-active-head h2,.lab .lab-list-heading h2,.lab .lab-prof-form h2,.lab .lab-assigned h2,.lab .lab-controls h3{color:#0B1F3A!important;text-shadow:none!important}
.lab .lab-header p:not(.lab-eyebrow),.lab .lab-list-heading p,.lab .lab-footer-note{color:#40556A!important;opacity:1!important}
.lab .lab-eyebrow,.lab .lab-kind{color:#876331!important;letter-spacing:.11em}
.lab .lab-header-links a,.lab .lab-go-back{background:#FFFEFB!important;color:#173B63!important;border:1px solid #C8D4D2!important;border-radius:8px!important;text-shadow:none!important}
.lab .lab-header-links a:hover,.lab .lab-go-back:hover{border-color:#3E9CA5!important;background:#F1F8F5!important}
.lab .lab-list-heading{margin-top:34px}
.lab .lab-card-grid{gap:20px}
.lab .lab-experiment{border:1px solid #D7DBD5!important;border-radius:12px!important;background:#FFFDF8!important;box-shadow:0 7px 19px rgba(12,41,57,.07)!important;min-width:0}
.lab .lab-experiment:hover{transform:translateY(-3px);box-shadow:0 15px 29px rgba(12,41,57,.1)!important}
.lab .lab-experiment-art{background:#F2F6F2!important;border-bottom:1px solid #DEE6DF}
.lab .lab-experiment-art::before{display:none!important}
.lab .lab-experiment-art svg{width:min(78%,230px);height:80%;max-height:180px;filter:none;transition:transform .3s ease}
.lab .lab-experiment:hover .lab-experiment-art svg{transform:scale(1.035)}
.lab .lab-card-info{gap:10px}
.lab .lab-card-info strong{color:#0B1F3A!important;font-weight:600!important;text-shadow:none!important}
.lab .lab-card-info small{color:#3E5361!important;line-height:1.6}
.lab .lab-open{color:#173B63!important;border-top-color:#E0E5DF;font-weight:700}
.lab .lab-playground{align-items:start;gap:18px;grid-template-columns:minmax(0,1.7fr) minmax(280px,.95fr)}
.lab .lab-stage{min-width:0;border:1px solid #D7DFD8;border-radius:12px;overflow:hidden;background:#FFFEFB;box-shadow:0 8px 28px rgba(18,39,51,.055)}
.lab .lab-canvas-wrap{background:#FFFEFB!important;min-height:400px;border:none!important;border-radius:0!important;box-shadow:none!important;overflow:hidden}
.lab .lab-canvas-wrap canvas{min-height:400px;display:block;width:100%}
.lab .lab-canvas-actions{position:relative!important;left:auto!important;bottom:auto!important;display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important;padding:13px!important;background:#FFFEFB;border-top:1px solid #E3E9E4;flex-wrap:nowrap!important}
.lab .lab-canvas-actions button{position:static!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;width:100%!important;min-width:0!important;min-height:48px!important;padding:12px 10px!important;border-radius:8px!important;font-family:inherit!important;font-size:14px!important;line-height:1.2!important;letter-spacing:0!important;font-weight:700!important;text-transform:none!important;box-shadow:none!important;white-space:nowrap!important}
.lab .lab-canvas-actions #lab-motion{background:#0B1F3A!important;color:#FFFDF8!important;border:1px solid #0B1F3A!important}
.lab .lab-canvas-actions #lab-reset{background:#FFFFFF!important;color:#0B1F3A!important;border:1px solid #B7C6C5!important}
.lab .lab-canvas-actions button:hover{filter:brightness(1.08)}
.lab .lab-canvas-actions button span{font-size:16px!important;font-family:Arial,sans-serif!important;line-height:1}
.lab .lab-controls{min-width:0;background:#FFFDF8!important;border:1px solid #D7DFD8!important;border-radius:12px!important;padding:25px 23px!important;box-shadow:0 8px 28px rgba(18,39,51,.045)}
.lab .lab-controls h3{font-size:clamp(1.8rem,3vw,2.3rem)}
.lab .lab-slider{margin-bottom:22px;color:#0B1F3A!important}
.lab .lab-slider > span{color:#18344B!important;font-size:13px;font-weight:650}
.lab .lab-slider output{color:#876331!important;font-weight:700}
.lab .lab-slider input{accent-color:#3E9CA5;min-height:35px}
.lab .lab-parameter-meta{color:#40556A!important;border-top:1px solid #DFE6E0}
.lab .lab-prof-form,.lab .lab-assigned{background:#FFFDF8!important;color:#0B1F3A!important;border-color:#D7DFD8!important;border-radius:12px}
.lab .lab-prof-form label,.lab .lab-admin-item,.lab .lab-saved-item,.lab .lab-admin-search,.lab .lab-admin-info{color:#183448!important}
.lab .lab-notice{color:#143448;background:#FFFDF8!important;border-color:#D5B67F}
.lab .lab-button{border-radius:8px!important}
.lab .lab-button.primary{background:#173B63!important;border-color:#173B63!important;color:#FFFDF8!important}
.lab .lab-home-teaser{border-radius:12px}
.lab .lab-home-copy h2,.lab .lab-home-copy p,.lab .lab-home-copy .lab-eyebrow{color:#FFFDF8!important}
@media(max-width:880px){.lab .lab-playground{grid-template-columns:1fr}.lab .lab-controls{padding:21px 19px!important}}
@media(max-width:620px){
 .lab{margin:8px 10px 35px!important;padding:23px 16px 66px!important;border-radius:12px}
 .lab .lab-header{gap:15px;margin-bottom:20px}
 .lab .lab-header h1{font-size:clamp(2.4rem,11vw,3.2rem)!important}
 .lab .lab-experiment{min-height:154px}
 .lab .lab-experiment-art{width:35%;min-width:106px;min-height:154px;border-bottom:none;border-right:1px solid #DEE6DF}
 .lab .lab-experiment-art svg{width:96%;height:96%;max-width:160px}
 .lab .lab-card-info{padding:15px 16px}
 .lab .lab-canvas-wrap,.lab .lab-canvas-wrap canvas{min-height:340px}
 .lab .lab-canvas-actions{padding:10px!important;gap:9px!important}
 .lab .lab-canvas-actions button{font-size:13px!important;min-height:46px!important;padding:11px 8px!important}
 .lab .lab-controls{padding:22px 18px!important}
 .lab .lab-header-links{gap:7px}
 .lab .lab-header-links a{white-space:normal}
}
@media(prefers-reduced-motion:reduce){.lab .lab-experiment-art svg{transition:none}}
