.laundry-page{background:#080d0a}.laundry-main{width:94%;max-width:1480px;margin:0 auto;padding:26px 0 0}.laundry-back{font-size:12px;color:#a8b4a3!important}.laundry-back:hover{color:var(--studio-green)!important}.laundry-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin:28px 0 32px}.laundry-heading .eyebrow{font-size:10px;letter-spacing:.22em}.laundry-heading h1{font-size:clamp(32px,3.5vw,52px);line-height:1.12}.laundry-heading>p{font-size:14px;color:#b2bcae}.laundry-workspace{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:24px;align-items:start}.laundry-viewer-column{min-width:0;position:sticky;top:104px}.laundry-stage{height:clamp(470px,42vw,680px);position:relative;overflow:hidden;border-radius:14px;background:#e9e7e0;isolation:isolate;color:#28332a}.laundry-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.laundry-stage canvas:active{cursor:grabbing}.stage-topline{position:absolute;left:23px;right:23px;top:22px;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:10px;pointer-events:none;color:#5b6658;letter-spacing:.04em}.live-label{display:flex;gap:8px;align-items:center;font-size:9px;font-weight:700;letter-spacing:.16em}.live-label i{width:6px;height:6px;background:#539b3e;border-radius:50%}.laundry-view-buttons{position:absolute;top:51px;left:20px;display:flex;gap:4px;background:#fff9;border:1px solid #0000000d;border-radius:8px;padding:4px;backdrop-filter:blur(8px)}.laundry-view-buttons button,.stage-tools button{color:#42503d;border:0;background:none;border-radius:5px;cursor:pointer;font:11px Arial;padding:9px 11px}.laundry-view-buttons [aria-pressed=true]{background:#273b28;color:#fff}.stage-tools{position:absolute;left:20px;right:20px;bottom:18px;display:flex;gap:7px}.stage-tools button{border:1px solid #a4afa075;background:#f7f8f0e8;backdrop-filter:blur(8px)}.stage-tools [aria-pressed=true]{background:#e0ebd6;border-color:#8aab78}.stage-tools #fit-view{margin-left:auto;font-size:16px;padding-block:5px}.measure-label{position:absolute;transform:translate(-50%,-50%);background:#fffdf4e6;border:1px solid #bac4b0;border-radius:5px;padding:5px 8px;font-size:10px;white-space:nowrap;color:#42563c;pointer-events:none}.place-hotspot{position:absolute;transform:translate(-50%,-50%);border:1px solid #70a255;border-radius:30px;background:#172d1a;box-shadow:0 3px 20px #0002;color:#fff;font-size:11px;display:flex;align-items:center;gap:7px;padding:7px 11px;cursor:pointer;white-space:nowrap}.place-hotspot span{background:var(--studio-green);color:#123113;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-size:17px}.place-hotspot:hover{background:#2c542b}.placement-hint{position:absolute;top:105px;left:50%;transform:translateX(-50%);padding:10px 15px;max-width:88%;width:max-content;background:#f8fff2;border:1px solid #a8bd96;border-radius:8px;color:#334a2c;text-align:center;font-size:12px}.design-metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:19px 5px;border-bottom:1px solid #29342b;gap:10px}.design-metrics>div{padding-left:17px;border-left:1px solid #29342b}.design-metrics>div:first-child{border:0;padding-left:0}.design-metrics span{display:block;color:#85957e;font-size:9px;letter-spacing:.13em;margin-bottom:7px}.design-metrics strong{font-size:19px;font-weight:500;letter-spacing:-.02em}.column-selector{display:flex;gap:7px;overflow:auto;padding:15px 0 1px;scrollbar-width:thin}.column-selector button{background:#101a12;border:1px solid #2b3e2c;color:#b9c4b4;flex:0 0 auto;border-radius:6px;padding:9px 11px;cursor:pointer;font-size:11px}.column-selector [aria-pressed=true]{border-color:#76bb5c;color:#ddf6d2;background:#243821}.column-selector button span{color:#8ec578;font-size:9px;margin-right:6px}.viewer-help{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:16px 0;color:#8f9c89;font-size:11px}.viewer-help>span{color:#b6c9ac;font-size:10px;white-space:nowrap}.design-actions{display:flex;gap:9px;flex-wrap:wrap}.design-actions button{border:1px solid #364a33;border-radius:7px;padding:12px 15px;font-size:11px;background:#111c13;color:#d3e2ca;cursor:pointer}.design-actions button:first-child{background:#d5e6c9;color:#15230f;border-color:#d5e6c9}.design-actions button span{margin-right:6px}.laundry-panel{background:#0e1710;border:1px solid #2a3b2c;border-radius:14px;padding:23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:21px}.panel-heading .eyebrow{font-size:8px;letter-spacing:.16em;margin-bottom:8px!important}.panel-heading h2{font-size:26px}.history-buttons{display:flex;gap:4px}.history-buttons button{font-size:20px;border:1px solid #2d432d;border-radius:6px;background:none;color:#c7d3c0;width:30px;height:32px;cursor:pointer}.laundry-page button:disabled{opacity:.35;cursor:default}.add-module{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#a4ec7c;border:1px solid #a4ec7c;border-radius:8px;font-size:12px;font-weight:600;color:#14200d;padding:13px 6px;cursor:pointer}.add-module:hover{background:#b7fb92}.add-module>span{font-size:20px;font-weight:400}.config-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #2c3b2b;margin:22px 0}.config-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:13px 0;color:#73896c;font-size:9px;cursor:pointer}.config-tabs button span{font-size:11px;margin-left:5px;color:#a6b49f}.config-tabs [aria-selected=true]{border-bottom-color:#b0ef8b;color:#b0ef8b}.config-tabs [aria-selected=true] span{color:#e8f6e1}.laundry-panel fieldset{padding:0;border:0;min-width:0;margin:0}.laundry-panel .section-caption{font-size:9px;letter-spacing:.12em;color:#94ae87;font-weight:600;margin:22px 0 12px}.laundry-panel .section-caption:first-child{margin-top:0}.selected-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid #263827}.selected-caption strong{font-size:14px;font-weight:500}.selected-caption span{font-size:10px;color:#94ad88}.field-label{display:block;margin:17px 0 9px;font-size:12px;color:#d1dccb}.field-label span{display:block;color:#82937b;font-size:10px;margin-top:5px}.laundry-page select,.laundry-page input[type=number]{width:100%;border:1px solid #364b32;border-radius:6px;background:#152117;color:#e3efdc;padding:11px 10px;font-family:inherit;font-size:12px;min-height:39px;color-scheme:dark}.laundry-page select{cursor:pointer}.laundry-page input[type=number]{appearance:textfield;min-width:0}.laundry-page input::-webkit-inner-spin-button{opacity:.6}.single-input{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#cad6c4;font-size:12px;margin:12px 0}.single-input>span{display:flex;align-items:center;gap:8px;color:#849b7a;font-size:11px;flex:0 0 105px}.single-input input{text-align:right}.dimension-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.dimension-inputs label{color:#9cae93;font-size:10px}.dimension-inputs label>span{display:flex;align-items:center;gap:4px;margin-top:6px;font-size:10px}.dimension-inputs input{padding:10px 6px!important;text-align:center}.check-field{display:flex;align-items:center;gap:10px;font-size:11px;color:#c4d5bb;line-height:1.5;margin:16px 0;cursor:pointer}.check-field input{accent-color:#a4ec7c;width:16px;height:16px;flex:0 0 auto}.helper-copy{font-size:11px;color:#90a087;line-height:1.6!important}.module-actions{display:flex;gap:6px;margin-top:14px}.module-actions button,.row-tools button{background:#17251a;border:1px solid #30482f;border-radius:5px;padding:8px;color:#afc3a5;font-size:10px;cursor:pointer}.module-actions button:last-child{margin-left:auto;color:#ccb5a6}.clearance-details{margin-top:24px;padding-top:17px;border-top:1px solid #293c29}.clearance-details summary{font-size:11px;color:#b7c8af;cursor:pointer}.clearance-details>.helper-copy{margin-top:11px}.height-budget{border-top:1px solid #2c3d2b;margin-top:26px;padding-top:19px}.height-budget>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#aec4a2}.height-budget strong{color:#d9edcd;font-size:12px;font-weight:500}.height-budget progress{display:block;width:100%;height:5px;margin:12px 0 8px;accent-color:#96c479;border:0;border-radius:6px;overflow:hidden}.height-budget progress::-webkit-progress-bar{background:#263923}.height-budget progress::-webkit-progress-value{background:#96c479}.height-budget p{font-size:9px;color:#788d6d}.reset-design{display:block;margin:22px auto 0;padding:4px;background:none;border:0;border-bottom:1px solid #42573b;color:#8c9e82;font-size:10px;cursor:pointer}.bay-list{display:grid;gap:10px;margin:17px 0}.bay-card{border:1px solid #2c432c;background:#111e14;border-radius:8px;padding:13px}.bay-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.bay-title strong{font-size:11px;color:#bcd7ad;font-weight:500}.bay-title button{border:0;background:none;color:#8da580;cursor:pointer;font-size:18px;line-height:1}.bay-card .single-input{margin-bottom:0;font-size:11px}.bay-card select{font-size:11px}.row-tools{display:flex;gap:6px;margin-top:10px}.row-tools button{padding:5px 9px;font-size:9px}.add-bays{display:grid;gap:7px}.add-bays button{padding:12px;text-align:left;font-size:11px;border:1px dashed #405a38;border-radius:7px;background:#142217;color:#c7e1b8;cursor:pointer}.add-bays button>span{float:right;color:#82a873;font-size:10px}.empty-bays{border:1px dashed #334b2e;border-radius:8px;padding:17px;color:#9db293;font-size:11px;line-height:1.7;margin:15px 0}.finish-targets{display:flex;gap:5px;margin:16px 0}.finish-targets button{flex:1;border:1px solid #30462e;border-radius:5px;padding:9px 5px;font-size:10px;color:#a7bc9b;background:none;cursor:pointer}.finish-targets [aria-pressed=true]{border-color:#92bd78;background:#293f23;color:#e2f4d8}.finish-swatches{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.finish-swatch{border:1px solid #2b422b;border-radius:7px;background:#111c13;padding:9px 6px;color:#b5c7ab;font-size:10px;cursor:pointer;display:grid;gap:8px;justify-items:center}.finish-swatch>span{display:block;width:100%;height:47px;border-radius:4px;background:var(--finish)}.finish-swatch.wood>span{background:repeating-linear-gradient(93deg,#ffffff0c 0 2px,#38220d0d 3px 4px,transparent 5px 11px),var(--finish)}.finish-swatch[aria-pressed=true]{border-color:#a6da87;background:#243b1d;color:#e2f4d6}.finish-summary{font-size:11px;line-height:1.7;color:#91aa86;margin:20px 0}.finish-summary strong{color:#c8dcbc;font-weight:400}.pending-placement{background:#223b1c;padding:14px;border:1px solid #678e51;border-radius:8px;margin-top:14px}.pending-placement strong{font-size:12px}.pending-placement p{font-size:11px;color:#c5dab6;margin:6px 0 10px}.pending-placement>div{display:flex;gap:5px;flex-wrap:wrap}.pending-placement button{border:1px solid #5b8048;background:#304a23;color:#f1f8eb;font-size:11px;border-radius:4px;padding:8px;cursor:pointer}.laundry-status{margin:22px 0 10px;border-left:2px solid #6e9a54;padding:8px 13px;color:#b6cfa7;font-size:12px;min-height:35px}.laundry-status.is-error{border-color:#d2a170;color:#eed3b5}.laundry-note{font-size:10px;color:#75856e;max-width:920px;margin-bottom:32px!important}.laundry-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 0;border-top:1px solid #29342b}.laundry-footer .brand{width:120px}.laundry-footer p,.laundry-footer>a:last-child{font-size:11px;color:#8c9c85}.laundry-loading,.laundry-error{position:absolute;inset:0;display:flex;flex-direction:column;gap:15px;align-items:center;justify-content:center;text-align:center;background:#e9e7e0;color:#4b5d42;padding:25px;z-index:6;font-size:13px}.loading-cube{font-size:50px;color:#72905f}.laundry-error button{background:#213b20;color:white;border:0;padding:12px 17px;border-radius:7px;cursor:pointer}.resume-banner{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:15px 20px;border:1px solid #537340;background:#1c2d16;border-radius:8px;margin-bottom:20px;font-size:12px}.resume-banner>div{display:flex;gap:10px}.resume-banner button{background:none;border:0;color:#d7edc8;text-decoration:underline;cursor:pointer;font-size:11px}.laundry-dialog{background:#101c13;border:1px solid #3c5835;border-radius:15px;color:#e6f1df;padding:28px;max-width:500px;width:calc(100% - 28px);max-height:90svh;overflow:auto;box-shadow:0 25px 100px #0008}.laundry-dialog::backdrop{background:#020803b8;backdrop-filter:blur(7px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.dialog-heading .eyebrow{font-size:9px}.dialog-heading h2,.compact-dialog h2{font-size:28px}.dialog-heading>button{background:none;border:0;color:#c3d5b9;font-size:26px;cursor:pointer}.module-types{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.module-types label{position:relative;border:1px solid #36512e;border-radius:9px;background:#17251a;display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 5px;font-size:12px;color:#a5bb98;cursor:pointer}.module-types input{position:absolute;top:7px;left:7px;accent-color:#acec83;width:12px;height:12px}.module-types label:has(input:checked){border-color:#a7e485;background:#283d20;color:#effbe7}.appliance-icon{font-size:33px;line-height:1}.dialog-note{font-size:12px;color:#96ae89;margin:22px 0!important}.dialog-submit{width:100%;background:#a4ec7c!important;border-color:#a4ec7c!important;font-size:13px}.form-error{color:#f2cba7;font-size:12px;margin-bottom:12px!important}.compact-dialog>p{font-size:13px;color:#b2c3a8;margin:18px 0 24px}.confirm-actions{display:flex;justify-content:end;gap:10px}.confirm-actions button{border:1px solid #6d9257;border-radius:6px;color:#d6e9c9;background:#20361b;padding:11px 16px;cursor:pointer}.confirm-actions #confirm-reset{background:#b0e393;color:#172411}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.laundry-page [hidden]{display:none!important}
@media(min-width:1700px){.laundry-workspace{grid-template-columns:minmax(0,1fr) 400px}}
@media(max-width:1150px){.laundry-workspace{grid-template-columns:minmax(0,1fr) 330px;gap:16px}.laundry-panel{padding:18px}.laundry-heading>p{font-size:12px}.design-actions{gap:6px}.design-actions button{padding:10px;font-size:10px}.design-metrics strong{font-size:17px}.laundry-viewer-column{top:100px}}
@media(max-width:850px){.laundry-page .site-header{position:relative}.laundry-heading{margin:25px 0;align-items:start}.laundry-heading>p{display:none}.laundry-workspace{grid-template-columns:1fr}.laundry-viewer-column{position:relative;top:auto}.laundry-stage{height:510px}.laundry-panel{padding:25px}.config-tabs{margin-top:18px}.design-metrics strong{font-size:20px}.laundry-note{font-size:10px}.laundry-footer{flex-wrap:wrap}.laundry-dialog{padding:23px}}
@media(max-width:550px){.laundry-main{width:93%;padding-top:20px}.laundry-heading h1{font-size:33px;max-width:330px}.laundry-heading .eyebrow{font-size:8px}.laundry-heading{margin-bottom:22px}.laundry-stage{height:370px;max-height:55svh;min-height:290px;border-radius:10px}.stage-topline{top:16px;left:15px;right:15px;font-size:9px}.live-label{font-size:8px;letter-spacing:.1em}.laundry-view-buttons{top:40px;left:12px}.laundry-view-buttons button{font-size:10px;padding:7px 9px}.stage-tools{left:12px;right:12px;bottom:12px;gap:5px}.stage-tools button{font-size:10px;padding:8px 10px}.measure-label{font-size:9px;padding:4px 6px}.design-metrics{padding:15px 0;gap:5px}.design-metrics>div{padding-left:10px}.design-metrics strong{font-size:16px}.design-metrics span{font-size:8px;letter-spacing:.06em}.column-selector{padding-top:12px}.viewer-help{font-size:10px;margin:12px 0}.viewer-help>span{display:none}.design-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.design-actions button{padding:11px 5px;font-size:10px}.design-actions button span{display:none}.laundry-panel{padding:21px}.laundry-workspace{gap:22px}.laundry-footer{gap:20px}.laundry-footer p{display:none}.laundry-footer .brand{width:100px}.laundry-footer>a:last-child{font-size:10px}.resume-banner{align-items:start;flex-direction:column;gap:10px;padding:13px}.place-hotspot{font-size:9px;padding:6px 8px;gap:4px}.place-hotspot span{width:19px;height:19px;font-size:15px}.placement-hint{top:85px;font-size:10px;padding:7px 9px}.module-types label{font-size:11px;padding:18px 3px}.module-types{gap:6px}.dialog-heading h2{font-size:24px}}
.back-to-preview{display:none}
@media(max-width:850px){.back-to-preview{display:block;position:fixed;right:17px;bottom:18px;z-index:20;border:1px solid #83b365;border-radius:30px;padding:13px 18px;background:#203b1dec;box-shadow:0 6px 30px #0005;color:#e8ffda;backdrop-filter:blur(10px);font-size:12px;cursor:pointer}}
@media(prefers-reduced-motion:reduce){.laundry-page *{scroll-behavior:auto!important}}

/* Eigen logo-accent voor deze beleving (gebouwd door scripts/build_logo_variants.py) */
.laundry-page .site-header .brand::after { -webkit-mask-image: url("images/logo-wasruimte.png"); mask-image: url("images/logo-wasruimte.png"); }

/* Groot, zacht watermerk van het eigen logo-icoon naast de koptekst */
.laundry-main { position:relative; isolation:isolate; overflow-x:clip; overflow-clip-margin:0; }
.laundry-main::before { content:""; position:absolute; z-index:-1; pointer-events:none; top:6px; right:33%; width:clamp(170px, 16vw, 250px); aspect-ratio:424 / 336; background:url("images/logo-icoon-wasruimte.png") center / contain no-repeat; opacity:.08; }
@media (max-width:550px) { .laundry-main::before { width:210px; top:-6px; right:-14%; opacity:.07; } }
/* Laadscherm: het eigen logo-icoon met een kleine animatie */
.laundry-page .brand-loader { display:block; width:clamp(110px, 14vw, 150px); height:auto; overflow:visible; }
.laundry-page .bl-drop { fill:#07f603; transform-box:fill-box; transform-origin:50% 100%; animation:bl-drop 1.6s cubic-bezier(.5,0,.75,0) infinite; }
.laundry-page .bl-ripple { fill:none; stroke:#07f603; stroke-width:6; opacity:0; transform-box:fill-box; transform-origin:center; animation:bl-ripple 1.6s ease-out infinite; }
@keyframes bl-drop { 0% { transform:translateY(-90px) scaleY(1.15); opacity:0; } 25% { opacity:1; } 62% { transform:none; } 70% { transform:scale(1.12,.86); } 80%, 100% { transform:none; opacity:1; } }
@keyframes bl-ripple { 0%, 62% { opacity:0; transform:scale(.4); } 70% { opacity:.8; } 100% { opacity:0; transform:scale(1.6); } }
@media (prefers-reduced-motion:reduce) { .laundry-page .brand-loader * { animation:none !important; } }

/* Avondlicht: de bovenregel licht houden op de donkere achtergrond */
.laundry-stage[data-light=evening] .stage-topline{color:#dfe8da}
.laundry-stage[data-light=evening] .live-label i{background:var(--studio-green)}
