/* Case transversal: native dialog, real-component demos, no nested carousel. */
.projects-carousel + .projects-carousel { margin-top:clamp(42px,5vw,70px); padding-top:clamp(28px,4vw,48px); border-top:1px solid var(--hairline); }
.projects-group-title { display:flex; align-items:center; gap:12px; margin:0; font:700 clamp(1.05rem,2vw,1.35rem)/1.3 "Space Grotesk",sans-serif; letter-spacing:-.025em; }
.projects-group-title > span { color:var(--accent-light); font:500 .65rem "DM Mono",monospace; letter-spacing:.06em; }
.backoffice-open { border:0; background:none; text-align:left; cursor:pointer; }
.backoffice-ready .backoffice-fallback { display:none; }
.visual-backoffice { background:radial-gradient(ellipse at 35% 35%,#303363,transparent 75%),#131c34; }
.backoffice-montage { position:relative; flex:1; min-height:0; width:100%; }
.mini-interface { position:absolute; width:63%; overflow:hidden; border:1px solid #5a6286; border-radius:7px; background:#1c253d; box-shadow:0 12px 25px rgb(0 0 0 / 28%); }
.mini-interface > span { display:block; padding:4px 8px; color:#d4daf4; font:500 .5rem/1.4 "DM Mono",monospace; }
.mini-interface img { width:100%; height:auto; aspect-ratio:1.8; object-fit:cover; object-position:top; }
.mini-interface:nth-child(1) { top:5%; left:5%; transform:rotate(-4deg); }
.mini-interface:nth-child(2) { top:28%; right:4%; transform:rotate(3deg); }
.mini-interface:nth-child(3) { top:52%; left:10%; transform:rotate(-2deg); }
.project-card:hover .mini-interface img { transform:none; }

.backoffice-presentation { width:min(calc(100% - 2 * var(--page-gutter)),var(--container)); margin:0 auto; padding-block:64px; }
.backoffice-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:28px 30px 18px; }
.backoffice-heading h2 { margin:10px 0 8px; font:700 clamp(1.7rem,3vw,2.5rem)/1.15 "Space Grotesk",sans-serif; letter-spacing:-.045em; text-wrap:balance; }
.backoffice-heading h2 span { color:var(--accent-light); }
#backoffice-lead { margin:0; color:var(--muted); font-size:.85rem; }
.backoffice-close { display:inline-flex; align-items:center; justify-content:center; gap:12px; flex:none; min-height:44px; padding:9px 14px; border:1px solid var(--hairline); border-radius:12px; background:#1a2238; color:var(--ink); font-size:.78rem; }
.backoffice-close span { font-size:1.5rem; line-height:1; color:var(--accent-light); }
.backoffice-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; padding:0 30px 16px; }
.backoffice-tabs button { min-width:0; min-height:44px; padding:10px 12px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--muted-strong); font-size:.85rem; font-weight:700; }
.backoffice-tabs button[aria-selected="true"] { background:rgb(157 139 255 / 15%); border-color:rgb(157 139 255 / 35%); color:var(--ink); }
.backoffice-dialog { width:min(calc(100% - 48px),1160px); max-width:none; max-height:calc(100dvh - 48px); padding:0; color:var(--ink); border:1px solid rgb(157 139 255 / 30%); border-radius:24px; background:#0b101f; box-shadow:0 30px 100px rgb(0 0 0 / 55%); overflow:auto; overscroll-behavior:contain; }
.backoffice-dialog::backdrop { background:rgb(2 5 16 / 85%); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.backoffice-dialog .backoffice-presentation { width:auto; margin:0; padding:0; }
.backoffice-dialog .backoffice-navigation { position:sticky; top:0; z-index:10; border-bottom:1px solid var(--hairline); background:rgb(14 20 39 / 97%); }
.backoffice-panels { padding:26px 30px 34px; }
.backoffice-panel { min-width:0; }
.backoffice-panel:focus-visible { outline-offset:5px; }
.backoffice-panel + .backoffice-panel { margin-top:54px; }
.backoffice-dialog .backoffice-panel { margin-top:0; }
.case-kicker { margin:0 0 8px; color:var(--cyan); font:500 .62rem/1.5 "DM Mono",monospace; letter-spacing:.06em; }
.case-panel-intro { max-width:760px; margin-bottom:22px; }
.case-panel-intro h3 { margin:0 0 10px; font:700 clamp(1.5rem,2.7vw,2.1rem)/1.2 "Space Grotesk",sans-serif; letter-spacing:-.035em; text-wrap:balance; }
.case-panel-intro > p:not(.case-kicker) { margin:0; color:var(--muted-strong); font-size:.9rem; line-height:1.75; }
.case-status,.demo-label { display:inline-flex; max-width:100%; border:1px solid rgb(157 139 255 / 24%); border-radius:6px; padding:5px 9px; color:var(--accent-light); background:rgb(157 139 255 / 8%); font:500 .64rem/1.5 "DM Mono",monospace; }
.case-status { margin-top:12px; }
.admin-interface { margin:0; overflow:hidden; border:1px solid var(--hairline); border-radius:14px; background:#121a2b; }
.browser-chrome { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; color:#aab7d1; font:500 .61rem/1.3 "DM Mono",monospace; }
.browser-chrome span:first-child { color:#7166a8; letter-spacing:3px; }
.browser-chrome span:last-child { color:var(--cyan); font-size:.55rem; }
.admin-interface a { display:block; }
.admin-interface img { width:100%; height:auto; object-fit:contain; background:#f7f9fb; }
.admin-interface figcaption { padding:11px 14px; color:#a0aec7; font-size:.73rem; line-height:1.7; }
.production-story { margin-top:32px; padding:22px; border:1px solid var(--hairline); border-radius:14px; background:#101729; }
.production-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-bottom:20px; }
.production-heading h4 { margin:0; font:700 1.35rem/1.25 "Space Grotesk",sans-serif; letter-spacing:-.025em; }
.production-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 0 22px; padding:0; list-style:none; }
.production-steps button { display:flex; align-items:center; gap:8px; width:100%; min-height:44px; padding:9px 12px; border:1px solid var(--hairline); border-radius:6px; background:transparent; color:var(--muted-strong); font-size:.78rem; font-weight:700; }
.production-steps button span { color:#9e9ab9; font:500 .6rem "DM Mono",monospace; }
.production-steps button:hover { border-color:var(--cyan); }
.production-steps button[aria-pressed="true"] { border-color:rgb(117 219 227 / 50%); background:rgb(117 219 227 / 7%); color:var(--cyan); }
.production-stage { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:28px; align-items:center; min-height:320px; }
.production-stage + .production-stage { margin-top:24px; }
.backoffice-ready .production-stage { margin-top:0; }
.plate-preview,.qr-preview,.export-preview { display:flex; align-items:center; justify-content:center; min-width:0; min-height:320px; padding:18px; border-radius:12px; background:radial-gradient(ellipse at 50% 50%,rgb(117 219 227 / 11%),transparent 70%),#0c1222; }
.plate-preview img { width:auto; height:284px; max-width:100%; object-fit:contain; border-radius:6px; box-shadow:0 12px 35px rgb(0 0 0 / 32%); }
.qr-preview { flex-direction:column; gap:18px; }
.qr-preview img { width:min(76%,220px); height:auto; border-radius:7px; }
.qr-preview > span { color:var(--muted); text-align:center; font:.57rem/1.5 "DM Mono",monospace; }
.export-preview { gap:14px; }
.export-preview img { width:40%; height:auto; border-radius:4px; }
.export-files { display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:9px; }
.export-files > span { color:var(--cyan); font-size:1.5rem; }
.export-files strong { font:700 .95rem "Space Grotesk",sans-serif; }
.export-files code { overflow-wrap:anywhere; color:var(--muted-strong); font:.6rem/1.6 "DM Mono",monospace; }
.production-number { color:var(--cyan); font:500 .64rem "DM Mono",monospace; }
.production-explanation h5 { margin:12px 0; font:700 1.6rem/1.2 "Space Grotesk",sans-serif; letter-spacing:-.025em; text-wrap:balance; }
.production-explanation p { margin:0; color:var(--muted-strong); font-size:.86rem; line-height:1.8; }
.operation-kind { display:inline-block; margin-top:18px; color:#bbb5d1; font:.65rem/1.6 "DM Mono",monospace; }
.operation-kind--auto { color:var(--cyan); }
.operation-note { margin:22px 0 0; padding-top:16px; border-top:1px solid var(--hairline); color:var(--muted-strong); font-size:.78rem; line-height:1.8; }
.backoffice-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:28px 0; }
.backoffice-facts > div { padding-top:16px; border-top:1px solid var(--hairline); }
.backoffice-facts dt { color:var(--accent-light); font-weight:700; font-size:.85rem; }
.backoffice-facts dd { margin:8px 0 0; color:var(--muted-strong); font-size:.8rem; line-height:1.8; }
.backoffice-details { border-top:1px solid var(--hairline); padding-block:6px; }
.backoffice-details > summary { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:44px; padding-block:10px; list-style:none; cursor:pointer; font-size:.85rem; font-weight:700; }
.backoffice-details > summary::-webkit-details-marker { display:none; }
.backoffice-details > summary span { color:var(--accent-light); font-size:1.3rem; transition:transform .2s; }
.backoffice-details[open] > summary span { transform:rotate(45deg); }
.backoffice-details ul { padding-left:20px; color:var(--muted-strong); font-size:.84rem; line-height:1.8; }
.backoffice-details li + li { margin-top:8px; }
.backoffice-stack { margin:18px 0 10px; color:var(--cyan); font:.68rem/1.9 "DM Mono",monospace; }
.backoffice-details > p:not(.backoffice-stack) { color:var(--muted-strong); font-size:.85rem; line-height:1.8; }
.teacher-view .admin-interface { margin-block:18px; }
.engineering-path { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; margin:28px 0; padding:18px; border:1px solid var(--hairline); border-radius:10px; color:var(--muted-strong); font:500 .7rem/1.7 "DM Mono",monospace; }
.engineering-path i { color:var(--cyan); font-style:normal; }
html.has-backoffice-dialog,html.has-backoffice-dialog body { overflow:hidden; }
html.has-backoffice-dialog body { position:fixed; top:var(--backoffice-scroll-top); inset-inline:0; width:100%; }

@media (max-width:700px) {
  .projects-group-title { flex:1; min-width:0; font-size:1rem; gap:8px; }
  .projects-toolbar { gap:10px; }
  .backoffice-dialog { width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .backoffice-heading { gap:12px; padding:20px 18px 12px; }
  .backoffice-heading .eyebrow { font-size:.58rem; }
  .backoffice-heading h2 { font-size:1.55rem; }
  .backoffice-dialog #backoffice-lead { display:none; }
  .backoffice-close { gap:8px; padding-inline:11px; }
  .backoffice-tabs { padding:0 18px 14px; }
  .backoffice-tabs button { padding:9px 6px; font-size:.74rem; }
  .backoffice-panels { padding:22px 18px max(28px,env(safe-area-inset-bottom)); }
  .case-panel-intro { margin-bottom:18px; }
  .case-panel-intro > p:not(.case-kicker) { font-size:.85rem; }
  .browser-chrome { gap:8px; padding:9px 10px; font-size:.53rem; }
  .browser-chrome span:first-child { display:none; }
  .admin-interface { border-radius:10px; }
  .admin-interface figcaption { padding:10px; font-size:.7rem; }
  .production-story { padding:16px; margin-top:24px; }
  .production-heading h4 { font-size:1.2rem; }
  .production-steps { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:16px; }
  .production-steps button { font-size:.73rem; padding-inline:10px; }
  .production-stage { grid-template-columns:1fr; gap:18px; min-height:0; }
  .plate-preview,.qr-preview,.export-preview { min-height:240px; padding:14px; }
  .plate-preview img { height:230px; }
  .qr-preview img { width:180px; }
  .production-explanation h5 { font-size:1.35rem; }
  .production-explanation p { font-size:.83rem; }
  .backoffice-facts { grid-template-columns:1fr; gap:16px; margin-block:24px; }
  .backoffice-facts dd { margin-top:6px; }
  .engineering-path { justify-content:flex-start; gap:10px; padding:14px; font-size:.65rem; }
}
.admin-interface a:focus-visible { outline-offset:-3px; }
.editor-view { margin-top:24px; }
.editor-view .admin-interface { margin-block:18px; }
.backoffice-dialog .admin-interface img { max-height:56dvh; }
@media (max-width:700px) {
  .backoffice-dialog .admin-interface img { max-height:none; }
  .production-story { margin-top:20px; }
}
.backoffice-dialog { scroll-padding-top:var(--backoffice-nav-height,190px); scroll-padding-bottom:24px; }
@media (max-width:700px) {
  html { scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom)); }
}
