.k-bid    { --k-dot: #EF4444; --k-bg: #FEE2E2; --k-fg: #991B1B; }
.k-doc    { --k-dot: #F59E0B; --k-bg: #FEF3C7; --k-fg: #92400E; }
.k-reg    { --k-dot: var(--brand-600); --k-bg: var(--brand-tint); --k-fg: var(--brand-700); }
.k-meet   { --k-dot: #6B7280; --k-bg: #F3F4F6; --k-fg: #374151; }
.k-open   { --k-dot: #3B82F6; --k-bg: #EFF6FF; --k-fg: #1E40AF; }
.k-notice, .k-start, .k-info { --k-dot: #CBD5E1; --k-bg: #F8FAFC; --k-fg: #64748B; }

.sch-tag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 7px; border-radius: 6px; background: var(--k-bg); color: var(--k-fg); font-size: 0.72rem; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; line-height: 1.5; }
.sch-dday { display: inline-flex; padding: 2px 7px; border-radius: 6px; background: #F3F4F6; color: #374151; font-size: 0.72rem; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; line-height: 1.5; }
.sch-dday.is-today { background: #FEE2E2; color: #991B1B; }
.sch-dday.is-past { background: transparent; color: #9CA3AF; font-weight: 600; padding-left: 0; padding-right: 0; }
.sch-st { display: inline-flex; padding: 2px 7px; border-radius: 6px; font-size: 0.66rem; font-weight: 600; line-height: 1.5; white-space: nowrap; }
.sch-st-open    { background: #FFF7ED; color: #EA580C; }
.sch-st-waiting { background: #EFF6FF; color: #2563EB; }
.sch-st-closed  { background: #F0FDF4; color: #16A34A; }
.sch-st-cancel  { background: #F3F4F6; color: #6B7280; text-decoration: line-through; }
.sch-st-unknown { background: #F3F4F6; color: #6B7280; }

.fav-view-toggle { flex: 0 0 auto; flex-wrap: nowrap; }
.fav-view-toggle .btn { font-size: 0.78rem; white-space: nowrap; }
.fav-view-toggle .btn.active { background: var(--brand-tint); border-color: var(--brand-600); color: var(--brand-700); z-index: 1; }

.fav-cal { padding: 1rem 1.5rem 1.5rem; }
.fav-cal-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 0.9rem; }
.fav-cal-nav { display: flex; align-items: center; gap: 0.4rem; }
.fav-cal-nav .btn { font-size: 0.78rem; }
.fav-cal-title { margin: 0 0.35rem; min-width: 7.5rem; text-align: center; font-size: 1.05rem; font-weight: 700; color: #111827; font-variant-numeric: tabular-nums; }
.fav-cal-legend { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; font-size: 0.8rem; color: #64748B; }
.fav-cal-key { display: inline-flex; align-items: center; gap: 0.35rem; }
.fav-cal-key::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--k-dot); }
.fav-cal-week, .fav-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.fav-cal-week span { padding: 0.4rem 0.5rem; font-size: 0.75rem; font-weight: 700; color: #6B7280; text-align: left; }
.fav-cal-week span:first-child { color: #EF4444; }
.fav-cal-week span:last-child { color: #3B82F6; }
.fav-cal-grid { border-top: 1px solid #E5E7EB; border-left: 1px solid #E5E7EB; border-radius: 12px; overflow: hidden; }
.fav-cal-cell { min-height: 118px; padding: 0.35rem 0.4rem 0.45rem; border-right: 1px solid #E5E7EB; border-bottom: 1px solid #E5E7EB; background: #fff; cursor: pointer; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fav-cal-cell:hover { background: #F8FAFC; }
.fav-cal-cell.is-other { background: #F8FAFC; }
.fav-cal-cell.is-other .fav-cal-num { color: #9CA3AF; }
.fav-cal-cell.is-sel { background: var(--brand-tint); box-shadow: inset 0 0 0 1.5px var(--brand-600); }
.fav-cal-cell:focus-visible { outline: 2px solid var(--brand-600); outline-offset: -2px; }
.fav-cal-num { align-self: flex-start; min-width: 1.6rem; height: 1.6rem; padding: 0 0.3rem; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 600; color: #374151; font-variant-numeric: tabular-nums; }
.fav-cal-cell.is-sun .fav-cal-num { color: #EF4444; }
.fav-cal-cell.is-sat .fav-cal-num { color: #3B82F6; }
.fav-cal-cell.is-today .fav-cal-num { background: var(--brand-600); color: #fff; }
.fav-cal-evs { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fav-cal-ev { display: flex; align-items: baseline; gap: 4px; min-width: 0; width: 100%; padding: 3px 6px; border: 0; border-radius: 6px; background: var(--k-bg); color: var(--k-fg); font-size: 0.8rem; font-weight: 600; line-height: 1.45; text-align: left; cursor: pointer; }
.fav-cal-ev:hover { filter: brightness(0.96); }
.fav-cal-ev:focus-visible { outline: 2px solid var(--k-dot); outline-offset: 1px; }
.fav-cal-ev-t { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.fav-cal-ev-n { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fav-cal-ev.is-past, .fav-cal-dot.is-past { opacity: 0.75; }
.fav-cal-ev-k { flex: 0 0 auto; font-weight: 700; }
.fav-cal-more { align-self: flex-start; border: 0; background: transparent; padding: 0 6px; font-size: 0.72rem; font-weight: 600; color: #64748B; }
.fav-cal-more:hover { color: #111827; }
.fav-cal-dots { display: none; flex-wrap: wrap; justify-content: center; gap: 3px; }
.fav-cal-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--k-dot); }
.fav-cal-day { margin-top: 1.25rem; }
.fav-cal-day-head { display: flex; align-items: baseline; gap: 0.5rem; padding-bottom: 0.6rem; border-bottom: 1px solid #E5E7EB; }
.fav-cal-day-head h3 { margin: 0; font-size: 1.05rem; font-weight: 700; color: #111827; }
.fav-cal-day-head span { font-size: 0.8rem; color: #64748B; }
.fav-cal-list { list-style: none; margin: 0; padding: 0; }
.fav-cal-item { display: grid; grid-template-columns: 230px minmax(0, 1fr); column-gap: 1rem; row-gap: 2px; padding: 0.75rem 0; border-bottom: 1px solid #F3F4F6; }
.fav-cal-item:last-child { border-bottom: 0; }
.fav-cal-when { grid-row: span 2; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 4px; }
.fav-cal-empty { padding: 1.5rem 0 0.5rem; margin: 0; text-align: center; font-size: 0.9rem; color: #64748B; }

.sch-open-btn { display: inline; padding: 0; border: 0; background: transparent; text-align: left; font-size: 0.95rem; font-weight: 600; color: #0F172A; line-height: 1.45; word-break: keep-all; overflow-wrap: anywhere; cursor: pointer; }
.sch-open-btn:hover { color: var(--brand-700); text-decoration: underline; text-underline-offset: 3px; }
.sch-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; font-size: 0.8rem; color: #64748B; }
.sch-meta .sch-no { color: #9CA3AF; }
.sch-fav { color: #F59E0B; font-size: 0.72rem; }

.sch-modal-backdrop { position: fixed; inset: 0; z-index: 2000; background: rgba(11,15,20,.58); display: flex; align-items: center; justify-content: center; padding: 16px; }
.sch-modal-backdrop[hidden] { display: none !important; }
.sch-modal { position: relative; width: 100%; max-width: 600px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; background: #fff; border-radius: 16px; box-shadow: 0 24px 60px rgba(11,15,20,.35); outline: none; }
.sch-modal-x { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 0; border-radius: 10px; background: transparent; color: #64748B; display: grid; place-items: center; cursor: pointer; }
.sch-modal-x:hover { background: #F1F5F9; color: #111827; }
.sch-modal-head { padding: 26px 28px 14px; border-bottom: 1px solid #F3F4F6; }
.sch-modal-sub { margin: 0 0 4px; padding-right: 36px; font-size: 0.9rem; color: #64748B; }
.sch-modal-title { margin: 0 0 8px; padding-right: 36px; font-size: 1.35rem; font-weight: 700; color: #111827; letter-spacing: -0.02em; line-height: 1.4; word-break: keep-all; overflow-wrap: anywhere; }
.sch-modal-body { padding: 10px 28px 6px; overflow-y: auto; }
.sch-tl { list-style: none; margin: 0; padding: 0; }
.sch-tl-item { position: relative; display: grid; grid-template-columns: 14px 132px minmax(0, 1fr); column-gap: 10px; align-items: baseline; padding: 9px 10px; border-radius: 10px; }
.sch-tl-item::before { content: ''; grid-column: 1; width: 9px; height: 9px; border-radius: 999px; background: var(--k-dot); transform: translateY(-1px); }
.sch-tl-item.is-past { opacity: 0.5; }
.sch-tl-item.is-focus { background: var(--brand-tint); opacity: 1; }
.sch-tl-when { font-size: 0.9rem; font-weight: 600; color: #111827; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sch-tl-what { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 0.9rem; color: #374151; min-width: 0; }
.sch-tl-item.k-bid .sch-tl-what, .sch-tl-item.k-doc .sch-tl-what, .sch-tl-item.k-reg .sch-tl-what { font-weight: 600; color: #111827; }
.sch-tl-place { grid-column: 3; font-size: 0.8rem; color: #64748B; }
.sch-modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 28px 22px; border-top: 1px solid #F3F4F6; }
.sch-modal-foot .btn { border-radius: 10px; font-weight: 700; }

.td-body { background: #F3F4F6; }
.td-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 1.25rem; }
.td-head-links { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.td-daygroup, .td-linkgroup { display: flex; align-items: center; gap: 0.5rem; }
.td-daynav { display: flex; align-items: stretch; height: 38px; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 10px; box-shadow: 0 1px 4px rgba(17,24,39,.05); overflow: hidden; }
.td-daynav-arrow { display: grid; place-items: center; width: 36px; color: #64748B; font-size: 0.8rem; text-decoration: none; }
.td-daynav-arrow:hover { background: #F8FAFC; color: var(--brand-700); }
.td-daynav-label { display: flex; align-items: center; justify-content: center; min-width: 8.5rem; padding: 0 0.75rem; border-left: 1px solid #F3F4F6; border-right: 1px solid #F3F4F6; font-size: 0.9rem; font-weight: 700; color: #111827; white-space: nowrap; font-variant-numeric: tabular-nums; }
.td-daynav-label.is-today { color: var(--brand-700); }
.td-tool { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 38px; padding: 0 0.9rem; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 10px; box-shadow: 0 1px 4px rgba(17,24,39,.05); color: #374151; font-size: 0.85rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.td-tool i { color: #9CA3AF; font-size: 0.8rem; }
.td-tool:hover { border-color: var(--brand-600); color: var(--brand-700); }
.td-tool:hover i { color: var(--brand-600); }
.td-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.75rem; margin-bottom: 1.25rem; }
.td-kpi { display: block; padding: 1rem 1.25rem; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 12px; box-shadow: 0 1px 4px rgba(17,24,39,.05); text-decoration: none; }
.td-kpi:hover { border-color: var(--brand-600); }
.td-kpi-label { display: block; font-size: 0.8rem; color: #64748B; }
.td-kpi-val { display: block; margin-top: 2px; font-size: 1.5rem; font-weight: 700; color: #111827; line-height: 1.2; font-variant-numeric: tabular-nums; }
.td-kpi-val small { margin-left: 2px; font-size: 0.9rem; font-weight: 600; color: #64748B; }
.td-kpi.is-alert .td-kpi-val { color: #B91C1C; }
.td-sect { margin-bottom: 1rem; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 12px; box-shadow: 0 1px 4px rgba(17,24,39,.05); overflow: hidden; scroll-margin-top: 80px; }
.td-sect-head { display: flex; align-items: baseline; gap: 0.5rem; padding: 0.9rem 1.25rem; border-bottom: 1px solid #F3F4F6; }
.td-sect-head h2 { margin: 0; font-size: 1.05rem; font-weight: 700; color: #111827; }
.td-sect-head span { font-size: 0.8rem; color: #64748B; }
.td-day { padding: 0.5rem 1.25rem; background: #F8FAFC; border-bottom: 1px solid #F3F4F6; font-size: 0.8rem; font-weight: 700; color: #374151; }
.td-list { list-style: none; margin: 0; padding: 0; }
.td-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; column-gap: 0.75rem; align-items: start; padding: 0.8rem 1.25rem; border-bottom: 1px solid #F3F4F6; }
.td-list:last-child .td-item:last-child { border-bottom: 0; }
.td-check { padding-top: 2px; }
.td-check .form-check-input { margin: 0; cursor: pointer; border-color: #CBD5E1; }
.td-check .form-check-input:checked { background-color: var(--brand-600); border-color: var(--brand-600); }
.td-check .form-check-input:focus { border-color: var(--brand-600); box-shadow: 0 0 0 3px rgba(13,158,130,.18); }
.td-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.td-when { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.td-item.is-done .sch-open-btn { color: #9CA3AF; text-decoration: line-through; }
.td-item.is-done .td-when, .td-item.is-done .sch-meta { opacity: 0.55; }
.td-aside { padding-top: 1px; }
.td-sub { font-size: 0.8rem; color: #64748B; }
.td-flag { display: inline-flex; padding: 1px 7px; border: 1px solid #FDE68A; border-radius: 6px; background: #FFFBEB; color: #92400E; font-size: 0.72rem; font-weight: 700; line-height: 1.5; white-space: nowrap; }
.td-renew-title { font-size: 0.95rem; font-weight: 600; color: #0F172A; word-break: keep-all; overflow-wrap: anywhere; }
.td-changes { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; font-size: 0.8rem; color: #374151; font-variant-numeric: tabular-nums; }
.td-changes li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; }
.td-changes .td-chg-k { min-width: 7.5rem; color: #64748B; }
.td-changes b { font-weight: 600; color: #111827; }
.td-acts { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 0.8rem; color: #92400E; }
.td-acts b { font-weight: 700; }
.td-acts span + span::before { content: '·'; margin-right: 8px; color: #D97706; }
.td-item.is-done .td-renew-title { color: #9CA3AF; text-decoration: line-through; }
.td-item.is-done .td-changes { opacity: 0.55; }
.td-item--plain { grid-template-columns: minmax(0, 1fr) auto; }
.td-sect-head .fav-view-toggle { margin-left: auto; align-self: center; }
.td-search { display: flex; gap: 0.5rem; padding: 0.75rem 1.25rem; border-bottom: 1px solid #F3F4F6; }
.td-search .form-control { border-radius: 10px; font-size: 0.9rem; }
.td-search .btn { border-radius: 10px; }
.td-more { display: block; padding: 0.7rem 1.25rem; border-top: 1px solid #F3F4F6; font-size: 0.8rem; font-weight: 600; color: var(--brand-700); text-decoration: none; }
.td-more:hover { color: var(--brand-600); background: #F8FAFC; }
.td-empty { margin: 0; padding: 1.1rem 1.25rem; font-size: 0.9rem; color: #64748B; }

button.td-kpi { width: 100%; text-align: left; font: inherit; cursor: pointer; }
.tk-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 0.6rem 0.9rem; padding: 0.9rem 1.25rem; border-bottom: 1px solid #F3F4F6; }
.tk-filters { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.tk-chip { padding: 3px 10px; border: 1px solid #E5E7EB; border-radius: 999px; background: #fff; color: #374151; font-size: 0.8rem; font-weight: 600; cursor: pointer; }
.tk-chip:hover { border-color: #D1D5DB; background: #F8FAFC; }
.tk-chip.is-on { border-color: var(--brand-600); background: var(--brand-tint); color: var(--brand-700); }
.tk-add { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; padding: 0.7rem 1.25rem; border-bottom: 1px solid #F3F4F6; background: #F8FAFC; }
.tk-add-ico { color: #9CA3AF; font-size: 0.8rem; }
.tk-add-title { flex: 1 1 160px; min-width: 0; padding: 6px 0; border: 0; background: transparent; font-size: 0.95rem; color: #111827; outline: none; }
.tk-add-title::placeholder { color: #9CA3AF; }
.tk-add-date { width: 9.5rem; border-radius: 10px; font-size: 0.8rem; }
.tk-add-time { width: 7rem; border-radius: 10px; font-size: 0.8rem; }
.tk-add-notice { width: 11rem; max-width: 11rem; border-radius: 10px; font-size: 0.8rem; }
.tk-add-btn { border-radius: 10px; font-weight: 700; }
.tk-body { padding: 0.25rem 0 0.5rem; }
.tk-body.is-notice .tk-notice { display: none; }
.tk-group { padding-bottom: 0.25rem; }
.tk-group-head { display: flex; align-items: center; gap: 0.4rem; width: 100%; padding: 0.7rem 1.25rem 0.35rem; border: 0; background: transparent; font-size: 0.8rem; font-weight: 700; color: #374151; text-align: left; }
.tk-group-head em { font-style: normal; font-weight: 600; color: #9CA3AF; }
.tk-group-head.is-over { color: #B91C1C; }
.tk-group-head i { margin-left: auto; color: #9CA3AF; font-size: 0.72rem; }
.tk-toggle { cursor: pointer; border-top: 1px solid #F3F4F6; margin-top: 0.4rem; padding-top: 0.75rem; }
.tk-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 0.75rem; align-items: start; padding: 0.6rem 1.25rem; border-bottom: 1px solid #F3F4F6; }
.tk-row:hover { background: #FAFAFB; }
.tk-main { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tk-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 0.95rem; font-weight: 600; color: #0F172A; word-break: keep-all; overflow-wrap: anywhere; }
.s-done .tk-title > span:not(.tk-dot), .s-skip .tk-title > span:not(.tk-dot) { color: #9CA3AF; text-decoration: line-through; }
.tk-dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 999px; background: var(--k-dot); }
.tk-mine { padding: 0 6px; border-radius: 6px; background: #F3F4F6; color: #64748B; font-size: 0.72rem; font-weight: 600; }
.tk-props { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; font-size: 0.8rem; color: #64748B; min-width: 0; }
.tk-notice { max-width: 100%; padding: 0; border: 0; background: transparent; color: #374151; font-size: 0.8rem; font-weight: 600; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.tk-notice:hover { color: var(--brand-700); text-decoration: underline; text-underline-offset: 3px; }
.tk-ref { color: #374151; font-weight: 600; }
.tk-ctx { color: #64748B; }
.tk-side { display: flex; align-items: center; gap: 0.5rem; padding-top: 1px; white-space: nowrap; }
.tk-due { font-size: 0.8rem; font-weight: 600; color: #374151; font-variant-numeric: tabular-nums; }
.tk-due.is-today { color: #92400E; }
.tk-due.is-soon { color: #374151; }
.tk-due.is-over { color: #B91C1C; }
.tk-due.is-none { color: #9CA3AF; font-weight: 400; }
.tk-status { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border: 1px solid transparent; border-radius: 999px; font-size: 0.72rem; font-weight: 700; line-height: 1.5; cursor: pointer; }
.tk-status i { font-size: 0.6rem; opacity: 0.7; }
.tk-status:disabled { cursor: default; }
.tk-status.st-todo { background: #F3F4F6; color: #374151; border-color: #E5E7EB; }
.tk-status.st-doing { background: #EFF6FF; color: #1E40AF; border-color: #DBEAFE; }
.tk-status.st-done { background: #ECFDF5; color: #047857; border-color: #D1FAE5; }
.tk-status.st-skip { background: #F8FAFC; color: #9CA3AF; border-color: #E5E7EB; }
.tk-status.st-wait { background: #F1F5F9; color: #475569; border-color: #E2E8F0; }
.tk-go-group .tk-group-head { color: #0B7C68; }
.tk-more { display: block; width: 100%; padding: 10px 16px; border: 0; border-top: 1px solid #F3F4F6; background: transparent; color: var(--brand-700); font-size: 0.82rem; font-weight: 600; text-align: center; text-decoration: none; cursor: pointer; }
.tk-more:hover { background: #F8FAFC; color: var(--brand-700); }
.tk-menu { position: absolute; z-index: 1900; min-width: 132px; padding: 4px; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 10px; box-shadow: 0 4px 14px rgba(17,24,39,.08); display: flex; flex-direction: column; }
.tk-menu button { padding: 6px 8px; border: 0; border-radius: 6px; background: transparent; text-align: left; cursor: pointer; }
.tk-menu button:hover, .tk-menu button:focus-visible { background: #F3F4F6; outline: none; }
.tk-menu button.is-on { background: #F8FAFC; }
.tk-menu .is-danger { color: #B91C1C; font-size: 0.8rem; font-weight: 600; }
.tk-ngroup { margin: 0.75rem 1.25rem; border: 1.5px solid #E5E7EB; border-radius: 12px; overflow: hidden; }
.tk-ngroup .tk-row { padding-left: 0.9rem; padding-right: 0.9rem; }
.tk-ngroup .tk-row:last-child { border-bottom: 0; }
.tk-ng-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; padding: 0.75rem 0.9rem; background: #F8FAFC; border-bottom: 1px solid #F3F4F6; }
.tk-ng-title { min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 0.95rem; font-weight: 600; color: #0F172A; }
.tk-prog-wrap { display: flex; align-items: center; gap: 0.5rem; flex: 0 0 auto; padding-top: 3px; }
.tk-prog-n { font-size: 0.8rem; font-weight: 600; color: #64748B; font-variant-numeric: tabular-nums; }
.tk-prog { width: 64px; height: 4px; border-radius: 999px; background: #E5E7EB; overflow: hidden; }
.tk-prog span { display: block; height: 100%; background: var(--brand-600); }
.tk-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; padding: 0.9rem 1.25rem 1rem; }
.tk-col { display: flex; flex-direction: column; min-width: 0; background: #F8FAFC; border: 1px solid #F3F4F6; border-radius: 12px; }
.tk-col.is-over { border-color: var(--brand-600); background: var(--brand-tint); }
.tk-col-head { display: flex; align-items: center; gap: 0.4rem; padding: 0.65rem 0.8rem 0.4rem; font-size: 0.8rem; font-weight: 700; color: #374151; }
.tk-col-head em { font-style: normal; font-weight: 600; color: #9CA3AF; }
.tk-col-body { display: flex; flex-direction: column; gap: 0.5rem; padding: 0 0.6rem 0.7rem; min-height: 80px; }
.tk-col-empty { margin: 0.5rem 0.2rem; font-size: 0.8rem; color: #9CA3AF; }
.tk-card { display: flex; flex-direction: column; gap: 4px; padding: 0.6rem 0.7rem; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 12px; box-shadow: 0 1px 4px rgba(17,24,39,.05); cursor: grab; }
.tk-card.is-drag { opacity: 0.5; }
.tk-card .tk-title { font-size: 0.9rem; }
.tk-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-top: 2px; }
.tk-focus { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem 1.25rem; padding: 1.1rem 1.25rem 1rem; border-bottom: 1px solid #F3F4F6; }
.tk-focus-main { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.tk-focus-title { font-size: 1.15rem; font-weight: 700; color: #111827; line-height: 1.3; }
.tk-focus-title b { color: #B91C1C; font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.tk-focus.is-clear .tk-focus-title { color: var(--brand-700); }
.tk-focus-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; font-size: 0.85rem; color: #64748B; }
.tk-focus-sub .tk-prog { width: 120px; height: 6px; }
.tk-focus-n { font-weight: 700; color: #374151; font-variant-numeric: tabular-nums; }
.tk-focus-sub .is-over { color: #B91C1C; font-weight: 600; }
.tk-focus-stats { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.tk-stat { padding: 4px 11px; border: 1px solid #E5E7EB; border-radius: 999px; background: #fff; color: #64748B; font-size: 0.8rem; font-weight: 600; cursor: pointer; }
.tk-stat b { margin-left: 2px; color: #111827; font-variant-numeric: tabular-nums; }
.tk-stat:hover { border-color: var(--brand-600); color: var(--brand-700); }
.tk-stat.is-alert b { color: #B91C1C; }
.tk-new { padding: 0 6px; border-radius: 6px; background: var(--brand-tint); color: var(--brand-700); font-size: 0.72rem; font-weight: 700; }
.tk-auto { padding: 1px 7px; border-radius: 6px; background: #F3F4F6; color: #64748B; font-size: 0.72rem; font-weight: 600; white-space: nowrap; }
.td-flag.is-warn { border-color: #FECACA; background: #FEF2F2; color: #B91C1C; }
.tk-act.is-go { border-color: var(--brand-600); color: var(--brand-700); }
.tk-act.is-go:hover { background: var(--brand-tint); }
.tk-act.is-quiet { margin-left: auto; border-color: transparent; background: transparent; color: #64748B; font-weight: 500; }
.tk-req-line { margin-top: 2px; }
.tk-rec { display: inline-flex; align-items: center; gap: 4px; padding: 0 7px; border-radius: 6px; background: #ECFDF5; color: #047857; font-size: 0.72rem; font-weight: 600; white-space: nowrap; }
.tk-rec i { font-size: 0.6rem; }
.tk-recf { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-top: 8px; padding: 10px 12px; border: 1px solid #D1FAE5; border-radius: 10px; background: #F0FDF9; font-size: 0.82rem; }
.tk-recf-c { display: inline-flex; align-items: center; gap: 6px; color: #111827; font-weight: 600; cursor: pointer; }
.tk-recf-c input { width: 16px; height: 16px; accent-color: var(--brand-600); }
.tk-recf-a { display: inline-flex; align-items: center; gap: 6px; color: #374151; }
.tk-recf-a input { width: 150px; padding: 3px 8px; border: 1px solid #D1D5DB; border-radius: 8px; font-size: 0.85rem; text-align: right; font-variant-numeric: tabular-nums; }
.tk-recf-a input:focus { outline: 0; border-color: var(--brand-600); box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15); }
.tk-recf-b { display: inline-flex; gap: 6px; margin-left: auto; }
.tk-who-box { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; margin-right: 8px; }
.tk-who { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; border: 1px solid #E5E7EB; border-radius: 999px; background: #fff; color: #374151; font-size: 0.74rem; font-weight: 600; cursor: pointer; }
.tk-who i { font-size: 0.68rem; color: #64748B; }
.tk-who.is-empty { border-style: dashed; color: #64748B; font-weight: 500; }
.tk-who:hover { border-color: var(--brand-600); color: var(--brand-700); }
.tk-who-input { width: 110px; padding: 2px 8px; border: 1px solid #D1D5DB; border-radius: 8px; font-size: 0.8rem; }
.tk-who-tag { padding: 0 7px; border-radius: 6px; background: #F3F4F6; color: #374151; font-size: 0.72rem; font-weight: 600; white-space: nowrap; }
.tk-docs { margin-top: 12px; padding-top: 10px; border-top: 1px solid #F3F4F6; }
.tk-docs-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; color: #111827; font-size: 0.85rem; font-weight: 700; }
.tk-docs-h a { color: var(--brand-700); font-size: 0.78rem; font-weight: 600; text-decoration: none; }
.tk-docs-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
.tk-docs-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 3px 0; font-size: 0.8rem; border-bottom: 1px dashed #F3F4F6; }
.tk-doc-n { min-width: 0; overflow: hidden; color: #1F2937; text-overflow: ellipsis; white-space: nowrap; }
.tk-doc-st { flex: none; padding: 0 7px; border-radius: 6px; font-size: 0.7rem; font-weight: 700; white-space: nowrap; }
.tk-doc-st.is-ok { background: #ECFDF5; color: #047857; }
.tk-doc-st.is-soon { background: #FEF3C7; color: #92400E; }
.tk-doc-st.is-over { background: #FEE2E2; color: #991B1B; }
.tk-doc-st.is-none { background: #F3F4F6; color: #64748B; }
.tk-doc-st.is-form { background: #EFF6FF; color: #1E40AF; }
.tk-guide { margin-bottom: 10px; padding: 10px 14px; border: 1px solid #E5E7EB; border-radius: 10px; background: #F8FAFC; }
.tk-guide-h { margin-bottom: 4px; color: #111827; font-size: 0.85rem; font-weight: 700; }
.tk-guide dl { margin: 0; }
.tk-guide dl > div { display: grid; grid-template-columns: 64px 1fr; gap: 8px; padding: 3px 0; font-size: 0.8rem; line-height: 1.45; }
.tk-guide dt { margin: 0; color: #64748B; font-weight: 600; }
.tk-guide dd { margin: 0; color: #1F2937; }
.tk-act.is-quiet:hover { border-color: #E5E7EB; color: #374151; }
.tk-req { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 8px; font-size: 0.76rem; font-weight: 600; }
.tk-req i { font-size: 0.66rem; }
.tk-req.is-ok { background: #ECFDF5; color: #047857; }
.tk-req.is-no { background: #FFFBEB; color: #92400E; }
.tk-acts { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin-top: 6px; }
.tk-act { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border: 1px solid #E5E7EB; border-radius: 10px; background: #fff; color: #374151; font-size: 0.78rem; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; }
.tk-act i { font-size: 0.68rem; color: #9CA3AF; }
.tk-act:hover { border-color: var(--brand-600); color: var(--brand-700); }
.tk-act.is-ai { background: var(--brand-700); border-color: var(--brand-700); color: #fff; }
.tk-act.is-ai i { color: #fff; }
.tk-act.is-ai:hover { background: #0A5F50; border-color: #0A5F50; color: #fff; }
.tk-act.is-ai.is-urgent { background: #B45309; border-color: #B45309; }
.tk-act.is-ai.is-urgent:hover { background: #92400E; border-color: #92400E; }
.tk-step-done { display: inline-flex; align-items: center; gap: 4px; padding: 0 7px; border-radius: 6px; background: var(--brand-tint); color: var(--brand-700); font-size: 0.72rem; font-weight: 700; }
.tk-step-done i { font-size: 0.6rem; }
.tk-price { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 10px; border: 1px solid #D1FAE5; border-radius: 10px; background: #F0FDF9; font-size: 0.78rem; }
.tk-price-k { color: #047857; font-weight: 600; }
.tk-price b { color: #111827; font-variant-numeric: tabular-nums; }
.tk-price-u { padding: 0 4px; border-radius: 4px; background: #F3F4F6; color: #64748B; font-size: 0.68rem; }
.tk-copy { display: grid; place-items: center; width: 24px; height: 22px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: #64748B; font-size: 0.72rem; cursor: pointer; }
.tk-copy:hover { background: #D1FAE5; color: #047857; }
.tk-copy.is-done { color: #047857; }
.tk-quick { display: inline-flex; gap: 4px; }
.tk-bulk { display: inline-flex; gap: 4px; margin-left: auto; }
.tk-bulk button { padding: 1px 9px; border: 1px solid #FECACA; border-radius: 999px; background: #fff; color: #B91C1C; font-size: 0.72rem; font-weight: 600; cursor: pointer; }
.tk-bulk button:hover { background: #FEF2F2; }
.tk-toast { position: fixed; left: 50%; bottom: 24px; z-index: 2000; display: flex; align-items: center; gap: 14px; max-width: calc(100vw - 32px); padding: 10px 14px 10px 16px; border-radius: 10px; background: #111827; color: #fff; font-size: 0.85rem; box-shadow: 0 4px 14px rgba(17,24,39,.2); transform: translate(-50%, 140%); opacity: 0; transition: transform .2s ease, opacity .2s ease; pointer-events: none; }
.tk-toast.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.tk-toast button { padding: 0; border: 0; background: transparent; color: #6EE7B7; font-weight: 700; cursor: pointer; white-space: nowrap; }
.td-item.is-unread { position: relative; }
.td-item.is-unread::before { content: ''; position: absolute; left: 8px; top: 1.15rem; width: 6px; height: 6px; border-radius: 999px; background: var(--brand-600); }
.hn-new { margin-left: auto; padding: 0 7px; border-radius: 999px; background: var(--brand-tint); color: var(--brand-700); font-size: 0.72rem; font-weight: 700; }
.hn-readall { padding: 0; border: 0; background: transparent; color: #64748B; font-size: 0.75rem; font-weight: 600; cursor: pointer; }
.hn-readall:hover { color: var(--brand-700); }
.hn-feed-acts { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.hn-feed-btn { padding: 1px 8px; border: 1px solid #E5E7EB; border-radius: 999px; background: #fff; color: #64748B; font-size: 0.72rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.hn-feed-btn:hover { border-color: var(--brand-600); color: var(--brand-700); }
.hn-ai-tag { padding: 1px 7px; border-radius: 6px; background: var(--brand-tint); color: var(--brand-700); font-size: 0.72rem; font-weight: 700; }
@media (max-width: 768px) {
    .fav-view-toggle { flex-direction: row; }
    .fav-view-toggle .btn { margin-bottom: 0; border-radius: 0; }
    .fav-view-toggle .btn:first-child { border-radius: 6px 0 0 6px; }
    .fav-view-toggle .btn:last-child { border-radius: 0 6px 6px 0; }
    .td-head-links, .td-daygroup, .td-linkgroup { flex: 1 1 100%; }
    .td-daynav { flex: 1 1 auto; }
    .td-daynav-label { flex: 1 1 auto; min-width: 0; }
    .td-linkgroup .td-tool { flex: 1 1 0; }
    .fav-cal { padding: 0.75rem 0.75rem 1rem; }
    .tk-bar, .tk-add { padding-left: 1rem; padding-right: 1rem; }
    .tk-row { grid-template-columns: minmax(0, 1fr); padding-left: 1rem; padding-right: 1rem; }
    .tk-side { padding-top: 4px; }
    .tk-group-head { padding-left: 1rem; padding-right: 1rem; }
    .tk-add-ico { display: none; }
    .tk-add-title { flex: 0 0 100%; }
    .tk-add-date, .tk-add-time { flex: 1 1 0; width: auto; min-width: 0; }
    .tk-add-notice { flex: 0 0 100%; width: 100%; max-width: 100%; }
    .tk-add-btn { flex: 0 0 100%; }
    .tk-ngroup { margin: 0.6rem 0.75rem; }
    .tk-focus { padding: 0.9rem 1rem; }
    .tk-focus-stats { width: 100%; }
    .tk-ng-head { flex-direction: column; }
    .tk-board { grid-template-columns: 1fr; padding: 0.75rem; }
    .fav-cal-week span { padding: 0.3rem 0; text-align: center; }
    .fav-cal-cell { min-height: 54px; padding: 0.3rem 0.15rem; align-items: center; }
    .fav-cal-num { align-self: center; }
    .fav-cal-evs, .fav-cal-more { display: none; }
    .fav-cal-dots { display: flex; }
    .fav-cal-item { grid-template-columns: minmax(0, 1fr); }
    .fav-cal-when { grid-row: auto; margin-bottom: 2px; }
    .sch-modal-head { padding: 22px 20px 12px; }
    .sch-modal-body { padding: 8px 14px 4px; }
    .sch-modal-foot { padding: 12px 20px 18px; }
    .sch-tl-item { grid-template-columns: 12px minmax(0, 1fr); row-gap: 2px; }
    .sch-tl-when { grid-column: 2; }
    .sch-tl-what, .sch-tl-place { grid-column: 2; }
    .td-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .td-item { padding: 0.75rem 1rem; }
    .td-sect-head, .td-day { padding-left: 1rem; padding-right: 1rem; }
    .td-changes li { gap: 0 6px; }
    .td-changes .td-chg-k { flex-basis: 100%; min-width: 0; }
    .td-changes li > span:not(.td-chg-k), .td-changes b { white-space: nowrap; }
}
.sch-modal-act { padding: 12px 28px 2px; }
.sch-modal-act .tk-acts { margin-top: 0; }
.sch-modal-act .tk-req-line + .tk-acts { margin-top: 8px; }
@media (max-width: 768px) {
    .sch-modal-act { padding: 10px 20px 2px; }
}
.tk-search { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; padding: 0 10px; height: 32px; border: 1px solid #E5E7EB; border-radius: 10px; background: #fff; color: #9CA3AF; font-size: 0.8rem; }
.tk-search input { width: 150px; border: 0; outline: none; background: transparent; color: #111827; font-size: 0.85rem; }
.tk-search:focus-within { border-color: var(--brand-600); box-shadow: 0 0 0 3px rgba(13,158,130,.12); }
.tk-memo { margin-top: 4px; }
.tk-memo-view, .tk-memo-add { display: inline-flex; align-items: flex-start; gap: 5px; max-width: 100%; padding: 0; border: 0; background: transparent; color: #92400E; font-size: 0.78rem; text-align: left; cursor: text; }
.tk-memo-view i, .tk-memo-add i { margin-top: 3px; font-size: 0.6rem; color: #D97706; }
.tk-memo-view span { white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tk-memo-add { color: #9CA3AF; }
.tk-memo-add i { color: #9CA3AF; }
.tk-memo-input { width: 100%; max-width: 480px; padding: 6px 8px; border: 1px solid #D1D5DB; border-radius: 8px; font-size: 0.82rem; resize: vertical; }
.tk-memo-input:focus { outline: 0; border-color: var(--brand-600); }
.tk-memo-acts { display: flex; gap: 6px; margin-top: 4px; }
.tk-memo-acts .btn { padding: 1px 10px; font-size: 0.75rem; border-radius: 8px; }
.tk-memo.is-saving { opacity: .6; pointer-events: none; }
@media (max-width: 768px) {
    .tk-search { margin-left: 0; width: 100%; }
    .tk-search input { width: 100%; }
}
.tk-focus-cta { display: inline-flex; align-items: center; gap: 6px; color: var(--brand-700); font-weight: 700; text-decoration: none; }
.tk-focus-cta i { font-size: 0.65rem; }
.tk-title-btn { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.tk-title-btn:hover { color: var(--brand-700); text-decoration: underline; }
.tk-filter-empty { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 1.1rem 1.25rem; font-size: 0.9rem; color: #64748B; }
.tk-filter-empty button { padding: 3px 11px; border: 1px solid var(--brand-600); border-radius: 999px; background: var(--brand-tint); color: var(--brand-700); font-size: 0.8rem; font-weight: 700; cursor: pointer; }
.tk-add-f { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 0.75rem; font-weight: 600; color: #64748B; white-space: nowrap; }
.tk-add-top { display: inline-flex; align-items: center; gap: 5px; padding: 4px 11px; border: 1px solid #E5E7EB; border-radius: 10px; background: #fff; color: #374151; font-size: 0.8rem; font-weight: 600; cursor: pointer; }
.tk-add-top:hover { border-color: var(--brand-600); color: var(--brand-700); }
.tk-add-top i { font-size: 0.7rem; color: var(--brand-600); }
@media (max-width: 768px) {
    .tk-filters { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; }
    .tk-filters::-webkit-scrollbar { display: none; }
    .tk-chip { flex: 0 0 auto; }
    .tk-add-f { flex: 1 1 0; min-width: 0; }
    .tk-add-f input { flex: 1 1 auto; min-width: 0; }
    .tk-add-btn { min-height: 38px; }
}
.tk-count { font-size: 0.8rem; font-weight: 600; color: #64748B; white-space: nowrap; }
@media (max-width: 768px) {
    .tk-bar { gap: 0.5rem; }
    .tk-search { flex: 1 1 0; width: auto; min-width: 0; }
    .tk-add-top { flex: 0 0 auto; height: 32px; }
    .tk-add-title, .tk-add-f input, .tk-add-btn { height: 40px; }
    .tk-focus-stats .tk-stat { padding: 3px 9px; font-size: 0.78rem; }
}
@media (max-width: 768px) {
    .tk-docs-list { grid-template-columns: 1fr; }
    .tk-recf { gap: 8px; }
    .tk-recf-a { width: 100%; }
    .tk-recf-a input { flex: 1; width: auto; }
    .tk-recf-b { width: 100%; margin-left: 0; }
    .tk-recf-b .btn { flex: 1; }
}
