*{box-sizing:border-box;margin:0;padding:0}
body{background:#14161b;color:#ECE8E1;font-family:Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;letter-spacing:-.02em;padding:14px 14px 40px;max-width:520px;margin:0 auto;-webkit-tap-highlight-color:transparent}
a{color:inherit}
.brand{display:flex;align-items:center;gap:10px;margin:2px 0 12px}
.brand .logo{width:42px;height:42px;border-radius:11px;display:block;background:#fff}
.brand b{display:block;font-size:20px;font-weight:900}.brand small{display:block;font-size:12.5px;color:#9a958c}
.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 0 12px;position:sticky;top:0;z-index:5;background:#14161b;padding:4px 0}
.nav a{text-align:center;text-decoration:none;font-size:13px;font-weight:900;color:#BDB7AC;background:#1d2027;border:1px solid transparent;border-radius:12px;padding:10px 2px;white-space:nowrap}
.nav a.on{color:#ECE8E1;border-color:#B57BFF;background:rgba(181,123,255,.16)}
.card{background:#1d2027;border-radius:16px;padding:13px;margin:0 0 12px}
.lab{font-size:14px;font-weight:900;color:#C49BFF;margin:0 0 8px}
.note{font-size:12px;color:#9a958c;margin:8px 0 0;line-height:1.55}
.next{background:linear-gradient(135deg,rgba(242,182,48,.16),rgba(181,123,255,.14));text-align:center}
.next small{display:block;font-size:12.5px;color:#BDB7AC}
.next .ev{font-size:19px;font-weight:900;margin:4px 0 2px}
.next .cd{font-size:34px;font-weight:900;color:#FFC94D;font-variant-numeric:tabular-nums;letter-spacing:0}
.next .sub{font-size:13px;color:#BDB7AC;margin-top:2px}
.next .also{margin-top:10px;display:grid;gap:4px;text-align:left}
.next .also div{display:flex;justify-content:space-between;background:rgba(0,0,0,.2);border-radius:10px;padding:7px 10px;font-size:13px}
.next .also b{color:#FFE08A;font-variant-numeric:tabular-nums}
.week{list-style:none}
.week li{display:flex;align-items:center;gap:8px;padding:8px 2px;border-top:1px solid rgba(255,255,255,.07);font-size:13.5px}.week li:first-child{border-top:0}
.week li.today{background:rgba(226,184,96,.1);border-radius:10px;padding:8px 8px}
.week .d{flex:0 0 76px;white-space:nowrap;font-weight:900;color:#BDB7AC}.week li.today .d{color:#FFC94D}
.week .b{flex:1}.week .w{font-size:12.5px;font-weight:800;color:#8FB4FF;white-space:nowrap}
.sw{display:flex;align-items:center;gap:10px;padding:8px 2px;border-top:1px solid rgba(255,255,255,.07)}.sw:first-of-type{border-top:0}
.sw>span:first-child{flex:1;min-width:0}.sw b{display:block;font-size:14px}.sw small{display:block;font-size:11.5px;color:#9a958c}
.sw .tg{position:relative;display:block;width:46px;height:28px;flex:0 0 46px}.tg input{opacity:0;width:0;height:0}
.tg i{position:absolute;inset:0;background:#3a3d45;border-radius:99px;transition:.2s}.tg i::after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.tg input:checked+i{background:#2FB980}.tg input:checked+i::after{transform:translateX(18px)}
.btn{display:block;width:100%;text-align:center;text-decoration:none;font:inherit;font-size:15px;font-weight:900;color:#fff;background:#3E8BE8;border:0;border-radius:12px;padding:12px;margin-top:10px;cursor:pointer}
.btn.green{background:#2FB980}.btn.gray{background:#3a3d45;color:#BDB7AC}
.st{font-size:13.5px;font-weight:800;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.05)}
.st.ok{color:#46D39A;background:rgba(70,211,154,.12)}.st.warn{color:#FFB37A;background:rgba(255,179,122,.12)}
.cp,.dl,.posts{list-style:none}
.cp li{display:flex;align-items:center;gap:8px;padding:9px 2px;border-top:1px solid rgba(255,255,255,.07)}.cp li:first-child{border-top:0}
.cp code{font-family:inherit;font-size:16px;font-weight:900;color:#FFE08A;letter-spacing:.02em}
.cp span{flex:1;min-width:0}.cp small{display:block;font-size:12px;color:#9a958c}
.cp button{font:inherit;font-size:13px;font-weight:900;color:#fff;background:#2FB980;border:0;border-radius:9px;padding:7px 12px;cursor:pointer;white-space:nowrap}
.dday{font-style:normal;font-size:12px;font-weight:900;border-radius:7px;padding:2px 7px;background:rgba(127,127,127,.18);color:#BDB7AC;white-space:nowrap}
.dday.hot{background:rgba(255,107,107,.18);color:#ff8a8a}.dday.mid{background:rgba(242,182,48,.18);color:#FFC94D}
.dl li{display:flex;align-items:center;gap:8px;padding:8px 2px;border-top:1px solid rgba(255,255,255,.07);font-size:14px}.dl li:first-child{border-top:0}
.dl span{flex:1;min-width:0}.dl small{display:block;font-size:12px;color:#9a958c}
.posts li{border-top:1px solid rgba(255,255,255,.07)}.posts li:first-child{border-top:0}
.posts a{display:block;padding:9px 2px;text-decoration:none}.posts b{display:block;font-size:14px;font-weight:700;line-height:1.4}.posts small{font-size:12px;color:#9a958c}
.empty{color:#9a958c;font-size:13.5px;text-align:center;padding:10px 0}
.foot{font-size:11.5px;color:#7d786f;text-align:center;margin-top:18px;line-height:1.6}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2FB980;color:#fff;font-weight:900;font-size:14px;border-radius:12px;padding:10px 16px;z-index:50}
/* 앱 설치 권유 팝업 */
.isheet{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.6);display:flex;align-items:flex-end;justify-content:center}
.isheet[hidden]{display:none}
.ibox{background:#1d2027;width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:20px 18px 26px;text-align:center;animation:iup .25s ease-out}
@keyframes iup{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.ibox img{width:72px;height:72px;border-radius:18px;display:block;margin:0 auto 10px;box-shadow:0 4px 14px rgba(0,0,0,.4)}
.ibox>b{display:block;font-size:19px;font-weight:900}
.ibox>p{font-size:14px;color:#BDB7AC;margin:6px 0 4px;line-height:1.5}.ibox>p b{color:#ECE8E1}
.ihow{font-size:13.5px;line-height:1.7;background:rgba(255,255,255,.05);border-radius:12px;padding:10px 12px;margin-top:10px;text-align:left;color:#BDB7AC}.ihow b{color:#FFE08A}
/* 쿠폰 구성품 (아이콘 · 이름 · 개수) */
.cp li.cpi{display:block;padding:12px 2px}
.cph{display:flex;align-items:center;gap:8px}.cph code{flex:1;min-width:0}
.cpi>small{display:block;font-size:12px;color:#9a958c;margin:2px 0 6px}
.gift{list-style:none;background:rgba(0,0,0,.18);border-radius:10px;padding:4px 10px}
.gift li{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid rgba(255,255,255,.06);font-size:13.5px}.gift li:first-child{border-top:0}
.gift span{flex:1;min-width:0}.gift b{font-weight:900;color:#FFE08A;white-space:nowrap;font-variant-numeric:tabular-nums}
.gii{width:28px;height:28px;flex:0 0 28px;border-radius:6px;background-repeat:no-repeat;background-color:rgba(255,255,255,.06);object-fit:contain}
.gie{width:28px;height:28px;flex:0 0 28px;border-radius:6px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:16px}
.gift .gii,.gift .gie{flex:0 0 28px;width:28px}
/* 쿠폰 보상 접기 */
.gfold summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:#C49BFF;padding:6px 10px;background:rgba(181,123,255,.1);border-radius:10px}
.gfold summary::-webkit-details-marker{display:none}
.gfold summary::after{content:"펼치기 ▾";margin-left:auto;font-size:12px;color:#9a958c}
.gfold[open] summary::after{content:"접기 ▴"}
.gfold[open] summary{border-radius:10px 10px 0 0}
.gfold .gift{border-radius:0 0 10px 10px}
/* 5칸 메뉴 · 숙제 체크 */
.nav.n5{grid-template-columns:repeat(5,1fr)}.nav.n5 a{font-size:12.5px;padding:10px 0}
.tdh{display:flex;align-items:baseline;justify-content:space-between}.tdh .lab{margin:0}.tdh span{font-size:15px;font-weight:900;color:#FFC94D}
.bar{height:8px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin:8px 0 4px}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2FB980,#46D39A);border-radius:99px;transition:width .3s}
.tdg{font-size:12.5px;font-weight:900;color:#9a958c;margin:12px 0 4px}
.tdi{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:12px;background:rgba(255,255,255,.04);margin:0 0 6px;cursor:pointer}
.tdi input{position:absolute;opacity:0;width:0;height:0}
.tde{font-size:20px;width:28px;text-align:center;flex:0 0 28px}
.tdt{flex:1;min-width:0}.tdt b{display:block;font-size:14.5px}.tdt small{display:block;font-size:12px;color:#9a958c;line-height:1.4}.tdt .tdw{color:#7d8fb0}
.tdc{flex:0 0 26px;width:26px;height:26px;border-radius:8px;border:2px solid #4a4e57}
.tdi.done{background:rgba(70,211,154,.1)}.tdi.done .tdt b{color:#9a958c;text-decoration:line-through}
.tdi.done .tdc{background:#2FB980;border-color:#2FB980;position:relative}.tdi.done .tdc::after{content:"✓";position:absolute;inset:0;color:#fff;font-weight:900;font-size:16px;display:flex;align-items:center;justify-content:center}
.tdt b,.tdt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 알림 칸 접기 */
.pushc summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}
.pushc summary::-webkit-details-marker{display:none}
.pushc summary .lab{margin:0}
.pushc summary em{font-style:normal;font-size:12.5px;font-weight:900;border-radius:999px;padding:3px 10px;background:rgba(255,255,255,.07);color:#BDB7AC}
.pushc summary em.ok{background:rgba(70,211,154,.15);color:#46D39A}.pushc summary em.warn{background:rgba(255,179,122,.15);color:#FFB37A}
.pushc summary::after{content:"펼치기 ▾";margin-left:auto;font-size:12px;font-weight:700;color:#9a958c}
.pushc details[open] summary::after{content:"접기 ▴"}
.pushc details[open] summary{margin-bottom:8px}
