*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:#f2f5ef;color:#193630;font:16px/1.5 system-ui,Segoe UI,sans-serif}a{color:#176856}.skip{position:absolute;left:-9999px}.skip:focus{left:15px;top:15px;background:white;padding:9px;z-index:4}.site-head{display:flex;align-items:center;justify-content:space-between;padding:18px max(18px,calc((100vw - 1160px)/2));background:#173c33;color:#fff;gap:18px;flex-wrap:wrap}.site-head a{color:#eff8f3;text-decoration:none}.brand{font-size:26px;font-weight:850;letter-spacing:1.4px}.brand span{color:#e5c483}.site-head nav{display:flex;gap:22px}.account{font-size:13px;color:#d1e9dc}.shell{max-width:1160px;margin:40px auto 60px;padding:0 20px}.eyebrow{color:#34715c;font-size:12px;font-weight:850;letter-spacing:3px}h1{font-size:clamp(36px,5vw,57px);line-height:1.1;margin:12px 0}h2{font-size:20px;margin:0 0 14px}.lead{max-width:790px;color:#566e61}.message{padding:12px 18px;border-radius:12px;background:#dceee4;color:#285342;max-width:900px}.message.error{background:#ffebdd;color:#8e422b}.layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px;align-items:start}.layout[hidden]{display:none}.formpanel,.avatar-card,.preview{background:white;border:1px solid #d4e2d8;box-shadow:0 7px 28px #1e483012;border-radius:18px;padding:26px}.formpanel>h2:not(:first-child){margin-top:30px;padding-top:20px;border-top:1px solid #d6e4da}.formpanel label{display:block;font-weight:700;margin-top:16px}.formpanel label small{display:block;font-size:12px;font-weight:400;color:#5d7066;margin:4px 0}.formpanel input[type=text],.formpanel textarea,.formpanel select{display:block;width:100%;font:inherit;padding:11px 12px;border:1px solid #a8bfb0;border-radius:9px;background:#fcfffd;color:#163c31}.formpanel input:focus,.formpanel textarea:focus,.formpanel select:focus{outline:3px solid #8dcbb38a}.privacy{display:grid;gap:12px;margin:17px 0 25px}.privacy label{display:flex;align-items:flex-start;gap:11px;margin:0;font-weight:550}.privacy input{width:19px;height:19px;accent-color:#26775b;flex:none}.hint{font-size:13px;color:#526b5d}button,.buttonlink{background:#276e54;color:white;padding:11px 17px;border:0;border-radius:9px;font:700 15px system-ui;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.5}.side{display:grid;gap:20px}.avatar-stage{height:365px;border-radius:14px;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#d2eae0,#86aea1);display:flex;align-items:center;justify-content:center;position:relative}.avatar-stage canvas{display:block;width:100%;height:100%}.avatar-fallback{font-size:13px;color:#315c4b;padding:20px;text-align:center}.avatar-stage canvas+.avatar-fallback{display:none}#avatarLabel{font-weight:650}.preview p{font-size:14px}footer{text-align:center;color:#789182;font-size:12px;padding:28px}@media(max-width:860px){.layout{grid-template-columns:1fr}.side{grid-template-columns:1fr 1fr}.avatar-stage{height:280px}}@media(max-width:600px){.side{grid-template-columns:1fr}.formpanel,.avatar-card,.preview{padding:18px}.site-head nav{gap:12px}}
/* WELOOMA v21: confirmation in the visible action area and accessible wardrobe. */
.save-feedback{margin:10px 0 0;font-weight:650;color:#1b704e;min-height:1.4em}.save-feedback.error{color:#9b3f31}
.after-save{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.language-order{display:grid;gap:6px;margin-bottom:14px}.language-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border:1px solid #d4e2d8;border-radius:9px;background:#f6faf7}.language-item strong{flex:1}.language-item button{padding:5px 11px}
.language-add{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.language-add label{flex:1;margin:0}.language-add select{margin-top:6px}.language-add button{margin-bottom:0}
.outfit-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.outfit-tile{padding:11px 8px;border:1px solid #adcabd;border-radius:11px;background:#f4faf5;color:#245542;cursor:grab;font-size:14px;text-align:center;font-weight:650}.outfit-tile[aria-pressed="true"]{background:#236b51;color:#fff}.outfit-tile:focus-visible{outline:3px solid #84baa6}.avatar-stage.drop-target{outline:4px solid #337b5d;outline-offset:-5px}
.wardrobe h3{font-size:17px;margin:18px 0 8px}.wardrobe label{display:block;font-weight:650}.wardrobe select{width:100%;padding:8px;border:1px solid #a8bfb0;border-radius:8px}

/* Direct link from website and 3D-chat to the working avatar editor. */
#avatar-editor:focus-visible{outline:3px solid #477b65;outline-offset:8px}
#avatar-editor{scroll-margin-block-start:28px}

/* V27 complete outfit pictogrammen, geen losse kledingstukken */
.outfit-tile{display:flex;flex-direction:column;align-items:center;gap:5px}.wf-outfit-icon{font-size:30px;line-height:1.3}

/* V28: modal editor with a large, live 3D preview and deliberate save. */
#wfAvatarDialog{border:0;border-radius:18px;padding:25px;width:min(1080px,calc(100vw - 28px));max-height:calc(100vh - 36px);overflow:auto;color:#193630;box-shadow:0 20px 95px #0008;background:#fff}
#wfAvatarDialog::backdrop{background:#0d211cbb}
.wf-avatar-dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid #d4e2d8;padding-bottom:14px}.wf-avatar-dialog-head p{margin:0 0 9px;color:#526b5d}
.wf-avatar-dialog-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:24px;margin:17px 0}
.wf-avatar-preview-slot .avatar-stage{height:min(66vh,650px);min-height:380px}
.wf-avatar-controls{overflow:auto;max-height:65vh;padding:0 6px}
.wf-avatar-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;border-top:1px solid #d4e2d8;padding-top:14px}
#wfAvatarDialogStatus{margin-right:auto;font-size:13px;color:#235b45}
#wfAvatarCancel,#wfAvatarClose{background:#e5eee9;color:#224e3c}
#openAvatarEditor{margin-bottom:10px}
#wfAvatarDialog .outfit-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
#wfAvatarDialog .wardrobe select{width:100%;padding:10px;margin:6px 0 12px}
@media(max-width:700px){.wf-avatar-dialog-grid{grid-template-columns:1fr}.wf-avatar-preview-slot .avatar-stage{height:42vh;min-height:260px}.wf-avatar-controls{max-height:unset}}

/* V28B: preserve narrow avatar-card layout after modal stage returns. */
.layout{grid-template-columns:minmax(0,1fr) 350px}
.side,.avatar-card,.avatar-stage{min-width:0;max-width:100%}
.avatar-card{width:100%;overflow:hidden}
.avatar-card .avatar-stage{width:100%;height:365px}
.avatar-card canvas{max-width:100%}
@media(max-width:860px){.layout{grid-template-columns:minmax(0,1fr)}.side{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-card .avatar-stage{height:280px}}
@media(max-width:600px){.side{grid-template-columns:minmax(0,1fr)}}
