@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--ink:#083b26;--sky:#2b4c7e;--amber:#dfa63e;--amber-soft:#e9c777;--cream:#f0f0f0;--paper:#fff;--slate:#2b2e33;--slate-soft:#6b7280;--line:#e3e0d8;--green:#3d8361;--red:#b3441f;--highlight:#f5d99a;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ink:#2f2f2f;--sky:#7fa8e0;--amber:#0b6d30;--amber-soft:#074b0e;--cream:#161616;--paper:#4b4b4b;--slate:#d6d8dc;--slate-soft:#8b8e92;--line:#585858;--green:#36bb7b;--red:#b3441f;--highlight:#23964f;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--cream);color:var(--slate);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-family:var(--font-display);color:var(--slate);margin:0}a{color:inherit}button{font-family:var(--font-body);cursor:pointer}input,textarea,select{font-family:var(--font-body)}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.app-shell{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--ink);color:#fff;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.topbar-brand{font-family:var(--font-display);letter-spacing:.01em;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.topbar-brand .mark{background:var(--amber);width:30px;height:26px;color:var(--slate);border-radius:6px;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.topbar-user{color:#cfd6e4;align-items:center;gap:14px;font-size:14px;display:flex}.topbar-user button{color:#cfd6e4;background:0 0;border:1px solid #3a4a68;border-radius:6px;padding:6px 12px;font-size:13px}.topbar-user button:hover{border-color:var(--amber);color:#fff}.main{flex:1;width:100%;max-width:880px;margin:0 auto;padding:32px 24px 64px}.auth-wrap{background:linear-gradient(180deg, var(--ink) 0%, var(--ink) 45%, var(--cream) 45%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--paper);border-radius:12px;width:100%;max-width:380px;padding:32px 28px;box-shadow:0 20px 40px #12203a40}.auth-brand{align-items:center;gap:10px;margin-bottom:24px;display:flex}.auth-brand .mark{background:var(--amber);width:34px;height:34px;color:var(--ink);font-weight:700;font-family:var(--font-display);border-radius:8px;justify-content:center;align-items:center;display:flex;transform:rotate(-8deg)}.auth-brand span{font-family:var(--font-display);color:var(--ink);font-size:19px;font-weight:700}.auth-card h1{margin-bottom:4px;font-size:20px}.auth-sub{color:var(--slate-soft);margin-bottom:22px;font-size:14px}.field{margin-bottom:16px}.field label{color:var(--slate);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.field input,.field textarea{border:1px solid var(--line);background:var(--cream);width:100%;color:var(--slate);border-radius:7px;padding:10px 12px;font-size:14px}.field textarea{resize:vertical;min-height:90px;font-family:var(--font-body)}.field input:focus,.field textarea:focus{border-color:var(--sky)}.btn{border:none;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;transition:transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:#fff;width:100%}.btn-primary:hover{background:#1c3054}.btn-amber{background:var(--amber);color:var(--ink)}.btn-amber:hover{background:var(--highlight)}.btn-ghost{color:var(--slate-soft);border:1px solid var(--line);background:0 0}.btn-ghost:hover{border-color:var(--sky);color:var(--slate)}.btn-sm{padding:6px 12px;font-size:13px}.auth-toggle{text-align:center;color:var(--slate-soft);margin-top:16px;font-size:13px}.auth-toggle button{color:var(--sky);background:0 0;border:none;padding:0;font-weight:600}.error-banner{color:var(--red);background:#fbe9e2;border:1px solid #f0c4b0;border-radius:7px;margin-bottom:16px;padding:10px 12px;font-size:13px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:22px;display:flex}.page-head h1{font-size:24px}.page-head .sub{color:var(--slate-soft);margin-top:4px;font-size:14px}.student-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.student-card{background:var(--paper);border:1px solid var(--line);text-align:left;border-radius:10px;flex-direction:column;gap:8px;padding:18px;text-decoration:none;transition:border-color .1s,box-shadow .1s;display:flex}.student-card:hover{border-color:var(--sky);box-shadow:0 6px 16px #12203a14}.student-card .name{font-family:var(--font-display);color:var(--slate);font-size:17px;font-weight:600}.student-card .meta{color:var(--slate-soft);font-size:13px}.student-card .cert-summary{letter-spacing:.02em;background:var(--amber-soft);width:fit-content;max-width:100%;color:var(--slate-soft);white-space:normal;border-radius:8px;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.4;display:inline-block}.cert-grid{flex-direction:column;gap:10px;margin-bottom:6px;display:flex}.cert-group{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.cert-group-label{color:var(--slate);flex:0 0 84px;font-size:13px;font-weight:600}.cert-items{flex-wrap:wrap;gap:8px 16px;display:flex}.cert-item{color:var(--slate-soft);cursor:pointer;align-items:center;gap:5px;font-size:13px;display:flex}.cert-item input{cursor:pointer}.empty-state{border:1px dashed var(--line);text-align:center;color:var(--slate-soft);border-radius:10px;padding:48px 24px}.empty-state h3{color:var(--ink);margin-bottom:6px}.back-link{color:var(--slate-soft);background:0 0;border:none;align-items:center;gap:6px;margin-bottom:18px;padding:0;font-size:13px;display:inline-flex}.back-link:hover{color:var(--ink)}.student-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.student-header .info small{color:var(--slate-soft);font-size:13px}.section-title{font-family:var(--font-display);color:var(--ink);justify-content:space-between;align-items:center;margin:32px 0 14px;font-size:15px;font-weight:600;display:flex}.lesson-list{flex-direction:column;gap:10px;display:flex}.lesson-card{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--sky);border-radius:8px;padding:14px 16px}.lesson-card .lesson-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.lesson-card .date{font-family:var(--font-mono);color:var(--slate-soft);font-size:13px}.lesson-card .title{color:var(--ink);font-size:15px;font-weight:600}.lesson-card .duration{color:var(--slate-soft);font-size:12px;font-family:var(--font-mono)}.lesson-card .notes{color:var(--slate);white-space:pre-wrap;margin-top:8px;font-size:14px;line-height:1.5}.lesson-card .row-actions{gap:8px;margin-top:10px;display:flex}.link-btn{color:var(--slate-soft);background:0 0;border:none;padding:0;font-size:12px}.link-btn:hover{color:var(--red)}.modal-overlay{z-index:50;background:#12203a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--paper);border-radius:12px;width:100%;max-width:440px;max-height:90vh;padding:28px;overflow-y:auto;box-shadow:0 24px 48px #12203a4d}.modal-card h2{margin-bottom:18px;font-size:18px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.loading-note{color:var(--slate-soft);text-align:center;padding:40px 0;font-size:14px}@media (width<=520px){.main{padding:20px 16px 48px}.auth-card{padding:26px 20px}}
