/* ============================================================
   KidDaily 日历子页 — 课程表 / 周视图 / 月视图
   由原型机械抽取；裸 hex 收编为 var()
   ============================================================ */

/* ---------- 课程表 ---------- */
.tt-card{flex:1;min-height:0;padding:22px;display:flex;flex-direction:column;gap:14px;}
.tt-head h3{font-size:17px;line-height:23px;font-weight:600;color:var(--ink);}
.tt-head .sub{font-size:11.5px;line-height:16px;color:var(--muted);margin-top:3px;}
.btn-edit{
  width:76px;height:32px;border-radius:var(--radius-pill);background:var(--coral-soft);
  font-size:12.5px;font-weight:600;color:var(--coral-deep);line-height:18px;
  transition:background-color .16s ease;
}
.btn-edit:hover{background:var(--coral-soft-hover);}
.tt-grid{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;}
.tt-days{display:flex;gap:6px;height:22px;flex:0 0 auto;}
.tt-days .ph{width:46px;flex:0 0 auto;}
.tt-days .dh{flex:1;font-size:12px;line-height:17px;font-weight:500;color:var(--muted-2);text-align:center;}
.tt-days .dh--today{
  background:var(--coral-soft);border-radius:var(--radius-pill);
  display:flex;align-items:center;justify-content:center;
  font-weight:600;color:var(--coral-deep);
}
.tt-days .dh--rest{color:var(--label);}
.tt-body{flex:1;min-height:0;display:flex;gap:6px;}
.tt-times{width:46px;flex:0 0 auto;display:flex;flex-direction:column;gap:8px;}
.tt-times .t{flex:1;display:flex;flex-direction:column;gap:2px;}
.tt-times .t b{font-size:11.5px;line-height:16px;font-weight:600;color:var(--label);}
.tt-times .t i{font-family:var(--font-num);font-style:normal;font-size:10.5px;line-height:14px;color:var(--time-faded);}
.tt-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.tt-row{flex:1;min-height:0;display:flex;gap:6px;}
.tt-cell{
  flex:1;min-width:0;border-radius:12px;padding:10px 12px;
  display:flex;flex-direction:column;gap:2px;justify-content:center;
}
.tt-cell b{font-size:14px;line-height:19px;font-weight:600;}
.tt-cell i{font-style:normal;font-size:10.5px;line-height:15px;}
.tt-cell--rest{background:var(--field);}
.c-chinese{background:var(--blue-bg);}  .c-chinese b{color:var(--blue);}  .c-chinese i{color:var(--blue-soft);}
.c-math{background:var(--green-bg);}    .c-math b{color:var(--green);}    .c-math i{color:var(--green-soft);}
.c-english{background:var(--eng-bg);}   .c-english b{color:var(--eng);}   .c-english i{color:var(--eng-soft);}
.c-science{background:var(--sci-bg);}   .c-science b{color:var(--sci);}   .c-science i{color:var(--sci-soft);}
.c-pe{background:var(--pe-bg);}         .c-pe b{color:var(--pe);}         .c-pe i{color:var(--pe-soft);}
.c-music{background:var(--music-bg);}   .c-music b{color:var(--music);}   .c-music i{color:var(--music-soft);}
.c-art{background:var(--art-bg);}       .c-art b{color:var(--art);}       .c-art i{color:var(--art-soft);}
.tt-note{
  height:40px;flex:0 0 auto;border-radius:12px;background:var(--field);
  display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--label);
}
.tt-note span{font-size:12px;line-height:17px;color:var(--muted);}
.tt-note svg{flex:0 0 auto;display:block;}

/* ============================================================
   周视图
   ============================================================ */
.week-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;}
.week-grid{flex:1;min-height:0;display:flex;gap:12px;}
.day-col{
  flex:1;min-width:0;border-radius:20px;background:var(--card);
  border:1px solid var(--line);padding:14px;
  display:flex;flex-direction:column;gap:10px;min-height:0;
}
.day-col--today{border-color:var(--coral);}
.col-head{height:24px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;}
.col-head b{font-size:14px;line-height:20px;font-weight:600;color:var(--ink);}
.col-head .d{font-family:var(--font-num);font-size:12px;line-height:17px;font-weight:500;color:var(--muted);}
.col-head--today b{color:var(--coral-deep);}
.today-badge{
  width:44px;height:22px;border-radius:var(--radius-pill);background:var(--coral);
  font-size:11.5px;line-height:16px;font-weight:600;color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.col-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow:hidden;}
.bar{
  height:44px;flex:0 0 auto;border-radius:12px;padding:12px;
  display:flex;align-items:center;
  font-size:12.5px;line-height:17px;font-weight:500;
  white-space:nowrap;overflow:hidden;
}
.bar--done{background:var(--green-bg);color:var(--green);}
.bar--todo{background:var(--yellow-bg);color:var(--yellow-ink);}
.span-bar{
  height:64px;flex:0 0 auto;border-radius:16px;
  background:var(--pink-bg);border:1px solid var(--pink-line);
  display:flex;align-items:center;gap:14px;padding:16px 20px;
}
.span-bar .ic{width:22px;height:22px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  color:var(--pink-deep);}
.long-chip{
  width:66px;height:24px;border-radius:var(--radius-pill);background:var(--pink);flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  font-size:11.5px;line-height:16px;font-weight:600;color:#fff;
}
.span-bar .title{font-size:15px;line-height:21px;font-weight:600;color:var(--pink-ink);white-space:nowrap;}
.span-bar .range{font-size:12px;line-height:17px;color:var(--pink-soft);white-space:nowrap;}
.span-bar .sp{flex:1;min-width:0;}
.span-progress{width:160px;height:8px;border-radius:4px;background:var(--pink-line);overflow:hidden;flex:0 0 auto;}
.span-progress i{display:block;height:100%;border-radius:4px;background:var(--pink);}
.span-bar .pct{font-family:var(--font-num);font-size:13px;line-height:18px;font-weight:700;color:var(--pink-num);}

/* ============================================================
   月视图
   ============================================================ */
.month-body{flex:1;min-height:0;display:flex;gap:20px;}
.stats-card{width:470px;flex:0 0 auto;padding:26px;display:flex;flex-direction:column;gap:18px;}
.stats-head{display:flex;align-items:flex-start;justify-content:space-between;flex:0 0 auto;}
.stats-head h2{font-size:20px;line-height:28px;font-weight:700;color:var(--ink);}
.stats-head .sub{font-size:12.5px;line-height:18px;color:var(--muted);}
.ring-box{
  height:240px;flex:0 0 auto;border-radius:18px;background:var(--field);
  display:flex;align-items:center;justify-content:center;position:relative;
}
.ring-wrap{position:relative;width:150px;height:150px;}
.ring-center{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;
}
.ring-center b{font-family:var(--font-num);font-size:34px;line-height:42px;font-weight:700;color:var(--ink);}
.ring-center span{font-size:12px;line-height:17px;color:var(--muted);}
.stat-tiles{height:64px;flex:0 0 auto;display:flex;gap:12px;}
.tile{flex:1;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:3px;}
.tile b{font-family:var(--font-num);font-size:22px;line-height:28px;font-weight:700;}
.tile span{font-size:11.5px;line-height:16px;}
.tile--blue{background:var(--blue-bg);}  .tile--blue b{color:var(--blue);}  .tile--blue span{color:var(--blue-soft);}
.tile--green{background:var(--up-soft);} .tile--green b{color:var(--green);}.tile--green span{color:var(--green-soft);}
.dist{display:flex;flex-direction:column;gap:10px;flex:0 0 auto;}
.dist h4{font-size:14px;line-height:20px;font-weight:600;color:var(--ink);}
.dist-row{
  height:72px;flex:0 0 auto;border-radius:14px;background:var(--field);
  padding:14px;display:flex;flex-direction:column;gap:8px;
}
.dist-row .rh{height:18px;display:flex;align-items:center;justify-content:space-between;}
.dist-row .rh span{font-size:13px;line-height:18px;font-weight:500;color:var(--ink-2);}
.dist-row .rh b{font-family:var(--font-num);font-size:12.5px;line-height:18px;font-weight:600;}
.dist-track{height:6px;border-radius:3px;background:var(--bar-track);overflow:hidden;}
.dist-track i{display:block;height:100%;border-radius:3px;}
.d--blue b{color:var(--blue);}   .d--blue i{background:var(--blue-bar);}
.d--orange b{color:var(--eng);}  .d--orange i{background:var(--data-orange);}
.d--pink b{color:var(--pink-deep);} .d--pink i{background:var(--pink);}

.cal-card{flex:1;min-width:0;padding:24px;display:flex;flex-direction:column;gap:12px;}
.cal-head{height:32px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;}
.cal-head h2{font-size:18px;line-height:25px;font-weight:700;color:var(--ink);}
.legend{display:flex;align-items:center;gap:16px;}
.legend .li{display:flex;align-items:center;gap:6px;}
.legend .li i{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
.legend .li span{font-size:12px;line-height:17px;color:var(--muted-2);}
.lg-green{background:var(--green-soft);}
.lg-yellow{background:var(--yellow-dot);}
.lg-none{background:#fff;border:1px solid var(--cal-none-border);}
.week-row{height:24px;flex:0 0 auto;display:flex;gap:10px;}
.week-row span{flex:1;text-align:center;font-size:12.5px;line-height:18px;font-weight:500;color:var(--label);}
.cal-grid{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;}
.cal-row{flex:1;min-height:0;display:flex;gap:10px;}
.cell{
  flex:1;min-width:0;border-radius:14px;padding:12px;cursor:pointer;
  display:flex;flex-direction:column;gap:4px;
  transition:transform .12s ease,box-shadow .16s ease;
}
.cell:hover{box-shadow:0 4px 14px -4px rgba(158,125,94,.25);}
.cell:active{transform:scale(.98);}
.cell b{font-family:var(--font-num);font-size:15px;line-height:20px;font-weight:600;}
.cell .note{font-size:10.5px;line-height:15px;font-weight:500;color:var(--yellow-note);}
.cell--dim{background:var(--field);cursor:default;}
.cell--dim b{color:var(--faded);}
.cell--dim:hover{box-shadow:none;}
.cell--dim:active{transform:none;}
.cell--yellow{background:var(--yellow-bg);}
.cell--yellow b{color:var(--yellow-ink);}
.cell--white{background:#fff;border:1px solid var(--line);}
.cell--white b{color:var(--label);}
.cell--green{background:var(--green-bg);}
.cell--green b{color:var(--green);}
.cell--today{background:var(--yellow-bg);border:1.5px solid var(--coral);}
.cell--today b{color:var(--coral-deep);font-weight:700;}
