/* ================================================================
   Clean System Theme v5
   로직/전체시간표 본판 제외. 공통 셸, 메뉴, 버튼, 카드만 조용한 운영툴 톤으로 정리.
   ================================================================ */
:root{
  --bg:#f5f5f7;
  --panel:#ffffff;
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --line:#d8d8df;
  --brand:#0071e3;
  --brand2:#0071e3;
  --warn:#d70015;
  --ok:#248a3d;
  --soft:#f5f5f7;
  --mint:#0071e3;
  --mint-s:#f5f5f7;
  --lav:#1d1d1f;
  --lav-s:#f5f5f7;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 18px 44px rgba(0,0,0,.06);
  --shadow-sm:0 1px 2px rgba(0,0,0,.04),0 8px 22px rgba(0,0,0,.05);
  --r:20px;
  --r-sm:14px;
}
body{
  background:var(--bg)!important;
  color:var(--ink)!important;
  letter-spacing:0!important;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Pretendard",system-ui,sans-serif!important;
}
h1,h2,h3,b,strong,button,input,select,textarea{letter-spacing:0!important}
.login-screen{
  background:var(--bg)!important;
  padding:32px!important;
}
.login-card{
  width:min(940px,100%)!important;
  gap:18px!important;
}
.login-visual,.login-panel{
  background:#fff!important;
  border:1px solid #e5e5ea!important;
  border-radius:28px!important;
  box-shadow:var(--shadow-sm)!important;
}
.login-visual::after{display:none!important}
.login-copy h1{
  color:var(--ink)!important;
  font-size:42px!important;
  line-height:1.05!important;
  font-weight:800!important;
}
.login-preview{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.login-preview span{
  background:#f5f5f7!important;
  border:1px solid #e5e5ea!important;
  color:#424245!important;
  border-radius:18px!important;
  padding:13px 14px!important;
  font-weight:700!important;
  text-align:center!important;
}
.login-brand-mini .mini-mark,.app-nav-logo,.app-nav-avatar,.avatar{
  background:#1d1d1f!important;
  color:#fff!important;
  box-shadow:none!important;
}
.login-inputs input,#loginId,#loginPw,
.toolbar input,.toolbar select,.search,input,select,textarea{
  background:#fff!important;
  border:1px solid #d2d2d7!important;
  border-radius:13px!important;
  color:var(--ink)!important;
  font-weight:600!important;
  box-shadow:none!important;
}
.login-inputs input:focus,#loginId:focus,#loginPw:focus,
.toolbar input:focus,.toolbar select:focus,.search:focus,input:focus,select:focus,textarea:focus{
  outline:0!important;
  border-color:#0071e3!important;
  box-shadow:0 0 0 4px rgba(0,113,227,.14)!important;
}
.login-main-btn,.btn.primary,.btn.blue,.session-actions button.primary,.km-chat-send{
  background:#0071e3!important;
  background-image:none!important;
  border-color:#0071e3!important;
  color:#fff!important;
  border-radius:999px!important;
  box-shadow:none!important;
  font-weight:700!important;
}
.btn,.session-actions button,.app-nav-icon,.back-login-v47,.session-timer,.session-extend{
  background:#fff!important;
  border:1px solid #d2d2d7!important;
  color:#1d1d1f!important;
  border-radius:999px!important;
  box-shadow:none!important;
  font-weight:650!important;
}
.btn.warn{background:#fff!important;border-color:#ffd7dc!important;color:#d70015!important}
.btn.ok{background:#fff!important;border-color:#cfe8d5!important;color:#248a3d!important}
.session-extend{background:#1d1d1f!important;background-image:none!important;border-color:#1d1d1f!important;color:#fff!important}
[data-sync-state],.session-timer{
  background:#f5f5f7!important;
  border-color:#e5e5ea!important;
  color:#424245!important;
}
.top{
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(229,229,234,.86)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.06)!important;
  backdrop-filter:blur(22px) saturate(1.5)!important;
}
.app-nav-brand b{color:var(--ink)!important;font-weight:800!important}
.app-nav-brand span{color:var(--muted)!important;font-weight:600!important}
.tab{
  color:#424245!important;
  background:transparent!important;
  border-radius:12px!important;
  font-weight:700!important;
}
.tab:hover{background:#f5f5f7!important;color:#1d1d1f!important}
.tab.active{
  background:#1d1d1f!important;
  background-image:none!important;
  color:#fff!important;
  box-shadow:none!important;
}
.app-nav-menu .tab.active{
  background:#1d1d1f!important;
  background-image:none!important;
  color:#fff!important;
  box-shadow:none!important;
}
main{background:transparent!important}
.screen:not(#timetable) .panel,
.screen:not(#timetable) .main-card,
.screen:not(#timetable) .side-card,
.screen:not(#timetable) .my-summary-card,
.screen:not(#timetable) .my-lesson-card,
.screen:not(#timetable) .child-card,
.screen:not(#timetable) .cal-panel,
.screen:not(#timetable) .cal-notice-box,
.screen:not(#timetable) .mobile-time-card,
.screen:not(#timetable) .mobile-day-head{
  background:#fff!important;
  border:1px solid #e5e5ea!important;
  border-radius:22px!important;
  box-shadow:var(--shadow-sm)!important;
}
.screen:not(#timetable) .panel-head span,
.screen:not(#timetable) .card-head span,
.screen:not(#timetable) .sub,
.screen:not(#timetable) .note span,
.screen:not(#timetable) .list-row span{
  color:var(--muted)!important;
  font-weight:600!important;
}
.admin-identity{
  background:#1d1d1f!important;
  background-image:none!important;
  border:0!important;
  border-radius:28px!important;
  box-shadow:var(--shadow)!important;
  color:#fff!important;
}
.admin-identity h2{font-size:30px!important;font-weight:800!important}
.admin-identity small,.admin-identity p{color:rgba(255,255,255,.72)!important}
.admin-quick button{
  background:rgba(255,255,255,.1)!important;
  background-image:none!important;
  border:1px solid rgba(255,255,255,.18)!important;
  color:#fff!important;
  border-radius:999px!important;
  box-shadow:none!important;
  font-weight:700!important;
}
.home-head h1{
  font-size:34px!important;
  font-weight:800!important;
  color:var(--ink)!important;
}
.part-badge,.all-menu-badge{
  background:#f5f5f7!important;
  border:1px solid #e5e5ea!important;
  color:#424245!important;
  border-radius:999px!important;
  font-weight:700!important;
}
.summary-strip{gap:10px!important;margin:18px 0!important}
.summary-chip{
  background:#fff!important;
  border:1px solid #e5e5ea!important;
  color:#1d1d1f!important;
  border-radius:999px!important;
  box-shadow:none!important;
  font-weight:700!important;
}
.summary-chip::before{display:none!important}
.summary-chip strong{font-weight:800!important}
.module-grid{gap:12px!important}
.module-card{
  background:#fff!important;
  border:1px solid #e5e5ea!important;
  border-radius:24px!important;
  box-shadow:var(--shadow-sm)!important;
  color:#1d1d1f!important;
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease!important;
}
.module-card:hover{
  transform:translateY(-2px)!important;
  border-color:#d2d2d7!important;
  box-shadow:0 1px 2px rgba(0,0,0,.04),0 20px 48px rgba(0,0,0,.08)!important;
}
.module-card.primary{
  background:#fff!important;
  background-image:none!important;
  border:1px solid #e5e5ea!important;
  color:#1d1d1f!important;
}
.module-card b{font-size:18px!important;font-weight:800!important}
.module-card span{color:#6e6e73!important;opacity:1!important;font-weight:600!important}
.module-icon,
.module-card.my .module-icon,
.module-card.voucher .module-icon,
.module-card.school .module-icon,
.module-card.datahub .module-icon,
.module-card.guide .module-icon,
.module-card.primary .module-icon{
  background:#f5f5f7!important;
  color:#1d1d1f!important;
  border-radius:16px!important;
  box-shadow:none!important;
}
.list-row,.note,.mini,.stat,.msg{
  background:#fbfbfd!important;
  border:1px solid #e5e5ea!important;
  border-radius:16px!important;
  box-shadow:none!important;
}
.status,.pill{
  background:#f5f5f7!important;
  border-color:#e5e5ea!important;
  color:#424245!important;
  font-weight:700!important;
}
.status.green,.pill.ok{background:#f2fbf4!important;border-color:#d7efd9!important;color:#248a3d!important}
.status.red,.pill.absence{background:#fff2f4!important;border-color:#ffd7dc!important;color:#d70015!important}
.status.orange,.pill.check{background:#fff8e8!important;border-color:#ffe3a3!important;color:#9a6700!important}
.today-viewtoggle{
  background:#e9e9ed!important;
  border-radius:999px!important;
  padding:3px!important;
}
.today-viewtoggle button{
  border-radius:999px!important;
  font-weight:700!important;
  color:#424245!important;
}
.today-viewtoggle button.active{
  background:#fff!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 3px rgba(0,0,0,.12)!important;
}
.today-makeup-btn,
.cal-month-nav button,
.cal-mark-btns button,
.cal-inline-actions button,
.mobile-cell-actions button,
.mobile-student-actions button,
.mobile-add-row button{
  background:#fff!important;
  border:1px solid #d2d2d7!important;
  color:#1d1d1f!important;
  border-radius:999px!important;
  font-weight:700!important;
  box-shadow:none!important;
}
.cal-cell{
  background:#fff!important;
  border-color:#e5e5ea!important;
  border-radius:18px!important;
  box-shadow:none!important;
}
.cal-cell.lesson{background:#fbfbfd!important;border-color:#d2d2d7!important}
.cal-cell.today{outline:2px solid #1d1d1f!important}
.cal-cell.sel{background:#f0f7ff!important;outline:2px solid #0071e3!important}
.km-chat-room{
  background:#f5f5f7!important;
  border:1px solid #e5e5ea!important;
  border-radius:24px!important;
  box-shadow:var(--shadow-sm)!important;
}
.km-chat-head{
  background:rgba(255,255,255,.86)!important;
  border-bottom:1px solid #e5e5ea!important;
}
.km-chat-head-ico{background:#1d1d1f!important;box-shadow:none!important}
.km-chat-live{background:#fff!important;border-color:#e5e5ea!important;color:#248a3d!important}
.km-chat-row.mine .km-chat-bubble{background:#0071e3!important;color:#fff!important}
.km-chat-row.other .km-chat-bubble{background:#fff!important;color:#1d1d1f!important;border:1px solid #e5e5ea!important}
@media(max-width:760px){
  body.logged-in{background:#f5f5f7!important}
  .top{
    background:rgba(255,255,255,.86)!important;
    border:0!important;
    border-bottom:1px solid #e5e5ea!important;
    box-shadow:none!important;
    border-radius:0!important;
  }
  .mobile-nav{
    background:rgba(255,255,255,.94)!important;
    border:1px solid rgba(229,229,234,.92)!important;
    border-radius:24px!important;
    box-shadow:0 8px 30px rgba(0,0,0,.12)!important;
  }
  .mobile-nav button{
    color:#6e6e73!important;
    border-radius:18px!important;
    font-weight:700!important;
  }
  .mobile-nav button i{
    background:transparent!important;
    color:inherit!important;
    font-size:12px!important;
  }
  .mobile-nav button.active{
    background:#1d1d1f!important;
    background-image:none!important;
    color:#fff!important;
    box-shadow:none!important;
  }
  .mobile-nav button.active i{background:transparent!important;color:#fff!important}
  .mobile-nav button[data-mobile-more-open] i{background:transparent!important;color:inherit!important}
  .mobile-more::before{background:rgba(0,0,0,.24)!important}
  .mobile-more-panel{
    background:#fff!important;
    border:1px solid #e5e5ea!important;
    border-radius:26px!important;
    box-shadow:0 18px 60px rgba(0,0,0,.18)!important;
  }
  .mobile-more-head b{font-weight:800!important;color:#1d1d1f!important}
  .mobile-more-head button,
  .mobile-more-grid button{
    background:#f5f5f7!important;
    border:1px solid #e5e5ea!important;
    color:#1d1d1f!important;
    border-radius:999px!important;
    box-shadow:none!important;
    font-weight:700!important;
  }
  .mobile-more-grid button.primary{background:#f5f5f7!important;border-color:#e5e5ea!important;color:#1d1d1f!important}
  .home-head h1{font-size:28px!important}
  .admin-identity{border-radius:28px!important}
  .module-card{border-radius:24px!important}
  .summary-strip{display:grid!important;grid-template-columns:1fr 1fr!important}
}

/* ================================================================
   Glass System Theme v6
   밝은 글래스 톤 + 세밀한 hover/active. 전체시간표 본판 로직/그리드 제외.
   ================================================================ */
:root{
  --bg:#f8f9fb;
  --panel:rgba(255,255,255,.68);
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(60,60,67,.16);
  --brand:#007aff;
  --brand2:#0a84ff;
  --soft:rgba(255,255,255,.62);
  --glass:rgba(255,255,255,.64);
  --glass-strong:rgba(255,255,255,.82);
  --glass-line:rgba(60,60,67,.15);
  --glass-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 18px 48px rgba(29,29,31,.08);
  --glass-shadow-hover:0 1px 0 rgba(255,255,255,.95) inset,0 24px 64px rgba(29,29,31,.12);
  --blue-glass:rgba(0,122,255,.12);
  --blue-line:rgba(0,122,255,.24);
}
body{
  background:#f8f9fb!important;
  color:var(--ink)!important;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Pretendard",system-ui,sans-serif!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.top,
.login-visual,
.login-panel,
.mobile-nav,
.mobile-more-panel,
.screen:not(#timetable) .panel,
.screen:not(#timetable) .main-card,
.screen:not(#timetable) .side-card,
.screen:not(#timetable) .my-summary-card,
.screen:not(#timetable) .my-lesson-card,
.screen:not(#timetable) .child-card,
.screen:not(#timetable) .cal-panel,
.screen:not(#timetable) .cal-notice-box,
.screen:not(#timetable) .mobile-time-card,
.screen:not(#timetable) .mobile-day-head,
.module-card{
  background:var(--glass)!important;
  border:1px solid var(--glass-line)!important;
  box-shadow:var(--glass-shadow)!important;
  backdrop-filter:blur(26px) saturate(1.55)!important;
  -webkit-backdrop-filter:blur(26px) saturate(1.55)!important;
}
.top{background:rgba(255,255,255,.72)!important}
.app-nav-logo,.login-brand-mini .mini-mark,.app-nav-avatar,.avatar{
  background:rgba(255,255,255,.72)!important;
  border:1px solid rgba(60,60,67,.16)!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 8px 22px rgba(29,29,31,.08)!important;
}
.login-copy h1,
.home-head h1,
.admin-identity h2{
  color:#1d1d1f!important;
  font-weight:760!important;
  letter-spacing:-.01em!important;
}
.login-preview span,
.part-badge,
.all-menu-badge,
.summary-chip,
.list-row,
.note,
.mini,
.stat,
.msg,
.module-icon,
.module-card.my .module-icon,
.module-card.voucher .module-icon,
.module-card.school .module-icon,
.module-card.datahub .module-icon,
.module-card.guide .module-icon,
.module-card.primary .module-icon{
  background:rgba(255,255,255,.52)!important;
  border:1px solid rgba(60,60,67,.13)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.86) inset!important;
  color:#1d1d1f!important;
}
.admin-identity{
  background:rgba(255,255,255,.62)!important;
  background-image:none!important;
  border:1px solid rgba(60,60,67,.14)!important;
  color:#1d1d1f!important;
  box-shadow:var(--glass-shadow)!important;
}
.admin-identity small,
.admin-identity p{
  color:#6e6e73!important;
}
.admin-quick button{
  background:rgba(255,255,255,.58)!important;
  border:1px solid rgba(60,60,67,.14)!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 0 rgba(255,255,255,.86) inset!important;
}
.tab,
.btn,
.app-nav-icon,
.back-login-v47,
.session-timer,
.session-extend,
.session-actions button,
.mobile-more-head button,
.mobile-more-grid button,
.screen:not(#timetable) button,
.login-main-btn{
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease,opacity .16s ease!important;
}
.tab{
  color:#515154!important;
  border:1px solid transparent!important;
}
.tab:hover{
  background:rgba(255,255,255,.56)!important;
  border-color:rgba(60,60,67,.12)!important;
  color:#1d1d1f!important;
  transform:translateY(-1px)!important;
}
.tab.active,
.app-nav-menu .tab.active{
  background:var(--blue-glass)!important;
  background-image:none!important;
  border:1px solid var(--blue-line)!important;
  color:#0057d9!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 10px 24px rgba(0,122,255,.10)!important;
}
.login-main-btn,
.btn.primary,
.btn.blue,
.session-actions button.primary,
.km-chat-send{
  background:rgba(0,122,255,.92)!important;
  border-color:rgba(0,122,255,.92)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(0,122,255,.22)!important;
}
.session-extend{
  background:rgba(29,29,31,.86)!important;
  border-color:rgba(29,29,31,.1)!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(29,29,31,.14)!important;
}
.btn:hover,
.app-nav-icon:hover,
.back-login-v47:hover,
.session-actions button:hover,
.mobile-more-grid button:hover,
.admin-quick button:hover,
.login-main-btn:hover,
.screen:not(#timetable) button:hover{
  transform:translateY(-1px)!important;
  border-color:rgba(0,122,255,.24)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 12px 28px rgba(29,29,31,.10)!important;
}
.login-main-btn:hover,
.btn.primary:hover,
.btn.blue:hover,
.session-actions button.primary:hover{
  background:#007aff!important;
  box-shadow:0 14px 32px rgba(0,122,255,.28)!important;
}
.btn:active,
.app-nav-icon:active,
.back-login-v47:active,
.session-actions button:active,
.mobile-more-grid button:active,
.admin-quick button:active,
.login-main-btn:active,
.screen:not(#timetable) button:active{
  transform:translateY(0) scale(.985)!important;
  opacity:.88!important;
}
.module-card{
  background:rgba(255,255,255,.62)!important;
  transform:translateZ(0);
}
.module-card:hover{
  transform:translateY(-3px)!important;
  border-color:rgba(0,122,255,.20)!important;
  box-shadow:var(--glass-shadow-hover)!important;
}
.module-card:active{transform:translateY(-1px) scale(.992)!important}
.module-card.primary{
  background:rgba(255,255,255,.72)!important;
  border-color:rgba(60,60,67,.13)!important;
}
.summary-chip:hover,
.list-row:hover,
.note:hover{
  background:rgba(255,255,255,.78)!important;
  border-color:rgba(60,60,67,.18)!important;
}
.today-viewtoggle{
  background:rgba(118,118,128,.14)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important;
}
.today-viewtoggle button.active{
  background:rgba(255,255,255,.86)!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 6px 18px rgba(29,29,31,.10)!important;
}
input,select,textarea,
.toolbar input,.toolbar select,.search{
  background:rgba(255,255,255,.72)!important;
  border-color:rgba(60,60,67,.18)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.85) inset!important;
}
input:hover,select:hover,textarea:hover{
  border-color:rgba(0,122,255,.22)!important;
}
input:focus,select:focus,textarea:focus,
.toolbar input:focus,.toolbar select:focus,.search:focus{
  border-color:rgba(0,122,255,.62)!important;
  box-shadow:0 0 0 4px rgba(0,122,255,.14),0 1px 0 rgba(255,255,255,.9) inset!important;
}
.status,.pill{
  background:rgba(255,255,255,.54)!important;
  border-color:rgba(60,60,67,.12)!important;
}
.status.green,.pill.ok{background:rgba(52,199,89,.12)!important;border-color:rgba(52,199,89,.18)!important;color:#1f7a38!important}
.status.red,.pill.absence{background:rgba(255,59,48,.11)!important;border-color:rgba(255,59,48,.18)!important;color:#c4231f!important}
.status.orange,.pill.check{background:rgba(255,149,0,.12)!important;border-color:rgba(255,149,0,.18)!important;color:#9a5a00!important}
.km-chat-room{
  background:rgba(255,255,255,.48)!important;
  backdrop-filter:blur(24px) saturate(1.45)!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.45)!important;
}
.km-chat-head{background:rgba(255,255,255,.68)!important}
.km-chat-head-ico{background:var(--blue-glass)!important;color:#0057d9!important;border:1px solid var(--blue-line)!important}
.km-chat-row.mine .km-chat-bubble{background:rgba(0,122,255,.92)!important}
.km-chat-row.other .km-chat-bubble{background:rgba(255,255,255,.78)!important}
@media(max-width:760px){
  .top{
    background:rgba(255,255,255,.78)!important;
    backdrop-filter:blur(24px) saturate(1.55)!important;
    -webkit-backdrop-filter:blur(24px) saturate(1.55)!important;
  }
  .mobile-nav{
    background:rgba(255,255,255,.72)!important;
    border-color:rgba(60,60,67,.16)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 18px 44px rgba(29,29,31,.14)!important;
    backdrop-filter:blur(28px) saturate(1.7)!important;
    -webkit-backdrop-filter:blur(28px) saturate(1.7)!important;
  }
  .mobile-nav button:hover{background:rgba(255,255,255,.46)!important}
  .mobile-nav button.active{
    background:rgba(0,122,255,.14)!important;
    border:1px solid rgba(0,122,255,.22)!important;
    color:#0057d9!important;
  }
  .mobile-nav button.active i{color:#0057d9!important}
  .mobile-more-panel{
    background:rgba(255,255,255,.78)!important;
    backdrop-filter:blur(30px) saturate(1.7)!important;
    -webkit-backdrop-filter:blur(30px) saturate(1.7)!important;
  }
  .admin-identity{
    background:rgba(255,255,255,.64)!important;
  }
  .summary-strip{grid-template-columns:1fr 1fr!important}
}

/* ================================================================
   Voucher Studio Theme Bridge v7
   바우처 스튜디오의 밝은 글래스/블루 액션 톤을 메인 앱 공통 UI에 통일 적용.
   데이터/저장/시간표 본판 로직은 변경하지 않는다.
   ================================================================ */
:root{
  --bg:#f5f5f7;
  --panel:rgba(255,255,255,.72);
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(60,60,67,.14);
  --brand:#0071e3;
  --brand2:#0071e3;
  --warn:#d70015;
  --ok:#248a3d;
  --soft:rgba(255,255,255,.62);
  --vs-blue:#0071e3;
  --vs-blue-soft:rgba(0,113,227,.10);
  --vs-blue-line:rgba(0,113,227,.22);
  --vs-red-soft:rgba(255,59,48,.11);
  --vs-green-soft:rgba(52,199,89,.12);
  --vs-orange-soft:rgba(255,149,0,.12);
  --vs-fill:rgba(255,255,255,.72);
  --vs-fill-strong:rgba(255,255,255,.88);
  --vs-line:rgba(60,60,67,.14);
  --vs-shadow:0 1px 0 rgba(255,255,255,.86) inset,0 18px 46px rgba(29,29,31,.075);
  --vs-shadow-sm:0 1px 0 rgba(255,255,255,.8) inset,0 8px 22px rgba(29,29,31,.055);
  --vs-shadow-hover:0 1px 0 rgba(255,255,255,.92) inset,0 24px 62px rgba(29,29,31,.105);
  --r:22px;
  --r-sm:16px;
}
html{background:#f5f5f7!important}
body{
  background:#f5f5f7!important;
  color:#1d1d1f!important;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Apple SD Gothic Neo","Pretendard",system-ui,sans-serif!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body,body *{letter-spacing:0!important}
.app{background:transparent!important}
.screen.active{animation:screenFadeInV7 .18s cubic-bezier(.22,1,.36,1) both}
.top{
  background:rgba(255,255,255,.76)!important;
  border-bottom:1px solid rgba(60,60,67,.12)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.72) inset,0 10px 30px rgba(29,29,31,.045)!important;
  backdrop-filter:blur(26px) saturate(1.55)!important;
  -webkit-backdrop-filter:blur(26px) saturate(1.55)!important;
}
.app-nav-logo,
.login-brand-mini .mini-mark,
.app-nav-avatar,
.avatar{
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(60,60,67,.16)!important;
  color:#1d1d1f!important;
  box-shadow:var(--vs-shadow-sm)!important;
}
.app-nav-brand b,
.login-panel h2,
.home-head h1,
.my-menu-title h2,
.admin-identity h2,
.panel-head b,
.card-head b{
  color:#1d1d1f!important;
  font-weight:760!important;
}
.app-nav-brand span,
.panel-head span,
.card-head span,
.sub,
.home-head p,
.login-panel p,
.my-menu-title span,
.admin-identity p{
  color:#6e6e73!important;
}
.screen:not(#timetable) .panel,
.screen:not(#timetable) .main-card,
.screen:not(#timetable) .side-card,
.screen:not(#timetable) .my-summary-card,
.screen:not(#timetable) .my-lesson-card,
.screen:not(#timetable) .child-card,
.screen:not(#timetable) .msg,
.screen:not(#timetable) .cal-panel,
.screen:not(#timetable) .cal-notice-box,
.screen:not(#timetable) .mobile-time-card,
.screen:not(#timetable) .mobile-day-head,
.login-visual,
.login-panel,
.module-card{
  background:var(--vs-fill)!important;
  background-image:none!important;
  border:1px solid var(--vs-line)!important;
  border-radius:22px!important;
  box-shadow:var(--vs-shadow)!important;
  backdrop-filter:blur(24px) saturate(1.5)!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.5)!important;
}
.screen:not(#timetable) .panel:hover,
.screen:not(#timetable) .main-card:hover,
.screen:not(#timetable) .side-card:hover,
.module-card:hover{
  border-color:rgba(0,113,227,.18)!important;
  box-shadow:var(--vs-shadow-hover)!important;
}
.module-card,
.module-card.primary{
  min-height:auto;
  color:#1d1d1f!important;
}
.module-card.primary{
  background:rgba(255,255,255,.80)!important;
  border-color:rgba(0,113,227,.18)!important;
}
.module-card b{font-weight:780!important}
.module-card span{color:#6e6e73!important;opacity:1!important}
.module-icon,
.module-card.primary .module-icon,
.login-preview span,
.part-badge,
.all-menu-badge,
.summary-chip,
.list-row,
.note,
.mini,
.stat,
.admin-quick button,
.work-card-holder-chip{
  background:rgba(255,255,255,.66)!important;
  border:1px solid rgba(60,60,67,.12)!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 0 rgba(255,255,255,.85) inset!important;
}
.module-icon{
  color:#0071e3!important;
  border-radius:16px!important;
}
.tab,
.btn,
.login-main-btn,
.app-nav-icon,
.back-login-v47,
.session-timer,
.session-extend,
.session-actions button,
.mobile-more-grid button,
.mobile-more-head button,
.admin-quick button,
.today-viewtoggle button,
.screen:not(#timetable) button{
  transition:
    transform .18s cubic-bezier(.22,1,.36,1),
    box-shadow .18s ease,
    border-color .18s ease,
    background-color .18s ease,
    color .18s ease,
    opacity .18s ease!important;
}
.tab{
  color:#515154!important;
  border:1px solid transparent!important;
  border-radius:999px!important;
  font-weight:760!important;
}
.tab:hover{
  background:rgba(255,255,255,.68)!important;
  border-color:rgba(60,60,67,.12)!important;
  color:#1d1d1f!important;
  transform:translateY(-1px)!important;
  box-shadow:0 8px 18px rgba(29,29,31,.055)!important;
}
.tab.active,
.app-nav-menu .tab.active{
  background:var(--vs-blue-soft)!important;
  background-image:none!important;
  border:1px solid var(--vs-blue-line)!important;
  color:#0057d9!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 10px 24px rgba(0,113,227,.10)!important;
}
.btn,
.app-nav-icon,
.back-login-v47,
.session-actions button,
.mobile-more-grid button,
.mobile-more-head button,
.screen:not(#timetable) button{
  background:rgba(255,255,255,.70)!important;
  border:1px solid rgba(60,60,67,.14)!important;
  border-radius:999px!important;
  color:#1d1d1f!important;
  box-shadow:var(--vs-shadow-sm)!important;
  font-weight:760!important;
}
.btn.primary,
.btn.blue,
.login-main-btn,
.session-actions button.primary,
.km-chat-send,
.screen:not(#timetable) button.primary{
  background:#0071e3!important;
  background-image:none!important;
  border-color:#0071e3!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(0,113,227,.22)!important;
}
.btn.warn,
.screen:not(#timetable) button.warn{
  background:var(--vs-red-soft)!important;
  border-color:rgba(255,59,48,.20)!important;
  color:#c4231f!important;
}
.btn.ok,
.screen:not(#timetable) button.ok{
  background:var(--vs-green-soft)!important;
  border-color:rgba(52,199,89,.20)!important;
  color:#1f7a38!important;
}
.btn:hover,
.app-nav-icon:hover,
.back-login-v47:hover,
.session-actions button:hover,
.mobile-more-grid button:hover,
.mobile-more-head button:hover,
.admin-quick button:hover,
.login-main-btn:hover,
.screen:not(#timetable) button:hover{
  transform:translateY(-1px)!important;
  border-color:rgba(0,113,227,.24)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 14px 32px rgba(29,29,31,.095)!important;
}
.btn.primary:hover,
.btn.blue:hover,
.login-main-btn:hover,
.session-actions button.primary:hover,
.screen:not(#timetable) button.primary:hover{
  background:#0077ed!important;
  border-color:#0077ed!important;
  box-shadow:0 16px 36px rgba(0,113,227,.28)!important;
}
.btn:active,
.tab:active,
.app-nav-icon:active,
.back-login-v47:active,
.session-actions button:active,
.mobile-more-grid button:active,
.mobile-more-head button:active,
.admin-quick button:active,
.login-main-btn:active,
.screen:not(#timetable) button:active,
.module-card:active{
  transform:scale(.976)!important;
  opacity:.88!important;
}
button.module-card,
.screen:not(#timetable) button.module-card,
.module-card,
.module-card.primary{
  background:rgba(255,255,255,.72)!important;
  background-image:none!important;
  border:1px solid rgba(60,60,67,.14)!important;
  border-radius:22px!important;
  color:#1d1d1f!important;
  box-shadow:var(--vs-shadow)!important;
  text-align:left!important;
}
button.module-card.primary,
.screen:not(#timetable) button.module-card.primary,
.module-card.primary{
  background:rgba(255,255,255,.82)!important;
  border-color:rgba(0,113,227,.18)!important;
}
button.module-card:hover,
.screen:not(#timetable) button.module-card:hover,
.module-card:hover{
  transform:translateY(-3px)!important;
  border-color:rgba(0,113,227,.22)!important;
  box-shadow:var(--vs-shadow-hover)!important;
}
.module-card .module-icon{
  background:var(--vs-blue-soft)!important;
  border:1px solid var(--vs-blue-line)!important;
  color:#0057d9!important;
}
.module-card b,
.module-card.primary b{
  color:#1d1d1f!important;
}
.module-card span,
.module-card.primary span{
  color:#6e6e73!important;
  opacity:1!important;
}
input,
select,
textarea,
.toolbar input,
.toolbar select,
.search,
.leave-form input,
.leave-form select,
.km-notice-form input,
.km-notice-form select,
.km-notice-form textarea{
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(60,60,67,.18)!important;
  border-radius:14px!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 0 rgba(255,255,255,.84) inset!important;
  font-weight:680!important;
}
input:hover,
select:hover,
textarea:hover{
  border-color:rgba(0,113,227,.24)!important;
}
input:focus,
select:focus,
textarea:focus,
.toolbar input:focus,
.toolbar select:focus,
.search:focus{
  outline:0!important;
  border-color:rgba(0,113,227,.64)!important;
  box-shadow:0 0 0 4px rgba(0,113,227,.14),0 1px 0 rgba(255,255,255,.9) inset!important;
}
.table-wrap{
  border:1px solid rgba(60,60,67,.12)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.54)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.76) inset!important;
}
.table{
  background:transparent!important;
}
.table th{
  background:rgba(255,255,255,.58)!important;
  color:#6e6e73!important;
  font-weight:760!important;
}
.table td,
.table th{
  border-color:rgba(60,60,67,.10)!important;
}
.pill,
.status,
.leave-step,
.summary-chip{
  border-radius:999px!important;
  background:rgba(255,255,255,.58)!important;
  border-color:rgba(60,60,67,.12)!important;
  color:#515154!important;
  box-shadow:0 1px 0 rgba(255,255,255,.76) inset!important;
}
.pill.ok,.status.green,.leave-step.done{background:var(--vs-green-soft)!important;border-color:rgba(52,199,89,.20)!important;color:#1f7a38!important}
.pill.absence,.status.red,.leave-step.rejected{background:var(--vs-red-soft)!important;border-color:rgba(255,59,48,.20)!important;color:#c4231f!important}
.pill.check,.status.orange,.leave-step.current{background:var(--vs-orange-soft)!important;border-color:rgba(255,149,0,.20)!important;color:#9a5a00!important}
.pill.card{background:var(--vs-blue-soft)!important;border-color:var(--vs-blue-line)!important;color:#0057d9!important}
.my-menu-hero,
.admin-identity{
  background:rgba(255,255,255,.76)!important;
  background-image:none!important;
  border:1px solid rgba(60,60,67,.13)!important;
  color:#1d1d1f!important;
  box-shadow:var(--vs-shadow)!important;
  backdrop-filter:blur(24px) saturate(1.5)!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.5)!important;
}
.my-menu-meta span,
.my-student,
.my-lesson-count,
.today-card,
.cal-cell,
.cal-notice-item,
.leave-card,
.work-card-holder-list{
  background:rgba(255,255,255,.66)!important;
  border-color:rgba(60,60,67,.12)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.82) inset!important;
}
.my-lesson-card,
.today-card{
  border-left-color:#0071e3!important;
}
.my-lesson-card.absence,
.today-card.absent{
  border-left-color:#d70015!important;
  background:rgba(255,255,255,.70)!important;
}
.today-viewtoggle{
  background:rgba(118,118,128,.14)!important;
  border-radius:16px!important;
  padding:4px!important;
}
.today-viewtoggle button{
  box-shadow:none!important;
  background:transparent!important;
  border-color:transparent!important;
}
.today-viewtoggle button.active{
  background:rgba(255,255,255,.88)!important;
  color:#1d1d1f!important;
  box-shadow:0 1px 0 rgba(255,255,255,.88) inset,0 6px 16px rgba(29,29,31,.09)!important;
}
.calendar .day,
.day{
  background:rgba(255,255,255,.68)!important;
  border-color:rgba(60,60,67,.12)!important;
  border-radius:16px!important;
  box-shadow:0 1px 0 rgba(255,255,255,.78) inset!important;
}
.day.has,
.cal-cell.lesson{
  background:rgba(0,113,227,.08)!important;
  border-color:rgba(0,113,227,.20)!important;
}
.day.selected,
.cal-cell.sel{
  outline:2px solid rgba(0,113,227,.54)!important;
  outline-offset:-2px!important;
  background:rgba(0,113,227,.10)!important;
}
.km-chat-room{
  background:rgba(255,255,255,.54)!important;
  border:1px solid rgba(60,60,67,.12)!important;
  box-shadow:var(--vs-shadow)!important;
  backdrop-filter:blur(26px) saturate(1.55)!important;
  -webkit-backdrop-filter:blur(26px) saturate(1.55)!important;
}
.km-chat-head,
.km-chat-input{
  background:rgba(255,255,255,.70)!important;
  border-color:rgba(60,60,67,.12)!important;
}
.km-chat-head-ico{
  background:var(--vs-blue-soft)!important;
  border:1px solid var(--vs-blue-line)!important;
  color:#0057d9!important;
}
.km-chat-row.mine .km-chat-bubble{
  background:#0071e3!important;
  color:#fff!important;
}
.km-chat-row.other .km-chat-bubble{
  background:rgba(255,255,255,.82)!important;
  color:#1d1d1f!important;
}
.empty{
  background:rgba(255,255,255,.46)!important;
  border:1px dashed rgba(60,60,67,.18)!important;
  border-radius:18px!important;
  color:#6e6e73!important;
}
.save-toast{
  background:rgba(29,29,31,.92)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:18px!important;
  box-shadow:0 18px 48px rgba(29,29,31,.22)!important;
  backdrop-filter:blur(18px) saturate(1.4)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.4)!important;
}
@media(max-width:760px){
  body.logged-in{background:#f5f5f7!important}
  .mobile-nav{
    background:rgba(255,255,255,.78)!important;
    border:1px solid rgba(60,60,67,.14)!important;
    border-radius:24px!important;
    box-shadow:0 1px 0 rgba(255,255,255,.88) inset,0 18px 46px rgba(29,29,31,.14)!important;
    backdrop-filter:blur(28px) saturate(1.65)!important;
    -webkit-backdrop-filter:blur(28px) saturate(1.65)!important;
  }
  .mobile-nav button{
    border-radius:18px!important;
    color:#515154!important;
    box-shadow:none!important;
    background:transparent!important;
  }
  .mobile-nav button.active{
    background:var(--vs-blue-soft)!important;
    border:1px solid var(--vs-blue-line)!important;
    color:#0057d9!important;
    box-shadow:0 6px 18px rgba(0,113,227,.12)!important;
  }
  .mobile-more-panel{
    background:rgba(255,255,255,.82)!important;
    border:1px solid rgba(60,60,67,.14)!important;
    border-radius:24px!important;
    box-shadow:0 18px 48px rgba(29,29,31,.16)!important;
    backdrop-filter:blur(30px) saturate(1.65)!important;
    -webkit-backdrop-filter:blur(30px) saturate(1.65)!important;
  }
  .screen:not(#timetable) .panel,
  .screen:not(#timetable) .main-card,
  .screen:not(#timetable) .side-card,
  .module-card{
    border-radius:20px!important;
  }
}
@keyframes screenFadeInV7{
  from{opacity:.88;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .screen.active,
  .tab,
  .btn,
  .module-card,
  .screen:not(#timetable) button{
    animation:none!important;
    transition:none!important;
  }
}

/* 최종 현재 메뉴 표시 오버라이드: 파일 끝에서 모든 테마/모바일 규칙보다 우선한다. */
body.logged-in .app-nav-menu .tab{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  border:1px solid transparent!important;
}
body.logged-in .app-nav-menu .tab.active,
body.logged-in .app-nav-menu .tab[aria-current="page"]{
  background:#111827!important;
  background-image:linear-gradient(180deg,#111827,#253248)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.56)!important;
  box-shadow:0 14px 28px rgba(15,23,42,.24), inset 0 0 0 1px rgba(255,255,255,.08)!important;
  font-weight:900!important;
}
body.logged-in .app-nav-menu .tab.active::before,
body.logged-in .app-nav-menu .tab[aria-current="page"]::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:999px;
  background:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.18);
}
body.logged-in .app-nav-actions .app-nav-icon{
  position:relative!important;
}
body.logged-in .app-nav-actions .app-nav-icon.active,
body.logged-in .app-nav-actions .app-nav-icon[aria-current="page"],
body.logged-in .mobile-more-grid button.active,
body.logged-in .mobile-more-grid button[aria-current="page"]{
  background:#111827!important;
  background-image:linear-gradient(180deg,#111827,#253248)!important;
  color:#fff!important;
  border-color:#111827!important;
  box-shadow:0 12px 24px rgba(15,23,42,.22)!important;
  font-weight:900!important;
}
body.logged-in .app-nav-actions .app-nav-icon.active::after,
body.logged-in .app-nav-actions .app-nav-icon[aria-current="page"]::after{
  content:"";
  position:absolute;
  top:5px;
  right:7px;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#46b394;
  box-shadow:0 0 0 2px rgba(255,255,255,.92);
}

/* 관리자 월결산은 긴 표라 패널 안에서만 휠 스크롤한다. */
#admin .admin-monthly-scroll{
  max-height:min(520px,58vh)!important;
  overflow:auto!important;
  scrollbar-gutter:stable!important;
  overscroll-behavior:contain!important;
}
#admin .admin-monthly-scroll .admin-settlement-table th{
  position:sticky!important;
  top:0!important;
  z-index:3!important;
}
@media(max-width:760px){
  #admin .admin-monthly-scroll{
    max-height:440px!important;
  }
}

/* 현재 위치 표시 강화: 좌측 상단/사이드 메뉴와 상단 빠른 버튼이 같은 라우트를 명확히 보여준다. */
.app-nav-menu .tab{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  border:1px solid transparent!important;
}
.app-nav-menu .tab.active,
.app-nav-menu .tab[aria-current="page"]{
  background:linear-gradient(180deg,#111827,#253248)!important;
  background-image:linear-gradient(180deg,#111827,#253248)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.56)!important;
  box-shadow:0 14px 28px rgba(15,23,42,.24), inset 0 0 0 1px rgba(255,255,255,.08)!important;
  font-weight:900!important;
}
.app-nav-menu .tab.active::before,
.app-nav-menu .tab[aria-current="page"]::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:999px;
  background:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.18);
}
.app-nav-actions .app-nav-icon{
  position:relative!important;
}
.app-nav-actions .app-nav-icon.active,
.app-nav-actions .app-nav-icon[aria-current="page"],
.mobile-more-grid button.active,
.mobile-more-grid button[aria-current="page"]{
  background:linear-gradient(180deg,#111827,#253248)!important;
  background-image:linear-gradient(180deg,#111827,#253248)!important;
  color:#fff!important;
  border-color:#111827!important;
  box-shadow:0 12px 24px rgba(15,23,42,.22)!important;
  font-weight:900!important;
}
.app-nav-actions .app-nav-icon.active::after,
.app-nav-actions .app-nav-icon[aria-current="page"]::after{
  content:"";
  position:absolute;
  top:5px;
  right:7px;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#46b394;
  box-shadow:0 0 0 2px rgba(255,255,255,.92);
}
html[data-theme="office"] .app-nav-menu .tab.active,
html[data-theme="office"] .app-nav-menu .tab[aria-current="page"],
html[data-theme="office"] .app-nav-actions .app-nav-icon.active,
html[data-theme="office"] .app-nav-actions .app-nav-icon[aria-current="page"],
html[data-theme="office"] .mobile-more-grid button.active,
html[data-theme="office"] .mobile-more-grid button[aria-current="page"]{
  background:linear-gradient(180deg,#2f3a4a,#1f2937)!important;
  border-color:#1f2937!important;
}
html[data-theme="pastel"] .app-nav-menu .tab.active,
html[data-theme="pastel"] .app-nav-menu .tab[aria-current="page"],
html[data-theme="pastel"] .app-nav-actions .app-nav-icon.active,
html[data-theme="pastel"] .app-nav-actions .app-nav-icon[aria-current="page"],
html[data-theme="pastel"] .mobile-more-grid button.active,
html[data-theme="pastel"] .mobile-more-grid button[aria-current="page"]{
  background:linear-gradient(135deg,#6c5ce7,#46b394)!important;
  border-color:rgba(108,92,231,.36)!important;
}

/* ================================================================
   Button Accent v8 — 모던 채색 레이어 (v7 글래스 톤 위에 얹음)
   원칙: 화려하지 않게. 기본 버튼은 차분한 블루-그레이 틴트,
   의미(primary/ok/warn)에만 색을 주고, hover에서 은은하게 발색.
   #timetable(인쇄형 시간표)은 v7과 동일하게 제외. ================= */
:root{
  --acc:#2563eb; --acc-deep:#1d4ed8; --acc-soft:#eef4ff; --acc-line:#c7d9f9;
  --ok-soft:#e7f8f1; --ok-line:#a7e3c9; --ok-ink:#0e7a5a;
  --warn-soft:#fff3f4; --warn-line:#f8c6ce; --warn-ink:#c22e4a;
  --amb-soft:#fff7e8; --amb-line:#f5d9a0; --amb-ink:#a16207;
}
/* v7이 .screen:not(#timetable) button 에 ID급 명시도+!important 로 흰색을 강제하므로,
   v8은 동일 명시도 체계 + 후순위 + !important 로 얹는다. */
/* 기본 버튼: 흰색 → 아주 옅은 블루 틴트 + 파란 기운의 테두리/글자 */
.btn,
.session-actions button,
.mobile-more-grid button,
.mobile-more-head button,
.admin-quick button,
.screen:not(#timetable) button{
  background:linear-gradient(180deg,#ffffff,#f2f6fd) !important;
  border:1px solid #d3dff2 !important;
  color:#2b3c5c !important;
}
.btn:hover,
.session-actions button:hover,
.mobile-more-grid button:hover,
.admin-quick button:hover,
.screen:not(#timetable) button:hover{
  background:var(--acc-soft) !important;
  border-color:var(--acc-line) !important;
  color:var(--acc-deep) !important;
}
/* primary/blue: 솔리드 블루 (은은한 그라데이션 + 절제된 그림자) */
.btn.primary,.btn.blue,
.session-actions button.primary,
.screen:not(#timetable) button.primary,
.screen:not(#timetable) button.blue,
.login-main-btn,.km-chat-send,
.screen:not(#timetable) .mk-done,
.screen:not(#timetable) .today-viewtoggle button.active,
.mobile-more-grid button.primary{
  background:linear-gradient(180deg,#3b74f2,var(--acc)) !important;
  border-color:var(--acc) !important;
  color:#fff !important;
  box-shadow:0 6px 14px rgba(37,99,235,.22) !important;
}
.btn.primary:hover,.btn.blue:hover,
.session-actions button.primary:hover,
.screen:not(#timetable) button.primary:hover,
.login-main-btn:hover,.km-chat-send:hover{
  background:linear-gradient(180deg,#3168e0,var(--acc-deep)) !important;
  border-color:var(--acc-deep) !important;
}
/* 의미 색: ok=에메랄드 / warn=로즈 */
.btn.ok,.screen:not(#timetable) button.ok{
  background:var(--ok-soft) !important;border-color:var(--ok-line) !important;color:var(--ok-ink) !important;
}
.btn.ok:hover,.screen:not(#timetable) button.ok:hover{background:#d9f3e7 !important;border-color:#7ed4b0 !important;color:#095c44 !important}
.btn.warn,.screen:not(#timetable) button.warn,
.screen:not(#timetable) button.danger{
  background:var(--warn-soft) !important;border-color:var(--warn-line) !important;color:var(--warn-ink) !important;
}
.btn.warn:hover,.screen:not(#timetable) button.warn:hover{background:#ffe6e9 !important;border-color:#f0a5b2 !important;color:#a01f39 !important}
/* 보강 계열: 앰버 */
.screen:not(#timetable) .today-add-makeup,
.screen:not(#timetable) .today-makeup-btn,
.mm150-add{
  background:var(--amb-soft) !important;border:1px dashed var(--amb-line) !important;color:var(--amb-ink) !important;
}
.screen:not(#timetable) .today-add-makeup:hover,
.screen:not(#timetable) .today-makeup-btn:hover,
.mm150-add:hover{background:#ffedcc !important;border-color:#eec776 !important}
/* 요일 선택(오늘 탭)·주간 뷰토글 활성 */
.screen:not(#timetable) .today-day-sel button.active{
  background:linear-gradient(180deg,#129c86,#0f766e) !important;border-color:#0f766e !important;color:#fff !important;
}
.screen:not(#timetable) .today-day-sel button.active small{color:#bff3e8 !important}
/* 탭: 활성=솔리드 블루 알약, 비활성 hover=틴트 */
.tab.active,.app-nav-menu .tab.active{
  background:linear-gradient(180deg,#3b74f2,var(--acc)) !important;
  border-color:var(--acc) !important;color:#fff !important;
  box-shadow:0 5px 12px rgba(37,99,235,.24) !important;
}
.tab:hover:not(.active){background:var(--acc-soft) !important;border-color:var(--acc-line) !important;color:var(--acc-deep) !important}
/* 온-상태(오늘탭 출석/결석, 주간 액션바) */
.screen:not(#timetable) .today-card-acts button.on,
.screen:not(#timetable) .tw-act-btns button.on{background:linear-gradient(180deg,#129c86,#0f766e) !important;border-color:#0f766e !important;color:#fff !important}
.screen:not(#timetable) .today-card-acts button.danger.on,
.screen:not(#timetable) .tw-act-btns button.danger.on{background:linear-gradient(180deg,#e34b58,#d63031) !important;border-color:#d63031 !important;color:#fff !important}
/* 접근성: 키보드 포커스 링 */
.btn:focus-visible,.tab:focus-visible,
.screen:not(#timetable) button:focus-visible{
  outline:2px solid var(--acc);outline-offset:2px;
}
/* 눌림감 */
.btn:active,.tab:active,
.screen:not(#timetable) button:active{transform:translateY(1px)}

/* ================================================================
   Theme Picker v1
   기본값은 Studio Glass. Clean Office / Soft Pastel은 브라우저별 선택 테마.
   ================================================================ */
.theme-select,
.mobile-theme-row select{
  height:34px;
  min-width:134px;
  border:1px solid rgba(60,60,67,.14)!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#ffffff,#f2f6fd)!important;
  color:#2b3c5c!important;
  padding:0 28px 0 11px!important;
  font-size:11px!important;
  font-weight:800!important;
  box-shadow:0 1px 0 rgba(255,255,255,.85) inset,0 8px 18px rgba(29,29,31,.055)!important;
}
.mobile-theme-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 10px;
  border:1px solid rgba(60,60,67,.12);
  border-radius:18px;
  background:rgba(255,255,255,.66);
  box-shadow:0 1px 0 rgba(255,255,255,.82) inset;
}
.mobile-theme-row span{
  color:#515154;
  font-size:12px;
  font-weight:850;
}

html[data-theme="office"]{
  --bg:#f6f6f7;
  --panel:#ffffff;
  --ink:#1f2328;
  --muted:#667085;
  --line:#d9dee7;
  --brand:#2f3a4a;
  --brand2:#334155;
  --shadow:0 1px 2px rgba(16,24,40,.04);
  --shadow-sm:0 1px 2px rgba(16,24,40,.04);
}
html[data-theme="office"] body{
  background:#f6f6f7!important;
  color:#1f2328!important;
}
html[data-theme="office"] .top,
html[data-theme="office"] .screen:not(#timetable) .panel,
html[data-theme="office"] .screen:not(#timetable) .main-card,
html[data-theme="office"] .screen:not(#timetable) .side-card,
html[data-theme="office"] .module-card,
html[data-theme="office"] .login-visual,
html[data-theme="office"] .login-panel,
html[data-theme="office"] .mobile-nav,
html[data-theme="office"] .mobile-more-panel{
  background:#fff!important;
  border-color:#d9dee7!important;
  box-shadow:0 1px 2px rgba(16,24,40,.045)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html[data-theme="office"] .tab.active,
html[data-theme="office"] .app-nav-menu .tab.active,
html[data-theme="office"] .mobile-nav button.active{
  background:#2f3a4a!important;
  border-color:#2f3a4a!important;
  color:#fff!important;
  box-shadow:none!important;
}
html[data-theme="office"] .btn.primary,
html[data-theme="office"] .btn.blue,
html[data-theme="office"] .login-main-btn,
html[data-theme="office"] .session-actions button.primary,
html[data-theme="office"] .screen:not(#timetable) button.primary,
html[data-theme="office"] .km-chat-send{
  background:#334155!important;
  border-color:#334155!important;
  color:#fff!important;
  box-shadow:none!important;
}
html[data-theme="office"] .btn,
html[data-theme="office"] .app-nav-icon,
html[data-theme="office"] .back-login-v47,
html[data-theme="office"] .session-actions button,
html[data-theme="office"] .screen:not(#timetable) button,
html[data-theme="office"] .theme-select,
html[data-theme="office"] .mobile-theme-row select{
  background:#fff!important;
  border-color:#d9dee7!important;
  color:#334155!important;
  box-shadow:none!important;
}
html[data-theme="office"] .module-card:hover,
html[data-theme="office"] .screen:not(#timetable) .panel:hover{
  transform:none!important;
  border-color:#bfc7d4!important;
  box-shadow:0 2px 8px rgba(16,24,40,.06)!important;
}
html[data-theme="office"] .module-icon,
html[data-theme="office"] .module-card .module-icon,
html[data-theme="office"] .summary-chip,
html[data-theme="office"] .list-row,
html[data-theme="office"] .note,
html[data-theme="office"] .mini,
html[data-theme="office"] .stat,
html[data-theme="office"] .mobile-theme-row{
  background:#f8fafc!important;
  border-color:#d9dee7!important;
  color:#334155!important;
  box-shadow:none!important;
}

html[data-theme="pastel"]{
  --bg:#f8f5fb;
  --panel:#ffffff;
  --ink:#312e47;
  --muted:#817b96;
  --line:#ebe4f5;
  --brand:#46b394;
  --brand2:#8b7ef0;
  --shadow:0 14px 34px rgba(120,110,180,.10);
  --shadow-sm:0 7px 18px rgba(120,110,180,.08);
}
html[data-theme="pastel"] body{
  background:
    radial-gradient(900px 480px at 94% -10%, #efeaff 0%, transparent 58%),
    radial-gradient(760px 420px at -8% 10%, #e6f6f0 0%, transparent 56%),
    #f8f5fb!important;
  color:#312e47!important;
}
html[data-theme="pastel"] .top,
html[data-theme="pastel"] .screen:not(#timetable) .panel,
html[data-theme="pastel"] .screen:not(#timetable) .main-card,
html[data-theme="pastel"] .screen:not(#timetable) .side-card,
html[data-theme="pastel"] .module-card,
html[data-theme="pastel"] .login-visual,
html[data-theme="pastel"] .login-panel,
html[data-theme="pastel"] .mobile-nav,
html[data-theme="pastel"] .mobile-more-panel{
  background:rgba(255,255,255,.76)!important;
  border-color:#ebe4f5!important;
  box-shadow:0 14px 34px rgba(120,110,180,.10)!important;
  backdrop-filter:blur(18px) saturate(1.35)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.35)!important;
}
html[data-theme="pastel"] .tab.active,
html[data-theme="pastel"] .app-nav-menu .tab.active,
html[data-theme="pastel"] .mobile-nav button.active,
html[data-theme="pastel"] .btn.primary,
html[data-theme="pastel"] .btn.blue,
html[data-theme="pastel"] .login-main-btn,
html[data-theme="pastel"] .session-actions button.primary,
html[data-theme="pastel"] .screen:not(#timetable) button.primary,
html[data-theme="pastel"] .km-chat-send{
  background:linear-gradient(135deg,#46b394,#7f86ee)!important;
  border-color:#7f86ee!important;
  color:#fff!important;
  box-shadow:0 10px 24px rgba(104,130,220,.20)!important;
}
html[data-theme="pastel"] .btn,
html[data-theme="pastel"] .app-nav-icon,
html[data-theme="pastel"] .back-login-v47,
html[data-theme="pastel"] .session-actions button,
html[data-theme="pastel"] .screen:not(#timetable) button,
html[data-theme="pastel"] .theme-select,
html[data-theme="pastel"] .mobile-theme-row select{
  background:linear-gradient(180deg,#ffffff,#fbf9ff)!important;
  border-color:#ded6f2!important;
  color:#5b5772!important;
}
html[data-theme="pastel"] .module-card.my .module-icon,
html[data-theme="pastel"] .module-card.guide .module-icon{
  background:#efeaff!important;
  border-color:#ded6f2!important;
  color:#6d5ee6!important;
}
html[data-theme="pastel"] .module-card.voucher .module-icon,
html[data-theme="pastel"] .summary-chip.orange{
  background:#ffeede!important;
  border-color:#ffd7ba!important;
  color:#b8683f!important;
}
html[data-theme="pastel"] .module-card.school .module-icon,
html[data-theme="pastel"] .summary-chip{
  background:#e8f1fc!important;
  border-color:#d4e4fa!important;
  color:#3f78b8!important;
}
html[data-theme="pastel"] .module-card.datahub .module-icon,
html[data-theme="pastel"] .mobile-theme-row{
  background:#e6f6f0!important;
  border-color:#cdeee2!important;
  color:#2f8f74!important;
}
html[data-theme="pastel"] .pill.ok,
html[data-theme="pastel"] .status.green{
  background:#e6f6f0!important;
  border-color:#cdeee2!important;
  color:#2f8f74!important;
}
html[data-theme="pastel"] .pill.absence,
html[data-theme="pastel"] .status.red{
  background:#ffe8ef!important;
  border-color:#ffd1de!important;
  color:#d94d76!important;
}

/* ===== UI polish foundation v8 ===== */
:root{
  --km-font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;
  --km-space-1:4px;
  --km-space-2:8px;
  --km-space-3:12px;
  --km-space-4:16px;
  --km-space-5:20px;
  --km-space-6:24px;
  --km-space-8:32px;
  --km-radius-xs:8px;
  --km-radius-sm:12px;
  --km-radius-md:16px;
  --km-radius-lg:20px;
  --km-radius-xl:24px;
  --km-radius-pill:999px;
  --km-ease:cubic-bezier(.22,1,.36,1);
  --km-ease-out:cubic-bezier(.16,1,.3,1);
  --km-motion-fast:120ms;
  --km-motion-normal:180ms;
  --km-motion-page:240ms;
  --km-surface:rgba(255,255,255,.82);
  --km-surface-strong:rgba(255,255,255,.94);
  --km-line:rgba(60,60,67,.14);
  --km-line-strong:rgba(60,60,67,.22);
  --km-text:#1d1d1f;
  --km-muted:#6e6e73;
  --km-blue:#0071e3;
  --km-blue-soft:rgba(0,113,227,.12);
  --km-shadow-soft:0 8px 24px rgba(29,29,31,.08);
  --km-shadow-lift:0 16px 38px rgba(29,29,31,.12);
  --km-shadow-focus:0 0 0 4px rgba(0,113,227,.15);
}

html{
  font-family:var(--km-font-ui);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body,
button,
input,
select,
textarea{
  font-family:var(--km-font-ui)!important;
}

main{
  gap:var(--km-space-4)!important;
}

.screen.active:not(#timetable){
  gap:var(--km-space-4)!important;
  animation:kmScreenIn var(--km-motion-page) var(--km-ease-out) both;
}

@keyframes kmScreenIn{
  from{opacity:.001;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

.screen:not(#timetable) .panel,
.screen:not(#timetable) .main-card,
.screen:not(#timetable) .side-card,
.screen:not(#timetable) .my-summary-card,
.screen:not(#timetable) .my-lesson-card,
.screen:not(#timetable) .child-card,
.screen:not(#timetable) .msg,
.screen:not(#timetable) .km-full-panel,
.screen:not(#timetable) .km-chat-room,
.mobile-more-panel,
.login-panel,
.login-visual{
  border-color:var(--km-line)!important;
  border-radius:var(--km-radius-lg)!important;
  box-shadow:var(--km-shadow-soft)!important;
}

.top,
.mobile-nav,
.mobile-more-panel,
.screen:not(#timetable) .panel,
.screen:not(#timetable) .main-card,
.screen:not(#timetable) .side-card,
.login-panel{
  background:var(--km-surface)!important;
}

.top,
.mobile-nav,
.mobile-more-panel,
.login-panel,
.screen:not(#timetable) .panel,
.screen:not(#timetable) .main-card,
.screen:not(#timetable) .side-card{
  backdrop-filter:blur(18px) saturate(1.18);
  -webkit-backdrop-filter:blur(18px) saturate(1.18);
}

.btn,
.tab,
.app-nav-icon,
.back-login-v47,
.session-extend,
.session-actions button,
.mobile-nav button,
.mobile-more-grid button,
.admin-quick button,
.km-chat-send,
.km-chat-plus,
.today-day-sel button,
.today-add-makeup,
.cal-toolbar button,
.cal-side button,
.work-actions button,
.voucher-actions button,
.screen:not(#timetable) button{
  border-radius:var(--km-radius-pill)!important;
  transition:
    transform var(--km-motion-fast) var(--km-ease),
    box-shadow var(--km-motion-normal) var(--km-ease),
    background-color var(--km-motion-normal) var(--km-ease),
    border-color var(--km-motion-normal) var(--km-ease),
    color var(--km-motion-normal) var(--km-ease),
    opacity var(--km-motion-normal) var(--km-ease)!important;
}

.btn,
.app-nav-icon,
.back-login-v47,
.session-actions button,
.screen:not(#timetable) button:not(.module-card):not(.mobile-nav button){
  min-height:36px;
}

.btn.primary,
.btn.blue,
.login-main-btn,
.session-actions button.primary,
.mobile-nav button.active,
.screen:not(#timetable) button.primary,
.screen:not(#timetable) button.blue,
.km-chat-send{
  box-shadow:0 8px 18px rgba(0,113,227,.16)!important;
}

.module-card,
.summary-chip,
.list-row,
.note,
.my-lesson-card,
.child-card,
.msg,
.today-card,
.cal-cell,
.tw-chip{
  transition:
    transform var(--km-motion-normal) var(--km-ease),
    box-shadow var(--km-motion-normal) var(--km-ease),
    border-color var(--km-motion-normal) var(--km-ease),
    background-color var(--km-motion-normal) var(--km-ease)!important;
}

.module-card{
  border-radius:var(--km-radius-lg)!important;
}

.summary-chip,
.status,
.pill,
.tw-chip{
  border-radius:var(--km-radius-pill)!important;
}

input,
select,
textarea,
.theme-select,
.mobile-theme-row select,
.km-notice-form input,
.km-notice-form select,
.km-notice-form textarea,
.km-chat-input textarea{
  border-radius:var(--km-radius-sm)!important;
  transition:
    box-shadow var(--km-motion-normal) var(--km-ease),
    border-color var(--km-motion-normal) var(--km-ease),
    background-color var(--km-motion-normal) var(--km-ease)!important;
}

button:focus-visible,
[role="button"]:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.tab:focus-visible,
.cal-cell:focus-visible,
.pdf-subcell:focus-visible{
  outline:0!important;
  border-color:rgba(0,113,227,.58)!important;
  box-shadow:var(--km-shadow-focus)!important;
}

button:disabled,
.btn:disabled,
input:disabled,
select:disabled,
textarea:disabled{
  cursor:not-allowed!important;
  opacity:.52!important;
}

#timetable .pdf-subcell.selected .pdf-card-list{
  padding-bottom:20px;
}

#timetable .pdf-inline-add{
  position:absolute;
  left:3px;
  right:3px;
  bottom:3px;
  z-index:18;
  display:flex;
  align-items:center;
  pointer-events:auto;
}

#timetable .pdf-inline-add input{
  width:100%;
  min-width:0;
  height:18px;
  padding:0 5px;
  border:1px solid rgba(16,124,65,.48);
  border-radius:4px!important;
  background:rgba(255,255,255,.96);
  color:#0f172a;
  box-shadow:0 4px 12px rgba(15,23,42,.14);
  font-size:10px;
  font-weight:800;
  line-height:18px;
  outline:0;
}

#timetable .pdf-inline-add input:focus{
  border-color:#107c41!important;
  box-shadow:0 0 0 2px rgba(16,124,65,.18),0 8px 16px rgba(15,23,42,.18)!important;
}

@media(hover:hover){
  .btn:hover,
  .app-nav-icon:hover,
  .back-login-v47:hover,
  .session-actions button:hover,
  .mobile-more-grid button:hover,
  .admin-quick button:hover,
  .km-chat-send:hover,
  .screen:not(#timetable) button:not(.module-card):hover{
    transform:translateY(-1px)!important;
    box-shadow:var(--km-shadow-soft)!important;
  }

  .module-card:hover,
  .summary-chip:hover,
  .list-row:hover,
  .my-lesson-card:hover,
  .child-card:hover,
  .msg:hover,
  .today-card:hover,
  .cal-cell:hover{
    transform:translateY(-2px)!important;
    box-shadow:var(--km-shadow-lift)!important;
  }
}

.btn:active,
.tab:active,
.app-nav-icon:active,
.back-login-v47:active,
.session-actions button:active,
.mobile-nav button:active,
.mobile-more-grid button:active,
.screen:not(#timetable) button:active{
  transform:scale(.985)!important;
}

.module-card:active,
.cal-cell:active,
.today-card:active{
  transform:scale(.992)!important;
}

.timetable-context,
.tw-popover,
.tw-floating-panel,
.km-modal,
.km-toast,
.mobile-more-panel{
  animation:kmFloatIn var(--km-motion-normal) var(--km-ease-out) both;
}

@keyframes kmFloatIn{
  from{opacity:.001;transform:translateY(8px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.mobile-more-panel{
  border:1px solid var(--km-line)!important;
  box-shadow:0 18px 50px rgba(29,29,31,.16)!important;
}

.mobile-nav{
  border-color:var(--km-line)!important;
  box-shadow:0 -10px 30px rgba(29,29,31,.10)!important;
}

.child-detail-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:var(--km-space-2);
}

.child-detail-summary .mini{
  min-width:0;
  border:1px solid var(--km-line)!important;
  border-radius:var(--km-radius-md)!important;
  background:rgba(248,250,252,.72)!important;
  padding:var(--km-space-3)!important;
}

.child-detail-summary .mini b{
  display:block;
  color:var(--km-text);
  font-size:12px;
  font-weight:850;
  letter-spacing:0;
}

.child-detail-summary .mini span{
  display:block;
  margin-top:var(--km-space-1);
  color:var(--km-muted);
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.child-history-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--km-space-2);
  margin:var(--km-space-4) 0 var(--km-space-2);
}

.child-history-head b{
  color:var(--km-text);
  font-size:15px;
  font-weight:900;
}

.child-history-head span{
  color:var(--km-muted);
  font-size:11px;
  font-weight:800;
}

.child-history-list{
  display:grid;
  gap:var(--km-space-2);
}

.child-history-row{
  display:grid;
  grid-template-columns:86px minmax(0,1fr) auto;
  align-items:center;
  gap:var(--km-space-3);
  min-height:56px;
  padding:var(--km-space-3);
  border:1px solid var(--km-line);
  border-radius:var(--km-radius-md);
  background:rgba(255,255,255,.78);
  transition:
    transform var(--km-motion-normal) var(--km-ease),
    box-shadow var(--km-motion-normal) var(--km-ease),
    border-color var(--km-motion-normal) var(--km-ease)!important;
}

.child-history-date{
  color:#424245;
  font-size:12px;
  font-weight:850;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.child-history-main{
  min-width:0;
}

.child-history-main b,
.child-history-main span{
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.child-history-main b{
  color:var(--km-text);
  font-size:13px;
  font-weight:850;
}

.child-history-main span{
  margin-top:2px;
  color:var(--km-muted);
  font-size:12px;
  font-weight:700;
}

.child-history-status{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:var(--km-space-1);
}

.child-history-more{
  margin-top:var(--km-space-3);
  border:1px solid var(--km-line);
  border-radius:var(--km-radius-md);
  background:rgba(255,255,255,.7);
  overflow:hidden;
}

.child-history-more summary{
  min-height:44px;
  display:flex;
  align-items:center;
  padding:0 var(--km-space-4);
  color:var(--km-blue);
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  list-style:none;
}

.child-history-more summary::-webkit-details-marker{
  display:none;
}

.child-history-more summary::after{
  content:"펼치기";
  margin-left:auto;
  color:var(--km-muted);
  font-size:11px;
  font-weight:800;
}

.child-history-more[open] summary{
  border-bottom:1px solid var(--km-line);
}

.child-history-more[open] summary::after{
  content:"접기";
}

.child-history-more .table-wrap{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  max-height:360px;
  overflow:auto;
}

.empty.compact{
  padding:var(--km-space-5)!important;
}

.km-chat-line{
  position:relative;
}

.km-chat-delete,
.km-notice-delete{
  appearance:none;
  border:1px solid rgba(255,59,48,.18);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  color:#c72c22;
  font:inherit;
  font-size:11px;
  font-weight:900;
  line-height:1;
  padding:7px 9px;
  cursor:pointer;
  transition:
    transform var(--km-motion-fast) var(--km-ease),
    background var(--km-motion-fast) var(--km-ease),
    border-color var(--km-motion-fast) var(--km-ease);
}

.km-chat-delete{
  margin-left:6px;
  align-self:center;
  opacity:.62;
}

.km-chat-line:hover .km-chat-delete,
.km-chat-delete:focus-visible{
  opacity:1;
}

.km-notice-item-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--km-space-2);
}

.km-notice-item-head b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

button.msg.km-today-pay-card{
  width:100%;
  display:block;
  text-align:left;
  font:inherit;
  cursor:pointer;
}

.km-today-pay-card small{
  display:block;
  margin-top:6px;
  color:var(--km-blue);
  font-size:11px;
  font-weight:850;
}

@media(hover:hover){
  .km-chat-delete:hover,
  .km-notice-delete:hover{
    transform:translateY(-1px);
    border-color:rgba(255,59,48,.34);
    background:rgba(255,59,48,.08);
  }

  button.msg.km-today-pay-card:hover{
    border-color:rgba(0,113,227,.28)!important;
    background:rgba(255,255,255,.92)!important;
    box-shadow:var(--km-shadow-soft)!important;
  }
}

@media(hover:hover){
  .child-history-row:hover{
    transform:translateY(-1px)!important;
    border-color:rgba(0,113,227,.24)!important;
    box-shadow:var(--km-shadow-soft)!important;
  }
}

@media(max-width:760px){
  main{
    padding:var(--km-space-3)!important;
    padding-bottom:96px!important;
  }

  .btn,
  .tab,
  .app-nav-icon,
  .back-login-v47,
  .session-actions button,
  .mobile-nav button,
  .mobile-more-grid button,
  .admin-quick button,
  .today-day-sel button,
  .screen:not(#timetable) button:not(.icon-btn){
    min-height:44px!important;
  }

  .screen:not(#timetable) .panel,
  .screen:not(#timetable) .main-card,
  .screen:not(#timetable) .side-card,
  .login-panel{
    border-radius:var(--km-radius-md)!important;
  }

  .mobile-more-panel{
    width:min(420px,calc(100vw - 24px))!important;
    left:12px!important;
    right:12px!important;
    transform:none!important;
  }

  .child-detail-summary{
    grid-template-columns:1fr 1fr;
  }

  .child-history-row{
    grid-template-columns:1fr;
    align-items:start;
    gap:var(--km-space-2);
  }

  .child-history-status{
    justify-content:flex-start;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }

  .screen.active:not(#timetable),
  .timetable-context,
  .tw-popover,
  .tw-floating-panel,
  .km-modal,
  .km-toast,
  .mobile-more-panel{
    animation:none!important;
  }
}

/* 최종 현재 메뉴 표시 오버라이드 v2: 실제 파일 끝에서 모든 테마/모바일 규칙보다 우선한다. */
body.logged-in .app-nav-menu .tab{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  border:1px solid transparent!important;
}
body.logged-in .app-nav-menu .tab.active,
body.logged-in .app-nav-menu .tab[aria-current="page"]{
  background:#111827!important;
  background-image:linear-gradient(180deg,#111827,#253248)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.56)!important;
  box-shadow:0 14px 28px rgba(15,23,42,.24), inset 0 0 0 1px rgba(255,255,255,.08)!important;
  font-weight:900!important;
}
body.logged-in .app-nav-menu .tab.active::before,
body.logged-in .app-nav-menu .tab[aria-current="page"]::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:999px;
  background:#fff;
  box-shadow:0 0 0 4px rgba(255,255,255,.18);
}
body.logged-in .app-nav-actions .app-nav-icon{
  position:relative!important;
}
body.logged-in .app-nav-actions .app-nav-icon.active,
body.logged-in .app-nav-actions .app-nav-icon[aria-current="page"],
body.logged-in .mobile-more-grid button.active,
body.logged-in .mobile-more-grid button[aria-current="page"]{
  background:#111827!important;
  background-image:linear-gradient(180deg,#111827,#253248)!important;
  color:#fff!important;
  border-color:#111827!important;
  box-shadow:0 12px 24px rgba(15,23,42,.22)!important;
  font-weight:900!important;
}
body.logged-in .app-nav-actions .app-nav-icon.active::after,
body.logged-in .app-nav-actions .app-nav-icon[aria-current="page"]::after{
  content:"";
  position:absolute;
  top:5px;
  right:7px;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#46b394;
  box-shadow:0 0 0 2px rgba(255,255,255,.92);
}
