@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#172033;--muted:#687386;--primary:#5b4df5;--primary-dark:#4538d5;--teal:#18b6a4;--surface:#fff;--soft:#f5f6fb;--line:#e8eaf2}
*{box-sizing:border-box}body{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--soft)}h1,h2,h3,.navbar-brand{font-family:'Manrope',system-ui,sans-serif}a{color:var(--primary)}.btn{border-radius:.8rem;font-weight:600;padding:.65rem 1rem}.btn-primary{background:var(--primary);border-color:var(--primary)}.btn-primary:hover,.btn-primary:focus{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-outline-primary{color:var(--primary);border-color:var(--primary)}.form-control{border-radius:.75rem;border-color:#dfe2ec;padding:.72rem 1rem}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .22rem rgba(91,77,245,.12)}
.app-navbar{background:#171b36;box-shadow:0 5px 25px rgba(23,27,54,.16)}.navbar-brand span{color:#aca5ff}.brand-mark{width:82px;height:82px;border-radius:24px;display:grid;place-items:center;margin:auto;background:linear-gradient(145deg,var(--primary),#887dff);color:#fff;font-size:2rem;transform:rotate(-5deg);box-shadow:0 14px 35px rgba(91,77,245,.3)}.small-mark{display:inline-grid;width:31px;height:31px;border-radius:9px;font-size:.8rem;box-shadow:none;margin-right:.25rem}.user-menu{color:white;border:1px solid rgba(255,255,255,.16);border-radius:999px}.user-menu:hover{color:white;background:rgba(255,255,255,.08)}
.hero{background:radial-gradient(circle at 15% 20%,rgba(24,182,164,.13),transparent 27%),radial-gradient(circle at 85% 25%,rgba(91,77,245,.17),transparent 30%),#fafafe;overflow:hidden}.logo-wrap h1{letter-spacing:-.07em}.logo-wrap h1 span{color:var(--primary)}.logo-subtitle{letter-spacing:.55em;font-weight:700;color:var(--teal);margin-left:.65em}.hero-copy{max-width:650px}.feature-row{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;color:var(--muted);font-size:.95rem}.feature-row i{color:var(--primary);margin-right:.35rem}.auth-page{background:radial-gradient(circle at top left,rgba(24,182,164,.16),transparent 32%),linear-gradient(135deg,#f7f7ff,#eef0ff)}.auth-card{max-width:510px;border-radius:1.4rem}.brand-link{text-decoration:none;font-family:'Manrope';font-weight:800;color:var(--ink)}.brand-link i{color:var(--primary)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--primary);font-size:.72rem;font-weight:800}.deck-card{border-radius:1.15rem;transition:transform .2s,box-shadow .2s}.deck-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(38,44,78,.1)!important}.deck-icon,.empty-icon{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:#eeecff;color:var(--primary);font-size:1.2rem}.empty-state{background:#fff;border:2px dashed #dfe2ed;border-radius:1.2rem;padding:2rem}.empty-icon{margin:0 auto 1rem;width:64px;height:64px;font-size:1.5rem}.delete-btn{color:#9aa1b2;background:#f5f6f9;border-radius:.7rem}.delete-btn:hover{color:#dc3545;background:#fff0f1}.back-link{text-decoration:none;color:var(--muted);font-weight:600}.modal-content{border-radius:1.15rem}.table thead th{background:#f8f9fc;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding:1rem 1.25rem}.table td{padding:1rem 1.25rem}
.flashcard-wrap{position:relative}.flashcard{height:270px;perspective:1000px;cursor:pointer}.flashcard-inner{width:100%;height:100%;position:relative;transition:transform .6s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}.flashcard.is-flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:1.1rem;padding:1.6rem;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:0 8px 24px rgba(33,38,70,.09);overflow:auto}.flashcard-front{background:#fff;border-top:5px solid var(--primary)}.flashcard-back{background:linear-gradient(145deg,#373064,#211d43);color:white;transform:rotateY(180deg);border-top:5px solid var(--teal)}.card-side-label{position:absolute;top:1.15rem;left:1.25rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--primary)}.flashcard-back .card-side-label{color:#6de0d1}.flip-hint{position:absolute;bottom:1rem;font-size:.75rem;opacity:.62}.card-delete{position:absolute;right:.75rem;top:.75rem;z-index:5}.public-nav{background:#171b36}.public-nav a{color:white}.public-hero{background:linear-gradient(120deg,#f2f0ff,#eafaf7)}.public-body main{min-height:100vh}
.flashcard-back p{max-height:145px;overflow:hidden;margin-bottom:.75rem}.view-more{position:relative;z-index:6;margin-bottom:1.2rem}.card-full-description{white-space:pre-wrap;line-height:1.7;max-height:65vh;overflow-y:auto}
.typing-notice{color:var(--primary);margin-top:.55rem}
@media(max-width:576px){.feature-row{gap:.8rem;flex-direction:column}.display-3{font-size:3rem}.flashcard{height:240px}.page-heading .btn{width:100%}.table td,.table th{padding:.8rem!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.flashcard.is-flipped .flashcard-inner{transform:none}.flashcard.is-flipped .flashcard-front{display:none}.flashcard.is-flipped .flashcard-back{transform:none}}
