/* The scene owns seat positions; this layer gives each seat an independent image. */
.council-seat.occupied .seat-avatar,
.council-seat .seat-avatar.has-portrait{position:relative;width:clamp(68px,8.5vw,120px);height:clamp(88px,12.5vh,162px);overflow:visible;border:0;border-radius:0;background:none;box-shadow:none;isolation:isolate}
.seat-avatar img,.seat-portrait-image{position:absolute;inset:0;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 9px #000b);z-index:1;transition:filter .25s ease,opacity .25s ease}
.seat-avatar .portrait-fallback{position:absolute;inset:10% 14%;display:flex;align-items:center;justify-content:center;border:1px solid #8ca4a348;border-radius:40% 40% 20% 20%;background:linear-gradient(#203843,#0a1b25);font:inherit;font-size:22px}
.portrait-loaded>.portrait-fallback{visibility:hidden}
.portrait-unavailable img[hidden]{display:none}
.council-seat.occupied .seat-avatar::after{content:"";position:absolute;inset:auto 9% -4px;height:10px;border-radius:50%;background:#0c0a06;box-shadow:0 4px 13px #000a;z-index:-1}
.council-seat.selected .seat-avatar img{filter:drop-shadow(0 0 9px #e4c27f80) drop-shadow(0 7px 12px #000b)}
.council-seat.selected .seat-label{border-color:#e2c48b;background:#231f15;color:#ffe1a3}
.council-seat[data-tier="collaborator"] .seat-label{border-color:#65a7b078;color:#a2d0d4}
.council-seat[data-state="pending"] .seat-label{border-style:dashed}
.council-seat[data-active="true"] .seat-label::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#7ad7ac;margin-right:5px;box-shadow:0 0 7px #7ad7ac}
.council-seat.is-entering .seat-avatar{animation:portrait-enter .6s both;animation-delay:var(--entry-delay,0ms)}
.seat-image-label{font-size:8px;line-height:1.3;color:#96a5a8;letter-spacing:0;margin-top:4px}
.mind-portrait.has-portrait:before,.mind-portrait.has-portrait:after{display:none}
.mind-portrait.has-portrait{background:radial-gradient(ellipse at 50% 20%,#1a4d62,#061721 75%);padding:8px 8px 24px}
.mind-portrait.has-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom;position:relative;z-index:1}
.mind-portrait.has-portrait .portrait-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.mind-portrait.has-portrait .portrait-caption{letter-spacing:0;font-size:9px;color:#bac8c5;left:9px;bottom:7px}
.person-portrait-manager{margin:0 0 24px;border:1px solid #b99b603e;border-radius:14px;padding:18px;background:linear-gradient(130deg,#172c3580,#091922);color:#d5e0dd}
.portrait-manager-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}
.portrait-manager-heading h3{margin:5px 0 0;font-size:18px;font-weight:500;color:#ebd29b}
.portrait-origin{font-size:10px;padding:5px 8px;border:1px solid #d6b77544;border-radius:20px;color:#d4bb83;white-space:nowrap}
.portrait-origin.is-uploaded{color:#a6c5c9;border-color:#9fbac544}
.portrait-manager-grid{display:grid;grid-template-columns:minmax(140px,.72fr) minmax(0,1.28fr);gap:22px;align-items:start}
.council-app .portrait-manager-preview{position:relative;display:block;width:100%;height:270px;padding:10px 10px 32px;border:1px solid #b9a16b3d;background:radial-gradient(ellipse at 50% 20%,#204958,#071820 75%);border-radius:10px;overflow:hidden}
.portrait-manager-preview img{height:100%;width:100%;object-fit:contain;object-position:center;position:relative;z-index:1}
.portrait-manager-preview .portrait-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:42px;color:#d9cbac}
.portrait-expand{position:absolute;bottom:0;left:0;right:0;background:#06141deb;font-size:11px;letter-spacing:.4px;color:#b5c5c8;padding:8px;text-align:center;z-index:2}
.portrait-manager-note{font-size:12px;color:#9bb0b6;margin:0 0 13px;line-height:1.7}
.portrait-upload-form{margin:0}
.portrait-file-label{position:relative;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ccb17670;border-radius:8px;color:#e0c68f;background:#d6b7750c;padding:9px 13px;font-size:12px;cursor:pointer;margin:0;overflow:hidden}
.portrait-file-label:focus-within{outline:2px solid #ebcf90;outline-offset:3px}
.portrait-file-label input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.portrait-filename{display:block;overflow-wrap:anywhere;margin:8px 0 12px;color:#7f99a4;font-size:10px;line-height:1.5}
.portrait-upload-actions,.portrait-manager-actions{display:flex;gap:8px;flex-wrap:wrap}
.council-app .portrait-manager-controls button{padding:8px 11px;font-size:11px;border-radius:8px}
.council-app .portrait-upload-actions button[type="submit"]{background:#d6b775;color:#13232a;border-color:#f3d795}
.council-app .portrait-manager-actions button{background:transparent;border:0;padding:7px 0;color:#9fb5bb;text-decoration:underline;text-underline-offset:3px}
.portrait-manager-actions{margin-top:8px}
.portrait-tier-form{display:flex;gap:9px;align-items:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid #9aafb623}
.portrait-tier-form label{font-size:11px;color:#9eb1b6;margin:0;flex:1;min-width:0}
.portrait-presentation-fields{flex:1;min-width:0}
.portrait-generation{margin-top:12px;border-top:1px solid #9aafb623;padding-top:12px}
.portrait-generation small{display:block;font-size:10px;line-height:1.6;margin-top:8px}
.portrait-generation-unavailable{font-size:10px;line-height:1.6;margin:12px 0 0;color:#91a4ab}
.portrait-reference-option{display:flex;align-items:flex-start;gap:7px;font-size:10px;line-height:1.6;color:#b5c4c7}
.portrait-reference-option input{flex:none;width:14px;height:14px;margin:2px 0 0;accent-color:#d6b775}
.portrait-focus{font-size:10px;margin:10px 0 0;color:#9eb1b6}
.portrait-focus label{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:10px}
.portrait-focus input{width:100%;height:16px;padding:0;accent-color:#d6b775;min-width:0}
.portrait-focus small{display:block;margin-top:7px;font-size:9px}
.portrait-tier-form select{display:block;width:100%;padding:9px;margin-top:6px;font-size:11px}
.portrait-tier-form button{flex:none}
.portrait-manager-status{font-size:11px;line-height:1.7;color:#d8c396;min-height:0;margin:10px 0 0;overflow-wrap:anywhere}
.portrait-manager-status:empty{display:none}
.portrait-identity-note{border-top:1px solid #9aafb61f;margin:15px 0 0;padding-top:11px;font-size:10px;line-height:1.6;color:#8299a3}
.council-app dialog.portrait-viewer{width:min(700px,95vw);max-height:93dvh;height:min(830px,90dvh);padding:0;overflow:hidden;display:flex;flex-direction:column;background:#07131a;box-shadow:0 25px 100px #000d}
.council-app dialog.portrait-viewer:not([open]){display:none}
.portrait-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 20px;flex:none;border-bottom:1px solid #b99b6033}
.portrait-viewer-head strong{font-size:17px;font-weight:500;color:#ead29d}
.portrait-viewer-head small{display:block;margin-top:5px;font-size:11px;color:#9aacb3}
.council-app .portrait-viewer-head button{height:34px;width:34px;padding:0;font-size:27px;border:0;border-radius:50%;background:#1c333f;color:#d5e0e0}
.portrait-viewer-canvas{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;position:relative;padding:20px;background:radial-gradient(ellipse at 50% 25%,#1c3c4b,#07131a 70%)}
.portrait-viewer-canvas img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.portrait-viewer-canvas .portrait-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:60px;color:#849da7}
@keyframes portrait-enter{from{opacity:0;translate:0 12px;filter:blur(3px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@media(min-width:1600px){.council-seat.occupied .seat-avatar,.council-seat .seat-avatar.has-portrait{width:136px;height:min(170px,15vh)}}
@media(max-width:1000px){.council-seat.occupied .seat-avatar,.council-seat .seat-avatar.has-portrait{width:70px;height:95px}}
@media(max-width:650px){.council-seat.occupied .seat-avatar,.council-seat .seat-avatar.has-portrait{width:51px;height:62px}.council-seat{min-width:44px;min-height:44px}.council-seat .seat-label{max-width:72px;padding:4px 6px}.seat-image-label{display:none}.mind-portrait.has-portrait{padding:3px}.portrait-manager-grid{grid-template-columns:110px minmax(0,1fr);gap:12px}.council-app .portrait-manager-preview{height:178px;padding:6px 6px 30px}.person-portrait-manager{padding:13px}.portrait-manager-heading h3{font-size:16px}.portrait-origin{font-size:9px}.portrait-manager-note{font-size:10px;margin-bottom:10px}.portrait-file-label{font-size:11px;padding:8px 11px}.portrait-tier-form{display:block}.portrait-tier-form button{margin-top:8px}.portrait-filename{font-size:9px}.council-app .portrait-manager-controls button{font-size:10px}.portrait-expand{font-size:9px;padding:8px 2px}.portrait-manager-heading{gap:6px}.portrait-viewer-canvas{padding:12px}}
@media(max-height:700px) and (max-width:650px){.council-seat.occupied .seat-avatar,.council-seat .seat-avatar.has-portrait{width:42px;height:49px}.stage-caption p{display:none}}
@media(max-width:360px){.portrait-manager-grid{grid-template-columns:1fr}.council-app .portrait-manager-preview{height:190px}.portrait-tier-form{display:flex}.portrait-tier-form button{margin-top:0}.council-nav button{padding:7px 3px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.council-seat.is-entering .seat-avatar{animation:none}.seat-avatar img,.seat-portrait-image{transition:none}}
