@import "https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;600;700&display=swap";
:root{color:#111;background:#fff;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:#fff}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.page{place-items:center;min-height:100vh;padding:24px;display:grid}.home-page{background:#f6f7f9;align-items:center;min-height:100vh;padding:32px 24px;display:flex;position:relative}.home-grid{grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:center;gap:42px;width:min(1100px,100%);margin:0 auto;display:grid}.admin-top-link{z-index:1;position:absolute;top:24px;right:24px}.teacher-login-box{background:#fff;border:1px solid #dedede;border-radius:8px;width:100%;padding:24px}.teacher-login-box h1,.lc-header h1{color:#111;margin:0;font-size:32px;line-height:1.15}.helper-text{color:#5a6472;margin:10px 0 0;font-size:14px;line-height:1.45}.full-width-button{width:100%;margin-top:20px}.home-image-frame{justify-content:center;display:flex}.school-image{object-fit:contain;width:min(560px,100%);height:auto}.primary-button,.secondary-button,.danger-button{white-space:nowrap;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;min-height:42px;padding:0 14px;font-size:14px;line-height:1;text-decoration:none;display:inline-flex}.icon-button{gap:8px}.icon-button svg{flex:none;width:17px;height:17px}.primary-button{color:#fff;background:#111}.secondary-button{color:#111;background:#fff;border-color:#c9c9c9}.danger-button{color:#a40000;background:#fff;border-color:#d7b5b5}.admin-page{background:#f6f7f9;min-height:100vh;padding:32px 20px}.admin-shell{gap:20px;width:min(1100px,100%);margin:0 auto;display:grid}.admin-header,.section-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-header h1,.admin-section h2{color:#111;margin:0}.admin-header h1{font-size:32px;line-height:1.15}.admin-section h2{font-size:20px;line-height:1.2}.eyebrow{color:#5a6472;letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:13px;font-weight:700}.admin-section{background:#fff;border:1px solid #dedede;border-radius:8px;padding:20px}.form-grid,.teacher-form{gap:14px;margin-top:16px;display:grid}.teacher-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}.field{gap:7px;display:grid}.field span{color:#333;font-size:14px;font-weight:700}.field input{color:#111;background:#fff;border:1px solid #c9c9c9;border-radius:6px;width:100%;min-height:42px;padding:0 11px}.field input:disabled,.lc-form-row input:disabled,.lc-date-inputs input:disabled{color:#6b7280;background:#f5f6f7}.error-message,.empty-message{margin:0}.error-message{color:#a40000;background:#fff8f8;border:1px solid #d7b5b5;border-radius:8px;padding:12px 14px}.empty-message{color:#5a6472;padding-top:16px}.table-wrap{width:100%;margin-top:16px;overflow-x:auto}.table-search{gap:7px;width:min(420px,100%);margin-top:16px;display:grid}.table-search span{color:#333;font-size:14px;font-weight:700}.table-search input{color:#111;background:#fff;border:1px solid #c9c9c9;border-radius:6px;width:100%;min-height:42px;padding:0 11px}table{border-collapse:collapse;width:100%;min-width:780px}.student-list-table{min-width:560px}.student-list-table .select-cell{text-align:center;width:42px;padding-right:0}.student-list-table .serial-cell{width:74px}.student-list-table input[type=checkbox]{accent-color:#111;width:16px;height:16px;margin:0}.student-list-table th:last-child,.student-list-table td:last-child{width:380px}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #e4e4e4;padding:12px 10px}th{color:#333;text-transform:uppercase;font-size:13px}td{color:#111}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.modal-backdrop{z-index:20;background:#11111161;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.range-modal{background:#fff;border:1px solid #dedede;border-radius:8px;gap:18px;width:min(460px,100%);padding:22px;display:grid;box-shadow:0 20px 70px #1111113d}.range-modal h2{color:#111;margin:0;font-size:20px;line-height:1.2}.range-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.lc-page{background:#f6f7f9;min-height:100vh;padding:32px 20px}.lc-shell{gap:20px;width:min(1100px,100%);margin:0 auto;display:grid}.lc-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.title-row{align-items:center;gap:12px;display:flex}.title-icon,.teacher-chip{justify-content:center;align-items:center;display:inline-flex}.title-icon{color:#111;background:#fff;border:1px solid #dedede;border-radius:8px;width:40px;height:40px}.teacher-chip{color:#333;background:#fff;border:1px solid #dedede;border-radius:8px;gap:8px;min-height:42px;padding:0 12px;font-size:14px;font-weight:700}.teacher-chip svg{color:#5a6472;width:17px;height:17px}.lc-header-actions{align-items:center;gap:14px;display:flex}.lc-header-actions .helper-text{margin:0}.lc-form{gap:24px;margin-top:20px;display:grid}.lc-form-section{gap:10px;display:grid}.lc-form-section h3{color:#111;margin:0;font-size:16px;line-height:1.3}.lc-form-rows{border-top:1px solid #e9e9e9;gap:0;display:grid}.lc-form-row,.lc-date-row{border-bottom:1px solid #e9e9e9;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:18px;min-height:58px;padding:8px 0;display:grid}.lc-row-label{color:#333;font-size:14px;font-weight:700}.lc-form-row input,.lc-date-inputs input{color:#111;background:#fff;border:1px solid #c9c9c9;border-radius:6px;width:100%;min-height:42px;padding:0 11px}.lc-form-row input::placeholder,.lc-date-inputs input::placeholder{color:#8b929c}.lc-date-inputs{grid-template-columns:repeat(3,minmax(0,110px));gap:10px;display:grid}.lc-form-actions{flex-wrap:wrap;justify-content:flex-start;gap:10px;display:flex}.loading-stack,.form-skeleton{gap:12px;margin-top:16px;display:grid}.loading-row{border-bottom:1px solid #e9e9e9;grid-template-columns:minmax(0,1fr) 120px 110px;align-items:center;gap:16px;min-height:46px;display:grid}.loading-bar{background:#eef0f3;border-radius:999px;height:12px;display:block;position:relative;overflow:hidden}.loading-bar:after{content:"";background:linear-gradient(90deg,#0000,#ffffffbf,#0000);animation:1.2s infinite loading-sweep;position:absolute;inset:0;transform:translate(-100%)}.loading-bar.wide{width:min(100%,420px)}.loading-bar.medium{width:min(100%,280px)}.loading-bar.small{width:72px}.loading-bar.action{border-radius:6px;width:96px;height:34px}.form-skeleton{padding:8px 0}.linear-progress{background:#eef0f3;border-radius:999px;height:3px;margin-top:16px;overflow:hidden}.linear-progress:after{content:"";border-radius:inherit;background:#111;width:42%;height:100%;animation:1s ease-in-out infinite progress-slide;display:block}.button-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.dark-spinner{border-color:#111 #11111140 #11111140}.floating-toast{z-index:20;color:#176b2c;background:#f5fff7;border:1px solid #b9d5bd;border-radius:8px;align-items:center;gap:10px;min-height:46px;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex;position:fixed;top:22px;right:22px;box-shadow:0 12px 30px #1111111f}.floating-toast svg{width:18px;height:18px}.download-page{background:#f6f7f9;min-height:100vh;padding:24px;font-family:Noto Serif,Georgia,serif}.print-toolbar{justify-content:space-between;gap:12px;width:min(210mm,100%);margin:0 auto 18px;display:flex}.print-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.print-error{width:min(210mm,100%);margin:0 auto 18px}.download-sheets{gap:18px;display:grid}.a4-sheet{color:#111;background:#fff;border:1px solid #dedede;width:210mm;min-height:297mm;margin:0 auto;padding:10mm;box-shadow:0 18px 48px #1111111f}.certificate-frame{border:1.6px solid #a63f3f;min-height:277mm;padding:5mm 9mm 7mm;position:relative;overflow:hidden}.certificate-header{z-index:1;padding-bottom:2mm;position:relative}.certificate-watermark{z-index:0;object-fit:contain;opacity:.045;width:112mm;height:112mm;position:absolute;top:82mm;left:50%;transform:translate(-50%)}.certificate-letterhead{text-align:center;grid-template-columns:38mm minmax(0,1fr);align-items:stretch;margin:0 -9mm;display:grid}.certificate-logo{object-fit:contain;place-self:center;width:140.945px;height:32mm;padding-left:20px}.certificate-school-copy{align-content:center;justify-items:center;min-height:32mm;padding:0 5mm 1mm;display:grid}.certificate-kicker{color:#a63f3f;letter-spacing:0;text-transform:uppercase;margin:0 0 1.5mm;font-size:15.84px;font-weight:700}.certificate-header h1{color:#111;margin:0;font-size:33.4px;line-height:1.15}.certificate-school-copy p{color:#333;text-align:center;white-space:nowrap;margin:1mm 0 0;font-size:13.2px;font-weight:700}.certificate-school-copy .certificate-affiliation-line{font-size:11.88px}.certificate-title-block{text-align:center;border-top:2px solid #111;justify-items:center;margin:0 -9mm;display:grid;position:relative}.certificate-info-strip{border-top:1.4px solid #111;grid-template-columns:1fr 1fr 1fr;gap:4mm;margin:2.5mm -9mm 0;padding:.9mm 9mm;display:grid}.certificate-info-strip span{color:#111;font-size:13.2px;font-weight:700}.certificate-info-strip span:nth-child(2){text-align:center}.certificate-info-strip span:last-child{text-align:right}.certificate-title-block span{color:#a63f3f;text-transform:uppercase;border-bottom:2px solid #111;border-left:2px solid #111;border-right:2px solid #111;border-bottom-right-radius:5mm;border-bottom-left-radius:5mm;padding:2mm 14mm;font-size:23.76px;font-weight:700;line-height:1}.certificate-title-block strong{color:#fff;text-transform:uppercase;background:#111;padding:1.2mm 9mm;font-size:15.84px;line-height:1}.certificate-rows{z-index:1;gap:0;margin-top:5mm;display:grid;position:relative}.certificate-row{grid-template-columns:8mm 68mm 4mm minmax(0,1fr);align-items:start;gap:2mm;min-height:7.3mm;padding:1.2mm 0;display:grid}.certificate-row-number,.certificate-row-label{color:#5a6472;font-size:12px;font-weight:700}.certificate-row-label small{font-size:10px;font-weight:400}.certificate-row-separator{color:#111;font-size:12px;font-weight:700}.certificate-row strong{color:#111;overflow-wrap:anywhere;font-size:12.5px;font-weight:700;line-height:1.35}.certificate-row strong small{font-size:11px;font-weight:400}.certificate-row strong sup{font-size:8px;line-height:0}.certificate-row .compact-certificate-value{font-size:11px;line-height:1.15}.certificate-note{z-index:1;color:#111;text-align:center;margin:4mm 0 0;font-size:11.5px;font-weight:700;position:relative}.certificate-footer{z-index:1;grid-template-columns:42mm minmax(0,45mm);justify-content:space-between;gap:8mm;display:grid;position:absolute;bottom:7mm;left:9mm;right:9mm}.certificate-date-block{align-content:end;gap:2mm;display:grid}.certificate-date-block p{grid-template-columns:auto auto minmax(0,1fr);gap:1.5mm;margin:0;display:grid}.certificate-date-block span,.certificate-date-block strong{font-size:11px}.certificate-date-block span{color:#5a6472;font-weight:700}.certificate-signatures{grid-template-columns:1fr;align-items:end;gap:5mm;display:grid}.certificate-signatures div{text-align:center;gap:2mm;display:grid}.certificate-signatures span{border-bottom:1px solid #111;height:11mm;display:block}.certificate-signatures strong{color:#111;font-size:10.5px;line-height:1.2}.a4-skeleton{align-content:start;gap:16px;display:grid}@keyframes loading-sweep{to{transform:translate(100%)}}@keyframes progress-slide{0%{transform:translate(-110%)}to{transform:translate(240%)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:800px){.home-page{align-items:flex-start;padding-top:88px}.home-grid{grid-template-columns:1fr}.admin-top-link{top:20px;right:20px}.admin-header,.section-header,.lc-header{flex-direction:column;align-items:flex-start}.section-actions,.modal-actions{justify-content:flex-start}.range-fields{grid-template-columns:1fr}.lc-header-actions{flex-direction:column;align-items:flex-start}.title-row{align-items:flex-start}.teacher-form,.lc-form{grid-template-columns:1fr}.lc-form-row,.lc-date-row{grid-template-columns:1fr;gap:8px}.lc-date-inputs{grid-template-columns:repeat(3,minmax(0,1fr))}.loading-row{grid-template-columns:1fr;gap:10px;padding-bottom:12px}.floating-toast{justify-content:center;left:16px;right:16px}.print-toolbar{flex-direction:column}.print-actions{justify-content:flex-start}.a4-sheet{width:100%;min-height:auto;padding:12px}.certificate-frame{min-height:auto;padding:16px}.certificate-letterhead,.certificate-title-row,.certificate-row,.certificate-footer,.certificate-signatures{grid-template-columns:1fr}.certificate-logo-space{display:none}.certificate-logo{justify-self:center}.certificate-row{gap:4px}}@page{size:A4;margin:0}@media print{html,body{background:#fff;width:210mm;min-height:297mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-toolbar,.print-error,.loading-stack,.form-skeleton,.linear-progress,.floating-toast{display:none}.download-page{background:#fff;min-height:297mm;padding:0}.download-sheets{display:block}.a4-sheet{width:210mm;min-height:297mm;box-shadow:none;page-break-after:always;break-after:page;border:0;margin:0;padding:10mm}.a4-sheet:last-child{page-break-after:auto;break-after:auto}.certificate-frame{min-height:277mm}}
