
/* Componentes Contalents. Valores visuais consomem tokens existentes. */
.ct-button,.ct-icon-button,.ct-menu>button,.ct-pagination button,.ct-date button{align-items:center;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-weight:700;gap:var(--space-2);justify-content:center;min-height:calc(var(--space-10) + var(--space-1));padding:var(--space-2) var(--space-4);transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}
.ct-button.primary{background:var(--violet-500);color:var(--white)}.ct-button.primary:hover{background:var(--violet-700)}
.ct-button.secondary{background:var(--white);border-color:var(--border-default);color:var(--text-strong)}.ct-button.secondary:hover,.ct-button.ghost:hover{background:var(--surface-sunken)}
.ct-button.ghost{background:transparent;color:var(--text-link)}.ct-button.danger{background:var(--danger-500);color:var(--white)}
.ct-button:disabled,.ct-icon-button:disabled{cursor:not-allowed;opacity:.5}.ct-icon-button{background:transparent;color:var(--text-body);min-width:calc(var(--space-10) + var(--space-1));padding:var(--space-2)}
.ct-loader-dot{animation:ct-pulse var(--dur-slow) var(--ease-standard) infinite alternate;background:currentColor;border-radius:var(--radius-pill);height:var(--space-2);width:var(--space-2)}
.ct-badge{border-radius:var(--radius-pill);display:inline-flex;font-size:var(--text-caption);font-weight:700;padding:var(--space-1) var(--space-2)}.ct-badge.neutral{background:var(--surface-sunken);color:var(--text-body)}.ct-badge.success{background:var(--success-100);color:var(--success-500)}.ct-badge.warning{background:var(--warning-100);color:var(--warning-500)}.ct-badge.danger{background:var(--danger-100);color:var(--danger-500)}.ct-badge.info{background:var(--info-100);color:var(--info-500)}
.ct-avatar{align-items:center;background:var(--night-100);border-radius:var(--radius-pill);color:var(--night-700);display:inline-flex;font-weight:700;justify-content:center;overflow:hidden}.ct-avatar.sm{height:var(--space-8);width:var(--space-8)}.ct-avatar.md{height:var(--space-10);width:var(--space-10)}.ct-avatar.lg{height:var(--space-12);width:var(--space-12)}.ct-avatar img{height:100%;object-fit:cover;width:100%}
.ct-icon{height:var(--space-6);width:var(--space-6)}.ct-icon.sm{height:var(--space-4);width:var(--space-4)}.ct-icon.lg{height:var(--space-8);width:var(--space-8)}
.ct-tag{align-items:center;background:var(--violet-050);border:1px solid var(--violet-200);border-radius:var(--radius-pill);color:var(--violet-700);display:inline-flex;font-size:var(--text-body-sm);gap:var(--space-2);padding:var(--space-1) var(--space-3)}.ct-tag button{background:transparent;border:0;color:inherit;cursor:pointer;font-size:var(--text-caption);font-weight:700;min-height:var(--space-6)}
.ct-divider{align-items:center;display:flex;gap:var(--space-3);margin-block:var(--space-6)}.ct-divider::before,.ct-divider::after{background:var(--border-subtle);content:"";height:1px;flex:1}.ct-divider span{color:var(--text-muted);font-size:var(--text-caption)}
.ct-link{font-weight:600;text-underline-offset:var(--space-1)}.ct-key-value dd{color:var(--text-strong);font-weight:600;margin:0}.ct-card-content{padding:var(--space-6)}.ct-card.interactive{cursor:pointer;text-align:left;width:100%}.ct-card.interactive:hover{border-color:var(--violet-300);box-shadow:var(--shadow-xs)}
.ct-stat{border-left:var(--space-1) solid var(--violet-500);padding-left:var(--space-4)}.ct-stat span,.ct-stat p{color:var(--text-muted)}.ct-stat strong{color:var(--text-strong);display:block;font-family:var(--font-display);font-size:var(--text-h2)}
.ct-table-wrap{overflow:auto}.ct-table caption{text-align:left;font-weight:700;padding-bottom:var(--space-3)}
.ct-tabs{border-bottom:1px solid var(--border-default);display:flex;gap:var(--space-4)}.ct-tabs button{background:transparent;border:0;border-bottom:var(--space-1) solid transparent;color:var(--text-muted);cursor:pointer;font-weight:700;min-height:calc(var(--space-10) + var(--space-1));padding:var(--space-3) var(--space-1)}.ct-tabs button[aria-selected="true"]{border-color:var(--violet-500);color:var(--text-strong)}[role="tabpanel"]{padding-block:var(--space-6)}
.ct-filter-bar{align-items:center;border-bottom:1px solid var(--border-default);display:flex;flex-wrap:wrap;gap:var(--space-3);padding-bottom:var(--space-4)}.ct-filter-bar input{min-width:var(--container-sm)}.ct-filter-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.ct-chart{color:var(--violet-500);margin:0}.ct-chart figcaption{color:var(--text-muted);font-size:var(--text-caption);margin-top:var(--space-2)}.ct-chart.bars svg{color:var(--text-body);overflow:visible}.ct-chart.bars rect{fill:var(--precision-500)}.ct-chart.bars text{fill:var(--text-body);font-family:var(--font-body);font-size:var(--text-body-sm)}.ct-chart.donut{max-width:var(--container-sm)}.ct-chart.donut .slice.s0{stroke:var(--violet-700)}.ct-chart.donut .slice.s1{stroke:var(--violet-400)}.ct-chart.donut .slice.s2{stroke:var(--precision-700)}.ct-chart.donut .slice.s3{stroke:var(--precision-500)}.ct-chart.donut .slice.s4{stroke:var(--precision-300)}.ct-chart.donut .slice.s5{stroke:var(--gray-300)}.ct-chart.donut text{fill:var(--text-strong);font-family:var(--font-body)}
.ct-alert{border-left:var(--space-1) solid;padding:var(--space-4)}.ct-alert.info{background:var(--info-100);border-color:var(--info-500)}.ct-alert.success{background:var(--success-100);border-color:var(--success-500)}.ct-alert.warning{background:var(--warning-100);border-color:var(--warning-500)}.ct-alert.danger{background:var(--danger-100);border-color:var(--danger-500)}
.ct-scrim{align-items:stretch;background:color-mix(in srgb,var(--night-900) 62%,transparent);display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:var(--layer-drawer)}.ct-dialog{align-self:center;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);margin:auto;max-width:var(--container-sm);padding:var(--space-6);width:calc(100% - var(--space-8))}.ct-dialog header,.ct-drawer header{align-items:center;display:flex;justify-content:space-between}.ct-dialog footer,.ct-drawer footer{border-top:1px solid var(--border-subtle);margin-top:var(--space-6);padding-top:var(--space-4)}
.ct-progress>div:last-child{background:var(--surface-sunken);border-radius:var(--radius-pill);height:var(--space-2);overflow:hidden}.ct-progress>div:last-child span{background:var(--violet-500);display:block;height:100%}.ct-toast{background:var(--night-700);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);color:var(--white);max-width:var(--measure-narrow);padding:var(--space-4)}
.ct-tooltip{display:inline-flex;position:relative}.ct-tooltip [role="tooltip"]{background:var(--night-700);border-radius:var(--radius-xs);bottom:calc(100% + var(--space-2));color:var(--white);font-size:var(--text-caption);left:50%;opacity:0;padding:var(--space-2);pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap}.ct-tooltip:focus-within [role="tooltip"],.ct-tooltip:hover [role="tooltip"]{opacity:1}
.ct-field{display:grid;gap:var(--space-2)}.ct-field>label,.ct-field-group legend{color:var(--text-strong);font-weight:700}.ct-field input:not([type="checkbox"]):not([type="radio"]),.ct-field select,.ct-field textarea,.ct-combobox>input,.ct-filter-bar input{background:var(--white);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-strong);min-height:calc(var(--space-10) + var(--space-1));padding:var(--space-3)}.ct-field textarea{min-height:var(--space-24);resize:vertical}.ct-field [aria-invalid="true"]{border-color:var(--danger-500)}.ct-help{color:var(--text-muted);font-size:var(--text-body-sm)}.ct-error{color:var(--danger-500);font-size:var(--text-body-sm)}
.ct-choice{align-items:flex-start;display:flex;gap:var(--space-3);min-height:calc(var(--space-10) + var(--space-1));padding-block:var(--space-2)}.ct-choice input{height:var(--space-5);margin-top:var(--space-1);width:var(--space-5)}.ct-switch{align-items:center;cursor:pointer;display:flex;gap:var(--space-3);min-height:calc(var(--space-10) + var(--space-1))}.ct-switch input{position:absolute;opacity:0}.ct-switch>span{background:var(--gray-300);border-radius:var(--radius-pill);height:var(--space-6);padding:var(--space-1);width:var(--space-10)}.ct-switch>span::after{background:var(--white);border-radius:var(--radius-pill);content:"";display:block;height:var(--space-4);transition:transform var(--dur-base) var(--ease-standard);width:var(--space-4)}.ct-switch input:checked+span{background:var(--violet-500)}.ct-switch input:checked+span::after{transform:translateX(var(--space-4))}
.ct-input-action{display:flex}.ct-input-action input{border-radius:var(--radius-sm) 0 0 var(--radius-sm)!important;flex:1}.ct-input-action button{background:var(--white);border-color:var(--border-default);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.ct-calendar{background:var(--white);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-4)}.ct-calendar>div{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin-top:var(--space-3)}.ct-calendar button{background:transparent;border:0;min-width:calc(var(--space-10) + var(--space-1));padding:var(--space-2)}
.ct-upload{align-items:center;background:var(--surface-sunken);border:1px dashed var(--border-strong);border-radius:var(--radius-md);display:flex;gap:var(--space-4);justify-content:center;min-height:var(--space-24);padding:var(--space-6)}.ct-field-group{border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:grid;gap:var(--space-4);padding:var(--space-6)}.ct-form-actions{align-items:center;background:var(--white);border-top:1px solid var(--border-default);bottom:0;display:flex;justify-content:space-between;padding:var(--space-4);position:sticky}.ct-form-actions>div{display:flex;gap:var(--space-2)}
.ct-combobox{position:relative}.ct-combobox ul,.ct-menu ul{background:var(--white);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);list-style:none;margin:0;padding:var(--space-2);position:absolute;top:100%;width:100%;z-index:var(--layer-menu)}.ct-combobox li,.ct-menu [role="menuitem"]{border-radius:var(--radius-xs);cursor:pointer;display:flex;min-height:calc(var(--space-10) + var(--space-1));padding:var(--space-3);width:100%}.ct-combobox li[aria-selected="true"],.ct-combobox li:hover,.ct-menu [role="menuitem"]:hover{background:var(--violet-050)}
.ct-navbar{background:var(--white);border-bottom:1px solid var(--border-subtle);z-index:var(--layer-menu)}.ct-navbar.sticky{position:sticky;top:0}.ct-navbar>div{align-items:center;display:flex;justify-content:space-between;margin:auto;max-width:var(--container-lg);min-height:var(--space-16);padding-inline:var(--space-6)}.ct-navbar nav,.ct-navbar ul{align-items:center;display:flex;gap:var(--space-6);list-style:none}.ct-navbar a{color:var(--text-body);font-weight:600;text-decoration:none}.ct-mobile-menu{display:none}.ct-skip{left:var(--space-2);position:absolute;top:calc(var(--space-16) * -1)}.ct-skip:focus{top:var(--space-2)}
.ct-sidebar{background:var(--night-700);color:var(--white);display:flex;flex-direction:column;min-height:100vh;padding:var(--space-4);width:calc(var(--space-24) * 2.5)}.ct-sidebar ul{list-style:none;margin:0;padding:0}.ct-sidebar a{align-items:center;border-radius:var(--radius-sm);color:var(--night-100);display:flex;gap:var(--space-3);min-height:calc(var(--space-10) + var(--space-1));padding:var(--space-3);text-decoration:none}.ct-sidebar a[aria-current="page"]{background:var(--violet-500);color:var(--white)}.ct-sidebar footer{margin-top:auto}.ct-sidebar.collapsed{width:var(--space-16)}.ct-sidebar.collapsed a span{display:none}
.ct-breadcrumb ol{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.ct-breadcrumb li+li::before{color:var(--text-subtle);content:"/";margin-right:var(--space-2)}.ct-menu{display:inline-block;position:relative}.ct-menu ul{min-width:calc(var(--space-24) * 2);right:0}.ct-menu button.danger{color:var(--danger-500)}
.ct-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between}.ct-pagination button{background:var(--white);border-color:var(--border-default)}.ct-pagination button[aria-current="page"]{background:var(--violet-500);color:var(--white)}
.ct-drawer{background:var(--white);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;height:100%;padding:var(--space-6);width:min(100%,calc(var(--space-24) * 5))}.ct-drawer.left{margin-right:auto}.ct-drawer.right{margin-left:auto}.ct-drawer.sm{max-width:var(--container-sm)}.ct-drawer.md{max-width:var(--container-md)}.ct-drawer.lg{max-width:var(--container-lg)}.ct-drawer-body{overflow:auto;flex:1}
.ct-accordion section+section{border-top:1px solid var(--border-subtle)}.ct-accordion h3{font-family:var(--font-body);font-size:var(--font-size-body);margin:0}.ct-accordion h3 button{background:transparent;border:0;color:var(--text-strong);font-weight:700;min-height:calc(var(--space-10) + var(--space-1));padding:var(--space-4) 0;text-align:left;width:100%}.ct-accordion section>div{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) var(--ease-standard)}.ct-accordion section>div.open{grid-template-rows:1fr}.ct-accordion section>div>div{overflow:hidden;padding-right:var(--space-4)}
.ct-stepper{display:flex;list-style:none;margin:0;padding:0}.ct-stepper li{display:flex;flex:1;gap:var(--space-3);position:relative}.ct-stepper li>span{align-items:center;background:var(--gray-200);border-radius:var(--radius-pill);display:flex;height:var(--space-8);justify-content:center;min-width:var(--space-8)}.ct-stepper li.done>span{background:var(--success-100);color:var(--success-500);font-size:var(--text-caption)}.ct-stepper li.current>span{background:var(--violet-500);box-shadow:var(--shadow-focus);color:var(--white)}.ct-stepper.vertical{flex-direction:column;gap:var(--space-6)}
.ct-timeline{list-style:none;margin:0;padding:0}.ct-timeline li{display:grid;gap:var(--space-4);grid-template-columns:var(--space-4) 1fr;padding-bottom:var(--space-6);position:relative}.ct-timeline li::before{background:var(--border-default);content:"";height:100%;left:calc(var(--space-1) + var(--space-1));position:absolute;top:var(--space-3);width:2px}.ct-timeline .ct-point{margin-top:var(--space-2);z-index:1}.ct-timeline time{color:var(--text-muted);display:block;font-size:var(--text-caption)}.ct-timeline strong{display:block}
.ct-board{display:grid;gap:var(--space-4);grid-auto-columns:minmax(calc(var(--space-24) * 3),1fr);grid-auto-flow:column;overflow:auto}.ct-board>section{background:var(--surface-sunken);border-radius:var(--radius-md);padding:var(--space-4)}.ct-board header{align-items:center;display:flex;justify-content:space-between}.ct-board ul{display:grid;gap:var(--space-3);list-style:none;margin:var(--space-4) 0 0;padding:0}.ct-board li{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-4)}
.ct-two-pane{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);min-height:calc(100vh - var(--space-16))}.ct-two-list{border-right:1px solid var(--border-default);overflow:auto}.ct-two-detail{overflow:auto;padding:var(--space-6)}.ct-mobile-close{display:none}
.ct-empty,.ct-state{margin-inline:auto;max-width:var(--measure-narrow);padding:var(--space-12) var(--space-6);text-align:center}.ct-empty.inline{padding:var(--space-4);text-align:left}.ct-empty p,.ct-state p{color:var(--text-muted)}.ct-state details{text-align:left}.ct-state pre{overflow:auto;white-space:pre-wrap}
.ct-skeleton-group{display:grid;gap:var(--space-2)}.ct-skeleton{animation:ct-skeleton var(--dur-slow) var(--ease-standard) infinite alternate;background:var(--gray-200);border-radius:var(--radius-xs);display:block;height:var(--space-4)}.ct-skeleton.title{height:var(--space-8)}.ct-skeleton.avatar{border-radius:var(--radius-pill);height:var(--space-10);width:var(--space-10)!important}.ct-skeleton.thumb{height:var(--space-24)}.ct-skeleton.row{height:var(--space-12)}
.ct-loader{align-items:center;display:flex;gap:var(--space-3);justify-content:center}.ct-loader>span:first-child{animation:ct-spin var(--dur-slow) linear infinite;border:var(--space-1) solid var(--gray-200);border-radius:var(--radius-pill);border-top-color:var(--violet-500);height:var(--space-8);width:var(--space-8)}.ct-loader.sm>span:first-child{height:var(--space-5);width:var(--space-5)}.ct-loader.lg>span:first-child{height:var(--space-12);width:var(--space-12)}.ct-loader.inline{display:inline-flex}
@keyframes ct-spin{to{transform:rotate(360deg)}}@keyframes ct-pulse{to{opacity:.35}}@keyframes ct-skeleton{to{opacity:.55}}
@media(max-width:56.25rem){.ct-filter-bar input{min-width:0}.ct-two-pane{display:block}.ct-two-detail{background:var(--white);display:none;inset:0;position:fixed;z-index:var(--layer-drawer)}.ct-two-detail.open{display:block}.ct-mobile-close{display:inline-flex}.ct-board{grid-auto-columns:80vw}}
@media(max-width:48rem){.ct-mobile-menu{display:inline-flex}.ct-navbar nav{background:var(--white);border-top:1px solid var(--border-subtle);display:none;inset:var(--space-16) 0 auto;position:absolute;padding:var(--space-4)}.ct-navbar nav.open{display:block}.ct-navbar nav ul{align-items:stretch;flex-direction:column}.ct-stepper.horizontal{flex-direction:column;gap:var(--space-6)}.ct-form-actions{align-items:stretch;flex-direction:column}.ct-form-actions>div{display:grid}.ct-scrim{align-items:flex-end}.ct-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:0;max-width:none;width:100%}}
@media(prefers-reduced-motion:reduce){.ct-loader>span:first-child,.ct-loader-dot,.ct-skeleton{animation:none}.ct-accordion section>div{transition:none}}
