/* Add-on components inherit the approved v1 theme. */
.ghost-settings{margin-top:16px;padding:16px;background:var(--surface);border:1px solid var(--outlineVariant);border-radius:12px}
.ghost-settings .switch{padding:0}
.ghost-settings p{margin:12px 0 0}
.ghost-chip{display:inline-flex;align-items:center;gap:8px;background:var(--surfaceVariant);color:var(--onSurface);border-radius:24px;padding:4px 12px;font-size:.875rem}
#onboarding a{display:inline-block;min-height:48px;min-width:48px;padding:12px 0;color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.public-share .topbar,.public-share nav,.public-share aside{display:none}
.public-share .workspace{display:block;max-width:600px;padding:24px}
.public-share .phone{height:auto;min-height:0;display:block;background:var(--surface)}
.public-share main{padding:32px 24px;overflow:visible}
.public-share .snackbar{display:none}
.share-web h1{font-size:1.375rem;line-height:2rem}
.share-web .brand{white-space:normal}
.crop-frame{width:min(100%,320px);aspect-ratio:4/5;margin:16px auto 24px;background:var(--scrim);outline:2px solid var(--outline);box-shadow:0 0 0 12px rgb(0 0 0 / .32);touch-action:none}
.crop-frame canvas{width:100%;height:100%;display:block;touch-action:none}
.cropping nav,.cropping .topbar{display:none}
.cropping .phone{grid-template-rows:minmax(0,1fr)}
.topbar{flex-wrap:wrap}
.topbar .brand{white-space:normal;flex:1 1 120px;overflow-wrap:anywhere}
.topbar .btn.icon,.topbar .who{flex-shrink:0}
.segmented button{white-space:normal;padding:8px;overflow-wrap:anywhere}
.slot-preview{display:block;max-width:100%;width:200px;height:auto;aspect-ratio:4/5;object-fit:contain;margin:0 auto 16px;border-radius:8px}
.onboarding nav,.onboarding .who,.onboarding .topbar [data-action="nav:settings"]{display:none}
.cropping .row{display:flex;flex-wrap:wrap}.cropping .row .btn{flex:1 1 8rem;overflow-wrap:normal}
main[data-route="home"] .usage-compact + .stack + .candidate{margin-top:var(--s4)}
main[data-route^="own/"] .row > .btn,main[data-route="my-profiles"] .row > .btn,main[data-route^="edit/"] .row > .btn{flex:1 1 10rem;overflow-wrap:normal}
main[data-route="search"] .row > .btn{flex:1 1 10rem;overflow-wrap:normal} main[data-route="interests"] .segmented,main[data-route^="request/"] .segmented{grid-template-columns:repeat(auto-fit,minmax(min(100%, 7.5rem),1fr))} main[data-route="interests"] .segmented button,main[data-route^="request/"] .segmented button{overflow-wrap:normal}

.global-block .topbar,.global-block nav{display:none}
.global-block .phone{grid-template-rows:minmax(0,1fr)}
.splash-mark{background:transparent;border-radius:0}.splash-mark img{display:block;width:100%;height:100%;object-fit:contain}

.global-block main{display:flex}.global-message{width:100%;margin:auto;text-align:center}.global-message .state-icon{margin:0 auto var(--s4)}.global-message .btn{width:100%;margin-top:var(--s4)}

/* Approved token card A: photo, details and actions share one growing grid cell. */
.compact-candidate .candidate-media{display:grid;isolation:isolate;aspect-ratio:auto}
.compact-candidate .candidate-media .portrait{grid-area:1/1;aspect-ratio:4/5;height:100%;min-height:0}
.compact-candidate .candidate-overlay{grid-area:1/1;position:relative;inset:auto;align-self:end;z-index:1;padding:64px 16px 16px;background:linear-gradient(transparent,rgba(20,14,12,.94) 30%);overflow-wrap:anywhere}
.compact-candidate .candidate-overlay h2{font-size:1.125rem;line-height:1.5}
.compact-candidate .candidate-overlay p{display:block;font-size:.875rem;line-height:1.5}
.compact-candidate .candidate-id{z-index:2}
.compact-candidate .save-heart{position:absolute;top:8px;right:8px;z-index:2;background:var(--surface);color:var(--primary);border-radius:50%;width:48px;height:48px}
.compact-candidate .card-overlay-actions{display:grid;gap:8px;margin-top:12px;align-items:center}
.compact-candidate .profile-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.compact-candidate .interest-actions{grid-template-columns:minmax(0,1fr) auto}
.compact-candidate .card-overlay-actions>.btn{width:100%;min-width:0;min-height:48px;padding:10px 12px;font-size:.875rem;line-height:1.5;white-space:normal;overflow-wrap:normal}
.compact-candidate .card-overlay-actions>.btn:not(.primary){color:#fff;border-color:rgba(255,255,255,.8);background:transparent}
.compact-candidate .interest-decisions{display:flex;gap:8px}
.compact-candidate .interest-decisions .btn{width:48px;height:48px;min-width:48px;padding:0;background:var(--surface);border:1px solid var(--outlineVariant);border-radius:12px}
.compact-candidate .accept-icon{color:var(--success)}
.compact-candidate .reject-icon{color:var(--error)}
.compact-candidate .request-status{font-size:.875rem;line-height:1.5;overflow-wrap:anywhere}
.interest-date{display:flex;align-items:center;gap:12px;margin:16px 0;font-size:.875rem;font-weight:500;color:var(--onSurfaceVariant);font-variant-numeric:tabular-nums}
.interest-date::before,.interest-date::after{content:'';flex:1;border-top:1px solid var(--outlineVariant)}
