:root{--ink:#14213d;--muted:#64748b;--line:#dbe3ef;--paper:#f4f7fb;--green:#1d4ed8;--green-dark:#172554;--mint:#dbeafe}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a,button{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:26px 18px 18px;background:#12271e;color:#fff}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 28px;font-size:15px;font-weight:650}.sidebar nav{display:grid;gap:5px;min-height:0;overflow-y:auto;padding-right:3px;scrollbar-width:thin}.nav-item{width:100%;display:flex;align-items:center;justify-content:space-between;min-height:43px;padding:0 13px;border:0;border-radius:10px;background:transparent;color:#b9c9c1;text-decoration:none;text-align:left;font-size:13.5px}.nav-item.active,.nav-item:hover{background:#204233;color:white}.nav-count{min-width:22px;padding:3px 7px;border-radius:20px;background:#315344;color:#dff4e8;text-align:center;font-size:11px}.sidebar-foot{margin-top:auto}.profile{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:16px 8px 2px;border-top:1px solid #294236;font-size:12px}.profile small{display:block;margin-top:2px;color:#94a99f}.teacher-logout{border:0;background:transparent;color:#9fb3a9;font-size:10px}.teacher-logout:hover{color:white}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#dff2e9;color:#176b4d;font-weight:750}.workspace{padding:34px clamp(28px,4vw,64px) 56px;overflow:hidden}.panel-head,.section-heading,.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px}.topbar{margin-bottom:24px}h1,h2,h3,p{margin:0}h1{margin-top:3px;font-family:Georgia,serif;font-size:34px;font-weight:500;letter-spacing:-.025em}h2{letter-spacing:-.01em}h2,h3{font-size:17px}h3{margin-top:4px}.eyebrow{color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.035em;text-transform:uppercase}.top-actions{display:flex;gap:10px}.btn{min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font-size:13px;font-weight:650}.btn.primary{border-color:var(--green);background:var(--green);color:white}.notice{display:flex;align-items:center;gap:13px;margin-bottom:32px;padding:15px 18px;border:1px solid #d9e8df;border-radius:13px;background:#edf7f1;font-size:13px}.approval-row p,.notice p,.panel-head p,.section-heading p{margin-top:3px;color:var(--muted);font-size:12px}.notice-icon{display:grid;place-items:center;width:28px;height:28px;flex:none;border-radius:50%;background:#cfead9;color:var(--green);font-weight:800}.notice .text-button{margin-left:auto}.text-button{border:0;padding:0;background:transparent;color:var(--green);font-size:12px;font-weight:700}.section-heading{margin-bottom:14px}.live{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:20px;background:#e6f5ec;color:#176b4d;font-size:11px;font-weight:700}.live i{width:7px;height:7px;border-radius:50%;background:#2ca56f;box-shadow:0 0 0 4px #ccebd9}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.group-card,.panel{border:1px solid var(--line);border-radius:16px;background:white;box-shadow:0 1px 2px rgb(20 45 33/3%)}.group-card{padding:18px}.group-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.period-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;font-size:12px;font-weight:800}.period-icon.mint{background:#dcefe5;color:#176b4d}.period-icon.amber{background:#f7edd6;color:#8a6420}.period-icon.blue{background:#e4eef5;color:#35647f}.status{padding:5px 8px;border-radius:20px;background:#f1f3f1;color:#7a847f;font-size:10px;font-weight:650}.status.open{background:#e3f3e9;color:#176b4d}.attendance{display:flex;align-items:baseline;gap:5px;margin-top:21px}.attendance strong{font-family:Georgia,serif;font-size:28px;font-weight:500}.attendance span{color:var(--muted);font-size:11px}.progress{height:5px;margin:10px 0 13px;overflow:hidden;border-radius:20px;background:#edf0ee}.progress i{display:block;height:100%;border-radius:inherit;background:#2f8a65}.card-meta{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.lower-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:26px}.panel{padding:20px}.panel-head{padding-bottom:14px;border-bottom:1px solid var(--line)}.approval-row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #edf0ee;font-size:13px}.approval-row:last-child{border-bottom:0;padding-bottom:0}.approval-row small{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:400}.row-button{width:100%;border-width:0 0 1px;background:transparent;text-align:left}.row-button:hover{background:#fafcfa}.type-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;font-weight:800;font-size:12px}.type-icon.tooth{background:#e7f3ec;color:#176b4d}.type-icon.book{background:#f7eddc;color:#8a6420}.tag{padding:5px 8px;border-radius:20px;background:#f3f4f3;color:#66716c;font-size:10px;font-weight:650}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-top:14px}.quick-grid button{min-height:54px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fafbfa;color:#33423a;text-align:left;font-size:12px;font-weight:650}.quick-grid button:hover{border-color:#9fc8b5;background:#f1f8f4}.content-card{border:1px solid var(--line);border-radius:16px;background:white;padding:20px;box-shadow:0 1px 2px rgb(20 45 33/3%)}.content-head,.control-strip,.filterbar,.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.content-head{padding-bottom:16px}.content-head p{margin-top:4px;color:var(--muted);font-size:12px}.filterbar{justify-content:flex-start;padding-bottom:16px}.filterbar .search{flex:1 1;display:flex;align-items:center;padding:0 13px;color:#8a948f}.filterbar .search,.filterbar select,.settings-card select{min-height:40px;border:1px solid var(--line);border-radius:10px;font-size:12px}.filterbar select,.settings-card select{padding:0 28px 0 11px;background:white;color:#405048}.student-filterbar{display:grid;grid-template-columns:minmax(230px,1fr) repeat(3,minmax(130px,auto)) auto;gap:9px}.search-input{width:100%;min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:12px}.search-input:focus{border-color:#8fb0df;outline:3px solid #e7f0ff}.student-directory-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}.student-directory-summary button{display:grid;gap:3px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#f8faff;color:var(--ink);text-align:left}.student-directory-summary button.active{border-color:#8fb0df;background:#e8f1ff;color:#1d4ed8}.student-directory-summary strong{font-size:18px}.student-directory-summary span{color:var(--muted);font-size:9px}.directory-result{margin:-4px 0 12px;color:var(--muted);font-size:10px}.pill.unregistered{background:#eef1f5;color:#56657a}.not-registered-note{color:var(--muted);font-size:9px;white-space:nowrap}.pending-strip{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;border-radius:10px;background:#fff8e9;color:#7a5b1f;font-size:12px}.pending-strip span{color:#8b7750}.data-table{width:100%;overflow:auto}.tr{display:grid;grid-template-columns:1.4fr .8fr 1fr .8fr .6fr;gap:16px;align-items:center;min-width:720px;padding:13px 10px;border-bottom:1px solid #edf0ee;color:#35423b;font-size:12px}.tr:last-child{border-bottom:0}.tr.th{padding-block:9px;color:#78827d;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.tr span>small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.attendance-tr{grid-template-columns:1.4fr .6fr .7fr .8fr .8fr}.teeth-tr{grid-template-columns:1.1fr 1fr .45fr .9fr 1.5fr}.booklet-tr{grid-template-columns:1.2fr .9fr 1fr 1.5fr}.excuse-tr{grid-template-columns:1.1fr .7fr 1.7fr .7fr}.pill{display:inline-flex;padding:5px 8px;border-radius:20px;background:#f0f2f1;color:#64706a;font-style:normal;font-size:10px;font-weight:700;white-space:nowrap}.pill.bekleniyor,.pill.pending{background:#fff3da;color:#8a6420}.pill.approved,.pill.corrected,.pill.geldi{background:#e5f4eb;color:#176b4d}.pill.gec{background:#f7eeda;color:#8a6420}.pill.absent,.pill.rejected,.pill.yok{background:#f9e8e5;color:#a24838}.excuse-form{display:grid;grid-template-columns:1.2fr .8fr 1.5fr auto;gap:10px;align-items:end;margin:16px 0 20px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fafbfa}.excuse-form label{display:grid;gap:5px;color:#5d6963;font-size:10px;font-weight:650}.excuse-form input,.excuse-form select{min-height:39px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:#314139;font:inherit}.small-btn{min-height:31px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:white;color:#405048;font-size:10px;font-weight:700;white-space:nowrap}.small-btn.primary{border-color:var(--green);background:var(--green);color:white}.small-btn.danger-text{color:#a24838}.small-btn.wa{border-color:#b9dfc8;color:#167047;background:#f1faf4}.btn.danger{border-color:#e5c7c1;background:#fff7f5;color:#a24838}.decision-buttons{display:flex;flex-wrap:wrap;gap:5px}.control-strip{margin-bottom:14px;padding:16px 18px;border:1px solid #dbe9e0;border-radius:14px;background:#edf7f1}.control-strip>div{display:grid;gap:5px}.control-strip strong{font-size:14px}.control-strip small{color:var(--muted);font-size:11px}.summary-row{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:12px;border:1px solid var(--line);border-radius:12px}.summary-row div{padding:14px 16px;border-right:1px solid var(--line)}.summary-row div:last-child{border-right:0}.summary-row strong{display:block;font-family:Georgia,serif;font-size:23px;font-weight:500}.summary-row span{color:var(--muted);font-size:10px}.rule-note{margin-top:15px;padding:11px 13px;border-radius:9px;background:#f6f8f6;color:var(--muted);font-size:11px}.undo-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px 0 14px;padding:10px 12px;border:1px solid #eadfc8;border-radius:10px;background:#fffaf0;color:#725a2b;font-size:11px}.undo-strip .small-btn{border-color:#d8c9aa;background:#fffdf8;color:#725a2b}.attendance-periods{display:flex;gap:7px;margin-bottom:12px}.attendance-periods button{min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:9px;background:white;color:#69756f;font-size:11px;font-weight:650}.attendance-periods button.active{border-color:#83b49e;background:#e7f3ec;color:#176b4d}.info-banner{margin-bottom:12px;padding:12px 14px;border:1px solid #e2e7e4;border-radius:10px;background:#f7f9f7;color:#58645e;font-size:11px;line-height:1.5}.info-banner.whatsapp{display:flex;gap:8px;flex-wrap:wrap;background:#f1faf4;border-color:#d6eadc;color:#366048}.info-banner.whatsapp span{color:#64756c}.report-toolbar{margin-bottom:14px}.report-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.segmented{display:flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:white}.segmented button{min-height:33px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:#65716b;font-size:11px}.segmented button.active{background:#e7f2ec;color:#176b4d;font-weight:700}.signature-options{display:flex;align-items:end;gap:8px}.signature-options label{display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:650}.signature-options input,.signature-options select{height:39px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:white;color:#35423b;font:inherit;font-size:11px}.print-sheet{min-height:680px;padding:36px;border:1px solid var(--line);background:white;box-shadow:0 1px 3px rgb(20 45 33/4%)}.print-letterhead{display:flex;align-items:center;gap:15px;padding-bottom:20px;border-bottom:2px solid #1e5e45}.print-letterhead h2{margin-top:4px;font-family:Georgia,serif;font-size:20px;font-weight:500}.document-meta{display:flex;flex-wrap:wrap;gap:18px;margin:16px 0;color:#54615b;font-size:11px}.print-sheet table{width:100%;border-collapse:collapse;font-size:10px}.print-sheet td,.print-sheet th{height:38px;padding:7px;border:1px solid #bdc6c1;text-align:left}.print-sheet th{background:#edf3ef;font-weight:700}.signature-cell{height:54px!important}.grade-cell{min-width:48px;padding:3px!important;background:#fffdf7}.grade-input{width:100%;min-height:30px;border:0;background:transparent;color:#25342c;font:inherit;outline:none}.grade-input:focus{box-shadow:inset 0 -2px #2f8a65}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-card{display:flex;flex-direction:column;gap:12px}.settings-card>p{margin-top:-7px;color:var(--muted);font-size:11px}.modal label,.registration-card label,.settings-card label{display:grid;gap:6px;color:#56625c;font-size:11px;font-weight:650}.modal input,.modal select,.registration-card input,.registration-card select,.settings-card input{width:100%;min-height:39px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:white;color:#28372f;font:inherit}.rule-card{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfa}.rule-card strong{font-size:12px}.rule-card span{color:var(--muted);font-size:10px}.radio{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;padding:11px;border:1px solid var(--line);border-radius:10px}.radio input{width:auto;min-height:auto;margin-top:2px}.radio small{display:block;margin-top:3px;color:var(--muted);font-weight:400}.settings-card .btn{align-self:flex-start}.audit-card{grid-column:1/-1}.audit-row{display:flex;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #edf0ee;color:#56625c;font-size:11px}.audit-row i{width:7px;height:7px;border-radius:50%;background:#69a88c}.time-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:7px}.time-rule-grid label{font-size:9px}.time-rule-grid input{min-height:34px;padding:0 7px;background:white}.toast{position:fixed;z-index:100;right:24px;bottom:24px;max-width:340px;padding:13px 16px;border-radius:11px;background:#173c2d;color:white;box-shadow:0 12px 30px rgb(12 34 25/25%);font-size:12px}.portal-home{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef3ef,#dfeae3)}.portal-home-card{width:min(100%,620px);padding:36px;border:1px solid var(--line);border-radius:22px;background:white;box-shadow:0 22px 60px rgb(19 50 37/11%)}.portal-home-card h1{margin:7px 0 24px}.portal-options{display:grid;grid-template-columns:1fr 1fr;gap:13px}.portal-options a{display:grid;gap:7px;min-height:130px;padding:22px;border:1px solid var(--line);border-radius:15px;background:#f9fbfa;color:var(--ink);text-decoration:none}.portal-options a:hover{border-color:#83b49e;background:#edf7f1}.portal-options strong{font-size:16px}.portal-options span{color:var(--muted);font-size:11px;line-height:1.5}.portal-description{margin:-12px 0 24px!important;color:var(--muted);font-size:12px;line-height:1.55}.empty-state{display:grid;justify-items:start;gap:8px;padding:28px;border:1px dashed #cbd5cf;border-radius:14px;background:#fafcfa;color:#526059}.empty-state p{color:var(--muted);font-size:11px}.empty-state .btn{margin-top:4px}.stack-form{display:grid;gap:12px}.stack-form label{display:grid;gap:6px;color:#56625c;font-size:11px;font-weight:650}.stack-form label small{color:var(--muted);font-size:10px;font-weight:400}.stack-form .btn{justify-self:start}.form-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.form-actions .btn{justify-self:auto}.simple-list{display:grid;gap:9px}.simple-list>div{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfa}.simple-list strong{font-size:12px}.simple-list small,.simple-list span{grid-column:1;color:var(--muted);font-size:10px}.simple-list button{grid-column:2;grid-row:1/3}.report-controls>select{min-height:39px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:#35423b;font-size:11px}.report-email-actions,.report-export-actions{display:flex;align-items:center;gap:8px}.report-export-actions{justify-content:flex-end;flex-wrap:wrap}.report-email-actions input{width:210px;min-height:39px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:#35423b;font:inherit;font-size:11px}.report-email-actions .btn{white-space:nowrap}.student-bg{min-height:100vh;background:#eef3ef}.student-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#12271e;color:white}.student-header .brand{padding:0}.student-header>button{border:1px solid #476153;border-radius:9px;background:transparent;color:#ccdad3;padding:8px 11px;font-size:10px}.student-phone{width:min(100%,560px);margin:0 auto;padding:30px 18px 60px}.student-welcome{display:flex;gap:13px;align-items:center;margin-bottom:22px}.avatar.large{width:44px;height:44px}.student-welcome h1{font-size:26px}.today-card{padding:20px;border-radius:18px;background:#163d2e;color:white;box-shadow:0 14px 30px rgb(15 53 38/13%)}.today-head{display:flex;align-items:flex-start;justify-content:space-between}.today-card .eyebrow{color:#a7c8b9}.today-card h2{margin-top:5px}.clock{margin:24px 0 15px;font-family:Georgia,serif;font-size:44px}.student-primary,.student-secondary{width:100%;min-height:48px;border:0;border-radius:12px;background:#ddf2e7;color:#14583f;font-size:13px;font-weight:800}.student-secondary{margin-top:10px;border:1px solid #58806e;background:transparent;color:#e8f4ee}.checked{padding:14px;border-radius:11px;background:#285b46;color:#e2f6eb;font-size:12px;font-weight:700}.helper{margin-top:12px;color:#a7c2b6;font-size:10px;line-height:1.5}.exit-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;margin-top:12px;padding:16px;border:1px solid var(--line);border-radius:15px;background:white}.exit-card h2{margin:4px 0 5px;font-size:15px}.exit-card p:not(.eyebrow){color:var(--muted);font-size:10px;line-height:1.45}.exit-card.open{display:block;border-color:#83b49e;background:#eaf6ef;box-shadow:0 8px 20px rgb(23 107 77/9%)}.exit-card.open .student-primary{margin-top:13px;background:var(--green);color:white}.exit-closed{padding:5px 9px;border-radius:20px;background:#f0f2f1;color:#748079;font-size:10px;font-weight:700}.exit-checked{margin-top:13px;padding:13px;border-radius:11px;background:#d7eddf;color:#176b4d;font-size:12px;font-weight:750}.student-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:14px 0;padding:16px 8px;border:1px solid var(--line);border-radius:15px;background:white}.student-stats.three{grid-template-columns:repeat(3,1fr)}.student-stats div{text-align:center;border-right:1px solid var(--line)}.student-stats div:last-child{border:0}.student-stats strong{display:block;font-family:Georgia,serif;font-size:23px}.student-stats span{display:block;margin-top:4px;color:var(--muted);font-size:9px}.student-actions{padding:18px;border:1px solid var(--line);border-radius:15px;background:white}.student-actions h2{margin-bottom:10px}.student-actions>button{width:100%;display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center;padding:13px 0;border:0;border-bottom:1px solid #edf0ee;background:transparent;text-align:left}.student-actions>button:last-child{border-bottom:0}.student-actions>button:disabled{cursor:default;opacity:.62}.student-actions small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.student-actions b{color:var(--green)}.reset-demo{display:block;margin:20px auto 0;border:0;background:transparent;color:#68756e;font-size:10px;text-decoration:underline}.student-quiz-card{margin-bottom:14px;padding:18px;border:1px solid var(--line);border-radius:15px;background:white}.student-quiz-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.student-quiz-head h2{margin-top:4px}.student-quiz-head>div:last-child{display:grid;text-align:right}.student-quiz-head>div:last-child strong{font-family:Georgia,serif;font-size:25px;color:#173b69}.student-quiz-head>div:last-child span{margin-top:2px;color:var(--muted);font-size:8px}.student-quiz-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.student-quiz-list>div{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:11px 12px;border:1px solid #dbe4f1;border-radius:10px;background:#f8faff}.student-quiz-list span{color:#42536b;font-size:10px;font-weight:700}.student-quiz-list strong{grid-row:span 2;font-family:Georgia,serif;font-size:21px;color:#1d4ed8}.student-quiz-list small{color:var(--muted);font-size:8px}.student-quiz-empty{margin:13px 0 0;padding:11px;border-radius:9px;background:#f6f8fc;color:var(--muted);font-size:10px;text-align:center}.registration-bg{min-height:100vh;display:grid;place-items:center;padding:30px 16px;background:#eef3ef}.registration-card{width:min(100%,520px);padding:32px;border:1px solid var(--line);border-radius:20px;background:white;box-shadow:0 20px 55px rgb(19 50 37/10%)}.registration-card.login-card{width:min(100%,430px)}.registration-card>.eyebrow{margin-top:0}.registration-card h1{margin:7px 0 6px;font-size:29px}.registration-card>p:not(.eyebrow){color:var(--muted);font-size:12px}.registration-card form{display:grid;gap:13px;margin-top:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-help{margin:-5px 0 0;color:var(--muted);font-size:10px}.registration-card label b{color:#a24838;font-size:9px;text-transform:uppercase}.registration-card label small{color:var(--muted);font-size:10px;font-weight:400}.registration-card .student-primary{margin-top:4px;background:var(--green);color:white}.link-button{display:block;margin:15px auto 0;border:0;background:transparent;color:var(--green);font-size:10px}.register-callout{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.register-callout .link-button{display:inline;margin:0;padding:4px}.form-error{padding:9px 11px;border:1px solid #eccfc9;border-radius:9px;background:#fff5f3;color:#9a4032!important;font-size:10px!important}.teacher-login-bg{background:linear-gradient(145deg,#eef3ef,#dfeae3)}.teacher-login-card{border-top:4px solid #176b4d}.security-note{margin-top:16px!important;padding-top:14px;border-top:1px solid var(--line);color:#7b8780!important;font-size:10px!important;text-align:center}.modal-backdrop{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:18px;background:rgb(7 20 14/50%);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(100%,420px);display:grid;gap:15px;padding:23px;border-radius:17px;background:white;box-shadow:0 20px 50px rgb(0 0 0/20%)}.modal.manual-modal{width:min(100%,520px)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between}.modal-head h2{margin-top:4px}.modal-head button{width:30px;height:30px;border:0;border-radius:50%;background:#f0f2f1;color:#526059;font-size:20px}.modal .info-banner{margin:0}.modal .student-primary{background:var(--green);color:white}.modal .form-actions{justify-content:flex-end}.btn:disabled{cursor:not-allowed;opacity:.5}.modal.student-detail-modal{width:min(100%,760px);max-height:calc(100vh - 36px);overflow:auto}.modal textarea{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font:inherit;resize:vertical}.student-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.student-detail-grid>div{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#f8faff}.student-detail-grid span{color:var(--muted);font-size:9px}.student-detail-grid strong{font-size:11px}.tooth-history{display:grid;gap:10px;padding-top:2px}.tooth-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tooth-history-head p{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}.tooth-history-head>span{padding:5px 8px;border-radius:20px;background:#eef4fc;color:#45617f;font-size:9px;font-weight:700;white-space:nowrap}.tooth-history-table{overflow:auto;border:1px solid var(--line);border-radius:10px}.tooth-history-row{display:grid;grid-template-columns:1fr .8fr .55fr .9fr 1.2fr;gap:9px;align-items:center;min-width:610px;padding:9px 10px;border-bottom:1px solid #edf0f6;color:#40516a;font-size:10px}.tooth-history-row:last-child{border-bottom:0}.tooth-history-row.unusual{background:#fff8e9}.tooth-history-row small{display:block;margin-top:2px;color:#a16207;font-size:8px}.tooth-history-label{background:#f6f8fc;color:#75839a;font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.tooth-empty{padding:13px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:10px}.unusual-tooth{background:#fff9ec}.historical-controls{margin-bottom:14px}.history-filter-grid{display:grid;grid-template-columns:.8fr .6fr 1.4fr;gap:10px}.history-filter-grid label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:700}.history-filter-grid input,.history-filter-grid select{width:100%;min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font:inherit;font-size:11px}.bulk-attendance-actions,.historical-actions,.selected-attendance-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.bulk-attendance-actions{margin-top:14px}.selected-attendance-actions{margin-top:9px;padding:10px;border:1px solid #cdddf3;border-radius:10px;background:#f1f6fd}.selected-attendance-actions>strong{margin-right:4px;color:#29496d;font-size:10px}.historical-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px}.historical-tr{grid-template-columns:1.4fr .55fr .8fr}.history-student-cell{display:flex;align-items:center;gap:9px}.history-student-cell input{width:16px;height:16px;accent-color:#1d4ed8}.attendance-status-select{width:100%;max-width:160px;min-height:36px;padding:0 28px 0 9px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:inherit;font-size:11px}.history-present{background:#f7fbff}.history-half_day,.history-late{background:#fffaf0}.history-absent{background:#fff7f5}.attendance-calendar>p{margin:5px 0 13px;color:var(--muted);font-size:10px}.attendance-date-list{display:grid;gap:7px;max-height:620px;overflow:auto}.attendance-date-list button{display:grid;gap:4px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#f8faff;color:var(--ink);text-align:left}.attendance-date-list button.active{border-color:#86a9dc;background:#eaf2ff}.attendance-date-list strong{font-size:11px}.attendance-date-list span{color:var(--muted);font-size:9px;line-height:1.4}.attendance-history{display:grid;gap:10px;padding-top:2px}.attendance-history-table{overflow:auto;border:1px solid var(--line);border-radius:10px}.attendance-history-row{display:grid;grid-template-columns:.8fr .6fr .9fr 1.4fr;gap:9px;align-items:center;min-width:650px;padding:9px 10px;border-bottom:1px solid #edf0f6;color:#40516a;font-size:9px}.attendance-history-row:last-child{border-bottom:0}.attendance-history-row small{display:block;margin-top:3px;color:var(--muted);font-size:8px}.attendance-history-label{background:#f6f8fc;color:#75839a;font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.pill.present{background:#e5efff;color:#1d4ed8}.pill.half_day,.pill.late{background:#fff3da;color:#8a6420}.sidebar,.student-header{background:#0f2747}.nav-item.active,.nav-item:hover{background:#1e3a5f}.nav-count{background:#284d78;color:#e0ecff}.profile{border-color:#29496d}.avatar{background:#dbeafe;color:#1d4ed8}.notice{border-color:#c9daf4;background:#eef5ff}.notice-icon{background:#dbeafe;color:#1d4ed8}.live{background:#e7f0ff;color:#1d4ed8}.live i{background:#3b82f6;box-shadow:0 0 0 4px #cfe0ff}.period-icon.mint{background:#dbeafe;color:#1d4ed8}.period-icon.amber{background:#e7ecff;color:#3730a3}.period-icon.blue{background:#e0f2fe;color:#075985}.status.open{background:#e5efff;color:#1d4ed8}.progress i{background:#2563eb}.type-icon.tooth{background:#e3edff;color:#1d4ed8}.type-icon.book{background:#e9edff;color:#3730a3}.pill.approved,.pill.corrected,.pill.geldi{background:#e5efff;color:#1d4ed8}.small-btn.wa{border-color:#bfdbfe;color:#1d4ed8;background:#eff6ff}.control-strip{border-color:#ccdcf4;background:#eef5ff}.attendance-periods button.active{border-color:#93b4e8;background:#e7f0ff;color:#1d4ed8}.info-banner.whatsapp{border-color:#ccdcf4;background:#eff6ff;color:#1e3a5f}.segmented button.active{background:#e7f0ff;color:#1d4ed8}.print-letterhead{border-color:#1e3a5f}.print-sheet th{background:#eaf1fb}.grade-input:focus{box-shadow:inset 0 -2px #2563eb}.toast{background:#132f55}.portal-home,.registration-bg,.teacher-login-bg{background:linear-gradient(145deg,#f2f6fc,#e3ebf7)}.portal-options a:hover{border-color:#8fb0df;background:#edf4ff}.student-bg{background:#edf2f8}.today-card{background:#132f55;box-shadow:0 14px 30px rgb(15 39 71/18%)}.today-card .eyebrow{color:#b9d0ef}.student-primary{background:#dbeafe;color:#173b69}.student-secondary{border-color:#6f8fb8;color:#eef5ff}.checked{background:#244c78;color:#eef6ff}.helper{color:#b5cae4}.exit-card.open{border-color:#8fb0df;background:#edf4ff;box-shadow:0 8px 20px rgb(29 78 216/10%)}.exit-checked{background:#dbeafe;color:#1d4ed8}.teacher-login-card{border-top-color:#1d4ed8}.modal-backdrop{background:rgb(7 20 40/55%)}.student-brand{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:800}.student-brand span{color:#b9cbe2;font-size:10px;font-weight:650}.overview-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.overview-kpis article{display:grid;gap:7px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:white}.overview-kpis span{color:var(--muted);font-size:10px}.overview-kpis strong{font-family:Georgia,serif;font-size:25px;font-weight:500;color:#173b69}.management-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.management-group{display:block}.group-breakdown{margin:7px 0 15px;color:var(--muted);font-size:11px}.group-metrics{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:15px;border:1px solid var(--line);border-radius:11px}.group-metrics div{padding:12px;border-right:1px solid var(--line)}.group-metrics div:last-child{border:0}.group-metrics span{display:block;color:var(--muted);font-size:9px}.group-metrics strong{display:block;margin-top:5px;font-size:15px}.detail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.summary-row.five{grid-template-columns:repeat(5,1fr)}.pill.yarım{background:#e0e7ff;color:#3730a3}.quiz-score-chips{display:flex;flex-wrap:wrap;gap:7px}.quiz-score-chips span{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#f7f9fd;color:var(--muted);font-size:10px}.quiz-head-actions,.quiz-save-row{display:flex;align-items:center;justify-content:flex-end;gap:8px}.quiz-tabs{display:flex;gap:8px;overflow-x:auto;padding-top:5px}.quiz-tabs button{min-width:92px;display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8faff;color:#42536b;text-align:left;font-size:11px;font-weight:750}.quiz-tabs button.active{border-color:#8fb0df;background:#e8f1ff;color:#1d4ed8}.quiz-tabs small{color:var(--muted);font-size:9px;font-weight:500}.quiz-tr{grid-template-columns:1.4fr .8fr .7fr}.quiz-input{width:100%;max-width:130px;min-height:37px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font:inherit}.quiz-save-row{padding-top:16px}.rotation-date-box{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;padding:11px 12px;border:1px solid #d5e2f3;border-radius:10px;background:#f5f8fd;color:#54657d;font-size:10px}.rotation-date-box>div{display:flex;flex-wrap:wrap;gap:6px}.attendance-toggle-actions{display:flex!important;grid-auto-flow:column;gap:8px!important}.matched-student{display:grid;gap:4px;margin-top:18px;padding:13px 14px;border:1px solid #bfd3ef;border-radius:11px;background:#f0f6ff}.matched-student strong{font-size:14px}.matched-student span{color:var(--muted);font-size:10px}.report-builder-grid{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:14px}.option-chips{display:flex;flex-wrap:wrap;gap:7px}.option-chips label{display:flex!important;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#f8faff;font-size:10px!important}.option-chips input{width:auto!important;min-height:auto!important}.roster-picker{min-height:600px}.roster-filters{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-bottom:10px}.roster-filters>input{min-height:41px;padding:0 11px;border:1px solid var(--line);border-radius:9px;font:inherit}.select-visible{display:flex;gap:7px;margin-bottom:10px}.roster-list{max-height:480px;overflow:auto;border:1px solid var(--line);border-radius:10px}.roster-list label{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf0ee}.roster-list label:last-child{border-bottom:0}.roster-list label:hover{background:#f6f9fd}.roster-list span{display:grid;gap:3px}.roster-list strong{font-size:11px}.roster-list small{color:var(--muted);font-size:9px}.current-rotation-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px;padding:18px 20px;border-radius:15px;background:#132f55;color:white}.current-rotation-banner .eyebrow{color:#b9d0ef}.current-rotation-banner h2{margin:5px 0}.current-rotation-banner span{color:#c7d5e7;font-size:10px}.current-rotation-banner>strong{font-family:Georgia,serif;font-size:25px;font-weight:500;white-space:nowrap}.overview-kpis article small{color:var(--muted);font-size:9px}.overview-kpis article:nth-child(4) strong{font-family:Arial,sans-serif;font-size:14px;font-weight:750}.group-grid.current-only{grid-template-columns:minmax(0,620px);margin-bottom:26px}.overview-attendance-actions{display:flex;gap:8px;margin-top:15px}.pair-selector{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}.oral-exam-layout{display:grid;gap:14px}.content-head>select{min-height:39px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:#35423b;font-size:11px}.oral-tr{grid-template-columns:1.5fr .7fr .6fr 1fr}.oral-result-buttons{display:flex;gap:6px}.small-btn.danger.active{border-color:#c45d4c;background:#a24838;color:white}@media(max-width:980px){.app-shell{grid-template-columns:210px 1fr}.sidebar{padding-inline:14px}.nav-item{font-size:12px}.group-grid,.lower-grid,.report-builder-grid,.settings-grid{grid-template-columns:1fr}.audit-card{grid-column:auto}.group-metrics,.overview-kpis{grid-template-columns:1fr 1fr}.group-metrics div:nth-child(2){border-right:0}}@media(max-width:1100px){.student-filterbar{grid-template-columns:1fr 1fr}.student-filterbar .search-input{grid-column:1/-1}}@media(max-width:640px){.app-shell,.sidebar{display:block}.sidebar{position:fixed;z-index:20;top:auto;bottom:0;width:100%;height:74px;padding:6px;background:#0f2747;overflow:hidden}.brand,.sidebar-foot{display:none}.sidebar nav{display:grid;grid-auto-flow:column;grid-auto-columns:118px;gap:3px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.nav-item{min-height:62px;padding:0 8px;font-size:10px;justify-content:center;text-align:center}.nav-count{margin-left:4px}.workspace{padding:22px 16px 98px}.topbar{align-items:flex-start}.top-actions .secondary{display:none}.notice{align-items:flex-start}.notice .text-button{display:none}h1{font-size:28px}.group-grid,.lower-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.filterbar{align-items:stretch;flex-direction:column}.student-filterbar{display:grid;grid-template-columns:1fr}.student-filterbar .search-input{grid-column:auto}.student-directory-summary{grid-template-columns:1fr 1fr}.student-quiz-list{grid-template-columns:1fr}.summary-row{grid-template-columns:1fr 1fr}.summary-row div:nth-child(2){border-right:0}.summary-row div:nth-child(-n+2){border-bottom:1px solid var(--line)}.control-strip{align-items:flex-start;flex-direction:column}.attendance-periods{overflow-x:auto}.report-controls,.report-toolbar,.signature-options{align-items:stretch;flex-direction:column}.print-sheet,.segmented{overflow:auto}.print-sheet{padding:18px}.excuse-form,.form-row,.student-detail-grid{grid-template-columns:1fr}.student-header{padding:0 16px}.registration-card{padding:24px}.portal-home-card{padding:25px}.management-group-grid,.overview-kpis,.portal-options{grid-template-columns:1fr}.summary-row.five{grid-template-columns:1fr 1fr}.attendance-toggle-actions,.detail-actions,.overview-attendance-actions,.quiz-head-actions,.quiz-save-row,.report-email-actions,.report-export-actions,.rotation-date-box{align-items:stretch;flex-direction:column}.attendance-toggle-actions .btn,.detail-actions>.btn,.overview-attendance-actions .btn,.quiz-head-actions .btn,.quiz-save-row .btn,.report-email-actions .btn,.report-email-actions input,.report-export-actions>.btn,.rotation-date-box .small-btn{width:100%}.detail-actions .form-actions{width:100%;justify-content:stretch}.detail-actions .form-actions .btn{flex:1 1}.student-brand span{display:none}.roster-filters{grid-template-columns:1fr}.roster-picker{min-height:0}.content-head,.current-rotation-banner{align-items:flex-start;flex-direction:column}.content-head>select{width:100%}}@media(max-width:980px){.historical-layout,.history-filter-grid{grid-template-columns:1fr}.attendance-date-list{max-height:300px}}@media(max-width:640px){.bulk-attendance-actions,.historical-actions,.selected-attendance-actions{align-items:stretch;flex-direction:column}.bulk-attendance-actions .small-btn,.historical-actions .btn,.selected-attendance-actions .small-btn{width:100%}.selected-attendance-actions>strong{margin:0 0 3px}.attendance-calendar{order:-1}}@media print{body{background:white}.no-print,.sidebar,.toast,.topbar{display:none!important}.app-shell{display:block}.workspace{padding:0}.print-sheet{min-height:0;padding:0;border:0;box-shadow:none}.print-sheet table{font-size:9px}.print-sheet td,.print-sheet th{height:31px}@page{size:A4 landscape;margin:12mm}}