/* 클래스별 교재 선택 (POC) */
.tb-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0006;padding:24px}
.tb-modal{display:flex;flex-direction:column;width:min(1280px,100%);height:min(800px,100%);background:#fff;border-radius:16px;box-shadow:var(--shadow-ds-modal,0 12px 36px #0000002e);overflow:hidden;color:var(--color-ds-ink,#111)}
.tb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 12px}
.tb-head h2{font-size:18px;font-weight:700}
.tb-head h2 small{margin-left:6px;font-size:13px;font-weight:500;color:var(--color-ds-ink-tertiary,#919191)}
.tb-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:var(--color-ds-ink-secondary,#555);cursor:pointer}
.tb-icon-btn:hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.tb-head{border-bottom:1px solid var(--color-ds-line-subtle,#e2e5ea);padding-bottom:16px}
.tb-tools{display:flex;flex-direction:column;gap:8px;width:220px;flex-shrink:0;padding:16px;border-right:1px solid var(--color-ds-line-subtle,#e2e5ea);overflow-y:auto}
.tb-tools-title{margin-top:10px;padding:0 4px;font-size:12px;font-weight:600;color:var(--color-ds-ink-tertiary,#919191)}
.tb-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--color-ds-line-default,#cdd2da);border-radius:8px}
.tb-search:focus-within{border-color:var(--color-ds-primary,#735df1)}
.tb-search input{flex:1;min-width:0;border:0;outline:0;font-size:14px;background:transparent}
.tb-chips{display:flex;flex-direction:column;gap:2px}
.tb-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:38px;padding:0 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--color-ds-ink-secondary,#555);background:transparent;text-align:left;cursor:pointer}
.tb-chip:hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.tb-chip small{font-size:12px;color:var(--color-ds-ink-tertiary,#919191)}
.tb-chip[aria-pressed=true]{background:var(--color-ds-primary-surface,#eef);color:var(--color-ds-primary,#735df1);font-weight:700}
.tb-chip[aria-pressed=true] small{color:var(--color-ds-primary,#735df1)}
.tb-body{display:flex;min-height:0;flex:1}
.tb-list{flex:1;min-width:0;overflow-y:auto}
.tb-count{padding:12px 24px 4px;font-size:12px;color:var(--color-ds-ink-tertiary,#919191)}
.tb-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 24px;text-align:left;cursor:pointer;border-bottom:1px solid var(--color-ds-surface-muted,#f7f8fa)}
.tb-row:hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.tb-row[aria-checked=true]{background:var(--color-ds-primary-surface-subtle,#735df11a)}
.tb-check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border:1.4px solid var(--color-ds-line-default,#cdd2da);border-radius:4px;background:#fff;color:#fff}
.tb-row[aria-checked=true] .tb-check{border-color:transparent;background:var(--color-ds-primary,#735df1)}
.tb-cover{flex-shrink:0;width:40px;height:56px;border-radius:4px;object-fit:cover;box-shadow:0 1px 3px #0000001f;background:var(--color-ds-surface-muted,#f7f8fa)}
.tb-info{flex:1;min-width:0}
.tb-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-title em{font-style:normal;color:var(--color-ds-primary,#735df1)}
.tb-meta{margin-top:3px;font-size:12px;color:var(--color-ds-ink-tertiary,#919191);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-price{flex-shrink:0;width:104px;font-size:13px;font-weight:600;text-align:left}
.tb-price.none{font-weight:500;color:var(--color-ds-ink-tertiary,#919191)}
.tb-empty{padding:48px 24px;text-align:center;font-size:13px;color:var(--color-ds-ink-tertiary,#919191);line-height:1.7}
.tb-side{display:flex;flex-direction:column;width:340px;flex-shrink:0;border-left:1px solid var(--color-ds-line-subtle,#e2e5ea);background:var(--color-ds-surface-muted,#f7f8fa)}
.tb-side h3{padding:14px 16px 8px;font-size:13px;font-weight:700}
.tb-side h3 span{color:var(--color-ds-primary,#735df1)}
.tb-picked{flex:1;overflow-y:auto;padding:0 12px}
.tb-pick{display:flex;align-items:center;gap:10px;margin-bottom:6px;padding:8px;border-radius:8px;background:#fff;border:1px solid var(--color-ds-line-subtle,#e2e5ea)}
.tb-pick .tb-cover{width:30px;height:42px}
.tb-pick .tb-title{font-size:12px}
.tb-pick .tb-meta{margin-top:1px;font-size:11px}
.tb-badge{display:inline-block;margin-right:4px;padding:1px 5px;border-radius:4px;background:var(--color-ds-primary,#735df1);color:#fff;font-size:10px;font-weight:700;vertical-align:1px}
.tb-mini{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;color:var(--color-ds-ink-tertiary,#919191);cursor:pointer;flex-shrink:0}
.tb-mini:hover{background:var(--color-ds-surface-muted,#f7f8fa);color:var(--color-ds-ink,#111)}
.tb-mini:disabled{opacity:.3;cursor:default;background:none}
.tb-sum{padding:12px 16px;border-top:1px solid var(--color-ds-line-subtle,#e2e5ea);font-size:12px;color:var(--color-ds-ink-secondary,#555)}
.tb-sum b{float:right;font-size:14px;color:var(--color-ds-ink,#111)}
.tb-sum p{margin-top:4px;font-size:11px;color:var(--color-ds-ink-tertiary,#919191)}
.tb-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;border-top:1px solid var(--color-ds-line-subtle,#e2e5ea)}
.tb-note{font-size:11px;color:var(--color-ds-ink-tertiary,#919191)}
.tb-note{font-size:13px!important;color:var(--color-ds-ink-secondary,#555)!important}
.tb-note a{color:var(--color-ds-primary,#735df1);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.tb-actions{display:flex;gap:8px}
.tb-btn{height:40px;padding:0 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--color-ds-line-default,#cdd2da);background:#fff;color:var(--color-ds-ink-secondary,#555)}
.tb-btn.primary{border-color:transparent;background:var(--color-ds-primary,#735df1);color:#fff}
.tb-btn.primary:hover{background:#6450e0}
.tb-toast{position:fixed;left:50%;bottom:32px;z-index:110;transform:translateX(-50%);padding:12px 18px;border-radius:10px;background:#111d;color:#fff;font-size:13px;box-shadow:0 6px 20px #0003}
@media (max-width:1100px){
  .tb-tools{width:180px}
  .tb-side{width:270px}
}
@media (max-width:900px){
  .tb-overlay{padding:0;align-items:flex-end}
  .tb-modal{max-height:92vh;border-radius:16px 16px 0 0}
  .tb-body{flex-direction:column;overflow-y:auto}
  .tb-modal{height:auto}
  .tb-tools{width:auto;border-right:0;border-bottom:1px solid var(--color-ds-line-subtle,#e2e5ea)}
  .tb-chips{flex-direction:row;flex-wrap:wrap}
  .tb-chip{width:auto;height:30px}
  .tb-side{width:auto;max-height:38%;border-left:0;border-top:1px solid var(--color-ds-line-subtle,#e2e5ea)}
  .tb-foot{flex-direction:column;align-items:stretch}
  .tb-actions .tb-btn{flex:1}
}

/* 클래스별 레벨 (POC) */
.lv-head{align-items:flex-start!important}
.lv-head>:first-child{min-height:28px}
.lv-side{display:grid!important;grid-template-columns:auto auto auto;align-items:center;justify-items:start;column-gap:6px;row-gap:6px;position:relative;z-index:1;margin-bottom:-34px}
.lv-side>.lv-btn{grid-column:2}
.lv-label{font-size:12px;color:var(--color-ds-ink-tertiary,#919191)}
.lv-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 8px 0 4px;border-radius:999px;border:1px solid var(--color-ds-primary-border-subtle,#735df133);background:var(--color-ds-primary-surface,#eef);color:var(--color-ds-primary,#735df1);font-size:12px;cursor:pointer;transition:filter .15s}
.lv-btn:hover{filter:brightness(.97)}
.lv-btn b{font-weight:700}
.lv-btn .lv-desc{color:var(--color-ds-ink-secondary,#555);font-size:11px}
.lv-btn .lv-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;background:var(--color-ds-primary,#735df1);color:#fff;font-size:11px;font-weight:700}
.lv-menu{position:fixed;z-index:90;width:384px;max-width:calc(100vw - 16px);padding:14px;border-radius:14px;background:var(--color-ds-surface-muted,#f7f8fa);border:1px solid var(--color-ds-line-subtle,#e2e5ea);box-shadow:var(--shadow-ds-modal,0 12px 36px #0000002e)}
.lv-menu-title{margin-bottom:10px;font-size:14px;font-weight:700}
.lv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lv-grid button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;border-radius:12px;border:1px solid var(--color-ds-line-subtle,#e2e5ea);background:#fff;cursor:pointer;transition:border-color .15s,background .15s}
.lv-grid button:hover{border-color:var(--color-ds-primary-border-subtle,#735df133)}
.lv-grid .lv-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:var(--color-ds-primary-surface,#eef);color:var(--color-ds-primary,#735df1);font-size:12px;font-weight:600}
.lv-grid b{font-size:14px;font-weight:700}
.lv-grid .lv-desc{font-size:11px;color:var(--color-ds-ink-tertiary,#919191)}
.lv-grid button[aria-checked=true]{border:1.5px solid var(--color-ds-primary,#735df1);background:var(--color-ds-primary-surface,#eef)}
.lv-grid button[aria-checked=true] .lv-num{background:var(--color-ds-primary,#735df1);color:#fff}
.lv-clear{width:100%;height:36px;margin-top:8px;border-radius:10px;border:1px dashed var(--color-ds-line-default,#cdd2da);background:#fff;font-size:13px;color:var(--color-ds-ink-secondary,#555);cursor:pointer}
.lv-clear[aria-checked=true]{border-color:var(--color-ds-action,#ff7b28);color:var(--color-ds-action,#ff7b28);background:var(--color-ds-action-surface,#fff1e9)}

/* 교재 선택 탭 (Bricks 교재 / 이외 교재) — 선택한 교재 영역은 두 탭 공통 */
.tb-head{border-bottom:0!important;padding-bottom:4px!important}
.tb-tabs{display:flex;gap:4px;padding:0 24px;border-bottom:1px solid var(--color-ds-line-subtle,#e2e5ea)}
.tb-tabs button{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 14px;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:15px;font-weight:600;color:var(--color-ds-ink-tertiary,#919191);cursor:pointer}
.tb-tabs button small{font-size:12px;font-weight:600;color:var(--color-ds-ink-disabled,#b8b8b8)}
.tb-tabs button[aria-selected=true]{color:var(--color-ds-ink,#111);border-bottom-color:var(--color-ds-primary,#735df1)}
.tb-tabs button[aria-selected=true] small{color:var(--color-ds-primary,#735df1)}
.tb-panel{display:flex;flex:1;min-width:0;min-height:0}
.tb-panel[hidden]{display:none}
.tb-panel[data-panel=bricks]{flex-direction:column}

/* Bricks 교재 탭: 기존 브릭스 교재 선택 화면 스타일 */
.bk-tools{display:flex;flex-direction:column;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-ds-line-subtle,#e2e5ea)}
.bk-bar{display:flex;align-items:center;gap:8px}
.bk-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:8px;border:1px solid var(--color-ds-line-default,#cdd2da);background:#fff;color:var(--color-ds-ink,#111);cursor:pointer}
.bk-icon:hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.bk-icon[aria-pressed=true]{border-color:transparent;background:var(--color-ds-primary,#735df1);color:#fff}
.bk-search{display:flex;flex:1;align-items:center;gap:8px;height:40px;padding:0 12px;border:1px solid var(--color-ds-line-default,#cdd2da);border-radius:8px}
.bk-search:focus-within{border-color:var(--color-ds-primary,#735df1)}
.bk-search input{flex:1;min-width:0;border:0;outline:0;font-size:14px;background:transparent}
.bk-skills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.bk-skills>span{margin-right:4px;font-size:13px;font-weight:700}
.bk-skill{height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--color-ds-line-default,#cdd2da);background:#fff;font-size:13px;font-weight:500;color:var(--color-ds-ink-secondary,#555);cursor:pointer}
.bk-skill:hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.bk-skill[aria-pressed=true]{border-color:transparent;background:var(--color-ds-primary,#735df1);color:#fff;font-weight:700}
.bk-grid-wrap{flex:1;min-height:0;overflow-y:auto;background:var(--color-ds-surface-muted,#f7f8fa);padding:16px 20px}
.bk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bk-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px 10px 12px;border:1px solid var(--color-ds-line-subtle,#e2e5ea);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s;outline:none}
.bk-card:hover{border-color:var(--color-ds-primary-border-subtle,#735df133)}
.bk-card:focus-visible{box-shadow:0 0 0 2px var(--color-ds-primary,#735df1)}
.bk-card[aria-checked=true]{border:2px solid var(--color-ds-primary,#735df1);padding:9px 9px 11px;background:#faf9ff}
.bk-check{position:absolute;top:8px;left:8px;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1.4px solid var(--color-ds-line-default,#cdd2da);background:#fffe;color:#fff}
.bk-card[aria-checked=true] .bk-check{border-color:transparent;background:var(--color-ds-primary,#735df1)}
.bk-cover{display:flex;justify-content:center}
.bk-cover img{width:100%;max-width:110px;aspect-ratio:3/4;object-fit:cover;border-radius:2px;box-shadow:0 1px 3px #0000001f}
.bk-title{font-size:13px;font-weight:600;line-height:1.35;color:var(--color-ds-ink,#111);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.bk-title em{font-style:normal;color:var(--color-ds-primary,#735df1)}
.bk-tags{display:flex;align-items:center;gap:4px}
.bk-skill-tag{height:22px;padding:0 8px;border-radius:999px;background:var(--color-ds-success-surface,#e7f4f2);color:var(--color-ds-success,#009a88);font-size:11px;font-weight:600;line-height:22px;white-space:nowrap}
.bk-cefr{height:22px;padding:0 8px;border-radius:999px;background:#111;color:#fff;font-size:11px;font-weight:700;line-height:22px;white-space:nowrap}
.bk-fav{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;width:24px;height:24px;border-radius:6px;color:var(--color-ds-ink-tertiary,#919191);cursor:pointer}
.bk-fav svg{width:15px;height:15px}
.bk-fav:hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.bk-fav[aria-pressed=true]{color:#e53e3e}
.bk-fav[aria-pressed=true] svg{fill:currentColor}
/* 목록 보기 */
.bk-grid.is-list{grid-template-columns:1fr;gap:6px}
.bk-grid.is-list .bk-card{flex-direction:row;align-items:center;gap:12px;padding:8px 12px 8px 42px}
.bk-grid.is-list .bk-card[aria-checked=true]{padding:7px 11px 7px 41px}
.bk-grid.is-list .bk-check{top:50%;left:12px;transform:translateY(-50%)}
.bk-grid.is-list .bk-cover img{width:40px;aspect-ratio:auto;height:56px}
.bk-grid.is-list .bk-info{display:flex;flex:1;align-items:center;gap:12px;min-width:0}
.bk-grid.is-list .bk-title{flex:1;min-height:0;-webkit-line-clamp:1;font-size:14px}
.bk-grid.is-list .bk-tags{flex-shrink:0}
@media (max-width:900px){
  .tb-tabs{padding:0 12px}
  .bk-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}
/* 하단 안내 2줄 */
.tb-notes{display:flex;flex-direction:column;gap:4px;min-width:0}
.tb-warn{font-size:13px;color:var(--color-ds-ink-secondary,#555)}
.tb-warn[hidden]{display:none}
/* 상단 헤더: 기존 브릭스 교재 선택 화면과 같은 초록 헤더 */
.tb-modal .tb-head{background:var(--color-ds-success,#009a88);color:#fff;padding:18px 20px 18px 24px!important}
.tb-modal .tb-head h2{color:#fff}
.tb-modal .tb-head h2 small{color:#ffffffc0}
.tb-modal .tb-head .tb-icon-btn{color:#fff}
.tb-modal .tb-head .tb-icon-btn:hover{background:#ffffff26}
.tb-tabs{padding-top:6px!important}
.tb-notes[hidden]{display:none}
.tb-actions{margin-left:auto}

/* 하단 버튼: 기존 브릭스 교재 선택 화면과 동일 (취소 흰색 / 선택 완료 초록) */
.tb-foot .tb-btn{height:40px;padding:0 14px;border-radius:8px;font-size:14px;font-weight:600}
.tb-foot .tb-btn:not(.primary){border-color:var(--color-ds-line-default,#cdd2da);background:#fff;color:var(--color-ds-ink,#111)}
.tb-foot .tb-btn:not(.primary):hover{background:var(--color-ds-surface-muted,#f7f8fa)}
.tb-foot .tb-btn.primary{padding:0 18px;background:var(--color-ds-success,#009a88);color:#fff}
.tb-foot .tb-btn.primary:hover{background:var(--color-ds-success-strong,#00695c)}
/* 다른 교재 목록: 제목 아래 정가, 저자·출판사·발행일은 우측 끝 */
.tb-row-price{display:block;margin-top:4px;font-size:12px;font-weight:600;color:var(--color-ds-ink-secondary,#555)}
.tb-row-price.none{font-weight:500;color:var(--color-ds-ink-tertiary,#919191)}
.tb-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;max-width:45%;font-size:12px;font-weight:600;color:var(--color-ds-ink-secondary,#555);text-align:right}
.tb-row-meta span{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 추가한 교재 탭 */
.tb-panel[data-panel=custom]{flex-direction:row}
.ct-wrap{flex:1;min-height:0;overflow-y:auto}
.ct-top{display:flex;align-items:center;justify-content:space-between;padding:8px 24px 4px 0}
.ct-top .tb-count{padding-bottom:4px}
.ct-add{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px;border-radius:8px;border:1px solid var(--color-ds-primary-border-subtle,#735df133);background:var(--color-ds-primary-surface,#eef);color:var(--color-ds-primary,#735df1);font-size:13px;font-weight:700;cursor:pointer}
.ct-add:hover{filter:brightness(.97)}
.ct-row{cursor:pointer}
.ct-row:focus-visible{outline:2px solid var(--color-ds-primary,#735df1);outline-offset:-2px}
.ct-del{margin-left:4px}
.ct-del:hover{color:var(--color-ds-danger,#e53e3e)!important;background:var(--color-ds-danger-surface,#fdf2f2)!important}
.ct-empty{display:flex;flex-direction:column;align-items:center;gap:8px;margin:48px auto;padding:0 24px;max-width:360px;text-align:center}
.ct-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:999px;background:var(--color-ds-primary-surface,#eef);color:var(--color-ds-primary,#735df1)}
.ct-empty-icon svg{width:24px;height:24px}
.ct-empty b{margin-top:6px;font-size:16px}
.ct-empty p{font-size:13px;line-height:1.6;color:var(--color-ds-ink-tertiary,#919191)}
.ct-empty .tb-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px}

.ct-form{margin:16px 20px 8px;border:1.5px solid var(--color-ds-primary,#735df1);border-radius:14px;background:#fff;box-shadow:0 4px 16px #735df114}
.ct-form[hidden]{display:none}
.ct-form-head{display:flex;align-items:baseline;gap:8px;padding:14px 18px 0}
.ct-form-head b{font-size:15px}
.ct-form-head span{font-size:12px;color:var(--color-ds-ink-tertiary,#919191)}
.ct-form-body{display:flex;gap:16px;padding:14px 18px}
.ct-cover{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;width:96px;height:132px;border:1.5px dashed var(--color-ds-line-default,#cdd2da);border-radius:8px;background:var(--color-ds-surface-muted,#f7f8fa);cursor:pointer;overflow:hidden}
.ct-cover:hover{border-color:var(--color-ds-primary,#735df1)}
.ct-cover img{width:100%;height:100%;object-fit:cover}
.ct-cover [data-cover-empty]{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--color-ds-ink-tertiary,#919191)}
.ct-cover [data-cover-empty][hidden]{display:none}
.ct-cover em{font-style:normal;font-size:12px;font-weight:600}
.ct-cover small{font-size:11px;color:var(--color-ds-ink-disabled,#b8b8b8)}
.ct-fields{display:grid;flex:1;grid-template-columns:1fr 1fr;gap:10px 12px;min-width:0}
.ct-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.ct-field.wide{grid-column:1/-1}
.ct-field>span:first-child{font-size:12px;font-weight:600;color:var(--color-ds-ink-secondary,#555)}
.ct-field i{font-style:normal;color:var(--color-ds-danger,#e53e3e)}
.ct-field input{width:100%;height:40px;padding:0 12px;border:1px solid var(--color-ds-line-default,#cdd2da);border-radius:8px;font-size:14px;outline:0;background:#fff;color:var(--color-ds-ink,#111)}
.ct-field input:focus{border-color:var(--color-ds-primary,#735df1)}
.ct-field input.is-error{border-color:var(--color-ds-danger,#e53e3e);background:var(--color-ds-danger-surface,#fdf2f2)}
.ct-won{position:relative;display:block}
.ct-won input{padding-right:32px;text-align:right}
.ct-won em{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-size:14px;color:var(--color-ds-ink-tertiary,#919191)}
.ct-error{margin:-4px 18px 0 130px;font-size:12px;font-weight:500;color:var(--color-ds-danger,#e53e3e)}
.ct-error[hidden]{display:none}
.ct-form-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px}
.ct-form-foot .tb-btn{height:38px;padding:0 16px;font-size:14px}
@media (max-width:900px){
  .ct-form-body{flex-direction:column}
  .ct-fields{grid-template-columns:1fr}
  .ct-error{margin-left:18px}
}
/* 클래스 카드: 선택한 교재 팝업 */
.tp-pop{position:fixed;z-index:90;width:272px;max-width:calc(100vw - 16px);padding:16px;border-radius:16px;background:#fff;border:1px solid var(--color-ds-line-subtle,#e2e5ea);box-shadow:var(--shadow-ds-modal,0 12px 36px #0000002e)}
.tp-title{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:15px;font-weight:700}
.tp-title span{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--color-ds-action,#ff7b28);color:#fff;font-size:12px}
.tp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 10px;max-height:340px;overflow-y:auto;padding:6px 6px 2px 0}
.tp-item p{margin-top:6px;font-size:12px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tp-cover{position:relative}
.tp-cover img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;box-shadow:0 1px 3px #0000001f}
.tp-x{position:absolute;top:-7px;right:-7px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#fff;border:1px solid var(--color-ds-line-default,#cdd2da);color:var(--color-ds-ink-secondary,#555);cursor:pointer;box-shadow:0 1px 3px #0000001f}
.tp-x svg{width:12px;height:12px}
.tp-x:hover{color:var(--color-ds-danger,#e53e3e)}
.tp-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:3/4;border:1.5px dashed #ffb98c;border-radius:6px;background:var(--color-ds-action-surface,#fff1e9);color:var(--color-ds-action,#ff7b28);font-size:12px;font-weight:700;cursor:pointer}
.tp-add:hover{border-color:var(--color-ds-action,#ff7b28)}

/* 청구서 모드: 가격 표시·조정 */
/* 다른 교재 목록의 가격(.tb-row-price)과 같은 글꼴·색 */
.bk-price{font-size:12px;font-weight:600;color:var(--color-ds-ink-secondary,#555)}
.bk-price.none{font-weight:500;color:var(--color-ds-ink-tertiary,#919191)}
.tb-side.is-inv{width:380px}
.tb-side h3{display:flex;align-items:center;gap:4px}
.ip-all{margin-left:auto;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--color-ds-action-border-subtle,#ff7b2833);background:var(--color-ds-action-surface,#fff1e9);color:var(--color-ds-action,#ff7b28);font-size:12px;font-weight:700;cursor:pointer}
.ip-all:hover{border-color:var(--color-ds-action,#ff7b28)}
.ip-item{margin-bottom:8px;padding:10px;border-radius:10px;background:#fff;border:1px solid var(--color-ds-line-subtle,#e2e5ea)}
.ip-top{display:flex;align-items:center;gap:10px}
.ip-top .tb-cover{width:32px;height:44px}
.ip-top .tb-title{font-size:13px}
.ip-top .tb-meta{margin-top:2px;font-size:11px}
.ip-row{display:flex;gap:6px;margin-top:8px}
.ip-price{position:relative;flex:1}
.ip-input{width:100%;height:38px;padding:0 30px 0 12px;border:1px solid var(--color-ds-line-default,#cdd2da);border-radius:8px;font-size:14px;font-weight:700;text-align:right;outline:0;background:#fff;color:var(--color-ds-ink,#111)}
.ip-input:focus{border-color:var(--color-ds-primary,#735df1)}
.ip-input:placeholder-shown{border-color:var(--color-ds-danger,#e53e3e);background:var(--color-ds-danger-surface,#fdf2f2);font-weight:500}
.ip-price em{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-style:normal;font-size:13px;color:var(--color-ds-ink-tertiary,#919191)}
.ip-off{flex-shrink:0;height:38px;padding:0 12px;border-radius:8px;border:1px solid var(--color-ds-line-default,#cdd2da);background:#fff;font-size:13px;font-weight:700;color:var(--color-ds-ink-secondary,#555);cursor:pointer}
.ip-off:hover{border-color:var(--color-ds-action,#ff7b28);color:var(--color-ds-action,#ff7b28)}
.ip-off[aria-pressed=true]{border-color:transparent;background:var(--color-ds-action,#ff7b28);color:#fff}
.ip-off:disabled{opacity:.4;cursor:default}
.ip-note{margin-top:6px;font-size:11px;font-weight:600;color:var(--color-ds-action,#ff7b28)}
.ip-sum{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid var(--color-ds-line-subtle,#e2e5ea);font-size:13px;color:var(--color-ds-ink-secondary,#555)}
.ip-sum b{font-size:18px;color:var(--color-ds-ink,#111)}
.ct-wrap{flex:1;min-width:0}
.ct-top{padding-left:24px}
@media (max-width:900px){.tb-panel[data-panel=custom]{flex-direction:column}}

/* 다른 교재·추가한 교재: 목록 위 제목 검색 */
.tb-listwrap{display:flex;flex:1;min-width:0;flex-direction:column}
.tb-listwrap .tb-list{flex:1;min-height:0}
.tb-listbar{display:flex;align-items:center;gap:8px;padding:14px 20px 10px 24px}
.tb-listbar .bk-search{flex:1}
.tb-listbar .ct-add{height:40px;padding:0 14px}
.tb-listbar .ct-add[hidden]{display:none}
.ct-wrap{display:flex;flex-direction:column}
.ct-wrap .ct-list{flex:1}
.tb-list .tb-empty,.ct-list .tb-empty{padding-top:40px}
/* 표지 권장 규격 안내 */
.ct-cover-col{display:flex;flex-shrink:0;flex-direction:column;align-items:center;gap:6px;width:112px}
.ct-cover-hint{font-size:11px;line-height:1.5;text-align:center;color:var(--color-ds-ink-tertiary,#919191)}

.bk-tags .bk-price{margin-left:auto;white-space:nowrap}
.bk-grid.is-list .bk-tags .bk-price{min-width:64px;text-align:right}

/* 기본 책 일러스트 표지는 플랫하게 (그림자 없음) */
img[src^="data:image/svg+xml"]{box-shadow:none!important}

/* 선택한 교재 팝업: 표지와 [교재 추가] 타일을 같은 크기(76×101)로 2열 */
.tp-pop{width:auto;min-width:200px}
.tp-grid{grid-template-columns:repeat(2,76px);gap:14px 12px}
.tp-cover img{width:76px;height:101px;aspect-ratio:auto}
.tp-grid .tp-add{width:76px;height:101px;aspect-ratio:auto}
/* 재확인 모달 */
.cf-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:24px;background:#0006}
.cf-box{display:flex;flex-direction:column;gap:8px;width:min(380px,100%);padding:24px 22px 18px;border-radius:16px;background:#fff;box-shadow:var(--shadow-ds-modal,0 12px 36px #0000002e)}
.cf-box b{font-size:17px;color:var(--color-ds-ink,#111)}
.cf-box p{font-size:14px;line-height:1.6;color:var(--color-ds-ink-secondary,#555)}
.cf-btns{display:flex;gap:8px;margin-top:12px}
.cf-btns .tb-btn{flex:1;height:44px}
.cf-danger{border-color:transparent!important;background:var(--color-ds-danger,#e53e3e)!important;color:#fff!important}
.ct-edit:hover{color:var(--color-ds-primary,#735df1)!important;background:var(--color-ds-primary-surface,#eef)!important}
/* 청구서 모드 카드: 배지 아래 줄 오른쪽 정렬 가격 */
.bk-tags + .bk-price{margin-top:8px;text-align:right}

.ct-field input[type=date]{cursor:pointer}

/* 교재 추가/수정 팝업 */
.ct-pop{position:fixed;inset:0;z-index:115;display:flex;align-items:center;justify-content:center;padding:24px;background:#0005}
.ct-pop[hidden]{display:none}
.ct-pop .ct-form{width:min(640px,100%);max-height:100%;overflow-y:auto;margin:0;border:0;border-radius:16px;box-shadow:var(--shadow-ds-modal,0 12px 36px #0000002e)}
.ct-pop .ct-form-head{padding:20px 22px 0}
.ct-pop .ct-form-head b{font-size:17px}
.ct-pop .ct-form-body{padding:16px 22px}
.ct-pop .ct-form-foot{padding:12px 22px 20px}
/* 레벨 버튼·선택 카드: 숫자 동그라미 없이 글자만 */
.lv-btn{padding:0 8px 0 12px}
.lv-grid button{padding:14px 4px}

/* 표지: 책마다 원본 비율 그대로 (잘라내지 않음). 정해진 칸 안에 맞추고 아래·가운데 정렬, 그림자는 이미지 모양을 따라감 (2026-10-20) */
.tb-cover,.bk-cover img,.tp-cover img,.ct-cover img{object-fit:contain;object-position:center bottom;background:transparent;box-shadow:none;border-radius:0;filter:drop-shadow(0 1px 2px #00000029)}
.tb-pager{border-top:0;padding:12px 0 16px}

/* 출판사/저자 목록 검색 (2026-10-20) */
.tb-chip-search{display:flex;align-items:center;gap:6px;height:34px;margin:6px 0 6px;padding:0 10px;border:1px solid var(--color-ds-line-default,#e2e5ea);border-radius:8px;background:#fff}
.tb-chip-search svg{width:14px;height:14px;flex-shrink:0}
.tb-chip-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:12px}
.tb-chip-search:focus-within{border-color:var(--color-ds-primary,#735df1)}
.tb-chip[hidden],.tb-chip-empty[hidden]{display:none}
.tb-chip-empty{padding:8px 4px;font-size:12px;color:var(--color-ds-ink-tertiary,#919191)}
