.photo-menu-container{position:relative}.placeholder-action-btn{border:1px solid var(--color-border);background:var(--color-background);width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.placeholder-action-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-background);transform:scale(1.1)}.placeholder-action-btn:disabled{cursor:not-allowed;opacity:.5}.placeholder-action-btn.loading{background:var(--color-accent-muted);border-color:var(--color-accent-border);cursor:wait}.photo-menu{background:var(--color-background);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);z-index:101;border-radius:8px;min-width:160px;animation:.2s ease-out photo-menu-slide-in-up;position:absolute;bottom:calc(100% + 8px);left:50%;overflow:hidden;transform:translate(-50%)}.portal-photo-menu{z-index:3100!important;background:var(--color-background,#fff)!important;border:1px solid var(--color-border,#e2e8f0)!important;box-shadow:var(--shadow-lg,0 8px 24px #0000001f)!important;border-radius:8px!important;min-width:160px!important;animation:none!important;position:fixed!important;overflow:visible!important}@keyframes photo-menu-slide-in-up{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.photo-menu-item{width:100%;color:var(--color-text-primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;transition:background .15s;display:flex}.photo-menu-item:hover{background:var(--color-accent-muted)}.photo-menu-item svg{color:var(--color-text-secondary);flex-shrink:0;width:20px}.photo-badge{color:#fff;pointer-events:none;white-space:nowrap;background:#0009;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.photo-badge.photo-badge-overlay{z-index:2;position:absolute;bottom:6px;left:6px}.photo-badge-tap{z-index:3;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;bottom:6px;left:6px}.photo-badge-tap:disabled{cursor:default}.photo-badge-pill{color:#fff;pointer-events:none;white-space:nowrap;background:#000000a6;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.photo-badge-pill .photo-badge{background:0 0;padding:0}.photo-badge-edit{color:#fff9;flex-shrink:0}.photo-badge-tap:hover:not(:disabled) .photo-badge-pill{background:#000000d9}.photo-badge-tap:hover:not(:disabled) .photo-badge-edit{color:#fff}@media (width>=769px){.photo-badge{border-radius:6px;padding:4px 9px;font-size:13px}.photo-badge.photo-badge-overlay,.photo-badge-tap{bottom:8px;left:8px}.photo-badge-pill{border-radius:6px;padding:4px 9px;font-size:13px}}.gp-modal .gp-modal-body{padding:20px}.gp-step-content{text-align:center;flex-direction:column;align-items:center;gap:16px;min-height:150px;display:flex}.gp-step-content p{color:var(--text-secondary,var(--color-text-secondary,#666));margin:0}.gp-spinner{color:var(--primary-color,var(--color-accent,#4a90d9));animation:1s linear infinite gp-spin}.gp-spinner-small{width:16px;height:16px}@keyframes gp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gp-error,.gp-error-icon{color:var(--error-color,var(--color-danger,#d32f2f))}.gp-error-state{padding:20px 0}.gp-actions{gap:12px;margin-top:8px;display:flex}.gp-btn{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.gp-btn-primary{background:var(--primary-color,var(--color-accent,#4a90d9));color:#fff;border:none}.gp-btn-primary:hover{background:var(--primary-hover,var(--color-accent-hover,#3a7bc8))}.gp-btn-secondary{color:var(--text-secondary,var(--color-text-secondary,#666));border:1px solid var(--border-color,var(--color-border,#e0e0e0));background:0 0}.gp-btn-secondary:hover{background:var(--hover-bg,var(--color-surface-hover,#f0f0f0))}.gp-picking{gap:20px}.gp-polling-status{color:var(--text-secondary,var(--color-text-secondary,#666));align-items:center;gap:8px;font-size:14px;display:flex}.gp-selecting{width:100%}.gp-selecting p{margin-bottom:8px}.gp-media-grid{grid-template-columns:repeat(auto-fit,minmax(100px,120px));justify-content:center;gap:12px;width:100%;max-height:400px;padding:4px;display:grid;overflow-y:auto}.gp-media-thumb{aspect-ratio:1;cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;padding:0;transition:border-color .2s;overflow:hidden}.gp-media-thumb:hover{border-color:var(--primary-color,var(--color-accent,#4a90d9))}.gp-media-thumb.gp-selected{border-color:var(--primary-color,var(--color-accent,#4a90d9));box-shadow:0 0 0 2px var(--primary-light,var(--color-accent-border,#4a90d94d))}.gp-media-thumb img{object-fit:cover;width:100%;height:100%}.gp-settings-link{color:var(--primary-color,var(--color-accent,#4a90d9));margin-top:12px;font-size:.85rem;text-decoration:none}.gp-settings-link:hover{text-decoration:underline}
