*{box-sizing:border-box}html{min-height:100%;font-size:16px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100%;margin:0;font-family:"Inter",system-ui,sans-serif;font-size:16px;font-weight:400;line-height:1.5;background:#eef7ff;color:#1f2937}a{color:inherit}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.15}button,input,select,textarea,table{font:inherit}strong,th{font-weight:700}.app-shell{min-height:100vh;padding:16px;display:flex;align-items:center;justify-content:center}@media (min-width:640px){.app-shell{padding:24px}}.hero-card,.home-simple-card{width:100%;max-width:560px;background:#ffffff;border:1px solid #e2e8f0;border-radius:18px;padding:32px 22px;text-align:center;box-shadow:0 14px 32px rgba(37,99,235,0.12)}.hero-card h1,.home-simple-card h1{margin:0 0 18px;color:#0f172a;font-size:34px;line-height:1.1}.hero-card p,.home-simple-card p{margin:0 0 24px;color:#475569;font-size:18px;line-height:1.45}.primary-button{display:inline-flex;justify-content:center;align-items:center;width:100%;min-height:62px;padding:0 24px;border:none;border-radius:20px;background:#2563eb;color:#ffffff;text-decoration:none;font-size:20px;font-weight:bold;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,0.24)}.primary-button:focus,.auth-form input:focus,.app-profile-button:focus-visible,.app-profile-dropdown a:focus-visible,.logout-link:focus-visible{outline:3px solid #facc15;outline-offset:3px}.secondary-link{border:0;background:transparent;color:#2563eb;font:inherit;font-weight:bold;text-decoration:none;cursor:pointer}.logout-form{margin:0}.logout-link{border:0;background:transparent;color:inherit;font:inherit;font-weight:bold;text-align:left;cursor:pointer}.alert,.form-error,.form-success{margin:0 0 16px;padding:12px 14px;border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:700;line-height:1.45}.alert-success,.form-success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.alert-error,.form-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.alert-warning{border-color:#fde68a;background:#fffbeb;color:#92400e}.alert div + div{margin-top:4px}.pagination{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-top:18px}.pagination-pages{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.pagination-link{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 12px;border:1px solid #d1d5db;border-radius:10px;background:#ffffff;color:#374151;font-weight:800;text-decoration:none}.pagination-link-current{border-color:#2563eb;background:#2563eb;color:#ffffff}.pagination-link-disabled{color:#9ca3af;cursor:not-allowed}@media (min-width:640px){.hero-card,.home-simple-card{padding:44px}}.public-homepage{min-height:100vh;overflow-x:hidden;color:#162033;background:linear-gradient(135deg,rgba(219,234,254,0.95),rgba(255,255,255,0) 36%),linear-gradient(315deg,rgba(224,242,254,0.9),rgba(255,255,255,0) 34%),#fbfdff}.public-homepage-header,.public-homepage-hero,.public-homepage-section{width:min(1280px,calc(100% - 56px));margin:0 auto}.public-homepage-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px;padding:8px 0}.public-homepage-brand{display:inline-flex;align-items:center;gap:14px;color:#172033;text-decoration:none}.public-homepage-brand img{display:block;width:62px;height:62px;object-fit:contain}.public-homepage-brand-text{display:grid;gap:2px}.public-homepage-brand-text strong{color:#111827;font-size:26px;line-height:1}.public-homepage-brand-text span{color:#5c6f89;font-size:15px;font-weight:700;line-height:1.25}.public-homepage-login,.public-homepage-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:999px;background:#2563eb;color:#ffffff;font-weight:800;text-decoration:none;box-shadow:0 14px 30px rgba(37,99,235,0.22);transition:background-color 0.16s ease,box-shadow 0.16s ease,transform 0.16s ease}.public-homepage-login{width:112px;min-height:48px;padding:0 24px}.public-homepage-primary{width:fit-content;min-height:56px;padding:0 34px;font-size:18px}.public-homepage-login:hover,.public-homepage-primary:hover{background:#1d4ed8;box-shadow:0 16px 34px rgba(37,99,235,0.28)}.public-homepage-login:active,.public-homepage-primary:active{transform:translateY(1px)}.public-homepage a:focus-visible{outline:3px solid #93c5fd;outline-offset:4px}.public-homepage-hero{display:grid;grid-template-columns:minmax(0,0.45fr) minmax(0,0.55fr);align-items:center;gap:72px;min-height:540px;padding:24px 0 40px}.public-homepage-hero-copy{display:grid;gap:26px}.public-homepage h1{max-width:700px;margin:0;color:#111827;font-size:clamp(3.625rem,3.2rem + 1.25vw,4rem);line-height:1.06;letter-spacing:0}.public-homepage h1 span{color:#2563eb}.public-homepage-hero-copy p{max-width:520px;margin:0;color:#4b5f7a;font-size:clamp(1.1875rem,1.1rem + 0.25vw,1.3125rem);line-height:1.55}.public-homepage-hero-media{display:grid;place-items:center;width:100%;min-height:500px;border:1px solid rgba(219,231,246,0.72);border-radius:30px;background:rgba(255,255,255,0.58);box-shadow:0 18px 42px rgba(37,99,235,0.08)}.public-homepage-hero-media{overflow:hidden}.public-homepage-hero-media img{display:block;width:100%;height:500px;object-fit:cover;object-position:center}.public-homepage-image-placeholder{color:#6b7d96}.public-homepage-image-placeholder span{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 20px;border:1px dashed #b8c9df;border-radius:999px;background:#f7fbff;font-size:14px;font-weight:700}.public-homepage-section{padding:62px 0 76px}.public-homepage-section-heading{display:grid;gap:12px;max-width:720px;margin:0 auto 34px;text-align:center}.public-homepage-section-heading h2{margin:0;color:#111827;font-size:clamp(1.875rem,1.55rem + 1vw,2.375rem);line-height:1.14}.public-homepage-section-heading p{margin:0;color:#5c6f89;font-size:18px;line-height:1.6}.public-homepage-subjects{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.public-homepage-subject-card,.public-homepage-features article{border:1px solid #dfeaf7;border-radius:22px;background:rgba(255,255,255,0.94)}.public-homepage-subject-card{display:grid;place-items:center;gap:18px;min-height:198px;padding:26px 16px;box-shadow:0 16px 34px rgba(37,99,235,0.08);text-align:center}.public-homepage-subject-card:nth-child(2n){background:#f8fbff}.public-homepage-subject-card:nth-child(3n){background:#f7fcff}.public-homepage-subject-card img{display:block;width:92px;height:92px;object-fit:contain}.public-homepage-subject-card h3,.public-homepage-features h3{margin:0;color:#162033;font-size:18px;line-height:1.25}.public-homepage-features-section{padding-top:62px;padding-bottom:36px}.public-homepage-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px}.public-homepage-features article{display:grid;justify-items:center;align-content:start;gap:14px;min-height:0;padding:8px 10px;border:0;background:transparent;box-shadow:none;text-align:center}.public-homepage-feature-placeholder{display:block;width:72px;height:72px;border:1px dashed #b8c9df;border-radius:22px;background:#f7fbff}.public-homepage-features p{margin:0;color:#5c6f89;font-size:16px;line-height:1.62}.public-homepage-footer{position:relative;width:100%;margin-top:34px;padding:72px 0 42px;overflow:hidden;background:linear-gradient(180deg,#eef7ff 0%,#ffffff 100%)}.public-homepage-footer::before{position:absolute;top:-64px;left:-8%;right:-8%;height:116px;border-radius:0 0 50% 50%;background:#fbfdff;content:""}.public-homepage-footer-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:28px;width:min(1280px,calc(100% - 56px));margin:0 auto}.public-homepage-footer-brand{display:flex;align-items:center;gap:14px}.public-homepage-footer-brand img{display:block;width:60px;height:60px;object-fit:contain}.public-homepage-footer p,.public-homepage-footer h2{margin:0}.public-homepage-footer-brand p,.public-homepage-footer h2{color:#1d2b42;font-size:17px;font-weight:800}.public-homepage-footer-meta{display:grid;gap:6px;color:#5c6f89;text-align:right}@media (prefers-reduced-motion:reduce){.public-homepage-login,.public-homepage-primary{transition:none}}@media (max-width:1199px){.public-homepage-hero{gap:44px;min-height:540px}.public-homepage-hero-media{min-height:360px}.public-homepage-subjects{grid-template-columns:repeat(3,minmax(0,1fr))}.public-homepage-features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:899px){.public-homepage-header,.public-homepage-hero,.public-homepage-section,.public-homepage-footer-inner{width:min(100% - 36px,760px)}.public-homepage-hero{grid-template-columns:1fr;gap:34px;min-height:0;padding:46px 0 68px}.public-homepage-hero-media{min-height:320px}}@media (max-width:699px){.public-homepage-header,.public-homepage-hero,.public-homepage-section,.public-homepage-footer-inner{width:calc(100% - 28px)}.public-homepage-header{padding-top:20px}.public-homepage-brand{gap:10px;font-size:14px}.public-homepage-brand img{width:52px;height:52px}.public-homepage-login{min-height:44px;padding:0 20px}.public-homepage h1{font-size:clamp(2.125rem,1.7rem + 4vw,2.625rem)}.public-homepage-primary{width:100%}.public-homepage-hero-media{min-height:260px}.public-homepage-subjects{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.public-homepage-subject-card{min-height:164px;padding:20px 12px}.public-homepage-subject-card img{width:74px;height:74px}.public-homepage-features{grid-template-columns:1fr}.public-homepage-footer{padding:58px 0 36px}.public-homepage-footer-inner{align-items:flex-start;flex-direction:column}.public-homepage-footer-meta{text-align:left}}@media (max-width:420px){.public-homepage-header,.public-homepage-hero,.public-homepage-section,.public-homepage-footer-inner{width:calc(100% - 24px)}.public-homepage-brand span{display:none}}.public-login-shell{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:28px 18px;background:linear-gradient(135deg,rgba(37,99,235,0.1),rgba(255,255,255,0) 34%),linear-gradient(315deg,rgba(14,165,233,0.12),rgba(255,255,255,0) 38%),#f8fbff}.public-login-card{width:min(100%,410px);padding:38px 30px 34px;border:1px solid #d8e5f6;border-radius:20px;background:rgba(255,255,255,0.98);box-shadow:0 18px 44px rgba(37,99,235,0.13);text-align:center}.public-login-logo{display:block;width:112px;height:112px;margin:0 auto 20px;object-fit:contain}.public-login-card h1{margin:0 0 9px;color:#0f172a;font-size:28px;line-height:1.18}.public-login-card p{margin:0 0 28px;color:#52637a;font-size:16px;line-height:1.5}.public-login-form{display:grid;gap:18px;margin-top:0;text-align:left}.public-login-form label{display:grid;gap:8px;color:#24324a;font-size:15px;font-weight:700}.public-login-form input[type="text"],.public-login-form input[type="password"]{width:100%;min-height:48px;padding:10px 14px;border:1px solid #cbd8ea;border-radius:12px;background:#ffffff;color:#132035;font-size:16px;line-height:1.3;box-shadow:inset 0 1px 2px rgba(15,23,42,0.04);transition:border-color 0.16s ease,box-shadow 0.16s ease}.public-login-form input[type="text"]:focus,.public-login-form input[type="password"]:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,0.14);outline:0}.public-login-form .primary-button{width:100%;min-height:48px;margin-top:4px;border-radius:12px;background:#2563eb;font-size:17px;font-weight:800;box-shadow:0 12px 24px rgba(37,99,235,0.22);transition:background-color 0.16s ease,box-shadow 0.16s ease,transform 0.16s ease}.public-login-form .primary-button:hover{background:#1d4ed8;box-shadow:0 14px 28px rgba(37,99,235,0.28)}.public-login-form .primary-button:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}.public-login-form .primary-button:active{transform:translateY(1px)}.public-homepage-feature-icon{display:flex;align-items:center;justify-content:center;width:96px;height:96px;margin:0 auto 18px}.public-homepage-feature-icon img{display:block;width:100%;height:100%;object-fit:contain}@media (min-width:640px){.public-login-shell{padding:48px 24px}.public-login-card{padding:42px 38px 38px}}@media (max-width:420px){.public-login-card{padding:32px 22px 30px}.public-login-logo{width:104px;height:104px}.public-login-card h1{font-size:26px}}@media (max-width:360px){.public-homepage-subjects{grid-template-columns:1fr}}