:root{--purple:#532082;--yellow:#ffcf45}
body.parent-login-page,body.parent-portal-page{--bg:#f8f5fb;--panel:#fff;--card:#fff;--tx:#211529;--tx2:#746b7b;--bd:#eadff0;--in:#fbf9fc;--blue:#632792;--green:#632792;--red:#e64050;--am:#f1ad19;--purple:#532082;--yellow:#ffcf45}
*{box-sizing:border-box}body.parent-login-page,body.parent-portal-page{font-family:'DM Sans','Noto Sans Sinhala',sans-serif;color:var(--tx);background:radial-gradient(circle at 8% 4%,rgba(120,54,166,.12),transparent 26%),linear-gradient(135deg,#fbf8fd 0%,#f8f5fb 55%,#fff9eb 100%)}
body.parent-login-page{padding:32px;position:relative;overflow-x:hidden}body.parent-login-page:before{content:'한';position:fixed;right:-40px;bottom:-130px;font-family:'Noto Sans KR',sans-serif;font-size:min(38vw,520px);font-weight:900;line-height:1;color:rgba(83,32,130,.045);pointer-events:none}
.parent-login-page .box{max-width:470px;padding:42px 38px;border:1px solid rgba(83,32,130,.13);border-radius:30px;background:rgba(255,255,255,.92);box-shadow:0 30px 90px rgba(63,24,89,.16);backdrop-filter:blur(16px);position:relative}.parent-login-page .box:before{content:'';position:absolute;left:38px;right:38px;top:0;height:4px;border-radius:0 0 8px 8px;background:linear-gradient(90deg,var(--purple) 0 55%,var(--red) 55% 78%,var(--yellow) 78%)}
.parent-login-page .logo{margin-bottom:28px}.parent-login-page .logo .ic{width:76px;height:76px;border-radius:22px;background:var(--purple);box-shadow:0 14px 32px rgba(83,32,130,.24);color:#fff}.parent-login-page .logo .ic img{padding:4px;background:var(--purple)}.parent-login-page .logo h1{font-family:'Noto Sans KR',sans-serif;font-size:24px;color:var(--purple);margin-top:15px}.parent-login-page .logo p{font-size:13px;color:var(--tx2);margin-top:7px}
.parent-login-page label{color:var(--tx);font-size:12px}.parent-login-page input,.parent-portal-page input{background:var(--in);border:1px solid var(--bd);color:var(--tx);transition:.2s}.parent-login-page input{padding:15px 16px;border-radius:14px}.parent-login-page input:focus,.parent-portal-page input:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(83,32,130,.09)}.parent-login-page .btn{min-height:52px;border-radius:14px;background:var(--purple);color:#fff;box-shadow:0 12px 28px rgba(83,32,130,.2);transition:.2s}.parent-login-page .btn:hover{transform:translateY(-2px)}.parent-login-page .btn.alt{background:#fff;color:var(--purple);border-color:var(--bd);box-shadow:none}.parent-login-page .muted,.parent-login-page .sep{color:var(--tx2)}.parent-login-page .foot{border-top:1px solid var(--bd);padding-top:20px}.parent-login-page .foot a{color:var(--purple)}.parent-login-page .alert.err{background:#fff2f3;color:#b52636;border-color:#f4c7cc}
body.parent-portal-page{padding:0 0 60px}.parent-portal-page .top{padding:15px max(20px,calc((100vw - 1120px)/2));background:rgba(255,255,255,.9);border-color:var(--bd);backdrop-filter:blur(18px);box-shadow:0 6px 30px rgba(53,21,75,.06)}.parent-portal-page .top .av{width:48px;height:48px;border-radius:15px;background:var(--purple);color:#fff}.parent-portal-page .top h1{color:var(--tx);font-size:16px}.parent-portal-page .top p{color:var(--tx2)}.parent-portal-page .top a.lo{color:var(--red);background:#fff4f5;border-color:#f4ccd0;border-radius:999px;padding:10px 16px}.parent-portal-page .wrap{max-width:1120px;padding-top:34px}.parent-portal-page .portal-intro{background:linear-gradient(125deg,#421467,#6f2c9f);border-radius:26px;padding:32px 34px;margin-bottom:22px;color:#fff;position:relative;overflow:hidden}.parent-portal-page .portal-intro:after{content:'가족';position:absolute;right:28px;top:-22px;font-family:'Noto Sans KR';font-size:100px;font-weight:900;color:rgba(255,255,255,.07)}.parent-portal-page .portal-intro small{color:var(--yellow);font-weight:800;letter-spacing:1.4px}.parent-portal-page .portal-intro h2{font-size:clamp(24px,4vw,38px);margin-top:8px}.parent-portal-page .portal-intro p{font-size:13px;color:#ddd1e5;margin-top:8px}
.parent-portal-page .pwbox,.parent-portal-page .child{background:rgba(255,255,255,.94);border-color:var(--bd);box-shadow:0 18px 55px rgba(63,24,89,.08)}.parent-portal-page .pwbox{border-radius:20px;padding:22px}.parent-portal-page .pwbox h3{color:var(--purple)}.parent-portal-page .pwbox p{color:var(--tx2)}.parent-portal-page .pwbox input{border-radius:12px;padding:12px 14px}.parent-portal-page .pwbox button{background:var(--purple);color:#fff;border-radius:12px}.parent-portal-page .child{border-radius:24px;margin-bottom:26px}.parent-portal-page .chead{padding:22px 24px;background:linear-gradient(120deg,#f5edf9,#fff9e8);border-color:var(--bd)}.parent-portal-page .chead .cav{background:var(--purple);color:#fff;border-radius:16px}.parent-portal-page .chead .cn b{color:var(--tx)}.parent-portal-page .chead .cn span{color:var(--tx2)}.parent-portal-page .sid{background:#fff;border-color:var(--bd);color:var(--tx2)}.parent-portal-page .sid b{color:var(--purple)}.parent-portal-page .grid{gap:18px;padding:20px 22px 24px}.parent-portal-page .sec{background:#fff;border-color:var(--bd);border-radius:17px;padding:18px;box-shadow:0 8px 25px rgba(55,24,74,.04)}.parent-portal-page .sec h4{color:#584f5f}.parent-portal-page .stat .b{background:var(--in);border-color:var(--bd)}.parent-portal-page .stat .b .n{color:var(--purple)}.parent-portal-page .stat .b .l,.parent-portal-page .muted{color:var(--tx2)}.parent-portal-page th,.parent-portal-page td{border-color:#eee6f2}.parent-portal-page th{color:var(--tx2)}.parent-portal-page .pill.g{background:#e8f8ef;color:#147642}.parent-portal-page .pill.r{background:#fff0f1;color:#b82737}.parent-portal-page .pill.a{background:#fff7df;color:#976500}.parent-portal-page .hidden-note{background:#fff;border-color:#d9c9e1;color:var(--tx2)}.parent-portal-page .al.ok{background:#e9f8ef;color:#176e40;border-color:#bfe6ce}.parent-portal-page .al.err{background:#fff0f1;color:#b82737;border-color:#f1c5ca}
@media(max-width:680px){body.parent-login-page{padding:18px}.parent-login-page .box{padding:34px 22px;border-radius:24px}.parent-login-page .box:before{left:22px;right:22px}.parent-portal-page .top{padding:12px 14px}.parent-portal-page .top .av{width:42px;height:42px}.parent-portal-page .top a.lo{width:42px;height:42px;padding:0;display:grid;place-items:center}.parent-portal-page .top a.lo span{display:none}.parent-portal-page .wrap{padding:20px 12px 0}.parent-portal-page .portal-intro{padding:25px 22px;border-radius:20px}.parent-portal-page .portal-intro:after{font-size:70px;right:8px}.parent-portal-page .grid{padding:14px}.parent-portal-page .chead{padding:17px}.parent-portal-page table{display:block;overflow-x:auto;white-space:nowrap}}
