.tf-btn{justify-content:center;align-items:center;gap:var(--tf-space-2);border-radius:var(--tf-radius-md);cursor:pointer;white-space:nowrap;transition:background var(--tf-duration-fast) var(--tf-ease), border-color var(--tf-duration-fast) var(--tf-ease), color var(--tf-duration-fast) var(--tf-ease);border:1px solid #0000;font-weight:500;display:inline-flex}.tf-btn:disabled{cursor:not-allowed;opacity:.55}.tf-btn:active:not(:disabled){transform:translateY(1px)}.tf-btn:focus-visible{box-shadow:var(--tf-focus);outline:none}@media (prefers-reduced-motion:reduce){.tf-btn:active:not(:disabled){transform:none}}.tf-btn--sm{height:28px;padding:0 var(--tf-space-3);font-size:var(--tf-text-sm)}.tf-btn--md{height:34px;padding:0 var(--tf-space-4);font-size:var(--tf-text-md)}.tf-btn--lg{height:44px;padding:0 var(--tf-space-5);font-size:var(--tf-text-lg);border-radius:var(--tf-radius-lg)}.tf-btn--block{width:100%}.tf-btn--primary{background:var(--tf-brand-600);color:var(--tf-text-inverse);box-shadow:var(--tf-shadow-sm)}.tf-btn--primary:hover:not(:disabled){background:var(--tf-brand-700)}.tf-btn--secondary{background:var(--tf-surface);color:var(--tf-text);border-color:var(--tf-border-strong)}.tf-btn--secondary:hover:not(:disabled){background:var(--tf-gray-50)}.tf-btn--ghost{color:var(--tf-text-secondary);background:0 0}.tf-btn--ghost:hover:not(:disabled){background:var(--tf-gray-100);color:var(--tf-text)}.tf-btn--danger{background:var(--tf-danger-500);color:var(--tf-text-inverse)}.tf-btn--danger:hover:not(:disabled){background:var(--tf-danger-700)}.tf-btn--loading .tf-btn__label{opacity:.7}a.tf-btn{text-decoration:none}a.tf-btn--primary,a.tf-btn--danger{color:var(--tf-text-inverse)}.tf-field{gap:var(--tf-space-1);flex-direction:column;display:flex}.tf-field__label{font-size:var(--tf-text-sm);color:var(--tf-text-secondary);font-weight:500}.tf-field__required{color:var(--tf-danger-500)}.tf-field__hint{font-size:var(--tf-text-xs);color:var(--tf-text-muted)}.tf-field__error{font-size:var(--tf-text-xs);color:var(--tf-danger-700)}.tf-input{height:36px;padding:0 var(--tf-space-3);border:1px solid var(--tf-border-strong);border-radius:var(--tf-radius-md);background:var(--tf-surface);width:100%;transition:border-color var(--tf-duration-fast) var(--tf-ease)}.tf-input:hover{border-color:var(--tf-gray-400)}.tf-input:focus-visible{border-color:var(--tf-brand-500)}.tf-input--invalid{border-color:var(--tf-danger-500)}.tf-input::placeholder{color:var(--tf-gray-400)}.tf-textarea{height:auto;min-height:96px;padding:var(--tf-space-2) var(--tf-space-3);resize:vertical;line-height:var(--tf-leading-normal)}.tf-select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-repeat:no-repeat;background-size:5px 5px,5px 5px;background-position:right var(--tf-space-4) center, right calc(var(--tf-space-4) + 4px) center;color:var(--tf-text);padding-inline-end:var(--tf-space-8)}[dir=rtl] .tf-select{background-position:left calc(var(--tf-space-4) + 4px) center, left var(--tf-space-4) center}.tf-select:hover{cursor:pointer}.tf-badge{height:22px;padding:0 var(--tf-space-2);border-radius:var(--tf-radius-full);font-size:var(--tf-text-xs);white-space:nowrap;align-items:center;gap:6px;font-weight:500;line-height:1;display:inline-flex}.tf-badge__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.tf-badge--neutral{background:var(--tf-gray-100);color:var(--tf-gray-700)}.tf-badge--brand{background:var(--tf-brand-50);color:var(--tf-brand-700)}.tf-badge--success{background:var(--tf-success-50);color:var(--tf-success-700)}.tf-badge--warning{background:var(--tf-warning-50);color:var(--tf-warning-700)}.tf-badge--danger{background:var(--tf-danger-50);color:var(--tf-danger-700)}.tf-badge--info{background:var(--tf-info-50);color:var(--tf-info-500)}.tf-badge--ai{background:var(--tf-ai-50);color:var(--tf-ai-700);border:1px dashed var(--tf-ai-500)}.tf-card{background:var(--tf-surface);border:1px solid var(--tf-border);border-radius:var(--tf-radius-lg);box-shadow:var(--tf-shadow-sm)}.tf-card--padded{padding:var(--tf-space-5)}.tf-page-header{margin-bottom:var(--tf-space-6)}.tf-page-header__row{justify-content:space-between;align-items:flex-start;gap:var(--tf-space-4);flex-wrap:wrap;display:flex}.tf-page-header__title{font-size:var(--tf-text-2xl)}.tf-page-header__description{margin:var(--tf-space-1) 0 0;color:var(--tf-text-secondary);max-width:64ch}.tf-page-header__actions{gap:var(--tf-space-2);flex-wrap:wrap;flex-shrink:0;display:flex}.tf-breadcrumbs{font-size:var(--tf-text-sm);color:var(--tf-text-muted);margin-bottom:var(--tf-space-2);gap:var(--tf-space-2);display:flex}.tf-breadcrumbs a{color:var(--tf-text-muted)}.tf-spinner{border:2px solid var(--tf-gray-200);border-top-color:var(--tf-brand-500);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite tf-spin;display:inline-block}.tf-spinner--inline{border-width:2px;border-color:currentColor #ffffff59 #ffffff59;width:14px;height:14px}.tf-spinner-wrap{padding:var(--tf-space-10);justify-content:center;display:flex}@keyframes tf-spin{to{transform:rotate(360deg)}}.tf-skeleton{gap:var(--tf-space-3);padding:var(--tf-space-4) 0;flex-direction:column;display:flex}.tf-skeleton__line{border-radius:var(--tf-radius-sm);background:linear-gradient(90deg, var(--tf-gray-100), var(--tf-gray-50), var(--tf-gray-100));background-size:200% 100%;height:12px;animation:1.4s infinite tf-shimmer}@keyframes tf-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tf-empty{text-align:center;padding:var(--tf-space-12) var(--tf-space-6);color:var(--tf-text-secondary)}.tf-empty--compact{padding:var(--tf-space-6)}.tf-empty__glyph{width:40px;height:40px;margin:0 auto var(--tf-space-4);border-radius:var(--tf-radius-lg);background:linear-gradient(135deg, var(--tf-brand-50), var(--tf-gray-100));border:1px solid var(--tf-border)}.tf-empty__title{font-size:var(--tf-text-lg);color:var(--tf-text)}.tf-empty__description{margin:var(--tf-space-2) auto 0;max-width:44ch}.tf-empty__action{margin-top:var(--tf-space-5)}.tf-error{padding:var(--tf-space-5);border:1px solid var(--tf-danger-500);background:var(--tf-danger-50);border-radius:var(--tf-radius-lg);color:var(--tf-danger-700)}.tf-error__title{font-size:var(--tf-text-lg)}.tf-error__description{margin:var(--tf-space-1) 0 0}.tf-error__actions{margin-top:var(--tf-space-3);align-items:center;gap:var(--tf-space-3);display:flex}.tf-error__ref{font-size:var(--tf-text-xs);font-family:var(--tf-font-mono);opacity:.8}.tf-visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.tf-tabs{gap:var(--tf-space-1);border-block-end:1px solid var(--tf-border);scrollbar-width:thin;scroll-padding-inline:var(--tf-space-4);margin-block-end:var(--tf-space-5);display:flex;overflow:auto visible}.tf-tab{border:none;padding:var(--tf-space-2) var(--tf-space-3);color:var(--tf-text-secondary);cursor:pointer;gap:var(--tf-space-2);white-space:nowrap;background:0 0;border-block-end:2px solid #0000;flex-shrink:0;align-items:center;margin-block-end:-1px;font-weight:500;display:inline-flex}.tf-tab:hover{color:var(--tf-text)}.tf-tab--active{color:var(--tf-brand-700);border-block-end-color:var(--tf-brand-600)}.tf-tab__count{background:var(--tf-gray-100);border-radius:var(--tf-radius-full);font-size:var(--tf-text-xs);padding:1px 7px}.tf-drawer-root{z-index:40;justify-content:flex-end;display:flex;position:fixed;inset:0}.tf-drawer__scrim{background:#161b2259;position:absolute;inset:0}.tf-drawer{width:var(--tf-drawer-width);background:var(--tf-surface);max-width:100vw;height:100%;box-shadow:var(--tf-shadow-lg);animation:tf-slide-in var(--tf-duration-normal) var(--tf-ease);flex-direction:column;display:flex;position:relative}@keyframes tf-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.tf-drawer__header{padding:var(--tf-space-4) var(--tf-space-5);border-bottom:1px solid var(--tf-border);justify-content:space-between;align-items:center;display:flex}.tf-drawer__title{font-size:var(--tf-text-lg)}.tf-drawer__close{cursor:pointer;color:var(--tf-text-muted);border-radius:var(--tf-radius-md);background:0 0;border:none;width:32px;height:32px;font-size:22px;line-height:1}.tf-drawer__close:hover{background:var(--tf-gray-100);color:var(--tf-text)}.tf-drawer__body{padding:var(--tf-space-5);flex:1;overflow:auto}.tf-table-wrap{border:1px solid var(--tf-border);border-radius:var(--tf-radius-lg);background:var(--tf-surface);overflow-x:auto}.tf-table-scroll{overflow-x:auto}.tf-table{border-collapse:collapse;width:100%}.tf-table th{text-align:start;font-size:var(--tf-text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--tf-text-muted);padding:var(--tf-space-3) var(--tf-space-4);border-bottom:1px solid var(--tf-border);background:var(--tf-surface-sunken);white-space:nowrap;font-weight:600}.tf-table td{padding:var(--tf-space-3) var(--tf-space-4);border-bottom:1px solid var(--tf-gray-100);vertical-align:middle}.tf-table--dense td{padding-top:var(--tf-space-2);padding-bottom:var(--tf-space-2)}.tf-table tbody tr:last-child td{border-bottom:none}.tf-table__row--clickable{cursor:pointer}.tf-table__row--clickable:hover td{background:var(--tf-gray-25)}.tf-table__row--selected td{background:var(--tf-brand-50)}.tf-table__right{text-align:end}@media (width<=899px){.tf-table thead{display:none}.tf-table,.tf-table tbody,.tf-table tr,.tf-table td{width:100%;display:block}.tf-table tbody tr{padding:var(--tf-space-3) var(--tf-space-4);border-bottom:1px solid var(--tf-gray-100)}.tf-table tbody tr:last-child{border-bottom:none}.tf-table td{border-bottom:none;padding:2px 0}.tf-table td[data-label]{gap:var(--tf-space-3);justify-content:space-between;align-items:baseline;display:flex}.tf-table td[data-label]:before{content:attr(data-label);font-size:var(--tf-text-xs);color:var(--tf-text-muted);flex:none;font-weight:600}.tf-table__right{text-align:start}.tf-table-wrap,.tf-table-scroll{overflow-x:visible}}.tf-pagination{padding:var(--tf-space-3) 0;font-size:var(--tf-text-sm);color:var(--tf-text-muted);justify-content:space-between;align-items:center;display:flex}.tf-pagination__controls{gap:var(--tf-space-1);display:flex}.tf-stack{gap:var(--tf-space-4);flex-direction:column;display:flex}.tf-row{align-items:center;gap:var(--tf-space-3);display:flex}.tf-row--between{justify-content:space-between}.tf-row--wrap{flex-wrap:wrap}.tf-muted{color:var(--tf-text-muted)}.tf-secondary{color:var(--tf-text-secondary)}.tf-mono{font-family:var(--tf-font-mono);font-size:var(--tf-text-sm)}.tf-grid-2{gap:var(--tf-space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tf-grid-4{gap:var(--tf-space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=900px){.tf-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.tf-grid-2,.tf-grid-4{grid-template-columns:1fr}}.tf-kv{gap:var(--tf-space-2) var(--tf-space-4);font-size:var(--tf-text-md);grid-template-columns:160px 1fr;display:grid}.tf-kv dt{color:var(--tf-text-muted)}.tf-kv dd{margin:0}.tf-section-title{font-size:var(--tf-text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--tf-text-muted);margin:0 0 var(--tf-space-3);font-weight:600}.tf-toolbar{gap:var(--tf-space-3);margin-bottom:var(--tf-space-4);flex-wrap:wrap;align-items:center;display:flex}.tf-toolbar .tf-input{width:auto;min-width:220px}.tf-toolbar--selection{padding:var(--tf-space-2) var(--tf-space-3);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);background:var(--tf-gray-50)}.tf-selection__error{color:var(--tf-danger-700);font-size:var(--tf-text-sm)}.tf-answerfilters{margin-bottom:var(--tf-space-4)}.tf-answerfilters__label{font-size:var(--tf-text-xs);color:var(--tf-text-muted);margin-bottom:var(--tf-space-2)}.tf-answerfilters__row{gap:var(--tf-space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.tf-answerfilters__field{flex-direction:column;gap:4px;min-width:200px;display:flex}.tf-answerfilters__question{font-size:var(--tf-text-xs);color:var(--tf-text);max-width:32ch}.tf-answerfilters__warning{margin:var(--tf-space-2) 0 0;font-size:var(--tf-text-xs);color:var(--tf-text-muted);max-width:72ch}.tf-stat{padding:var(--tf-space-4) var(--tf-space-5)}.tf-stat__label{font-size:var(--tf-text-sm);color:var(--tf-text-muted)}.tf-stat__value{font-size:var(--tf-text-3xl);letter-spacing:-.02em;margin-top:var(--tf-space-1);font-weight:600}.tf-stat__meta{font-size:var(--tf-text-xs);color:var(--tf-text-muted);margin-top:var(--tf-space-1)}.tf-timeline{gap:var(--tf-space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tf-timeline li{gap:var(--tf-space-3);font-size:var(--tf-text-sm);grid-template-columns:12px 1fr;display:grid}.tf-timeline__dot{background:var(--tf-brand-500);border-radius:50%;width:8px;height:8px;margin-top:6px}.tf-timeline__time{color:var(--tf-text-muted);font-size:var(--tf-text-xs)}.tf-banner{padding:var(--tf-space-3) var(--tf-space-4);border-radius:var(--tf-radius-md);font-size:var(--tf-text-sm);gap:var(--tf-space-3);justify-content:space-between;align-items:center;display:flex}.tf-banner--warning{background:var(--tf-warning-50);color:var(--tf-warning-700);border:1px solid #f0d9a8}.tf-banner--info{background:var(--tf-info-50);color:var(--tf-info-500)}.tf-notice{justify-content:space-between;align-items:center;gap:var(--tf-space-3);padding:var(--tf-space-2) var(--tf-space-3);margin-bottom:var(--tf-space-4);border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);font-size:var(--tf-text-sm);display:flex}.tf-notice--success{border-color:var(--tf-success-500);background:var(--tf-success-50)}.tf-notice--warning{border-color:var(--tf-warning-500);background:var(--tf-warning-50)}.tf-grid-3{gap:var(--tf-space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.tf-linkish{color:var(--tf-brand-600);cursor:pointer;font-weight:500;font:inherit;text-align:start;background:0 0;border:none;padding:0}.tf-linkish:hover{text-decoration:underline}.tf-linkish:focus-visible{outline:2px solid var(--tf-brand-500);outline-offset:2px;border-radius:2px}.tf-topbar{z-index:5;justify-content:space-between;align-items:center;gap:var(--tf-space-4);padding:var(--tf-space-3) var(--tf-space-6);background:var(--tf-surface);border-bottom:1px solid var(--tf-border);display:flex;position:sticky;top:0}.tf-topbar__left{align-items:center;gap:var(--tf-space-3);min-width:0;display:flex}.tf-topbar__workspace{white-space:nowrap;font-weight:600}.tf-topbar__right{align-items:center;gap:var(--tf-space-3);display:flex}.tf-topbar__user{text-align:end;line-height:1.2}.tf-topbar__user-name{font-size:var(--tf-text-sm);font-weight:500}.tf-topbar__user-role{font-size:var(--tf-text-xs);color:var(--tf-text-muted);text-transform:capitalize}.tf-metrics{gap:var(--tf-space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.tf-metric{border:1px solid var(--tf-border);border-radius:var(--tf-radius-md);padding:var(--tf-space-3);background:var(--tf-surface)}.tf-metric__label{font-size:var(--tf-text-xs);color:var(--tf-text-muted)}.tf-metric__value{font-size:var(--tf-text-xl,20px);font-weight:600}.tf-metric__meta{font-size:var(--tf-text-xs);color:var(--tf-text-muted)}.tf-drawer__context{align-items:center;gap:var(--tf-space-2);padding-bottom:var(--tf-space-3);margin-bottom:var(--tf-space-1);font-size:var(--tf-text-sm);flex-wrap:wrap;display:flex}.tf-metric--link{color:inherit;display:block}.tf-metric--link:hover{border-color:var(--tf-brand-500);text-decoration:none}.tf-metric--link:hover .tf-metric__value{color:var(--tf-brand-700)}.tf-table__link{color:inherit;text-decoration:none;display:block}.tf-table__link:hover{text-decoration:underline}
