/* ============================ "Tests" — bài test trên trường + Test pack ============================
   Panel dùng lại khung .calcguide-* (dock); thanh tiến độ dùng .mm-meter/.mm-s* của mind-map.css. */

.st-btn{
  padding:7px 12px; border:1px solid var(--line-strong); border-radius:var(--radius); background:var(--surface);
  color:var(--ink); font:inherit; font-size:.78rem; cursor:pointer; text-decoration:none; display:inline-block; text-align:center;
}
.st-btn:hover{border-color:var(--ink-faint);}
.st-btn:disabled{opacity:.6; cursor:default;}
.st-primary{background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600;}
.st-primary:hover{background:var(--accent-ink); border-color:var(--accent-ink);}
.st-link{padding:0; border:0; background:none; color:var(--accent-ink); font:inherit; font-size:.74rem; cursor:pointer;}
.st-danger{color:var(--danger);}
.st-muted{margin:6px 0; font-size:.74rem; color:var(--ink-faint); line-height:1.45;}
.st-add{width:100%; margin-bottom:12px; padding:10px;}
.st-empty{padding:10px 12px; border-radius:var(--radius); background:var(--surface-2); font-size:.8rem; line-height:1.5; color:var(--ink-soft);}
.st-empty p{margin:0 0 6px;}
.st-foot{margin-top:10px;}

/* --- Thẻ bài test --- */
.st-card{margin-bottom:10px; padding:11px 12px; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface);}
.st-card.is-urgent{border-color:var(--hl);}
.st-card-head{display:flex; justify-content:space-between; gap:10px; align-items:flex-start;}
.st-card-title{min-width:0; display:flex; flex-direction:column; gap:2px;}
.st-card-title b{font-size:.9rem; color:var(--ink); overflow-wrap:anywhere;}
.st-card-title span{font-size:.7rem; color:var(--ink-faint);}
.st-when{flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right;}
.st-when b{font-size:.8rem; color:var(--accent-ink);}
.st-card.is-urgent .st-when b{color:var(--hl);}
.st-when span{font-size:.7rem; color:var(--ink-faint);}
.st-topics{display:flex; flex-wrap:wrap; gap:4px; margin:8px 0 4px;}
.st-topic{padding:2px 7px; border-radius:999px; background:var(--surface-3); font-size:.66rem; color:var(--ink-soft); font-family:var(--font-mono);}
.st-ready{display:flex; flex-direction:column; gap:4px; margin:8px 0 2px; font-size:.7rem; color:var(--ink-soft);}
.st-flash{margin:8px 0 0; padding:6px 9px; border-radius:var(--radius); background:var(--sl-soft); color:#0A5E49; font-size:.74rem;}
.st-flash.is-error{background:var(--hl-soft); color:#7A3B07;}
.st-packs{display:flex; flex-direction:column; gap:5px; margin-top:9px;}
.st-pack{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 9px; border-radius:var(--radius); background:var(--surface-2);}
.st-pack-main{min-width:0; display:flex; flex-direction:column; gap:1px;}
.st-pack-main b{font-size:.78rem;}
.st-pack-main span{font-size:.68rem; color:var(--ink-faint);}
.st-card-actions{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:9px;}

/* --- Form khai bài test (tối ưu điện thoại) --- */
.st-form{display:flex; flex-direction:column;}
.st-label{margin:12px 0 5px; font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-faint);}
.st-label:first-child{margin-top:0;}
.st-label span{text-transform:none; letter-spacing:0; font-weight:400;}
.st-input{width:100%; padding:9px 10px; border:1px solid var(--line-strong); border-radius:var(--radius); background:var(--surface); font:inherit; font-size:.86rem;}
.st-fixed{margin:0; font-size:.86rem;}
.st-chips{display:flex; flex-wrap:wrap; gap:5px; margin-bottom:6px;}
.st-chip{padding:6px 11px; border:1px solid var(--line-strong); border-radius:999px; background:var(--surface); font:inherit; font-size:.76rem; cursor:pointer;}
.st-chip.is-on{background:var(--accent); border-color:var(--accent); color:#fff;}
.st-tree{display:flex; flex-direction:column; gap:4px;}
.st-root{border:1px solid var(--line); border-radius:var(--radius); background:var(--surface);}
.st-root > summary{display:flex; align-items:center; gap:8px; padding:8px 10px; cursor:pointer; list-style:none;}
.st-root > summary::-webkit-details-marker{display:none;}
.st-kids{margin-left:auto; font-size:.68rem; color:var(--ink-faint);}
.st-kidlist{display:flex; flex-direction:column; padding:2px 10px 8px 30px; gap:2px;}
.st-check{display:flex; align-items:flex-start; gap:8px; font-size:.8rem; cursor:pointer; min-width:0;}
.st-check input{flex:0 0 auto; width:16px; height:16px; margin-top:1px; accent-color:var(--accent);}
.st-check span{min-width:0; overflow-wrap:anywhere;}
.st-kid{padding:4px 0; font-size:.76rem; color:var(--ink-soft);}
.st-kid b{font-family:var(--font-mono); font-size:.68rem; color:var(--ink);}
.st-err{min-height:1.2em; margin:10px 0 0; font-size:.76rem; color:var(--danger);}
.st-save{margin-top:6px; padding:10px;}

/* --- B3: tiến độ từng bộ + nút làm ngay --- */
.st-pack-btns{flex:0 0 auto; display:flex; gap:5px;}
.st-pack.is-done{background:var(--sl-soft);}
.st-pack.is-done .st-pack-main span{color:#0A5E49;}
.st-prog{display:block; width:110px; max-width:100%; height:4px; margin-top:3px; border-radius:2px; background:var(--surface-3); overflow:hidden;}
.st-prog i{display:block; height:100%; background:var(--accent);}

/* --- B4: tuần này + kỳ thi IB + nhắc --- */
.st-week,.st-exams{margin-bottom:10px; padding:10px 12px; border-radius:var(--radius-lg); background:var(--surface-2); border:1px solid var(--line);}
.st-week-head{display:flex; justify-content:space-between; align-items:baseline; gap:8px; flex-wrap:wrap;}
.st-week-head b,.st-exams > b{font-size:.84rem; color:var(--ink);}
.st-week-head span{font-size:.72rem; color:var(--ink-soft);}
.st-prog-wide{width:100%; margin:7px 0 2px;}
.st-week-list{list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:5px;}
.st-week-list li{display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:.76rem; color:var(--ink);}
.st-week-list li span{min-width:0;}
.st-week-list li i{display:block; font-style:normal; font-size:.68rem; color:var(--ink-faint);}
.st-week-list li b{flex:0 0 auto; font-size:.74rem; color:var(--accent-ink);}
.st-exams .st-chips{margin:8px 0 2px;}
.st-remind{display:flex; align-items:flex-start; gap:8px; margin:12px 0 0; font-size:.76rem; color:var(--ink-soft); cursor:pointer;}
.st-remind input{flex:0 0 auto; width:16px; height:16px; margin-top:1px; accent-color:var(--accent);}
.st-remind.is-off{cursor:default; color:var(--ink-faint);}

/* Lịch thi IB gập thành một dòng (mặc định), bấm để bung. */
.st-exams-toggle{display:flex; align-items:flex-start; gap:8px; width:100%; padding:0; border:0; background:none; font:inherit; text-align:left; cursor:pointer; color:var(--ink);}
.st-exams-chev{flex:0 0 auto; font-size:1rem; line-height:1.1; color:var(--ink-faint); transition:transform .15s;}
.st-exams-toggle[aria-expanded="true"] .st-exams-chev{transform:rotate(90deg);}
.st-exams-line{display:flex; flex-direction:column; gap:1px; min-width:0;}
.st-exams-line b{font-size:.84rem;}
.st-exams-line i{font-style:normal; font-size:.72rem; color:var(--ink-soft);}
.st-exams-foot{display:flex; justify-content:space-between; align-items:center; margin-top:8px;}

/* Xác nhận xoá ngay trên thẻ (thay window.confirm) */
.st-confirm{padding:8px 10px; border-radius:var(--radius); background:var(--surface-2); border:1px solid var(--danger);}
.st-confirm span{flex:1 1 100%; font-size:.78rem; color:var(--ink);}
.st-danger-btn{background:var(--danger); border-color:var(--danger); color:#fff; font-weight:600;}
