/* TrainerConnect workspace design: quiet surfaces, clear hierarchy and accessible controls. */
:root { --tc-workspace-accent:#2c5ee8; --tc-workspace-soft:#edf2ff; }
.tc-workspace-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1.5rem; flex-wrap:wrap; margin-bottom:1.75rem; }
.tc-workspace-heading h1 { font-family:'Plus Jakarta Sans',Inter,sans-serif; font-size:clamp(1.65rem,2.5vw,2.1rem); letter-spacing:-.045em; font-weight:700; margin:.15rem 0 .6rem; color:var(--tc-text); }
.tc-workspace-heading p { color:var(--tc-text-muted); font-size:.9rem; margin:0; max-width:700px; line-height:1.7; }
.tc-workspace-heading .btn { margin-top:.5rem; }
:is(.workspace-page,.admin-body) .btn { font-weight:600; border-radius:.6rem; min-height:38px; box-shadow:none; }
:is(.workspace-page,.admin-body) .btn-primary { --bs-btn-bg:#2c5ee8; --bs-btn-border-color:#2c5ee8; --bs-btn-hover-bg:#204ac5; --bs-btn-hover-border-color:#204ac5; }
:is(.workspace-page,.admin-body) :is(.form-control,.form-select) { border-radius:.6rem; background-color:var(--tc-bg-card); color:var(--tc-text); border-color:var(--tc-border); min-height:42px; }
:is(.workspace-page,.admin-body) :is(.form-control,.form-select):focus { border-color:#8ca8f3; box-shadow:0 0 0 3px rgba(44,94,232,.1); }
:is(.workspace-page,.admin-body) .dash-card { border:1px solid var(--tc-border); border-radius:1rem; background:var(--tc-bg-card); box-shadow:0 2px 4px rgba(16,24,40,.025); }
:is(.workspace-page,.admin-body) .dash-card-header { padding:1.1rem 1.35rem; background:transparent; gap:1rem; border-bottom:1px solid var(--tc-border); }
:is(.workspace-page,.admin-body) .dash-card-body { padding:1.35rem; }
.workspace-page .dashboard-main { min-width:0; padding:2rem; }
.workspace-page .tc-navbar { background:var(--tc-bg-card)!important; border-bottom:1px solid var(--tc-border); box-shadow:none; }
.workspace-page .tc-navbar :is(.navbar-brand,.nav-link,.navbar-nav .text-white,.navbar-toggler) { color:var(--tc-text)!important; }
.workspace-page .tc-navbar .nav-link.active { color:#2c5ee8!important; background:var(--tc-primary-l); }
.workspace-page .tc-navbar .navbar-toggler { background:var(--tc-bg-2); }
.workspace-page .tc-navbar .navbar-collapse { background:var(--tc-bg-card); }
.workspace-page .sidebar { background:var(--tc-bg-card); border-right:1px solid var(--tc-border); box-shadow:none; }
.workspace-page .sidebar :is(.brand-name,.user-name) { color:var(--tc-text); }
.workspace-page .sidebar-brand { border-bottom:1px solid var(--tc-border); padding:1.1rem 1.25rem; }
.workspace-page .sidebar-user { margin:.85rem .75rem; border-radius:.75rem; background:var(--tc-bg); border:1px solid var(--tc-border); padding:.85rem; }
.workspace-page .sidebar-section { color:var(--tc-text-muted); letter-spacing:.1em; font-size:.62rem; padding-top:1.25rem; }
.workspace-page .sidebar-link { color:var(--tc-text-muted); border-radius:.6rem; margin:.15rem .65rem; min-height:42px; font-size:.81rem; }
.workspace-page .sidebar-link.active { background:var(--tc-primary-l); color:#2c5ee8; box-shadow:inset 3px 0 #2c5ee8; font-weight:600; }
.workspace-page .sidebar-link:hover { background:var(--tc-bg-2); color:var(--tc-text); }
.workspace-page .sidebar-divider { border-color:var(--tc-border); opacity:1; }
.workspace-page :is(.tc-footer,.whatsapp-float) { display:none; }
.workspace-page .stat-card { border:1px solid var(--tc-border); box-shadow:0 2px 4px rgba(16,24,40,.025)!important; border-radius:1rem!important; }
.workspace-page .stat-card .stat-number { font-variant-numeric:tabular-nums; letter-spacing:-.04em; }
.tc-inline-feedback:not(:empty) { padding:.8rem 1rem; border-radius:.7rem; border:1px solid var(--tc-border); background:var(--tc-bg-card); margin-bottom:1rem; font-size:.85rem; }
.tc-quick-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.25rem 0 1.75rem; }
.tc-resource-link { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem; background:var(--tc-bg-card); border:1px solid var(--tc-border); border-radius:.75rem; color:var(--tc-text); transition:border-color .15s; }
.tc-resource-link:hover { color:var(--tc-text); border-color:#8ca8f3; }
.tc-resource-link strong { display:block; font-size:.82rem; }
.tc-resource-link small { display:block; font-size:.72rem; color:var(--tc-text-muted); margin-top:.35rem; line-height:1.5; }
.tc-help-card { display:flex; gap:.85rem; padding:1.1rem; border:1px solid var(--tc-border); border-radius:.85rem; background:var(--tc-bg-2); }
.tc-help-card>i { margin-top:.2rem; }
.tc-help-card strong { font-size:.8rem; }
.tc-help-card p { font-size:.75rem; line-height:1.7; color:var(--tc-text-muted); margin:.3rem 0 0; }
.tc-planner-layout { display:grid; grid-template-columns:minmax(0,1fr) 335px; gap:1.5rem; align-items:start; }
.tc-calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:1.4rem 1.4rem .75rem; }
.tc-calendar-legend { display:flex; gap:1.1rem; flex-wrap:wrap; padding:.75rem 1.4rem 1.25rem; color:var(--tc-text-muted); font-size:.72rem; }
.tc-calendar-legend>span { display:flex; align-items:center; gap:.4rem; }
.tc-dot { display:inline-block; flex-shrink:0; width:8px; height:8px; border-radius:50%; background:#cbd5e1; }
.tc-dot.available { background:#149d87; }.tc-dot.booked { background:#d29b30; }.tc-dot.blocked { background:#7f8fa4; }
.tc-calendar-weekdays,.tc-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; margin:0 1.2rem; }
.tc-calendar-weekdays { font-size:.68rem; text-align:center; color:var(--tc-text-muted); font-weight:600; margin-bottom:.65rem; }
.tc-calendar-grid { margin-bottom:1.25rem; }
.tc-calendar-day { border:1px solid transparent; background:var(--tc-bg); color:var(--tc-text); min-width:0; min-height:88px; border-radius:.6rem; padding:.7rem .3rem; display:flex; flex-direction:column; gap:.6rem; align-items:center; position:relative; transition:border-color .12s,background .12s; }
.tc-calendar-day strong { font-size:.85rem; line-height:26px; min-width:26px; font-variant-numeric:tabular-nums; }
.tc-calendar-day small { font-size:.57rem; line-height:1; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.tc-calendar-day.available { background:#ecf8f4; color:#147363; }.tc-calendar-day.booked { background:#fff6e4; color:#8c641b; }.tc-calendar-day.blocked { background:#edf0f5; color:#657186; }
.tc-calendar-day:disabled { cursor:default; opacity:.5; }.tc-calendar-day:hover:not(:disabled) { border-color:#9bb2ef; }
.tc-calendar-day.today strong { border-radius:50%; background:#2c5ee8; color:white; }
.tc-calendar-day.selected { border-color:#2c5ee8; box-shadow:inset 0 0 0 1px #2c5ee8; }.tc-calendar-day.selected::after { content:'✓'; position:absolute; top:2px; right:5px; color:#2c5ee8; font-size:.65rem; }
.tc-calendar-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.75rem; padding:1rem 1.4rem; border-top:1px solid var(--tc-border); font-size:.73rem; color:var(--tc-text-muted); }
.tc-status-options { border:0; padding:0; }.tc-status-choice { display:flex; align-items:center; gap:.7rem; border:1px solid var(--tc-border); padding:.8rem; border-radius:.65rem; margin-bottom:.5rem; cursor:pointer; }
.tc-status-choice:has(input:checked) { border-color:#8ca8f3; background:var(--tc-primary-l); }.tc-status-choice>input { accent-color:#2c5ee8; }.tc-status-choice strong { display:block; font-size:.78rem; }.tc-status-choice small { display:block; font-size:.65rem; color:var(--tc-text-muted); margin-top:.15rem; }.tc-status-choice>i { margin-left:auto; visibility:hidden; color:#2c5ee8; }.tc-status-choice:has(input:checked)>i { visibility:visible; }
.tc-agenda-row { display:grid; grid-template-columns:150px 130px minmax(0,1fr); gap:1rem; align-items:center; padding:1rem 1.3rem; border-bottom:1px solid var(--tc-border); }.tc-agenda-row:last-child { border-bottom:0; }.tc-agenda-row>strong { font-size:.8rem; }
.tc-status-pill { display:inline-flex; align-items:center; gap:.4rem; padding:.3rem .65rem; border-radius:2rem; width:fit-content; font-size:.68rem; font-weight:600; color:var(--tc-text-muted); background:var(--tc-bg-2); white-space:nowrap; }.tc-status-pill.available { background:#e4f4ee; color:#147363; }.tc-status-pill.booked { background:#fff2d5; color:#8c641b; }.tc-status-pill.blocked { background:#edf0f5; color:#657186; }
.tc-verification-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:1.5rem; align-items:start; }
.tc-verification-banner { display:flex; align-items:center; gap:1.25rem; padding:1.75rem; border:1px solid var(--tc-border); background:var(--tc-bg-card); border-radius:1rem; }.tc-verification-banner.approved { border-color:#b6dccd; }.tc-verification-banner.rejected { border-color:#edcfa0; }.tc-verification-banner p { color:var(--tc-text-muted); font-size:.82rem; }
.tc-verification-icon { display:grid; place-items:center; flex-shrink:0; width:56px; height:56px; border-radius:1rem; background:var(--tc-primary-l); color:#2c5ee8; font-size:1.4rem; }
.tc-verification-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:1.6rem 0; gap:1rem; }.tc-verification-steps>div { display:flex; align-items:center; gap:.55rem; color:var(--tc-text-muted); }.tc-verification-steps span { display:grid; place-items:center; width:26px; height:26px; border:1px solid var(--tc-border); border-radius:50%; font-size:.7rem; flex-shrink:0; }.tc-verification-steps strong { font-size:.72rem; font-weight:500; }.tc-verification-steps .complete { color:#148471; }.tc-verification-steps .complete span { background:#e4f4ee; border-color:#c3e5d9; }
.tc-document-drop { display:flex; flex-direction:column; align-items:center; gap:.65rem; padding:2rem 1.5rem; border:1px dashed #9eb4df; border-radius:.8rem; background:var(--tc-bg); cursor:pointer; }.tc-document-drop>i { font-size:1.8rem; color:#577dbd; }.tc-document-drop>strong { font-size:.9rem; }.tc-document-drop>span { color:var(--tc-text-muted); font-size:.75rem; }.tc-document-drop>input { max-width:100%; font-size:.75rem; }.tc-selected-file { font-size:.76rem; color:var(--tc-text-muted); margin-top:.8rem; overflow-wrap:anywhere; }
.tc-checklist { padding:0; margin:1.25rem 0 0; list-style:none; }.tc-checklist li { display:flex; align-items:baseline; gap:.7rem; margin:1rem 0; font-size:.78rem; color:var(--tc-text-muted); }.tc-checklist i { color:#148471; }
.tc-facts { margin:1.25rem 0; }.tc-facts>div { padding:.8rem 0; border-bottom:1px solid var(--tc-border); }.tc-facts dt { font-size:.7rem; color:var(--tc-text-muted); font-weight:500; }.tc-facts dd { font-size:.83rem; font-weight:600; margin:.3rem 0 0; }
.tc-security-steps { font-size:.82rem; color:var(--tc-text-muted); padding-left:1.25rem; }.tc-security-steps li { margin:.8rem 0; }
.tc-operations-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1.5rem; }.tc-overview-metric { display:grid; grid-template-columns:1fr 38px; gap:.55rem; padding:1.25rem; border:1px solid var(--tc-border); border-radius:1rem; background:var(--tc-bg-card); color:var(--tc-text); transition:border-color .15s; }.tc-overview-metric:hover { color:var(--tc-text); border-color:#8ca8f3; }.tc-metric-symbol { grid-column:2; grid-row:1/3; width:36px; height:36px; display:grid; place-items:center; border-radius:.7rem; background:var(--tc-primary-l); color:#2c5ee8; }.tc-metric-label { font-size:.77rem; color:var(--tc-text-muted); }.tc-overview-metric>strong { font-size:2rem; letter-spacing:-.05em; line-height:1.2; font-variant-numeric:tabular-nums; }.tc-overview-metric>small { font-size:.67rem; color:var(--tc-text-muted); grid-column:1/-1; }
.tc-workspace-tabs { display:flex; gap:1.5rem; border-bottom:1px solid var(--tc-border); margin-bottom:1.5rem; overflow-x:auto; white-space:nowrap; }.tc-workspace-tabs a { color:var(--tc-text-muted); font-size:.8rem; font-weight:600; padding:.7rem 0 1rem; border-bottom:2px solid transparent; }.tc-workspace-tabs a.active { border-color:#2c5ee8; color:#2c5ee8; }.tc-workspace-tabs a>span { display:inline-block; background:var(--tc-primary-l); color:#2c5ee8; font-size:.65rem; border-radius:1rem; padding:.1rem .4rem; margin-left:.4rem; }
.tc-activity-row { display:flex; gap:.9rem; padding:1.1rem 0; border-bottom:1px solid var(--tc-border); }.tc-activity-row:last-child { border-bottom:0; }.tc-activity-mark { flex-shrink:0; width:26px; height:26px; border:1px solid var(--tc-border); border-radius:50%; display:grid; place-items:center; font-size:.6rem; color:#148471; }.tc-activity-row strong { font-size:.8rem; }.tc-activity-row p { font-size:.75rem; color:var(--tc-text-muted); margin:.3rem 0; }.tc-activity-row small { color:var(--tc-text-muted); font-size:.66rem; }
.tc-review-card { border:1px solid var(--tc-border); border-radius:.8rem; padding:1.25rem; margin-bottom:1rem; }.tc-review-card:last-child { margin-bottom:0; }.tc-review-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:1rem; }.tc-empty-state { padding:3rem 1rem; text-align:center; color:var(--tc-text-muted); }.tc-empty-state>i { color:#6bac9c; font-size:2rem; margin-bottom:1rem; }.tc-empty-state p { font-size:.8rem; margin:0; }.tc-detail-summary { padding:1.25rem; font-size:.9rem; font-weight:600; }.tc-detail-summary>span { font-weight:400; margin-left:.75rem; }.tc-announcement-preview { padding:1rem; margin-top:1rem; border-left:3px solid #2c5ee8; background:var(--tc-bg); border-radius:.5rem; font-size:.8rem; white-space:pre-wrap; }.tc-announcement-preview p { color:var(--tc-text-muted); margin:.4rem 0 0; }
.tc-analytics-tools { display:flex; gap:.75rem; align-items:end; flex-wrap:wrap; padding:1.1rem 1.25rem; border:1px solid var(--tc-border); border-radius:.85rem; background:var(--tc-bg-card); margin-bottom:1.5rem; }.tc-analytics-tools .form-label { font-size:.7rem; margin-bottom:.4rem; }.tc-chart-actions { display:flex; gap:.4rem; flex-wrap:wrap; }.tc-chart-actions button { min-height:30px!important; font-size:.65rem; padding:.3rem .5rem; }.tc-chart-table { max-height:300px; overflow:auto; font-size:.75rem; }.tc-chart-table th { position:sticky; top:0; background:var(--tc-bg-card); }.tc-chart-frame canvas { max-width:100%; }
.landing-page :is(.hiw-panel,.feature-card,.requirement-card,.trainer-card) { border-radius:1rem; }.landing-page .section-badge { font-size:.66rem; letter-spacing:.12em; }.landing-page :is(h2,h3) { letter-spacing:-.035em; }.landing-page .tc-navbar { box-shadow:0 1px 0 rgba(255,255,255,.07); }
[data-theme=dark] .workspace-page .sidebar-link.active { color:#a9c3ff; }[data-theme=dark] .tc-workspace-tabs a.active,[data-theme=dark] .tc-workspace-tabs a>span { color:#a9c3ff; }[data-theme=dark] .tc-verification-icon,[data-theme=dark] .tc-metric-symbol { color:#a9c3ff; }
[data-theme=dark] .tc-calendar-day.available,[data-theme=dark] .tc-status-pill.available { background:#163b36; color:#8cd4c4; }[data-theme=dark] .tc-calendar-day.booked,[data-theme=dark] .tc-status-pill.booked { background:#3d3321; color:#ead197; }[data-theme=dark] .tc-calendar-day.blocked,[data-theme=dark] .tc-status-pill.blocked { background:#283448; color:#b5c2d7; }[data-theme=dark] .tc-calendar-day.selected { border-color:#87abff; box-shadow:inset 0 0 0 1px #87abff; }
@media(min-width:1600px){.workspace-page .dashboard-main{padding:2.25rem 3rem;}}
@media(max-width:1199.98px){.tc-planner-layout{grid-template-columns:minmax(0,1fr);}.tc-planner-editor{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem;align-items:start;}.tc-planner-editor>.tc-help-card{margin-top:0!important;}.tc-verification-layout{grid-template-columns:minmax(0,1fr) 280px;}}
@media(max-width:991.98px){.workspace-page .dashboard-main{padding:1.25rem;}.tc-verification-layout{grid-template-columns:1fr;}.tc-operations-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.tc-quick-actions{grid-template-columns:1fr;gap:.65rem;}.tc-quick-actions .tc-resource-link{padding:.85rem 1rem;}.tc-planner-editor{grid-template-columns:1fr;}.tc-planner-editor>.tc-help-card{display:none;}}
@media(max-width:575.98px){.workspace-page .dashboard-main{padding:1rem;}.tc-workspace-heading{gap:.75rem;}.tc-workspace-heading h1{font-size:1.6rem;}.tc-workspace-heading>.btn{width:100%;}.tc-calendar-toolbar{padding:1rem;}.tc-calendar-toolbar h2{font-size:1.15rem;}.tc-calendar-legend{padding:0 1rem 1rem;gap:.65rem;}.tc-calendar-grid,.tc-calendar-weekdays{margin-left:.6rem;margin-right:.6rem;gap:3px;}.tc-calendar-day{min-height:63px;padding:.5rem .1rem;gap:.4rem;border-radius:.4rem;}.tc-calendar-day small{font-size:.46rem;}.tc-agenda-row{grid-template-columns:1fr 1fr;gap:.5rem;}.tc-agenda-row>span:last-child{grid-column:1/-1;}.tc-verification-banner{padding:1.1rem;align-items:flex-start;}.tc-verification-icon{width:42px;height:42px;font-size:1rem;}.tc-verification-steps{gap:.35rem;}.tc-verification-steps>div{flex-direction:column;text-align:center;gap:.5rem;}.tc-verification-steps strong{font-size:.65rem;}.tc-operations-metrics{gap:.65rem;}.tc-overview-metric{padding:1rem;grid-template-columns:1fr;}.tc-metric-symbol{display:none;}.tc-overview-metric>strong{font-size:1.75rem;}.tc-overview-metric small{font-size:.62rem;}.tc-review-card{padding:1rem;}.tc-workspace-tabs{gap:1rem;}.tc-detail-summary>span{display:block;margin:.4rem 0 0;}.tc-analytics-tools>form{width:100%;}.tc-review-heading>.btn{width:100%;}}
@media(prefers-reduced-motion:reduce){.tc-calendar-day,.tc-resource-link,.tc-overview-metric{transition:none;}}

.workspace-page .tc-navbar :is(.brand-name,.brand-text){color:var(--tc-text)!important;background:none!important;-webkit-text-fill-color:currentColor!important;}
.workspace-page .tc-navbar .navbar-toggler{color:var(--tc-text);border:1px solid var(--tc-border);}
.tc-chart-table[hidden],.tc-chart-frame[hidden]{display:none!important;}

body.admin-body .dash-card-body:has(.tc-chart-table[hidden])::after{display:none!important;}

:is(.admin-body,.workspace-page) .dash-card{opacity:1!important;transform:none!important;animation:none!important;}

.tc-availability-preview{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center;}.tc-availability-preview>small{font-size:.65rem;color:var(--tc-text-muted);padding:.4rem 0;}.tc-preview-day{border:1px solid var(--tc-border);background:var(--tc-bg);border-radius:.4rem;min-height:35px;font-size:.72rem;color:var(--tc-text);}.tc-preview-day.available{background:var(--tc-success-l);color:#147363;}.tc-preview-day.blocked,.tc-preview-day.booked{background:var(--tc-bg-2);color:var(--tc-text-muted);}.tc-preview-day:disabled{opacity:.55;cursor:default;}.tc-preview-day:focus-visible{outline:3px solid #8ca8f3;outline-offset:1px;}

[data-theme=dark] .workspace-page :is(.sidebar-link.active,.tc-navbar .nav-link.active),[data-theme=dark] .tc-status-choice:has(input:checked){background:#23375b!important;color:#dbeaff!important;}
[data-theme=dark] :is(.tc-verification-icon,.tc-metric-symbol,.tc-workspace-tabs a>span){background:#23375b;color:#dbeaff;}
.tc-operations .dash-card-header>form{flex-wrap:wrap;min-width:0;}.tc-operations .dash-card-header>form :is(input[type=search],select){flex:1 1 145px;min-width:0;}
/* Record links remain distinct without turning the entire row into a control. */
.tc-entity-link{color:inherit;text-decoration:underline;text-decoration-color:rgba(100,116,139,.45);text-underline-offset:.18em;transition:color .15s,text-decoration-color .15s}.tc-entity-link:hover{color:var(--tc-primary);text-decoration-color:currentColor}.tc-entity-link:focus-visible{outline:3px solid #60a5fa;outline-offset:3px;border-radius:.15rem}.badge.tc-entity-link{border-style:solid;text-decoration:none}.badge.tc-entity-link:hover{box-shadow:0 0 0 1px var(--tc-primary)}.admin-body :is(.table,.admin-table) .badge.text-capitalize{white-space:nowrap;word-break:normal;overflow-wrap:normal;min-width:max-content}#usersTable :is(th,td):nth-child(3){min-width:88px}#usersTable td:nth-child(2){min-width:230px}#usersTable td:nth-child(2) .tc-entity-link{font-weight:600}
#usersTable :is(th,td){word-break:normal;overflow-wrap:normal}#usersTable td:nth-child(2) .x-small{overflow-wrap:anywhere}#usersTable :is(th,td):nth-child(4){min-width:120px}#usersTable :is(th,td):nth-child(5){min-width:130px}#usersTable :is(th,td):nth-child(6){min-width:140px}#usersTable :is(th,td):last-child{min-width:130px}
