:root{--sava-navy:#09233e;--sava-blue:#075985;--sava-red:#e60038;--sava-gold:#e9a51a;--sava-bg:#f5f7fa;--sava-border:#dde5ec;--sava-text:#172033;--sava-muted:#667085;--sava-white:#fff;--sava-radius:18px;--sava-shadow:0 18px 48px rgba(9,35,62,.11)}
.sava-login-shell,.sava-public-card,.sava-portal{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--sava-text)}
.sava-login-shell{max-width:1040px;margin:64px auto;padding:0 22px;display:grid;grid-template-columns:1.1fr .9fr;gap:30px}.sava-login-intro{grid-column:1}.sava-login-intro h1,.sava-public-card h1,.sava-page-head h1{color:var(--sava-navy);font-size:clamp(34px,5vw,54px);line-height:1.05;margin:10px 0 15px}.sava-kicker{color:var(--sava-red);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.14em}.sava-login-types{grid-column:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-self:start}.sava-login-type{border:1px solid var(--sava-border);border-radius:16px;padding:22px 14px;background:#fff;text-align:center;text-decoration:none!important;color:var(--sava-navy)!important;box-shadow:0 7px 25px rgba(9,35,62,.05)}.sava-login-type span{display:block;font-size:28px;margin-bottom:8px}.sava-login-type.is-active{border-color:var(--sava-blue);background:#eef7fb;box-shadow:0 0 0 3px rgba(7,89,133,.1)}.sava-login-form{grid-column:2;grid-row:1/3;background:#fff;border:1px solid var(--sava-border);border-radius:24px;padding:34px;box-shadow:var(--sava-shadow)}.sava-login-form h2{color:var(--sava-navy);margin-top:0}.sava-login-form label,.sava-form-grid label{display:grid;gap:7px;font-weight:750;margin:15px 0}.sava-login-form input,.sava-form-grid input,.sava-form-grid select,.sava-form-grid textarea,.sava-inline-form input,.sava-inline-form select{width:100%;min-height:46px;border:1px solid #c8d3dc;border-radius:10px;padding:10px 12px;background:#fff}.sava-form-grid textarea{min-height:100px}.sava-login-form .sava-check{display:flex;align-items:center;gap:8px;font-weight:500}.sava-check input{width:auto;min-height:auto}.sava-btn,.sava-inline-form button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--sava-red);color:#fff!important;min-height:46px;padding:11px 22px;font-weight:800;text-decoration:none!important;cursor:pointer}.sava-btn:hover{filter:brightness(.93)}
.sava-portal{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:760px;background:var(--sava-bg);border-radius:24px;overflow:hidden;box-shadow:var(--sava-shadow);margin:30px auto;max-width:1500px}.sava-sidebar{background:var(--sava-navy);color:#dce8f1;padding:28px 20px;display:flex;flex-direction:column}.sava-sidebar__brand{font-size:25px;font-weight:900;color:#fff;margin-bottom:28px}.sava-sidebar__brand small{display:block;font-size:11px;color:#9fbbce;letter-spacing:.12em;text-transform:uppercase}.sava-user-chip{padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:14px;margin-bottom:22px}.sava-user-chip strong,.sava-user-chip span{display:block}.sava-user-chip span{font-size:12px;color:#9fbbce;margin-top:4px}.sava-sidebar nav{display:grid;gap:5px}.sava-sidebar nav a{color:#dce8f1;text-decoration:none;padding:11px 13px;border-radius:10px;font-weight:650}.sava-sidebar nav a:hover,.sava-sidebar nav a.is-active{background:rgba(255,255,255,.12);color:#fff}.sava-logout{color:#ffb8c8!important;text-decoration:none;margin-top:auto;padding:12px}.sava-portal-main{padding:clamp(24px,4vw,48px);min-width:0}.sava-page-head{margin-bottom:26px}.sava-page-head h1{font-size:clamp(30px,4vw,45px)}.sava-page-head p{color:var(--sava-muted);max-width:760px}.sava-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.sava-metric,.sava-panel,.sava-profile-card{background:#fff;border:1px solid var(--sava-border);border-radius:var(--sava-radius);padding:24px;box-shadow:0 8px 26px rgba(9,35,62,.05)}.sava-metric strong{display:block;color:var(--sava-blue);font-size:30px}.sava-metric span{color:var(--sava-muted);font-size:14px}.sava-panel{margin:20px 0}.sava-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}.sava-span-2{grid-column:1/-1}.sava-table-wrap{overflow:auto;background:#fff;border:1px solid var(--sava-border);border-radius:16px;margin:18px 0}.sava-table{width:100%;border-collapse:collapse;min-width:700px}.sava-table th{background:#eef3f7;color:var(--sava-navy);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.sava-table th,.sava-table td{padding:13px;text-align:left;border-bottom:1px solid #e8edf1}.sava-inline-form{display:grid;grid-template-columns:1.1fr repeat(4,minmax(120px,1fr)) auto auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--sava-border);border-radius:13px;padding:10px;margin:8px 0}.sava-inline-form a{padding:8px;color:var(--sava-blue)}.sava-alert{padding:14px 16px;border-radius:12px;margin:14px 0}.sava-alert--error{background:#fff0f2;color:#9d1530}.sava-alert--info{background:#eef7fb;color:#075985}.sava-alert--success{background:#ecfdf3;color:#087443}.sava-public-card{max-width:760px;margin:65px auto;padding:38px;background:#fff;border:1px solid var(--sava-border);border-radius:24px;box-shadow:var(--sava-shadow)}
.sava-receipt{max-width:850px;margin:20px auto;background:#fff;border:2px solid var(--sava-navy);padding:36px;color:#111}.sava-receipt header{display:flex;align-items:center;gap:20px;border-bottom:2px solid var(--sava-navy);padding-bottom:18px}.sava-receipt header img{width:88px;height:88px;object-fit:contain}.sava-receipt header h1{font-size:25px;margin:0;color:var(--sava-navy)}.sava-receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid #cfd8df;margin-top:24px}.sava-receipt-grid p{display:grid;gap:5px;margin:0;padding:14px;border-bottom:1px solid #cfd8df}.sava-receipt-grid p:nth-child(odd){border-right:1px solid #cfd8df}.sava-receipt-grid span{font-size:11px;text-transform:uppercase;color:#667085;letter-spacing:.06em}.sava-receipt footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:30px}.sava-receipt footer p{border-top:1px solid #111;padding-top:8px}.sava-table-action{display:inline-block;color:var(--sava-blue)!important;font-weight:800;text-decoration:none!important;white-space:nowrap}.sava-table-action--danger{color:#c62828!important}.sava-certificate-actions{display:flex;justify-content:center;align-items:center;gap:18px;margin:24px auto}.sava-certificate-actions>a:not(.sava-btn){color:var(--sava-blue);font-weight:750}
.sava-subject-entry-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 20px}.sava-subject-entry-list label{display:grid;grid-template-columns:minmax(0,1fr) auto 130px;align-items:center;gap:10px;padding:12px;background:#f7f9fb;border:1px solid var(--sava-border);border-radius:12px;font-weight:750}.sava-subject-entry-list small{color:var(--sava-muted)}.sava-subject-entry-list input[type=number]{width:130px;min-height:42px;border:1px solid #c8d3dc;border-radius:9px;padding:8px}.sava-calculation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.sava-calculation-grid>div{background:var(--sava-navy);color:#fff;border-radius:13px;padding:15px}.sava-calculation-grid span,.sava-calculation-grid strong{display:block}.sava-calculation-grid span{font-size:11px;text-transform:uppercase;color:#a9c2d6}.sava-calculation-grid strong{font-size:23px;margin-top:4px}.sava-student-photo-preview{display:flex;align-items:center;gap:10px;min-height:80px}.sava-student-photo-preview img{width:70px;height:80px;object-fit:cover;border-radius:8px;border:2px solid var(--sava-border)}
.sava-floating-cta{position:fixed;right:18px;bottom:18px;z-index:9998;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sava-floating-cta a{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:11px 18px;background:var(--sava-red);color:#fff!important;text-decoration:none!important;font-weight:850;box-shadow:0 12px 30px rgba(9,35,62,.22)}.sava-floating-cta a:first-child{background:var(--sava-navy)}.sava-receipt-note{background:#fff8e6;border:1px solid #f1d08a;border-radius:12px;padding:12px 14px;color:#5b4300}.sava-donation-receipt header small{display:block;margin-top:6px;color:#334155;font-weight:750}.sava-donation-receipt header p{margin:5px 0;color:var(--sava-red);font-size:20px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:900px){.sava-login-shell{grid-template-columns:1fr}.sava-login-form{grid-column:1;grid-row:auto}.sava-portal{grid-template-columns:1fr;margin:15px}.sava-sidebar{position:relative}.sava-sidebar nav{grid-template-columns:repeat(3,minmax(130px,1fr));overflow:auto}.sava-logout{margin-top:20px}.sava-metric-grid{grid-template-columns:repeat(2,1fr)}.sava-inline-form{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.sava-login-types{grid-template-columns:1fr}.sava-login-shell{margin-block:35px}.sava-login-form,.sava-public-card{padding:24px}.sava-form-grid,.sava-metric-grid,.sava-receipt-grid{grid-template-columns:1fr}.sava-receipt-grid p:nth-child(odd){border-right:0}.sava-portal-main{padding:22px}.sava-sidebar nav{grid-template-columns:repeat(2,minmax(120px,1fr))}.sava-inline-form{grid-template-columns:1fr}.sava-receipt{padding:20px}.sava-receipt header{align-items:flex-start}.sava-receipt header h1{font-size:18px}}
@media(max-width:760px){.sava-subject-entry-list,.sava-calculation-grid{grid-template-columns:1fr}.sava-subject-entry-list label{grid-template-columns:1fr}.sava-subject-entry-list input[type=number]{width:100%}}
@media print{body *{visibility:hidden}.sava-receipt,.sava-receipt *,.certificate-container,.certificate-container *,.sava-png-certificate,.sava-png-certificate *{visibility:visible}.sava-receipt,.certificate-container,.sava-png-certificate{position:absolute;inset:0;width:100%;max-width:none}.sava-receipt{border:1px solid #000}.sava-receipt .sava-btn,.sava-certificate-actions,.sava-floating-cta{display:none!important}}
