/* Proshno AI - hand written stylesheet, no build step */

:root {
    --teal-900: #0b3d3a;
    --teal-800: #0f4c48;
    --teal-700: #0f766e;
    --teal-600: #0d9488;
    --teal-500: #14b8a6;
    --teal-100: #ccfbf1;
    --teal-50: #f0fdfa;
    --ink: #152523;
    --ink-soft: #3f5b57;
    --muted: #6b807c;
    --line: #dce7e4;
    --surface: #ffffff;
    --canvas: #f5f9f7;
    --amber: #b45309;
    --amber-soft: #fef3c7;
    --danger: #b42318;
    --danger-soft: #fef3f2;
    --success: #067647;
    --success-soft: #ecfdf3;
    --radius-sm: 8px;
    --radius: 14px;
    --radius-lg: 22px;
    --shadow-sm: 0 1px 2px rgba(15, 76, 72, 0.06);
    --shadow: 0 12px 30px rgba(15, 76, 72, 0.08);
    --shadow-lg: 0 24px 60px rgba(15, 76, 72, 0.16);
    --font-bangla: "Noto Sans Bengali", "Hind Siliguri", "SolaimanLipi", "Kalpurush", "Nirmala UI", "Vrinda", system-ui, sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-bangla);
    color: var(--ink);
    background: var(--canvas);
    font-size: 16px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
    margin: 0 0 0.5em;
    line-height: 1.35;
    color: var(--teal-900);
    font-weight: 700;
}

h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
}

h2 {
    font-size: clamp(1.35rem, 3vw, 1.85rem);
}

h3 {
    font-size: 1.15rem;
}

p {
    margin: 0 0 1rem;
}

a {
    color: var(--teal-700);
    text-decoration: none;
}

a:hover {
    color: var(--teal-600);
}

img {
    max-width: 100%;
    height: auto;
}

ul,
ol {
    margin: 0 0 1rem;
    padding-left: 1.25rem;
}

hr {
    border: 0;
    border-top: 1px solid var(--line);
    margin: 1.25rem 0;
}

:focus-visible {
    outline: 3px solid var(--teal-500);
    outline-offset: 2px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    left: 1rem;
    top: -4rem;
    z-index: 100;
    background: var(--teal-800);
    color: #fff;
    padding: 0.6rem 1rem;
    border-radius: var(--radius-sm);
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 1rem;
    color: #fff;
}

.container {
    width: min(1120px, calc(100% - 2.5rem));
    margin-inline: auto;
}

.container.narrow {
    width: min(720px, calc(100% - 2.5rem));
}

/* Header */

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line);
}

.header-inner {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 74px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    color: var(--teal-900);
    flex-shrink: 0;
}

.brand:hover {
    color: var(--teal-900);
}

.brand-mark {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--teal-600), var(--teal-800));
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    box-shadow: var(--shadow-sm);
}

.brand-mark.small {
    width: 38px;
    height: 38px;
    font-size: 1.05rem;
}

.brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.brand-text strong {
    font-size: 1.05rem;
}

.brand-text small {
    color: var(--muted);
    font-size: 0.72rem;
}

.brand-light {
    color: #fff;
}

.brand-light:hover {
    color: #fff;
}

.brand-light .brand-text small {
    color: rgba(255, 255, 255, 0.72);
}

.nav-toggle {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    margin-left: auto;
    width: 44px;
    height: 44px;
    padding: 0 10px;
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
}

.nav-toggle-bar {
    display: block;
    height: 2px;
    width: 100%;
    background: var(--teal-900);
    border-radius: 2px;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2) {
    opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.primary-nav {
    display: none;
    flex-direction: column;
    gap: 0.25rem;
    position: absolute;
    left: 0;
    right: 0;
    top: 74px;
    padding: 1rem 1.25rem 1.5rem;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow);
}

.primary-nav.is-open {
    display: flex;
}

.primary-nav > a {
    padding: 0.55rem 0.5rem;
    color: var(--ink-soft);
    border-radius: var(--radius-sm);
    font-weight: 600;
}

.primary-nav > a:hover,
.primary-nav > a.is-active {
    background: var(--teal-50);
    color: var(--teal-800);
}

.nav-spacer {
    display: none;
}

.nav-credit {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--teal-100);
    background: var(--teal-50);
    border-radius: 999px;
    color: var(--teal-800) !important;
    font-weight: 700;
    font-size: 0.85rem;
}

.nav-credit .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--teal-500);
}

.inline-form {
    display: inline;
    margin: 0;
}

.link-button {
    background: none;
    border: 0;
    padding: 0.55rem 0.5rem;
    font: inherit;
    font-weight: 600;
    color: var(--ink-soft);
    cursor: pointer;
    border-radius: var(--radius-sm);
}

.link-button:hover {
    color: var(--danger);
    background: var(--danger-soft);
}

.lang-switch {
    display: inline-flex;
    margin: 0;
}

.lang-button {
    border: 1px solid var(--line);
    background: var(--surface);
    border-radius: 999px;
    padding: 0.35rem 0.8rem;
    font: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--teal-800);
    cursor: pointer;
}

.lang-button:hover {
    border-color: var(--teal-500);
}

.lang-switch.light .lang-button {
    background: transparent;
    border-color: rgba(15, 76, 72, 0.2);
}

@media (min-width: 960px) {
    .nav-toggle {
        display: none;
    }

    .primary-nav {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 0.35rem;
        position: static;
        padding: 0;
        border: 0;
        box-shadow: none;
        background: transparent;
        flex: 1;
        justify-content: flex-end;
    }

    .primary-nav > a {
        padding: 0.45rem 0.7rem;
    }

    .nav-spacer {
        display: block;
        flex: 1;
    }

    .link-button {
        padding: 0.35rem 0.5rem;
    }
}

/* Buttons */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.7rem 1.25rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: var(--teal-700);
    color: #fff;
    font: inherit;
    font-weight: 700;
    line-height: 1.4;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
    text-align: center;
}

.button:hover {
    background: var(--teal-800);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--shadow);
}

.button:disabled,
.button.is-disabled {
    background: #9db8b3;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.button-sm {
    padding: 0.45rem 0.95rem;
    font-size: 0.9rem;
}

.button-lg {
    padding: 0.9rem 1.6rem;
    font-size: 1.05rem;
}

.button-block {
    display: flex;
    width: 100%;
}

.button-ghost {
    background: transparent;
    border-color: var(--teal-200, #b7e4dc);
    color: var(--teal-800);
}

.button-ghost:hover {
    background: var(--teal-50);
    color: var(--teal-900);
}

.button-light {
    background: #fff;
    color: var(--teal-800);
}

.button-light:hover {
    background: var(--teal-50);
    color: var(--teal-900);
}

.text-link {
    color: var(--teal-700);
    font-weight: 600;
}

.text-link:hover {
    text-decoration: underline;
}

/* Hero */

.hero {
    position: relative;
    padding: 3rem 0 2.5rem;
    background:
        radial-gradient(circle at 12% 12%, rgba(20, 184, 166, 0.14), transparent 45%),
        radial-gradient(circle at 88% 0%, rgba(13, 148, 136, 0.1), transparent 40%),
        var(--surface);
    border-bottom: 1px solid var(--line);
}

.hero-grid {
    display: grid;
    gap: 2.5rem;
}

.eyebrow {
    display: inline-block;
    margin: 0 0 0.75rem;
    color: var(--teal-700);
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-lead {
    font-size: clamp(1.05rem, 2.2vw, 1.25rem);
    color: var(--ink-soft);
    max-width: 34rem;
}

.hero-note {
    color: var(--muted);
    font-size: 0.95rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1.5rem 0 1.25rem;
}

.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    list-style: none;
    padding: 0;
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.92rem;
}

.hero-points li {
    position: relative;
    padding-left: 1.4rem;
}

.hero-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--teal-500);
}

.hero-visual {
    display: flex;
    justify-content: center;
    align-items: center;
}

.paper-mock {
    position: relative;
    width: min(420px, 100%);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: var(--shadow-lg);
    transform: rotate(1.2deg);
}

.paper-mock-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.9rem;
    border-bottom: 2px solid var(--teal-100);
}

.paper-logo {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--teal-50);
    color: var(--teal-800);
    font-weight: 700;
    border: 1px solid var(--teal-100);
    flex-shrink: 0;
}

.paper-mock-head > div:last-child {
    flex: 1;
}

.paper-line {
    display: block;
    height: 8px;
    width: 70%;
    background: #e8efed;
    border-radius: 999px;
    margin-bottom: 0.45rem;
}

.paper-line.wide {
    width: 100%;
}

.paper-line.short {
    width: 45%;
}

.paper-mock-meta {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.7rem;
    color: var(--muted);
    padding: 0.8rem 0;
}

.paper-mock-body {
    display: grid;
    gap: 0.15rem;
}

.paper-options {
    display: flex;
    gap: 0.4rem;
    margin: 0.5rem 0 0.9rem;
}

.paper-chip {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--line);
    border-radius: 50%;
    font-size: 0.75rem;
    color: var(--muted);
}

.paper-badge {
    position: absolute;
    right: -0.5rem;
    bottom: 1.25rem;
    background: var(--teal-800);
    color: #fff;
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    box-shadow: var(--shadow);
}

@media (min-width: 900px) {
    .hero {
        padding: 4.5rem 0 4rem;
    }

    .hero-grid {
        grid-template-columns: 1.05fr 0.95fr;
        align-items: center;
        gap: 3.5rem;
    }
}

/* Sections and cards */

.section {
    padding: 3.5rem 0;
}

.section-tight {
    padding: 2.25rem 0;
}

.section-tint {
    background: var(--surface);
    border-block: 1px solid var(--line);
}

.section-heading {
    max-width: 640px;
    margin-bottom: 2rem;
}

.section-heading p {
    color: var(--muted);
}

.page-hero {
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    padding: 3rem 0 2.5rem;
}

.page-lead {
    color: var(--ink-soft);
    max-width: 40rem;
    font-size: 1.08rem;
}

.page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
}

.card + .card {
    margin-top: 1.5rem;
}

.card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.card-head h2 {
    margin: 0;
}

.feature-grid {
    display: grid;
    gap: 1rem;
}

.feature-card {
    padding: 1.5rem;
}

.feature-card h3 {
    margin-bottom: 0.4rem;
}

.feature-card p {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.95rem;
}

.feature-icon {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 1rem;
    border-radius: 12px;
    background: var(--teal-50);
    color: var(--teal-700);
}

.feature-icon svg {
    width: 24px;
    height: 24px;
}

@media (min-width: 720px) {
    .feature-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }
}

@media (min-width: 1024px) {
    .feature-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Sample section */

.sample-grid {
    display: grid;
    gap: 2.5rem;
}

.steps-list {
    list-style: none;
    padding: 0;
    margin: 1.5rem 0 0;
    display: grid;
    gap: 0.9rem;
}

.steps-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    color: var(--ink-soft);
}

.steps-list span {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--teal-700);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
}

.sample-paper {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.75rem;
    box-shadow: var(--shadow);
}

.sample-head {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--teal-100);
    margin-bottom: 1rem;
}

.sample-head h3 {
    margin: 0;
    font-size: 1.05rem;
}

.sample-head p {
    margin: 0;
    font-size: 0.8rem;
    color: var(--muted);
}

.sample-logo {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--teal-50);
    color: var(--teal-800);
    font-weight: 700;
    border: 1px solid var(--teal-100);
}

.sample-instruction {
    font-size: 0.85rem;
    color: var(--muted);
    font-style: italic;
}

.sample-paper h4 {
    margin: 1.25rem 0 0.6rem;
    font-size: 0.95rem;
    color: var(--teal-800);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sample-question {
    font-size: 0.95rem;
    margin-bottom: 0.4rem;
}

.sample-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.3rem 1rem;
    font-size: 0.9rem;
    color: var(--ink-soft);
}

@media (min-width: 900px) {
    .sample-grid {
        grid-template-columns: 0.9fr 1.1fr;
        align-items: start;
    }
}

/* Pricing */

.pricing-grid {
    display: grid;
    gap: 1.25rem;
}

.pricing-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.pricing-card h2,
.pricing-card h3 {
    margin: 0;
    font-size: 1.15rem;
}

.pricing-card .price {
    margin: 0.5rem 0 0;
    font-size: 2rem;
    font-weight: 800;
    color: var(--teal-800);
    line-height: 1.2;
}

.pricing-credits {
    color: var(--ink-soft);
    font-weight: 600;
}

.pricing-credits .bonus {
    color: var(--success);
    font-size: 0.85rem;
}

.pricing-card .muted {
    font-size: 0.85rem;
    margin-bottom: 1rem;
}

.pricing-card .button {
    margin-top: auto;
}

.pricing-card.is-featured {
    border-color: var(--teal-500);
    box-shadow: 0 18px 40px rgba(15, 118, 110, 0.16);
}

.pricing-flag {
    position: absolute;
    top: -0.75rem;
    right: 1.25rem;
    background: var(--teal-700);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.7rem;
    border-radius: 999px;
}

.payment-methods {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 1rem 0;
}

.payment-chip {
    border: 1px solid var(--line);
    background: var(--surface);
    border-radius: 999px;
    padding: 0.4rem 1rem;
    font-weight: 600;
    color: var(--ink-soft);
}

@media (min-width: 760px) {
    .pricing-grid {
        grid-template-columns: repeat(3, 1fr);
        align-items: stretch;
    }
}

/* CTA band */

.cta-band {
    background: linear-gradient(120deg, var(--teal-800), var(--teal-600));
    color: #fff;
    padding: 3rem 0;
}

.cta-band h2 {
    color: #fff;
}

.cta-band p {
    color: rgba(255, 255, 255, 0.82);
    margin: 0;
}

.cta-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

/* Auth */

.auth-body {
    background: var(--canvas);
    min-height: 100vh;
}

.auth-shell {
    display: grid;
    min-height: 100vh;
}

.auth-aside {
    display: none;
    position: relative;
    padding: 2.5rem;
    background:
        radial-gradient(circle at 80% 10%, rgba(20, 184, 166, 0.35), transparent 45%),
        linear-gradient(160deg, var(--teal-900), var(--teal-700));
    color: #fff;
    flex-direction: column;
    justify-content: space-between;
}

.auth-aside-copy h2 {
    color: #fff;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
}

.auth-aside-copy p {
    color: rgba(255, 255, 255, 0.78);
    max-width: 26rem;
}

.auth-points {
    list-style: none;
    padding: 0;
    margin: 1.5rem 0 0;
    display: grid;
    gap: 0.6rem;
}

.auth-points li {
    position: relative;
    padding-left: 1.5rem;
    color: rgba(255, 255, 255, 0.9);
}

.auth-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--teal-500);
}

.auth-back {
    color: rgba(255, 255, 255, 0.8);
    font-weight: 600;
}

.auth-back:hover {
    color: #fff;
}

.auth-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1.25rem;
}

.auth-panel-inner {
    width: min(440px, 100%);
}

.auth-panel-top {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}

.auth-card h1 {
    font-size: clamp(1.5rem, 4vw, 1.9rem);
    margin-bottom: 0.35rem;
}

.auth-sub {
    color: var(--muted);
    margin-bottom: 1.5rem;
}

.auth-foot {
    margin-top: 1.5rem;
    text-align: center;
    color: var(--muted);
    font-size: 0.95rem;
}

@media (min-width: 900px) {
    .auth-shell {
        grid-template-columns: minmax(360px, 0.9fr) 1.1fr;
    }

    .auth-aside {
        display: flex;
    }
}

/* Forms */

.form {
    display: grid;
    gap: 1rem;
}

.field {
    display: grid;
    gap: 0.35rem;
}

.field > label,
.field > span.label {
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--ink-soft);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="search"],
select,
textarea {
    width: 100%;
    padding: 0.7rem 0.85rem;
    border: 1px solid #cfdad7;
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--teal-500);
    outline: none;
    box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.18);
}

input:disabled {
    background: #f1f5f4;
    color: var(--muted);
    cursor: not-allowed;
}

.field-error {
    margin: 0;
    color: var(--danger);
    font-size: 0.85rem;
}

.field-hint {
    margin: 0;
    color: var(--muted);
    font-size: 0.8rem;
}

.form-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.9rem;
}

.checkbox {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.55rem;
    font-size: 0.92rem;
    color: var(--ink-soft);
    cursor: pointer;
}

.checkbox input {
    width: 18px;
    height: 18px;
    margin-top: 0.2rem;
    accent-color: var(--teal-700);
}

.password-wrap {
    position: relative;
    display: flex;
}

.password-wrap input {
    padding-right: 4.5rem;
}

.password-toggle {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--teal-700);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 700;
    padding: 0.3rem 0.5rem;
    cursor: pointer;
    border-radius: 6px;
}

.password-toggle:hover {
    background: var(--teal-50);
}

/* Alerts */

.alert {
    padding: 0.9rem 1.1rem;
    border-radius: var(--radius-sm);
    margin-bottom: 1.25rem;
    border: 1px solid transparent;
    font-size: 0.95rem;
}

.alert-success {
    background: var(--success-soft);
    border-color: #abefc6;
    color: var(--success);
}

.alert-error {
    background: var(--danger-soft);
    border-color: #fecdca;
    color: var(--danger);
}

.alert-list {
    margin: 0.5rem 0 0;
    padding-left: 1.2rem;
}

/* Dashboard */

.dashboard-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.75rem;
}

.dashboard-head h1 {
    margin-bottom: 0.2rem;
}

.stats-grid {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stat-card {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.stat-primary {
    background: linear-gradient(140deg, var(--teal-800), var(--teal-600));
    border-color: transparent;
    color: #fff;
}

.stat-primary .stat-label,
.stat-primary .stat-hint {
    color: rgba(255, 255, 255, 0.82);
}

.stat-primary .stat-value {
    color: #fff;
}

.stat-label {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--muted);
}

.stat-value {
    margin: 0;
    font-size: 2.1rem;
    font-weight: 800;
    color: var(--teal-800);
    line-height: 1.2;
}

.stat-hint {
    margin: 0;
    font-size: 0.8rem;
    color: var(--muted);
}

.dashboard-grid {
    display: grid;
    gap: 1.25rem;
}

.generation-card .eyebrow {
    margin-bottom: 0.4rem;
}

.generation-card h2 {
    margin-bottom: 0.4rem;
}

.generation-card .button {
    margin-top: 0.5rem;
}

.quick-card h2 {
    font-size: 1.1rem;
}

.recent-paper-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.recent-paper-row {
    display: grid;
    gap: 0.6rem;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--line);
}

.recent-paper-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.recent-paper-main {
    min-width: 0;
}

.recent-paper-badges,
.recent-paper-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.85rem;
}

.recent-papers-card .paper-empty h3 {
    margin-bottom: 0.35rem;
    font-size: 1.1rem;
}

.recent-papers-card .paper-empty .button {
    margin-top: 1rem;
}

@media (min-width: 720px) {
    .stats-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .recent-paper-row {
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
        gap: 1.25rem;
    }

    .recent-paper-actions {
        justify-content: flex-end;
    }
}

@media (min-width: 960px) {
    .dashboard-grid {
        grid-template-columns: 1.4fr 1fr;
    }
}

/* Tables */

.table-wrap {
    overflow-x: auto;
    margin: 0 -1.5rem;
    padding: 0 1.5rem;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.data-table th,
.data-table td {
    padding: 0.7rem 0.6rem;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.data-table th {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    font-weight: 700;
    white-space: nowrap;
}

.data-table tbody tr:last-child td {
    border-bottom: 0;
}

.align-end {
    text-align: right;
}

.amount-positive {
    color: var(--success);
    font-weight: 700;
}

.amount-negative {
    color: var(--danger);
    font-weight: 700;
}

.badge {
    display: inline-block;
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
    background: var(--teal-50);
    color: var(--teal-800);
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid var(--teal-100);
}

@media (max-width: 719px) {
    .data-table thead {
        display: none;
    }

    .data-table,
    .data-table tbody,
    .data-table tr,
    .data-table td {
        display: block;
        width: 100%;
    }

    .data-table tr {
        padding: 0.75rem 0;
        border-bottom: 1px solid var(--line);
    }

    .data-table tr:last-child {
        border-bottom: 0;
    }

    .data-table td {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        border: 0;
        padding: 0.25rem 0;
        text-align: right;
    }

    .data-table td::before {
        content: attr(data-label);
        font-weight: 600;
        color: var(--muted);
        text-align: left;
    }

    .align-end {
        text-align: right;
    }
}

/* Pagination */

.pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    font-size: 0.9rem;
}

.page-link {
    padding: 0.4rem 0.9rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--teal-800);
    font-weight: 600;
}

.page-link.is-disabled {
    color: #a6b8b4;
    background: #f5f8f7;
    cursor: not-allowed;
}

.page-status {
    color: var(--muted);
}

/* Footer */

.site-footer {
    background: var(--teal-900);
    color: rgba(255, 255, 255, 0.75);
    padding: 2.5rem 0 1.5rem;
    margin-top: 1rem;
}

.footer-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2rem;
}

.footer-brand {
    display: flex;
    gap: 0.85rem;
    max-width: 28rem;
}

.footer-brand strong {
    color: #fff;
}

.footer-brand p {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    line-height: 1.7;
}

.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.9rem;
}

.footer-links a:hover {
    color: #fff;
}

.footer-bottom {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.8rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Error pages */

.error-body {
    background:
        radial-gradient(circle at 15% 15%, rgba(20, 184, 166, 0.14), transparent 45%),
        var(--canvas);
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 2rem 1.25rem;
}

.error-shell {
    width: min(520px, 100%);
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 2.5rem 1.75rem;
    box-shadow: var(--shadow);
}

.error-brand {
    justify-content: center;
    margin-bottom: 1.5rem;
}

.error-code {
    margin: 0;
    font-size: 4rem;
    font-weight: 800;
    line-height: 1;
    color: var(--teal-100);
    letter-spacing: 0.05em;
}

.error-copy {
    color: var(--muted);
}

.error-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

/* Utilities */

.muted {
    color: var(--muted);
}

.center {
    text-align: center;
}

.pill {
    display: inline-block;
    padding: 0.3rem 0.9rem;
    border-radius: 999px;
    background: var(--teal-50);
    border: 1px solid var(--teal-100);
    color: var(--teal-800);
    font-size: 0.85rem;
    font-weight: 600;
    margin: 0;
}

.bonus {
    color: var(--success);
}

.amount-positive {
    white-space: nowrap;
}

a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--teal-500);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

@media print {
    .site-header,
    .site-footer,
    .nav-toggle,
    .auth-aside {
        display: none !important;
    }

    body {
        background: #fff;
    }
}

/* Admin panel */

.admin-body {
    background: var(--canvas);
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    background: linear-gradient(120deg, var(--teal-900), var(--teal-800));
    color: #fff;
    box-shadow: 0 6px 24px rgba(11, 61, 58, 0.18);
}

.admin-topbar-inner {
    width: min(1440px, calc(100% - 2rem));
    margin: 0 auto;
    min-height: 68px;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.admin-topbar .brand {
    color: #fff;
}

.admin-topbar .brand-mark {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.18);
}

.admin-topbar .brand-text strong {
    color: #fff;
}

.admin-topbar .brand-text small {
    color: rgba(255, 255, 255, 0.68);
}

.admin-topbar .nav-toggle {
    margin-left: auto;
    border-color: rgba(255, 255, 255, 0.25);
}

.admin-topbar .nav-toggle-bar {
    background: #fff;
}

.admin-topbar-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.admin-topbar .lang-button {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
}

.admin-topbar .lang-button:hover {
    border-color: rgba(255, 255, 255, 0.55);
}

.admin-site-link {
    color: rgba(255, 255, 255, 0.82);
    font-weight: 600;
    font-size: 0.9rem;
    white-space: nowrap;
}

.admin-site-link:hover {
    color: #fff;
}

.admin-topbar .link-button {
    color: rgba(255, 255, 255, 0.82);
}

.admin-topbar .link-button:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.admin-shell {
    display: grid;
    min-height: calc(100vh - 68px);
    align-items: start;
}

.admin-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1.25rem 1rem;
    background: var(--surface);
    border-right: 1px solid var(--line);
}

.admin-nav {
    display: grid;
    gap: 0.25rem;
}

.admin-nav a {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.65rem 0.8rem;
    border-radius: 10px;
    color: var(--ink-soft);
    font-weight: 600;
    font-size: 0.92rem;
    line-height: 1.4;
}

.admin-nav a svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
    opacity: 0.8;
    flex-shrink: 0;
}

.admin-nav a:hover {
    background: var(--teal-50);
    color: var(--teal-800);
}

.admin-nav a.is-active {
    background: var(--teal-700);
    color: #fff;
    box-shadow: 0 8px 18px rgba(15, 118, 110, 0.22);
}

.admin-nav a.is-active svg {
    opacity: 1;
}

.admin-side-user {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
    min-width: 0;
}

.admin-avatar {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--teal-100);
    color: var(--teal-800);
    font-weight: 800;
}

.admin-side-user-copy {
    min-width: 0;
}

.admin-side-user-copy strong,
.admin-side-user-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-side-user-copy strong {
    font-size: 0.9rem;
    color: var(--ink);
}

.admin-side-user-copy small {
    font-size: 0.75rem;
    color: var(--muted);
}

.admin-main {
    min-width: 0;
    padding: 2rem clamp(1rem, 3vw, 2.5rem) 3rem;
}

.admin-content {
    width: min(1200px, 100%);
    margin: 0 auto;
}

.admin-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.admin-page-head h1 {
    margin-bottom: 0.2rem;
}

.admin-page-head .muted {
    margin: 0;
}

.admin-head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.25rem;
}

.admin-count-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.admin-stats {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    margin-bottom: 1.5rem;
}

.admin-stats > .card,
.admin-columns > .card,
.admin-detail-grid > .card,
.admin-settings > .card {
    margin-top: 0;
}

.admin-columns {
    display: grid;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.admin-detail-grid {
    display: grid;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
    align-items: start;
}

.admin-settings {
    display: grid;
    gap: 1.25rem;
}

.admin-narrow {
    width: min(840px, 100%);
}

.small {
    font-size: 0.85rem;
}

.table-sub {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    color: var(--muted);
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.9rem;
}

.table-actions form {
    margin: 0;
}

.table-actions .link-button {
    padding: 0;
    font-size: 0.9rem;
    color: var(--teal-700);
}

.table-actions .link-button:hover {
    color: var(--teal-600);
    background: transparent;
}

.table-actions .link-danger {
    color: var(--danger);
}

.table-actions .link-danger:hover {
    color: #912018;
}

.badge-success {
    background: var(--success-soft);
    border-color: #abefc6;
    color: var(--success);
}

.badge-danger {
    background: var(--danger-soft);
    border-color: #fecdca;
    color: var(--danger);
}

.badge-info {
    background: #eff8ff;
    border-color: #b9e6fe;
    color: #026aa2;
}

.badge-muted {
    background: #f2f4f7;
    border-color: #e4e7ec;
    color: var(--muted);
}

.button-danger {
    background: var(--danger);
    color: #fff;
}

.button-danger:hover {
    background: #912018;
    color: #fff;
}

.admin-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 0.75rem;
    align-items: end;
}

.admin-filter-field {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.admin-filter-actions {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding-bottom: 0.1rem;
}

.admin-detail-grid .detail-list {
    margin: 0;
    display: grid;
    gap: 0.8rem;
}

.detail-list > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px dashed var(--line);
}

.detail-list > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.detail-list dt {
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 600;
}

.detail-list dd {
    margin: 0;
    text-align: right;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.mini-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
}

.mini-stat {
    display: grid;
    gap: 0.15rem;
    padding: 0.75rem;
    border-radius: var(--radius-sm);
    background: var(--canvas);
    border: 1px solid var(--line);
}

.mini-stat span {
    font-size: 0.75rem;
    color: var(--muted);
    font-weight: 600;
}

.mini-stat strong {
    font-size: 1.4rem;
    line-height: 1.2;
    color: var(--teal-800);
}

.card-danger-zone {
    border-color: #fecdca;
}

.card-danger-zone h2 {
    color: var(--danger);
}

.form-grid {
    display: grid;
    gap: 1rem;
}

.form-divider {
    display: grid;
    gap: 0.2rem;
    margin-top: 0.6rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--line);
}

.form-divider h2 {
    margin: 0;
    font-size: 1.1rem;
}

.profile-logo-preview {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 0.7rem;
    padding: 0.8rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--canvas);
}

.profile-logo-preview img {
    width: auto;
    max-width: 130px;
    max-height: 70px;
    object-fit: contain;
}

.field-span {
    grid-column: 1 / -1;
}

.admin-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.25rem;
}

@media (min-width: 720px) {
    .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 900px) {
    .admin-detail-grid {
        grid-template-columns: 1.1fr 0.9fr;
    }
}

@media (min-width: 960px) {
    .admin-shell {
        grid-template-columns: 250px minmax(0, 1fr);
    }

    .admin-sidebar {
        position: sticky;
        top: 68px;
        height: calc(100vh - 68px);
        overflow-y: auto;
    }

    .admin-topbar .nav-toggle {
        display: none;
    }
}

@media (max-width: 959px) {
    .admin-topbar-inner {
        flex-wrap: wrap;
        padding: 0.6rem 0;
    }

    .admin-sidebar {
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding: 0.75rem 1rem;
    }

    .admin-nav {
        display: none;
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
        gap: 0.35rem;
    }

    .admin-nav.is-open {
        display: grid;
    }

    .admin-side-user {
        display: none;
    }

    .admin-main {
        padding: 1.5rem 1rem 2.5rem;
    }

    .admin-topbar-actions {
        gap: 0.75rem;
    }

    .admin-stage {
        display: none;
    }
}

@media (max-width: 620px) {
    .admin-site-link {
        display: none;
    }

    .admin-topbar .brand-text small {
        display: none;
    }

    .mini-stats {
        grid-template-columns: 1fr;
    }
}

@media print {
    .admin-topbar,
    .admin-sidebar {
        display: none !important;
    }

    .admin-shell {
        display: block;
    }
}

/* Question papers */

[hidden] {
    display: none !important;
}

.paper-narrow {
    width: min(920px, 100%);
    margin-inline: auto;
}

.paper-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.25rem;
}

.paper-page-head h1 {
    margin-bottom: 0.35rem;
}

.paper-page-head .text-link {
    display: inline-block;
    margin-bottom: 0.5rem;
}

.paper-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 1.25rem;
}

.paper-count {
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--muted);
    font-size: 0.88rem;
}

.paper-count strong {
    color: var(--teal-800);
}

.paper-title-link {
    display: block;
    font-weight: 700;
    color: var(--teal-800);
}

.paper-row-meta {
    display: block;
    color: var(--muted);
    font-size: 0.8rem;
}

.table-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem 0.85rem;
}

.table-actions form {
    margin: 0;
}

.paper-icon-actions {
    gap: 0.3rem;
}

.icon-action-form {
    margin: 0;
    display: inline-flex;
}

.icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--teal-800);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.icon-action svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.icon-action:hover,
.icon-action:focus-visible {
    background: var(--teal-50);
    border-color: var(--teal-200);
    color: var(--teal-900);
    text-decoration: none;
}

.icon-action:focus-visible {
    outline: 2px solid var(--teal-500);
    outline-offset: 2px;
}

.icon-action-danger {
    color: var(--danger);
}

.icon-action-danger:hover,
.icon-action-danger:focus-visible {
    background: #fef3f2;
    border-color: #fecdca;
    color: #912018;
}

.danger-link {
    color: var(--danger);
}

.danger-link:hover {
    color: #912018;
}

.paper-empty {
    padding: 2rem 0.5rem;
    text-align: center;
}

.paper-empty h2 {
    font-size: 1.25rem;
}

.paper-form-card {
    padding: clamp(1.25rem, 4vw, 2rem);
}

.paper-form-heading {
    margin: 0.35rem 0 0;
    padding-top: 0.75rem;
    border-top: 1px solid var(--line);
    font-size: 1.05rem;
}

.paper-form-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.paper-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.paper-edit-questions {
    display: grid;
    gap: 1rem;
    margin-top: 0.85rem;
}

.paper-edit-question {
    padding: 1rem;
    background: var(--canvas);
}

.paper-edit-question-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.paper-edit-question-head strong {
    color: var(--teal-800);
    font-size: 0.95rem;
}

.paper-edit-question > .field {
    margin-top: 0.85rem;
}

.paper-edit-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 0.85rem;
}

.paper-cost {
    margin: 0;
    font-weight: 700;
    color: var(--teal-800);
}

.label-optional {
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 400;
}

.paper-image-list {
    margin: 0.25rem 0 0;
    padding: 0.65rem 1rem;
    border: 1px dashed var(--line);
    border-radius: var(--radius-sm);
    background: var(--canvas);
    color: var(--muted);
    font-size: 0.82rem;
    list-style: none;
}

.paper-privacy-note {
    margin-top: 1rem;
}

.paper-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.paper-actions form {
    margin: 0;
}

.paper-detail-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.65rem;
    margin: 0;
    color: var(--muted);
    font-size: 0.9rem;
}

.paper-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.paper-meta-item {
    display: grid;
    gap: 0.15rem;
    padding: 0.8rem 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--surface);
}

.paper-meta-item span {
    color: var(--muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.paper-meta-item strong {
    color: var(--ink);
    font-size: 0.95rem;
}

.paper-source-card {
    margin-bottom: 1.5rem;
}

.paper-source-card summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--teal-800);
}

.paper-source-card p {
    margin: 0.75rem 0 0;
    white-space: pre-line;
    color: var(--ink-soft);
}

.paper-failed-card {
    border-color: #fecdca;
    background: #fffbfa;
}

.paper-failed-card h2 {
    color: var(--danger);
    font-size: 1.35rem;
}

.paper-processing-card {
    text-align: center;
    color: var(--muted);
}

.paper-share-card {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
}

.paper-share-copy {
    flex: 1 1 260px;
}

.paper-share-copy h2 {
    margin-bottom: 0.25rem;
    font-size: 1.08rem;
}

.paper-share-copy p {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.9rem;
}

.paper-share-active {
    display: grid;
    gap: 0.5rem;
    flex: 1 1 320px;
    max-width: 460px;
}

.paper-share-active label {
    font-size: 0.82rem;
    font-weight: 700;
}

.paper-share-link {
    display: flex;
    gap: 0.5rem;
}

.paper-share-link input {
    flex: 1;
    min-width: 0;
}

.paper-share-link .button {
    flex-shrink: 0;
}

.paper-share-note {
    margin: 0 auto 1rem;
    padding: 0.55rem 1rem;
    max-width: 54rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: #fff;
    color: var(--ink-soft);
    font-size: 0.82rem;
    text-align: center;
}

.paper-versions-card {
    margin: 1rem 0;
}

.paper-versions-card .card-head {
    align-items: flex-start;
    margin-bottom: 0.35rem;
}

.paper-versions-card .card-head p {
    margin: 0.2rem 0 0;
}

.paper-version-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.paper-version-row {
    display: grid;
    gap: 0.5rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--line);
}

.paper-version-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.paper-version-title,
.paper-version-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.85rem;
}

.paper-version-actions form {
    margin: 0;
}

.paper-version-notice {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid #b9e6fe;
    border-radius: var(--radius-sm);
    background: #eff8ff;
    color: #026aa2;
    font-size: 0.9rem;
}

@media (min-width: 720px) {
    .paper-version-row {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 1.25rem;
    }

    .paper-version-actions {
        justify-content: flex-end;
    }
}

.print-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

@media (max-width: 560px) {
    .paper-share-link {
        flex-direction: column;
    }
}

.paper-document-wrap {
    margin-top: 0.5rem;
}

.paper-document {
    padding: clamp(1.5rem, 5vw, 3rem);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: var(--shadow);
}

.paper-document-head {
    padding-bottom: 1.1rem;
    margin-bottom: 1.4rem;
    border-bottom: 2px solid var(--teal-800);
    text-align: center;
}

.paper-institution {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.paper-institution-logo {
    width: auto;
    max-width: 110px;
    max-height: 70px;
    object-fit: contain;
}

.paper-institution-copy {
    text-align: center;
}

.paper-institution-name {
    margin: 0;
    color: var(--teal-900);
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.4;
}

.paper-institution-address {
    margin: 0.1rem 0 0;
    color: var(--ink-soft);
    font-size: 0.85rem;
    line-height: 1.5;
}

.paper-document-head h1 {
    margin-bottom: 0.35rem;
    font-size: clamp(1.5rem, 4vw, 2.1rem);
}

.paper-document-meta {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.9rem;
}

.paper-document-section {
    margin-bottom: 1.6rem;
}

.paper-document-section h2 {
    margin-bottom: 0.8rem;
    font-size: 1.12rem;
    text-decoration: underline;
    text-underline-offset: 0.25rem;
}

.paper-instructions {
    margin: 0;
    padding-left: 1.25rem;
    color: var(--ink-soft);
    font-size: 0.92rem;
}

.paper-question-list {
    display: grid;
    gap: 1.1rem;
}

.paper-question {
    break-inside: avoid;
}

.paper-question-text {
    margin: 0 0 0.45rem;
    font-weight: 600;
}

.paper-question-number {
    color: var(--teal-800);
    margin-right: 0.35rem;
}

.paper-question-action {
    margin: 0.55rem 0 0;
}

.paper-options,
.paper-parts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.15rem 1.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--ink-soft);
    font-size: 0.93rem;
}

.paper-option-label {
    color: var(--teal-700);
    font-weight: 700;
    margin-right: 0.2rem;
}

.paper-answers {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 1.4rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.paper-answers strong {
    color: var(--teal-800);
}

.paper-raw-notice {
    margin-bottom: 1rem;
    padding: 0.7rem 1rem;
    border: 1px solid #fde68a;
    border-radius: var(--radius-sm);
    background: var(--amber-soft);
    color: var(--amber);
    font-size: 0.85rem;
}

.paper-raw {
    margin-bottom: 1.5rem;
    white-space: pre-line;
}

.paper-document-footer {
    margin: 1.5rem 0 0;
    padding-top: 0.8rem;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.78rem;
    text-align: center;
}

.print-body {
    background: #e8efed;
}

.print-toolbar {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1.25rem;
    background: rgba(255, 255, 255, 0.94);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(6px);
}

.print-main {
    width: min(820px, calc(100% - 2rem));
    margin: 1.5rem auto;
}

@media (min-width: 720px) {
    .paper-meta-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 719px) {
    .paper-options,
    .paper-parts {
        grid-template-columns: 1fr;
    }

    .paper-form-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .paper-form-footer .button,
    .paper-form-actions {
        width: 100%;
    }

    .paper-form-actions {
        flex-direction: column;
    }

    .paper-edit-option-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    @page {
        margin: 16mm 14mm;
    }

    .site-header,
    .site-footer,
    .skip-link,
    .nav-toggle,
    .primary-nav,
    .print-toolbar,
    .paper-page-head,
    .paper-meta-grid,
    .paper-share-card,
    .paper-versions-card,
    .paper-source-card,
    .paper-question-action,
    .flash-stack,
    .container > .flash {
        display: none !important;
    }

    .print-body,
    .site-main,
    body {
        background: #fff !important;
    }

    .section,
    .section-tight {
        padding: 0 !important;
    }

    .container,
    .print-main,
    .paper-document-wrap {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .card,
    .paper-document {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .paper-answer-key {
        break-before: page;
    }

    .paper-document-footer {
        color: #555;
    }
}

.nav-count {
    margin-left: auto;
    min-width: 1.4rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--teal-100);
    color: var(--teal-800);
    font-size: 0.72rem;
    font-weight: 800;
    text-align: center;
}

.payment-chip-number {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.payment-form {
    display: grid;
    gap: 1.5rem;
}

.choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 0.75rem;
}

.choice-card {
    position: relative;
    cursor: pointer;
}

.choice-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.choice-card-body {
    display: grid;
    gap: 0.25rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 0.9rem;
    background: var(--surface);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.choice-card input:checked + .choice-card-body {
    border-color: var(--teal-500);
    background: var(--teal-50);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.12);
}

.choice-card input:focus-visible + .choice-card-body {
    outline: 3px solid rgba(15, 118, 110, 0.35);
    outline-offset: 2px;
}

.choice-card-price {
    color: var(--teal-800);
    font-size: 1.25rem;
    font-weight: 800;
}

.choice-card-meta,
.choice-card-number {
    color: var(--ink-soft);
    font-size: 0.9rem;
}

.choice-card-number {
    letter-spacing: 0.04em;
    font-weight: 700;
}

.payment-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.payment-detail-grid {
    align-items: start;
}

.payment-detail-side {
    display: grid;
    gap: 1.25rem;
}

.detail-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    margin: 0;
}

.detail-list > div {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.detail-list dt {
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.detail-list dd {
    margin: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.detail-list .detail-span {
    grid-column: 1 / -1;
}

.payment-proof {
    display: block;
    margin-bottom: 0.75rem;
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    overflow: hidden;
    background: var(--canvas);
}

.payment-proof img {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: contain;
}

.payment-counts .stat-card {
    color: inherit;
    text-decoration: none;
}

.payment-counts .stat-card:hover {
    border-color: var(--teal-500);
}

@media (max-width: 719px) {
    .payment-form-footer,
    .detail-list {
        grid-template-columns: 1fr;
    }

    .payment-form-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .payment-form-footer .button {
        width: 100%;
    }
}

.admin-stats a.stat-card {
    color: inherit;
    text-decoration: none;
}

.admin-stats a.stat-card.stat-primary {
    color: #fff;
}

.notification-menu {
    position: relative;
}

.notification-menu summary {
    list-style: none;
}

.notification-menu summary::-webkit-details-marker {
    display: none;
}

.notification-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--teal-800);
    cursor: pointer;
}

.notification-toggle:hover,
.notification-menu[open] .notification-toggle {
    border-color: var(--teal-500);
    background: var(--teal-50);
}

.notification-toggle:focus-visible {
    outline: 3px solid rgba(15, 118, 110, 0.35);
    outline-offset: 2px;
}

.notification-toggle svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: currentColor;
}

.notification-count {
    position: absolute;
    top: -0.25rem;
    right: -0.25rem;
    min-width: 1.15rem;
    padding: 0.05rem 0.28rem;
    border-radius: 999px;
    background: var(--danger);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
}

.notification-panel {
    position: absolute;
    top: calc(100% + 0.55rem);
    right: 0;
    z-index: 80;
    width: min(360px, calc(100vw - 2rem));
    border: 1px solid var(--line);
    border-radius: 0.9rem;
    background: var(--surface);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.notification-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--line);
}

.notification-panel-head .link-button {
    font-size: 0.8rem;
}

.notification-list {
    max-height: 420px;
    overflow-y: auto;
}

.notification-list form {
    margin: 0;
}

.notification-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.65rem;
    width: 100%;
    padding: 0.8rem 1rem;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.notification-item:hover {
    background: var(--canvas);
}

.notification-item.is-unread {
    background: var(--teal-50);
}

.notification-dot {
    width: 0.55rem;
    height: 0.55rem;
    margin-top: 0.35rem;
    border-radius: 999px;
    background: var(--muted);
}

.notification-item.is-unread .notification-dot {
    background: var(--teal-600);
}

.notification-dot.notification-tone-success {
    background: var(--success);
}

.notification-dot.notification-tone-danger {
    background: var(--danger);
}

.notification-dot.notification-tone-info {
    background: var(--teal-600);
}

.notification-copy {
    display: grid;
    gap: 0.15rem;
    min-width: 0;
}

.notification-copy strong {
    font-size: 0.9rem;
}

.notification-copy span {
    color: var(--ink-soft);
    font-size: 0.82rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.notification-copy time {
    color: var(--muted);
    font-size: 0.72rem;
}

.notification-empty {
    margin: 0;
    padding: 1.5rem 1rem;
    color: var(--muted);
    text-align: center;
}

.notification-view-all {
    display: block;
    padding: 0.75rem 1rem;
    background: var(--canvas);
    font-size: 0.85rem;
    font-weight: 700;
    text-align: center;
}

.notifications-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.notifications-page-head p {
    margin: 0;
}

.notification-list-page {
    max-height: none;
}

.notification-list-page .notification-item {
    padding-inline: 0;
}

.notification-list-page .notification-copy {
    padding-right: 0.5rem;
}

.report-chart {
    overflow-x: auto;
    padding-top: 0.35rem;
}

.report-chart-bars {
    display: flex;
    align-items: flex-end;
    gap: 0.3rem;
    min-width: 100%;
    padding-bottom: 0.15rem;
}

.report-chart-bar {
    display: flex;
    flex: 1 0 1.15rem;
    flex-direction: column;
    justify-content: flex-end;
    gap: 0.35rem;
    min-width: 1.15rem;
    height: 160px;
}

.report-chart-track {
    display: flex;
    align-items: flex-end;
    height: 130px;
    border-radius: 0.35rem;
    background: var(--canvas);
    overflow: hidden;
}

.report-chart-fill {
    width: 100%;
    min-height: 2px;
    border-radius: 0.35rem 0.35rem 0 0;
    background: linear-gradient(180deg, #f59e0b, #b45309);
}

.report-chart-fill-teal {
    background: linear-gradient(180deg, var(--teal-500), var(--teal-900));
}

.report-chart-bar small {
    color: var(--muted);
    font-size: 0.58rem;
    text-align: center;
    white-space: nowrap;
}

.report-breakdown {
    display: grid;
    gap: 1rem;
}

.report-breakdown-row {
    display: grid;
    gap: 0.3rem;
}

.report-breakdown-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.9rem;
}

.report-breakdown-track {
    height: 0.45rem;
    border-radius: 999px;
    background: var(--canvas);
    overflow: hidden;
}

.report-breakdown-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--teal-600);
}

.report-breakdown-row small {
    color: var(--muted);
    font-size: 0.75rem;
}

.report-table-scroll {
    max-height: 28rem;
    overflow: auto;
}

.report-table-scroll table {
    min-width: 720px;
}

.paper-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 0.75rem;
    align-items: end;
}

.paper-filter-field {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
}

.paper-filter-actions {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

@media (min-width: 760px) {
    .paper-filter-search {
        grid-column: span 2;
    }
}
/* Legal pages */

.legal-layout {
    display: grid;
    gap: 1.25rem;
    align-items: start;
}

.legal-card {
    padding: clamp(1.5rem, 4vw, 2.75rem);
}

.legal-body {
    max-width: 70ch;
    color: var(--ink-soft);
    line-height: 1.95;
    overflow-wrap: anywhere;
}

.legal-body br + br {
    display: block;
    content: "";
    margin-top: 0.75rem;
}

.legal-nav {
    padding: 1.25rem;
}

.legal-nav h2 {
    margin-bottom: 0.85rem;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted);
}

.legal-nav nav {
    display: grid;
    gap: 0.35rem;
}

.legal-nav nav a {
    display: block;
    padding: 0.55rem 0.75rem;
    border-radius: var(--radius-sm);
    color: var(--ink-soft);
    font-weight: 600;
}

.legal-nav nav a:hover {
    background: var(--canvas);
    color: var(--teal-700);
}

.legal-nav nav a.is-active {
    background: var(--teal-50);
    color: var(--teal-800);
}

.legal-contact {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.legal-contact strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--teal-900);
}

.legal-contact p {
    margin: 0;
    color: var(--muted);
    font-size: 0.9rem;
}

@media (min-width: 900px) {
    .legal-layout {
        grid-template-columns: minmax(0, 1fr) 280px;
    }
}
.paper-exam-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem .75rem;margin-top:.9rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);text-align:left}
.paper-exam-detail{display:grid;gap:.05rem;font-size:.88rem}
.paper-exam-detail span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}
.paper-exam-detail strong{color:var(--teal-900);font-size:.9rem}
.paper-page-break-after{break-after:page;page-break-after:always}
@media (max-width:719px){.paper-exam-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{
    @page{margin:10mm 9mm}
    .print-body{background:#fff}
    .print-main{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
    .paper-document{font-size:11pt;line-height:1.28}
    .paper-document-head{padding-bottom:.55rem;margin-bottom:.7rem}
    .paper-document-head h1{font-size:16pt;margin-bottom:.2rem}
    .paper-institution-name{font-size:12.5pt}
    .paper-institution-address{font-size:9.5pt}
    .paper-document-meta{font-size:9.5pt}
    .paper-exam-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:.15rem .5rem;padding:.35rem .45rem;margin-top:.45rem}
    .paper-exam-detail span{font-size:7.2pt}
    .paper-exam-detail strong{font-size:8.8pt}
    .paper-document-section{margin-bottom:.7rem}
    .paper-document-section h2{font-size:10.5pt;margin-bottom:.25rem}
    .paper-instructions{font-size:9.5pt}
    .paper-question-list{gap:.45rem}
    .paper-question-text{margin-bottom:.15rem;font-size:10.2pt}
    .paper-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .7rem;font-size:9.8pt}
    .paper-parts{grid-template-columns:1fr;gap:.05rem;font-size:9.8pt}
    .paper-mcq-question .paper-options li{line-height:1.22}
    .paper-creative-question .paper-parts li{line-height:1.22}
    .paper-page-break-after{break-after:page;page-break-after:always}
    .paper-answer-key{break-before:page;page-break-before:always}
}
.nav-group{display:flex;flex-direction:column;gap:.2rem}
.nav-actions{margin-top:.35rem;padding-top:.5rem;border-top:1px solid var(--line);align-items:flex-start}
.primary-nav .nav-group > a,.nav-account-panel a{padding:.55rem .5rem;color:var(--ink-soft);border-radius:var(--radius-sm);font-weight:600}
.primary-nav .nav-group > a:hover,.primary-nav .nav-group > a.is-active,.nav-account-panel a:hover,.nav-account-panel a.is-active{background:var(--teal-50);color:var(--teal-800)}
.nav-account-menu{width:100%}
.nav-account-menu summary{list-style:none}
.nav-account-menu summary::-webkit-details-marker{display:none}
.nav-account-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-soft);font-weight:700;cursor:pointer}
.nav-account-panel{display:grid;gap:.15rem;margin-top:.35rem;padding:.35rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.nav-account-panel form{margin:0}
.nav-account-panel .nav-logout{width:100%;justify-content:flex-start;padding:.55rem .5rem}
@media (max-width:1199px){.brand-text small{display:none}}
@media (min-width:960px){
  .primary-nav{align-items:center;gap:.5rem;flex-wrap:nowrap}
  .nav-group{flex-direction:row;align-items:center;gap:.2rem}
  .nav-main{flex:1 1 auto;min-width:0;flex-wrap:wrap}
  .nav-actions{margin-top:0;padding-top:0;border-top:0;flex:0 0 auto;flex-wrap:nowrap}
  .primary-nav .nav-group > a{padding:.42rem .58rem;font-size:.92rem;white-space:nowrap}
  .nav-account-menu{width:auto;position:relative}
  .nav-account-toggle{padding:.38rem .7rem;font-size:.88rem;white-space:nowrap}
  .nav-account-panel{position:absolute;top:calc(100% + .45rem);right:0;min-width:190px;margin-top:0;box-shadow:var(--shadow)}
  .nav-credit{font-size:.88rem}
  .brand-text small{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
