.artist-image-manager,.artist-image-confirm { box-sizing:border-box; width:min(880px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); overflow:auto; padding:32px; border:0; border-radius:28px; background:#faf9f6; color:#19181f; font-family:inherit; }
.artist-image-manager::backdrop,.artist-image-confirm::backdrop { background:rgba(0,0,0,.65); backdrop-filter:blur(5px); }
.artist-image-manager header { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.artist-image-manager header>div>span { color:#6c50df; font-size:14px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.artist-image-manager h2,.artist-image-confirm h2 { margin:8px 0 0; font-size:clamp(28px,4vw,44px); line-height:1.1; letter-spacing:-.035em; }
.artist-image-manager button,.artist-image-confirm button { font:inherit; cursor:pointer; }
.artist-image-manager header>button { width:48px; height:48px; flex-shrink:0; border:1px solid #27242f; border-radius:50%; font-size:32px; background:#fff; color:#19181f; }
.artist-image-manager .aim-artist-name { margin:10px 0 0; font-size:16px; color:#625d6c; overflow-wrap:anywhere; }
.aim-intro { color:#625d6c; font-size:18px; line-height:1.5; margin:22px 0 26px; }
.aim-slots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.aim-slots>button { position:relative; display:flex; align-items:center; text-align:left; gap:14px; min-width:0; padding:16px; background:#fff; border:2px solid #dfdae7; border-radius:20px; color:#19181f; }
.aim-slots>button[aria-pressed="true"] { border-color:#7050e5; box-shadow:0 0 0 4px #e9e5f3; }
.aim-slot-image { width:88px; height:88px; display:grid; place-items:center; flex-shrink:0; border-radius:50%; overflow:hidden; background:#1e1b24; color:#fff; font-size:38px; }
.aim-slot-image img,.aim-slot-image canvas { width:100%; height:100%; object-fit:cover; }
.aim-slot-image canvas { display:block; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
.aim-slots strong { font-size:18px; display:block; }
.aim-slots small { color:#746c80; font-size:14px; display:block; margin-top:5px; }
.aim-current { position:absolute; right:10px; top:10px; border-radius:30px; padding:6px 9px; background:#e3ff78; font-size:10px; text-transform:uppercase; font-weight:700; }
.aim-status { min-height:24px; color:#50496a; font-size:15px; line-height:1.5; margin:20px 0; }
.aim-status.is-error { color:#a1263a; }
.aim-upload { margin-top:24px; font-size:15px; }
.aim-upload p { color:#625d6c; }
.aim-upload label { display:flex; align-items:flex-start; gap:10px; margin:12px 0; }
.aim-upload input { width:18px; height:18px; margin:2px 0 0; flex-shrink:0; accent-color:#7050e5; }
.artist-image-manager footer { display:flex; gap:12px; flex-wrap:wrap; padding-top:22px; border-top:1px solid #ddd8e3; }
.artist-image-manager footer>button,.artist-image-confirm button { padding:14px 20px; min-height:48px; border:1px solid #29252e; border-radius:15px; color:#19181f; background:white; font-weight:650; }
.artist-image-manager [data-generate],.artist-image-manager [data-save],.artist-image-confirm [data-yes] { background:#6e50db; color:#fff; border-color:#6e50db; }
.artist-image-manager footer small { width:100%; color:#706979; font-size:14px; line-height:1.5; }
.artist-image-manager [hidden] { display:none !important; }
.artist-image-manager button:disabled { cursor:wait; opacity:.55; }
.artist-image-manager button:focus-visible,.artist-image-manager input:focus-visible,.artist-image-manager select:focus-visible,.artist-image-confirm button:focus-visible { outline:3px solid #8860ed; outline-offset:3px; }
.aim-tier { margin:16px 0 24px; }
.aim-tier label { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:700; }
.aim-tier select { width:100%; max-width:420px; box-sizing:border-box; padding:12px; font:inherit; font-size:16px; border:1px solid #aaa3b8; background:#fff; color:#19181f; border-radius:8px; }
.aim-tier small { display:block; color:#706979; margin-top:9px; }
.artist-image-confirm { width:min(480px,calc(100vw - 32px)); }
.artist-image-confirm h2 { font-size:28px; }
.artist-image-confirm p { color:#625d6c; font-size:16px; line-height:1.5; }
.artist-image-confirm>div { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
@media(max-width:600px) { .artist-image-manager { padding:22px; border-radius:20px; } .aim-intro { font-size:16px; } .aim-slots { grid-template-columns:1fr; } .aim-slot-image { width:76px; height:76px; } .artist-image-manager footer>button { flex:1 1 auto; } }
