.resident-sanitary-dialog .prep-header h2{margin:4px 0;font-size:1.25rem}
.resident-sanitary-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;flex:1;min-height:0;overflow:hidden}
.resident-sanitary-stage{display:flex;flex-direction:column;min-width:0;min-height:0;background:#e6ecec}
.resident-sanitary-stage .prep-canvas{position:relative;flex:1;min-height:260px}
.resident-sanitary-viewport{position:relative;display:flex;flex:1;min-height:260px}
.resident-sanitary-viewport>.prep-canvas{position:absolute;inset:0}
.resident-model-loading{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:#e6ecec;color:var(--muted)}.resident-model-loading[hidden]{display:none!important}.resident-model-loading .model-loading-spinner{width:38px;height:38px}.resident-model-loading .model-loading-percentage{font-size:1.1rem}
.resident-sanitary-viewport .room-dimension-legend{top:auto;bottom:12px;left:14px}
.resident-viewer-actions{position:absolute;top:14px;left:14px;display:flex;gap:8px;z-index:6}
.resident-sanitary-dialog .resident-viewer-actions button{width:44px;height:44px;padding:10px;border-radius:12px;background:#ffffffed;border-color:#c6d9d6;box-shadow:0 3px 12px #24494612;color:#21675c}
.resident-viewer-actions button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 16px #24494620}
.resident-view-cube{position:absolute;top:10px;right:12px;width:132px;height:144px;z-index:6}
.resident-cube-scene{height:100px;perspective:300px;perspective-origin:50% 50%}
.resident-cube-model{position:absolute;width:56px;height:56px;top:22px;left:38px;transform-style:preserve-3d;transform:rotateX(-30deg) rotateY(-40deg)}
.resident-sanitary-dialog .resident-cube-face{position:absolute;inset:0;width:56px;height:56px;min-height:0;padding:0;border:1px solid #96b5b1;border-radius:3px;background:linear-gradient(140deg,#fff,#e7f0ee);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;backface-visibility:hidden;box-shadow:inset 0 0 0 2px #ffffff80;color:#315c57}
.resident-cube-face[data-view=front]{transform:translateZ(28px)}
.resident-cube-face[data-view=back]{transform:rotateY(180deg) translateZ(28px)}
.resident-cube-face[data-view=right]{transform:rotateY(90deg) translateZ(28px)}
.resident-cube-face[data-view=left]{transform:rotateY(-90deg) translateZ(28px)}
.resident-cube-face[data-view=top]{transform:rotateX(90deg) translateZ(28px)}
.resident-cube-face[data-view=isometric]{transform:rotateX(-90deg) translateZ(28px)}
.resident-sanitary-dialog .resident-cube-face[aria-pressed=true]{background:linear-gradient(140deg,#ecfaf6,#bcded4);border-color:#5a9d8c;color:#185b4c}
.resident-sanitary-dialog .resident-cube-face:hover:not(:disabled){background:#d9eee6;border-color:#317b69}
.resident-cube-arrows{display:flex;justify-content:space-between}
.resident-sanitary-dialog .resident-cube-arrows button,.resident-sanitary-dialog .resident-view-cube>button{width:40px;height:40px;min-height:40px;padding:8px;border-radius:50%;background:#ffffffed;border-color:#c6d9d6;box-shadow:0 3px 10px #24494612;color:#21675c}
.resident-sanitary-dialog .resident-view-cube>button{position:absolute;bottom:4px;left:46px;font-size:11px;font-weight:700;z-index:1}
.resident-view-cube>button svg{display:none}
.resident-cube-previous svg{transform:rotate(180deg)}
.resident-sanitary-stage .prep-viewbar{padding:10px 16px;flex-wrap:wrap}
.resident-history-actions{display:flex;gap:8px;flex-wrap:wrap}
.resident-history-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.8rem}
.resident-history-actions svg{width:18px;height:18px;flex:none}
.resident-sanitary-stage .prep-viewbar label{display:flex;align-items:center;gap:10px}
.resident-sanitary-stage .prep-viewbar select{min-height:40px}
.resident-sanitary-help{padding:8px 16px;margin:0}
.resident-sanitary-inspector{padding:18px;overflow-y:auto;border-left:1px solid #d4e0e7}
.resident-sanitary-inspector h3{font-size:1rem;margin:0 0 14px}
.resident-sanitary-inspector h4{font-size:1rem;margin:18px 0 6px}
.resident-editor-tabs{display:flex;gap:8px;margin-bottom:18px}
.resident-editor-tabs button{flex:1;border-radius:10px}
.resident-editor-tabs button[aria-pressed=true]{color:#fff;background:#21675c;border-color:#21675c}
.resident-sanitary-inspector [hidden]{display:none!important}
.resident-sanitary-slider{display:block;margin:22px 0}
.resident-sanitary-slider>span{display:flex;justify-content:space-between;gap:8px;font-size:.85rem}
.resident-sanitary-slider input[type=range]{display:block;width:100%;min-height:44px;padding:0;margin:0;accent-color:#21675c;cursor:pointer}
.resident-slider-control{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;margin-top:6px}
.resident-sanitary-dialog .resident-slider-control button{min-height:44px;width:44px;height:44px;padding:0;border-radius:10px;background:#f3f8f6;border-color:#ccddd7;color:#21675c;font-size:22px;line-height:1}
.resident-total-height{margin:22px 0;font-size:.85rem}
.resident-total-height>label{display:block;margin-bottom:8px}
.resident-total-height>div{display:flex;align-items:center;gap:10px}
.resident-total-height input{width:100%;min-width:0;min-height:44px;margin:0;font-variant-numeric:tabular-nums}
.resident-total-height span{color:#4f736b;flex:none}
.resident-slider-direction{display:block;margin-top:7px;color:#4f736b;font-size:.74rem}
.resident-sanitary-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.resident-sanitary-dialog .prep-footer{display:flex;gap:16px;align-items:center}
.resident-sanitary-dialog .prep-footer p{margin:0;flex:1;font-size:.8rem}
.resident-sanitary-dialog button,.resident-sanitary-dialog select{min-height:44px}
.resident-sanitary-library{position:absolute;inset:70px 20px 80px 20px;z-index:20;background:white;border:1px solid #bfd0dc;border-radius:12px;box-shadow:0 16px 50px #163b4730;display:flex;flex-direction:column;padding:20px;overflow:hidden}
.resident-sanitary-library[hidden]{display:none}
.resident-sanitary-library header,.resident-sanitary-library footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex:none}
.resident-sanitary-library h3{margin:0;font-size:1.1rem}
.resident-sanitary-library form{display:flex;align-items:end;gap:12px;margin-top:20px}
.resident-sanitary-library form label{flex:1;font-size:.85rem}
.resident-sanitary-library form input{width:100%;display:block;margin-top:6px;min-height:44px}
.resident-sanitary-library [data-resident=results]{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;align-content:start;padding:4px}
.resident-sanitary-article{border:1px solid #d4e0e7;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px;overflow-wrap:anywhere}
.resident-sanitary-image{display:flex;position:relative;align-items:center;justify-content:center;flex:none;width:100%;height:156px;overflow:hidden;border-radius:6px;background:#f3f7f7;color:#667b89;font-size:.8rem;text-align:center}
.resident-sanitary-image>img{display:block;width:100%;height:100%;object-fit:contain;padding:8px;box-sizing:border-box}
.resident-sanitary-image .tile-image-loading{width:65%;height:65%;border-radius:6px;background:#e6ecec}
.resident-sanitary-image .tile-image-retry{margin:0;width:100%;height:100%;border:0;background:transparent;color:#667b89;font-size:.8rem}
.resident-sanitary-article p{margin:0;color:#667b89;font-size:.8rem}
.resident-sanitary-article button{margin-top:auto}
.resident-recent-tiles{grid-column:1 / -1;min-width:0;padding-bottom:16px;border-bottom:1px solid #d4e0e7}
.resident-recent-tiles h4{margin:0 0 6px;font-size:1rem}
.resident-recent-tiles>.prep-note{margin:0 0 12px}
.resident-recent-tile-cards{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity}
.resident-recent-tile-cards>.resident-sanitary-article{flex:0 0 200px;scroll-snap-align:start}
.prep-dialog .resident-recent-tile-cards .resident-sanitary-image{height:100px}
.resident-sanitary-library footer{padding-top:14px;font-size:.8rem}
/* Share the picker surface with the preparation editor; residents only search. */
.prep-dialog .resident-sanitary-library>form{grid-template-columns:minmax(0,1fr) auto auto;margin-top:0}
.prep-dialog .resident-sanitary-library>header p{margin:0;font-size:.8rem;color:#577176}
.prep-dialog .resident-sanitary-library [data-resident=library-close]{width:40px;height:40px;min-height:40px;border-radius:50%;flex:none;font-size:1.2rem}
.prep-dialog .resident-sanitary-library [data-resident=library-status]{display:flex;align-items:center;gap:8px;font-size:.8rem;margin:0 0 14px;color:#456269;flex:none}
.prep-dialog .resident-sanitary-library [data-resident=library-status].is-error{color:#a33232}
.prep-dialog .resident-sanitary-library [data-resident=library-status].is-loading::before{content:"";width:14px;height:14px;border:2px solid #c4ddda;border-top-color:var(--prep-accent);border-radius:50%;animation:prep-library-spin .8s linear infinite;flex:none}
.prep-dialog .resident-sanitary-library [data-resident=results]{gap:16px;align-items:stretch;overscroll-behavior:contain;padding:2px 3px 8px}
.prep-dialog .resident-sanitary-article{gap:0;background:#fff}
.prep-dialog .resident-sanitary-article>strong{font-size:.9rem;margin-bottom:4px;line-height:1.45}
.prep-dialog .resident-sanitary-article .resident-sanitary-image{margin-bottom:14px;background:#edf2f0;border-radius:8px}
.prep-dialog .resident-sanitary-article>button{min-height:40px;font-size:.8rem}
.prep-dialog .resident-sanitary-library [data-resident=library-status] .model-loading-spinner{flex:none}
@media(prefers-reduced-motion:reduce){.prep-dialog .resident-sanitary-library [data-resident=library-status].is-loading::before{animation:none}}
@media(max-width:700px){
  .resident-history-actions{width:100%}
  .resident-history-actions button{flex:1}
  .resident-sanitary-workspace{display:flex;flex-direction:column;overflow-y:auto}
  .resident-sanitary-stage{min-height:320px;flex:none}
  .resident-sanitary-stage .prep-canvas{height:270px;flex:none}
  .resident-sanitary-viewport{height:270px;flex:none}
  .resident-viewer-actions{top:10px;left:10px;gap:6px}
  .resident-view-cube{top:2px;right:4px}
  .resident-sanitary-inspector{flex:none;overflow:visible;border-left:0;border-top:1px solid #d4e0e7}
  .resident-total-height input{font-size:16px}
  .resident-sanitary-dialog .prep-footer{flex-wrap:wrap;padding:12px}
  .resident-sanitary-dialog .prep-footer p{flex-basis:100%;max-width:none}
  .resident-sanitary-dialog .prep-footer button{width:100%}
  .resident-sanitary-library{inset:8px;padding:16px}
  .resident-sanitary-library [data-resident=results]{grid-template-columns:1fr}
  .prep-dialog .resident-sanitary-library>form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prep-dialog .resident-sanitary-library>form label{grid-column:1 / -1}
  .prep-dialog .resident-sanitary-library>header h3{font-size:1.2rem}
  .prep-dialog .resident-sanitary-library>header p{font-size:.73rem;line-height:1.4}
  .prep-dialog .resident-sanitary-library [data-resident=library-status]{font-size:.73rem}
}
