@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--clr-bg: hsl(220 10% 8%);--clr-surface: hsl(220 8% 14%);--clr-surface-raised: hsl(220 8% 18%);--clr-border: hsl(220 10% 20%);--clr-border-strong: hsl(220 10% 30%);--clr-text: hsl(40 10% 95%);--clr-muted: hsl(220 10% 55%);--clr-emerald: hsl(160 70% 45%);--clr-emerald-hover: hsl(160 70% 38%);--clr-emerald-dim: hsl(160 60% 15%);--clr-emerald-border: hsl(160 60% 28%);--clr-blue: hsl(217 91% 60%);--clr-blue-dim: hsl(217 60% 15%);--clr-error: hsl(0 84% 60%);--clr-error-dim: hsl(0 60% 16%);--clr-warning: hsl(38 92% 50%);--clr-warning-dim: hsl(38 60% 14%);--clr-success: var(--clr-emerald);--color-bg: var(--clr-bg);--color-surface: var(--clr-surface);--color-text: var(--clr-text);--color-muted: var(--clr-muted);--color-accent: var(--clr-emerald);--color-accent-hover: var(--clr-emerald-hover);--color-border: var(--clr-border);--color-error: var(--clr-error);--color-tag-bg: var(--clr-emerald-dim);--color-tag-text: var(--clr-emerald);--color-success: var(--clr-emerald);--radius: 8px;--radius-sm: 6px;--radius-pill: 999px;--shadow-sm: 0 1px 3px hsl(220 20% 3% / .5), 0 1px 2px hsl(220 20% 3% / .3);--shadow-md: 0 4px 12px hsl(220 20% 3% / .6), 0 2px 4px hsl(220 20% 3% / .4);--shadow-lg: 0 12px 32px hsl(220 20% 3% / .7), 0 4px 8px hsl(220 20% 3% / .4);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--t-fast: .12s ease;--t-base: .2s ease}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;color:var(--clr-text);background:var(--clr-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--clr-bg)}::-webkit-scrollbar-thumb{background:var(--clr-border-strong);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--clr-muted)}#app{min-height:100vh;display:flex;flex-direction:column}main{flex:1;max-width:880px;margin:var(--sp-8) auto;padding:0 var(--sp-4);width:100%}h1,h2,h3{margin-top:0;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--clr-text)}h1{font-size:1.875rem;margin-bottom:var(--sp-4)}h2{font-size:1.25rem;margin-bottom:var(--sp-3)}h3{font-size:1rem;margin-bottom:var(--sp-2)}p{margin:var(--sp-2) 0}a{color:var(--clr-blue);text-decoration:none;transition:color var(--t-fast)}a:hover{color:var(--clr-text);text-decoration:underline}code{font-family:SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:.875em;background:var(--clr-surface-raised);color:var(--clr-emerald);padding:.1em .4em;border-radius:4px;border:1px solid var(--clr-border)}.muted{color:var(--clr-muted)}.error{color:var(--clr-error);font-size:.9rem;margin-top:var(--sp-2)}button,.button{font:inherit;font-size:.9375rem;font-weight:500;padding:.5rem 1.125rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-2);white-space:nowrap;text-decoration:none;transition:background-color var(--t-fast),border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast);line-height:1.4}button:focus-visible,.button:focus-visible{outline:2px solid var(--clr-emerald);outline-offset:2px}button:disabled,.button:disabled{opacity:.45;cursor:not-allowed}button.primary,.button.primary{background:var(--clr-emerald);color:#0e1b16;border-color:var(--clr-emerald)}button.primary:hover:not(:disabled),.button.primary:hover:not(:disabled){background:var(--clr-emerald-hover);border-color:var(--clr-emerald-hover);box-shadow:0 0 0 3px #22c38e33}button.secondary,.button.secondary{background:transparent;color:var(--clr-text);border-color:var(--clr-border-strong)}button.secondary:hover:not(:disabled),.button.secondary:hover:not(:disabled){background:var(--clr-surface-raised);border-color:var(--clr-muted)}button.small{font-size:.8125rem;padding:.25rem .625rem}button.linklike{background:none;border:none;color:var(--clr-blue);padding:0;font:inherit;font-size:inherit;cursor:pointer;display:inline;transition:color var(--t-fast)}button.linklike:hover{color:var(--clr-text);text-decoration:underline}input,textarea,select{font:inherit;font-size:.9375rem;padding:.5rem .75rem;border:1px solid var(--clr-border-strong);border-radius:var(--radius-sm);background:var(--clr-surface-raised);color:var(--clr-text);width:100%;transition:border-color var(--t-fast),box-shadow var(--t-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}input::placeholder,textarea::placeholder{color:var(--clr-muted);opacity:1}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--clr-emerald);box-shadow:0 0 0 3px #22c38e26}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23717a8a' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .625rem center;padding-right:2rem}label{display:flex;flex-direction:column;gap:var(--sp-1);margin-bottom:var(--sp-4);font-size:.9375rem;font-weight:500;color:var(--clr-text)}form{display:flex;flex-direction:column}.app-header{background:var(--clr-surface);border-bottom:1px solid var(--clr-border);padding:0 var(--sp-6);height:56px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);background:#212327e6}.app-header .brand{font-weight:700;font-size:1.0625rem;color:var(--clr-text);letter-spacing:-.01em;text-decoration:none;background:linear-gradient(135deg,var(--clr-text) 40%,var(--clr-emerald) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-header .brand:hover{text-decoration:none}.app-header nav{display:flex;align-items:center;gap:var(--sp-5);font-size:.9rem}.app-header nav a{color:var(--clr-muted);text-decoration:none;font-weight:500;transition:color var(--t-fast);padding:var(--sp-1) 0;border-bottom:2px solid transparent}.app-header nav a:hover,.app-header nav a.router-link-active{color:var(--clr-text);border-bottom-color:var(--clr-emerald);text-decoration:none}.landing h1{font-size:2.5rem;font-weight:700;letter-spacing:-.025em;background:linear-gradient(135deg,var(--clr-text) 0%,var(--clr-emerald) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--sp-4)}.landing p{font-size:1.0625rem;color:var(--clr-muted);max-width:540px;line-height:1.7}.landing-cta{display:flex;gap:var(--sp-3);margin-top:var(--sp-6);flex-wrap:wrap}.landing-cta .primary,.landing-cta .secondary{text-decoration:none;display:inline-flex;align-items:center}.auth-page{max-width:420px}.auth-page h1{margin-bottom:var(--sp-6)}.auth-page form{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);padding:var(--sp-6);box-shadow:var(--shadow-md)}.auth-page button[type=submit]{align-self:flex-start;margin-top:var(--sp-2)}.auth-page .muted{margin-top:var(--sp-5);font-size:.9rem}.catalogue .verify-banner{background:var(--clr-surface);border:1px solid var(--clr-border);border-left:3px solid var(--clr-warning);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-sm)}.catalogue .verify-banner p{margin:0 0 var(--sp-3);color:var(--clr-muted)}.catalogue .verify-banner strong{color:var(--clr-text)}.catalogue .verify-actions{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap}.catalogue .verify-actions .success{color:var(--clr-emerald);font-size:.9rem;font-weight:500}.filter-bar{margin-bottom:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3)}.filter-dropdowns{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.filter-dropdowns select{width:auto;min-width:148px;font-size:.875rem;padding:.4rem 2rem .4rem .625rem}.filter-search{display:flex;gap:var(--sp-2);align-items:center}.filter-search input[type=search]{flex:1;max-width:320px;width:auto}.catalogue .course-list,.my-courses-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--sp-4);grid-template-columns:1fr}.course-card,.my-course-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);padding:var(--sp-5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--sp-2);transition:border-color var(--t-base),box-shadow var(--t-base),transform var(--t-base)}.course-card:hover,.my-course-card:hover{border-color:var(--clr-border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.course-card h2,.my-course-card h2{margin:0;font-size:1.1rem;color:var(--clr-text);line-height:1.35}.course-meta{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;font-size:.775rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--clr-muted)}.course-meta .exam-body,.course-meta .level{background:var(--clr-surface-raised);border:1px solid var(--clr-border);border-radius:var(--radius-pill);padding:.1em .55em}.course-card .description{flex:1;color:var(--clr-muted);font-size:.9rem;margin:0;line-height:1.55}.course-actions{display:flex;align-items:center;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-3);border-top:1px solid var(--clr-border)}.course-actions .price{font-weight:700;font-size:1.0625rem;color:var(--clr-text);margin-right:auto;letter-spacing:-.01em}.course-actions .owned-badge{font-size:.8rem;font-weight:600;padding:.2rem .65rem;border-radius:var(--radius-pill);background:var(--clr-emerald-dim);color:var(--clr-emerald);border:1px solid var(--clr-emerald-border);letter-spacing:.01em}.status-badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:var(--radius-pill);letter-spacing:.02em;text-transform:capitalize;border:1px solid transparent}.status-badge.active{background:var(--clr-emerald-dim);color:var(--clr-emerald);border-color:var(--clr-emerald-border)}.status-badge.draft{background:var(--clr-blue-dim);color:var(--clr-blue);border-color:#1d3d72}.status-badge.published{background:var(--clr-emerald-dim);color:var(--clr-emerald);border-color:var(--clr-emerald-border)}.status-badge.expiring_soon{background:var(--clr-warning-dim);color:var(--clr-warning);border-color:#72531d}.status-badge.expired,.status-badge.archived{background:var(--clr-error-dim);color:var(--clr-error);border-color:#721d1d}.empty-state{text-align:center;padding:var(--sp-12) var(--sp-4);color:var(--clr-muted)}.empty-state p{font-size:1rem;margin-bottom:var(--sp-6)}.empty-state .button{margin-top:0;display:inline-flex;text-decoration:none}.course-view header{margin-bottom:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:1px solid var(--clr-border)}.course-view header .muted{font-size:.875rem;text-transform:uppercase;letter-spacing:.04em;font-weight:500;margin-bottom:var(--sp-2)}.course-view header h1{margin-bottom:0}.request-question,.active-question{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);padding:var(--sp-6);box-shadow:var(--shadow-sm)}.request-question h2{margin-bottom:var(--sp-2)}.request-question .muted{margin-top:0;margin-bottom:var(--sp-5);font-size:.9rem}.request-question textarea{margin-bottom:var(--sp-4)}.question-meta{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap}.tag{background:var(--clr-emerald-dim);color:var(--clr-emerald);border:1px solid var(--clr-emerald-border);padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:.8125rem;font-weight:500}.tag.marks{background:var(--clr-warning-dim);color:var(--clr-warning);border-color:#72531d}.question-text{background:#17191c;border-left:3px solid var(--clr-emerald);padding:var(--sp-4) var(--sp-5);margin:0 0 var(--sp-5) 0;font-size:1.0625rem;line-height:1.65;border-radius:0 var(--radius) var(--radius) 0;color:var(--clr-text)}.answer-form textarea{margin-bottom:var(--sp-4)}.grade-display{padding-top:var(--sp-4)}.grade-display h2{font-size:1.875rem;font-weight:700;letter-spacing:-.02em;margin-bottom:var(--sp-4)}.grade-display h3{color:var(--clr-muted);font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:var(--sp-5);margin-bottom:var(--sp-2)}.grade-actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--clr-border)}.remaining{margin-top:var(--sp-4);padding-top:var(--sp-3);font-size:.8125rem;color:var(--clr-muted);border-top:1px solid var(--clr-border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0c0fbf;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);z-index:1000}.modal{background:var(--clr-surface-raised);border:1px solid var(--clr-border-strong);border-radius:var(--radius);padding:var(--sp-6);max-width:520px;width:100%;box-shadow:var(--shadow-lg)}.modal h2{margin-bottom:var(--sp-3)}.modal .muted{margin-bottom:var(--sp-2);font-size:.9rem}.modal textarea{margin:var(--sp-4) 0}.modal-actions{display:flex;gap:var(--sp-3);justify-content:flex-end;padding-top:var(--sp-4);border-top:1px solid var(--clr-border)}.admin-header{margin-bottom:var(--sp-6);padding-bottom:var(--sp-4);border-bottom:1px solid var(--clr-border)}.admin-header h1{margin-bottom:0}.admin-breadcrumb{display:flex;align-items:center;gap:var(--sp-2);font-size:.875rem;color:var(--clr-muted);margin-bottom:var(--sp-5)}.admin-breadcrumb a{color:var(--clr-blue);font-weight:500}.admin-breadcrumb a:hover{color:var(--clr-text)}.admin-breadcrumb span{color:var(--clr-muted)}.admin-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem;background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-table thead tr{background:#191b1f}.admin-table th{padding:var(--sp-3) var(--sp-4);text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--clr-muted);border-bottom:1px solid var(--clr-border);white-space:nowrap}.admin-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--clr-border);color:var(--clr-text);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr.clickable{cursor:pointer;transition:background-color var(--t-fast)}.admin-table tbody tr.clickable:hover{background:var(--clr-surface-raised)}.admin-table td.actions{display:flex;align-items:center;gap:var(--sp-2)}.purchase-result{max-width:520px}.purchase-result h1{font-size:1.875rem;margin-bottom:var(--sp-4)}.purchase-result p{color:var(--clr-muted);font-size:1rem;line-height:1.65}.purchase-result a{color:var(--clr-blue);font-weight:500}@media(max-width:639px){main{margin-top:var(--sp-6);margin-bottom:var(--sp-6)}.app-header{padding:0 var(--sp-4)}.app-header nav{gap:var(--sp-3);font-size:.85rem}h1{font-size:1.5rem}.landing h1{font-size:1.875rem}.grade-actions{flex-direction:column}.grade-actions button{width:100%;justify-content:center}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%;justify-content:center}.filter-search{flex-wrap:wrap}.filter-search input[type=search]{max-width:100%}.admin-table{font-size:.8rem}.admin-table th,.admin-table td{padding:var(--sp-2) var(--sp-3)}}@media(min-width:640px){.catalogue .course-list,.my-courses-list{grid-template-columns:1fr 1fr}}@media(min-width:1024px){main{margin-top:var(--sp-10)}}
