/* Containerbakconfigurator. VTStudio-shell (studio.css) met een lichte werkruimte: groen, zwart en wit. */
.bin-page { --bin-bg:#f4f6f2; --bin-card:#ffffff; --bin-ink:#0d140f; --bin-muted:#525d53; --bin-dim:#7a857b; --bin-line:#d9e0d5; --bin-line-strong:#b9c4b4; --bin-green:#30ff0b; --bin-green-ink:#178c05; background:var(--bin-bg); color:var(--bin-ink); color-scheme:light; }
.bin-page [hidden] { display:none !important; }
.bin-page .site-header { position:sticky; }
.bin-page button { font-family:inherit; cursor:pointer; }
.bin-page button:disabled { opacity:.38; cursor:default; }
.bin-page :focus-visible { outline:2px solid var(--bin-green-ink); outline-offset:3px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

.bin-main { width:94%; max-width:1480px; margin:0 auto; padding:26px 0 0; position:relative; }
.bin-back { font-size:12px; color:var(--bin-muted) !important; }
.bin-back:hover { color:var(--bin-green-ink) !important; }
.bin-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin:26px 0 28px; }
.bin-heading .eyebrow { font-size:10px; letter-spacing:.22em; color:var(--bin-green-ink); }
.bin-heading h1 { font-size:clamp(32px, 3.5vw, 52px); line-height:1.12; color:var(--bin-ink); }
.bin-page .bin-heading h1 span, .bin-page .panel-heading h2 span { color:inherit; background:linear-gradient(180deg, transparent 62%, var(--bin-green) 62%, var(--bin-green) 90%, transparent 90%); padding-inline:.04em; }
.bin-heading > p { font-size:14px; color:var(--bin-muted); text-align:right; }

/* ------------------------------------------------------------- werkruimte */
.bin-workspace { display:grid; grid-template-columns:minmax(0, 1fr) 390px; gap:24px; align-items:start; }
.bin-viewer-column { position:sticky; top:92px; }
.bin-stage { position:relative; height:min(66vh, 680px); min-height:420px; border-radius:16px; overflow:hidden; isolation:isolate;
    background:linear-gradient(180deg, #a9c3e2 0%, #dfe7ee 46%, #e9ecec 72%, #e9ecec 100%); box-shadow:0 1px 0 #fff inset, 0 24px 60px -30px #1b2b1b55; transition:background .6s; }
.bin-stage[data-light=evening] { background:linear-gradient(180deg, #050913 0%, #121a28 50%, #141a24 100%); }
.bin-stage::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:1; background:radial-gradient(ellipse at 50% 45%, transparent 55%, #0d140f1f 100%); }
#bin-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; touch-action:none; cursor:grab; outline:none; }
#bin-canvas:active { cursor:grabbing; }
#bin-canvas:focus-visible { box-shadow:inset 0 0 0 3px var(--bin-green); }
.stage-topline { position:absolute; z-index:2; top:18px; left:20px; right:20px; display:flex; justify-content:space-between; gap:12px; font-size:11px; color:#26322a; pointer-events:none; }
.bin-stage[data-light=evening] .stage-topline { color:#d9e2d5; }
.live-label { display:inline-flex; align-items:center; gap:8px; padding:7px 11px; border-radius:30px; background:#ffffffd9; color:var(--bin-ink); font-weight:700; letter-spacing:.14em; font-size:9px; backdrop-filter:blur(8px); }
.live-label i { width:7px; height:7px; border-radius:50%; background:var(--bin-green); box-shadow:0 0 0 3px #30ff0b40; }
#stage-material { padding:7px 11px; border-radius:30px; background:#ffffffb8; color:var(--bin-ink); backdrop-filter:blur(8px); }
.bin-stage[data-light=evening] #stage-material, .bin-stage[data-light=evening] .live-label { background:#0d140fc4; color:#eef3ec; }

.add-box { position:absolute; z-index:3; top:0; left:0; width:46px; height:46px; border-radius:50%; border:2px solid var(--bin-ink); background:var(--bin-green); color:var(--bin-ink); font-size:26px; line-height:1; font-weight:500; display:grid; place-items:center; box-shadow:0 8px 24px -6px #0d140f66; transition:box-shadow .2s, background .2s; will-change:transform; }
.add-box span { margin-top:-3px; }
.add-box:hover { background:#6dff51; box-shadow:0 0 0 7px #30ff0b40, 0 8px 24px -6px #0d140f66; }
.selection-tag { position:absolute; z-index:2; top:0; left:0; pointer-events:none; padding:6px 10px 6px 9px; border-radius:6px; background:var(--bin-ink); color:#fff; font-size:11px; font-weight:700; white-space:nowrap; border-left:3px solid var(--bin-green); will-change:transform; }
.stage-tools { position:absolute; z-index:2; right:16px; bottom:16px; display:flex; gap:6px; }
.stage-tools button { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:9px 13px; border-radius:8px; border:1px solid #0d140f22; background:#ffffffe6; color:var(--bin-ink); font-size:12px; font-weight:600; backdrop-filter:blur(8px); transition:background .2s, border-color .2s; }
.stage-tools button:hover { border-color:var(--bin-ink); }
.stage-tools button[aria-pressed=true] { background:var(--bin-ink); color:#fff; border-color:var(--bin-ink); box-shadow:inset 0 -2px 0 var(--bin-green); }
.stage-tools svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bin-loading { position:absolute; inset:0; z-index:4; display:grid; place-content:center; justify-items:center; gap:16px; background:#f4f6f2; color:var(--bin-muted); font-size:13px; }
.bin-error { position:absolute; inset:0; z-index:5; display:grid; place-content:center; justify-items:center; gap:16px; padding:30px; text-align:center; background:#f4f6f2; font-size:14px; }
.bin-error button { border:0; border-radius:8px; padding:11px 16px; background:var(--bin-ink); color:#fff; }

.design-metrics { display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; margin-top:12px; border:1px solid var(--bin-line); border-radius:12px; overflow:hidden; background:var(--bin-line); }
.design-metrics div { background:var(--bin-card); padding:12px 16px; }
.design-metrics span { display:block; font-size:9px; letter-spacing:.18em; font-weight:700; color:var(--bin-dim); }
.design-metrics strong { display:block; margin-top:3px; font-size:21px; letter-spacing:-.02em; }
.viewer-help { font-size:11px; color:var(--bin-dim); margin-top:10px !important; }

/* ------------------------------------------------------------- paneel */
.bin-panel { background:var(--bin-card); border:1px solid var(--bin-line); border-radius:16px; padding:24px; box-shadow:0 20px 50px -36px #1b2b1b66; scroll-margin-top:96px; }
.panel-heading { display:flex; justify-content:space-between; align-items:start; gap:16px; }
.panel-heading .eyebrow { font-size:9px; letter-spacing:.2em; color:var(--bin-green-ink); margin-bottom:6px !important; }
.panel-heading h2 { font-size:28px; color:var(--bin-ink); }
.history-buttons { display:flex; gap:4px; }
.history-buttons button { width:34px; height:34px; border-radius:8px; border:1px solid var(--bin-line); background:#fff; color:var(--bin-ink); font-size:16px; }
.history-buttons button:not(:disabled):hover { border-color:var(--bin-ink); }
.step-tabs { display:grid; grid-template-columns:repeat(3, 1fr); gap:4px; margin:20px 0 18px; padding:4px; border-radius:11px; background:#eef2ec; }
.step-tabs button { border:0; border-radius:8px; padding:10px 6px; background:none; color:var(--bin-dim); font-size:10px; font-weight:700; letter-spacing:.06em; }
.step-tabs button span { display:block; font-size:13px; letter-spacing:0; color:var(--bin-muted); margin-top:2px; }
.step-tabs button[aria-selected=true] { background:#fff; color:var(--bin-green-ink); box-shadow:0 1px 3px #0d140f22; }
.step-tabs button[aria-selected=true] span { color:var(--bin-ink); }
.panel-feedback { margin:0 0 14px !important; padding:10px 12px; border-radius:8px; background:#fff4e0; border:1px solid #f0c98a; color:#6b3d00; font-size:12px; }
.step-intro { font-size:13px; color:var(--bin-muted); margin-bottom:14px !important; }
.step-next { display:flex; justify-content:space-between; align-items:center; width:100%; margin-top:20px; min-height:50px; padding:14px 18px; border:0; border-radius:9px; background:var(--bin-green); color:#071004; font-size:14px; font-weight:700; box-shadow:0 0 24px #27ed1030; transition:background .2s; }
.step-next:hover { background:#6dff51; }
.step-next span { font-size:20px; line-height:.8; }

/* 01 materiaal */
.material-options { display:grid; gap:10px; }
.material-card { border:1px solid var(--bin-line); border-radius:12px; padding:14px; transition:border-color .2s, box-shadow .2s; }
.material-card:hover { border-color:var(--bin-line-strong); }
.material-card.is-active { border-color:var(--bin-ink); box-shadow:inset 0 0 0 1px var(--bin-ink); }
.material-choice { display:flex; align-items:center; gap:14px; cursor:pointer; }
.material-choice input { position:absolute; opacity:0; pointer-events:none; }
.material-card:has(.material-choice input:focus-visible) { outline:2px solid var(--bin-green-ink); outline-offset:3px; }
.material-texture { flex:0 0 auto; width:58px; height:58px; border-radius:9px; background-color:var(--swatch); box-shadow:inset 0 0 0 1px #0d140f1a; }
.texture-hout { background-image:repeating-linear-gradient(180deg, transparent 0 11px, #0003 11px 13px), repeating-linear-gradient(176deg, #ffffff18 0 2px, transparent 2px 6px); }
.texture-kunststof { background-image:repeating-linear-gradient(180deg, transparent 0 13px, #0004 13px 14px, #fff2 14px 15px); }
.texture-alu { background-image:repeating-linear-gradient(90deg, #fff4 0 3px, transparent 3px 8px, #0003 8px 9px), linear-gradient(135deg, #fff5, transparent 60%); }
.material-text strong { display:block; font-size:16px; }
.material-text span { display:block; font-size:12px; color:var(--bin-muted); margin-top:2px; }
.material-colors { display:flex; gap:8px; margin:12px 0 0 72px; }
.material-card:not(.is-active) .material-colors { opacity:.75; }
.swatch { position:relative; cursor:pointer; }
.swatch input { position:absolute; opacity:0; }
.swatch-dot { display:block; width:30px; height:30px; border-radius:50%; background:var(--swatch); box-shadow:inset 0 0 0 1px #0d140f30; transition:box-shadow .2s, transform .2s; }
.swatch-alu { background-image:linear-gradient(135deg, #fff6, transparent 55%, #0002); }
.swatch:hover .swatch-dot { transform:scale(1.08); }
.swatch input:checked + .swatch-dot { box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--bin-ink); }
.swatch input:focus-visible + .swatch-dot { outline:2px solid var(--bin-green-ink); outline-offset:5px; }
.material-detail { margin:12px 0 0 72px !important; font-size:12px; color:var(--bin-muted); line-height:1.55; }
.material-detail b { color:var(--bin-ink); }

/* 02 boxen */
.lineup-heading { display:flex; justify-content:space-between; align-items:baseline; }
.lineup-heading h3, .editor-heading h3 { font-size:15px; }
.lineup-heading span { font-size:11px; color:var(--bin-dim); }
.lineup { display:flex; align-items:stretch; gap:6px; margin:10px 0 20px; padding:10px; border-radius:12px; background:#eef2ec; overflow-x:auto; }
.lineup-box { position:relative; flex:1 1 0; min-width:48px; max-width:72px; padding:14px 4px 8px; border:1px solid var(--bin-line-strong); border-radius:8px; background:#fff; color:var(--bin-ink); display:grid; justify-items:center; gap:4px; }
.lineup-box svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.lineup-box small { font-size:10px; font-weight:700; color:var(--bin-dim); }
.lineup-box.is-selected { border-color:var(--bin-ink); box-shadow:inset 0 0 0 1px var(--bin-ink), 0 3px 0 var(--bin-green); }
.lineup-lid { position:absolute; top:5px; left:8px; right:8px; height:4px; border-radius:2px; background:var(--bin-ink); }
.lineup-lid.lid-open { background:repeating-linear-gradient(90deg, var(--bin-ink) 0 6px, transparent 6px 100%); background-size:100% 100%; -webkit-mask:linear-gradient(90deg, #000 20%, transparent 20% 80%, #000 80%); mask:linear-gradient(90deg, #000 20%, transparent 20% 80%, #000 80%); }
.lineup-lid.lid-plant { background:#4f7a35; height:6px; top:3px; }
.lineup-lid.lid-luik { -webkit-mask:linear-gradient(90deg, #000 30%, transparent 30% 70%, #000 70%); mask:linear-gradient(90deg, #000 30%, transparent 30% 70%, #000 70%); }
.lineup-streams { display:flex; gap:2px; }
.lineup-stream { width:16px; height:4px; border-radius:2px; background:var(--stream); }
.lineup-streams .lineup-stream:not(:only-child) { width:9px; }
.lineup-add { flex:0 0 auto; display:grid; place-items:center; align-content:center; gap:2px; width:52px; border:1px dashed #9aa79a; border-radius:8px; background:none; color:var(--bin-ink); font-size:10px; font-weight:700; }
.lineup-add span { font-size:22px; line-height:1; font-weight:400; }
.lineup-add:not(:disabled):hover { border-style:solid; border-color:var(--bin-ink); background:var(--bin-green); }
.editor-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; padding-bottom:12px; border-bottom:1px solid var(--bin-line); }
.editor-heading h3 span { font-weight:400; color:var(--bin-muted); margin-left:6px; }
.editor-tools { display:flex; gap:4px; }
.editor-tools button { width:34px; height:34px; border-radius:8px; border:1px solid var(--bin-line); background:#fff; color:var(--bin-ink); font-size:15px; display:grid; place-items:center; }
.editor-tools button:not(:disabled):hover { border-color:var(--bin-ink); }
.editor-tools svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.box-editor fieldset { border:0; padding:0; margin:18px 0 0; min-width:0; }
.box-editor legend { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--bin-ink); margin-bottom:9px; padding:0; }
.box-editor legend small { display:block; text-transform:none; letter-spacing:0; font-weight:400; color:var(--bin-dim); font-size:11px; margin-top:2px; }
.options { display:grid; gap:7px; }
.options.three { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.options.two, .options.signs { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.option { position:relative; display:flex; flex-direction:column; gap:6px; padding:11px; border:1px solid var(--bin-line); border-radius:10px; cursor:pointer; transition:border-color .2s, background .2s; }
.option:hover { border-color:var(--bin-line-strong); }
.option input { position:absolute; opacity:0; }
.option:has(input:checked) { border-color:var(--bin-ink); box-shadow:inset 0 0 0 1px var(--bin-ink); background:#fbfdfa; }
.option:has(input:checked)::after { content:""; position:absolute; top:9px; right:9px; width:8px; height:8px; border-radius:50%; background:var(--bin-green); box-shadow:0 0 0 2px var(--bin-ink); }
.option:has(input:focus-visible) { outline:2px solid var(--bin-green-ink); outline-offset:2px; }
.option.is-unavailable { cursor:not-allowed; background:#f3f5f1; border-style:dashed; }
.option.is-unavailable > svg, .option.is-unavailable strong { opacity:.4; }
.option.is-unavailable:hover { border-color:var(--bin-line); }
.options.hinges .option { padding:9px 11px; }
.option > svg { width:26px; height:26px; fill:none; stroke:var(--bin-ink); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.option strong { display:block; font-size:12.5px; line-height:1.3; }
.option small { display:block; font-size:10.5px; color:var(--bin-muted); line-height:1.4; margin-top:2px; }
.options.two .option { flex-direction:row; align-items:center; gap:10px; }
.sign-thumb { display:grid; place-items:center; height:42px; }
.sign-thumb canvas { max-height:42px; max-width:100%; width:auto; border-radius:3px; box-shadow:0 2px 6px #0d140f33; }
.sign-emaille canvas { border-radius:50%; height:40px; }
.sign-none svg { width:26px; height:26px; fill:none; stroke:var(--bin-dim); stroke-width:1.4; }
.streams { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:6px; }
.stream { position:relative; display:flex; align-items:center; gap:7px; padding:8px; border:1px solid var(--bin-line); border-radius:9px; cursor:pointer; font-size:11.5px; font-weight:600; line-height:1.2; }
.stream input { position:absolute; opacity:0; }
.stream svg { flex:0 0 auto; width:24px; height:24px; padding:4px; border-radius:6px; background:var(--stream); fill:none; stroke:#fff; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.stream:has(input:checked) { border-color:var(--bin-ink); box-shadow:inset 0 0 0 1px var(--bin-ink); }
.stream:has(input:focus-visible) { outline:2px solid var(--bin-green-ink); outline-offset:2px; }

/* 03 overzicht */
.summary-head { display:grid; gap:10px; margin:0 0 16px; }
.summary-head div { padding:12px 14px; border-radius:10px; background:#eef2ec; }
.summary-head dt { font-size:9px; letter-spacing:.18em; font-weight:700; color:var(--bin-dim); text-transform:uppercase; }
.summary-head dd { margin:3px 0 0; font-size:15px; font-weight:700; }
.summary-head small { font-weight:400; color:var(--bin-dim); font-size:11px; }
.summary-list { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.summary-list li { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--bin-line); border-radius:10px; }
.summary-list li > span { display:grid; place-items:center; width:26px; height:26px; flex:0 0 auto; border-radius:50%; background:var(--bin-ink); color:var(--bin-green); font-size:11px; font-weight:700; }
.summary-list strong { display:block; font-size:13px; }
.summary-list small { display:block; font-size:11px; color:var(--bin-muted); }
.summary-actions { display:grid; gap:8px; }
.summary-actions .step-next { justify-content:center; gap:10px; }
.ghost-button { min-height:46px; border-radius:9px; border:1px solid var(--bin-ink); background:#fff; color:var(--bin-ink); font-size:13px; font-weight:600; }
.ghost-button:hover { background:#eef2ec; }
.summary-note { font-size:11px; color:var(--bin-dim); margin-top:10px !important; }

.bin-note { font-size:11px; color:var(--bin-dim); max-width:900px; margin:26px 0 0 !important; line-height:1.6; }
.bin-note strong { color:var(--bin-ink); }
.bin-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:40px 0 34px; margin-top:40px; border-top:1px solid var(--bin-line); font-size:12px; color:var(--bin-muted); }
.bin-footer .brand img { width:120px; height:auto; filter:invert(1) hue-rotate(180deg); }
.bin-footer a:not(.brand) { color:var(--bin-ink); font-weight:600; }
.bin-footer a:not(.brand):hover { color:var(--bin-green-ink); }

/* ------------------------------------------------------------- responsive */
@media (max-width:1150px) { .bin-workspace { grid-template-columns:minmax(0, 1fr) 340px; gap:16px; } .bin-panel { padding:18px; } .streams { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:860px) {
    .bin-page .site-header { position:relative; }
    .bin-heading { margin:22px 0 20px; align-items:start; }
    .bin-heading > p { display:none; }
    .bin-workspace { grid-template-columns:1fr; }
    .bin-viewer-column { position:relative; top:auto; }
    .bin-stage { height:56svh; min-height:330px; max-height:560px; }
    .streams { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (max-width:550px) {
    .bin-main { width:auto; margin:0 16px; padding-top:18px; }
    .bin-heading h1 { font-size:33px; }
    .bin-stage { border-radius:12px; height:52svh; }
    .stage-topline { top:12px; left:12px; right:12px; }
    #stage-material { display:none; }
    .stage-tools { left:10px; right:10px; bottom:10px; justify-content:flex-end; }
    .stage-tools button { min-height:36px; padding:8px 10px; font-size:11px; }
    .add-box { width:40px; height:40px; font-size:22px; }
    .design-metrics { grid-template-columns:repeat(2, 1fr); }
    .design-metrics strong { font-size:18px; }
    .options.three { grid-template-columns:1fr; }
    .options.three .option { flex-direction:row; align-items:center; gap:10px; }
    .options.two, .options.signs { grid-template-columns:1fr 1fr; }
    .options.two:not(.types) .option { flex-direction:column; align-items:flex-start; }
    .options.types { grid-template-columns:1fr; }
    .streams { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .material-colors, .material-detail { margin-left:0 !important; }
    .bin-footer { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { .bin-page * { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
