/* Classes de componente do design system Jetro (copiado do export, com ajuste de contraste). */
.jt-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-md);padding:0 20px;border-radius:var(--radius-pill);border:1px solid transparent;font-family:var(--font-body);font-size:14px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;transition:background var(--dur-base) var(--ease-out),color var(--dur-base),border-color var(--dur-base),transform var(--dur-fast) var(--ease-out);text-decoration:none}
.jt-btn:active{transform:scale(.97)}
.jt-btn:focus-visible,.jt-icbtn:focus-visible,.jt-tab:focus-visible,.jt-tool:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-app),0 0 0 4px var(--focus-ring)}
.jt-btn[disabled],.jt-icbtn[disabled]{opacity:.4;pointer-events:none}
.jt-btn i,.jt-icbtn i{font-size:18px;line-height:1}
.jt-btn--sm{height:var(--control-sm);padding:0 14px;font-size:13px}
.jt-btn--lg{height:var(--control-lg);padding:0 26px;font-size:15px}
.jt-btn--block{width:100%}
.jt-btn--primary{background:var(--surface-inverse);color:var(--text-inverse)}
.jt-btn--primary:hover{background:var(--surface-inverse-hover)}
.jt-btn--accent{background:var(--surface-accent);color:var(--text-on-accent)}
.jt-btn--accent:hover{background:var(--surface-accent-hover)}
.jt-btn--secondary{background:var(--surface-2);color:var(--text-1)}
.jt-btn--secondary:hover{background:var(--surface-3)}
.jt-btn--outline{background:transparent;color:var(--text-1);border-color:var(--border-strong)}
.jt-btn--outline:hover{background:var(--hover-tint);border-color:var(--text-1)}
.jt-btn--ghost{background:transparent;color:var(--text-2)}
.jt-btn--ghost:hover{background:var(--hover-tint);color:var(--text-1)}
.jt-btn--danger{background:var(--danger);color:#fff}
.jt-btn--danger:hover{filter:brightness(.94)}

.jt-icbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--control-md);height:var(--control-md);border-radius:50%;border:1px solid transparent;background:var(--surface-2);color:var(--text-1);cursor:pointer;transition:background var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.jt-icbtn:hover{background:var(--surface-3)}
.jt-icbtn:active{transform:scale(.94)}
.jt-icbtn--sm{width:var(--control-sm);height:var(--control-sm)}.jt-icbtn--sm i{font-size:16px}
.jt-icbtn--lg{width:var(--control-lg);height:var(--control-lg)}.jt-icbtn--lg i{font-size:20px}
.jt-icbtn--inverse{background:var(--surface-inverse);color:var(--text-inverse)}.jt-icbtn--inverse:hover{background:var(--surface-inverse-hover)}
.jt-icbtn--accent{background:var(--surface-accent);color:var(--text-on-accent)}.jt-icbtn--accent:hover{background:var(--surface-accent-hover)}
.jt-icbtn--outline{background:transparent;border-color:var(--border-2)}.jt-icbtn--outline:hover{background:var(--hover-tint)}
.jt-icbtn--surface{background:var(--surface-1);box-shadow:var(--shadow-1)}
.jt-icbtn__dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--coral-400);box-shadow:0 0 0 2px var(--surface-2)}

.jt-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;line-height:1;white-space:nowrap}
.jt-badge--sm{height:20px;padding:0 8px;font-size:11px}
.jt-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.jt-badge--neutral{background:var(--surface-3);color:var(--text-2)}
.jt-badge--inverse{background:var(--surface-inverse);color:var(--text-inverse)}
.jt-badge--lime{background:var(--lime-500);color:var(--ink-950)}
.jt-badge--blue{background:var(--blue-200);color:var(--blue-700)}
.jt-badge--sky{background:var(--sky-200);color:var(--sky-700)}
.jt-badge--coral{background:var(--coral-200);color:var(--coral-700)}
.jt-badge--sand{background:var(--sand-200);color:var(--sand-700)}
.jt-badge--mint{background:var(--mint-200);color:var(--mint-700)}
.jt-badge--outline{background:transparent;color:var(--text-2);box-shadow:inset 0 0 0 1px var(--border-2)}

.jt-avatar{position:relative;display:inline-flex;flex:none;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-3);color:var(--text-1);font-family:var(--font-display);font-weight:600;overflow:visible}
.jt-avatar__img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.jt-avatar__init{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center}
.jt-avatar--ring .jt-avatar__img,.jt-avatar--ring .jt-avatar__init{box-shadow:0 0 0 3px var(--surface-1)}
.jt-avatar__count{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);min-width:18px;height:18px;padding:0 4px;border-radius:9px;font-family:var(--font-body);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--surface-1)}
.jt-avatar__status{position:absolute;right:0;bottom:0;width:28%;height:28%;border-radius:50%;background:var(--success);box-shadow:0 0 0 2px var(--surface-1)}
.jt-stack{display:inline-flex;align-items:center}
.jt-stack>*+*{margin-left:-10px}
.jt-stack__more{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-inverse);color:var(--text-inverse);font-size:12px;font-weight:700;box-shadow:0 0 0 3px var(--surface-1)}
.jt-stack__add{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-2);border:1px dashed var(--border-strong);color:var(--text-1);cursor:pointer;box-shadow:0 0 0 3px var(--surface-1)}
.jt-stack__add:hover{background:var(--surface-3)}

.jt-card{background:var(--surface-1);color:var(--text-1);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-1);border:1px solid var(--border-1);min-width:0}
.jt-card--flat{box-shadow:none}
.jt-card--inset{background:var(--surface-2);box-shadow:none;border-color:transparent}
.jt-card--accent{background:var(--surface-accent);color:var(--ink-950);border-color:transparent}
[data-surface="accent"]{--text-1:var(--ink-950);--text-2:rgba(14,14,15,.78);--text-3:rgba(14,14,15,.7);--border-1:rgba(14,14,15,.12);--border-2:rgba(14,14,15,.2);--border-strong:rgba(14,14,15,.4);--surface-2:rgba(14,14,15,.07);--surface-3:rgba(14,14,15,.12);--hover-tint:rgba(14,14,15,.06);--surface-inverse:var(--ink-950);--text-inverse:var(--white)}
.jt-card--inverse{background:var(--ink-900);color:#F4F4F5;border-color:transparent}
[data-surface="inverse"]{--text-1:#F4F4F5;--text-2:#A8A8AF;--text-3:#9A9AA1;--surface-2:var(--ink-800);--surface-3:var(--ink-700);--border-1:rgba(255,255,255,.07);--border-2:rgba(255,255,255,.12);--border-strong:rgba(255,255,255,.28);--hover-tint:rgba(255,255,255,.06);--surface-inverse:var(--white);--surface-inverse-hover:var(--ink-200);--text-inverse:var(--ink-950)}
.jt-card--interactive{cursor:pointer;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base)}
.jt-card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.jt-card__head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.jt-card__title{font-family:var(--font-display);font-size:var(--fs-h4);font-weight:600;letter-spacing:-.01em;flex:1;min-width:0}
.jt-card__actions{display:flex;gap:8px}

.jt-tabs{display:inline-flex;gap:6px;flex-wrap:wrap}
.jt-tabs--track{padding:4px;border-radius:var(--radius-pill);background:var(--surface-2)}
.jt-tab{display:inline-flex;align-items:center;gap:8px;height:var(--control-sm);padding:0 16px;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--surface-2);color:var(--text-2);font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--dur-base) var(--ease-out),color var(--dur-base),border-color var(--dur-base)}
.jt-tab:hover{color:var(--text-1);background:var(--surface-3)}
.jt-tab[aria-selected="true"]{background:var(--surface-inverse);color:var(--text-inverse);font-weight:600}
.jt-tabs--track .jt-tab{background:transparent}
.jt-tabs--track .jt-tab:hover{background:var(--hover-tint)}
.jt-tabs--track .jt-tab[aria-selected="true"]{background:var(--surface-1);color:var(--text-1);box-shadow:var(--shadow-1)}
.jt-tabs--outline .jt-tab{background:transparent;border-color:var(--border-2)}
.jt-tabs--outline .jt-tab[aria-selected="true"]{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--text-inverse)}
.jt-tabs--sm .jt-tab{height:30px;padding:0 12px;font-size:12px}
.jt-tab__count{font-size:11px;font-weight:700;opacity:.6}

.jt-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.jt-field__label{font-size:13px;font-weight:600;color:var(--text-1)}
.jt-field__hint{font-size:12px;color:var(--text-3)}
.jt-field__hint--error{color:var(--danger-ink)}
[data-theme="dark"] .jt-field__hint--error{color:var(--coral-400)}
.jt-control{position:relative;display:flex;align-items:center;gap:10px;height:48px;padding:0 16px;border-radius:var(--radius-md);background:var(--surface-2);border:1px solid transparent;color:var(--text-1);transition:border-color var(--dur-base),background var(--dur-base),box-shadow var(--dur-base)}
.jt-control:hover{background:var(--surface-3)}
.jt-control:focus-within{background:var(--surface-1);border-color:var(--text-1);box-shadow:0 0 0 3px var(--hover-tint)}
.jt-control--error{border-color:var(--danger)}
.jt-control--disabled{opacity:.5;pointer-events:none}
.jt-control i{font-size:18px;color:var(--text-3)}
.jt-control input,.jt-control select,.jt-control textarea{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:inherit;font:500 14px/1.4 var(--font-body);appearance:none;-webkit-appearance:none}
.jt-control input::placeholder,.jt-control textarea::placeholder{color:var(--text-3);font-weight:400}
.jt-control select{cursor:pointer;padding-right:24px}
.jt-control__chev{position:absolute;right:16px;pointer-events:none}
.jt-control--sm{height:40px;border-radius:var(--radius-sm)}

.jt-check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--text-1);user-select:none}
.jt-check input{position:absolute;opacity:0;width:0;height:0}
.jt-check__box{width:22px;height:22px;flex:none;border-radius:7px;border:1.5px solid var(--border-strong);display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease-out);color:transparent;font-size:14px}
.jt-check:hover .jt-check__box{border-color:var(--text-1)}
.jt-check input:checked+.jt-check__box{background:var(--surface-inverse);border-color:var(--surface-inverse);color:var(--text-inverse)}
.jt-check input:focus-visible+.jt-check__box{box-shadow:0 0 0 2px var(--bg-app),0 0 0 4px var(--focus-ring)}
.jt-check--radio .jt-check__box{border-radius:50%}
.jt-check input:disabled+.jt-check__box{opacity:.4}

.jt-switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-size:14px;color:var(--text-1);user-select:none}
.jt-switch input{position:absolute;opacity:0;width:0;height:0}
.jt-switch__track{position:relative;width:46px;height:28px;flex:none;border-radius:14px;background:var(--surface-3);transition:background var(--dur-base) var(--ease-out)}
.jt-switch__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--white);box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform var(--dur-base) var(--ease-out),background var(--dur-base)}
.jt-switch input:checked+.jt-switch__track{background:var(--surface-inverse)}
.jt-switch input:checked+.jt-switch__track .jt-switch__knob{transform:translateX(18px);background:var(--lime-500)}
.jt-switch input:focus-visible+.jt-switch__track{box-shadow:0 0 0 2px var(--bg-app),0 0 0 4px var(--focus-ring)}

.jt-stat{display:flex;flex-direction:column;gap:6px;min-width:0}
.jt-stat__label{font-size:13px;color:var(--text-2);font-weight:500}
.jt-stat__row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.jt-stat__value{font-family:var(--font-display);font-weight:500;font-size:var(--fs-metric);line-height:1;letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums}
.jt-stat--lg .jt-stat__value{font-size:var(--fs-metric-xl);font-weight:400}
.jt-stat--sm .jt-stat__value{font-size:var(--fs-metric-s)}
.jt-stat__unit{font-family:var(--font-display);font-size:15px;color:var(--text-2);font-weight:500}
.jt-stat__foot{font-size:12px;color:var(--text-3)}

.jt-alloc{display:flex;gap:4px;width:100%}
.jt-alloc__seg{height:10px;border-radius:var(--radius-pill);min-width:10px;transition:flex-grow var(--dur-slow) var(--ease-out)}
.jt-alloc--lg .jt-alloc__seg{height:14px}
.jt-alloc__legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--text-2)}
.jt-alloc__legend span{display:inline-flex;align-items:center;gap:6px}
.jt-alloc__legend b{width:8px;height:8px;border-radius:50%;display:inline-block}

.jt-tool{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 14px 0 6px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid transparent;color:var(--text-1);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:default;white-space:nowrap;transition:all var(--dur-base) var(--ease-out)}
button.jt-tool{cursor:pointer}
button.jt-tool:hover{background:var(--surface-3)}
.jt-tool--selected{background:var(--surface-inverse);color:var(--text-inverse)}
button.jt-tool--selected:hover{background:var(--surface-inverse-hover)}
.jt-tool__logo{width:32px;height:32px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--surface-1);color:var(--text-1);font-family:var(--font-display);font-size:13px;font-weight:700;overflow:hidden}
.jt-tool__logo img{width:20px;height:20px;object-fit:contain}
.jt-tool__check{font-size:14px;margin-left:2px;color:var(--lime-500)}
[data-theme="dark"] .jt-tool__check{color:var(--ink-950)}
.jt-tool--sm{height:34px;padding:0 12px 0 4px;font-size:12px}.jt-tool--sm .jt-tool__logo{width:26px;height:26px;font-size:11px}

.jt-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none}
.jt-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.jt-ring__label{font-family:var(--font-display);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}

.jt-overlay{position:fixed;inset:0;z-index:100;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;animation:jt-fade var(--dur-base) var(--ease-out)}
.jt-dialog{width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface-raised);color:var(--text-1);border-radius:var(--radius-2xl);padding:28px;box-shadow:var(--shadow-pop);animation:jt-rise var(--dur-slow) var(--ease-out)}
.jt-dialog__head{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}
.jt-dialog__title{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:600;letter-spacing:var(--tracking-tight);flex:1}
.jt-dialog__desc{font-size:14px;color:var(--text-2);margin-top:6px}
.jt-dialog__foot{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;flex-wrap:wrap}
@media (max-width:600px){.jt-overlay{align-items:flex-end;padding:8px}.jt-dialog{border-radius:28px;padding:24px}}

.jt-toast{display:flex;align-items:center;gap:12px;min-width:280px;max-width:420px;padding:10px 10px 10px 14px;border-radius:var(--radius-lg);background:var(--surface-inverse);color:var(--text-inverse);box-shadow:var(--shadow-pop);font-size:14px;animation:jt-rise var(--dur-slow) var(--ease-out)}
.jt-toast__icon{width:32px;height:32px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--lime-500);color:var(--ink-950)}
.jt-toast--error .jt-toast__icon{background:var(--coral-400)}
.jt-toast--info .jt-toast__icon{background:var(--blue-400)}
.jt-toast__body{flex:1;min-width:0}
.jt-toast__title{font-weight:600}
.jt-toast__desc{font-size:12px;opacity:.7;margin-top:2px}

.jt-tip{position:relative;display:inline-flex}
.jt-tip__bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);opacity:0;pointer-events:none;white-space:nowrap;padding:7px 12px;border-radius:var(--radius-sm);background:var(--surface-inverse);color:var(--text-inverse);font-size:12px;font-weight:600;transition:opacity var(--dur-fast),transform var(--dur-base) var(--ease-out);z-index:50}
.jt-tip__bubble--bottom{bottom:auto;top:calc(100% + 8px);transform:translate(-50%,-4px)}
.jt-tip:hover .jt-tip__bubble,.jt-tip:focus-within .jt-tip__bubble,.jt-tip__bubble--open{opacity:1;transform:translate(-50%,0)}

@keyframes jt-fade{from{opacity:0}to{opacity:1}}
@keyframes jt-rise{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation-duration:1ms!important;transition-duration:1ms!important}}
