:root {
    --npwa-bg: #050912;
    --npwa-panel: #0b111c;
    --npwa-panel-2: #111827;
    --npwa-card: rgba(17, 24, 39, 0.82);
    --npwa-card-soft: rgba(255, 255, 255, 0.055);
    --npwa-border: rgba(148, 163, 184, 0.14);
    --npwa-text: #f8fafc;
    --npwa-muted: #94a3b8;
    --npwa-purple: #7c3aed;
    --npwa-purple-2: #a855f7;
    --npwa-green: #22c55e;
    --npwa-yellow: #fbbf24;
    --npwa-red: #fb7185;
    --npwa-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
    --npwa-radius-xl: 28px;
    --npwa-radius-lg: 22px;
    --npwa-safe-bottom: env(safe-area-inset-bottom, 0px);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
    margin: 0;
}

html {
    overflow-x: hidden;
    overflow-y: auto;
}

.npwa-body {
    min-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    background:
        radial-gradient(circle at 0% 0%, rgba(124, 58, 237, 0.32), transparent 28rem),
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.18), transparent 26rem),
        linear-gradient(180deg, #020617 0%, #070b14 42%, #050912 100%);
    color: var(--npwa-text);
    font-family: "Poppins", "Montserrat", "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    touch-action: pan-y;
}

button,
input {
    font: inherit;
}

button {
    cursor: pointer;
}

.npwa-hidden {
    display: none !important;
}

.npwa-splash {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 0% 0%, rgba(124, 58, 237, 0.32), transparent 28rem),
        radial-gradient(circle at 100% 0%, rgba(14, 165, 233, 0.18), transparent 26rem),
        linear-gradient(180deg, #020617 0%, #070b14 42%, #050912 100%);
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.npwa-splash--hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.npwa-splash__inner {
    display: grid;
    justify-items: center;
    gap: 22px;
}

.npwa-splash__logo {
    width: 96px;
    height: 96px;
    object-fit: contain;
    border-radius: 24px;
    animation: npwa-splash-pulse 1.6s ease-in-out infinite;
}

.npwa-splash__spinner {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 3px solid rgba(148, 163, 184, 0.25);
    border-top-color: #a855f7;
    animation: npwa-splash-spin 0.8s linear infinite;
}

@keyframes npwa-splash-spin {
    to { transform: rotate(360deg); }
}

@keyframes npwa-splash-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.06); opacity: 0.85; }
}

.npwa-shell {
    width: min(100%, 480px);
    min-height: 100dvh;
    margin: 0 auto;
    position: relative;
    background:
        linear-gradient(135deg, rgba(124, 58, 237, 0.08), transparent 34%),
        linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(2, 6, 23, 0.96));
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 30px 90px rgba(0, 0, 0, 0.45);
}

.npwa-auth,
.npwa-app {
    min-height: 100dvh;
    padding: max(22px, env(safe-area-inset-top, 0px)) 18px calc(112px + var(--npwa-safe-bottom));
}

.npwa-auth {
    display: grid;
    align-content: center;
    gap: 26px;
}

.npwa-brand-line {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 900;
    letter-spacing: -0.04em;
    text-transform: lowercase;
}

.npwa-brand-line img {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.06);
}

.npwa-brand-line span {
    font-size: 1.45rem;
}

.npwa-auth__logo {
    display: block;
    width: 76px;
    height: 76px;
    margin: 0 auto 10px;
    border-radius: 22px;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.06);
}

#npwaAcademiaNome {
    text-transform: uppercase;
}

.npwa-auth__card,
.npwa-card,
.npwa-student-card,
.npwa-panel-card {
    border: 1px solid var(--npwa-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.078), rgba(255, 255, 255, 0.036)),
        var(--npwa-card);
    border-radius: var(--npwa-radius-xl);
    box-shadow: var(--npwa-shadow);
    backdrop-filter: blur(18px);
}

.npwa-auth__card {
    padding: 24px;
}

.npwa-eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 8px;
    color: #c4b5fd;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.npwa-auth h1,
.npwa-screen-title h1,
.npwa-sheet h2 {
    margin: 10px 0 8px;
    font-size: clamp(1.85rem, 8vw, 2.6rem);
    line-height: 0.98;
    letter-spacing: -0.08em;
}

.npwa-auth p,
.npwa-screen-title p,
.npwa-sheet p {
    margin: 0;
    color: var(--npwa-muted);
    line-height: 1.55;
}

.npwa-panel-intro {
    display: grid;
    gap: 6px;
    margin-bottom: 16px;
}

.npwa-panel-intro h1 {
    margin: 0;
    color: var(--npwa-text);
    font-size: clamp(1.65rem, 8vw, 2.35rem);
    line-height: 0.95;
    letter-spacing: -0.08em;
}

.npwa-panel-intro p {
    margin: 0;
    color: var(--npwa-muted);
    line-height: 1.45;
}

.npwa-form {
    display: grid;
    gap: 14px;
    margin-top: 22px;
}

.npwa-form label {
    display: grid;
    gap: 8px;
    color: var(--npwa-muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.npwa-form input {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 18px;
    padding: 15px 16px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
    outline: none;
}

.npwa-form input:focus {
    border-color: rgba(168, 85, 247, 0.8);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.18);
}

.npwa-button {
    border: 0;
    border-radius: 18px;
    padding: 15px 18px;
    color: var(--npwa-text);
    font-weight: 900;
}

.npwa-button--primary {
    background: linear-gradient(135deg, #6d28d9, #9333ea 48%, #7c3aed);
    box-shadow: 0 18px 36px rgba(124, 58, 237, 0.32);
}

.npwa-button--ghost {
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: rgba(255, 255, 255, 0.06);
}

.npwa-button--danger {
    background: linear-gradient(135deg, #991b1b, #ef4444);
    box-shadow: 0 18px 36px rgba(239, 68, 68, 0.24);
}

.npwa-message {
    min-height: 20px;
    margin-top: 14px;
    color: var(--npwa-red);
    font-size: 0.86rem;
    font-weight: 700;
}

.npwa-link-button {
    display: block;
    width: fit-content;
    margin: 12px auto 0;
    border: 0;
    background: transparent;
    color: #c4b5fd;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
}

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

.npwa-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.npwa-header p {
    margin: 6px 0 0;
    color: var(--npwa-muted);
    font-size: 0.86rem;
}

.npwa-icon-button {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--npwa-text);
    background: rgba(255, 255, 255, 0.06);
}

.npwa-student-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px;
    margin-bottom: 18px;
}

.npwa-avatar,
.npwa-list-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, #1f2937, #334155);
    font-weight: 900;
}

.npwa-avatar {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    font-size: 1rem;
}

.npwa-student-card strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 1.16rem;
}

.npwa-student-card span {
    display: block;
    margin-top: 3px;
    color: var(--npwa-muted);
}

.npwa-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.npwa-screen-title {
    margin-top: 8px;
}

.npwa-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.npwa-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.npwa-card {
    padding: 16px;
}

.npwa-card--hero {
    position: relative;
    overflow: hidden;
    min-height: 190px;
}

.npwa-card--hero::after {
    content: "";
    position: absolute;
    width: 220px;
    height: 220px;
    right: -88px;
    bottom: -110px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(124, 58, 237, 0.52), transparent 68%);
}

.npwa-card small,
.npwa-stat small,
.npwa-list-row small {
    display: block;
    color: var(--npwa-muted);
}

.npwa-stat strong {
    display: block;
    margin-top: 7px;
    font-size: 1.52rem;
    letter-spacing: -0.06em;
}

.npwa-delta {
    margin-top: 7px;
    color: var(--npwa-green);
    font-size: 0.76rem;
    font-weight: 900;
}

.npwa-painel-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    border: 1px solid rgba(168, 85, 247, 0.28);
    border-radius: var(--npwa-radius-xl);
    padding: 18px;
    background:
        radial-gradient(circle at 12% 20%, rgba(124, 58, 237, 0.34), transparent 60%),
        linear-gradient(180deg, rgba(30, 20, 55, 0.9), rgba(8, 12, 22, 0.92));
    box-shadow: var(--npwa-shadow);
}

.npwa-painel-hero__main {
    min-width: 0;
}

.npwa-painel-hero__main strong {
    display: block;
    margin-top: 4px;
    font-size: 2.4rem;
    line-height: 1;
    letter-spacing: -0.06em;
}

.npwa-painel-hero__chips {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    min-width: 0;
}

.npwa-hero-chip {
    display: grid;
    gap: 1px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 14px;
    padding: 8px 6px;
    color: var(--npwa-muted);
    background: rgba(2, 6, 23, 0.5);
    text-align: center;
    cursor: pointer;
}

.npwa-hero-chip b {
    color: #fff;
    font-size: 1.15rem;
    letter-spacing: -0.04em;
}

.npwa-hero-chip span {
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.npwa-hero-chip--alert {
    border-color: rgba(239, 68, 68, 0.4);
    background: rgba(127, 29, 29, 0.28);
}

.npwa-hero-chip--alert b {
    color: #fca5a5;
}

.npwa-painel-duo {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
}

.npwa-painel-card--themed {
    display: grid;
    gap: 12px;
    align-content: start;
}

.npwa-kpi-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

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

.npwa-kpi-grid > span {
    display: grid;
    gap: 3px;
    min-width: 0;
    border-radius: 14px;
    padding: 10px;
    background: rgba(2, 6, 23, 0.42);
}

.npwa-kpi-grid small {
    color: var(--npwa-muted);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.npwa-kpi-grid strong {
    font-size: 1.15rem;
    letter-spacing: -0.04em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-health-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.npwa-health-row button {
    display: grid;
    gap: 1px;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 8px 6px;
    text-align: center;
    background: rgba(255, 255, 255, 0.04);
    color: var(--npwa-muted);
    font-size: 0.64rem;
    font-weight: 800;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.npwa-health-row button:hover {
    border-color: rgba(168, 85, 247, 0.4);
    background: rgba(124, 58, 237, 0.14);
}

.npwa-health-row b {
    color: var(--npwa-text);
    font-size: 1.05rem;
    letter-spacing: -0.04em;
}

.npwa-recovery-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 16px;
    padding: 10px 12px;
    background: rgba(15, 23, 42, 0.4);
}

.npwa-recovery-row__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.npwa-recovery-row__info {
    min-width: 0;
}

.npwa-recovery-row__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.npwa-alunos-status {
    display: grid;
    justify-items: end;
    gap: 6px;
}

/* ===== Turmas ===== */
.npwa-turma-card {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.npwa-turma-card__topo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.npwa-turma-card__id {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.npwa-turma-card__id strong {
    font-size: 0.94rem;
}

.npwa-turma-card__id small {
    display: block;
    color: var(--npwa-muted);
    font-size: 0.74rem;
}

.npwa-turma-dot {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(148, 163, 184, 0.4);
}

.npwa-turma-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    color: var(--npwa-muted);
    font-size: 0.78rem;
}

.npwa-turma-card__meta strong {
    color: var(--npwa-text);
}

.npwa-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 8px 14px;
    padding: 4px 0 2px;
}

.npwa-turma-preview {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 14px;
    box-shadow: 0 10px 22px -14px rgba(0, 0, 0, 0.55);
    margin-bottom: 12px;
}

.npwa-turma-preview__time {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    opacity: 0.85;
}

.npwa-turma-preview__title {
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.npwa-turma-colors {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.npwa-color-field {
    display: grid;
    gap: 6px;
    color: var(--npwa-muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.npwa-color-field input[type="color"] {
    width: 100%;
    height: 44px;
    padding: 4px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 12px;
    background: rgba(2, 6, 23, 0.72);
    cursor: pointer;
}

/* ===== Painel do aluno (cards-herói) ===== */
.npwa-student-home {
    display: grid;
    gap: 16px;
    padding-bottom: 18px;
}

.npwa-student-home__hello {
    display: grid;
    gap: 8px;
}

.npwa-student-home__hello .npwa-kicker {
    color: #c4b5fd;
}

.npwa-student-home__hello h1 {
    margin: 0;
    color: var(--npwa-text);
    font-size: clamp(2.1rem, 10vw, 3rem);
    line-height: 0.92;
    letter-spacing: -0.08em;
}

.npwa-student-home__hello p {
    margin: 0;
    color: var(--npwa-muted);
}

.npwa-list-avatar--lg {
    width: 58px;
    height: 58px;
    border-radius: 20px;
    font-size: 1.08rem;
}

.npwa-home-priority,
.npwa-home-mini,
.npwa-home-training,
.npwa-home-feed-highlight,
.npwa-home-empty-action {
    border: 1px solid rgba(148, 163, 184, 0.16);
    color: var(--npwa-text);
    background: rgba(15, 23, 42, 0.72);
    box-shadow: 0 20px 50px rgba(2, 6, 23, 0.24);
}

.npwa-home-priority {
    --priority-accent: #7c3aed;
    display: grid;
    gap: 12px;
    border-radius: 24px;
    padding: 15px;
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--priority-accent) 28%, transparent), transparent 58%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.02)),
        rgba(15, 23, 42, 0.82);
}

.npwa-home-priority--critical {
    --priority-accent: #ef4444;
    border-color: rgba(239, 68, 68, 0.34);
    background:
        radial-gradient(circle at 100% 0%, rgba(239, 68, 68, 0.28), transparent 58%),
        linear-gradient(135deg, rgba(127, 29, 29, 0.46), rgba(15, 23, 42, 0.82));
}

.npwa-home-priority--high { --priority-accent: #f97316; }
.npwa-home-priority--medium { --priority-accent: #8b5cf6; }
.npwa-home-priority--low { --priority-accent: #22c55e; }

.npwa-home-priority__body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    border: 0;
    padding: 0;
    color: inherit;
    background: transparent;
    text-align: left;
}

.npwa-home-priority__icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, var(--priority-accent), color-mix(in srgb, var(--priority-accent) 46%, #111827));
    box-shadow: 0 14px 34px color-mix(in srgb, var(--priority-accent) 30%, transparent);
}

.npwa-home-priority__icon .material-symbols-rounded {
    font-size: 1.55rem;
}

.npwa-home-priority__icon.material-symbols-rounded {
    font-size: 1.55rem;
}

.npwa-home-priority__text {
    min-width: 0;
}

.npwa-home-priority__text span,
.npwa-home-mini small,
.npwa-home-feed-highlight__body small {
    display: block;
    color: color-mix(in srgb, var(--priority-accent, #8b5cf6) 70%, #fff);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.npwa-home-priority__text strong {
    display: block;
    margin-top: 5px;
    font-size: clamp(1rem, 4.4vw, 1.14rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.npwa-home-priority__text small,
.npwa-home-priority__text small {
    display: block;
    margin-top: 4px;
    color: var(--npwa-muted);
    line-height: 1.35;
}

.npwa-home-mini__icon {
    display: block;
    color: var(--mini-accent);
    font-size: 1.55rem;
}

.npwa-home-mini small {
    color: color-mix(in srgb, var(--mini-accent) 72%, #fff);
}

.npwa-home-mini em,
.npwa-home-feed-highlight em {
    display: block;
    margin-top: 4px;
    color: var(--npwa-muted);
    font-size: 0.78rem;
    font-style: normal;
    line-height: 1.25;
}

.npwa-home-priority__value {
    color: var(--priority-accent);
    font-size: clamp(1.05rem, 4.8vw, 1.28rem);
    font-weight: 1000;
    white-space: nowrap;
}

.npwa-home-priority__cta {
    justify-self: start;
    border: 0;
    border-radius: 999px;
    padding: 11px 18px;
    color: #fff;
    background: linear-gradient(135deg, var(--priority-accent), color-mix(in srgb, var(--priority-accent) 55%, #7c3aed));
    font-weight: 900;
}

.npwa-home-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.npwa-home-mini {
    --mini-accent: #8b5cf6;
    min-height: 118px;
    border-radius: 22px;
    padding: 14px;
    text-align: left;
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--mini-accent) 18%, transparent), transparent 62%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02)),
        rgba(15, 23, 42, 0.72);
}

.npwa-home-mini--financial { --mini-accent: #ef4444; }
.npwa-home-mini--agenda { --mini-accent: #8b5cf6; }
.npwa-home-mini--offensive { --mini-accent: #f97316; }
.npwa-home-mini--ranking { --mini-accent: #f59e0b; }
.npwa-home-mini--progression { --mini-accent: #22c55e; }
.npwa-home-mini--feed { --mini-accent: #38bdf8; }

.npwa-home-mini span {
    color: color-mix(in srgb, var(--mini-accent) 72%, #fff);
}

.npwa-home-mini strong {
    display: block;
    margin-top: 11px;
    font-size: clamp(1.12rem, 6vw, 1.38rem);
    line-height: 1.05;
    overflow-wrap: anywhere;
}

.npwa-home-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 2px 0;
}

.npwa-home-section-title h2 {
    margin: 0;
    font-size: 1.1rem;
}

.npwa-home-section-title button {
    border: 0;
    background: transparent;
    color: #c4b5fd;
    font-weight: 900;
}

.npwa-home-training {
    display: grid;
    gap: 10px;
    border-radius: 26px;
    padding: 15px;
}

.npwa-home-training__card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 20px;
    padding: 10px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.28);
    text-align: left;
}

.npwa-home-training__time {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 18px;
    color: var(--lesson-text, #fff);
    background: var(--lesson-bg, rgba(124, 58, 237, 0.24));
    font-weight: 1000;
}

.npwa-home-training__info {
    min-width: 0;
}

.npwa-home-training__info strong,
.npwa-home-training__info small {
    display: block;
    min-width: 0;
}

.npwa-home-training__info strong {
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.npwa-home-training__info small {
    margin-top: 3px;
    color: var(--npwa-muted);
}

.npwa-home-training__action {
    grid-column: 1 / -1;
    justify-self: end;
    border: 0;
    border-radius: 999px;
    padding: 10px 14px;
    color: #fff;
    background: linear-gradient(135deg, #7c3aed, #9333ea);
    font-size: 0.78rem;
    font-weight: 1000;
}

.npwa-home-training__action.is-booked {
    background: linear-gradient(135deg, #dc2626, #fb7185);
}

.npwa-home-empty-action,
.npwa-home-feed-highlight {
    display: grid;
    gap: 10px;
    width: 100%;
    border-radius: 24px;
    padding: 16px;
    text-align: left;
}

.npwa-home-empty-action {
    border-style: dashed;
    color: var(--npwa-muted);
}

.npwa-home-empty-action .material-symbols-rounded,
.npwa-home-feed-highlight .material-symbols-rounded {
    color: #a855f7;
}

.npwa-home-feed-highlight__icon {
    justify-self: end;
    font-size: 2rem;
}

.npwa-home-feed-highlight strong {
    display: block;
    margin-top: 5px;
    line-height: 1.15;
}

.npwa-home-feed-highlight {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.npwa-home-feed-highlight img {
    width: 72px;
    height: 72px;
    border-radius: 18px;
    object-fit: cover;
}

.npwa-hero-stack {
    display: grid;
    gap: 14px;
    margin-bottom: 20px;
}

.npwa-hero-card {
    --hero-accent: #7c3aed;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-align: left;
    padding: 16px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--hero-accent) 18%, transparent), transparent 60%),
        rgba(15, 23, 42, 0.55);
    color: var(--npwa-text);
    cursor: pointer;
    transition: transform 0.15s ease, border-color 0.15s ease;
}

.npwa-hero-card:active {
    transform: scale(0.99);
}

.npwa-hero-card--ofensiva { --hero-accent: #8b5cf6; }
.npwa-hero-card--agenda { --hero-accent: #7c3aed; }
.npwa-hero-card--ranking { --hero-accent: #d4a017; }
.npwa-hero-card--grau { --hero-accent: #16a34a; }
.npwa-hero-card--mensalidade { --hero-accent: #2563eb; }

.npwa-hero-card__icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: rgba(148, 163, 184, 0.16);
    background: color-mix(in srgb, var(--hero-accent) 22%, transparent);
    color: var(--hero-accent);
    flex: 0 0 auto;
}

.npwa-hero-card__icon .material-symbols-rounded {
    font-size: 1.7rem;
}

.npwa-hero-card__body {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.npwa-hero-card__eyebrow {
    color: var(--hero-accent);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.npwa-hero-card__title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.15;
}

.npwa-hero-card__flag {
    font-size: 1.15rem;
    color: var(--hero-accent);
}

.npwa-hero-card--mensalidade .npwa-hero-card__flag { color: #22c55e; }

.npwa-hero-card__sub {
    color: var(--npwa-muted);
    font-size: 0.82rem;
}

.npwa-hero-card__chev {
    color: var(--npwa-muted);
    font-size: 1.4rem;
    flex: 0 0 auto;
}

.npwa-hero-bar {
    display: block;
    height: 8px;
    margin: 6px 0 2px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    overflow: hidden;
}

.npwa-hero-bar > span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--hero-accent);
    background: linear-gradient(90deg, var(--hero-accent), color-mix(in srgb, var(--hero-accent) 60%, #ffffff));
}

.npwa-hero-dots {
    display: inline-flex;
    gap: 5px;
    margin-top: 4px;
}

.npwa-hero-dot {
    width: 22px;
    height: 7px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.25);
}

.npwa-hero-dot.active {
    background: var(--hero-accent);
}

.npwa-quick-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.npwa-link-inline {
    border: 0;
    background: transparent;
    color: #a855f7;
    font-weight: 800;
    font-size: 0.82rem;
    cursor: pointer;
}

.npwa-quick-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(64px, 1fr));
    gap: 10px;
}

.npwa-quick {
    display: grid;
    justify-items: center;
    gap: 8px;
    padding: 12px 6px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.5);
    color: var(--npwa-text);
    cursor: pointer;
}

.npwa-quick .material-symbols-rounded {
    font-size: 1.5rem;
    color: #a855f7;
}

.npwa-quick small {
    color: var(--npwa-muted);
    font-size: 0.66rem;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
}

/* ===== Agenda (abas / strip de dias / linhas ricas) ===== */
.npwa-agenda-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 16px;
}

.npwa-agenda-tab {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 16px;
    background: rgba(15, 23, 42, 0.5);
    color: var(--npwa-text);
    cursor: pointer;
    text-align: left;
}

.npwa-agenda-tab > span:last-child {
    display: grid;
    min-width: 0;
}

.npwa-agenda-tab .material-symbols-rounded {
    font-size: 1.3rem;
    color: var(--npwa-muted);
    flex: 0 0 auto;
}

.npwa-agenda-tab strong { font-size: 0.9rem; }
.npwa-agenda-tab small { color: var(--npwa-muted); font-size: 0.7rem; }

.npwa-agenda-tab.active {
    border-color: transparent;
    background: linear-gradient(135deg, #4c1d95, #7c3aed);
}

.npwa-agenda-tab.active .material-symbols-rounded,
.npwa-agenda-tab.active small {
    color: rgba(255, 255, 255, 0.85);
}

.npwa-daystrip {
    display: flex;
    align-items: stretch;
    gap: 10px;
    margin-bottom: 16px;
}

.npwa-daystrip__scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    flex: 1 1 auto;
    padding-bottom: 2px;
    scrollbar-width: none;
}

.npwa-daystrip__scroll::-webkit-scrollbar { display: none; }

.npwa-daychip {
    display: grid;
    justify-items: center;
    gap: 2px;
    min-width: 48px;
    padding: 8px 6px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.5);
    color: var(--npwa-text);
    cursor: pointer;
    flex: 0 0 auto;
}

.npwa-daychip strong { font-size: 1.05rem; }
.npwa-daychip small { color: var(--npwa-muted); font-size: 0.62rem; font-weight: 700; }

.npwa-daychip__tag {
    color: #a855f7;
    font-size: 0.55rem;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1;
}

.npwa-daychip__tag--ghost { visibility: hidden; }

.npwa-daychip.active {
    border-color: transparent;
    background: linear-gradient(135deg, #4c1d95, #7c3aed);
}

.npwa-daychip.active small,
.npwa-daychip.active .npwa-daychip__tag {
    color: rgba(255, 255, 255, 0.9);
}

.npwa-daystrip__nav {
    display: grid;
    place-items: center;
    width: 32px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 12px;
    background: rgba(15, 23, 42, 0.5);
    color: var(--npwa-text);
    cursor: pointer;
    flex: 0 0 auto;
}

.npwa-daystrip__nav .material-symbols-rounded {
    font-size: 1.1rem;
}

.npwa-daystrip__pick {
    display: grid;
    place-items: center;
    width: 48px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 14px;
    background: rgba(15, 23, 42, 0.5);
    color: #a855f7;
    cursor: pointer;
    flex: 0 0 auto;
    position: relative;
}

.npwa-daystrip__pick input[type="date"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.npwa-agenda-dayhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.npwa-agenda-dayhead strong { font-size: 1rem; }
.npwa-agenda-dayhead span { color: #a855f7; font-weight: 800; font-size: 0.85rem; white-space: nowrap; }

.npwa-agenda-list { gap: 14px; }

.npwa-agenda-row {
    --ev-color: #7c3aed;
    --ev-bg: rgba(15, 23, 42, 0.5);
    --ev-text: var(--npwa-text);
    position: relative;
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid color-mix(in srgb, var(--ev-color) 24%, rgba(148, 163, 184, 0.16));
    border-radius: 24px;
    background:
        radial-gradient(circle at 86% 72%, color-mix(in srgb, var(--ev-color) 34%, transparent), transparent 42%),
        linear-gradient(135deg, color-mix(in srgb, var(--ev-bg) 92%, #030712), color-mix(in srgb, var(--ev-bg) 72%, #020617));
    color: var(--ev-text);
    cursor: pointer;
    overflow: hidden;
    box-shadow:
        0 18px 34px rgba(2, 6, 23, 0.24),
        inset 0 0 0 1px color-mix(in srgb, var(--ev-text) 8%, transparent);
}

.npwa-agenda-row::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--ev-color);
    box-shadow: 0 0 22px color-mix(in srgb, var(--ev-color) 70%, transparent);
}

.npwa-agenda-row__main {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}

.npwa-agenda-row__time {
    display: grid;
    grid-template-columns: auto 10px;
    grid-template-rows: auto 1fr auto;
    column-gap: 9px;
    align-items: center;
    min-width: 58px;
    min-height: 58px;
    padding: 9px 8px;
    border-radius: 18px;
    color: var(--ev-text);
    background:
        linear-gradient(135deg, rgba(2, 6, 23, 0.58), color-mix(in srgb, var(--ev-color) 20%, rgba(2, 6, 23, 0.54))),
        rgba(2, 6, 23, 0.44);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ev-text) 8%, transparent);
}

.npwa-agenda-row__time strong {
    grid-column: 1;
    grid-row: 1;
    color: var(--ev-text);
    font-size: 0.9rem;
    font-weight: 900;
}

.npwa-agenda-row__time small {
    grid-column: 1;
    grid-row: 3;
    color: color-mix(in srgb, var(--ev-text) 68%, transparent);
    font-size: 0.75rem;
    font-weight: 700;
}

.npwa-agenda-row__timeline {
    grid-column: 2;
    grid-row: 1 / 4;
    position: relative;
    justify-self: center;
    align-self: stretch;
    width: 2px;
    min-height: 38px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ev-text) 28%, transparent);
}

.npwa-agenda-row__timeline::before {
    content: "";
    position: absolute;
    top: 7px;
    left: 50%;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--ev-color);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--ev-color) 18%, transparent);
    transform: translateX(-50%);
}

.npwa-agenda-row__dot {
    display: none;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ev-color);
    box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.14);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--ev-color) 22%, transparent);
    flex: 0 0 auto;
}

.npwa-agenda-row__body {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-agenda-row__title,
.npwa-agenda-row__modality,
.npwa-agenda-row__teacher {
    display: block;
}

.npwa-agenda-row__title {
    color: var(--ev-text);
    font-size: clamp(0.92rem, 3.6vw, 1.02rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    text-transform: uppercase;
    line-height: 1.12;
    overflow-wrap: anywhere;
    white-space: normal;
}

.npwa-agenda-row__modality {
    color: color-mix(in srgb, var(--ev-text) 84%, transparent);
    font-size: 0.8rem;
    font-weight: 800;
}

.npwa-agenda-row__teacher {
    color: color-mix(in srgb, var(--ev-text) 76%, transparent);
    font-size: 0.76rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.npwa-agenda-row__head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.npwa-agenda-row__head strong { font-size: 0.95rem; }
.npwa-agenda-row__level { color: var(--ev-color); font-weight: 800; font-size: 0.8rem; }

.npwa-agenda-row__prof {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: var(--npwa-muted);
    font-size: 0.8rem;
}

.npwa-agenda-row__prof .npwa-list-avatar {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    font-size: 0.68rem;
}

.npwa-agenda-row__prof span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-agenda-row__meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    grid-column: 1 / -1;
    width: 100%;
    flex: 0 0 auto;
}

.npwa-agenda-row__confirmed {
    display: grid;
    gap: 1px;
    place-items: center;
    min-width: 48px;
    color: var(--ev-text);
    text-align: center;
    text-shadow: 0 0 18px color-mix(in srgb, var(--ev-text) 28%, transparent);
}

.npwa-agenda-row__confirmed strong {
    font-size: 1rem;
    font-weight: 1000;
    line-height: 1;
}

.npwa-agenda-row__confirmed small {
    font-size: 0.56rem;
    font-weight: 1000;
    line-height: 1;
    text-transform: lowercase;
}

.npwa-agenda-row__count {
    min-width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 1000;
    color: var(--ev-text);
    background: rgba(148, 163, 184, 0.14);
    background: color-mix(in srgb, var(--ev-text) 16%, transparent);
}

.npwa-agenda-row__avatars {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    min-height: 28px;
    padding-left: 66px;
}

.npwa-agenda-row__avatars .npwa-agenda-row__avatar {
    width: 27px;
    height: 27px;
    margin-left: -7px;
    border: 2px solid rgba(2, 6, 23, 0.88);
    border-radius: 50%;
    background: rgba(30, 41, 59, 0.96);
    color: #fff;
    font-size: 0.58rem;
    box-shadow: 0 7px 14px rgba(2, 6, 23, 0.28);
}

.npwa-agenda-row__avatars .npwa-agenda-row__avatar:first-child { margin-left: 0; }

.npwa-agenda-row__avatars .npwa-agenda-row__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.npwa-agenda-row__avatars .npwa-agenda-row__avatar--more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 34px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.82);
    color: var(--ev-text);
    font-size: 0.66rem;
    font-weight: 1000;
}

.npwa-agenda-row__actions {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    padding-left: 66px;
}

.npwa-agenda-row__action {
    border: 0;
    width: 100%;
    border-radius: 10px;
    padding: 10px 14px;
    color: #fff;
    background: linear-gradient(135deg, #6d28d9, #9333ea);
    box-shadow: 0 14px 30px rgba(147, 51, 234, 0.26);
    font-size: 0.74rem;
    font-weight: 1000;
    white-space: nowrap;
}

.npwa-agenda-row__action.is-booked {
    background: linear-gradient(135deg, #dc2626, #fb7185);
    box-shadow: 0 14px 28px rgba(244, 63, 94, 0.22);
}

.npwa-agenda-row--history {
    --ev-color: #8b5cf6;
    --ev-bg: rgba(15, 23, 42, 0.72);
    --ev-text: var(--npwa-text);
}

.npwa-agenda-row__meta .material-symbols-rounded { color: color-mix(in srgb, var(--ev-text) 72%, transparent); }

.npwa-recovery-row__info strong,
.npwa-recovery-row__info small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-recovery-row__info small {
    color: var(--npwa-muted);
    font-size: 0.74rem;
}

.npwa-wa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    color: #fff;
    background: #22c55e;
    box-shadow: 0 8px 18px rgba(34, 197, 94, 0.28);
    text-decoration: none;
}

.npwa-wa-btn:active {
    transform: scale(0.94);
}

.npwa-chart {
    height: 96px;
    margin-top: 16px;
    border-radius: 16px;
    background:
        linear-gradient(180deg, rgba(124, 58, 237, 0.28), rgba(124, 58, 237, 0.03)),
        repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 42px);
    clip-path: polygon(0 70%, 8% 58%, 16% 64%, 24% 43%, 34% 52%, 45% 34%, 55% 46%, 64% 27%, 73% 36%, 83% 18%, 92% 28%, 100% 12%, 100% 100%, 0 100%);
}

.npwa-panel-card {
    padding: 16px;
}

.npwa-panel-card h2,
.npwa-panel-card h3 {
    margin: 0 0 12px;
    font-size: 1rem;
}

.npwa-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}

.npwa-list-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(148, 163, 184, 0.1);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.04);
}

.npwa-list-avatar {
    width: 38px;
    height: 38px;
    border-radius: 14px;
}

.npwa-list-row strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #c4b5fd;
    background: rgba(124, 58, 237, 0.18);
    font-size: 0.72rem;
    font-weight: 900;
}

.npwa-pill--green {
    color: #86efac;
    background: rgba(34, 197, 94, 0.14);
}

.npwa-progress {
    width: 100%;
    height: 8px;
    margin-top: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.14);
}

.npwa-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #6d28d9, #a855f7);
}

.npwa-action-card {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 20px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px 12px;
    padding: 14px;
    text-align: left;
    color: var(--npwa-text);
    background: rgba(255, 255, 255, 0.055);
}

.npwa-action-card span {
    grid-row: span 2;
    width: 38px;
    height: 38px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(124, 58, 237, 0.2);
    color: #c4b5fd;
}

.npwa-action-card small {
    color: var(--npwa-muted);
}

.npwa-bottom-nav {
    position: fixed;
    left: 50%;
    bottom: max(12px, var(--npwa-safe-bottom));
    z-index: 30;
    width: min(calc(100% - 24px), 456px);
    transform: translateX(-50%);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(54px, 1fr));
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 26px;
    background: rgba(15, 23, 42, 0.88);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
    backdrop-filter: blur(22px);
}

.npwa-offensive-floating {
    position: fixed;
    right: 14px;
    bottom: calc(96px + var(--npwa-safe-bottom));
    z-index: 40;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px 7px 9px;
    border: 1px solid rgba(251, 146, 60, 0.4);
    border-radius: 999px;
    background: linear-gradient(135deg, #b91c1c, #f97316);
    color: #fff;
    box-shadow: 0 14px 32px rgba(249, 115, 22, 0.42);
    cursor: grab;
    touch-action: none;
    user-select: none;
}

.npwa-offensive-floating:active {
    transform: scale(0.96);
}

.npwa-offensive-floating--dragging {
    cursor: grabbing;
    opacity: 0.92;
    box-shadow: 0 20px 44px rgba(249, 115, 22, 0.55);
}

.npwa-offensive-floating .material-symbols-rounded {
    font-size: 1.15rem;
    color: #fde68a;
}

.npwa-offensive-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 20px 18px;
    border-radius: var(--npwa-radius-xl);
    text-align: center;
    background:
        radial-gradient(circle at 50% 0%, rgba(249, 115, 22, 0.35), transparent 70%),
        linear-gradient(180deg, rgba(120, 30, 10, 0.7), rgba(8, 12, 22, 0.9));
    border: 1px solid rgba(251, 146, 60, 0.3);
}

.npwa-offensive-hero__fire {
    display: block;
    width: auto;
    height: auto;
    font-size: 2.4rem;
    line-height: 1;
    color: #fb923c;
    filter: drop-shadow(0 4px 12px rgba(249, 115, 22, 0.5));
}

.npwa-offensive-hero strong {
    display: block;
    font-size: 3.4rem;
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.npwa-offensive-hero small {
    max-width: 24ch;
    color: var(--npwa-muted);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
}

.npwa-offensive-floating strong {
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.1;
}

.npwa-offensive-floating small {
    display: block;
    font-size: 0.58rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.78);
}

.npwa-bottom-nav button {
    border: 0;
    border-radius: 18px;
    display: grid;
    place-items: center;
    gap: 3px;
    min-width: 0;
    min-height: 56px;
    padding: 4px 2px;
    overflow: hidden;
    color: var(--npwa-muted);
    background: transparent;
    font-weight: 900;
}

.npwa-bottom-nav button .material-symbols-rounded {
    font-size: 1.05rem;
}

.npwa-bottom-nav__label {
    max-width: 100%;
    font-size: 0.6rem;
    line-height: 1.05;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.material-symbols-rounded,
.material-symbols-outlined {
    width: 1.25em;
    height: 1.25em;
    overflow: hidden;
    font-family: "Material Symbols Rounded";
    font-weight: 600;
    font-style: normal;
    font-size: 1.22rem;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    direction: ltr;
    font-feature-settings: "liga";
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
}

.npwa-bottom-nav button.active {
    color: #fff;
    background: linear-gradient(135deg, #4c1d95, #7c3aed);
}

.npwa-avatar img,
.npwa-list-avatar img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}

.npwa-loading,
.npwa-empty,
.npwa-error {
    min-height: 260px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 28px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    padding: 26px;
    color: var(--npwa-muted);
    background: rgba(255, 255, 255, 0.055);
    text-align: center;
}

.npwa-loading strong,
.npwa-empty,
.npwa-error {
    color: var(--npwa-text);
}

.npwa-error {
    color: #fecaca;
    border-color: rgba(248, 113, 113, 0.28);
    background: rgba(127, 29, 29, 0.22);
}

.npwa-loader-ring {
    width: 52px;
    height: 52px;
    border-radius: 999px;
    border: 4px solid rgba(148, 163, 184, 0.24);
    border-top-color: #8b5cf6;
    border-right-color: #f97316;
    animation: npwaSpin 0.85s linear infinite;
}

@keyframes npwaSpin {
    to {
        transform: rotate(360deg);
    }
}

.npwa-top-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.npwa-profile-switcher {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 12px 2px 2px;
    scrollbar-width: none;
}

.npwa-profile-switcher::-webkit-scrollbar {
    display: none;
}

.npwa-profile-switcher button {
    flex: 0 0 auto;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 999px;
    padding: 9px 12px;
    color: var(--npwa-muted);
    background: rgba(255, 255, 255, 0.055);
    font-size: 0.76rem;
    font-weight: 900;
}

.npwa-profile-switcher button.active {
    color: #fff;
    border-color: rgba(168, 85, 247, 0.68);
    background: linear-gradient(135deg, #4c1d95, #7c3aed);
}

.npwa-date-input {
    min-height: 44px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 0 12px;
    color: var(--npwa-text);
    background: rgba(15, 23, 42, 0.7);
}

.npwa-bars {
    height: 170px;
    display: flex;
    align-items: flex-end;
    gap: 7px;
    padding: 18px 0 30px;
}

.npwa-bars .npwa-bar {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    border-radius: 999px 999px 6px 6px;
    background: linear-gradient(180deg, #a855f7, #4f46e5);
    box-shadow: 0 12px 28px rgba(124, 58, 237, 0.28);
}

.npwa-bars .npwa-bar em {
    position: absolute;
    left: 50%;
    top: -16px;
    transform: translateX(-50%);
    color: var(--npwa-text);
    font-size: 0.62rem;
    font-weight: 800;
    font-style: normal;
}

.npwa-bars .npwa-bar small {
    position: absolute;
    left: 50%;
    bottom: -24px;
    transform: translateX(-50%) rotate(-32deg);
    transform-origin: center top;
    color: var(--npwa-muted);
    font-size: 0.56rem;
    white-space: nowrap;
}

.npwa-ranking-podium {
    display: grid;
    gap: 12px;
}

.npwa-rank-card {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 24px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 8px 12px;
    align-items: center;
    padding: 16px;
    color: var(--npwa-text);
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(49, 46, 129, 0.38));
}

.npwa-rank-card--1 {
    border-color: rgba(250, 204, 21, 0.44);
    background: linear-gradient(135deg, rgba(92, 64, 14, 0.82), rgba(15, 23, 42, 0.95));
}

.npwa-rank-card strong,
.npwa-rank-card span {
    min-width: 0;
}

.npwa-rank-card small {
    grid-column: 3;
    grid-row: 1 / span 2;
    border-radius: 14px;
    padding: 8px 10px;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.npwa-offensive-card {
    display: grid;
    gap: 6px;
}

.npwa-offensive-card strong {
    font-size: 2rem;
}

.npwa-fire {
    display: inline-block;
    filter: drop-shadow(0 0 14px rgba(249, 115, 22, 0.7));
    animation: npwaFire 1.4s ease-in-out infinite alternate;
}

@keyframes npwaFire {
    from {
        transform: translateY(1px) scale(0.96);
    }
    to {
        transform: translateY(-1px) scale(1.05);
    }
}

.npwa-menu-row {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 18px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 14px;
    color: var(--npwa-text);
    background: rgba(255, 255, 255, 0.055);
    text-align: left;
    font-weight: 800;
}

.npwa-menu-row .material-symbols-outlined {
    color: #a78bfa;
}

.npwa-menu-row .material-symbols-rounded {
    color: #a78bfa;
}

.npwa-inline-action {
    border: 0;
    border-radius: 999px;
    padding: 9px 12px;
    color: #fff;
    background: linear-gradient(135deg, #4f46e5, #9333ea);
    font-size: 0.72rem;
    font-weight: 900;
    white-space: nowrap;
}

.npwa-inline-action--book {
    background: linear-gradient(135deg, #16a34a, #22c55e);
    box-shadow: 0 12px 28px rgba(34, 197, 94, 0.24);
}

.npwa-inline-action--unbook {
    background: linear-gradient(135deg, #ea580c, #ef4444);
    box-shadow: 0 12px 28px rgba(239, 68, 68, 0.22);
}

.npwa-inline-action--pay {
    width: 100%;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.npwa-lesson-row {
    position: relative;
    overflow: hidden;
    border-left: 5px solid var(--lesson-color, var(--npwa-purple));
}

.npwa-lesson-row::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 42%;
    pointer-events: none;
    background: linear-gradient(90deg, color-mix(in srgb, var(--lesson-color, var(--npwa-purple)) 34%, transparent), transparent);
    opacity: 0.28;
}

.npwa-lesson-row > * {
    position: relative;
    z-index: 1;
}

.npwa-lesson-time {
    background: linear-gradient(135deg, var(--lesson-color, var(--npwa-purple)), #1f2937);
}

.npwa-feed-row,
.npwa-offensive-row,
.npwa-ranking-row,
.npwa-finance-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 13px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.048);
}

.npwa-feed-row strong,
.npwa-offensive-row strong,
.npwa-ranking-row strong,
.npwa-finance-row strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-feed-row small,
.npwa-offensive-row small,
.npwa-ranking-row small,
.npwa-finance-row small {
    display: -webkit-box;
    overflow: hidden;
    color: var(--npwa-muted);
    font-size: 0.78rem;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.npwa-feed-row em,
.npwa-offensive-row em,
.npwa-ranking-row em {
    color: #c4b5fd;
    font-style: normal;
    font-size: 0.76rem;
    font-weight: 900;
    white-space: nowrap;
}

.npwa-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.npwa-card-header h2 {
    margin: 4px 0 0;
}

.npwa-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.npwa-info-grid span {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.1);
    border-radius: 16px;
    padding: 11px;
    color: var(--npwa-muted);
    background: rgba(255, 255, 255, 0.038);
    font-size: 0.74rem;
    font-weight: 800;
}

.npwa-info-grid strong {
    display: block;
    overflow: hidden;
    margin-top: 5px;
    color: var(--npwa-text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-face-card,
.npwa-recurring-card {
    display: grid;
    gap: 12px;
}

.npwa-face-card p,
.npwa-recurring-card p {
    margin: 0;
    color: var(--npwa-muted);
    line-height: 1.5;
}

.npwa-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 900;
    white-space: nowrap;
}

.npwa-status-badge--paid {
    color: #86efac;
    background: rgba(34, 197, 94, 0.15);
}

.npwa-status-badge--pending {
    color: #fde68a;
    background: rgba(245, 158, 11, 0.14);
}

.npwa-status-badge--overdue {
    color: #fecaca;
    background: rgba(239, 68, 68, 0.16);
}

.npwa-status-badge--canceled {
    color: #cbd5e1;
    background: rgba(100, 116, 139, 0.18);
}

.npwa-lesson-status-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
    color: var(--npwa-muted);
}

.npwa-lesson-status-line > span:first-child {
    color: var(--npwa-muted);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.npwa-button--checkin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.npwa-button--checkin .material-symbols-rounded {
    font-size: 1.1rem;
}

.npwa-progressbar {
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.18);
}

.npwa-progressbar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--npwa-purple), var(--npwa-green));
}

.npwa-finance-alert {
    display: grid;
    gap: 4px;
    border: 1px solid rgba(239, 68, 68, 0.28);
    border-radius: 22px;
    padding: 14px;
    background: linear-gradient(135deg, rgba(127, 29, 29, 0.36), rgba(15, 23, 42, 0.74));
}

.npwa-finance-alert span {
    color: #fecaca;
    font-size: 0.82rem;
}

.npwa-finance-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 5px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 999px;
    background: rgba(2, 6, 23, 0.46);
}

.npwa-finance-tabs button {
    min-width: 0;
    border: 0;
    border-radius: 999px;
    padding: 12px 8px;
    color: var(--npwa-muted);
    background: transparent;
    font-size: 0.74rem;
    font-weight: 900;
}

.npwa-finance-tabs button.active {
    color: #fff;
    background: linear-gradient(135deg, #5b21b6, #9333ea);
    box-shadow: 0 12px 28px rgba(124, 58, 237, 0.32);
}

.npwa-finance-due-card,
.npwa-finance-ok {
    display: grid;
    gap: 12px;
    border: 1px solid rgba(239, 68, 68, 0.28);
    border-radius: 22px;
    padding: 15px;
    background:
        radial-gradient(circle at 88% 18%, rgba(239, 68, 68, 0.22), transparent 8rem),
        linear-gradient(135deg, rgba(127, 29, 29, 0.58), rgba(48, 12, 32, 0.88));
    box-shadow: 0 18px 48px rgba(127, 29, 29, 0.24);
}

.npwa-finance-ok {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    border-color: rgba(34, 197, 94, 0.24);
    background:
        radial-gradient(circle at 12% 18%, rgba(34, 197, 94, 0.18), transparent 8rem),
        linear-gradient(135deg, rgba(20, 83, 45, 0.48), rgba(15, 23, 42, 0.86));
}

.npwa-finance-ok > .material-symbols-rounded {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    color: #86efac;
    background: rgba(34, 197, 94, 0.16);
}

.npwa-finance-ok strong,
.npwa-finance-ok small {
    display: block;
}

.npwa-finance-ok small {
    margin-top: 4px;
    color: var(--npwa-muted);
}

.npwa-finance-due-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.npwa-finance-due-card__top h2 {
    margin: 5px 0 0;
    color: #fecaca;
    font-size: clamp(1.15rem, 7vw, 1.45rem);
    line-height: 1.05;
    letter-spacing: -0.05em;
}

.npwa-finance-due-card__top > .material-symbols-rounded {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    border-radius: 999px;
    color: #fee2e2;
    background: rgba(239, 68, 68, 0.22);
}

.npwa-finance-due-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 18px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.05);
}

.npwa-finance-due-item div {
    min-width: 0;
}

.npwa-finance-due-item strong,
.npwa-finance-due-item small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-finance-due-item small {
    margin-top: 3px;
    color: #fca5a5;
    font-size: 0.74rem;
}

.npwa-finance-due-item b {
    flex: 0 0 auto;
    color: #fb7185;
    font-size: 1.05rem;
}

.npwa-finance-due-card__actions {
    display: flex;
    justify-content: flex-start;
}

.npwa-finance-pay-btn {
    border: 0;
    border-radius: 999px;
    padding: 11px 16px;
    color: #fff;
    background: linear-gradient(135deg, #ef4444, #db2777);
    font-size: 0.8rem;
    font-weight: 900;
    box-shadow: 0 14px 28px rgba(239, 68, 68, 0.28);
}

.npwa-finance-section {
    display: grid;
    gap: 10px;
}

.npwa-finance-section .npwa-card-header {
    margin-bottom: 0;
    align-items: center;
}

.npwa-inline-link {
    border: 0;
    padding: 0;
    color: #c084fc;
    background: transparent;
    font-size: 0.76rem;
    font-weight: 900;
}

.npwa-finance-list {
    display: grid;
    gap: 10px;
}

.npwa-finance-compact-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 17px;
    padding: 11px;
    background: rgba(15, 23, 42, 0.55);
}

.npwa-finance-compact-row__icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    color: #c4b5fd;
    background: rgba(124, 58, 237, 0.16);
    font-size: 1.1rem;
}

.npwa-finance-compact-row__main {
    min-width: 0;
}

.npwa-finance-compact-row__main strong,
.npwa-finance-compact-row__main small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-finance-compact-row__main small {
    margin-top: 3px;
    color: var(--npwa-muted);
    font-size: 0.72rem;
}

.npwa-finance-compact-row__side {
    display: grid;
    justify-items: end;
    gap: 5px;
}

.npwa-finance-compact-row__side b {
    font-size: 0.86rem;
    white-space: nowrap;
}

.npwa-finance-compact-row__side .npwa-finance-pay-btn {
    padding: 8px 11px;
    font-size: 0.72rem;
    box-shadow: none;
}

.npwa-finance-compact-row--paid .npwa-finance-compact-row__icon {
    color: #86efac;
    background: rgba(34, 197, 94, 0.15);
}

.npwa-finance-compact-row--overdue {
    border-color: rgba(239, 68, 68, 0.28);
    background: rgba(127, 29, 29, 0.18);
}

.npwa-finance-compact-row--overdue .npwa-finance-compact-row__icon {
    color: #fecaca;
    background: rgba(239, 68, 68, 0.16);
}

.npwa-finance-compact-row--canceled {
    opacity: 0.72;
}

.npwa-finance-row {
    grid-template-columns: auto minmax(0, 1fr);
}

.npwa-finance-row__icon {
    grid-row: span 2;
    width: 42px;
    height: 42px;
    border-radius: 15px;
    display: grid;
    place-items: center;
    background: rgba(124, 58, 237, 0.16);
    font-weight: 900;
}

.npwa-finance-row__side {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 8px;
}

.npwa-finance-row__side b {
    justify-self: end;
}

.npwa-finance-row--paid {
    border-color: rgba(34, 197, 94, 0.22);
}

.npwa-finance-row--overdue {
    border-color: rgba(239, 68, 68, 0.3);
    background: rgba(127, 29, 29, 0.16);
}

.npwa-finance-row--canceled {
    opacity: 0.72;
}

.npwa-finance-admin-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
    border: 1px solid var(--npwa-border);
    border-radius: 22px;
    padding: 14px;
    background: rgba(15, 23, 42, 0.42);
}

.npwa-finance-admin-row--paid {
    border-color: rgba(34, 197, 94, 0.22);
}

.npwa-finance-admin-row--overdue {
    border-color: rgba(239, 68, 68, 0.3);
    background: rgba(127, 29, 29, 0.16);
}

.npwa-finance-admin-row--canceled {
    opacity: 0.72;
}

.npwa-finance-admin-row__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.npwa-finance-admin-row__main {
    min-width: 0;
}

.npwa-finance-admin-row__main strong {
    display: block;
    margin-bottom: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-finance-admin-row__main small {
    display: block;
    color: var(--npwa-muted);
    font-size: 0.76rem;
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-finance-admin-row__side {
    flex: 0 0 auto;
    display: grid;
    justify-items: end;
    gap: 7px;
    text-align: right;
}

.npwa-finance-admin-row__side b {
    font-size: 1.05rem;
    letter-spacing: -0.03em;
}

.npwa-finance-admin-row__alert {
    margin: 0;
    border: 1px solid rgba(239, 68, 68, 0.28);
    border-radius: 16px;
    padding: 10px 12px;
    color: #fecaca;
    background: rgba(127, 29, 29, 0.28);
    font-size: 0.78rem;
    font-weight: 700;
}

.npwa-finance-admin-row__values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    border-radius: 16px;
    padding: 10px 12px;
    background: rgba(2, 6, 23, 0.5);
}

.npwa-finance-admin-row__values span {
    display: grid;
    gap: 3px;
    min-width: 0;
    color: var(--npwa-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.npwa-finance-admin-row__values strong {
    color: var(--npwa-text);
    font-size: 0.82rem;
    letter-spacing: -0.02em;
    text-transform: none;
}

.npwa-finance-admin-row .npwa-action-grid .npwa-button {
    flex: 1 1 auto;
    padding: 11px 14px;
    font-size: 0.8rem;
}

.npwa-textarea-field {
    display: grid;
    gap: 7px;
    color: var(--npwa-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.npwa-textarea-field textarea {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 12px 14px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
    font: inherit;
    font-size: 0.86rem;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    resize: vertical;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.npwa-textarea-field textarea:focus {
    border-color: rgba(168, 85, 247, 0.75);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16);
}

.npwa-leaderboard {
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 30px;
    padding: 18px 14px 0;
    background:
        radial-gradient(circle at 20% 20%, rgba(124, 58, 237, 0.32), transparent 12rem),
        radial-gradient(circle at 82% 12%, rgba(251, 191, 36, 0.20), transparent 9rem),
        linear-gradient(180deg, #19112f, #080d18);
    box-shadow: var(--npwa-shadow);
}

.npwa-leaderboard__stage {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    gap: 8px;
}

.npwa-leaderboard-card {
    min-width: 0;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 18px;
    display: grid;
    justify-items: center;
    gap: 5px;
    padding: 10px 7px;
    background: rgba(255, 255, 255, 0.94);
    color: #111827;
    text-align: center;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
}

.npwa-leaderboard-card--1 {
    transform: translateY(-12px);
}

.npwa-leaderboard-card__avatar {
    width: 48px;
    height: 48px;
    border-radius: 18px;
}

.npwa-leaderboard-card strong {
    width: 100%;
    overflow: hidden;
    font-size: 0.76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-leaderboard-card span {
    color: #f97316;
    font-size: 1rem;
    font-weight: 900;
}

.npwa-leaderboard-card small {
    color: #7c3aed;
    font-size: 0.62rem;
    font-weight: 900;
}

.npwa-leaderboard__bars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: end;
    margin-top: 8px;
}

.npwa-leaderboard__bar {
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 900;
    background: linear-gradient(135deg, #fbbf24, #f97316);
}

.npwa-leaderboard__bar--1 {
    height: 64px;
    border-radius: 14px 14px 0 0;
}

.npwa-leaderboard__bar--2 {
    height: 46px;
    border-radius: 14px 0 0 0;
}

.npwa-leaderboard__bar--3 {
    height: 38px;
    border-radius: 0 14px 0 0;
}

.npwa-ranking-row {
    grid-template-columns: auto auto minmax(0, 1fr) auto;
}

.npwa-ranking-row b {
    color: #c4b5fd;
}

.npwa-ranking-row em {
    color: #fbbf24;
    font-size: 1rem;
}

.npwa-offensive-row {
    grid-template-columns: auto auto minmax(0, 1fr) auto;
}

.npwa-offensive-row b {
    color: #c4b5fd;
}

.npwa-offensive-row em {
    color: #86efac;
}

.npwa-list-row--clickable {
    cursor: pointer;
}

.npwa-list-row--clickable:active {
    transform: scale(0.99);
}

.npwa-modal {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: grid;
    align-items: end;
}

.npwa-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(10px);
}

.npwa-modal__panel {
    position: relative;
    width: min(100%, 520px);
    max-height: min(92dvh, 860px);
    margin: 0 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-gutter: stable both-edges;
    padding: 22px 18px calc(24px + var(--npwa-safe-bottom));
    border-radius: 30px 30px 0 0;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: linear-gradient(180deg, #101827, #070b14);
    box-shadow: 0 -28px 80px rgba(0, 0, 0, 0.55);
}

.npwa-modal__close {
    position: sticky;
    top: 0;
    z-index: 2;
    float: right;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    font-size: 1.35rem;
}

.npwa-modal--locked .npwa-modal__close {
    display: none;
}

.npwa-modal--locked .npwa-modal__backdrop {
    pointer-events: none;
}

.npwa-reactivation {
    display: grid;
    gap: 16px;
    padding: 8px 0 4px;
}

.npwa-reactivation__signal {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    color: #f7e8ff;
    background: linear-gradient(135deg, #7c3aed, #c026d3);
    box-shadow: 0 12px 30px rgba(168, 85, 247, 0.28);
}

.npwa-reactivation__signal .material-symbols-rounded {
    font-size: 25px;
}

.npwa-reactivation__eyebrow {
    color: #c4b5fd;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.npwa-reactivation h2 {
    margin: -6px 0 0;
    font-size: clamp(2rem, 8vw, 2.5rem);
    line-height: 0.94;
    letter-spacing: -0.06em;
}

.npwa-reactivation > p {
    margin: -4px 0 0;
    color: #aeb9cd;
    font-size: 1rem;
    line-height: 1.48;
}

.npwa-reactivation > p strong {
    color: #f8fafc;
}

.npwa-reactivation__summary {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 14px;
    padding: 17px;
    border: 1px solid rgba(196, 181, 253, 0.2);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.045);
}

.npwa-reactivation__summary span {
    grid-column: 1 / -1;
    color: #9aa8bf;
    font-size: 0.74rem;
    font-weight: 700;
}

.npwa-reactivation__summary strong {
    min-width: 0;
    color: #f8fafc;
    font-size: 0.95rem;
    line-height: 1.2;
}

.npwa-reactivation__summary b {
    align-self: end;
    color: #fff;
    font-size: 1.12rem;
    white-space: nowrap;
}

.npwa-reactivation__hint,
.npwa-reactivation__contact {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.045);
    color: #cbd5e1 !important;
    font-size: 0.82rem !important;
}

.npwa-reactivation__contact {
    border-left: 3px solid #fbbf24;
}

.npwa-reactivation__feedback {
    margin: -4px 0 0;
    padding: 12px 14px;
    border: 1px solid rgba(196, 181, 253, 0.28);
    border-radius: 14px;
    color: #e9d5ff;
    background: rgba(124, 58, 237, 0.13);
    font-size: 0.83rem;
    line-height: 1.4;
}

.npwa-reactivation__actions {
    display: grid;
    gap: 12px;
    margin-top: 4px;
}

.npwa-reactivation__actions .npwa-button {
    width: 100%;
}

.npwa-detail {
    display: grid;
    gap: 14px;
}

.npwa-detail h2 {
    margin: 2px 44px 0 0;
    font-size: 1.8rem;
    line-height: 1;
    letter-spacing: -0.06em;
}

.npwa-detail h3 {
    margin: 0 0 10px;
    font-size: 1rem;
}

.npwa-detail__stats {
    margin-top: 4px;
}

.npwa-detail-actions {
    display: grid;
    gap: 12px;
}

.npwa-action-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.npwa-action-row {
    display: flex;
    gap: 8px;
}

.npwa-action-row .npwa-button {
    flex: 1 1 0;
    min-width: 0;
}

.npwa-button--sm {
    padding: 11px 12px;
    border-radius: 15px;
    font-size: 0.82rem;
}

.npwa-button--danger {
    color: #fff;
    background: linear-gradient(135deg, #be123c, #ef4444);
}

.npwa-file-button {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    line-height: 1;
}

.npwa-file-button .material-symbols-rounded {
    font-size: 1.25rem;
    line-height: 1;
    display: block;
}

.npwa-field-label {
    display: block;
    color: var(--npwa-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.npwa-lesson-qr {
    width: fit-content;
    margin: 4px auto 0;
    padding: 14px;
    border-radius: 22px;
    background: #fff;
}

.npwa-search-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    margin-bottom: 12px;
}

.npwa-search-row input {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 12px 14px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
}

.npwa-attendance-bulk {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    margin-bottom: 10px;
    border: 1px solid var(--npwa-border);
    border-radius: 16px;
    background: rgba(124, 58, 237, 0.08);
}

.npwa-attendance-bulk__selected {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.npwa-attendance-bulk__selected .npwa-button {
    flex: 1 1 0;
    min-width: 140px;
}

.npwa-attendance-bulk .npwa-button:disabled {
    opacity: 0.45;
    cursor: default;
}

.npwa-student-manage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    border: 1px solid var(--npwa-border);
    border-radius: 18px;
    padding: 12px;
    background: rgba(15, 23, 42, 0.4);
}

.npwa-student-manage__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}

.npwa-student-manage__lead {
    display: flex;
    align-items: center;
    gap: 8px;
}

.npwa-student-manage__check {
    width: 18px;
    height: 18px;
    accent-color: #7c3aed;
    flex-shrink: 0;
}

.npwa-student-manage__info {
    min-width: 0;
}

.npwa-student-manage__info strong,
.npwa-student-manage__info small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-student-manage__info small {
    color: var(--npwa-muted);
}

.npwa-student-manage__actions {
    display: flex;
    gap: 6px;
}

.npwa-attn-btn {
    flex: 1 1 0;
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 12px;
    padding: 9px 8px;
    font-size: 0.78rem;
    font-weight: 800;
    color: #fff;
}

.npwa-attn-btn--falta {
    background: #ef4444;
    border-color: #ef4444;
    color: #fff;
}

.npwa-attn-btn--unbook {
    background: #f59e0b;
    border-color: #f59e0b;
    color: #422006;
}

.npwa-attn-btn--presente {
    background: #22c55e;
    border-color: #22c55e;
    color: #052e16;
}

.npwa-combobox {
    position: relative;
}

.npwa-combobox__input {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 0 14px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
    font-size: 0.86rem;
    font-weight: 600;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.npwa-combobox__input:focus {
    /* iOS da zoom automatico ao focar um input com font-size < 16px. Forcar 16px
       so no foco evita o zoom sem deixar o campo maior enquanto nao esta em uso. */
    font-size: 16px;
    border-color: rgba(168, 85, 247, 0.75);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16);
}

.npwa-combobox__list {
    position: absolute;
    z-index: 5;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    max-height: 280px;
    overflow-y: auto;
    display: grid;
    gap: 4px;
    padding: 6px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 16px;
    background: var(--npwa-panel-2);
    box-shadow: var(--npwa-shadow);
}

.npwa-combobox__option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    width: 100%;
    border: 0;
    border-radius: 12px;
    padding: 8px 10px;
    text-align: left;
    color: var(--npwa-text);
    background: transparent;
}

.npwa-combobox__option:hover,
.npwa-combobox__option:focus {
    background: rgba(124, 58, 237, 0.16);
}

.npwa-combobox__option strong,
.npwa-combobox__option small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-combobox__option small {
    color: var(--npwa-muted);
    font-size: 0.74rem;
}

.npwa-combobox__hint {
    padding: 10px 12px;
    color: var(--npwa-muted);
    font-size: 0.82rem;
}

.npwa-qr-zoom {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.npwa-qr-zoom__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.82);
    backdrop-filter: blur(10px);
}

.npwa-qr-zoom__panel {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 14px;
    width: auto;
    max-width: 100%;
    padding: 20px;
    border-radius: 26px;
    background: var(--npwa-panel-2);
    box-shadow: var(--npwa-shadow);
}

.npwa-qr-zoom__title {
    max-width: 100%;
    padding-right: 40px;
    text-align: center;
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-qr-zoom__code {
    padding: 14px;
    border-radius: 20px;
    background: #fff;
    line-height: 0;
}

.npwa-qr-zoom__code img,
.npwa-qr-zoom__code canvas {
    display: block;
    max-width: 100%;
    height: auto;
}

.npwa-qr-zoom__close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
    font-size: 1.25rem;
    line-height: 1;
}

.npwa-weekday-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
    gap: 8px;
}

.npwa-weekday-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 14px;
    padding: 10px 8px;
    color: var(--npwa-muted);
    background: rgba(2, 6, 23, 0.5);
    font-size: 0.8rem;
    font-weight: 800;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.npwa-weekday-chip:has(input:checked) {
    border-color: rgba(168, 85, 247, 0.6);
    background: rgba(124, 58, 237, 0.2);
    color: #e9d5ff;
}

.npwa-weekday-chip input {
    accent-color: var(--npwa-purple);
}

.npwa-check-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--npwa-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.npwa-photo-review__image {
    width: 100%;
    max-height: 360px;
    border-radius: 24px;
    object-fit: cover;
}

.npwa-qr-reader {
    position: fixed;
    left: 50%;
    bottom: calc(18px + var(--npwa-safe-bottom));
    z-index: 90;
    width: min(92vw, 420px);
    transform: translateX(-50%);
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 24px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: #07111f;
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.58);
}

.npwa-qr-reader p {
    margin: 0;
    color: var(--npwa-muted);
    text-align: center;
}

.npwa-qr-reader video {
    border-radius: 18px;
}

.npwa-toast {
    position: fixed;
    left: 50%;
    bottom: calc(104px + var(--npwa-safe-bottom));
    z-index: 100;
    width: min(90vw, 420px);
    transform: translateX(-50%);
    padding: 13px 16px;
    border-radius: 18px;
    color: #fff;
    background: rgba(15, 23, 42, 0.96);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.42);
    font-weight: 800;
    text-align: center;
}

.npwa-toast--success {
    color: #052e16;
    background: #86efac;
}

.npwa-toast--error {
    background: #be123c;
}

.npwa-sheet {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: grid;
    align-items: end;
}

.npwa-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, 0.68);
    backdrop-filter: blur(8px);
}

.npwa-sheet__panel {
    position: relative;
    width: min(100%, 480px);
    margin: 0 auto;
    display: grid;
    gap: 12px;
    padding: 24px 18px calc(24px + var(--npwa-safe-bottom));
    border-radius: 30px 30px 0 0;
    border: 1px solid rgba(148, 163, 184, 0.16);
    background: linear-gradient(180deg, #101827, #070b14);
    box-shadow: 0 -24px 70px rgba(0, 0, 0, 0.45);
}

.npwa-sheet__close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    font-size: 1.35rem;
}

@media (min-width: 900px) {
    .npwa-body {
        padding: 28px;
    }

    .npwa-shell {
        border-radius: 34px;
        overflow: hidden;
        min-height: calc(100dvh - 56px);
    }
}

/* Ajustes específicos do /novopwa sem interferir no PWA legado. */
.npwa-header > div,
.npwa-brand-line {
    min-width: 0;
}

.npwa-brand-line span {
    max-width: min(68vw, 300px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-icon-button .material-symbols-rounded {
    width: auto;
    height: auto;
    font-size: 1.22rem;
}

.npwa-action-card > .material-symbols-rounded {
    width: 42px;
    height: 42px;
    border-radius: 15px;
    font-size: 1.35rem;
}

.npwa-lesson-time {
    width: 52px;
    height: 34px;
    border-radius: 14px;
    background:
        radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--lesson-color, var(--npwa-purple)) 62%, transparent), transparent 62%),
        rgba(15, 23, 42, 0.74);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 10px 24px color-mix(in srgb, var(--lesson-color, var(--npwa-purple)) 28%, transparent);
}

.npwa-lesson-time strong {
    font-size: 0.82rem;
    letter-spacing: -0.04em;
}

.npwa-feed-composer {
    display: grid;
    gap: 12px;
}

.npwa-feed-composer__text {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 12px 14px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
    font: inherit;
    font-size: 0.9rem;
    resize: vertical;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.npwa-feed-composer__text:focus {
    border-color: rgba(168, 85, 247, 0.75);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16);
}

.npwa-feed-composer__preview {
    display: grid;
    gap: 8px;
    justify-items: start;
}

.npwa-feed-composer__preview img {
    width: 100%;
    max-height: 240px;
    border-radius: 16px;
    object-fit: cover;
}

.npwa-feed-composer__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.npwa-feed-post-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(148, 163, 184, 0.12);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.068), rgba(255, 255, 255, 0.035));
}

.npwa-feed-post-card__top {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
}

.npwa-feed-post-card__top strong,
.npwa-feed-post-card__top small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.npwa-feed-post-card__top small {
    color: var(--npwa-muted);
    font-size: 0.78rem;
}

.npwa-feed-post-card__text {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.9rem;
    line-height: 1.55;
}

.npwa-feed-post-card__media {
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(15, 23, 42, 0.7);
}

.npwa-feed-post-card__media img {
    display: block;
    width: 100%;
    max-height: 320px;
    object-fit: cover;
}

.npwa-detail__date {
    margin: 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.9rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}

.npwa-detail__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 0;
}

.npwa-detail__stats .npwa-card {
    min-height: 0;
    padding: 11px;
    border-radius: 18px;
}

.npwa-detail__stats .npwa-stat small {
    font-size: 0.66rem;
}

.npwa-detail__stats .npwa-stat strong {
    margin-top: 4px;
    font-size: 1.22rem;
    letter-spacing: -0.04em;
}

.npwa-detail__stats .npwa-delta {
    margin-top: 4px;
    font-size: 0.64rem;
}

.npwa-collapse {
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.13);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.048);
}

.npwa-collapse summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px;
    color: var(--npwa-text);
    font-weight: 900;
}

.npwa-collapse summary::-webkit-details-marker {
    display: none;
}

.npwa-collapse summary > span:first-child {
    flex: 1;
    min-width: 0;
}

.npwa-collapse summary::after {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    margin-right: 4px;
    border-right: 2px solid var(--npwa-muted);
    border-bottom: 2px solid var(--npwa-muted);
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform 0.2s ease;
}

.npwa-collapse[open] summary::after {
    transform: rotate(225deg);
}

.npwa-collapse summary strong {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: 7px 10px;
    color: #86efac;
    background: rgba(34, 197, 94, 0.12);
    font-size: 0.7rem;
}

.npwa-collapse__body {
    padding: 0 12px 12px;
}

.npwa-filters-panel {
    display: grid;
    gap: 10px;
    margin-bottom: 4px;
}

.npwa-filters-panel .npwa-search-row {
    margin-bottom: 0;
}

.npwa-filters-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    padding: 12px 0 14px;
}

.npwa-filters-grid label {
    display: grid;
    gap: 7px;
    min-width: 0;
    color: var(--npwa-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.npwa-filters-grid select,
.npwa-filters-grid input {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 0 12px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
    font-size: 0.86rem;
    font-weight: 700;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.npwa-filters-grid select:focus,
.npwa-filters-grid input:focus {
    border-color: rgba(168, 85, 247, 0.75);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16);
}

.npwa-filters-grid select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 34px;
    background-image: linear-gradient(45deg, transparent 50%, var(--npwa-muted) 50%), linear-gradient(135deg, var(--npwa-muted) 50%, transparent 50%);
    background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.npwa-filters-grid input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    filter: invert(1);
    opacity: 0.55;
}

.npwa-filters-grid input[type="date"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

.npwa-filters-actions {
    display: flex;
    justify-content: flex-end;
    padding-bottom: 2px;
}

.npwa-booked-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 11px;
    border-radius: 18px;
    background: rgba(15, 23, 42, 0.38);
}

.npwa-booked-row strong,
.npwa-booked-row small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

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

.npwa-attendance-wrap {
    display: grid;
    justify-items: end;
    gap: 8px;
}

.npwa-profile-photo-card__body {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
}

.npwa-profile-photo-card__body p {
    margin: 0;
    color: var(--npwa-muted);
    line-height: 1.45;
}

.npwa-profile-photo-card__preview {
    display: inline-grid;
    place-items: center;
    width: 82px;
    height: 82px;
    border-radius: 26px;
    overflow: hidden;
    color: #fff;
    font-weight: 900;
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.38), rgba(15, 23, 42, 0.9));
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.25);
}

.npwa-profile-photo-card__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.npwa-profile-photo-modal {
    display: grid;
    gap: 14px;
}

.npwa-profile-photo-modal h2,
.npwa-profile-photo-modal p {
    margin: 0;
}

.npwa-profile-photo-modal p {
    color: var(--npwa-muted);
}

.npwa-offensive-settings-modal {
    display: grid;
    gap: 14px;
}

.npwa-offensive-settings-modal h2,
.npwa-offensive-settings-modal p {
    margin: 0;
}

.npwa-offensive-settings-modal p {
    color: var(--npwa-muted);
}

#npwaProfilePhotoCanvas {
    width: min(100%, 320px);
    aspect-ratio: 1;
    border-radius: 28px;
    border: 1px solid var(--npwa-border);
    background: rgba(15, 23, 42, 0.72);
    justify-self: center;
}

.npwa-range-label {
    display: grid;
    gap: 8px;
    color: var(--npwa-muted);
    font-size: 0.82rem;
    font-weight: 800;
}

.npwa-range-label input {
    width: 100%;
    accent-color: var(--npwa-purple);
}

.npwa-progression-tabs {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 2px 0 12px;
    scrollbar-width: none;
}

.npwa-progression-tabs::-webkit-scrollbar {
    display: none;
}

.npwa-progression-tabs button {
    flex: 0 0 auto;
    border: 1px solid var(--npwa-border);
    border-radius: 999px;
    padding: 11px 15px;
    color: var(--npwa-muted);
    font-weight: 900;
    background: rgba(255, 255, 255, 0.06);
}

.npwa-progression-tabs button.active {
    color: #fff;
    border-color: rgba(168, 85, 247, 0.62);
    background: linear-gradient(135deg, var(--npwa-purple), #9333ea);
    box-shadow: 0 14px 32px rgba(124, 58, 237, 0.26);
}

.npwa-progression-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.npwa-progression-card p {
    margin: 0;
    color: var(--npwa-muted);
}

.npwa-progression-card > strong,
.npwa-card-header > strong {
    color: var(--npwa-green);
}

.npwa-belt-bar {
    position: relative;
    height: 30px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
}

.npwa-belt-bar__fill {
    position: absolute;
    inset: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--belt-color), color-mix(in srgb, var(--belt-color) 74%, #fff 26%));
    box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.2);
}

.npwa-belt-bar__shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.35) 45%, transparent 75%);
    animation: npwaBeltShine 2.8s linear infinite;
}

@keyframes npwaBeltShine {
    from { transform: translateX(-120%); }
    to { transform: translateX(120%); }
}

.npwa-progression-meta {
    margin: 0;
    color: var(--npwa-muted);
    font-size: 0.86rem;
}

.npwa-detail-rows {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.npwa-detail-rows > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.npwa-detail-rows > div span {
    color: var(--npwa-muted);
    font-size: 0.86rem;
}

.npwa-detail-rows > div strong {
    text-align: right;
}

.npwa-grade-track {
    display: flex;
    gap: 8px;
}

.npwa-grade-chip {
    width: 18px;
    height: 18px;
    border-radius: 999px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.1);
}

.npwa-grade-chip.active {
    border-color: #fff;
    background: #fff;
}

.npwa-progression-trail {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
}

.npwa-progression-trail::-webkit-scrollbar {
    display: none;
}

.npwa-progression-grade {
    flex: 0 0 auto;
    border-radius: 18px;
    padding: 10px 12px;
    color: #fff;
    font-weight: 900;
    background: linear-gradient(135deg, var(--grade-primary), var(--grade-secondary));
    opacity: 0.72;
}

.npwa-progression-grade.active {
    opacity: 1;
    outline: 2px solid rgba(255, 255, 255, 0.55);
}

.npwa-leaderboard {
    padding: 18px 14px 18px;
}

.npwa-leaderboard__intro {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 4px;
    margin-bottom: 18px;
    text-align: center;
}

.npwa-leaderboard__intro h2,
.npwa-leaderboard__intro p {
    margin: 0;
}

.npwa-leaderboard__intro p {
    color: var(--npwa-muted);
    font-size: 0.82rem;
}

.npwa-leaderboard__stage {
    align-items: end;
    gap: 9px;
}

.npwa-leaderboard-card {
    display: grid;
    align-content: end;
    gap: 9px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    box-shadow: none;
}

.npwa-leaderboard-card--1 {
    order: 2;
    transform: none;
}

.npwa-leaderboard-card--2 {
    order: 1;
}

.npwa-leaderboard-card--3 {
    order: 3;
}

.npwa-leaderboard-card__student {
    display: grid;
    justify-items: center;
    gap: 6px;
    min-width: 0;
    text-align: center;
}

.npwa-leaderboard-card__avatar {
    width: 56px;
    height: 56px;
    border-radius: 20px;
    border: 2px solid rgba(255, 255, 255, 0.22);
    box-shadow: 0 18px 32px rgba(0, 0, 0, 0.28);
}

.npwa-leaderboard-card strong {
    max-width: 100%;
    color: #fff;
    font-size: 0.78rem;
}

.npwa-leaderboard-card__student small {
    color: #fed7aa;
    font-size: 0.66rem;
    font-weight: 900;
}

.npwa-leaderboard-card__bar {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 112px;
    padding: 14px 8px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 24px 24px 12px 12px;
    background: linear-gradient(180deg, rgba(255,255,255,.15), rgba(15,23,42,.3));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 18px 34px rgba(0,0,0,.18);
}

.npwa-leaderboard-card--1 .npwa-leaderboard-card__bar {
    min-height: 150px;
    border-color: rgba(255, 214, 92, 0.44);
    background: linear-gradient(180deg, rgba(255, 223, 119, 0.34), rgba(163, 107, 15, 0.42));
}

.npwa-leaderboard-card--2 .npwa-leaderboard-card__bar {
    min-height: 126px;
    border-color: rgba(203, 213, 225, 0.38);
    background: linear-gradient(180deg, rgba(226, 232, 240, 0.26), rgba(100, 116, 139, 0.36));
}

.npwa-leaderboard-card--3 .npwa-leaderboard-card__bar {
    min-height: 106px;
    border-color: rgba(251, 146, 60, 0.36);
    background: linear-gradient(180deg, rgba(251, 191, 116, 0.28), rgba(146, 64, 14, 0.4));
}

.npwa-leaderboard-card__bar b {
    position: absolute;
    top: 12px;
    left: 50%;
    transform: translateX(-50%);
    min-width: 30px;
    height: 30px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    color: #101726;
    background: linear-gradient(135deg, #f5c542 0%, #ffd86b 100%);
    font-weight: 900;
}

.npwa-leaderboard-card--2 .npwa-leaderboard-card__bar b {
    background: linear-gradient(135deg, #cbd5e1 0%, #f8fafc 100%);
}

.npwa-leaderboard-card--3 .npwa-leaderboard-card__bar b {
    color: #431407;
    background: linear-gradient(135deg, #fdba74 0%, #f97316 100%);
}

.npwa-leaderboard-card__bar strong {
    margin-top: 26px;
    font-size: 1.65rem;
    line-height: 1;
}

.npwa-leaderboard-card__bar small {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.npwa-ranking-row {
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.06);
}

/* ===== Migração ===== */
.npwa-migracao-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.npwa-migracao-link strong {
    display: block;
    font-size: 0.9rem;
}

.npwa-migracao-link small {
    display: block;
    margin-top: 2px;
    color: var(--npwa-muted);
    font-size: 0.72rem;
    line-height: 1.35;
    max-width: 46ch;
}

.npwa-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.npwa-chip-btn {
    padding: 8px 14px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 999px;
    color: var(--npwa-muted);
    background: rgba(2, 6, 23, 0.5);
    font-size: 0.74rem;
    font-weight: 800;
    cursor: pointer;
    transition: color 0.16s ease, background 0.16s ease, border-color 0.16s ease;
}

.npwa-chip-btn.active {
    color: #fff;
    background: linear-gradient(135deg, #4c1d95, #7c3aed);
    border-color: transparent;
}

.npwa-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.npwa-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 11px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.12);
    color: var(--npwa-muted);
    font-size: 0.72rem;
    font-weight: 700;
}

.npwa-chip strong {
    color: var(--npwa-text);
}

.npwa-migracao-card {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.npwa-migracao-card__topo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.npwa-migracao-card__id {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-migracao-card__id strong {
    font-size: 0.94rem;
}

.npwa-migracao-card__id small {
    color: var(--npwa-muted);
    font-size: 0.74rem;
}

.npwa-migracao-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    color: var(--npwa-muted);
    font-size: 0.76rem;
}

.npwa-migracao-card__meta strong {
    color: var(--npwa-text);
}

.npwa-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px 16px;
}

.npwa-detail-line {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.npwa-detail-line--full {
    grid-column: 1 / -1;
}

.npwa-detail-line span {
    color: var(--npwa-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.npwa-detail-line strong {
    font-size: 0.86rem;
    word-break: break-word;
}

.npwa-migracao-form {
    display: grid;
    gap: 14px;
}

.npwa-migracao-form h2 {
    margin: 0;
    font-size: 1rem;
}

.npwa-field {
    display: grid;
    gap: 7px;
    min-width: 0;
    color: var(--npwa-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.npwa-field > span {
    text-transform: uppercase;
}

.npwa-field select,
.npwa-field input {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 16px;
    padding: 0 12px;
    color: var(--npwa-text);
    background: rgba(2, 6, 23, 0.72);
    font-size: 0.86rem;
    font-weight: 700;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.npwa-field select:focus,
.npwa-field input:focus {
    /* iOS da zoom automatico ao focar um input com font-size < 16px. */
    font-size: 16px;
    border-color: rgba(168, 85, 247, 0.75);
    box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.16);
}

.npwa-field select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 34px;
    background-image: linear-gradient(45deg, transparent 50%, var(--npwa-muted) 50%), linear-gradient(135deg, var(--npwa-muted) 50%, transparent 50%);
    background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.npwa-field input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    filter: invert(1);
    opacity: 0.55;
}

.npwa-check-line {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--npwa-text);
    font-size: 0.82rem;
    font-weight: 700;
}

.npwa-check-line input {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    accent-color: #7c3aed;
}

.npwa-historico-accordion {
    display: grid;
    gap: 8px;
}

.npwa-historico-item {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 16px;
    background: rgba(2, 6, 23, 0.42);
    overflow: hidden;
}

.npwa-historico-item > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    cursor: pointer;
    list-style: none;
}

.npwa-historico-item > summary::-webkit-details-marker {
    display: none;
}

.npwa-historico-item > summary > span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-historico-item > summary strong {
    font-size: 0.88rem;
}

.npwa-historico-item > summary small {
    color: var(--npwa-muted);
    font-size: 0.72rem;
}

.npwa-historico-item > summary em {
    flex: 0 0 auto;
    color: var(--npwa-muted);
    font-size: 0.7rem;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
}

.npwa-historico-item[open] > summary em {
    color: #c4b5fd;
}

.npwa-historico-body {
    display: grid;
    gap: 12px;
    padding: 0 14px 14px;
}

.npwa-migracao-efetivado {
    display: grid;
    gap: 4px;
    border: 1px solid rgba(34, 197, 94, 0.28);
    background: rgba(34, 197, 94, 0.08);
}

.npwa-migracao-efetivado strong {
    color: #86efac;
    font-size: 0.95rem;
}

.npwa-migracao-efetivado small {
    color: var(--npwa-muted);
    font-size: 0.78rem;
}

/* ===== Graduações / Reconhecimento / Parâmetros ===== */
.npwa-apt-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.npwa-status-badge--inline {
    align-self: flex-start;
    margin-top: 4px;
    padding: 4px 9px;
    font-size: 0.62rem;
}

.npwa-reconhecimento-row {
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.npwa-reconhecimento-row > span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-reconhecimento-row .npwa-file-button {
    flex: 0 0 auto;
}

.npwa-row-loading {
    opacity: 0.5;
    pointer-events: none;
}

.npwa-belt-param > summary {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    list-style: none;
}

.npwa-belt-param > summary::-webkit-details-marker {
    display: none;
}

.npwa-belt-param > summary .material-symbols-rounded {
    margin-left: auto;
    transition: transform 0.2s ease;
    color: var(--npwa-muted);
}

.npwa-belt-param[open] > summary .material-symbols-rounded {
    transform: rotate(180deg);
}

.npwa-belt-param__id {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-belt-param__id strong {
    font-size: 0.92rem;
}

.npwa-belt-param__id small {
    color: var(--npwa-muted);
    font-size: 0.72rem;
}

.npwa-belt-param--todo .npwa-belt-param__id small {
    color: #fbbf24;
    font-weight: 700;
}

/* ===== Captura de biometria facial ===== */
.npwa-face-overlay {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: grid;
    place-items: center;
    padding: 16px;
    background: rgba(2, 6, 23, 0.94);
    backdrop-filter: blur(6px);
}

.npwa-face-shell {
    width: min(100%, 460px);
    display: grid;
    gap: 14px;
}

.npwa-face-cam {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    border-radius: 22px;
    overflow: hidden;
    background: #000;
    border: 1px solid rgba(148, 163, 184, 0.25);
}

.npwa-face-cam video,
.npwa-face-cam canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scaleX(-1);
}

.npwa-face-pill {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
}

.npwa-face-frame {
    position: absolute;
    inset: 12% 16%;
    z-index: 1;
    border: 2px dashed rgba(255, 255, 255, 0.5);
    border-radius: 26px;
    pointer-events: none;
}

.npwa-face-status {
    display: grid;
    gap: 2px;
    text-align: center;
    color: var(--npwa-text);
}

.npwa-face-status strong { font-size: 0.95rem; }
.npwa-face-status span { color: var(--npwa-muted); font-size: 0.8rem; }

.npwa-face-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.npwa-belt-dot {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid rgba(148, 163, 184, 0.4);
}

.npwa-belt-param .npwa-migracao-form {
    margin-top: 14px;
}

.npwa-belt-grades {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
}

/* ===== Acesso avulso ===== */
.npwa-finance-quick {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    margin-bottom: 4px;
}

.npwa-acesso-link {
    display: grid;
    gap: 4px;
    border: 1px solid rgba(124, 58, 237, 0.3);
    background: rgba(124, 58, 237, 0.08);
}

.npwa-acesso-link strong {
    font-size: 0.95rem;
}

.npwa-acesso-link small {
    color: var(--npwa-muted);
    font-size: 0.78rem;
}

.npwa-acesso-link .npwa-action-grid {
    margin-top: 6px;
}

.npwa-acesso-card {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.npwa-acesso-card__topo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.npwa-acesso-card__id {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-acesso-card__id strong {
    font-size: 0.94rem;
}

.npwa-acesso-card__id small {
    color: var(--npwa-muted);
    font-size: 0.74rem;
}

.npwa-acesso-card__valor {
    font-size: 1.05rem;
    font-weight: 900;
    color: #c4b5fd;
}

.npwa-acesso-card__acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.npwa-acesso-card__acoes .npwa-button {
    flex: 1 1 auto;
    text-align: center;
}

/* ===== Vendas ===== */
.npwa-finance-quick-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}

.npwa-finance-quick-row .npwa-finance-quick {
    margin-bottom: 0;
}

.npwa-venda-resultados:empty {
    display: none;
}

.npwa-venda-resultados {
    margin-bottom: 14px;
}

.npwa-venda-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(148, 163, 184, 0.16);
}

.npwa-venda-total span {
    color: var(--npwa-muted);
    font-weight: 800;
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
}

.npwa-venda-total strong {
    font-size: 1.25rem;
    color: #c4b5fd;
}

.npwa-venda-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.1);
}

.npwa-venda-item:last-child {
    border-bottom: 0;
}

.npwa-venda-item__id {
    display: grid;
    gap: 2px;
    min-width: 0;
    flex: 1 1 auto;
}

.npwa-venda-item__id strong {
    font-size: 0.86rem;
}

.npwa-venda-item__id small {
    color: var(--npwa-muted);
    font-size: 0.72rem;
}

.npwa-venda-item__total {
    flex: 0 0 auto;
    font-size: 0.86rem;
}

.npwa-venda-qty {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.npwa-venda-qty b {
    min-width: 20px;
    text-align: center;
    font-size: 0.9rem;
}

.npwa-qty-btn {
    width: 30px;
    height: 30px;
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 10px;
    background: rgba(2, 6, 23, 0.6);
    color: var(--npwa-text);
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.npwa-qty-btn:active {
    transform: scale(0.94);
}

.npwa-venda-mode {
    display: grid;
    gap: 8px;
    padding: 4px 0;
}

/* ===================== Atividades ===================== */
.npwa-activity-card {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(148, 163, 184, 0.1);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.04);
}

.npwa-activity-card__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.npwa-activity-card__id {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.npwa-activity-card__id strong {
    font-size: 0.94rem;
}

.npwa-activity-card__id small {
    color: var(--npwa-muted);
    font-size: 0.74rem;
}

.npwa-activity-card__desc {
    margin: 0;
    color: var(--npwa-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

.npwa-activity-card .npwa-chip-row {
    margin-bottom: 0;
}

.npwa-activity-detail {
    display: grid;
    gap: 14px;
}

.npwa-activity-questions {
    display: grid;
    gap: 12px;
}

.npwa-activity-question {
    display: grid;
    gap: 10px;
}

.npwa-activity-question__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--npwa-muted);
    font-size: 0.76rem;
}

.npwa-activity-question p {
    margin: 0;
    color: var(--npwa-text);
    line-height: 1.5;
}

.npwa-activity-options {
    display: grid;
    gap: 8px;
}

.npwa-activity-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--npwa-border);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.03);
    cursor: pointer;
    line-height: 1.4;
}

.npwa-activity-option input {
    margin-top: 3px;
    accent-color: var(--npwa-purple);
}

.npwa-activity-option--edit {
    align-items: center;
    cursor: default;
}

.npwa-activity-option--edit input[type="text"] {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--npwa-border);
    border-radius: 10px;
    padding: 8px 10px;
    background: rgba(2, 6, 23, 0.6);
    color: var(--npwa-text);
    font-size: 0.86rem;
}

.npwa-activity-option--edit input[type="text"]:focus {
    font-size: 16px;
}

.npwa-form-grid {
    display: grid;
    gap: 14px;
    margin-top: 12px;
}

.npwa-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.npwa-subtitle {
    color: var(--npwa-muted);
    font-size: 0.88rem;
    margin: 2px 0 10px;
}

.npwa-activity-answer {
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    color: var(--npwa-text);
    line-height: 1.5;
    white-space: pre-wrap;
}

/* ===================== Plano de treino ===================== */
.npwa-plano-resumo {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(124, 58, 237, 0.14);
    border: 1px solid rgba(124, 58, 237, 0.28);
    margin-bottom: 18px;
}

.npwa-plano-resumo__num {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
    color: var(--npwa-purple-2);
}

.npwa-plano-resumo__num span {
    font-size: 1.1rem;
    margin-left: 2px;
}

.npwa-plano-resumo__txt {
    display: grid;
    gap: 2px;
}

.npwa-plano-resumo__txt strong {
    font-size: 0.95rem;
}

.npwa-plano-resumo__txt small {
    color: var(--npwa-muted);
    font-size: 0.78rem;
}

.npwa-plano-dia {
    margin-bottom: 16px;
}

.npwa-plano-dia__label {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--npwa-muted);
    margin-bottom: 8px;
}

.npwa-plano-card {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--npwa-border);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04);
    color: var(--npwa-text);
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.npwa-plano-card--on {
    border-color: rgba(124, 58, 237, 0.6);
    background: rgba(124, 58, 237, 0.16);
}

.npwa-plano-card__bar {
    width: 6px;
    height: 34px;
    border-radius: 3px;
    flex: none;
}

.npwa-plano-card__info {
    flex: 1;
    min-width: 0;
    display: grid;
    gap: 2px;
}

.npwa-plano-card__info strong {
    font-size: 0.9rem;
    font-weight: 600;
}

.npwa-plano-card__info small {
    color: var(--npwa-muted);
    font-size: 0.76rem;
}

.npwa-plano-switch {
    width: 44px;
    height: 26px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.28);
    position: relative;
    flex: none;
    transition: background 0.15s ease;
}

.npwa-plano-switch span {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    transition: transform 0.15s ease;
}

.npwa-plano-switch--on {
    background: var(--npwa-purple);
}

.npwa-plano-switch--on span {
    transform: translateX(18px);
}

@media (max-width: 380px) {
    .npwa-agenda-row__main {
        grid-template-columns: 56px minmax(0, 1fr) auto;
        gap: 10px;
    }

    .npwa-agenda-row__time { min-width: 52px; }
    .npwa-agenda-row__confirmed { min-width: 40px; }
    .npwa-agenda-row__title { font-size: 0.9rem; }
    .npwa-agenda-row__avatars,
    .npwa-agenda-row__actions { padding-left: 62px; }
}

/* Painel "Hoje" (admin/professor) - card de proxima aula, acoes rapidas, alerta */
.npwa-next-lesson {
    padding: 18px;
    display: grid;
    gap: 14px;
    background:
        linear-gradient(160deg, rgba(124, 58, 237, 0.28), rgba(124, 58, 237, 0.06)),
        var(--npwa-card);
}

.npwa-next-lesson__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.npwa-next-lesson__head h2 {
    margin: 4px 0 6px;
    font-size: 1.3rem;
}

.npwa-next-lesson__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--npwa-muted);
    font-size: 0.86rem;
    flex-wrap: wrap;
}

.npwa-next-lesson__meta .material-symbols-rounded {
    font-size: 1.05rem;
}

.npwa-next-lesson__dot {
    opacity: 0.6;
    margin: 0 2px;
}

.npwa-next-lesson__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 14px;
    background: rgba(124, 58, 237, 0.28);
    color: #e9d5ff;
    cursor: pointer;
}

.npwa-quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 4px;
}

.npwa-quick-action {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--npwa-border);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.03);
    color: var(--npwa-text);
    cursor: pointer;
    text-align: left;
}

.npwa-quick-action__icon {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(124, 58, 237, 0.2);
    color: #e9d5ff;
    font-size: 1.1rem;
}

.npwa-quick-action__label {
    flex: 1;
    min-width: 0;
    font-weight: 700;
    font-size: 0.88rem;
}

.npwa-quick-action__chevron {
    flex-shrink: 0;
    color: var(--npwa-muted);
    font-size: 1.1rem;
}

.npwa-alert-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border-color: rgba(239, 68, 68, 0.3);
    background:
        linear-gradient(160deg, rgba(239, 68, 68, 0.14), rgba(239, 68, 68, 0.04)),
        var(--npwa-card);
}

.npwa-alert-card__icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.22);
    color: #fca5a5;
}

.npwa-alert-card__body {
    flex: 1;
    display: grid;
    gap: 2px;
}

.npwa-alert-card__body strong {
    font-size: 0.92rem;
    line-height: 1.3;
}

.npwa-alert-card__body span {
    color: var(--npwa-muted);
    font-size: 0.8rem;
}

@media (max-width: 380px) {
    .npwa-quick-actions-grid { grid-template-columns: 1fr; }
    .npwa-alert-card { flex-wrap: wrap; }
}

.npwa-painel-greeting {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    margin-bottom: 4px;
}

.npwa-painel-greeting h1 {
    margin: 0;
    font-size: 1.3rem;
    line-height: 1.25;
}
