:root {
    --nl-primary: #00897b;
    --nl-primary-dark: #00695c;
    --nl-primary-light: #e8f5f2;
    --nl-text: #263238;
    --nl-muted: #607d8b;
    --nl-bg: #f5f8f7;
}

body { background: var(--nl-bg); color: var(--nl-text); min-height: 100vh; }
.navbar-brand { letter-spacing: .02em; font-weight: 700; }
.btn-primary { --bs-btn-bg: var(--nl-primary); --bs-btn-border-color: var(--nl-primary); --bs-btn-hover-bg: var(--nl-primary-dark); --bs-btn-hover-border-color: var(--nl-primary-dark); }
.text-bg-primary { background-color: var(--nl-primary) !important; }
.card { border-radius: 1rem; }
.feature-card { min-height: 13rem; }
.feature-icon { width: 3rem; height: 3rem; display: inline-grid; place-items: center; border-radius: .8rem; background: var(--nl-primary-light); color: var(--nl-primary); font-size: 1.35rem; }
.skip-link { position: absolute; left: -9999px; top: .5rem; z-index: 9999; }
.skip-link:focus { left: .5rem; }
.empty-state { border: 2px dashed #b0bec5; border-radius: 1rem; padding: 2rem; text-align: center; color: var(--nl-muted); background: #fff; }
.learning-card { min-height: 22rem; background: #fff; border: 2px solid #dfe8e6; border-radius: 1rem; padding: 1.5rem; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; overflow-wrap: anywhere; }
.learning-card:focus { outline: .2rem solid rgba(0,137,123,.3); outline-offset: .15rem; }
.preview-content { font-size: 1.2rem; line-height: 1.6; width: 100%; }
.preview-image,.card-content-image { display: block; max-width: 100%; max-height: 12rem; object-fit: contain; margin: 0 auto 1.25rem; }
.card-preview-panel { top: 1rem; }
.card-table td { max-width: 22rem; }
.form-control:focus,.form-select:focus,.btn:focus-visible,.nav-link:focus-visible { border-color: var(--nl-primary); box-shadow: 0 0 0 .25rem rgba(0,137,123,.2); }
.study-shell { max-width: 54rem; }
.study-card { min-height: 27rem; background: #fff; border: 1px solid #dce7e4; border-radius: 1.25rem; box-shadow: 0 .5rem 1.5rem rgba(38,50,56,.08); padding: clamp(1.5rem,4vw,3rem); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow-wrap: anywhere; transition: transform .18s ease,box-shadow .18s ease; }
.study-card-button { color: inherit; cursor: pointer; }
.study-card-button:hover { transform: translateY(-.15rem); box-shadow: 0 .75rem 2rem rgba(38,50,56,.12); }
.study-card.is-revealed { animation: study-reveal .24s ease-out; }
.study-card-button:focus-visible { outline: .2rem solid rgba(0,137,123,.35); outline-offset: .2rem; }
.study-card-face { width: 100%; }
.study-side-label { color: var(--nl-muted); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 1rem; display: block; }
.study-content { font-size: clamp(1.15rem,2.3vw,1.55rem); line-height: 1.65; width: 100%; }
.study-card-image { display: block; max-width: 100%; max-height: 15rem; object-fit: contain; margin: 0 auto 1.25rem; }
.study-hint { color: var(--nl-muted); font-size: .9rem; margin-top: 2rem; }
.rating-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; }
.rating-grid kbd,.study-hint kbd { font-size: .75em; }
.progress-bar { background-color: var(--nl-primary); }
.dashboard-hero { padding-top: .5rem; }
.dashboard-metric { min-height: 12.5rem; }
.metric-icon { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border-radius: .75rem; background: var(--nl-primary-light); color: var(--nl-primary-dark); font-size: 1.2rem; }
.dashboard-goal-progress { height: .8rem; }
.subject-progress-card .progress { height: .55rem; }
.subject-stat { background: var(--nl-primary-light); border-radius: .7rem; padding: .65rem .25rem; }
.subject-stat strong,.subject-stat span { display: block; }
.subject-stat span { color: var(--nl-muted); font-size: .75rem; }
.quick-action { display: flex; align-items: center; gap: .8rem; min-height: 4.25rem; padding: 1rem 1.15rem; background: #fff; border: 1px solid #dce7e4; border-radius: .85rem; color: var(--nl-text); font-weight: 600; text-decoration: none; }
.quick-action:hover { color: var(--nl-primary-dark); border-color: var(--nl-primary); }
.quick-action:focus-visible { outline: .2rem solid rgba(0,137,123,.3); outline-offset: .15rem; }
.quick-action i { color: var(--nl-primary); font-size: 1.25rem; }
.quick-action.unavailable { color: var(--nl-muted); background: #f8faf9; }
.quick-action.unavailable small { margin-left: auto; font-weight: 400; }
.analytics-section { margin-bottom: 3.5rem; scroll-margin-top: 1rem; }
.chart-shell { position: relative; min-height: 18rem; padding: 1rem; background: #fff; border: 1px solid #dce7e4; border-radius: 1rem; }
.activity-calendar { display: grid; grid-template-columns: repeat(auto-fill,minmax(2.15rem,1fr)); gap: .35rem; }
.activity-day { min-height: 2.15rem; display: grid; place-items: center; border-radius: .35rem; border: 1px solid #dce7e4; font-size: .75rem; background: #f1f3f3; }
.activity-day.level-1 { background: #b2dfdb; }.activity-day.level-2 { background: #4db6ac; color: #102321; }.activity-day.level-3 { background: var(--nl-primary); color: #fff; }
.activity-day:focus-visible { outline: .2rem solid rgba(0,137,123,.35); outline-offset: .1rem; }
#topics-table th button { border: 0; background: transparent; padding: 0; color: inherit; font-weight: inherit; text-decoration: underline; text-decoration-style: dotted; }
#topics-table th button:focus-visible { outline: .2rem solid rgba(0,137,123,.3); outline-offset: .15rem; }
@keyframes study-reveal { from { opacity: .72; transform: rotateY(-6deg); } to { opacity: 1; transform: rotateY(0); } }
@media (max-width: 767.98px) {
    .card-table thead { display: none; }
    .card-table,.card-table tbody,.card-table tr,.card-table td { display: block; width: 100%; }
    .card-table tr { padding: .75rem; border-bottom: 1px solid #dee2e6; }
    .card-table td { border: 0; padding: .3rem .5rem; max-width: none; text-align: left !important; }
    .learning-card { min-height: 18rem; }
    .study-card { min-height: 21rem; }
    .rating-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
