@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800;900&family=Playfair+Display:ital,wght@1,700&display=swap');

:root {
    color-scheme: dark;
    --bg: #090809;
    --surface: #121011;
    --surface-2: #191617;
    --text: #fff9f5;
    --muted: #9f979a;
    --line: rgba(255, 255, 255, .08);
    --pink: #f52a61;
    --pink-2: #ff7598;
    --accent-deep: #b91649;
    --gold: #dfba84;
    --success: #61d89e;
    --shadow: 0 24px 80px rgba(0, 0, 0, .32);
    --n2-card-radius: 18px;
    --n2-card-gap: .75rem;
    --n2-card-padding: .8rem;
    --n2-card-rail: 80px;
    --n2-card-control: 44px;
}

html[data-theme="light"] {
    color-scheme: light;
    --bg: #fff8f3;
    --surface: #fffdfb;
    --surface-2: #f8ebe5;
    --text: #371720;
    --muted: #816b71;
    --line: rgba(64, 24, 35, .1);
    --pink: #d92756;
    --pink-2: #f06b8d;
    --accent-deep: #a8143e;
    --gold: #9a642f;
    --success: #16845a;
    --shadow: 0 24px 70px rgba(86, 42, 53, .12);
}

html[data-theme="system"] { color-scheme: dark; }

@media (prefers-color-scheme: light) {
    html[data-theme="system"] {
        color-scheme: light;
        --bg: #fff8f3;
        --surface: #fffdfb;
        --surface-2: #f8ebe5;
        --text: #371720;
        --muted: #816b71;
        --line: rgba(64, 24, 35, .1);
        --pink: #d92756;
        --pink-2: #f06b8d;
        --accent-deep: #a8143e;
        --gold: #9a642f;
        --success: #16845a;
        --shadow: 0 24px 70px rgba(86, 42, 53, .12);
    }
}

html[data-identity="male"] {
    --bg: #070b12;
    --surface: #0e1420;
    --surface-2: #151e2d;
    --text: #f6f8fc;
    --muted: #a6b0c1;
    --line: rgba(138, 164, 204, .16);
    --pink: #5685cf;
    --pink-2: #7fa4dc;
    --accent-deep: #14213d;
    --success: #56c99a;
    --shadow: 0 24px 80px rgba(2, 7, 17, .38);
}

html[data-identity="male"][data-theme="light"] {
    --bg: #f3f6fa;
    --surface: #ffffff;
    --surface-2: #e8eef6;
    --text: #14213d;
    --muted: #5e6b82;
    --line: rgba(20, 33, 61, .13);
    --pink: #244a7d;
    --pink-2: #315f98;
    --accent-deep: #14213d;
    --success: #167151;
    --shadow: 0 24px 70px rgba(20, 33, 61, .14);
}

@media (prefers-color-scheme: light) {
    html[data-identity="male"][data-theme="system"] {
        --bg: #f3f6fa;
        --surface: #ffffff;
        --surface-2: #e8eef6;
        --text: #14213d;
        --muted: #5e6b82;
        --line: rgba(20, 33, 61, .13);
        --pink: #244a7d;
        --pink-2: #315f98;
        --accent-deep: #14213d;
        --success: #167151;
        --shadow: 0 24px 70px rgba(20, 33, 61, .14);
    }
}

* { box-sizing: border-box; }

html { background: var(--bg); }

body {
    margin: 0;
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
    font-family: "DM Sans", system-ui, sans-serif;
    transition: background .2s ease, color .2s ease;
}

button, input, textarea, select { font: inherit; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.flash-stack {
    position: fixed;
    right: 1rem;
    top: 1rem;
    z-index: 1000;
    display: grid;
    width: min(390px, calc(100% - 2rem));
    gap: .6rem;
}

.flash {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: space-between;
    padding: .9rem 1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--shadow);
    font-size: .82rem;
    transition: opacity .3s ease, transform .3s ease;
}
.flash--success { border-color: color-mix(in srgb, var(--success) 40%, var(--line)); }
.flash--error { border-color: color-mix(in srgb, var(--pink) 50%, var(--line)); }
.flash button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 1.2rem; }
.flash--leaving { opacity: 0; transform: translateY(-10px); pointer-events: none; }

.eyebrow {
    color: var(--gold);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(420px, .85fr);
    min-height: 100vh;
}

.auth-brand {
    position: relative;
    display: flex;
    min-height: 100vh;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    padding: clamp(3rem, 7vw, 7rem);
    background: #080708;
    color: #fff9f5;
}

.auth-brand::before,
.auth-brand::after {
    position: absolute;
    border-radius: 999px;
    content: "";
    filter: blur(1px);
}

.auth-brand::before {
    right: -18%;
    top: -22%;
    width: 640px;
    height: 640px;
    background: radial-gradient(circle, color-mix(in srgb, var(--pink) 26%, transparent), transparent 67%);
}

.auth-brand::after {
    bottom: -260px;
    left: -180px;
    width: 560px;
    height: 560px;
    border: 1px solid rgba(223, 186, 132, .17);
    box-shadow: 0 0 0 70px rgba(223, 186, 132, .035), 0 0 0 140px rgba(223, 186, 132, .02);
}

.auth-brand__glow {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(67, 15, 31, .35), transparent 52%);
}

.auth-brand__logo {
    position: absolute;
    left: clamp(3rem, 7vw, 7rem);
    top: 2.4rem;
    z-index: 1;
    width: 90px;
    height: 90px;
    object-fit: contain;
}

.auth-brand__copy { position: relative; z-index: 1; max-width: 640px; }

.auth-brand__copy h1 {
    margin: 1rem 0 1.3rem;
    font-size: clamp(3.4rem, 6.5vw, 7.2rem);
    line-height: .91;
    letter-spacing: -.065em;
}

.auth-brand__copy h1 em {
    color: var(--pink-2);
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
}

.auth-brand__copy p {
    max-width: 520px;
    margin: 0;
    color: #b7adb0;
    font-size: clamp(1rem, 1.4vw, 1.25rem);
    line-height: 1.7;
}

.auth-brand__stats {
    position: absolute;
    right: clamp(2rem, 5vw, 5rem);
    bottom: 2.8rem;
    left: clamp(3rem, 7vw, 7rem);
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    max-width: 560px;
}

.auth-brand__stats div {
    padding-top: .9rem;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.auth-brand__stats strong { display: block; color: var(--gold); font-size: 1.35rem; }
.auth-brand__stats span { color: #887f82; font-size: .72rem; text-transform: uppercase; }

.auth-panel {
    position: relative;
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 2rem;
    background: var(--bg);
}

.theme-switch {
    position: absolute;
    right: 1.6rem;
    top: 1.6rem;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
}

.theme-picker { position: relative; flex: 0 0 auto; }
.theme-picker > summary {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
    list-style: none;
    font-size: 1rem;
    transition: border-color .18s ease, color .18s ease, transform .18s ease;
}
.theme-picker > summary::-webkit-details-marker { display: none; }
.theme-picker > summary:hover, .theme-picker[open] > summary { border-color: color-mix(in srgb,var(--pink) 55%,var(--line)); color: var(--pink); }
.theme-picker[open] > summary { transform: rotate(8deg); }
.theme-picker__menu {
    position: absolute;
    z-index: 320;
    top: calc(100% + .65rem);
    right: 0;
    display: grid;
    width: 190px;
    padding: .6rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: color-mix(in srgb,var(--surface) 94%,transparent);
    box-shadow: var(--shadow);
    backdrop-filter: blur(18px);
}
.theme-picker__menu > span { padding: .35rem .55rem .55rem; color: var(--muted); font-size: .62rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.theme-picker__menu button {
    display: grid;
    grid-template-columns: 28px 1fr 18px;
    align-items: center;
    min-height: 42px;
    padding: .45rem .55rem;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--text);
    text-align: left;
    cursor: pointer;
}
.theme-picker__menu button:hover { background: var(--surface-2); }
.theme-picker__menu button b { font-size: .95rem; }
.theme-picker__menu button span { font-size: .76rem; font-weight: 800; }
.theme-picker__menu button i { color: var(--pink); font-style: normal; opacity: 0; }
.theme-picker__menu button[aria-pressed="true"] { background: color-mix(in srgb,var(--pink) 9%,var(--surface-2)); color: var(--pink); }
.theme-picker__menu button[aria-pressed="true"] i { opacity: 1; }

.theme-onboarding {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: color-mix(in srgb,#050405 76%,transparent);
    backdrop-filter: blur(18px);
    transition: opacity .22s ease;
}
.theme-onboarding.is-leaving { opacity: 0; pointer-events: none; }
.theme-onboarding__card {
    width: min(520px,100%);
    padding: clamp(1.5rem,5vw,2.4rem);
    border: 1px solid color-mix(in srgb,var(--gold) 32%,var(--line));
    border-radius: 28px;
    background: var(--surface);
    box-shadow: 0 30px 100px rgba(0,0,0,.45);
    text-align: center;
}
.theme-onboarding__card > img { display: block; width: 116px; height: 86px; margin: -.3rem auto .65rem; object-fit: contain; filter: drop-shadow(0 12px 20px rgba(0,0,0,.24)); }
.theme-onboarding__card h2 { margin: .7rem 0 .55rem; font-size: clamp(1.7rem,5vw,2.35rem); line-height: 1.05; letter-spacing: -.045em; }
.theme-onboarding__card > p { margin: 0 auto 1.4rem; max-width: 370px; color: var(--muted); font-size: .9rem; line-height: 1.55; }
.theme-onboarding__options { display: grid; gap: .65rem; }
.theme-onboarding__options button {
    display: grid;
    grid-template-columns: 42px 1fr 24px;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 70px;
    padding: .8rem 1rem;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: var(--surface-2);
    color: var(--text);
    text-align: left;
    cursor: pointer;
    transition: transform .18s ease,border-color .18s ease,background .18s ease;
}
.theme-onboarding__options button:hover { transform: translateY(-2px); border-color: color-mix(in srgb,var(--pink) 55%,var(--line)); background: color-mix(in srgb,var(--pink) 7%,var(--surface-2)); }
.theme-onboarding__options button > b { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--surface); color: var(--pink); font-size: 1.05rem; }
.theme-onboarding__options button span strong,.theme-onboarding__options button span small { display: block; }
.theme-onboarding__options button span strong { font-size: .9rem; }
.theme-onboarding__options button span small { margin-top: .18rem; color: var(--muted); font-size: .7rem; }
.theme-onboarding__options button > i { color: var(--pink); font-style: normal; }

.auth-card { width: min(420px, 100%); }
.auth-card--wide { width: min(520px, 100%); }
.auth-card__logo { display: none; width: 76px; height: 76px; object-fit: contain; margin-bottom: 1rem; }
.auth-card__logo--always { display: block; }

.auth-card h2 {
    margin: .65rem 0 .6rem;
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -.055em;
}

.auth-card > p { margin: 0; color: var(--muted); line-height: 1.6; }

.auth-form { display: grid; gap: 1rem; margin-top: 2rem; }
.auth-form label > span { display: block; margin: 0 0 .45rem .15rem; font-size: .76rem; font-weight: 800; }

.auth-form input[type="email"],
.auth-form input[type="password"] {
    width: 100%;
    padding: .98rem 1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    outline: none;
    background: var(--surface);
    color: var(--text);
}

.auth-form input[type="text"],
.auth-form input[type="tel"],
.auth-form input[type="file"] {
    width: 100%;
    padding: .98rem 1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    outline: none;
    background: var(--surface);
    color: var(--text);
}

.file-field small { display: block; margin: .4rem 0 0 .2rem; color: var(--muted); font-size: .68rem; }
.form-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.auth-panel--scroll { min-height: 100vh; padding-block: 5rem 2rem; }
.auth-panel--standalone { min-height: 100vh; }

.auth-form input:focus { border-color: var(--pink); box-shadow: 0 0 0 4px color-mix(in srgb, var(--pink) 13%, transparent); }

.check-line { display: flex; align-items: center; gap: .6rem; color: var(--muted); font-size: .82rem; }
.check-line input { accent-color: var(--pink); }
.check-line span { margin: 0 !important; font-weight: 500 !important; }

.primary-button,
.outline-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 50px;
    padding: .8rem 1.15rem;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 900;
    font-size: .8rem;
    letter-spacing: .03em;
}

.primary-button { background: var(--pink); color: #fff; box-shadow: 0 10px 30px color-mix(in srgb, var(--pink) 20%, transparent); }
.outline-button { border: 1px solid color-mix(in srgb, var(--pink) 52%, transparent); background: transparent; color: var(--pink); }
.auth-help { margin-top: 1rem !important; text-align: center; font-size: .75rem; }
.admin-link { display: block; margin-top: 1.2rem; color: var(--gold); text-align: center; font-size: .72rem; font-weight: 800; }

/* Primeiro acesso da paciente */
.first-access-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--pink) 14%, transparent), transparent 31rem),
        radial-gradient(circle at 92% 86%, color-mix(in srgb, var(--gold) 13%, transparent), transparent 32rem),
        var(--bg);
}

.first-access-shell {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: clamp(1rem, 4vw, 3.25rem);
}

.first-access-card {
    width: min(920px, 100%);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--gold) 28%, var(--line));
    border-radius: 32px;
    background: color-mix(in srgb, var(--surface) 96%, transparent);
    box-shadow: 0 32px 110px rgba(0, 0, 0, .28);
    backdrop-filter: blur(24px);
}

.first-access-heading {
    position: relative;
    display: grid;
    justify-items: center;
    overflow: hidden;
    padding: clamp(1.8rem, 5vw, 3.5rem) 1.5rem clamp(1.55rem, 4vw, 2.7rem);
    border-bottom: 1px solid var(--line);
    text-align: center;
}

.first-access-heading::before {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--pink) 10%, transparent), transparent 48%),
        radial-gradient(circle at 78% 20%, color-mix(in srgb, var(--gold) 12%, transparent), transparent 45%);
    content: "";
    pointer-events: none;
}

.first-access-heading > * { position: relative; }
.first-access-heading img { width: 118px; height: 86px; margin-bottom: .45rem; object-fit: contain; filter: drop-shadow(0 14px 25px rgba(0, 0, 0, .24)); }
.first-access-heading h1 { margin: .65rem 0 .65rem; font-size: clamp(2.25rem, 6vw, 4.5rem); line-height: .94; letter-spacing: -.065em; }
.first-access-heading p { max-width: 540px; margin: 0; color: var(--muted); font-size: clamp(.88rem, 2vw, 1rem); line-height: 1.6; }

.first-access-form { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 2rem); }
.first-access-section { min-width: 0; margin: 0; padding: clamp(1rem, 3vw, 1.55rem); border: 1px solid var(--line); border-radius: 22px; background: color-mix(in srgb, var(--surface-2) 55%, var(--surface)); }
.first-access-section legend { display: flex; align-items: center; gap: .7rem; padding: 0 .35rem; }
.first-access-section legend span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 10px; background: color-mix(in srgb, var(--pink) 14%, var(--surface)); color: var(--pink); font-size: .68rem; font-weight: 900; }
.first-access-section legend strong { font-size: .92rem; letter-spacing: -.015em; }
.first-access-note { margin: .2rem 0 1rem; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.first-access-note strong { color: var(--text); }

.first-access-avatar { display: flex; align-items: center; gap: 1rem; min-height: 104px; padding: 1rem; border: 1px dashed color-mix(in srgb, var(--gold) 45%, var(--line)); border-radius: 19px; background: var(--surface); cursor: pointer; transition: border-color .18s ease, transform .18s ease, background .18s ease; }
.first-access-avatar:hover { transform: translateY(-2px); border-color: var(--pink); background: color-mix(in srgb, var(--pink) 5%, var(--surface)); }
[data-image-status][data-status="info"] { color: var(--gold); }
[data-image-status][data-status="success"] { color: var(--success); }
[data-image-status][data-status="error"] { color: var(--pink); font-weight: 750; }
.first-access-avatar__preview { position: relative; display: grid; width: 72px; height: 72px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 1px solid color-mix(in srgb, var(--pink) 35%, var(--line)); border-radius: 50%; background: color-mix(in srgb, var(--pink) 9%, var(--surface-2)); color: var(--pink); font-size: 1.45rem; }
.first-access-avatar__preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.first-access-avatar__preview.has-photo > span { opacity: 0; }
.first-access-avatar__copy strong, .first-access-avatar__copy small { display: block; }
.first-access-avatar__copy strong { margin-bottom: .3rem; font-size: .9rem; }
.first-access-avatar__copy small { color: var(--muted); font-size: .7rem; line-height: 1.45; }

.first-access-passwords { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.first-access-passwords .login-field > span:first-child { display: block; margin: 0 0 .45rem .15rem; font-size: .7rem; font-weight: 800; }
.first-access-passwords input { width: 100%; min-height: 52px; padding: .85rem 5.2rem .85rem 1rem; border: 1px solid var(--line); border-radius: 14px; outline: none; background: var(--surface); color: var(--text); }
.first-access-passwords input:focus { border-color: var(--pink); box-shadow: 0 0 0 4px color-mix(in srgb, var(--pink) 12%, transparent); }

.first-access-themes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.first-access-theme { position: relative; display: grid; grid-template-columns: 48px 1fr 20px; align-items: center; gap: .65rem; min-height: 78px; padding: .75rem; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); cursor: pointer; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.first-access-theme:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--pink) 46%, var(--line)); }
.first-access-theme > input { position: absolute; opacity: 0; pointer-events: none; }
.first-access-theme:has(input:checked) { border-color: var(--pink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pink) 10%, transparent); }
.first-access-theme > span:nth-of-type(2) strong, .first-access-theme > span:nth-of-type(2) small { display: block; }
.first-access-theme > span:nth-of-type(2) strong { font-size: .78rem; }
.first-access-theme > span:nth-of-type(2) small { margin-top: .18rem; color: var(--muted); font-size: .6rem; line-height: 1.3; }
.first-access-theme > i { color: var(--pink); font-style: normal; opacity: 0; }
.first-access-theme:has(input:checked) > i { opacity: 1; }
.first-access-theme__sample { position: relative; display: block; width: 48px; height: 44px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #121011; }
.first-access-theme__sample::before { position: absolute; inset: 6px 6px auto; height: 6px; border-radius: 99px; background: var(--pink); content: ""; }
.first-access-theme__sample i, .first-access-theme__sample b { position: absolute; right: 6px; left: 6px; height: 7px; border-radius: 4px; background: rgba(255, 255, 255, .16); }
.first-access-theme__sample i { top: 18px; }
.first-access-theme__sample b { top: 29px; width: 55%; }
.first-access-theme__sample--light { background: #fff8f3; }
.first-access-theme__sample--light i, .first-access-theme__sample--light b { background: rgba(55, 23, 32, .14); }
.first-access-theme__sample--system { background: linear-gradient(90deg, #fff8f3 0 50%, #121011 50%); }

.first-access-submit { display: flex; align-items: center; justify-content: space-between; min-height: 58px; padding: .9rem 1.35rem; border: 0; border-radius: 999px; background: linear-gradient(110deg, var(--accent-deep), var(--pink)); color: #fff; box-shadow: 0 15px 36px color-mix(in srgb, var(--pink) 24%, transparent); cursor: pointer; font-size: .78rem; font-weight: 900; letter-spacing: .05em; }
.first-access-submit:hover { filter: brightness(1.06); transform: translateY(-1px); }

@media (max-width: 700px) {
    .first-access-shell { place-items: start center; padding: 0; }
    .first-access-card { min-height: 100vh; min-height: 100dvh; border: 0; border-radius: 0; }
    .first-access-heading { padding: 1.3rem 1.1rem 1.45rem; }
    .first-access-heading img { width: 94px; height: 66px; margin-bottom: .2rem; }
    .first-access-heading h1 { font-size: 2.45rem; }
    .first-access-form { padding: .85rem; }
    .first-access-section { padding: .9rem; border-radius: 18px; }
    .first-access-passwords, .first-access-themes { grid-template-columns: 1fr; }
    .first-access-passwords input { font-size: 16px; }
    .first-access-theme { min-height: 70px; }
    .first-access-submit { min-height: 56px; font-size: .7rem; }
}

/* Capa pública N2 */
.landing-page {
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    background: #070607;
    color: #fff9f5;
}

.landing-shell {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-rows: auto 1fr auto;
    width: 100%;
    height: 100%;
    overflow: hidden;
    padding: clamp(1.3rem, 3.2vw, 3.2rem) clamp(1.3rem, 5.5vw, 6.5rem);
}

.landing-visual,
.landing-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.landing-visual {
    z-index: -3;
    display: block;
    overflow: hidden;
    background: #070607;
}

.landing-hero {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
}

.landing-shade {
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(5, 4, 5, .92) 0%, rgba(5, 4, 5, .62) 34%, rgba(5, 4, 5, .12) 67%, rgba(5, 4, 5, .24) 100%),
        linear-gradient(0deg, rgba(5, 4, 5, .8) 0%, transparent 43%, rgba(5, 4, 5, .2) 100%);
}

.landing-header,
.landing-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.landing-header img {
    width: clamp(132px, 11vw, 190px);
    height: clamp(106px, 9vw, 152px);
    object-fit: contain;
    filter: drop-shadow(0 14px 30px rgba(0, 0, 0, .35));
}

.landing-header span,
.landing-footer {
    color: rgba(255, 249, 245, .64);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.landing-header span {
    padding-bottom: .5rem;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
}

.landing-copy {
    align-self: end;
    width: min(670px, 58vw);
    margin-bottom: clamp(2.3rem, 7vh, 5rem);
}

.landing-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    color: #e2bd87;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.landing-eyebrow::before {
    width: 32px;
    height: 1px;
    background: currentColor;
    content: "";
}

.landing-copy h1 {
    max-width: 680px;
    margin: 1rem 0 1.1rem;
    font-size: clamp(4rem, 7.2vw, 8rem);
    line-height: .86;
    letter-spacing: -.07em;
}

.landing-copy h1 em {
    display: block;
    color: #ff648d;
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
}

.landing-access-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(310px, 100%);
    min-height: 58px;
    margin-top: 1.35rem;
    padding: .9rem 1.2rem;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    background: linear-gradient(110deg, var(--accent-deep), var(--pink));
    color: white;
    box-shadow: 0 18px 44px rgba(217, 31, 82, .3);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    transition: transform .18s ease, box-shadow .18s ease;
}

.landing-access-button span:last-child { font-size: 1.15rem; }
.landing-access-button:hover { box-shadow: 0 22px 52px rgba(217, 31, 82, .4); transform: translateY(-2px); }
.landing-access-button:focus-visible { outline: 2px solid #e2bd87; outline-offset: 4px; }

.landing-footer {
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

@media (max-width: 720px) {
    .landing-shell { padding: 1rem; }
    .landing-visual {
        bottom: 0;
        height: 100%;
    }
    .landing-hero { object-position: 50% 30%; }
    .landing-shade {
        background:
            linear-gradient(0deg, rgba(7, 6, 7, .94) 0%, rgba(7, 6, 7, .65) 20%, rgba(7, 6, 7, .08) 47%, transparent 80%),
            linear-gradient(90deg, rgba(5, 4, 5, .18), transparent 74%);
    }
    .landing-header img { width: 116px; height: 92px; }
    .landing-header span { font-size: .52rem; }
    .landing-copy { width: 100%; margin-bottom: clamp(1.4rem, 4.5vh, 2.8rem); }
    .landing-eyebrow { font-size: .54rem; }
    .landing-copy h1 { margin: .75rem 0 .8rem; font-size: clamp(3rem, 15vw, 4.25rem); }
    .landing-access-button { min-height: 54px; margin-top: 1rem; }
    .landing-footer { font-size: .48rem; }
    .landing-footer span:last-child { display: none; }
}

@media (max-height: 660px) {
    .landing-shell { padding-block: .75rem; }
    .landing-header img { width: 92px; height: 72px; }
    .landing-copy { margin-bottom: 1rem; }
    .landing-copy h1 { margin-block: .55rem; font-size: clamp(2.7rem, 11vh, 4.4rem); }
    .landing-access-button { min-height: 48px; margin-top: .8rem; }
    .landing-footer { padding-top: .65rem; }
}

@media (max-width: 720px) and (max-height: 660px) {
    .landing-copy h1 { font-size: clamp(2.58rem, 13.5vw, 3rem); }
}

/* Login editorial N2 */
.login-page {
    --login-story-bg: #0b090a;
    --login-story-text: #fff9f5;
    --login-story-muted: #b8adb0;
    --login-story-line: rgba(255, 255, 255, .14);
    --login-panel-bg: #110e0f;
    --login-card-bg: #171314;
    --login-field-bg: #0f0c0d;
    min-width: 320px;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    background: var(--login-panel-bg);
}

html[data-theme="light"] .login-page {
    --login-panel-bg: #fff9f5;
    --login-card-bg: #fffdfb;
    --login-field-bg: #fbf1ec;
}

@media (prefers-color-scheme: light) {
    html[data-theme="system"] .login-page {
        --login-panel-bg: #fff9f5;
        --login-card-bg: #fffdfb;
        --login-field-bg: #fbf1ec;
    }
}

.login-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(430px, .72fr);
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
    background: var(--login-panel-bg);
}

.login-story {
    position: relative;
    z-index: 0;
    display: flex;
    min-height: 0;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: clamp(2.2rem, 5vw, 5.2rem) clamp(2.2rem, 6vw, 6.5rem);
    background: var(--login-story-bg);
    color: var(--login-story-text);
}

.login-story::before {
    position: absolute;
    z-index: -2;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(7, 5, 6, .82) 0%, rgba(7, 5, 6, .42) 47%, rgba(7, 5, 6, .08) 76%),
        linear-gradient(0deg, rgba(7, 5, 6, .75) 0%, transparent 44%);
    content: "";
    pointer-events: none;
}

.login-story::after {
    position: absolute;
    z-index: -1;
    inset: clamp(1.2rem, 2.5vw, 2.6rem);
    border: 1px solid color-mix(in srgb, var(--gold) 18%, transparent);
    content: "";
    pointer-events: none;
}

.login-story__hero {
    position: absolute;
    z-index: -3;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 54% center;
}

.login-story__texture {
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .16;
    background-image:
        linear-gradient(90deg, transparent 49.8%, var(--login-story-line) 50%, transparent 50.2%),
        linear-gradient(0deg, transparent 49.8%, var(--login-story-line) 50%, transparent 50.2%);
    background-size: 72px 72px;
    mask-image: linear-gradient(135deg, transparent 5%, black 50%, transparent 95%);
    pointer-events: none;
}

.login-story__header {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.login-story__header img {
    width: 132px;
    height: 108px;
    object-fit: contain;
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .12));
}

.login-story__header span {
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--login-story-line);
    color: var(--login-story-muted);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.login-story__content {
    position: relative;
    z-index: 1;
    width: min(760px, 94%);
    margin-block: clamp(3rem, 8vh, 7rem);
}

.login-overline {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: var(--gold);
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.login-overline::before {
    width: 28px;
    height: 1px;
    background: currentColor;
    content: "";
}

.login-story__content h1 {
    max-width: 900px;
    margin: 1.25rem 0 1.5rem;
    color: var(--login-story-text);
    font-size: clamp(3.25rem, 6.6vw, 7.6rem);
    line-height: .9;
    letter-spacing: -.068em;
}

.login-story__content h1 em {
    display: block;
    margin-top: .08em;
    color: var(--pink-2);
    font-family: "Playfair Display", Georgia, serif;
    font-weight: 700;
}

.login-story__content p {
    max-width: 590px;
    margin: 0;
    color: var(--login-story-muted);
    font-size: clamp(.95rem, 1.25vw, 1.13rem);
    line-height: 1.75;
}

.login-story__pillars {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 3rem);
}

.login-story__pillars div {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: .8rem;
    padding-top: 1rem;
    border-top: 1px solid var(--login-story-line);
}

.login-story__pillars span { color: var(--gold); font-family: Georgia, serif; font-size: .72rem; }
.login-story__pillars strong { color: var(--login-story-muted); font-size: .67rem; letter-spacing: .12em; text-transform: uppercase; }

.login-access {
    position: relative;
    display: grid;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    place-items: center;
    padding: clamp(2rem, 5vw, 5rem);
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--pink) 8%, transparent), transparent 31%),
        var(--login-panel-bg);
}

.login-access__inner { width: min(450px, 100%); }

.login-card {
    padding: clamp(2rem, 4.3vw, 3.4rem);
    border: 1px solid color-mix(in srgb, var(--gold) 19%, var(--line));
    border-radius: 28px;
    background: var(--login-card-bg);
    box-shadow: 0 30px 90px color-mix(in srgb, #000 24%, transparent);
}

html[data-theme="light"] .login-card { box-shadow: 0 28px 80px rgba(76, 38, 48, .12); }

@media (prefers-color-scheme: light) {
    html[data-theme="system"] .login-card { box-shadow: 0 28px 80px rgba(76, 38, 48, .12); }
}

.login-card__heading h2 {
    margin: .85rem 0 .65rem;
    font-size: clamp(2.15rem, 4vw, 3.3rem);
    line-height: .98;
    letter-spacing: -.055em;
}

.login-card__heading p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.65; }

.login-form { display: grid; gap: 1.05rem; margin-top: 2rem; }

.login-field { display: grid; gap: .5rem; }
.login-field > span:first-child { padding-left: .1rem; color: var(--text); font-size: .7rem; font-weight: 800; letter-spacing: .02em; }
.login-password { position: relative; display: block; }

.login-field input[type="text"],
.login-field input[type="password"] {
    width: 100%;
    min-height: 54px;
    padding: .9rem 1rem;
    border: 1px solid var(--line);
    border-radius: 14px;
    outline: none;
    background: var(--login-field-bg);
    color: var(--text);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.login-password input { padding-right: 5.2rem !important; }
.login-field input::placeholder { color: color-mix(in srgb, var(--muted) 72%, transparent); }
.login-field input:focus { border-color: color-mix(in srgb, var(--pink) 72%, var(--line)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--pink) 12%, transparent); }

.login-password button {
    position: absolute;
    right: .85rem;
    top: 50%;
    padding: .35rem;
    border: 0;
    background: transparent;
    color: var(--pink);
    cursor: pointer;
    font-size: .67rem;
    font-weight: 900;
    transform: translateY(-50%);
}

.login-form__options { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.login-check { display: flex; align-items: center; gap: .55rem; color: var(--muted); font-size: .7rem; }
.login-check input { width: 15px; height: 15px; accent-color: var(--pink); }
.login-system-theme { display: inline-flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .63rem; white-space: nowrap; }
.login-system-theme::before { width: 6px; height: 6px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px color-mix(in srgb, var(--success) 10%, transparent); content: ""; }

.login-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 56px;
    margin-top: .35rem;
    padding: .85rem 1.2rem;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(110deg, #d91f52, var(--pink));
    color: #fff;
    cursor: pointer;
    box-shadow: 0 16px 34px rgba(217, 31, 82, .23);
    font-size: .73rem;
    font-weight: 900;
    letter-spacing: .07em;
    transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.login-submit > span:last-child { font-size: 1.1rem; }
.login-submit:hover { box-shadow: 0 20px 40px rgba(217, 31, 82, .31); transform: translateY(-2px); }
.login-submit:disabled { cursor: wait; opacity: .72; transform: none; }
.login-submit:focus-visible, .login-password button:focus-visible, .login-card__footer a:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.login-card__footer { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--line); text-align: center; }
.login-card__footer p { margin: 0; color: var(--muted); font-size: .66rem; line-height: 1.55; }
.login-card__footer a { display: inline-block; margin-top: .85rem; color: var(--gold); font-size: .66rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.login-access__note { display: block; margin: .75rem 0 0; color: var(--muted); font-size: .6rem; font-weight: 800; letter-spacing: .08em; line-height: 1.5; text-transform: uppercase; }

@media (max-width: 980px) {
    .login-shell {
        grid-template-columns: 1fr;
        grid-template-rows: clamp(118px, 24dvh, 190px) minmax(0, 1fr);
        overflow: hidden;
    }
    .login-story { min-height: 0; padding: 1.2rem 2rem 1.45rem; }
    .login-story::after { inset: .8rem; }
    .login-story::before {
        background:
            linear-gradient(90deg, rgba(7, 5, 6, .58), rgba(7, 5, 6, .12) 72%),
            linear-gradient(0deg, rgba(7, 5, 6, .72), transparent 70%);
    }
    .login-story__hero { object-position: 52% 31%; }
    .login-story__header img { width: 96px; height: 78px; }
    .login-story__content { width: min(700px, 92%); margin: 0; }
    .login-story__content h1 { max-width: 660px; margin: .35rem 0 0; font-size: clamp(2rem, 6vw, 3.35rem); }
    .login-story__content p { display: none; }
    .login-story__pillars { display: none; }
    .login-access { height: auto; min-height: 0; padding: 1rem 1.5rem; }
}

@media (max-width: 640px) {
    .login-shell { grid-template-rows: clamp(104px, 22dvh, 168px) minmax(0, 1fr); }
    .login-story { min-height: 0; padding: .75rem 1rem .9rem; }
    .login-story::after { inset: .55rem; }
    .login-story__texture { background-size: 52px 52px; }
    .login-story__header img { width: 72px; height: 58px; }
    .login-story__header span { display: none; }
    .login-story__content { width: 100%; margin: 0; }
    .login-overline { display: none; }
    .login-story__content h1 { max-width: 520px; margin: 0; font-size: clamp(1.55rem, 7.5vw, 2.15rem); }
    .login-access { align-items: center; padding: .55rem .75rem .7rem; }
    .login-card { padding: 1.15rem; border-radius: 20px; }
    .login-card__heading h2 { margin: .55rem 0 .35rem; font-size: 1.85rem; }
    .login-card__heading p { font-size: .75rem; }
    .login-form { gap: .75rem; margin-top: 1rem; }
    .login-form__options { gap: .5rem; }
    .login-check { font-size: .62rem; }
    .login-field input[type="text"], .login-field input[type="password"] { min-height: 48px; font-size: 16px; }
    .login-submit { min-height: 50px; }
    .login-card__footer { margin-top: .9rem; padding-top: .8rem; }
    .login-card__footer a { margin-top: .6rem; }
    .login-access__note { margin-top: .45rem; font-size: .56rem; }
}

@media (max-width: 980px) and (max-height: 700px) {
    .login-shell { grid-template-rows: 88px minmax(0, 1fr); }
    .login-story { padding: .55rem .8rem; }
    .login-story__header img { width: 58px; height: 46px; }
    .login-story__header span, .login-card__heading p, .login-card__footer p, .login-system-theme { display: none; }
    .login-story__content h1 { font-size: 1.45rem; }
    .login-access { padding: .4rem .65rem; }
    .login-card { padding: .8rem 1rem; }
    .login-card__heading h2 { margin: .35rem 0 0; font-size: 1.55rem; }
    .login-form { gap: .5rem; margin-top: .65rem; }
    .login-field { gap: .25rem; }
    .login-field input[type="text"], .login-field input[type="password"] { min-height: 42px; padding-block: .6rem; }
    .login-submit { min-height: 44px; }
    .login-card__footer { margin-top: .55rem; padding-top: .55rem; }
    .login-card__footer a { margin-top: 0; }
}

@media (min-width: 981px) and (max-height: 760px) {
    .login-story { padding-block: 2rem; }
    .login-story__content { margin-block: 2rem; }
    .login-story__content h1 { font-size: clamp(3.4rem, 6vw, 5.8rem); }
    .login-card { padding-block: 2rem; }
    .login-form { margin-top: 1.4rem; }
}

@media (prefers-reduced-motion: reduce) {
    .login-submit, .login-field input { transition: none; }
}
.challenge-editions { display: flex; gap: .55rem; margin-bottom: .8rem; overflow-x: auto; padding-bottom: .25rem; }
.challenge-editions a { min-width: 180px; padding: .7rem .85rem; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.challenge-editions strong,.challenge-editions small { display: block; }
.challenge-editions strong { font-size: .75rem; }.challenge-editions small { margin-top:.2rem;color:var(--muted);font-size:.6rem;text-transform:uppercase; }
.challenge-editions a.is-active { border-color: var(--pink); background: color-mix(in srgb,var(--pink) 7%,var(--surface)); }
.challenge-build-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; margin-bottom: 1.2rem; }
.challenge-build-steps a { padding: .7rem; border-radius: 12px; background: var(--surface-2); color: var(--muted); text-align: center; font-size: .67rem; font-weight: 800; }
.challenge-participants-card,.challenge-publish-card { margin-top: 1rem; }
.challenge-participant-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; margin: 1rem 0; }
.challenge-participant-list label { display: grid; grid-template-columns: auto 1fr auto; align-items:center; gap:.65rem; padding:.75rem; border:1px solid var(--line);border-radius:13px;background:var(--surface-2);cursor:pointer; }
.challenge-participant-list strong,.challenge-participant-list small { display:block; }.challenge-participant-list small,.challenge-participant-list em { color:var(--muted);font-size:.62rem;font-style:normal; }
.challenge-publish-card { display:flex;align-items:center;justify-content:space-between;gap:1rem; }.challenge-publish-card h2 { margin:.3rem 0; }.challenge-publish-card p{margin:0;color:var(--muted);}
.challenge-publish-actions { display:flex;align-items:center;gap:.65rem;flex-wrap:wrap; }.challenge-publish-actions form{margin:0;}
.preview-ribbon { margin-bottom:.8rem;padding:.7rem 1rem;border-radius:999px;background:var(--gold);color:#24150c;text-align:center;font-size:.64rem;font-weight:900;letter-spacing:.08em; }
@media(max-width:760px){.challenge-build-steps{grid-template-columns:1fr 1fr}.challenge-participant-list{grid-template-columns:1fr}.challenge-publish-card{align-items:stretch;flex-direction:column}}
.health-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:1rem; }
.health-card { display:flex;align-items:center;gap:.7rem;padding:.9rem;border:1px solid var(--line);border-radius:16px;background:var(--surface); }
.health-card i { width:11px;height:11px;flex:none;border-radius:50%;background:var(--muted);box-shadow:0 0 0 6px color-mix(in srgb,var(--muted) 10%,transparent); }
.health-card--ok i{background:var(--success);box-shadow:0 0 0 6px color-mix(in srgb,var(--success) 12%,transparent)}.health-card--warning i{background:var(--gold)}.health-card--error i{background:var(--danger)}
.health-card strong,.health-card p{display:block;margin:0}.health-card strong{font-size:.75rem}.health-card p{margin-top:.15rem;color:var(--muted);font-size:.62rem}
.health-metrics{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:1rem 0}.health-metrics div{padding:.75rem;border-radius:12px;background:var(--surface-2)}.health-metrics span,.health-metrics strong{display:block}.health-metrics span{color:var(--muted);font-size:.62rem}.health-metrics strong{margin-top:.25rem;font-size:1.05rem}
.health-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.health-actions form{margin:0}.system-errors{margin-top:1rem}.system-error-list{display:grid;gap:.7rem}.system-error-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.system-error-list__content{min-width:0}.system-error-list dl{display:grid;gap:.45rem;margin:.65rem 0}.system-error-list dl div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:.55rem}.system-error-list dt{color:var(--gold);font-size:.58rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.system-error-list dd{margin:0;color:var(--text);font-size:.68rem;line-height:1.45;overflow-wrap:anywhere}.system-error-list dd span{color:var(--muted)}.system-error-list small{color:var(--muted);font-size:.58rem}.system-error-list button{border:0;background:transparent;color:var(--pink);font-weight:900;cursor:pointer}.system-error-list em{color:var(--success);font-size:.6rem;font-style:normal;font-weight:900}
@media(max-width:900px){.health-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.health-grid{grid-template-columns:1fr}}
form.is-submitting button[type="submit"] { opacity:.68;cursor:progress; }
form.is-submitting button[type="submit"]::after { display:inline-block;width:.8em;height:.8em;margin-left:.5rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;content:'';animation:n2-spin .65s linear infinite;vertical-align:-.08em; }
@keyframes n2-spin{to{transform:rotate(360deg)}}
.feed-card,.material-book,.program-card,.admin-card { animation:n2-enter .28s ease both; }
@keyframes n2-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.feed-card,.material-book,.program-card,.admin-card,form.is-submitting button[type="submit"]::after{animation:none}}

.portal-shell { min-height: 100vh; }
.portal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: calc(82px + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) clamp(1.25rem, 5vw, 5rem) 0;
    border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg) 92%, transparent);
    backdrop-filter: blur(18px);
}

.portal-brand { display: flex; align-items: center; gap: .75rem; }
.portal-brand img { width: 54px; height: 54px; object-fit: contain; }
.portal-brand strong, .portal-brand small { display: block; }
.portal-brand strong { font-size: .95rem; }
.portal-brand small { margin-top: .12rem; color: var(--muted); font-size: .67rem; }
.portal-actions { display: flex; align-items: center; gap: .65rem; }
.notification-button { position: relative; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--text); }
.notification-button b { position: absolute; right: -4px; top: -4px; display: grid; min-width: 18px; height: 18px; place-items: center; padding: 0 4px; border-radius: 99px; background: var(--pink); color: white; font-size: .56rem; }
.theme-switch--inline { position: static; width: 38px; height: 38px; }
.avatar-button { display: grid; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 50%; background: linear-gradient(145deg, var(--pink), #721a36); color: white; font-size: .68rem; font-weight: 900; }

.portal-content { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 7vw, 6.5rem) 0; }
.portal-welcome { margin-bottom: 3rem; }
.portal-greeting { display: block; max-width: 100%; color: var(--gold); font-size: clamp(1.1rem, 2.1vw, 1.8rem); font-weight: 800; line-height: 1.4; letter-spacing: .04em; text-wrap: balance; }
.portal-welcome h1 { margin: .7rem 0 .45rem; font-size: clamp(2.6rem, 6vw, 5.5rem); letter-spacing: -.065em; }
.portal-welcome p { margin: 0; color: var(--muted); font-size: clamp(.95rem, 1.5vw, 1.15rem); }
.section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.section-heading h2 { margin: 0; font-size: 1rem; }
.section-heading span { color: var(--muted); font-size: .72rem; }

.program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.program-grid--admin { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.portal-shell--admin .portal-content { max-width: 1100px; padding-top: 2rem; }
.portal-shell--admin .portal-welcome { margin-bottom: 1.8rem; }
.portal-shell--admin .portal-welcome h1 { font-size: clamp(2rem,3.5vw,3rem); }
.portal-shell--admin .program-grid--admin { grid-template-columns: repeat(2,minmax(0,1fr)); }
.portal-shell--admin .program-card--admin { display: grid; grid-template-columns: 78px minmax(0,1fr); border-radius: 18px; box-shadow: none; }
.portal-shell--admin .program-card--admin .program-card__visual { min-height: 0; }
.portal-shell--admin .program-card--admin .program-card__visual img { width: 66px; height: 78px; }
.portal-shell--admin .program-card--admin .program-card__watermark { display: none; }
.portal-shell--admin .program-card--admin .program-card__body { display: flex; flex-direction: column; padding: 1.2rem; }
.portal-shell--admin .program-card--admin h3 { font-size: 1.25rem; margin-top: .75rem; }
.portal-shell--admin .program-card--admin p { font-size: .8rem; min-height: 0; margin-bottom: 1rem; }
.portal-shell--admin .program-card--admin .mini-stats { margin: 0 0 .8rem; gap: .4rem; }
.portal-shell--admin .program-card--admin .mini-stats div { padding: .4rem; border-radius: 7px; }
.portal-shell--admin .program-card--admin .mini-stats strong { font-size: .95rem; }
.portal-shell--admin .program-card--admin .primary-button { min-height: 44px; margin-top: auto; padding: .8rem 1rem; font-size: .65rem; letter-spacing: .06em; }
.student-view-card { border: 1px solid color-mix(in srgb,var(--gold) 25%,var(--line)); background: var(--surface); border-radius: 18px; padding: 1.4rem; margin-top: 1.3rem; }
.student-view-card__heading { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.2rem; }
.student-view-card__icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; color: var(--gold); background: var(--surface-2); font-size: 1.6rem; }
.student-view-card h2 { margin: 0; font-size: .8rem; letter-spacing: .12em; color: var(--gold); }
.student-view-card p { margin: .35rem 0 0; font-size: .78rem; color: var(--muted); }
.student-view-card__links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.student-view-card__links a { display: flex; align-items: center; gap: .65rem; min-height: 68px; border: 1px solid var(--line); border-radius: 12px; padding: .85rem; background: var(--bg); }
.student-view-card__links a:hover { border-color: var(--pink); }
.student-view-card__links a:focus-visible { outline: 2px solid var(--pink); outline-offset: 3px; }
.student-view-card__links strong { flex: 1; font-size: .8rem; }
.student-view-card__links a > span:last-child { color: var(--pink); }
.student-view-card__symbol { display: grid; place-items: center; flex-shrink: 0; width: 32px; height: 32px; font-size: 1.4rem; color: var(--gold); }
@media(min-width:701px) and (max-width:1050px) {
    .portal-shell--admin .program-grid--admin { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
    .portal-shell--admin .program-grid--admin { grid-template-columns: 1fr; }
    .portal-shell--admin .program-card--admin { grid-template-columns: 62px minmax(0,1fr); }
    .portal-shell--admin .program-card--admin .program-card__body { padding: 1rem; }
    .student-view-card { padding: 1rem; }
    .student-view-card__links { grid-template-columns: 1fr; gap: .6rem; }
    .student-view-card__links a { min-height: 60px; }
}
.program-card { overflow: hidden; border: 1px solid color-mix(in srgb, var(--gold) 22%, var(--line)); border-radius: 25px; background: var(--surface); box-shadow: var(--shadow); }
.program-card__visual { position: relative; display: grid; min-height: 210px; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 28%, color-mix(in srgb,var(--pink) 28%,transparent), transparent 56%), linear-gradient(145deg, color-mix(in srgb,var(--accent-deep) 78%,#100c0e), #100c0e 72%); }
.program-card__visual img { position: relative; z-index: 1; width: 130px; height: 130px; object-fit: contain; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .32)); }
.program-card__watermark { position: absolute; right: -25px; top: -42px; color: rgba(255, 255, 255, .035); font-size: 15rem; font-weight: 900; line-height: 1; }
.program-card__body { padding: 1.35rem; }
.program-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--gold); font-size: .65rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.program-card__meta strong { padding: .35rem .55rem; border-radius: 999px; background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success); font-size: .6rem; }
.program-card h3 { margin: .9rem 0 .35rem; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.04em; }
.program-card p { min-height: 2.7em; margin: 0; color: var(--muted); line-height: 1.5; }

/* Compact editorial reminder: important, but smaller than a program card. */
.weekly-pulse-card { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 102px; overflow: hidden; padding: 1rem 1.2rem; border: 1px solid color-mix(in srgb,var(--gold) 42%,transparent); border-radius: 22px; background: linear-gradient(125deg,color-mix(in srgb,var(--pink) 72%,var(--accent-deep)),var(--accent-deep)); color: #fff; box-shadow: 0 14px 34px color-mix(in srgb,var(--accent-deep) 18%,transparent); animation: n2-enter .28s ease both; }
.weekly-pulse-card__copy { min-width: 0; }
.weekly-pulse-card__meta { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; color: rgba(255,255,255,.83); font-size: .64rem; font-weight: 800; letter-spacing: .05em; }
.weekly-pulse-card__status { display: inline-flex; align-items: center; gap: .4rem; text-transform: uppercase; }
.weekly-pulse-card__status i { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #a9f0cf; }
.weekly-pulse-card__meta strong { color: #f8deb5; font-size: .62rem; }
.weekly-pulse-card h3 { margin: .2rem 0 .1rem; color: #fff; font-size: clamp(1.2rem,2.5vw,1.65rem); letter-spacing: -.04em; line-height: 1.15; }
.weekly-pulse-card__copy small { display: block; color: #f4c8d3; font-size: .72rem; font-weight: 700; }
.weekly-pulse-card__action { display: grid; width: 48px; height: 48px; flex: none; place-items: center; border: 1px solid rgba(255,255,255,.6); border-radius: 15px; background: #fff; color: var(--accent-deep); font-size: 1.45rem; font-weight: 800; text-decoration: none; transition: transform .18s ease,box-shadow .18s ease; }
.weekly-pulse-card__action:hover,.weekly-pulse-card__action:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.2); }
@media(max-width:700px) {
    .weekly-pulse-card { min-height: 94px; gap: .65rem; padding: .85rem .95rem; border-radius: 18px; }
    .weekly-pulse-card__meta { gap: .25rem .55rem; font-size: .57rem; }
    .weekly-pulse-card h3 { font-size: 1.24rem; }
    .weekly-pulse-card__copy small { font-size: .63rem; }
    .weekly-pulse-card__action { width: 42px; height: 42px; border-radius: 13px; font-size: 1.25rem; }
}
.daily-progress { display: grid; grid-template-columns: 1fr auto; gap: .6rem; margin: 1.25rem 0; font-size: .75rem; }
.daily-progress strong { color: var(--pink); }
.daily-progress i { grid-column: 1 / -1; height: 7px; overflow: hidden; border-radius: 999px; background: var(--surface-2); }
.daily-progress b { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--pink), var(--pink-2)); }
.mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .55rem; margin: 1.25rem 0; }
.mini-stats div { padding: .75rem .4rem; border-radius: 13px; background: var(--surface-2); text-align: center; }
.mini-stats strong, .mini-stats span { display: block; }
.mini-stats strong { color: var(--gold); font-size: 1.1rem; }
.mini-stats span { margin-top: .15rem; color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.program-card--preview .program-card__visual { min-height: 170px; }
.program-card--preview .program-card__visual img { width: 100px; height: 100px; }
.program-card--preview .program-card__body { display: flex; min-height: 260px; flex-direction: column; }
.program-card--preview .outline-button { margin-top: auto; }
.program-card--materials .program-card__body { display: flex; flex-direction: column; }
.program-card--materials .primary-button, .program-card--materials .outline-button { margin-top: 1.25rem; }
.program-card--tools .program-card__body { display: flex; flex-direction: column; }
.program-card--tools .primary-button, .program-card--tools .outline-button { margin-top: 1.25rem; }
.program-card__visual--tools { isolation: isolate; min-height: 210px; align-items: start; justify-items: start; padding: 1.1rem 1.4rem; }
.program-card__visual--tools img.program-tool-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; filter: none; }
.program-card__visual--tools::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,#0008,transparent 80%); }
.program-card__visual--tools img.program-tool-logo { width: 100px; height: 72px; object-fit: cover; object-position: 50% 62%; }
.program-tool-label { align-self: end; color: #e9caa5; font-size: .55rem; letter-spacing: .17em; }
.tools-intro { margin-bottom: 1.8rem; }
.tools-intro h1 { margin: .65rem 0; font-size: clamp(2rem,5vw,3.5rem); line-height: 1.07; letter-spacing: -.05em; }
.tools-intro h1 em, .tool-feature h2 em { font-family: 'Playfair Display',Georgia,serif; color: var(--pink); }
.tools-intro p { color: var(--muted); line-height: 1.6; }
.tool-feature { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); overflow: hidden; border: 1px solid color-mix(in srgb,var(--gold) 30%,var(--line)); border-radius: 24px; background: var(--surface); box-shadow: var(--shadow); }
.tool-feature:focus-visible { outline: 2px solid var(--pink); outline-offset: 4px; }
.tool-feature__art { position: relative; isolation: isolate; min-height: 430px; overflow: hidden; background: #100c0e; }
.tool-feature__photo { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }
.tool-feature__logo { position: absolute; top: 24px; left: 24px; width: 110px; height: 78px; object-fit: cover; object-position: 50% 62%; }
.tool-feature__badge { position: absolute; bottom: 24px; left: 24px; color: #e9caa5; font-size: .65rem; letter-spacing: .18em; }
.tool-feature__body { padding: clamp(1.5rem,4vw,3.5rem); display: flex; flex-direction: column; justify-content: center; align-items: start; }
.tool-feature h2 { margin: 1rem 0; font-size: clamp(2.2rem,4vw,3.6rem); line-height: 1.04; letter-spacing: -.05em; }
.tool-feature h2 em { display: block; }
.tool-feature p { color: var(--muted); line-height: 1.7; margin: 0; }
.tool-feature__details { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.5rem 0 2rem; }
.tool-feature__details span { border: 1px solid var(--line); padding: .45rem .65rem; border-radius: 6px; color: var(--muted); font-size: .68rem; }
.tool-feature .primary-button { width: 100%; margin-top: auto; }
@media(min-width:1100px) { .program-grid:not(.program-grid--admin) { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .tool-feature { grid-template-columns: 1fr; } .tool-feature__art { min-height: 270px; } .tool-feature__photo { object-position: 50% 63%; } .tool-feature__body { padding: 1.5rem; } .tool-feature h2 { font-size: 2.4rem; } .portal-brand strong { font-size: .84rem; } .portal-brand { gap: .35rem; } }
.program-card__visual--materials { background: radial-gradient(circle at 35% 26%, rgba(226, 189, 135, .3), transparent 42%), radial-gradient(circle at 73% 68%, color-mix(in srgb,var(--pink) 28%,transparent), transparent 42%), linear-gradient(145deg, color-mix(in srgb,var(--accent-deep) 56%,#181116), #0e0b0c 72%); }
.materials-monogram { position: relative; z-index: 2; display: grid; justify-items: center; }
.materials-monogram strong { color: #fff9f5; font-family: "Playfair Display", Georgia, serif; font-size: 4.8rem; line-height: .9; letter-spacing: -.08em; text-shadow: 0 16px 35px rgba(0, 0, 0, .38); }
.materials-monogram span { margin-top: .8rem; color: var(--gold); font-size: .58rem; font-weight: 900; letter-spacing: .22em; }

/* Compact student cards; keep the admin and each program's inner pages unchanged. */
.portal-shell--student .portal-content { max-width: 1120px; }
.portal-shell--student .program-card { display: flex; flex-direction: column; border-radius: var(--n2-card-radius); }
.portal-shell--student .program-card__visual { min-height: 160px; flex-shrink: 0; }
.portal-shell--student .program-card__visual > img:not(.program-tool-photo):not(.program-tool-logo) { width: 104px; height: 104px; }
.portal-shell--student .program-card__body { display: flex; flex: 1; flex-direction: column; gap: .65rem; padding: 1.1rem; }
.portal-shell--student .program-card__meta { flex-wrap: wrap; gap: .4rem; }
.portal-shell--student .program-card h3 { margin: 0; font-size: clamp(1.4rem, 2.2vw, 1.65rem); line-height: 1.2; }
.portal-shell--student .program-card p { min-height: 0; font-size: .9rem; }
.portal-shell--student .daily-progress { gap: .45rem; margin: .1rem 0 .2rem; }
.portal-shell--student .daily-progress i { height: 5px; }
.portal-shell--student .program-card .primary-button { min-height: 48px; margin-top: auto; padding: .8rem 1rem; font-size: .7rem; letter-spacing: .07em; }
.portal-shell--student .materials-monogram strong { font-size: 4rem; }
.portal-shell--student .materials-monogram span { margin-top: .55rem; }
@media (max-width: 640px) {
    .portal-shell--student .portal-header { min-height: calc(64px + env(safe-area-inset-top, 0px)); }
    .portal-shell--student .portal-content { padding-top: 1rem; }
    .portal-shell--student .portal-welcome { margin-bottom: 1.1rem; }
    .portal-shell--student .portal-greeting { font-size: 1rem; letter-spacing: .025em; }
    .portal-shell--student .portal-welcome h1 { margin: .45rem 0 .2rem; font-size: 2rem; line-height: 1.2; overflow-wrap: anywhere; }
    .portal-shell--student .section-heading { margin-bottom: .75rem; }
    .portal-shell--student .program-grid { gap: var(--n2-card-gap); }
    .portal-shell--student .program-card { display: grid; grid-template-columns: var(--n2-card-rail) minmax(0, 1fr); border-radius: var(--n2-card-radius); }
    .portal-shell--student .program-card__visual { min-height: 0; }
    .portal-shell--student .program-card__visual > img:not(.program-tool-photo):not(.program-tool-logo) { width: 72px; height: 72px; }
    .portal-shell--student .program-card__watermark { top: .5rem; right: -2rem; font-size: 9rem; }
    .portal-shell--student .program-card__visual--tools { padding: .5rem .25rem; align-items: center; justify-items: center; }
    .portal-shell--student .program-card__visual--tools img.program-tool-logo { width: 72px; height: 52px; }
    .portal-shell--student .program-tool-label { display: none; }
    .portal-shell--student .program-card__body { min-width: 0; gap: .45rem; padding: var(--n2-card-padding); }
    .portal-shell--student .program-card__meta > span { display: none; }
    .portal-shell--student .program-card__meta { align-items:flex-start; }
    .portal-shell--student .program-card__status { width:100%;justify-content:flex-start;margin-left:0; }
    .portal-shell--student .program-card__new--inline { font-size:.52rem; }
    .portal-shell--student .program-card h3 { font-size: 1.2rem; }
    .portal-shell--student .program-card .primary-button { min-height: var(--n2-card-control); padding: .65rem .8rem; font-size: .65rem; letter-spacing: .035em; gap: .5rem; }
    .portal-shell--student .materials-monogram strong { font-size: 2.7rem; }
    .portal-shell--student .materials-monogram span { font-size: .5rem; letter-spacing: .1em; }
}

.history-programs { margin-top: 2.5rem; }
.history-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.history-card { padding: 1.1rem; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.history-card h3 { margin: .6rem 0 .3rem; }
.history-card p { margin: 0 0 1rem; color: var(--muted); font-size: .72rem; }
.history-card b { color: var(--pink); font-size: .62rem; }

.simple-message { display: grid; min-height: 100vh; place-content: center; justify-items: center; padding: 2rem; text-align: center; }
.simple-message img { width: 100px; height: 100px; object-fit: contain; }
.simple-message h1 { margin: .8rem 0 1.4rem; font-size: clamp(2rem, 5vw, 4rem); }

/* Biblioteca de materiais */
.materials-shell { padding-bottom: 2rem; }
.materials-hero { position: relative; overflow: hidden; margin-bottom: 1.2rem; padding: clamp(2rem, 6vw, 5rem); border: 1px solid color-mix(in srgb, var(--gold) 24%, var(--line)); border-radius: 30px; background: radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--pink) 20%, transparent), transparent 32%), radial-gradient(circle at 10% 100%, color-mix(in srgb, var(--gold) 18%, transparent), transparent 38%), var(--surface); box-shadow: var(--shadow); }
.materials-hero::after { position: absolute; right: -1.5rem; bottom: -5.5rem; color: color-mix(in srgb, var(--gold) 8%, transparent); content: "N²"; font-family: "Playfair Display", Georgia, serif; font-size: clamp(11rem, 25vw, 23rem); font-weight: 700; line-height: 1; pointer-events: none; }
.materials-hero .eyebrow, .materials-hero h1, .materials-hero p { position: relative; z-index: 1; }
.materials-hero h1 { max-width: 760px; margin: .8rem 0 .7rem; font-size: clamp(3.3rem, 8vw, 7.5rem); line-height: .85; letter-spacing: -.07em; }
.materials-hero h1 em { display: block; color: var(--pink); font-family: "Playfair Display", Georgia, serif; font-weight: 700; }
.materials-hero p { max-width: 520px; margin: 0; color: var(--muted); line-height: 1.65; }
.materials-shortcuts { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.materials-shortcuts a { display: inline-flex; align-items: center; min-height: 44px; gap: .6rem; padding: .6rem 1rem; border: 1px solid var(--line); border-radius: 99px; background: var(--surface); font-size: .8rem; font-weight: 700; }
.materials-shortcuts span { color: var(--pink); }
.materials-shell > .materials-category { margin-top: 1.25rem; scroll-margin-top: 100px; }
.material-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.material-item { min-width: 0; padding: clamp(1rem, 2vw, 1.5rem); border: 1px solid var(--line); border-radius: 18px; background: var(--surface-2); }
.material-meta { color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.material-meta span { color: var(--muted); letter-spacing: 0; font-weight: 500; }
.material-item h3 { margin: .65rem 0 .35rem; font-size: clamp(1.1rem, 2vw, 1.4rem); line-height: 1.25; }
.material-item p { min-height: 2.8em; margin: 0 0 1rem; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.material-item audio { display: block; width: 100%; height: 48px; margin-bottom: .4rem; }
.material-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.material-open { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .6rem 1rem; border-radius: 12px; background: var(--pink); color: white; font-size: .8rem; font-weight: 800; }
.material-download { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); font-size: .78rem; text-decoration: underline; text-underline-offset: 3px; }
.material-status { display: block; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.material-open { border: 0; cursor: pointer; font-family: inherit; }
.library-category > summary { margin: 0; cursor: pointer; list-style: none; min-height: 90px; }
.library-category > summary::-webkit-details-marker { display: none; }
.library-category > summary > div { flex: 1; }
.library-category > summary p { margin: .35rem 0 0; color: var(--muted); font-size: .8rem; }
.library-category__toggle { color: var(--gold); font-size: 1.6rem; transition: transform .2s; }
.library-category[open] .library-category__toggle { transform: rotate(45deg); }
.library-books { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; padding-top: 1.8rem; }
.library-book { display: block; min-width: 0; }
.library-cover { --cover-accent:#dfba84; position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; min-height: 360px; aspect-ratio: 3/4; padding: clamp(1.25rem,2.2vw,1.8rem); color: #fff9f3; border-radius: 12px; border: 1px solid rgba(223,186,132,.22); background: #171315; box-shadow: 0 14px 25px rgba(0,0,0,.15); transition: transform .2s; }
.library-cover__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.library-cover::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(0,0,0,.16),transparent 30%,rgba(0,0,0,.12) 47%,rgba(0,0,0,.92)); }
.library-book:hover .library-cover { transform: translateY(-4px); }
.library-book:focus-visible { outline: 2px solid var(--pink); outline-offset: 6px; border-radius: 12px; }
.library-cover__brand { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.library-cover__brand img { width: 94px; height: 67px; object-fit: cover; object-position: 50% 62%; }
.library-cover__brand > span { font-size: .52rem; letter-spacing: .16em; line-height: 1.6; text-align: right; color: #ded0c2; }
.library-cover__copy { margin-top: auto; padding-top: 5rem; }
.library-cover__line { display: block; color: var(--cover-accent); text-transform: uppercase; font-size: .56rem; font-weight: 700; letter-spacing: .14em; line-height: 1.5; }
.library-cover h3 { margin: .55rem 0 1.2rem; font-family: 'Playfair Display',Georgia,serif; font-weight: 700; font-size: clamp(1.65rem,2.7vw,2.4rem); line-height: 1.12; letter-spacing: -.035em; overflow-wrap: normal; text-shadow: 0 2px 12px #0008; }
.library-cover__footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid rgba(255,255,255,.25); padding-top: .8rem; }
.library-cover__footer span { font-size: .52rem; letter-spacing: .15em; }
.library-cover__footer b { font: 1.2rem system-ui,sans-serif; color: var(--cover-accent); }
.library-book__caption { display: flex; justify-content: space-between; gap: .5rem; padding-top: .8rem; font-size: .75rem; color: var(--muted); }
.library-book__caption strong { color: var(--text); }
.library-cover--cherry, .library-cover--rose { --cover-accent:#ffb0bd; }
.library-cover--plum, .library-cover--lilac { --cover-accent:#edc2d8; }
.library-cover--forest, .library-cover--sage { --cover-accent:#c7d6ad; }
.library-cover--ink { --cover-accent:#b8cdd9; }
.materials-back-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--muted); font-size: .8rem; }
.pdf-reader { max-width: 980px; }
.pdf-reader__heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; margin: 1rem 0 1.5rem; }
.pdf-reader__heading h1 { font-size: clamp(1.6rem,4vw,2.5rem); margin: .5rem 0; }
.pdf-toolbar { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; padding: .75rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); scroll-margin-top: 15px; }
.pdf-toolbar form { display: flex; align-items: center; gap: .5rem; flex: 1; justify-content: center; }
.pdf-toolbar label { font-size: .8rem; }
.pdf-toolbar a,.pdf-toolbar button,.pdf-toolbar > span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); color: var(--text); cursor: pointer; font: inherit; }
.pdf-toolbar > span { opacity: .35; }
.pdf-toolbar select { width: auto; min-height: 44px; padding: .4rem; font-size: 16px; }
.pdf-page-frame { overflow: auto; margin-top: 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.pdf-page-image { display: block; width: 100%; max-width: none; height: auto; }
.pdf-page-frame.is-zoomed .pdf-page-image { width: 180%; }
.pdf-reader__footer { display: flex; justify-content: space-between; align-items: center; padding-block: 1rem; font-size: .8rem; }
@media(max-width:1000px) { .library-books { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .library-books { grid-template-columns: 1fr; gap: 1.5rem; max-width: 400px; margin-inline: auto; } .library-cover { min-height: 0; aspect-ratio: 3/4; padding: 1.35rem; } .library-cover h3 { font-size: 2rem; } .library-category > summary .eyebrow { font-size: .55rem; letter-spacing: .08em; } .pdf-toolbar [data-pdf-zoom] { width: 100%; } }
.materials-category { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid color-mix(in srgb, var(--gold) 20%, var(--line)); border-radius: 24px; background: var(--surface); box-shadow: var(--shadow); }
.materials-category__heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.materials-category__heading h2 { margin: .2rem 0 0; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.materials-category__icon { display: grid; width: 58px; height: 58px; flex: 0 0 auto; place-items: center; border: 1px solid color-mix(in srgb, var(--pink) 35%, var(--line)); border-radius: 17px; background: color-mix(in srgb, var(--pink) 10%, var(--surface-2)); color: var(--pink); font-size: .72rem; font-weight: 950; }
.materials-category--audio .materials-category__icon { border-color: color-mix(in srgb, var(--gold) 40%, var(--line)); background: color-mix(in srgb, var(--gold) 10%, var(--surface-2)); color: var(--gold); font-size: 1rem; }
.materials-empty { display: grid; min-height: 260px; place-content: center; justify-items: center; padding: 2rem; border: 1px dashed color-mix(in srgb, var(--gold) 25%, var(--line)); border-radius: 18px; background: var(--surface-2); text-align: center; }
.materials-empty > span { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: var(--surface); color: var(--pink); font-size: 1.3rem; }
.materials-empty h3 { margin: 1rem 0 .45rem; font-size: 1.15rem; }
.materials-empty p { max-width: 340px; margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.6; }

.app-header {
    position: sticky;
    top: 0;
    z-index: 100;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    min-height: calc(76px + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) clamp(1rem, 4vw, 4rem) 0;
    border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg) 90%, transparent);
    backdrop-filter: blur(18px);
}

.app-brand { display: flex; align-items: center; gap: .65rem; justify-self: start; }
.app-brand img { width: 48px; height: 48px; object-fit: contain; }
.app-brand strong, .app-brand small { display: block; }
.app-brand strong { font-size: .9rem; }
.app-brand small { color: var(--muted); font-size: .62rem; }
.app-nav { display: flex; align-items: center; gap: .35rem; padding: .3rem; border-radius: 999px; background: var(--surface); }
.app-nav a { padding: .65rem 1rem; border-radius: 999px; color: var(--muted); font-size: .72rem; font-weight: 800; }
.app-nav a.active { background: var(--pink); color: white; }
.app-header__actions { display: flex; align-items: center; justify-self: end; gap: .5rem; }
.avatar-button--photo { overflow: hidden; }
.avatar-button--photo img { width: 100%; height: 100%; object-fit: cover; }
.logout-form { display: flex; flex: 0 0 auto; margin: 0; }
.logout-form button { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-width: 72px; min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--line); border-radius: 99px; background: var(--surface); color: var(--text); font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; }
.logout-form button:hover { border-color: var(--pink); color: var(--pink); }
.logout-form button:focus-visible { outline: 2px solid var(--pink); outline-offset: 3px; }
.account-session { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1rem 1.25rem; margin: 0 0 1.25rem; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.account-session strong { font-size: .95rem; }
.account-session p { color: var(--muted); margin: .3rem 0 0; font-size: .8rem; line-height: 1.45; }
.account-health-shortcut { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .85rem; min-height: 76px; padding: .85rem 1.05rem; margin: -0.55rem 0 1.25rem; border: 1px solid color-mix(in srgb, var(--gold) 30%, var(--line)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--gold) 9%, var(--surface)), var(--surface)); color: var(--text); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.account-health-shortcut:hover { transform: translateY(-2px); border-color: var(--gold); box-shadow: var(--shadow); }
.account-health-shortcut__icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: color-mix(in srgb, var(--success) 15%, var(--surface)); color: var(--success); font-size: 1rem; font-weight: 900; }
.account-health-shortcut strong, .account-health-shortcut small { display: block; }
.account-health-shortcut strong { font-size: .9rem; }
.account-health-shortcut small { margin-top: .2rem; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.account-health-shortcut__arrow { color: var(--pink); font-size: 1.2rem; font-weight: 900; }
@media(max-width:520px){.system-error-list article{align-items:flex-start;flex-direction:column}.system-error-list dl div{grid-template-columns:1fr;gap:.15rem}.account-health-shortcut{min-height:70px}}

.app-main { width: min(1240px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(2rem, 5vw, 4.5rem) 0 6rem; }
.context-back { display: inline-flex; align-items: center; min-height: 44px; margin: 0 0 .75rem; color: var(--muted); font-size: .8rem; font-weight: 700; }
.context-back:hover { color: var(--pink); }
.challenge-total { display: grid; gap: .15rem; margin-top: 1.5rem; }
.challenge-total > span { color: #dfba84; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.challenge-total strong { color: #fff9f5; font-size: 2.5rem; line-height: 1.2; }
.challenge-total strong small { font-size: .85rem; font-weight: 500; }
.challenge-total > small { color: #bdafb4; font-size: .67rem; }
.challenge-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .65fr); gap: 1.2rem; align-items: start; }
.challenge-primary { min-width: 0; }
.challenge-hero { position: relative; display: flex; min-height: 330px; align-items: center; justify-content: space-between; gap: 2rem; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); border: 1px solid color-mix(in srgb, var(--gold) 22%, var(--line)); border-radius: 28px; background: radial-gradient(circle at 85% 20%, color-mix(in srgb,var(--pink) 28%,transparent), transparent 42%), linear-gradient(135deg, var(--accent-deep), #100b0d 68%); color: #fff9f5; box-shadow: var(--shadow); }
.challenge-hero::after { position: absolute; right: -30px; bottom: -90px; content: "N2"; color: rgba(255,255,255,.035); font-size: 18rem; font-weight: 900; line-height: 1; }
.challenge-hero > div { position: relative; z-index: 1; }
.challenge-hero h1 { margin: .7rem 0 .8rem; font-size: clamp(2.8rem, 6vw, 5.8rem); line-height: .9; letter-spacing: -.065em; }
.challenge-hero p { max-width: 480px; margin: 0; color: #bdafb4; line-height: 1.6; }
.score-orbit { display: grid; min-width: 170px; aspect-ratio: 1; place-content: center; border: 1px solid rgba(223,186,132,.45); border-radius: 50%; background: rgba(9,8,9,.5); text-align: center; box-shadow: 0 0 0 18px color-mix(in srgb,var(--pink) 5%,transparent), 0 0 0 36px color-mix(in srgb,var(--pink) 2.5%,transparent); }
.score-orbit span, .score-orbit small { color: #b8aaaf; font-size: .7rem; text-transform: uppercase; }
.score-orbit strong { color: var(--pink-2); font-size: 4.4rem; line-height: 1; }

.checkin-section { margin-top: 1.25rem; }
.feed-section { margin-top: 3.2rem; }
.section-heading--large { margin-bottom: 1rem; }
.section-heading--large h2 { margin: .35rem 0 0; font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.045em; }
.section-heading--checkin { margin-bottom: .75rem; }
.section-heading--checkin h2 { margin: .25rem 0 0; font-size: clamp(1.25rem, 2.4vw, 1.75rem); letter-spacing: -.035em; }
.section-heading--checkin > span { color: var(--muted); font-size: .66rem; }
.feed-heading > span { color: var(--muted); font-size: .66rem; }
.challenge-rules-card { overflow: hidden; margin-top: 1rem; border: 1px solid color-mix(in srgb, var(--gold) 28%, var(--line)); border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--gold) 7%, var(--surface)), var(--surface)); }
.challenge-rules-card > summary { display: grid; grid-template-columns: 42px 1fr auto auto; align-items: center; gap: .8rem; min-height: 74px; padding: .8rem 1rem; cursor: pointer; list-style: none; }
.challenge-rules-card > summary::-webkit-details-marker { display: none; }
.challenge-rules-card__icon { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid color-mix(in srgb, var(--gold) 35%, var(--line)); border-radius: 13px; background: color-mix(in srgb, var(--gold) 10%, var(--surface-2)); color: var(--gold); }
.challenge-rules-card summary small, .challenge-rules-card summary strong { display: block; }
.challenge-rules-card summary small { margin-bottom: .15rem; color: var(--gold); font-size: .56rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.challenge-rules-card summary strong { font-size: .86rem; }
.challenge-rules-card summary em { color: var(--muted); font-size: .62rem; font-style: normal; }
.challenge-rules-card summary b { color: var(--gold); transition: transform .2s ease; }
.challenge-rules-card[open] summary b { transform: rotate(180deg); }
.challenge-points-guide { margin: 0 .8rem .7rem; padding: .85rem; border: 1px solid color-mix(in srgb, var(--gold) 26%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--gold) 6%, var(--surface-2)); }
.challenge-points-guide__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .65rem; }
.challenge-points-guide__head span { font-size: .72rem; font-weight: 900; }
.challenge-points-guide__head small { color: var(--muted); font-size: .6rem; }
.challenge-points-guide__list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .45rem; }
.challenge-points-guide__list > div { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: .5rem; min-width: 0; padding: .48rem .55rem; border-radius: 11px; background: var(--surface); }
.challenge-points-guide__list i { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: color-mix(in srgb,var(--pink) 8%,var(--surface-2)); font-style: normal; }
.challenge-points-guide__list strong { overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.challenge-points-guide__list b { padding: .26rem .42rem; border-radius: 999px; background: color-mix(in srgb,var(--pink) 10%,transparent); color: var(--pink); font-size: .58rem; }
.challenge-rules-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding: 0 .8rem .8rem; }
.challenge-rules-list article { display: grid; grid-template-columns: 34px 1fr; align-items: start; gap: .65rem; padding: .8rem; border: 1px solid var(--line); border-radius: 13px; background: color-mix(in srgb, var(--bg) 68%, transparent); }
.challenge-rules-list article > i { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: var(--surface-2); color: var(--pink); font-style: normal; }
.challenge-rules-list article strong { font-size: .73rem; }
.challenge-rules-list article p { margin: .25rem 0 0; color: var(--muted); font-size: .63rem; line-height: 1.45; }
.checkin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.checkin-card { overflow: hidden; border: 1px solid color-mix(in srgb, var(--pink) 12%, var(--line)); border-radius: 16px; background: linear-gradient(145deg, color-mix(in srgb, var(--pink) 3%, var(--surface)), var(--surface)); }
.checkin-card summary { display: flex; min-height: 82px; align-items: center; gap: .68rem; padding: .78rem .85rem; cursor: pointer; list-style: none; }
.checkin-card summary::-webkit-details-marker { display: none; }
.checkin-card summary > i { display: grid; width: 40px; height: 40px; flex: none; place-items: center; border-radius: 13px; background: color-mix(in srgb, var(--pink) 9%, var(--surface-2)); font-style: normal; font-size: 1.12rem; }
.checkin-card summary > span { flex: 1; min-width: 0; }
.checkin-card summary strong, .checkin-card summary small { display: block; }
.checkin-card summary strong { font-size: .82rem; }
.checkin-card summary small { display: -webkit-box; overflow: hidden; margin-top: .25rem; color: var(--muted); font-size: .66rem; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.checkin-card summary > b { padding: .35rem .55rem; border-radius: 999px; background: color-mix(in srgb, var(--pink) 10%, transparent); color: var(--pink); font-size: .66rem; }
.checkin-card--done { opacity: .78; border-color: color-mix(in srgb, var(--success) 35%, var(--line)); }
.checkin-card--done summary > i, .checkin-card--done summary > b { background: color-mix(in srgb, var(--success) 15%, transparent); color: var(--success); }
.checkin-card--pending { border-color: color-mix(in srgb, var(--gold) 42%, var(--line)); }
.checkin-form { display: grid; gap: .8rem; padding: 0 1rem 1rem; border-top: 1px solid var(--line); }
.checkin-form > label > span { display: block; margin-bottom: .4rem; font-size: .7rem; font-weight: 800; }
.checkin-form textarea { width: 100%; min-height: 80px; resize: vertical; padding: .8rem; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); color: var(--text); }
.upload-zone { position: relative; display: grid; min-height: 150px; place-content: center; justify-items: center; margin-top: 1rem; border: 1.5px dashed color-mix(in srgb, var(--pink) 55%, var(--line)); border-radius: 15px; background: color-mix(in srgb, var(--pink) 5%, var(--bg)); cursor: pointer; text-align: center; }
.upload-zone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.upload-zone > span { display: grid !important; width: 46px; height: 46px; place-items: center; margin-bottom: .6rem !important; border-radius: 50%; background: var(--pink); color: white; font-size: 1.3rem !important; }
.upload-zone strong { font-size: .82rem; }
.upload-zone small { margin-top: .2rem; color: var(--muted); font-size: .65rem; }
.checkin-delete { padding: 0 1rem 1rem; }
.checkin-delete button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: .68rem; text-decoration: underline; }

.checkin-page { width: min(920px,calc(100% - 2rem)); }
.checkin-page__hero { position: relative; display: flex; min-height: 250px; align-items: center; justify-content: space-between; gap: 2rem; overflow: hidden; padding: clamp(1.5rem,4vw,2.8rem); border: 1px solid color-mix(in srgb,var(--gold) 24%,var(--line)); border-radius: 26px; background: radial-gradient(circle at 88% 15%,color-mix(in srgb,var(--pink) 24%,transparent),transparent 40%),linear-gradient(135deg,var(--accent-deep),#0d090a 72%); color: #fff9f5; box-shadow: var(--shadow); }
.checkin-page__hero::after { position: absolute; right: -24px; bottom: -72px; content: 'N2'; color: rgba(255,255,255,.035); font-size: 13rem; font-weight: 950; line-height: 1; }
.checkin-page__hero > * { position: relative; z-index: 1; }
.checkin-page__hero h1 { margin: .55rem 0 .7rem; font-size: clamp(2.5rem,6vw,4.5rem); line-height: .92; letter-spacing: -.06em; }
.checkin-page__hero p { max-width: 500px; margin: 0; color: #c5b6bb; font-size: .78rem; line-height: 1.55; }
.checkin-page__score { display: grid; min-width: 138px; aspect-ratio: 1; place-content: center; flex: 0 0 auto; border: 1px solid rgba(223,186,132,.42); border-radius: 50%; background: rgba(8,6,7,.52); text-align: center; box-shadow: 0 0 0 15px color-mix(in srgb,var(--pink) 4.5%,transparent); }
.checkin-page__score span,.checkin-page__score small { color: #b9aaaf; font-size: .62rem; text-transform: uppercase; }
.checkin-page__score strong { color: var(--pink-2); font-size: 3.2rem; line-height: 1; }
.checkin-lock { display: flex; align-items: center; gap: .85rem; margin-top: 1rem; padding: 1rem; border: 1px solid color-mix(in srgb,var(--gold) 28%,var(--line)); border-radius: 16px; background: color-mix(in srgb,var(--gold) 6%,var(--surface)); }
.checkin-lock i { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 13px; background: color-mix(in srgb,var(--gold) 10%,var(--surface-2)); color: var(--gold); font-style: normal; }
.checkin-lock strong { font-size: .78rem; }.checkin-lock p { margin: .2rem 0 0; color: var(--muted); font-size: .66rem; }
.checkin-page__section { margin-top: 1.4rem; }
.checkin-grid--page { align-items: start; }
.checkin-card--app { padding: .8rem; }
.checkin-card__head { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: .7rem; }
.checkin-card__head > i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: color-mix(in srgb,var(--pink) 9%,var(--surface-2)); font-size: 1rem; font-style: normal; }
.checkin-card__head > span { min-width: 0; }.checkin-card__head strong,.checkin-card__head small { display: block; }
.checkin-card__head strong { font-size: .8rem; }.checkin-card__head small { overflow: hidden; margin-top: .2rem; color: var(--muted); font-size: .63rem; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.checkin-card__head > b { padding: .34rem .5rem; border-radius: 999px; background: color-mix(in srgb,var(--pink) 10%,transparent); color: var(--pink); font-size: .58rem; }
.checkin-form--app { gap: .55rem; padding: .75rem 0 0; border: 0; }
.upload-zone--compact { min-height: 88px; margin-top: 0; grid-template-columns: 36px 1fr; grid-template-rows:auto auto; column-gap: .65rem; align-content:center; justify-items:start; padding:.65rem .8rem; text-align:left; }
.upload-zone--compact > span { grid-row:1/3; width:36px; height:36px; margin:0 !important; font-size:1rem !important; }
.upload-zone--compact strong { align-self:end; }.upload-zone--compact small { align-self:start; }
.checkin-caption textarea { min-height:68px; font-size:16px; }
.checkin-submit { min-height:44px; margin-top:.05rem; }
.checkin-submit:disabled { opacity:.42; cursor:not-allowed; }
.checkin-card__complete,.checkin-card__unavailable { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.7rem; padding:.65rem .75rem; border-radius:11px; background:var(--surface-2); color:var(--muted); font-size:.63rem; }
.checkin-card__complete .checkin-delete { padding:0; }.checkin-card__complete .checkin-delete button { color:var(--danger); }
.checkin-card--done { opacity:1; }.checkin-card--done .checkin-card__head > i,.checkin-card--done .checkin-card__head > b { background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success); }
.checkin-card--locked { opacity:.72; }.checkin-card--locked .checkin-card__head > b { background:var(--surface-2);color:var(--muted); }

.challenge-sidebar { position: sticky; top: 96px; display: grid; gap: 1rem; }
.side-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.side-card__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.side-card h2 { margin: .35rem 0 0; font-size: 1.2rem; }
.side-card__head > a { color: var(--pink); font-size: .68rem; font-weight: 900; }
.mini-ranking { display: grid; gap: .5rem; margin-top: 1rem; }
.mini-ranking > a { display: grid; grid-template-columns: 24px 38px 1fr auto; align-items: center; gap: .55rem; padding: .65rem; border-radius: 13px; background: var(--surface-2); }
.mini-ranking > a > b { color: var(--gold); font-size: .8rem; }
.mini-ranking > a > span:nth-child(3) { min-width: 0; }
.mini-ranking strong, .mini-ranking small { display: block; }
.mini-ranking strong { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.mini-ranking small { margin-top: .15rem; color: var(--muted); font-size: .57rem; }
.mini-ranking em { color: var(--pink); font-size: .7rem; font-style: normal; font-weight: 900; }
.rule-card { background: linear-gradient(145deg, color-mix(in srgb, var(--gold) 10%, var(--surface)), var(--surface)); }
.rule-card p { color: var(--muted); font-size: .75rem; line-height: 1.6; }

.feed-list { display: grid; gap: 1rem; }
.feed-list--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feed-card { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.feed-card__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; }
.feed-author { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.feed-avatar { display: grid; width: 38px; height: 38px; flex: none; place-items: center; overflow: hidden; border-radius: 50%; background: linear-gradient(145deg, var(--pink), #70182f); color: white; font-size: .65rem; font-weight: 900; }
.feed-avatar img { width: 100%; height: 100%; object-fit: cover; }
.feed-author > span:last-child { min-width: 0; }
.feed-author strong, .feed-author small { display: block; }
.feed-author strong { font-size: .8rem; }
.feed-author small { margin-top: .15rem; color: var(--muted); font-size: .62rem; }
.feed-card__header time { color: var(--muted); font-size: .65rem; }
.feed-media { position: relative; display: grid; grid-template-columns: 1fr; overflow: hidden; background: #0c0b0c; touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.feed-media--2 { grid-template-columns: 1fr 1fr; }
.feed-media img { width: 100%; aspect-ratio: 1.12; object-fit: cover; }
.feed-media--2 img { aspect-ratio: .74; }
.feed-double-heart { position: absolute; top: 50%; left: 50%; z-index: 2; color: #fff; opacity: 0; pointer-events: none; font-size: clamp(4.8rem, 14vw, 7rem); line-height: 1; text-shadow: 0 10px 34px rgba(0,0,0,.42); transform: translate(-50%,-50%) scale(.28) rotate(-9deg); }
.feed-media.is-heart-animating .feed-double-heart { animation: feed-heart-pop .76s cubic-bezier(.2,.86,.25,1) both; }
.feed-caption { margin: 0; padding: .9rem 1rem 0; font-size: .78rem; line-height: 1.55; }
.feed-actions { display: flex; align-items: center; gap: .72rem; min-height: 68px; padding: .62rem 1rem; color: var(--muted); }
.feed-actions form { margin: 0; }
.like-button, .comment-count { display: inline-flex; min-height: 48px; align-items: center; gap: .58rem; padding: .35rem .5rem; border-radius: 14px; }
.like-button { border: 0; background: transparent; color: var(--muted); cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.like-button:hover { background: color-mix(in srgb, var(--pink) 8%, transparent); }
.like-button:active { transform: scale(.94); }
.like-button.liked { color: var(--pink); }
.like-button--static { cursor: default; }
.like-button__heart { font-size: 1.68rem; line-height: 1; }
.feed-action-copy { display: grid; gap: .05rem; text-align: left; }
.feed-action-copy strong { color: currentColor; font-size: .82rem; line-height: 1; }
.feed-action-copy small { color: var(--muted); font-size: .56rem; line-height: 1; text-transform: uppercase; }
.comment-count__icon { position: relative; width: 21px; height: 18px; border: 2px solid currentColor; border-radius: 50%; }
.comment-count__icon::after { position: absolute; bottom: -4px; left: 2px; width: 7px; height: 7px; border-bottom: 2px solid currentColor; content: ''; transform: rotate(30deg); }
.feed-actions__support { margin-left: auto; color: var(--gold); }
.comments-list { display: grid; gap: .35rem; padding: 0 1rem .7rem; }
.comment-row { display: flex; align-items: start; justify-content: space-between; gap: .7rem; }
.comment-row p { margin: 0; font-size: .7rem; line-height: 1.45; }
.comment-row form button { border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.comment-form { display: flex; min-height: 58px; align-items: center; border-top: 1px solid var(--line); }
.comment-form input { min-width: 0; min-height: 57px; flex: 1; padding: .95rem 1rem; border: 0; outline: 0; background: transparent; color: var(--text); font-size: .82rem; }
.comment-form input::placeholder { color: color-mix(in srgb, var(--muted) 82%, transparent); }
.comment-form button { min-height: 44px; margin-right: .45rem; padding: 0 .8rem; border: 0; border-radius: 12px; background: color-mix(in srgb, var(--pink) 10%, transparent); color: var(--pink); cursor: pointer; font-size: .66rem; font-weight: 900; }

@keyframes feed-heart-pop {
    0% { opacity: 0; transform: translate(-50%,-50%) scale(.28) rotate(-9deg); }
    28% { opacity: 1; transform: translate(-50%,-50%) scale(1.16) rotate(4deg); }
    52% { opacity: 1; transform: translate(-50%,-50%) scale(.94) rotate(0); }
    78% { opacity: 1; transform: translate(-50%,-50%) scale(1) rotate(0); }
    100% { opacity: 0; transform: translate(-50%,-56%) scale(.88) rotate(0); }
}

/* Feed progressivo: todas as publicações usam o mesmo enquadramento editorial 4:5. */
.feed-media,
.feed-media--2 { display: block; aspect-ratio: 4 / 5; overflow: hidden; }
.feed-media__track { display: flex; width: 100%; height: 100%; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.feed-media__track::-webkit-scrollbar { display: none; }
.feed-media__slide { position: relative; min-width: 100%; height: 100%; flex: 0 0 100%; padding: 0; border: 0; background: #0c0b0c; cursor: default; scroll-snap-align: start; touch-action: pan-x pan-y; }
.feed-media .feed-media__slide img,
.feed-media--2 .feed-media__slide img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .18s ease; will-change: transform; }
.feed-media.is-pinching { z-index: 20; overflow: visible; }
.feed-media__slide.is-pinching { z-index: 2; }
.feed-media__slide.is-pinching img { transition: none; box-shadow: 0 18px 55px rgba(0,0,0,.36); }
.feed-carousel-button { position: absolute; top: 50%; z-index: 3; display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; background: rgba(10,8,9,.68); color: #fff; cursor: pointer; font-size: 1.7rem; backdrop-filter: blur(8px); transform: translateY(-50%); }
.feed-carousel-button--prev { left: .65rem; }
.feed-carousel-button--next { right: .65rem; }
.feed-carousel-dots { position: absolute; bottom: .7rem; left: 50%; z-index: 3; display: flex; gap: .35rem; padding: .35rem .48rem; border-radius: 999px; background: rgba(10,8,9,.56); transform: translateX(-50%); }
.feed-carousel-dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.48); transition: width .2s ease, background .2s ease; }
.feed-carousel-dots i.is-active { width: 16px; border-radius: 999px; background: #fff; }
.feed-loader { display: grid; gap: .75rem; padding-top: .25rem; text-align: center; }
.feed-loader button { justify-self: center; padding: .7rem 1rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--pink); cursor: pointer; font-weight: 900; }
.feed-loader p { margin: 0; color: var(--muted); font-size: .72rem; }
.feed-skeleton { overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.feed-skeleton i,.feed-skeleton b,.feed-skeleton span { display: block; background: linear-gradient(90deg,var(--surface-2),color-mix(in srgb,var(--surface-2) 52%,var(--line)),var(--surface-2)); background-size: 220% 100%; animation: n2-skeleton 1.25s linear infinite; }
.feed-skeleton i { width: 42%; height: 18px; margin: 1rem; border-radius: 999px; }
.feed-skeleton b { width: 100%; aspect-ratio: 4 / 5; }
.feed-skeleton span { width: 64%; height: 16px; margin: 1rem; border-radius: 999px; }
@keyframes n2-skeleton { to { background-position: -220% 0; } }

/* Biblioteca viva e administração compacta. */
.material-continue { display: grid; grid-template-columns: 92px minmax(0,1fr); align-items: center; gap: 1rem; margin: 0 0 1.1rem; padding: 1rem 1.15rem; border: 1px solid color-mix(in srgb,var(--pink) 32%,var(--line)); border-radius: 18px; background: linear-gradient(135deg,color-mix(in srgb,var(--pink) 8%,var(--surface)),var(--surface)); }
.material-continue > img { width:92px;aspect-ratio:4/5;border-radius:12px;object-fit:cover; }
.material-continue h2 { margin: .2rem 0; font-size: 1.15rem; }
.material-continue p { margin: 0; color: var(--muted); font-size: .75rem; }
.material-continue a { display:inline-flex;margin-top:.6rem;color:var(--pink);font-size:.68rem;font-weight:900; }
.material-progress-bar { height:6px;margin-top:.7rem;overflow:hidden;border-radius:999px;background:var(--surface-2); }.material-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--gold));}
.material-book { position: relative; }
.material-new-badge { position: absolute; top: .75rem; right: .75rem; z-index: 2; padding: .35rem .55rem; border-radius: 999px; background: var(--pink); color: #fff; font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.material-simple-card { display: grid; grid-template-columns: minmax(220px,34%) minmax(0,1fr); align-items: center; gap: clamp(1.2rem,4vw,3rem); padding: clamp(1rem,3vw,2rem); border: 1px solid var(--line); border-radius: 26px; background: var(--surface); }
.material-simple-card > img { width: 100%; aspect-ratio: 4 / 5; border-radius: 18px; object-fit: cover; }
.material-simple-card h1 { margin: .45rem 0; font-size: clamp(2.1rem,5vw,4.5rem); line-height: .95; }
.material-simple-card p { color: var(--muted); line-height: 1.65; }
.material-simple-card audio { width: 100%; margin-top: 1rem; }
.material-admin-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.material-admin-card { display: grid; grid-template-columns: 82px minmax(0,1fr); gap: .85rem; padding: .8rem; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.material-admin-card img { width: 82px; aspect-ratio: 4/5; border-radius: 11px; object-fit: cover; }
.material-admin-card h3 { margin: .2rem 0; font-size: .9rem; }
.material-admin-card p { margin: 0; color: var(--muted); font-size: .68rem; }
.material-admin-form { display: grid; gap: .8rem; }
.material-admin-form label { display: grid; gap: .35rem; font-size: .72rem; font-weight: 800; }
.material-admin-form input,.material-admin-form select,.material-admin-form textarea { width: 100%; padding: .78rem; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 16px; }
.material-progress-copy { color: var(--muted); font-size: .72rem; }

/* Catálogo administrativo: uma única área compacta para apresentação, novidade e visibilidade. */
.catalog-manager { margin-top: 1.2rem; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--surface); box-shadow: 0 16px 45px rgba(0,0,0,.06); }
.catalog-manager__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.2rem; padding: clamp(1.1rem,3vw,1.65rem); border-bottom: 1px solid var(--line); }
.catalog-manager__heading h2 { margin: .3rem 0 .25rem; font-size: clamp(1.55rem,3vw,2.15rem); letter-spacing: -.045em; }
.catalog-manager__heading p,.catalog-manager__footer p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.catalog-visibility-form { display: block; }
.catalog-groups { display: grid; gap: .65rem; padding: .8rem; }
.catalog-group { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: var(--bg); }
.catalog-group > summary { display: grid; grid-template-columns: 52px minmax(0,1fr) auto; align-items: center; gap: .8rem; min-height: 72px; padding: .6rem .8rem; cursor: pointer; list-style: none; }
.catalog-group > summary::-webkit-details-marker { display: none; }
.catalog-group > summary > span:nth-child(2) { min-width: 0; }
.catalog-group > summary strong,.catalog-group > summary small { display: block; }
.catalog-group > summary strong { font-size: .86rem; }
.catalog-group > summary small { margin-top: .16rem; color: var(--muted); font-size: .62rem; }
.catalog-group > summary > b { color: var(--pink); transition: transform .2s ease; }
.catalog-group[open] > summary > b { transform: rotate(180deg); }
.catalog-group__cover { display: block; width: 52px; height: 52px; overflow: hidden; border-radius: 12px; background: #140d10; }
.catalog-group__cover img { width: 100%; height: 100%; object-fit: cover; }
.catalog-group__items { display: grid; gap: .45rem; padding: 0 .65rem .65rem; border-top: 1px solid var(--line); }
.catalog-row { display: grid; grid-template-columns: 54px minmax(0,1fr) auto 48px; align-items: center; gap: .75rem; min-height: 76px; padding: .55rem .65rem; border: 1px solid transparent; border-radius: 13px; background: var(--surface); }
.catalog-row--parent { margin-top: .65rem; border-color: color-mix(in srgb,var(--gold) 28%,var(--line)); }
.catalog-row > img { width: 54px; height: 54px; border-radius: 11px; object-fit: cover; background: #120c0f; }
.catalog-row__copy { min-width: 0; }
.catalog-row__copy strong,.catalog-row__copy small,.catalog-row__copy span { display: block; }
.catalog-row__copy strong { font-size: .78rem; line-height: 1.3; }
.catalog-row__copy small { margin-top: .18rem; overflow: hidden; color: var(--muted); font-size: .61rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.catalog-row__copy span { width: max-content; margin-top: .28rem; padding: .2rem .38rem; border-radius: 999px; background: color-mix(in srgb,var(--gold) 13%,transparent); color: var(--gold); font-size: .5rem; font-weight: 900; letter-spacing: .07em; }
.catalog-edit { min-height: 38px; padding: .55rem .7rem; border: 1px solid color-mix(in srgb,var(--pink) 35%,var(--line)); border-radius: 10px; background: transparent; color: var(--pink); cursor: pointer; font-size: .58rem; font-weight: 900; letter-spacing: .06em; }
.module-switch { position: relative; display: block; width: 46px; height: 27px; }
.module-switch input { position: absolute; opacity: 0; pointer-events: none; }
.module-switch i { position: absolute; inset: 0; border-radius: 999px; background: var(--line); cursor: pointer; transition: background .2s ease; }
.module-switch i::after { position: absolute; top: 4px; left: 4px; width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(0,0,0,.2); content: ''; transition: transform .2s ease; }
.module-switch input:checked + i { background: var(--success); }
.module-switch input:checked + i::after { transform: translateX(19px); }
.module-switch input:focus-visible + i { outline: 2px solid var(--pink); outline-offset: 3px; }
.catalog-subheading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .8rem .65rem .2rem; }
.catalog-subheading strong { font-size: .72rem; }
.catalog-subheading button { border: 0; background: transparent; color: var(--pink); cursor: pointer; font-size: .58rem; font-weight: 900; }
.catalog-manager__footer { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.1rem; border-top: 1px solid var(--line); background: color-mix(in srgb,var(--surface) 94%,transparent); backdrop-filter: blur(14px); }
.catalog-manager__footer .primary-button { min-height: 46px; width: auto; }

.catalog-dialog,.material-dialog { width: min(760px,calc(100% - 1.2rem)); max-height: min(880px,calc(100dvh - 1.2rem)); overflow: hidden; }
.catalog-dialog > form,.material-dialog > form { display: grid; grid-template-rows: auto minmax(0,1fr) auto; width: 100%; max-height: inherit; }
.catalog-form__header,.material-form__header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.2rem; border-bottom: 1px solid var(--line); background: var(--surface); }
.catalog-form__header h2,.material-form__header h2 { margin: .25rem 0 .12rem; font-size: 1.4rem; letter-spacing: -.04em; }
.catalog-form__header p,.material-form__header p { margin: 0; color: var(--muted); font-size: .68rem; }
.catalog-form__header button,.material-form__header button { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); color: var(--text); cursor: pointer; font-size: 1.3rem; }
.catalog-form__body,.material-form__body { display: grid; gap: .75rem; padding: .85rem; overflow-y: auto; background: var(--bg); }
.catalog-form__section,.material-form__section { display: grid; gap: .7rem; padding: .9rem; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.catalog-form__section > div:first-child,.material-form__section-title { display: flex; align-items: center; gap: .55rem; }
.catalog-form__section > div:first-child > span,.material-form__section-title > span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: color-mix(in srgb,var(--gold) 14%,transparent); color: var(--gold); font-size: .56rem; font-weight: 900; }
.catalog-form__section label,.material-form__section label { display: grid; gap: .35rem; color: var(--text); font-size: .68rem; font-weight: 800; }
.catalog-form__section label small,.material-form__section label small { color: var(--muted); font-size: .58rem; font-weight: 500; }
.catalog-form__section input,.catalog-form__section select,.catalog-form__section textarea,.material-form__section input,.material-form__section select,.material-form__section textarea { width: 100%; min-height: 46px; padding: .72rem; border: 1px solid var(--line); border-radius: 10px; outline: 0; background: var(--surface-2); color: var(--text); font: inherit; font-size: 16px; }
.catalog-form__section input:focus,.catalog-form__section select:focus,.catalog-form__section textarea:focus,.material-form__section input:focus,.material-form__section select:focus,.material-form__section textarea:focus { border-color: var(--pink); box-shadow: 0 0 0 3px color-mix(in srgb,var(--pink) 10%,transparent); }
.catalog-cover-preview { position: relative; display: grid; min-height: 130px; place-items: center; overflow: hidden; border: 1px dashed color-mix(in srgb,var(--gold) 45%,var(--line)); border-radius: 13px; background: var(--surface-2); cursor: pointer; }
.catalog-cover-preview img { width: 100%; height: 150px; object-fit: cover; }
.catalog-cover-preview > i { color: var(--muted); font-size: .68rem; font-style: normal; }
.catalog-cover-preview input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.catalog-form__footer,.material-form__footer { display: flex; justify-content: end; gap: .65rem; padding: .85rem 1rem; border-top: 1px solid var(--line); background: var(--surface); }
.catalog-form__footer button,.material-form__footer button { width: auto; min-height: 46px; }

.material-admin-list { display: grid; gap: .55rem; }
.material-admin-row { display: grid; grid-template-columns: 68px minmax(0,1fr) auto auto; align-items: center; gap: .85rem; padding: .65rem; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.material-admin-row > img { width: 68px; aspect-ratio: 4/5; border-radius: 10px; object-fit: cover; }
.material-admin-row__copy { min-width: 0; }
.material-admin-row__copy h2 { margin: .14rem 0; font-size: .9rem; }
.material-admin-row__copy p { margin: 0; overflow: hidden; color: var(--muted); font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.material-admin-row__status { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; justify-content: end; max-width: 150px; }
.material-admin-row__status span,.material-admin-row__status b { padding: .26rem .4rem; border-radius: 999px; font-size: .5rem; letter-spacing: .06em; }
.material-admin-row__status span { background: color-mix(in srgb,var(--success) 13%,transparent); color: var(--success); }
.material-admin-row__status span.is-hidden { background: var(--surface-2); color: var(--muted); }
.material-admin-row__status b { background: color-mix(in srgb,var(--pink) 13%,transparent); color: var(--pink); }
.material-admin-row__status small { width: 100%; color: var(--muted); text-align: right; font-size: .55rem; }
.program-card__new { position: absolute; top: .7rem; right: .7rem; z-index: 4; padding: .36rem .55rem; border-radius: 999px; background: var(--pink); color: #fff; font-size: .56rem; font-weight: 900; letter-spacing: .08em; box-shadow: 0 7px 18px rgba(226,31,89,.3); }
.program-card__status { display:flex;align-items:center;justify-content:flex-end;gap:.38rem;min-width:0;margin-left:auto;flex-wrap:wrap; }
.program-card__new--inline { position:static;top:auto;right:auto;display:inline-flex;align-items:center;max-width:100%;padding:.32rem .52rem;border:1px solid color-mix(in srgb,var(--pink) 28%,var(--line));background:color-mix(in srgb,var(--pink) 10%,var(--surface));box-shadow:none;color:var(--pink);line-height:1;white-space:nowrap; }
.program-card__lock { position:absolute;right:.7rem;bottom:.7rem;z-index:4;display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(12,8,10,.78);box-shadow:0 8px 24px rgba(0,0,0,.28); }
.program-card__meta strong.is-locked { background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold); }

.catalog-entry-card { display:grid;grid-template-columns:58px minmax(0,1fr) auto 42px;align-items:center;gap:1rem;margin-top:1.2rem;padding:1rem 1.15rem;border:1px solid color-mix(in srgb,var(--gold) 30%,var(--line));border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 7%,var(--surface)),var(--surface));box-shadow:0 14px 40px rgba(0,0,0,.06);transition:transform .2s ease,border-color .2s ease; }
.catalog-entry-card:hover { transform:translateY(-2px);border-color:var(--pink); }
.catalog-entry-card__icon { display:grid;width:58px;height:58px;place-items:center;border-radius:16px;background:linear-gradient(145deg,var(--pink),#87152f);color:#fff;font-size:1.55rem; }
.catalog-entry-card__copy strong,.catalog-entry-card__copy small { display:block; }
.catalog-entry-card__copy strong { margin:.2rem 0;font-size:1rem; }
.catalog-entry-card__copy small { color:var(--muted);font-size:.68rem;line-height:1.4; }
.catalog-entry-card__stats { display:grid;justify-items:end; }
.catalog-entry-card__stats b { font-size:1.3rem; }
.catalog-entry-card__stats small,.catalog-entry-card__stats i { color:var(--muted);font-size:.58rem;font-style:normal; }
.catalog-entry-card__stats i { margin-top:.2rem;color:var(--gold); }
.catalog-entry-card__arrow { color:var(--pink);font-size:1.35rem; }

.catalog-page { width:min(1180px,calc(100% - 2rem)); }
.catalog-page__hero { display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:1rem 0 1.2rem;padding:clamp(1rem,3vw,1.6rem);border:1px solid var(--line);border-radius:22px;background:var(--surface); }
.catalog-page__hero h1 { margin:.35rem 0 .25rem;font-size:clamp(2rem,5vw,4rem);letter-spacing:-.055em; }
.catalog-page__hero p { margin:0;color:var(--muted); }
.catalog-page__hero .outline-button { width:auto;flex:none; }
.catalog-bulk-form { display:grid;gap:.8rem; }
.catalog-bulk-bar { position:sticky;top:.65rem;z-index:12;display:grid;grid-template-columns:auto 160px minmax(260px,1fr) auto;align-items:end;gap:.7rem;padding:.8rem;border:1px solid color-mix(in srgb,var(--gold) 32%,var(--line));border-radius:17px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 16px 42px rgba(0,0,0,.12);backdrop-filter:blur(16px);opacity:.72; }
.catalog-bulk-bar.is-active { opacity:1;border-color:color-mix(in srgb,var(--pink) 44%,var(--line)); }
.catalog-bulk-bar > strong { align-self:center;padding-inline:.35rem;font-size:.72rem;white-space:nowrap; }
.catalog-bulk-bar label { display:grid;gap:.28rem;color:var(--muted);font-size:.56rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em; }
.catalog-bulk-bar select { min-height:42px;padding:.55rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-size:.68rem; }
.catalog-bulk-fields { display:grid;grid-template-columns:1fr 1fr;gap:.65rem; }
.catalog-bulk-fields[hidden] { display:none; }
.catalog-bulk-bar .primary-button { width:auto;min-height:42px;padding:.65rem .9rem; }
.catalog-groups--page { padding:0; }
.catalog-page .catalog-row { grid-template-columns:34px 54px minmax(0,1fr) auto auto auto; }
.catalog-select { position:relative;display:grid;width:26px;height:26px;place-items:center;cursor:pointer; }
.catalog-select input { position:absolute;opacity:0; }
.catalog-select i { display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:transparent;font-size:.65rem;font-style:normal;font-weight:900;transition:.18s ease; }
.catalog-select input:checked + i { border-color:var(--pink);background:var(--pink);color:#fff; }
.catalog-select input:focus-visible + i { outline:2px solid var(--pink);outline-offset:2px; }
.catalog-row__state { width:max-content;padding:.3rem .48rem;border-radius:999px;background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success);font-size:.5rem;font-weight:900;letter-spacing:.06em; }
.catalog-row__state--locked { background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold); }
.catalog-row__state--hidden { background:var(--surface-2);color:var(--muted); }
.catalog-row__order { display:inline-flex;gap:.22rem; }
.catalog-row__order button { display:grid;width:32px;height:32px;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-size:.82rem;font-weight:900;cursor:pointer;transition:border-color .18s ease,transform .18s ease; }
.catalog-row__order button:hover:not(:disabled) { border-color:var(--pink);transform:translateY(-1px); }
.catalog-row__order button:disabled { opacity:.28;cursor:not-allowed; }
.resource-card__body-badge { display:inline-flex;width:max-content;margin:0 0 .55rem;padding:.32rem .58rem;border-radius:999px;background:var(--pink);color:#fff;font-size:.56rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }

.resource-card--locked { width:100%;padding:0;color:var(--text);text-align:left;font:inherit;cursor:pointer; }
.resource-card--locked:hover { border-color:var(--gold); }
.resource-card--locked .resource-card__photo { filter:saturate(.55) brightness(.75); }
.resource-card__lock { position:absolute;right:.5rem;bottom:.5rem;z-index:3;display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:rgba(12,8,10,.8); }
.locked-card-notice { width:min(390px,calc(100% - 1.5rem));padding:1.4rem;border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));border-radius:24px;background:var(--surface);color:var(--text);text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.35); }
.locked-card-notice::backdrop { background:rgba(10,7,8,.72);backdrop-filter:blur(6px); }
.locked-card-notice > button:first-child { position:absolute;top:.75rem;right:.75rem;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--text);font-size:1.15rem;cursor:pointer; }
.locked-card-notice > span { display:grid;width:66px;height:66px;margin:.3rem auto .9rem;place-items:center;border-radius:20px;background:color-mix(in srgb,var(--gold) 14%,transparent);font-size:1.7rem; }
.locked-card-notice h2 { margin:0;font-size:1.6rem; }
.locked-card-notice p { margin:.5rem 0 1.1rem;color:var(--muted); }
.locked-card-notice .primary-button { width:100%; }

@media (max-width: 760px) {
    .feed-carousel-button { display: none; }
    .material-simple-card { grid-template-columns: 1fr; }
    .material-admin-grid { grid-template-columns: 1fr; }
    .catalog-manager__heading { align-items: start; flex-direction: column; }
    .catalog-row { grid-template-columns: 48px minmax(0,1fr) auto; gap: .55rem; }
    .catalog-row > img { width: 48px; height: 48px; }
    .catalog-row__copy small { display: none; }
    .module-switch { grid-column: 3; grid-row: 1; justify-self: end; }
    .catalog-edit { grid-column: 3; grid-row: 2; min-height: 32px; padding: .4rem .55rem; }
    .catalog-row > img { grid-column: 1; grid-row: 1 / span 2; }
    .catalog-row__copy { grid-column: 2; grid-row: 1 / span 2; }
    .catalog-row--material .catalog-edit { grid-row: 1 / span 2; }
    .catalog-manager__footer { align-items: stretch; flex-direction: column; }
    .catalog-manager__footer .primary-button { width: 100%; }
    .material-admin__title { align-items: stretch; flex-direction: column; }
    .material-admin-row { grid-template-columns: 58px minmax(0,1fr) auto; gap: .6rem; }
    .material-admin-row > img { width: 58px; }
    .material-admin-row__status { grid-column: 2; justify-content: start; max-width: none; }
    .material-admin-row__status small { width: auto; text-align: left; }
    .material-admin-row > .catalog-edit { grid-column: 3; grid-row: 1 / span 2; }
    .catalog-form__footer,.material-form__footer { display: grid; grid-template-columns: 1fr 1fr; }
    .catalog-form__footer button,.material-form__footer button { width: 100%; padding-inline: .55rem; }
    .catalog-entry-card { grid-template-columns:50px minmax(0,1fr) 28px;gap:.75rem;padding:.8rem; }
    .catalog-entry-card__icon { width:50px;height:50px;border-radius:14px; }
    .catalog-entry-card__stats { display:none; }
    .catalog-page { width:min(100% - 1rem,1180px); }
    .catalog-page__hero { align-items:stretch;flex-direction:column; }
    .catalog-page__hero .outline-button { width:100%; }
    .catalog-bulk-bar { top:.35rem;grid-template-columns:1fr 1fr; }
    .catalog-bulk-bar > strong { grid-column:1 / -1; }
    .catalog-bulk-fields { grid-column:1 / -1; }
    .catalog-bulk-bar .primary-button { width:100%; }
    .catalog-page .catalog-row { grid-template-columns:28px 48px minmax(0,1fr) auto; }
    .catalog-page .catalog-row > img { grid-column:2;grid-row:1 / span 2; }
    .catalog-page .catalog-row__copy { grid-column:3;grid-row:1 / span 2; }
    .catalog-page .catalog-select { grid-column:1;grid-row:1 / span 2; }
    .catalog-page .catalog-row__state { grid-column:4;grid-row:1; }
    .catalog-page .catalog-edit { grid-column:4;grid-row:2; }
    .catalog-page .catalog-row__order { grid-column:2 / 5;grid-row:3;justify-self:end; }
}
@media (prefers-reduced-motion: reduce) {
    .feed-media__track { scroll-behavior: auto; }
    .feed-skeleton i,.feed-skeleton b,.feed-skeleton span { animation: none; }
}
.empty-state { display: grid; min-height: 240px; place-content: center; justify-items: center; padding: 2rem; border: 1px dashed var(--line); border-radius: 22px; text-align: center; }
.empty-state > span { color: var(--pink); font-size: 2rem; }
.empty-state h3 { margin: .7rem 0 .3rem; }
.empty-state p { margin: 0; color: var(--muted); }

.page-intro { margin-bottom: 2rem; }
.page-intro h1 { margin: .55rem 0 .4rem; font-size: clamp(2.8rem, 6vw, 5.8rem); letter-spacing: -.065em; }
.page-intro p { margin: 0; color: var(--muted); }
.page-intro--row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.filter-tabs { display: inline-flex; gap: .35rem; margin-bottom: 2rem; padding: .35rem; border-radius: 999px; background: var(--surface); }
.filter-tabs a { padding: .7rem 1.2rem; border-radius: 999px; color: var(--muted); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.filter-tabs a.active { background: var(--pink); color: white; }
.podium { display: flex; min-height: 330px; align-items: end; justify-content: center; gap: .8rem; overflow: hidden; padding: 2rem 1rem 0; border: 1px solid color-mix(in srgb, var(--gold) 22%, var(--line)); border-radius: 26px; background: radial-gradient(circle at 50% 5%, color-mix(in srgb,var(--pink) 26%,transparent), transparent 44%), linear-gradient(145deg, var(--accent-deep), #100c0d 72%); color: #fff; }
.podium__person { display: grid; width: min(29%, 210px); justify-items: center; text-align: center; }
.podium__crown { min-height: 30px; color: var(--gold); font-size: 1.6rem; }
.podium__avatar { display: grid; width: 82px; height: 82px; place-items: center; overflow: hidden; border: 3px solid rgba(255,255,255,.18); border-radius: 50%; background: linear-gradient(145deg,var(--pink),#731930); font-weight: 900; }
.podium__person--1 .podium__avatar { width: 102px; height: 102px; border-color: var(--gold); }
.podium__avatar img { width: 100%; height: 100%; object-fit: cover; }
.podium__person > strong { margin-top: .65rem; font-size: .85rem; }
.podium__person > small { margin: .25rem 0 .6rem; color: var(--gold); font-size: .7rem; }
.podium__person > i { display: grid; width: 100%; height: 95px; place-items: center; border-radius: 18px 18px 0 0; background: #50182a; font-size: 1.5rem; font-style: normal; font-weight: 900; }
.podium__person--1 > i { height: 135px; background: linear-gradient(#a72c4e,#551426); }
.podium__person--3 > i { height: 72px; background: #35101c; }
.ranking-list { display: grid; gap: .55rem; margin-top: 1rem; }
.ranking-row { display: grid; grid-template-columns: 38px 48px 1fr auto; align-items: center; gap: .8rem; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.ranking-row--you { border-color: color-mix(in srgb, var(--pink) 52%, var(--line)); background: color-mix(in srgb, var(--pink) 7%, var(--surface)); }
.ranking-row > b { color: var(--gold); }
.ranking-row > span:nth-child(3) strong, .ranking-row > span:nth-child(3) small, .ranking-row > em small { display: block; }
.ranking-row > span:nth-child(3) strong { font-size: .82rem; }
.ranking-row > span:nth-child(3) small { margin-top: .2rem; color: var(--muted); font-size: .64rem; }
.ranking-row > em { color: var(--pink); text-align: right; font-size: 1.1rem; font-style: normal; font-weight: 900; }
.ranking-row > em small { color: var(--muted); font-size: .56rem; text-transform: uppercase; }

.profile-hero { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.2rem; padding: clamp(1.4rem,4vw,2.5rem); border: 1px solid var(--line); border-radius: 25px; background: var(--surface); }
.profile-avatar { display: grid; width: 112px; height: 112px; place-items: center; overflow: hidden; border: 3px solid var(--gold); border-radius: 50%; background: linear-gradient(145deg,var(--pink),#721a36); font-size: 1.5rem; font-weight: 900; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-hero h1 { margin: .4rem 0 .25rem; font-size: clamp(2rem,5vw,4rem); letter-spacing: -.055em; }
.profile-hero p { margin: 0; color: var(--muted); }
.profile-actions { display: flex; align-items: center; gap: .55rem; margin-top: .9rem; }
.profile-actions a, .profile-actions button { display: inline-flex; min-height: 38px; align-items: center; justify-content: center; padding: .55rem .85rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-2); color: var(--text); cursor: pointer; font-size: .65rem; font-weight: 850; }
.profile-actions button { border-color: color-mix(in srgb, var(--pink) 34%, var(--line)); color: var(--pink); }
.profile-actions form { margin: 0; }
.profile-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; }
.profile-stats div { min-width: 90px; padding: .9rem; border-radius: 15px; background: var(--surface-2); text-align: center; }
.profile-stats strong, .profile-stats span { display: block; }
.profile-stats strong { color: var(--pink); font-size: 1.2rem; }
.profile-stats span { margin-top: .2rem; color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.history-hero { margin-bottom: 2rem; padding: clamp(1.5rem,4vw,3rem); border: 1px solid color-mix(in srgb,var(--gold) 22%,var(--line)); border-radius: 25px; background: linear-gradient(145deg,#35101b,#100c0e); color: white; }
.history-hero h1 { margin: .6rem 0 .35rem; font-size: clamp(2.5rem,6vw,5.5rem); letter-spacing: -.06em; }
.history-hero p { margin: 0; color: #ad9fa3; }
.history-layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(280px,.6fr); gap: 1rem; align-items: start; }
.history-layout > aside { position: sticky; top: 95px; }

.narrow-page { width: min(880px, calc(100% - 2rem)); }
.notification-list { display: grid; gap: .6rem; }
.notification-row { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: .8rem; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.notification-row--unread { border-color: color-mix(in srgb,var(--pink) 38%,var(--line)); background: color-mix(in srgb,var(--pink) 5%,var(--surface)); }
.notification-row > i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: var(--surface-2); color: var(--pink); font-style: normal; }
.notification-row--ranking > i { color: var(--gold); }
.notification-row--admin > i { background: linear-gradient(145deg, #4c1527, var(--pink)); color: white; font-size: .72rem; font-weight: 900; }
.notification-row--overtake > i { background: color-mix(in srgb, var(--pink) 12%, var(--surface-2)); }
.notification-row strong, .notification-row small { display: block; }
.notification-row strong { font-size: .8rem; }
.notification-row small { margin-top: .2rem; color: var(--muted); font-size: .68rem; }
.notification-row time { color: var(--muted); font-size: .62rem; }

.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-card { padding: 1.3rem; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.form-card h2 { margin: 0 0 1.2rem; }
.form-card form { display: grid; gap: .9rem; }
.form-card label > span { display: block; margin: 0 0 .4rem .15rem; font-size: .7rem; font-weight: 800; }
.form-card input, .form-card textarea, .form-card select { width: 100%; padding: .85rem; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); color: var(--text); }
.form-card label small { display: block; margin-top: .35rem; color: var(--muted); font-size: .62rem; }
.theme-preference-card { grid-column: 1 / -1; }
.theme-preference-card > h2 { margin: .45rem 0 .35rem; }
.theme-preference-card > p { margin: 0 0 1.2rem; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.theme-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .7rem; }
.theme-option { position: relative; display: grid; min-height: 104px; grid-template-columns: 46px 1fr auto; align-items: center; gap: .7rem; padding: .9rem; border: 1px solid var(--line); border-radius: 16px; background: var(--bg); cursor: pointer; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.theme-option:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--pink) 42%, var(--line)); }
.theme-option input { position: absolute; opacity: 0; pointer-events: none; }
.theme-option__visual { display: grid !important; width: 46px; height: 46px; place-items: center; margin: 0 !important; border-radius: 14px; background: var(--surface-2); color: var(--pink); font-size: 1.35rem !important; }
.theme-option strong, .theme-option small { display: block; }
.theme-option strong { font-size: .8rem; }
.theme-option small { margin-top: .2rem; color: var(--muted); font-size: .6rem; }
.theme-option > i { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: transparent; font-size: .65rem; font-style: normal; }
.theme-option:has(input:checked) { border-color: var(--pink); background: color-mix(in srgb, var(--pink) 7%, var(--bg)); }
.theme-option:has(input:checked) > i { border-color: var(--pink); background: var(--pink); color: white; }
.theme-preference-card .primary-button { width: fit-content; min-width: 210px; margin-top: .2rem; }

.bottom-nav { display: none; }

.admin-main { width: min(1320px, calc(100% - 2rem)); }
.admin-title { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.admin-title h1 { margin: .45rem 0 .3rem; font-size: clamp(2.4rem,5vw,4.5rem); letter-spacing: -.06em; }
.admin-title p { margin: 0; color: var(--muted); }
.admin-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; margin-bottom: .9rem; }
.admin-stats article { padding: 1.1rem; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.admin-stats span, .admin-stats small, .admin-stats strong { display: block; }
.admin-stats span { color: var(--muted); font-size: .68rem; }
.admin-stats strong { margin: .55rem 0 .2rem; font-size: 1.9rem; letter-spacing: -.04em; }
.admin-stats small { color: var(--success); font-size: .62rem; }
.admin-dashboard-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: .9rem; }
.admin-card { overflow: visible; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.admin-card__head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.1rem; border-bottom: 1px solid var(--line); }
.admin-card__head h2 { margin: .35rem 0 0; font-size: 1.2rem; }
.admin-card__head > a { color: var(--pink); font-size: .66rem; font-weight: 900; }
.admin-card__head > strong { color: var(--pink); font-size: .8rem; }
.challenge-admin-hero { margin: 1rem; padding: 1.2rem; border: 1px solid color-mix(in srgb,var(--gold) 22%,var(--line)); border-radius: 16px; background: linear-gradient(145deg,#38121e,#110d0e); color: #fff; }
.challenge-admin-hero h3 { margin: .8rem 0 .25rem; }
.challenge-admin-hero p { margin: 0; color: #a99da0; font-size: .7rem; }
.status-badge { padding: .35rem .55rem; border-radius: 999px; background: color-mix(in srgb,var(--success) 14%,transparent); color: var(--success); font-size: .6rem; font-weight: 900; }
.invite-box { margin: 0 1rem 1rem; padding: 1rem; border: 1px dashed color-mix(in srgb,var(--pink) 45%,var(--line)); border-radius: 14px; }
.invite-box > label { display: block; margin-bottom: .5rem; color: var(--gold); font-size: .62rem; font-weight: 900; text-transform: uppercase; }
.invite-box > div { display: flex; gap: .45rem; }
.invite-box input { min-width: 0; flex: 1; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--muted); }
.invite-box > div button { border: 0; border-radius: 10px; background: var(--pink); color: white; cursor: pointer; font-size: .62rem; font-weight: 900; }
.invite-box form button { margin-top: .6rem; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: .62rem; text-decoration: underline; }
.admin-quick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; padding: 1rem; }
.admin-quick-grid a { padding: .9rem; border: 1px solid var(--line); border-radius: 13px; background: var(--bg); }
.admin-quick-grid i { display: block; margin-bottom: .55rem; color: var(--pink); font-style: normal; font-size: 1.2rem; }
.admin-quick-grid strong, .admin-quick-grid span { display: block; }
.admin-quick-grid strong { font-size: .72rem; }
.admin-quick-grid span { margin-top: .2rem; color: var(--muted); font-size: .58rem; }
.admin-recent-card { grid-column: 1 / -1; }
.admin-notification-card { grid-column: 1 / -1; }
.admin-notification-card form { display: grid; grid-template-columns: .8fr 1fr 1.35fr auto; align-items: end; gap: .75rem; padding: 1rem; }
.admin-notification-card .primary-button { min-width: 210px; }
.admin-notification-card label > span { display: block; margin-bottom: .35rem; font-size: .65rem; font-weight: 800; }
.admin-notification-card input, .admin-notification-card textarea, .admin-notification-card select { width: 100%; padding: .75rem; border: 1px solid var(--line); border-radius: 11px; background: var(--bg); color: var(--text); }
.admin-notification-card textarea { resize: vertical; }
.admin-table { overflow-x: auto; }
.admin-table__head, .admin-table__row { display: grid; align-items: center; gap: 1rem; min-width: 760px; padding: .8rem 1rem; }
.admin-table__head { border-bottom: 1px solid var(--line); color: var(--muted); font-size: .6rem; font-weight: 900; text-transform: uppercase; }
.admin-table__row { border-bottom: 1px solid color-mix(in srgb,var(--line) 70%,transparent); font-size: .72rem; }
.admin-table__row:last-child { border-bottom: 0; }
.admin-table__row strong, .admin-table__row small { display: block; }
.admin-table__row small { margin-top: .15rem; color: var(--muted); font-size: .6rem; }
.admin-table__row b { color: var(--pink); }
.admin-table--recent .admin-table__head, .admin-table--recent .admin-table__row { grid-template-columns: 1.3fr 1fr .5fr .7fr; }
.admin-table--participants .admin-table__head, .admin-table--participants .admin-table__row { grid-template-columns: 1.25fr 1.3fr .8fr .6fr .45fr; }
.admin-table--checkins .admin-table__head, .admin-table--checkins .admin-table__row { grid-template-columns: 1.2fr 1fr .5fr .45fr .8fr .45fr; }
.admin-table--audit .admin-table__head, .admin-table--audit .admin-table__row { grid-template-columns: .8fr .9fr 1fr .8fr 1.2fr; }
.admin-table--comments .admin-table__head, .admin-table--comments .admin-table__row { grid-template-columns: .8fr 1.8fr .8fr .6fr .4fr; }
.admin-thumb { width: 42px; height: 42px; object-fit: cover; border-radius: 9px; }
.status-text { color: var(--muted); font-size: .62rem; font-weight: 900; }
.status-text--completed, .status-text--active { color: var(--success); }
.status-text--pending { color: var(--gold); }
.status-text--blocked, .status-text--deleted { color: var(--pink); }
.participant-cell { display: flex; align-items: center; gap: .6rem; }
.participant-actions { position: relative; }
.participant-actions details { position: relative; }
.participant-actions summary { cursor: pointer; list-style: none; font-size: 1.1rem; }
.action-menu-trigger { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--text); cursor: pointer; font-size: 1.15rem; letter-spacing: .08em; }
.action-menu-trigger:hover,.action-menu-trigger:focus-visible { background: var(--surface-2); color: var(--pink); }
.action-dialog { width: min(430px,calc(100% - 1.5rem)); max-height: min(680px,calc(100dvh - 1.5rem)); margin: auto; padding: 0; overflow: auto; border: 1px solid color-mix(in srgb,var(--gold) 28%,var(--line)); border-radius: 22px; background: var(--surface); color: var(--text); box-shadow: 0 30px 100px rgba(0,0,0,.34); }
.action-dialog::backdrop { background: rgba(10,7,8,.7); backdrop-filter: blur(5px); }
.action-dialog > header { position: sticky; top: 0; z-index: 1; display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.15rem; border-bottom: 1px solid var(--line); background: color-mix(in srgb,var(--surface) 94%,transparent); backdrop-filter: blur(14px); }
.action-dialog > header h2 { margin: .3rem 0 .15rem; font-size: 1.35rem; letter-spacing: -.035em; }
.action-dialog > header p { margin: 0; color: var(--muted); font-size: .7rem; }
.action-dialog > header button { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: var(--bg); color: var(--text); cursor: pointer; font-size: 1.25rem; }
.action-dialog__forms { display: grid; gap: .75rem; padding: 1rem; }
.action-dialog__forms form { display: grid; gap: .65rem; padding: .9rem; border: 1px solid var(--line); border-radius: 15px; background: var(--bg); }
.action-dialog__forms label { color: var(--muted); font-size: .65rem; font-weight: 700; }
.action-dialog__forms input { width: 100%; min-height: 46px; margin-top: .35rem; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--text); font-size: 16px; }
.action-dialog__forms button { min-height: 46px; padding: .7rem; border: 0; border-radius: 10px; background: var(--surface-2); color: var(--text); cursor: pointer; font-size: .68rem; font-weight: 900; }
.action-dialog__forms button.danger { background: color-mix(in srgb,var(--pink) 17%,var(--surface-2)); color: var(--pink); }
.action-popover { position: absolute; right: 0; top: 1.5rem; z-index: 20; display: grid; width: 260px; gap: .5rem; padding: .7rem; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); box-shadow: var(--shadow); }
.action-popover form { display: grid; gap: .4rem; padding-bottom: .5rem; border-bottom: 1px solid var(--line); }
.action-popover form:last-child { padding: 0; border: 0; }
.action-popover label { color: var(--muted); font-size: .58rem; }
.action-popover input { width: 100%; margin-top: .2rem; padding: .55rem; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--text); }
.action-popover button { padding: .55rem; border: 0; border-radius: 8px; background: var(--surface-2); color: var(--text); cursor: pointer; font-size: .6rem; font-weight: 900; }
.action-popover button.danger { background: color-mix(in srgb,var(--pink) 18%,var(--surface-2)); color: var(--pink); }
.admin-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-bottom: .9rem; }
.admin-form-card { margin: 0; }
.admin-form-card textarea { resize: vertical; }
.categories-card { margin-top: .9rem; }
.rules-admin-card { margin-top: .9rem; }
.add-rule-card > summary { padding: 1rem; border-bottom: 1px solid var(--line); color: var(--pink); cursor: pointer; list-style: none; font-size: .7rem; font-weight: 900; }
.add-rule-card > form, .rule-admin-row form { display: grid; gap: .7rem; padding: 1rem; border-bottom: 1px solid var(--line); }
.add-rule-card label > span, .rule-admin-row label > span { display: block; margin-bottom: .3rem; font-size: .65rem; font-weight: 800; }
.add-rule-card input, .add-rule-card textarea, .rule-admin-row input, .rule-admin-row textarea { width: 100%; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--text); }
.rule-admin-list { display: grid; }
.rule-admin-row { border-bottom: 1px solid var(--line); }
.rule-admin-row:last-child { border-bottom: 0; }
.rule-admin-row > summary { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: .8rem; padding: 1rem; cursor: pointer; list-style: none; }
.rule-admin-row > summary i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: var(--surface-2); color: var(--pink); font-style: normal; }
.rule-admin-row > summary strong, .rule-admin-row > summary small { display: block; }
.rule-admin-row > summary small { margin-top: .2rem; color: var(--muted); font-size: .62rem; }
.rule-admin-row > summary em { color: var(--success); font-size: .6rem; font-style: normal; font-weight: 900; }
.category-admin-list { display: grid; }
.category-admin-row { border-bottom: 1px solid var(--line); }
.category-admin-row:last-child { border-bottom: 0; }
.category-admin-row summary { display: grid; grid-template-columns: 46px 1fr auto auto; align-items: center; gap: .8rem; padding: 1rem; cursor: pointer; list-style: none; }
.category-admin-row summary > i { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: var(--surface-2); font-style: normal; }
.category-admin-row summary strong, .category-admin-row summary small { display: block; }
.category-admin-row summary small { margin-top: .2rem; color: var(--muted); font-size: .62rem; }
.category-admin-row summary > b { color: var(--pink); }
.category-admin-row summary > em { color: var(--success); font-size: .6rem; font-style: normal; font-weight: 900; }
.category-admin-row form { display: grid; gap: .7rem; padding: 0 1rem 1rem; }
.category-admin-row label > span { display: block; margin-bottom: .3rem; font-size: .65rem; font-weight: 800; }
.category-admin-row input, .category-admin-row textarea, .category-admin-row select { width: 100%; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--text); }
.inline-actions { display: flex; gap: .6rem; }
.add-participant-card { margin-bottom: .9rem; }
.add-participant-card > summary { padding: 1rem; color: var(--pink); cursor: pointer; list-style: none; font-size: .7rem; font-weight: 900; }
.add-participant-card > form { display: grid; gap: .7rem; padding: 0 1rem 1rem; }
.add-participant-card label > span { display: block; margin-bottom: .3rem; font-size: .65rem; font-weight: 800; }
.add-participant-card input { width: 100%; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--text); }
.comments-admin-card { margin-top: .9rem; }
.table-action { padding: .45rem .6rem; border: 0; border-radius: 8px; background: var(--surface-2); color: var(--text); cursor: pointer; font-size: .58rem; font-weight: 900; }
.table-action.danger { color: var(--pink); }

@media (max-width: 980px) {
    .auth-shell { grid-template-columns: 1fr; }
    .auth-brand { display: none; }
    .auth-card__logo { display: block; }
    .program-grid, .program-grid--admin { grid-template-columns: 1fr; }
    .app-header { grid-template-columns: 1fr auto; }
    .app-nav { display: none; }
    .challenge-layout { grid-template-columns: 1fr; }
    .challenge-sidebar { position: static; grid-template-columns: 1fr; }
    .feed-list--grid { grid-template-columns: 1fr; }
    .profile-hero { grid-template-columns: auto 1fr; }
    .profile-stats { grid-column: 1 / -1; }
    .history-layout { grid-template-columns: 1fr; }
    .history-layout > aside { position: static; }
    .material-list { grid-template-columns: 1fr; }
    .history-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .admin-stats { grid-template-columns: repeat(2,1fr); }
    .admin-dashboard-grid, .admin-form-grid { grid-template-columns: 1fr; }
    .admin-notification-card form { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    input, textarea, select { font-size: 16px !important; }
    .auth-panel { align-items: start; padding: 5.8rem 1.25rem 2rem; }
    .portal-header { min-height: calc(70px + env(safe-area-inset-top, 0px)); padding: env(safe-area-inset-top, 0px) 1rem 0; }
    .portal-brand img { width: 45px; height: 45px; }
    .portal-content { width: min(100% - 1.3rem, 1180px); padding-top: 2.8rem; }
    .portal-welcome { margin-bottom: 2.2rem; }
    .portal-welcome h1 { font-size: 2.8rem; }
    .program-card__visual { min-height: 175px; }
    .program-card__visual img { width: 108px; height: 108px; }
    .program-card__body { padding: 1.05rem; }
    .materials-shell { padding-top: .8rem; }
    .materials-hero { padding: 1.25rem; border-radius: 22px; }
    .materials-hero h1 { font-size: 3.5rem; }
    .materials-hero p { font-size: .78rem; }
    .materials-category { padding: .9rem; border-radius: 20px; }
    .materials-empty { min-height: 220px; padding: 1.4rem; }
    .form-columns { grid-template-columns: 1fr; }
    .app-header { min-height: calc(66px + env(safe-area-inset-top, 0px)); padding: env(safe-area-inset-top, 0px) .8rem 0; }
    .app-brand img { width: 42px; height: 42px; }
    .app-brand small { display: none; }
    .theme-picker > summary { width: 44px; height: 44px; }
    .portal-header { gap: .5rem; }
    .portal-brand { gap: .45rem; min-width: 0; }
    .portal-brand strong { font-size: .8rem; }
    .portal-actions, .app-header__actions { gap: .35rem; flex-shrink: 0; }
    .portal-actions .avatar-button, .app-header__actions .avatar-button { width: 44px; height: 44px; }
    .logout-form button { padding-inline: .6rem; min-width: 66px; }
    .app-brand { min-width: 0; gap: .4rem; }
    .app-brand strong { font-size: .82rem; }
    .app-main { width: min(100% - 1rem, 1240px); padding-top: 1rem; padding-bottom: 7.5rem; }
    .challenge-hero { min-height: 310px; align-items: start; padding: 1.5rem; }
    .challenge-hero h1 { font-size: 3.25rem; }
    .challenge-hero p { padding-right: 3rem; font-size: .78rem; }
    .score-orbit { position: absolute !important; right: 1.1rem; bottom: 1.1rem; min-width: 116px; }
    .score-orbit strong { font-size: 2.8rem; }
    .challenge-total { padding-right: 105px; }
    .challenge-total strong { font-size: 2.2rem; }
    .challenge-total > small { max-width: 140px; }
    .materials-page .app-main { padding-bottom: 2rem; }
    .checkin-grid { grid-template-columns: 1fr; }
    .challenge-rules-card > summary { grid-template-columns: 38px 1fr auto; gap: .65rem; min-height: 68px; padding: .72rem .8rem; }
    .challenge-rules-card__icon { width: 38px; height: 38px; }
    .challenge-rules-card summary em { display: none; }
    .challenge-rules-list { grid-template-columns: 1fr; }
    .challenge-points-guide__head { align-items:flex-start; flex-direction:column; gap:.2rem; }
    .challenge-points-guide__list { grid-template-columns:1fr; }
    .checkin-card summary { min-height: 74px; padding: .68rem .75rem; }
    .checkin-card summary > i { width: 38px; height: 38px; }
    .checkin-page { width:min(100% - 1rem,920px); }
    .checkin-page__hero { min-height:270px; align-items:flex-start; padding:1.35rem; }
    .checkin-page__hero h1 { font-size:3rem; }
    .checkin-page__hero p { max-width:72%; }
    .checkin-page__score { position:absolute; right:1rem; bottom:1rem; min-width:104px; }
    .checkin-page__score strong { font-size:2.45rem; }
    .checkin-grid--page { grid-template-columns:1fr; }
    .feed-section { margin-top: 2.6rem; }
    .feed-heading > span { display: none; }
    .challenge-sidebar { grid-template-columns: 1fr; }
    .feed-media img { aspect-ratio: 1; }
    .feed-actions { gap: .5rem; }
    .feed-actions__support { display: none; }
    .like-button__heart { font-size: 1.82rem; }
    .like-button, .comment-count { padding-inline: .42rem; }
    .page-intro h1 { font-size: 3rem; }
    .podium { min-height: 270px; gap: .3rem; padding-inline: .3rem; }
    .podium__person { width: 32%; }
    .podium__avatar { width: 60px; height: 60px; }
    .podium__person--1 .podium__avatar { width: 74px; height: 74px; }
    .podium__person > strong { max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ranking-row { grid-template-columns: 28px 42px 1fr auto; gap: .55rem; padding: .75rem; }
    .profile-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .profile-identity { width: 100%; }
    .profile-actions { justify-content: center; }
    .profile-actions a, .profile-actions button { min-height: 44px; padding-inline: 1rem; }
    .profile-avatar { width: 92px; height: 92px; }
    .profile-stats { width: 100%; }
    .profile-stats div { min-width: 0; padding: .7rem .3rem; }
    .page-intro--row { align-items: start; flex-direction: column; }
    .notification-row { grid-template-columns: 40px 1fr; }
    .notification-row time { grid-column: 2; }
    .settings-grid { grid-template-columns: 1fr; }
    .theme-options { grid-template-columns: 1fr; }
    .theme-option { min-height: 86px; }
    .theme-preference-card .primary-button { width: 100%; }
    .bottom-nav { position: fixed; right: .65rem; bottom: .65rem; left: .65rem; z-index: 90; display: grid; grid-template-columns: repeat(4,1fr); padding: .55rem .4rem; border: 1px solid var(--line); border-radius: 20px; background: color-mix(in srgb,var(--surface) 94%,transparent); box-shadow: var(--shadow); backdrop-filter: blur(18px); }
    .bottom-nav a { display: grid; justify-items: center; gap: .18rem; color: var(--muted); }
    .bottom-nav i { font-style: normal; }
    .bottom-nav span { font-size: .55rem; font-weight: 800; }
    .bottom-nav a.active { color: var(--pink); }
    .bottom-nav__checkin i { display: grid; width: 33px; height: 33px; place-items: center; margin-top: -1.05rem; border-radius: 50%; background: var(--pink); color: white; box-shadow: 0 8px 20px color-mix(in srgb,var(--pink) 30%,transparent); }
    .admin-title { align-items: start; flex-direction: column; }
    .admin-title h1 { font-size: 3rem; }
    .admin-stats { grid-template-columns: 1fr 1fr; }
    .admin-stats article { padding: .85rem; }
    .admin-stats strong { font-size: 1.5rem; }
    .admin-quick-grid { grid-template-columns: 1fr; }
    .rule-admin-row > summary { grid-template-columns: 38px 1fr; }
    .rule-admin-row > summary em { grid-column: 2; }
    .admin-main { width: min(100% - 1rem,1320px); }
    .history-card-grid { grid-template-columns: 1fr; }
}

/* Shared library/tool card. New resources use partials/resource-card.php. */
.portal-care-overlay { position: fixed; inset: 0; z-index: 500; display: grid; align-items: start; justify-items: end; padding: max(96px, calc(env(safe-area-inset-top) + 76px)) clamp(1rem,4vw,3rem) 1rem; background: rgba(8,5,6,.34); backdrop-filter: blur(6px); animation: portal-care-fade-in .22s ease-out both; }
html:has(.portal-care-overlay) { overflow: hidden; }
.portal-care-notice { position: relative; width: min(420px,100%); overflow: hidden; padding: 1.45rem; border: 1px solid color-mix(in srgb,var(--gold) 45%,var(--line)); border-radius: 24px; background: color-mix(in srgb,var(--surface) 96%,transparent); box-shadow: 0 24px 70px rgba(0,0,0,.32); animation: portal-care-enter .3s cubic-bezier(.2,.8,.2,1) both; }
.portal-care-notice::before { content:''; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,var(--gold),var(--pink)); }
.portal-care-notice__close { position:absolute; top:.8rem; right:.8rem; display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:var(--bg); color:var(--text); font-size:1.5rem; line-height:1; }
.portal-care-notice__close:focus-visible,.portal-care-notice__action:focus-visible { outline:2px solid var(--pink); outline-offset:3px; }
.portal-care-notice__mark { display:grid; place-items:center; width:46px; height:46px; margin-bottom:1rem; border-radius:15px; background:color-mix(in srgb,var(--pink) 12%,var(--surface)); color:var(--pink); font-size:1.2rem; }
.portal-care-notice .eyebrow { padding-right:3rem; }
.portal-care-notice h2 { margin:.55rem 0 .7rem; padding-right:1.5rem; font-size:clamp(1.45rem,4vw,1.9rem); line-height:1.08; letter-spacing:-.04em; }
.portal-care-notice p { margin:0 0 1.2rem; color:var(--muted); font-size:.86rem; line-height:1.6; }
.portal-care-notice__action { width:100%; min-height:50px; }
.portal-care-overlay.is-leaving { pointer-events:none; animation:portal-care-fade-out .2s ease-in both; }
.portal-care-overlay.is-leaving .portal-care-notice { animation:portal-care-exit .2s ease-in both; }
@keyframes portal-care-fade-in { from { opacity:0; } }
@keyframes portal-care-fade-out { to { opacity:0; } }
@keyframes portal-care-enter { from { opacity:0; transform:translateY(-14px) scale(.98); } }
@keyframes portal-care-exit { to { opacity:0; transform:translateY(-10px) scale(.98); } }
@media(max-width:640px) {
    .portal-care-overlay { align-items:end; justify-items:stretch; padding:1rem .7rem calc(.7rem + env(safe-area-inset-bottom)); }
    .portal-care-notice { width:100%; padding:1.25rem; border-radius:24px; animation-name:portal-care-enter-mobile; }
    .portal-care-notice h2 { font-size:1.55rem; }
    .portal-care-notice__mark { width:42px; height:42px; margin-bottom:.8rem; }
    .portal-care-overlay.is-leaving .portal-care-notice { animation-name:portal-care-exit-mobile; }
}
@keyframes portal-care-enter-mobile { from { opacity:0; transform:translateY(28px); } }
@keyframes portal-care-exit-mobile { to { opacity:0; transform:translateY(28px); } }
@media(prefers-reduced-motion:reduce) { .portal-care-overlay,.portal-care-notice,.portal-care-overlay.is-leaving,.portal-care-overlay.is-leaving .portal-care-notice { animation:none; } }
.portal-shell--student .program-card--outings .program-card__visual img.program-tool-logo { width: 42px; height: 31px; }
.resource-shell { width: min(1120px, calc(100% - 2rem)); padding-top: 1.5rem; }
.resource-shell .tools-intro { margin-bottom: 1.25rem; }
.resource-shell .tools-intro h1 { margin: .4rem 0 .6rem; font-size: clamp(1.9rem, 4vw, 2.75rem); }
.resource-shell .tools-intro p { margin: 0; font-size: .88rem; line-height: 1.5; }
.resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--n2-card-gap); }
.resource-card { display: grid; grid-template-columns: 104px minmax(0, 1fr) var(--n2-card-control); min-width: 0; min-height: 140px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--gold) 22%, var(--line)); border-radius: var(--n2-card-radius); background: var(--surface); box-shadow: 0 8px 24px rgba(0, 0, 0, .08); }
.resource-card:hover { border-color: var(--pink); }
.resource-card:focus-visible { outline: 2px solid var(--pink); outline-offset: 4px; }
.resource-card__art { position: relative; isolation: isolate; overflow: hidden; min-height: 140px; background: #100c0e; }
.resource-card__art::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #0005, transparent 55%); }
.resource-card__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; z-index: -2; }
.resource-card__logo { position: absolute; top: 7px; left: 50%; transform: translateX(-50%); width: 72px; height: 52px; object-fit: cover; object-position: 50% 62%; }
.resource-card__body { align-self: center; display: flex; flex-direction: column; gap: .4rem; min-width: 0; padding: 1rem var(--n2-card-padding); }
.resource-card__title { margin: 0; font-size: 1.15rem; font-weight: 750; line-height: 1.25; letter-spacing: -.025em; overflow-wrap: anywhere; }
.resource-card__detail { margin: 0; font-size: .78rem; line-height: 1.4; color: var(--muted); }
.resource-card__action { color: var(--pink); font-size: .78rem; font-weight: 800; line-height: 1.4; }
.resource-card__arrow { display: grid; place-items: center; align-self: center; margin-right: .4rem; min-height: var(--n2-card-control); color: var(--pink); font-size: 1.35rem; }
/* Book covers keep their portrait composition; the brand is a quiet signature. */
.library-book .resource-card__art { align-self: center; min-height: 0; aspect-ratio: 3 / 4; margin: 8px; border-radius: 9px; box-shadow: 0 2px 8px rgba(0, 0, 0, .12); }
.library-book .resource-card__photo { object-position: center; }
.library-book .resource-card__art::after { background: linear-gradient(180deg, #0003, transparent 35%); }
.library-book .resource-card__logo { top: 3px; left: 3px; transform: none; width: 36px; height: 26px; }
.materials-shell .materials-category { margin-top: var(--n2-card-gap); padding: 1rem; border-radius: var(--n2-card-radius); box-shadow: none; }
.materials-shell .materials-category__heading { min-height: 76px; margin: 0; gap: var(--n2-card-gap); }
.materials-shell .materials-category__heading > div { min-width: 0; }
.materials-shell .materials-category__heading h2 { font-size: 1.3rem; }
.materials-shell .materials-category__heading .eyebrow { font-size: .6rem; letter-spacing: .06em; line-height: 1.5; }
.materials-shell .materials-category__icon { width: 48px; height: 48px; border-radius: 14px; }
.materials-shell .resource-grid { padding-top: 1rem; }
.program-card__visual--materials { isolation: isolate; }
.program-card__visual--materials img.program-tool-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 65% 60%; filter: none; }
.program-card__visual--materials img.program-tool-logo { position: absolute; top: 12px; left: 12px; width: 90px; height: 65px; object-fit: cover; object-position: 50% 62%; }
@media (min-width: 1100px) { .resource-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .resource-shell { width: calc(100% - 1.3rem); padding-top: 1rem; }
    .resource-grid { grid-template-columns: 1fr; }
    .resource-card { grid-template-columns: var(--n2-card-rail) minmax(0, 1fr) var(--n2-card-control); min-height: 116px; }
    .resource-card__art { min-height: 116px; }
    .resource-card__body { padding-block: var(--n2-card-padding); }
    .materials-shell .materials-category { padding: var(--n2-card-padding); }
}
@media (max-width: 640px) {
    .portal-shell--student .program-card__visual--materials img.program-tool-logo { top: 8px; left: 4px; width: 72px; height: 52px; }
}
