.sosda-app {
    --sosda-primary: #7d3650;
    --sosda-accent: #c99a79;
    --sosda-bg: #f7f3f1;
    --sosda-card: #ffffff;
    --sosda-text: #2f2529;
    --sosda-muted: #786c71;
    --sosda-border: rgba(72, 48, 57, .12);
    --sosda-shadow: 0 22px 60px rgba(70, 42, 52, .10);
    color: var(--sosda-text);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
}
.sosda-app *, .sosda-app *::before, .sosda-app *::after { box-sizing: border-box; }
.sosda-app a { color: var(--sosda-primary); }
.sosda-app button, .sosda-app input { font: inherit; }
.sosda-shell, .sosda-login-shell {
    width: min(1120px, calc(100% - 32px));
    margin: 32px auto;
}
.sosda-shell {
    overflow: hidden;
    border: 1px solid var(--sosda-border);
    border-radius: 28px;
    background: var(--sosda-bg);
    box-shadow: var(--sosda-shadow);
}
.sosda-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 26px;
    background: rgba(255,255,255,.9);
    border-bottom: 1px solid var(--sosda-border);
    backdrop-filter: blur(12px);
}
.sosda-brand { display: flex; align-items: center; gap: 12px; }
.sosda-brand img { width: 46px; height: 46px; object-fit: contain; border-radius: 12px; }
.sosda-brand-mark {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(145deg, var(--sosda-primary), #a75f78);
    font-size: 28px;
    line-height: 1;
}
.sosda-brand strong, .sosda-brand small { display: block; }
.sosda-brand strong { font-size: 16px; letter-spacing: -.01em; }
.sosda-brand small { margin-top: 1px; color: var(--sosda-muted); font-size: 12px; }
.sosda-user { display: flex; align-items: center; gap: 14px; font-size: 14px; }
.sosda-user span { font-weight: 650; }
.sosda-user a { text-decoration: none; padding-left: 14px; border-left: 1px solid var(--sosda-border); }
.sosda-main { padding: 36px; }
.sosda-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 34px;
    padding: 34px 36px;
    margin-bottom: 20px;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 15%, rgba(255,255,255,.18), transparent 25%),
        linear-gradient(135deg, var(--sosda-primary), #56283a 72%);
    overflow: hidden;
}
.sosda-hero h1 {
    max-width: 720px;
    margin: 8px 0 8px;
    color: inherit;
    font-size: clamp(29px, 4vw, 47px);
    line-height: 1.08;
    letter-spacing: -.035em;
}
.sosda-hero p { margin: 0; color: rgba(255,255,255,.8); }
.sosda-eyebrow, .sosda-section-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.sosda-eyebrow { color: rgba(255,255,255,.75); }
.sosda-section-label { color: var(--sosda-primary); }
.sosda-day-badge {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    background: rgba(255,255,255,.10);
}
.sosda-day-badge strong, .sosda-day-badge span { display: block; text-align: center; }
.sosda-day-badge strong { font-size: 34px; line-height: 1; }
.sosda-day-badge span { color: rgba(255,255,255,.68); font-size: 11px; }
.sosda-card {
    padding: 30px;
    margin-bottom: 20px;
    border: 1px solid var(--sosda-border);
    border-radius: 22px;
    background: var(--sosda-card);
    box-shadow: 0 10px 28px rgba(62, 38, 47, .05);
}
.sosda-activity-card { padding: 36px; }
.sosda-reflection {
    position: relative;
    padding-left: 24px;
    color: #51454a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(18px, 2.2vw, 22px);
    line-height: 1.7;
}
.sosda-reflection::before {
    content: "“";
    position: absolute;
    left: -4px;
    top: -16px;
    color: var(--sosda-accent);
    font-size: 58px;
    line-height: 1;
}
.sosda-reflection p:last-child, .sosda-task p:last-child { margin-bottom: 0; }
.sosda-divider { height: 1px; margin: 30px 0; background: var(--sosda-border); }
.sosda-task { margin-top: 12px; font-size: 17px; line-height: 1.75; }
.sosda-primary-button, .sosda-secondary-button, .sosda-couple-actions button, .sosda-couple-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 750;
    cursor: pointer;
    transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}
.sosda-primary-button {
    width: 100%;
    margin-top: 24px;
    color: #fff;
    background: var(--sosda-primary);
    box-shadow: 0 12px 24px color-mix(in srgb, var(--sosda-primary) 25%, transparent);
}
.sosda-primary-button:hover:not(:disabled), .sosda-secondary-button:hover, .sosda-couple-actions button:hover, .sosda-couple-actions a:hover { transform: translateY(-1px); }
.sosda-primary-button:disabled { cursor: default; opacity: .52; box-shadow: none; }
.sosda-state {
    display: grid;
    gap: 3px;
    padding: 16px 18px;
    margin-top: 24px;
    border-radius: 14px;
    font-size: 14px;
}
.sosda-state-wait { color: #755a24; background: #fff7de; }
.sosda-state-done { color: #256247; background: #e9f7f0; }
.sosda-state span { opacity: .82; }
.sosda-progress-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.sosda-progress-head strong, .sosda-progress-head span { display: block; }
.sosda-progress-head > div > strong { font-size: 17px; }
.sosda-progress-head span { margin-top: 2px; color: var(--sosda-muted); font-size: 13px; }
.sosda-progress {
    height: 9px;
    margin: 18px 0 22px;
    border-radius: 999px;
    background: #eee6e8;
    overflow: hidden;
}
.sosda-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--sosda-primary), var(--sosda-accent)); }
.sosda-partner-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sosda-partner-status > div {
    display: grid;
    grid-template-columns: 42px 1fr 10px;
    align-items: center;
    gap: 11px;
    padding: 12px;
    border: 1px solid var(--sosda-border);
    border-radius: 14px;
}
.sosda-avatar {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    color: #fff;
    background: var(--sosda-primary);
    font-weight: 800;
}
.sosda-partner-status strong, .sosda-partner-status span { display: block; }
.sosda-partner-status span { color: var(--sosda-muted); font-size: 12px; }
.sosda-partner-status i { width: 9px; height: 9px; border-radius: 50%; }
.sosda-partner-status i.is-done { background: #4a9b74; }
.sosda-partner-status i.is-pending { background: #d7c9ce; }
.sosda-support { margin: 4px 12px 0; color: var(--sosda-muted); text-align: center; font-size: 13px; }
.sosda-wait-card, .sosda-message-card {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 34px;
}
.sosda-wait-card h2, .sosda-message-card h1 { margin: 0 0 6px; font-size: 23px; }
.sosda-wait-card p, .sosda-message-card p { margin: 0; color: var(--sosda-muted); }
.sosda-status-icon {
    display: grid;
    place-items: center;
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    border-radius: 15px;
    color: var(--sosda-primary);
    background: color-mix(in srgb, var(--sosda-primary) 10%, white);
    font-size: 22px;
}
.sosda-login-shell { min-height: 640px; display: grid; place-items: center; }
.sosda-login-card {
    width: min(470px, 100%);
    padding: 38px;
    border: 1px solid var(--sosda-border);
    border-radius: 28px;
    background: #fff;
    box-shadow: var(--sosda-shadow);
}
.sosda-login-copy { margin: 34px 0 26px; }
.sosda-login-copy .sosda-eyebrow { color: var(--sosda-primary); }
.sosda-login-copy h1 { margin: 8px 0 10px; font-size: 32px; line-height: 1.15; letter-spacing: -.03em; }
.sosda-login-copy p { margin: 0; color: var(--sosda-muted); }
#sosda-login-form p { margin: 0 0 16px; }
#sosda-login-form label { display: block; margin-bottom: 7px; color: #4f4448; font-size: 13px; font-weight: 700; }
#sosda-login-form input[type="text"], #sosda-login-form input[type="password"] {
    width: 100%;
    min-height: 50px;
    padding: 0 14px;
    border: 1px solid #d9ced2;
    border-radius: 12px;
    outline: 0;
    background: #fff;
}
#sosda-login-form input:focus { border-color: var(--sosda-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--sosda-primary) 12%, transparent); }
#sosda-login-form .login-remember label { display: flex; align-items: center; gap: 8px; font-weight: 500; }
#sosda-login-form .button-primary {
    width: 100%;
    min-height: 50px;
    border: 0;
    border-radius: 12px;
    color: #fff;
    background: var(--sosda-primary);
    font-weight: 800;
    cursor: pointer;
}
.sosda-login-error { padding: 12px 14px; margin: 0 0 16px; border-radius: 10px; color: #7a2f35; background: #fae9eb; font-size: 13px; }
.sosda-login-links { margin-top: 18px; text-align: center; font-size: 13px; }
.sosda-login-links a { text-decoration: none; }
.sosda-finish-card { padding: 48px; text-align: center; }
.sosda-finish-mark { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 22px; border-radius: 50%; color: #fff; background: var(--sosda-primary); font-size: 31px; }
.sosda-finish-card .sosda-eyebrow { color: var(--sosda-primary); }
.sosda-finish-card h1 { max-width: 670px; margin: 10px auto; font-size: 36px; line-height: 1.15; }
.sosda-finish-card > p { max-width: 600px; margin: 0 auto; color: var(--sosda-muted); }
.sosda-finish-meta { display: inline-flex; gap: 14px; margin-top: 28px; padding: 12px 16px; border-radius: 12px; background: var(--sosda-bg); }
.sosda-finish-meta span { color: var(--sosda-muted); }
.sosda-therapist-hero { align-items: center; }
.sosda-secondary-button { color: var(--sosda-primary); background: #fff; }
.sosda-front-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 20px; }
.sosda-front-metrics > div { padding: 22px; border: 1px solid var(--sosda-border); border-radius: 18px; background: #fff; }
.sosda-front-metrics span, .sosda-front-metrics strong { display: block; }
.sosda-front-metrics span { color: var(--sosda-muted); font-size: 13px; }
.sosda-front-metrics strong { margin-top: 3px; font-size: 30px; }
.sosda-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.sosda-card-title h2 { margin: 4px 0 0; font-size: 24px; }
.sosda-card-title a { font-size: 13px; }
.sosda-couple-list { display: grid; gap: 10px; }
.sosda-couple-row {
    display: grid;
    grid-template-columns: minmax(230px, 1.5fr) minmax(120px, .6fr) auto auto;
    align-items: center;
    gap: 18px;
    padding: 15px;
    border: 1px solid var(--sosda-border);
    border-radius: 15px;
}
.sosda-couple-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.sosda-couple-main strong, .sosda-couple-main span, .sosda-couple-progress strong, .sosda-couple-progress span { display: block; }
.sosda-couple-main span, .sosda-couple-progress span { color: var(--sosda-muted); font-size: 12px; }
.sosda-couple-main > div { min-width: 0; }
.sosda-couple-main > div span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sosda-couple-avatar { background: #4f3d44; }
.sosda-tiny-status { display: flex; gap: 5px; }
.sosda-tiny-status span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; color: #8b7d82; background: #eee7e9; font-size: 10px; font-weight: 800; }
.sosda-tiny-status span.done { color: #fff; background: #4a9b74; }
.sosda-couple-actions { display: flex; gap: 7px; }
.sosda-couple-actions button, .sosda-couple-actions a { min-height: 36px; padding: 0 12px; border: 1px solid var(--sosda-border); color: var(--sosda-primary); background: #fff; font-size: 12px; }
.sosda-empty-front { padding: 30px; border-radius: 14px; color: var(--sosda-muted); background: var(--sosda-bg); text-align: center; }
@media (max-width: 820px) {
    .sosda-main { padding: 20px; }
    .sosda-hero { padding: 28px; }
    .sosda-couple-row { grid-template-columns: 1fr auto; }
    .sosda-couple-progress { text-align: right; }
    .sosda-tiny-status { grid-column: 1; }
    .sosda-couple-actions { grid-column: 2; grid-row: 2; }
}
@media (max-width: 620px) {
    .sosda-shell, .sosda-login-shell { width: min(100% - 18px, 1120px); margin: 9px auto; }
    .sosda-shell, .sosda-login-card { border-radius: 20px; }
    .sosda-topbar { padding: 14px 16px; }
    .sosda-user span { display: none; }
    .sosda-main { padding: 12px; }
    .sosda-hero { display: block; padding: 24px; border-radius: 18px; }
    .sosda-hero h1 { font-size: 31px; }
    .sosda-day-badge { width: 72px; height: 72px; margin-top: 22px; }
    .sosda-day-badge strong { font-size: 27px; }
    .sosda-card, .sosda-activity-card { padding: 23px; border-radius: 18px; }
    .sosda-reflection { padding-left: 17px; font-size: 18px; }
    .sosda-partner-status, .sosda-front-metrics { grid-template-columns: 1fr; }
    .sosda-login-card { padding: 28px 22px; }
    .sosda-login-copy h1 { font-size: 28px; }
    .sosda-wait-card, .sosda-message-card { display: block; }
    .sosda-status-icon { margin-bottom: 16px; }
    .sosda-therapist-hero .sosda-secondary-button { margin-top: 22px; }
    .sosda-couple-row { grid-template-columns: 1fr; }
    .sosda-couple-progress { text-align: left; }
    .sosda-tiny-status, .sosda-couple-actions { grid-column: auto; grid-row: auto; }
}
