.app, .boot, .auth, .link {
    background: radial-gradient(ellipse at top left, #fff1d9, transparent 60%),
        linear-gradient(160deg, #fff5f2, var(--paper) 60%, #f3e4fa);
}
.brand-icon {
    display: block;
    width: 88px;
    height: 88px;
    margin-bottom: 22px;
    border-radius: 24px;
    box-shadow: 0 10px 26px rgba(155, 23, 111, .2);
}
.auth-wrap::before { color: rgba(185, 28, 97, .07); }
.auth h1, .link h1, .boot h1 { color: var(--rose-deep); }
.tabs { background: rgba(185, 28, 97, .07); }
.tab.is-on { color: var(--rose-deep); }
.btn, .send.is-ready, .avatar, .sheet-card button.self-avatar,
.album-create button, .couple-space .space-primary, .space-editor .space-primary,
.space-tabs button[aria-pressed="true"], .life-tabs button[aria-pressed="true"],
.space-calendar button[aria-pressed="true"] {
    background: var(--romance);
    color: #fffaf7;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 5px 14px rgba(151, 25, 106, .16);
}
.btn:hover, .send.is-ready:hover { background: linear-gradient(135deg, #a71953, #761b83); }
.chat:not(.is-mood) {
    background: radial-gradient(ellipse at top right, #f9dded, transparent 65%),
        linear-gradient(170deg, #fff4ef, #fff1f5 60%, #f3e6fa);
}
.topbar, .composer { background: rgba(255, 245, 249, .95); }
.topbar { box-shadow: 0 3px 16px rgba(123, 23, 92, .04); }
.bubble.mine { background: var(--romance); }
.bubble.mine.sticker { background: transparent; }
.bubble.mine .message-quote { border-left-color: #ffcfdf; background: rgba(255, 255, 255, .13); }
.field input:focus, .composer textarea:focus {
    border-color: var(--rose);
    box-shadow: 0 0 0 4px rgba(185, 28, 97, .1);
}
button:focus-visible, a:focus-visible, summary:focus-visible {
    outline: 2px solid var(--rose);
    outline-offset: 3px;
}
.space-shortcut {
    background: linear-gradient(115deg, #fff3df, #ffe7ef 55%, #f0dff9);
    box-shadow: 0 4px 16px rgba(129, 28, 102, .05);
}
.couple-space, .space-editor, .memories {
    background: linear-gradient(145deg, #fff7f1, var(--paper) 60%, #f5eafb);
}
.space-top { background: #fff1f5; }
.space-welcome { background: linear-gradient(120deg, #ffe5d6, #fbd6e9 60%, #ead8f7); }
.space-card, .memory-photo { box-shadow: 0 5px 18px rgba(126, 32, 105, .04); }
.partner-answer { background: #eee1f8; border-left-color: #83549e; }
.space-tip { background: #fff0dc; }
.account-settings { width: min(560px, calc(100% - 24px)); overflow-y: auto; }
.account-settings .space-header { position: sticky; top: 0; z-index: 4; padding: 8px 0; background: var(--paper); }
.account-settings section { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 16px; }
.account-settings form { margin: 18px 0; }
.account-settings summary { cursor: pointer; color: var(--rose-deep); font-weight: 600; padding: 8px 0; }
.account-avatar { border-radius: 50%; object-fit: cover; box-shadow: var(--shadow); }
.recovery-request { margin-top: 12px; }
.recovery-request button { margin: 4px; }
#partner-reset-code { font-family: monospace; font-size: 14px; }
#forgot-status { color: var(--rose-deep); line-height: 1.5; overflow-wrap: anywhere; }
#notification-settings fieldset { border: 1px solid var(--line); border-radius: 14px; padding: 12px; }
#notification-settings legend { color: var(--rose-deep); font-size: 13px; padding: 0 6px; }
#notification-status { position: sticky; top: 76px; z-index: 3; background: var(--paper-2); border: 1px solid var(--line); border-radius: 12px; padding: 12px; color: var(--rose-deep); line-height: 1.5; }
#notification-status:empty { display: none; }
.account-settings input[type="file"] { max-width: 100%; }
.account-settings .account-consent { display: flex; align-items: flex-start; gap: 10px; line-height: 1.5; }
.account-settings .account-consent input { width: auto; margin: 4px 0 0; flex: none; }
.account-danger h3 { color: var(--rose-deep); }
#account-status { position: sticky; top: 76px; z-index: 3; background: var(--paper); border: 1px solid var(--line); padding: 12px; border-radius: 12px; color: var(--rose-deep); line-height: 1.5; overflow-wrap: anywhere; }
#account-status:empty { display: none; }
.jump { background: #fff3f8; }
.sheet-backdrop { background: rgba(54, 13, 54, .4); backdrop-filter: blur(5px); }
.call.is-incoming .call-shade {
    background: radial-gradient(ellipse at 50% 30%, #a82379, transparent 80%), #35103f;
}
@media (min-width: 860px) {
    .app { box-shadow: 0 28px 90px rgba(88, 18, 103, .25), 0 0 0 1px rgba(255, 255, 255, .45); }
}
