:root{--primary:#246b7d;--primary-dark:#195362;--background:#f5f7f8;--surface:#fff;--text:#17212b;--text-muted:#64717d;--border:#e5eaed;--success:#26745c;--warning:#9a6512;--danger:#a64b4b;--shadow:0 4px 18px rgba(22,33,43,.07)}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.5}.container{max-width:1020px}.app-shell{padding-top:32px;padding-bottom:48px}.app-nav{background:#fff;border-bottom:1px solid var(--border);min-height:68px}.navbar-brand{font-size:18px;font-weight:700;color:var(--text)!important;display:flex;align-items:center;gap:9px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--primary);color:#fff;font-size:14px}.app-nav .nav-link{color:var(--text-muted);font-weight:500;padding:.5rem .7rem}.app-nav .nav-link:hover{color:var(--primary)}.navbar-toggler{border-color:var(--border)}.navbar-toggler:focus{box-shadow:0 0 0 .2rem rgba(36,107,125,.15)}.btn{border-radius:9px;font-weight:600;padding:.55rem .9rem}.btn-sm{padding:.43rem .72rem}.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:#b8ccd2}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}.card,.list-group-item,.form-card,.login-card,.empty-card,.next-lesson-card,.change-card,.lesson-row{border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.card{overflow:hidden}.card-body{padding:1.35rem}.login-card,.form-card{max-width:560px;padding:1.25rem}.form-control,.form-select{min-height:43px;border-color:#dbe2e6;border-radius:9px}.form-control:focus,.form-select:focus{border-color:#78a8b4;box-shadow:0 0 0 .2rem rgba(36,107,125,.12)}.form-label{font-weight:600;color:#35414c;margin-bottom:.38rem}.table{--bs-table-bg:transparent}.table>*>*{padding:.85rem .65rem;border-bottom-color:var(--border)}.student-heading{margin-bottom:26px}.student-heading h1{margin:0;font-size:32px;line-height:1.2;font-weight:720;letter-spacing:-.03em}.student-heading p:last-child{color:var(--text-muted);margin:.28rem 0 0}.eyebrow{color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin:0 0 7px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.section-heading h2{font-size:20px;font-weight:700;letter-spacing:-.015em;margin:0}.section-heading span{font-size:13px;color:var(--text-muted)}.next-lesson-card{padding:24px}.date-label{margin:0 0 3px;color:var(--text-muted);font-size:16px;font-weight:600}.time-large{margin:0 0 14px;font-size:32px;font-weight:720;letter-spacing:-.04em}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:650}.status-scheduled{background:#e8f4ee;color:var(--success)}.status-cancelled{background:#f8eeee;color:var(--danger)}.status-completed{background:#edf1f3;color:#52616c}.teacher-note{margin-top:17px;padding:13px 15px;border-radius:10px;background:#eef5f6;color:#33434a;font-size:14px}.teacher-note strong{display:block;color:var(--primary);font-size:13px;margin-bottom:3px}.teacher-note p{margin:0;white-space:pre-wrap}.change-card,.lesson-row{padding:16px 17px;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;justify-content:space-between}.change-card .teacher-note,.lesson-row .teacher-note{width:100%;margin-top:2px}.lesson-stack{display:grid;gap:9px}.lesson-row p{margin:0 0 2px;color:var(--text-muted);font-size:15px}.lesson-row strong{font-size:16px}.empty-card{padding:24px}.empty-card h2{font-size:20px;margin:0 0 5px}.empty-card p{color:var(--text-muted);margin:0}.weekly-calendar{display:grid;grid-template-columns:56px repeat(7,minmax(118px,1fr));overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.calendar-head{min-width:118px;padding:.65rem;text-align:center;border-left:1px solid var(--border);background:#fafcfc;font-size:14px}.time-head{min-width:56px;border-left:0}.today{background:#edf5f6}.time-axis{grid-column:1;grid-row:2;display:grid;grid-template-rows:repeat(15,72px);font-size:.75rem;color:var(--text-muted);text-align:right;padding-right:.35rem}.day-column{position:relative;grid-row:2;height:1080px;border-left:1px solid var(--border);background:repeating-linear-gradient(to bottom,transparent 0,transparent 71px,#edf0f2 72px);cursor:crosshair}.hour-line{height:72px}.calendar-lesson{position:absolute;left:4px;right:4px;z-index:1;overflow:hidden;padding:.35rem .42rem;border-radius:8px;background:#eaf4f6;border-left:3px solid var(--primary);color:var(--text);text-decoration:none;font-size:.78rem}.calendar-lesson:hover{color:var(--text);filter:brightness(.98)}.calendar-lesson span,.calendar-lesson small{display:block}.calendar-lesson.status-cancelled{background:#f8eeee;border-color:var(--danger);text-decoration:line-through}.calendar-lesson.status-completed{background:#e8f4ee;border-color:var(--success)}@media(max-width:767px){.app-shell{padding:24px 16px 38px}.app-nav .container{padding:0 16px}.navbar-collapse{padding:10px 0}.app-nav .nav-link{padding:.62rem 0}.app-nav form{margin-top:3px}.app-nav .btn{margin:7px 0 3px;width:100%;text-align:left}.student-heading h1{font-size:29px}.next-lesson-card{padding:21px}.time-large{font-size:30px}.section-heading h2{font-size:19px}.weekly-calendar{margin:0 -16px;border-radius:0;border-left:0;border-right:0}.change-card,.lesson-row{padding:15px}.table-responsive{margin:0 -16px;padding:0 16px}.login-card,.form-card{padding:1rem}}@media(min-width:768px){.student-heading{margin-top:9px}}
