/* TopCloud Attendance — 所有样式限定在 .tcAtt- 前缀下 */
.tcAtt-root {
  --tcAtt-p1: #667eea;
  --tcAtt-p2: #764ba2;
  --tcAtt-ink: #2b2740;
  --tcAtt-sub: #7a7690;
  --tcAtt-line: #ebe8f3;
  --tcAtt-bg: #f6f5fb;
  width: 100% !important;
  max-width: 960px !important;
  margin: 0 auto !important;
  padding: 12px !important;
  box-sizing: border-box !important;
  background: var(--tcAtt-bg) !important;
  color: var(--tcAtt-ink) !important;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, "Noto Sans JP", sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  text-align: left !important;
}
.tcAtt-root *, .tcAtt-root *::before, .tcAtt-root *::after { box-sizing: border-box !important; }
.tcAtt-root p { margin: 0 !important; }
.tcAtt-root b { font-weight: 600 !important; }

/* 提示条 */
.tcAtt-msg { display: none !important; position: sticky !important; top: 8px !important; z-index: 20 !important; margin: 0 0 10px !important; padding: 10px 14px !important; border-radius: 10px !important; font-size: 14px !important; }
.tcAtt-msg.is-show { display: block !important; }
.tcAtt-msg.is-ok { background: #e6f6ee !important; color: #13704a !important; }
.tcAtt-msg.is-err { background: #fdecec !important; color: #b42828 !important; }

.tcAtt-loading, .tcAtt-empty { padding: 18px 0 !important; text-align: center !important; color: var(--tcAtt-sub) !important; font-size: 13px !important; }

/* 头部 */
.tcAtt-head { display: flex !important; justify-content: space-between !important; align-items: center !important; gap: 10px !important; padding: 14px 16px !important; margin: 0 0 12px !important; border-radius: 14px !important; background: linear-gradient(135deg, var(--tcAtt-p1), var(--tcAtt-p2)) !important; color: #fff !important; }
.tcAtt-head-c { flex-direction: column !important; justify-content: center !important; padding: 26px 16px !important; }
.tcAtt-head-name { font-size: 17px !important; font-weight: 600 !important; color: #fff !important; line-height: 1.3 !important; }
.tcAtt-head-sub { font-size: 12px !important; color: rgba(255,255,255,.8) !important; }
.tcAtt-head-r { display: flex !important; gap: 14px !important; flex-shrink: 0 !important; }
.tcAtt-head-r a { color: #fff !important; text-decoration: none !important; font-size: 13px !important; border: none !important; box-shadow: none !important; }
.tcAtt-login { max-width: 420px !important; margin: 20px auto !important; }

/* 标签 */
.tcAtt-tabs { display: flex !important; gap: 6px !important; margin: 0 0 12px !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; scrollbar-width: none !important; }
.tcAtt-tabs::-webkit-scrollbar { display: none !important; }
.tcAtt-root .tcAtt-tab { flex: 0 0 auto !important; padding: 7px 14px !important; margin: 0 !important; border: 1px solid var(--tcAtt-line) !important; border-radius: 20px !important; background: #fff !important; color: var(--tcAtt-sub) !important; font-size: 13px !important; font-weight: 500 !important; line-height: 1.4 !important; cursor: pointer !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; }
.tcAtt-root .tcAtt-tab.is-on { background: #efeafc !important; border-color: #d5c9f6 !important; color: #5a3fb0 !important; }
.tcAtt-badge { display: inline-block !important; min-width: 18px !important; height: 18px !important; margin-left: 5px !important; padding: 0 5px !important; border-radius: 9px !important; background: #e5484d !important; color: #fff !important; font-size: 11px !important; line-height: 18px !important; text-align: center !important; }

/* 卡片 */
.tcAtt-card { background: #fff !important; border: 1px solid var(--tcAtt-line) !important; border-radius: 12px !important; padding: 14px !important; margin: 0 0 12px !important; }
.tcAtt-card-form { border-color: #d5c9f6 !important; }
.tcAtt-card-t { font-size: 15px !important; font-weight: 600 !important; margin: 0 0 10px !important; color: var(--tcAtt-ink) !important; }
.tcAtt-row-between { display: flex !important; justify-content: space-between !important; align-items: center !important; gap: 8px !important; margin-bottom: 6px !important; }
.tcAtt-row-between .tcAtt-card-t { margin: 0 !important; }
.tcAtt-note { font-size: 12px !important; color: var(--tcAtt-sub) !important; margin: 6px 0 10px !important; }
.tcAtt-sub { font-size: 12px !important; color: var(--tcAtt-sub) !important; }

/* 表单 */
.tcAtt-field { margin: 0 0 10px !important; }
.tcAtt-field label { display: block !important; margin: 0 0 4px !important; font-size: 12px !important; color: var(--tcAtt-sub) !important; font-weight: 400 !important; }
.tcAtt-root input, .tcAtt-root select, .tcAtt-root textarea {
  display: block !important; width: 100% !important; height: 42px !important; margin: 0 !important; padding: 0 10px !important;
  border: 1px solid #dcd6ee !important; border-radius: 8px !important; background: #fff !important; color: var(--tcAtt-ink) !important;
  font-size: 16px !important; font-family: inherit !important; line-height: 1.4 !important; box-shadow: none !important; outline: none !important;
  -webkit-appearance: none !important; appearance: none !important;
}
.tcAtt-root select { background-image: linear-gradient(45deg, transparent 50%, #8b86a3 50%), linear-gradient(135deg, #8b86a3 50%, transparent 50%) !important; background-position: calc(100% - 16px) 18px, calc(100% - 11px) 18px !important; background-size: 5px 5px, 5px 5px !important; background-repeat: no-repeat !important; padding-right: 28px !important; }
.tcAtt-root textarea { height: 76px !important; padding: 8px 10px !important; resize: vertical !important; }
.tcAtt-root input:focus, .tcAtt-root select:focus, .tcAtt-root textarea:focus { border-color: var(--tcAtt-p1) !important; box-shadow: 0 0 0 3px rgba(102,126,234,.18) !important; }
.tcAtt-root input[readonly] { background: #f4f3f8 !important; color: var(--tcAtt-sub) !important; }
.tcAtt-grid2 { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 8px !important; }
.tcAtt-filters { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; gap: 8px !important; margin: 0 0 10px !important; }
.tcAtt-root .tcAtt-month { width: 150px !important; height: 36px !important; font-size: 14px !important; }

/* 按钮 */
.tcAtt-root .tcAtt-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; height: 40px !important; padding: 0 16px !important; margin: 0 !important; border-radius: 8px !important; border: 1px solid #d5c9f6 !important; background: #fff !important; color: #5a3fb0 !important; font-size: 14px !important; font-weight: 500 !important; font-family: inherit !important; line-height: 1 !important; cursor: pointer !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; text-decoration: none !important; white-space: nowrap !important; }
.tcAtt-root .tcAtt-btn-p { border: none !important; background: linear-gradient(135deg, var(--tcAtt-p1), var(--tcAtt-p2)) !important; color: #fff !important; }
.tcAtt-root .tcAtt-btn-d { border-color: #f3c4c4 !important; color: #c0392b !important; }
.tcAtt-root .tcAtt-btn-s { height: 30px !important; padding: 0 10px !important; font-size: 12px !important; }
.tcAtt-root .tcAtt-btn-block { display: flex !important; width: 100% !important; }
.tcAtt-root .tcAtt-btn:disabled, .tcAtt-root .is-busy { opacity: .55 !important; cursor: wait !important; }
.tcAtt-actions { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-top: 10px !important; }
.tcAtt-actions .tcAtt-btn { flex: 1 1 0 !important; }

/* 打卡区 */
.tcAtt-clock { text-align: center !important; padding: 20px 14px 24px !important; }
.tcAtt-now { font-size: 40px !important; font-weight: 600 !important; letter-spacing: 1px !important; font-variant-numeric: tabular-nums !important; color: var(--tcAtt-ink) !important; line-height: 1.2 !important; }
.tcAtt-today { font-size: 13px !important; color: var(--tcAtt-sub) !important; }
.tcAtt-shiftinfo { display: inline-block !important; margin: 10px 0 18px !important; padding: 5px 12px !important; border-radius: 16px !important; background: #f3f0fc !important; color: #5a3fb0 !important; font-size: 13px !important; }
.tcAtt-root .tcAtt-punch { display: flex !important; align-items: center !important; justify-content: center !important; width: 148px !important; height: 148px !important; margin: 0 auto !important; padding: 0 !important; border: none !important; border-radius: 50% !important; background: linear-gradient(135deg, var(--tcAtt-p1), var(--tcAtt-p2)) !important; color: #fff !important; font-size: 20px !important; font-weight: 600 !important; font-family: inherit !important; letter-spacing: 2px !important; cursor: pointer !important; box-shadow: 0 0 0 10px rgba(118,75,162,.10), 0 10px 24px rgba(102,126,234,.35) !important; -webkit-tap-highlight-color: transparent !important; }
.tcAtt-root .tcAtt-punch:active { transform: scale(.96) !important; }
.tcAtt-root .tcAtt-punch-out { background: linear-gradient(135deg, #f78ca0, #e0567a) !important; box-shadow: 0 0 0 10px rgba(224,86,122,.10), 0 10px 24px rgba(224,86,122,.30) !important; }

/* 统计 */
.tcAtt-stats { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 8px !important; margin-top: 6px !important; }
.tcAtt-stat { background: var(--tcAtt-bg) !important; border-radius: 10px !important; padding: 10px 4px !important; text-align: center !important; }
.tcAtt-stat-n { font-size: 22px !important; font-weight: 600 !important; line-height: 1.2 !important; font-variant-numeric: tabular-nums !important; }
.tcAtt-stat-l { font-size: 12px !important; color: var(--tcAtt-sub) !important; }
.tcAtt-stats-sub { margin-top: 8px !important; font-size: 12px !important; color: var(--tcAtt-sub) !important; text-align: center !important; }

/* 列表 */
.tcAtt-row { display: flex !important; justify-content: space-between !important; align-items: flex-start !important; gap: 10px !important; padding: 10px 0 !important; border-bottom: 1px solid var(--tcAtt-line) !important; }
.tcAtt-row:last-child { border-bottom: none !important; }
.tcAtt-row.is-off { opacity: .6 !important; }
.tcAtt-row-main { min-width: 0 !important; flex: 1 1 auto !important; word-break: break-word !important; }
.tcAtt-row-side { flex: 0 0 auto !important; text-align: right !important; font-size: 13px !important; color: var(--tcAtt-sub) !important; font-variant-numeric: tabular-nums !important; }
.tcAtt-row-btns { display: flex !important; flex-direction: column !important; align-items: flex-end !important; gap: 6px !important; }
.tcAtt-tags { display: flex !important; flex-wrap: wrap !important; gap: 4px !important; margin-top: 3px !important; }
.tcAtt-tags:empty { display: none !important; }
.tcAtt-reply { margin-top: 4px !important; padding: 6px 8px !important; border-radius: 6px !important; background: var(--tcAtt-bg) !important; font-size: 12px !important; color: var(--tcAtt-ink) !important; }

.tcAtt-pill { display: inline-block !important; padding: 1px 8px !important; border-radius: 10px !important; font-size: 11px !important; line-height: 18px !important; white-space: nowrap !important; }
.tcAtt-pill-ok { background: #e6f6ee !important; color: #13704a !important; }
.tcAtt-pill-ng { background: #fdecec !important; color: #b42828 !important; }
.tcAtt-pill-wait { background: #fdf2dc !important; color: #95600a !important; }
.tcAtt-pill-info { background: #e8effd !important; color: #2c55a8 !important; }
.tcAtt-pill-mute { background: #f0eff4 !important; color: #6e6a82 !important; }

/* 请假审批卡 */
.tcAtt-lv { padding: 12px !important; margin: 0 0 10px !important; border-radius: 10px !important; background: var(--tcAtt-bg) !important; }
.tcAtt-lv-reason { margin: 4px 0 !important; white-space: pre-wrap !important; word-break: break-word !important; }
.tcAtt-lv input { margin-top: 8px !important; }

/* 修改历史 */
.tcAtt-log { margin-top: 14px !important; padding-top: 10px !important; border-top: 1px dashed var(--tcAtt-line) !important; }
.tcAtt-log-i { margin-top: 6px !important; font-size: 12px !important; }

/* 排班表 */
.tcAtt-weeknav { display: flex !important; justify-content: space-between !important; align-items: center !important; margin: 0 0 10px !important; font-weight: 600 !important; }
.tcAtt-sch-wrap, .tcAtt-st-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; margin: 0 -4px !important; }
.tcAtt-root table.tcAtt-sch { width: 100% !important; min-width: 360px !important; margin: 0 !important; border-collapse: separate !important; border-spacing: 3px !important; border: none !important; table-layout: fixed !important; background: none !important; }
.tcAtt-root .tcAtt-sch th, .tcAtt-root .tcAtt-sch td { padding: 0 !important; border: none !important; background: none !important; text-align: center !important; vertical-align: middle !important; font-size: 11px !important; font-weight: 400 !important; line-height: 1.3 !important; color: var(--tcAtt-sub) !important; }
.tcAtt-root .tcAtt-sch th { padding-bottom: 4px !important; }
.tcAtt-root .tcAtt-sch th.is-we { color: #c0392b !important; }
.tcAtt-root .tcAtt-sch th.is-today { color: #5a3fb0 !important; font-weight: 600 !important; }
.tcAtt-root .tcAtt-sch .tcAtt-sch-name { width: 64px !important; text-align: left !important; font-size: 12px !important; color: var(--tcAtt-ink) !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; position: sticky !important; left: 0 !important; background: #fff !important; z-index: 1 !important; }
.tcAtt-root .tcAtt-cell { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; height: 36px !important; margin: 0 !important; padding: 0 !important; border: 1px solid transparent !important; border-radius: 6px !important; font-size: 13px !important; font-weight: 600 !important; font-style: normal !important; font-family: inherit !important; line-height: 1 !important; cursor: pointer !important; box-shadow: none !important; -webkit-tap-highlight-color: transparent !important; }
.tcAtt-root .tcAtt-cell-day { background: #ece8fb !important; color: #5a3fb0 !important; }
.tcAtt-root .tcAtt-cell-night { background: #e1e9fa !important; color: #2c55a8 !important; }
.tcAtt-root .tcAtt-cell-off { background: #f2f1f5 !important; color: #9a97a8 !important; }
.tcAtt-root .tcAtt-cell-leave { background: #fdf0d9 !important; color: #95600a !important; }
.tcAtt-root .tcAtt-cell.is-dflt { background: #fff !important; border: 1px dashed currentColor !important; font-weight: 400 !important; }
.tcAtt-legend { display: flex !important; flex-wrap: wrap !important; gap: 6px 14px !important; margin-top: 12px !important; font-size: 12px !important; color: var(--tcAtt-sub) !important; }
.tcAtt-legend span { display: inline-flex !important; align-items: center !important; gap: 5px !important; }
.tcAtt-root .tcAtt-legend .tcAtt-cell { width: 22px !important; height: 22px !important; font-size: 11px !important; cursor: default !important; }

/* 节假日 */
.tcAtt-root .tcAtt-sch .tcAtt-sch-hol { font-size: 10px !important; line-height: 1.2 !important; color: #c0392b !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.tcAtt-hol { display: inline-block !important; margin-top: 2px !important; padding: 0 6px !important; border-radius: 8px !important; background: #fdecec !important; color: #b42828 !important; font-size: 11px !important; line-height: 18px !important; }

/* 员工：我的排班 */
.tcAtt-wk { display: flex !important; gap: 12px !important; align-items: flex-start !important; padding: 10px 8px !important; border-bottom: 1px solid var(--tcAtt-line) !important; border-radius: 0 !important; }
.tcAtt-wk.is-today { background: #f7f4fe !important; border-radius: 10px !important; border-bottom-color: transparent !important; }
.tcAtt-wk-date { flex: 0 0 52px !important; text-align: center !important; }
.tcAtt-wk-date.is-red { color: #c0392b !important; }
.tcAtt-wk-d { font-size: 17px !important; font-weight: 600 !important; line-height: 1.2 !important; font-variant-numeric: tabular-nums !important; }
.tcAtt-wk-w { font-size: 11px !important; color: inherit !important; opacity: .8 !important; }
.tcAtt-wk-main { flex: 1 1 auto !important; min-width: 0 !important; display: flex !important; gap: 10px !important; align-items: flex-start !important; }
.tcAtt-root .tcAtt-wk-main .tcAtt-cell { flex: 0 0 34px !important; width: 34px !important; height: 34px !important; cursor: default !important; }

/* 统计表 */
.tcAtt-root table.tcAtt-st { width: 100% !important; min-width: 520px !important; margin: 0 !important; border-collapse: collapse !important; border: none !important; }
.tcAtt-root .tcAtt-st th, .tcAtt-root .tcAtt-st td { padding: 9px 6px !important; border: none !important; border-bottom: 1px solid var(--tcAtt-line) !important; background: none !important; text-align: right !important; font-size: 13px !important; font-variant-numeric: tabular-nums !important; white-space: nowrap !important; }
.tcAtt-root .tcAtt-st th { font-size: 12px !important; font-weight: 500 !important; color: var(--tcAtt-sub) !important; }
.tcAtt-root .tcAtt-st .tcAtt-st-name { text-align: left !important; position: sticky !important; left: 0 !important; background: #fff !important; }

@media (max-width: 768px) {
  .tcAtt-root { padding: 10px !important; }
  .tcAtt-head-name { font-size: 16px !important; }
}
@media (min-width: 769px) {
  .tcAtt-root { padding: 20px !important; border-radius: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .tcAtt-root .tcAtt-punch:active { transform: none !important; }
}

/* ===== v1.2 ===== */
/* 分段切换 */
.tcAtt-seg { display: flex !important; padding: 3px !important; margin: 0 0 10px !important; border-radius: 10px !important; background: var(--tcAtt-bg) !important; gap: 3px !important; }
.tcAtt-card > .tcAtt-seg:only-child { margin: 0 !important; }
.tcAtt-root .tcAtt-seg button { flex: 1 1 0 !important; height: 34px !important; margin: 0 !important; padding: 0 8px !important; border: none !important; border-radius: 8px !important; background: transparent !important; color: var(--tcAtt-sub) !important; font-size: 14px !important; font-weight: 500 !important; font-family: inherit !important; cursor: pointer !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1 !important; }
.tcAtt-root .tcAtt-seg button.is-on { background: #fff !important; color: #5a3fb0 !important; box-shadow: 0 1px 3px rgba(60,40,120,.12) !important; }

/* 日勤 / 夜勤 标记 */
.tcAtt-sp { display: inline-block !important; padding: 0 7px !important; border-radius: 6px !important; font-size: 12px !important; line-height: 20px !important; font-weight: 500 !important; vertical-align: 1px !important; }
.tcAtt-sp-day { background: #ece8fb !important; color: #5a3fb0 !important; }
.tcAtt-sp-night { background: #e1e9fa !important; color: #2c55a8 !important; }

/* 按天查看 */
.tcAtt-daynav { display: grid !important; grid-template-columns: auto minmax(0,1fr) auto !important; gap: 8px !important; align-items: center !important; margin: 0 0 8px !important; }
.tcAtt-root .tcAtt-daynav input { height: 34px !important; font-size: 15px !important; text-align: center !important; }
.tcAtt-daytitle { text-align: center !important; font-size: 16px !important; font-weight: 600 !important; margin: 4px 0 8px !important; }
.tcAtt-daytitle.is-red { color: #c0392b !important; }
.tcAtt-stat-n small { font-size: 14px !important; color: var(--tcAtt-sub) !important; font-weight: 400 !important; }
.tcAtt-clock-sum { margin-top: 20px !important; font-size: 13px !important; color: var(--tcAtt-sub) !important; }
.tcAtt-clock-sum b { color: var(--tcAtt-ink) !important; font-size: 15px !important; }
.tcAtt-clock-sum a { color: #5a3fb0 !important; text-decoration: none !important; border: none !important; }
.tcAtt-btnrow { display: flex !important; gap: 6px !important; }
.tcAtt-row-btns > span { font-size: 13px !important; }

/* 复选框（覆盖通用 input 样式） */
.tcAtt-check { display: flex !important; align-items: center !important; gap: 8px !important; margin: 4px 0 6px !important; font-size: 14px !important; cursor: pointer !important; }
.tcAtt-root input[type="checkbox"] { display: inline-block !important; width: 18px !important; height: 18px !important; padding: 0 !important; margin: 0 !important; -webkit-appearance: checkbox !important; appearance: auto !important; accent-color: #764ba2 !important; box-shadow: none !important; }

/* 出勤大名单表 */
.tcAtt-ro-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; margin: 0 -4px !important; }
.tcAtt-root table.tcAtt-ro { width: 100% !important; min-width: 760px !important; margin: 0 !important; border-collapse: collapse !important; border: none !important; }
.tcAtt-root .tcAtt-ro th, .tcAtt-root .tcAtt-ro td { padding: 7px 8px !important; border: 1px solid var(--tcAtt-line) !important; background: #fff !important; font-size: 13px !important; line-height: 1.4 !important; text-align: left !important; vertical-align: middle !important; white-space: nowrap !important; color: var(--tcAtt-ink) !important; }
.tcAtt-root .tcAtt-ro th { background: #f3f0fc !important; color: #4a3a8a !important; font-weight: 600 !important; font-size: 12px !important; text-align: center !important; }
.tcAtt-root .tcAtt-ro td.tcAtt-c { text-align: center !important; }
.tcAtt-root .tcAtt-ro tr.tcAtt-ro-grp td { background: var(--tcAtt-bg) !important; font-weight: 600 !important; color: #5a3fb0 !important; }
.tcAtt-root .tcAtt-ro tr.is-off td { color: #a8a5b5 !important; }
.tcAtt-root .tcAtt-ro td:last-child { border-left: none !important; width: 1% !important; }

/* ===== v1.3：シフトの未保存変更 ===== */
.tcAtt-pendbar { position: sticky !important; top: 8px !important; z-index: 5 !important; display: flex !important; align-items: center !important; gap: 8px !important; margin: 0 0 10px !important; padding: 8px 10px !important; border-radius: 10px !important; background: #fff7e6 !important; border: 1px solid #f5d28a !important; color: #7a4d00 !important; font-size: 13px !important; }
.tcAtt-pendbar span { flex: 1 1 auto !important; }
.tcAtt-pendbar b { font-size: 16px !important; }
.tcAtt-root .tcAtt-cell.is-pend { box-shadow: 0 0 0 2px #f0a500 !important; position: relative !important; }
.tcAtt-root .tcAtt-cell.is-pend::after { content: "" !important; position: absolute !important; top: 3px !important; right: 3px !important; width: 6px !important; height: 6px !important; border-radius: 50% !important; background: #f0a500 !important; }
.tcAtt-root .tcAtt-legend .tcAtt-cell.is-pend::after { top: 2px !important; right: 2px !important; width: 4px !important; height: 4px !important; }
.tcAtt-root .tcAtt-punch { font-size: 24px !important; letter-spacing: 4px !important; }

/* ===== v1.4：期間指定 ===== */
.tcAtt-range { margin-bottom: 2px !important; }
.tcAtt-root .tcAtt-range input[type="date"] { cursor: pointer !important; }
.tcAtt-rangelabel { text-align: center !important; font-size: 13px !important; color: #5a3fb0 !important; font-weight: 500 !important; margin: 0 0 8px !important; }

/* ===== v1.6：出勤確認 ===== */
.tcAtt-cfbanner { margin: 0 0 12px !important; padding: 12px 14px !important; border-radius: 12px !important; background: #fff7e6 !important; border: 1px solid #f5d28a !important; color: #6b4300 !important; }
.tcAtt-cfbanner.is-re { background: #fdecec !important; border-color: #f3c4c4 !important; color: #8a1f1f !important; }
.tcAtt-cfbanner-t { font-size: 15px !important; font-weight: 600 !important; margin: 0 0 2px !important; }
.tcAtt-cfbanner-s { font-size: 13px !important; margin: 0 0 10px !important; line-height: 1.5 !important; }
.tcAtt-chips { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; margin: 0 0 6px !important; }
.tcAtt-root .tcAtt-chip { height: 30px !important; margin: 0 !important; padding: 0 12px !important; border: 1px solid var(--tcAtt-line) !important; border-radius: 15px !important; background: #fff !important; color: var(--tcAtt-sub) !important; font-size: 12px !important; font-family: inherit !important; line-height: 1 !important; cursor: pointer !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0 !important; }
.tcAtt-root .tcAtt-chip.is-on { background: #efeafc !important; border-color: #d5c9f6 !important; color: #5a3fb0 !important; font-weight: 600 !important; }
.tcAtt-cmp { margin: 8px 0 !important; padding: 8px 10px !important; border-radius: 8px !important; background: #fdecec !important; color: #8a1f1f !important; font-size: 12px !important; line-height: 1.7 !important; }
.tcAtt-cfset { margin-top: 12px !important; padding-top: 12px !important; border-top: 1px dashed var(--tcAtt-line) !important; }

/* ===== v1.7：申請（打刻修正・シフト変更）===== */
/* 審査結果のお知らせ */
.tcAtt-notice { position: relative !important; margin: 0 0 12px !important; padding: 10px 40px 10px 14px !important; border-radius: 12px !important; font-size: 13px !important; line-height: 1.6 !important; }
.tcAtt-notice.is-ok { background: #e6f6ee !important; border: 1px solid #b9e3cc !important; color: #0f5e3d !important; }
.tcAtt-notice.is-ng { background: #fdecec !important; border: 1px solid #f3c4c4 !important; color: #8a1f1f !important; }
.tcAtt-notice-t { font-weight: 600 !important; font-size: 14px !important; }
.tcAtt-notice-s { font-size: 12px !important; }
.tcAtt-root .tcAtt-notice-x { position: absolute !important; top: 6px !important; right: 6px !important; width: 30px !important; height: 30px !important; margin: 0 !important; padding: 0 !important; border: none !important; border-radius: 50% !important; background: transparent !important; color: inherit !important; font-size: 18px !important; line-height: 1 !important; cursor: pointer !important; box-shadow: none !important; opacity: .7 !important; }

/* 申請の種類 */
.tcAtt-rt { display: inline-block !important; padding: 1px 8px !important; border-radius: 10px !important; font-size: 11px !important; line-height: 18px !important; font-weight: 500 !important; white-space: nowrap !important; vertical-align: 1px !important; }
.tcAtt-rt-leave { background: #fdf0d9 !important; color: #95600a !important; }
.tcAtt-rt-punch { background: #ece8fb !important; color: #5a3fb0 !important; }
.tcAtt-rt-shift { background: #e1e9fa !important; color: #2c55a8 !important; }
.tcAtt-chg { font-size: 13px !important; margin: 3px 0 !important; display: flex !important; align-items: center !important; gap: 4px !important; flex-wrap: wrap !important; }
.tcAtt-root .tcAtt-cell.tcAtt-cell-xs { display: inline-flex !important; width: 24px !important; height: 22px !important; font-size: 11px !important; cursor: default !important; }

/* スタッフのシフト変更：タップ切替 */
.tcAtt-root .tcAtt-shbtn { display: inline-flex !important; align-items: center !important; gap: 4px !important; flex: 0 0 auto !important; margin: 0 !important; padding: 0 !important; border: none !important; background: transparent !important; cursor: pointer !important; box-shadow: none !important; -webkit-tap-highlight-color: transparent !important; }
.tcAtt-root .tcAtt-shbtn .tcAtt-cell { width: 34px !important; height: 34px !important; flex: 0 0 34px !important; cursor: pointer !important; }
.tcAtt-root .tcAtt-cell.is-old { opacity: .4 !important; text-decoration: line-through !important; }
.tcAtt-arrow { color: var(--tcAtt-sub) !important; font-size: 12px !important; }
.tcAtt-shbar { position: sticky !important; bottom: 8px !important; z-index: 5 !important; margin: 10px 0 0 !important; padding: 10px 12px !important; border-radius: 10px !important; background: #fff7e6 !important; border: 1px solid #f5d28a !important; color: #6b4300 !important; font-size: 13px !important; box-shadow: 0 4px 14px rgba(0,0,0,.08) !important; }
.tcAtt-shbar b { font-size: 16px !important; }
.tcAtt-shbar .tcAtt-field { margin: 8px 0 0 !important; }
.tcAtt-root .tcAtt-shbar textarea { height: 56px !important; }
