/* Biblioteca v0.1. Usar após fonts.css e tokens.css, dentro de .sl-ui. */
.sl-ui { font-family:var(--sl-font-family); font-size:var(--sl-font-size-body); line-height:var(--sl-line-height-body); color:var(--sl-color-ink); font-synthesis:none; -webkit-font-smoothing:antialiased; }
.sl-ui *, .sl-ui *::before, .sl-ui *::after { box-sizing:border-box; }
.sl-ui [hidden] { display:none !important; }
.sl-ui :focus-visible { outline:3px solid var(--sl-color-focus); outline-offset:4px; }
.sl-ui button, .sl-ui input, .sl-ui select, .sl-ui textarea { font:inherit; }
.sl-ui button, .sl-ui a { touch-action:manipulation; }
.sl-ui button { cursor:pointer; }
.sl-ui .sl-icon-library { position:absolute; width:0; height:0; overflow:hidden; }
.sl-ui .sl-icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.sl-ui .sl-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.sl-ui .sl-button { min-height:var(--sl-control-height); padding:11px 17px; display:inline-flex; align-items:center; justify-content:center; gap:10px; border:1px solid transparent; border-radius:var(--sl-radius-button); font-size:var(--sl-font-size-button); font-weight:600; line-height:1.4; text-decoration:none; text-align:center; transition:background var(--sl-motion-fast),border-color var(--sl-motion-fast); max-width:100%; }
.sl-ui .sl-button .sl-icon { width:18px; height:18px; }
.sl-ui .sl-button--primary { color:white; background:var(--sl-color-action); border-color:var(--sl-color-action); }
.sl-ui .sl-button--primary:is(:hover,.sl-is-hover):not(:disabled):not([aria-disabled="true"]) { background:var(--sl-color-action-hover); border-color:var(--sl-color-action-hover); }
.sl-ui .sl-button--primary:is(:active,[data-state="active"]):not(:disabled):not([aria-disabled="true"]) { background:var(--sl-color-action-active); }
.sl-ui .sl-button--secondary { background:var(--sl-color-surface); color:var(--sl-color-secondary-ink); border-color:var(--sl-color-secondary-line); }
.sl-ui .sl-button--secondary:hover:not(:disabled) { background:var(--sl-color-secondary-hover); border-color:var(--sl-color-secondary-hover-line); }
.sl-ui .sl-button--secondary:active:not(:disabled) { background:var(--sl-color-secondary-active); }
.sl-ui .sl-button[data-state="focus"] { outline:3px solid var(--sl-color-focus); outline-offset:4px; }
.sl-ui .sl-button:disabled, .sl-ui .sl-button[aria-disabled="true"] { background:var(--sl-color-disabled-bg); border-color:var(--sl-color-secondary-line); color:var(--sl-color-muted); cursor:not-allowed; }
.sl-ui .sl-button[aria-busy="true"] { cursor:wait; }
.sl-ui .sl-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:var(--sl-color-link); text-underline-offset:4px; font-size:16px; font-weight:600; }
.sl-ui .sl-link:hover { color:var(--sl-color-link-hover); }
.sl-ui .sl-chrome { width:min(var(--sl-width-chrome),calc(100% - 96px)); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.sl-ui .sl-header { background:var(--sl-color-surface); border-bottom:1px solid var(--sl-color-line); }
.sl-ui .sl-header .sl-chrome { min-height:92px; }
.sl-ui .sl-brand { display:flex; align-items:center; gap:28px; flex:none; }
.sl-ui .sl-logo { width:166px; height:auto; display:block; }
.sl-ui .sl-brand-label { padding-left:28px; border-left:1px solid var(--sl-color-line); font-size:15px; color:var(--sl-color-muted); }
.sl-ui .sl-company { display:flex; align-items:center; justify-content:flex-end; gap:10px; font-size:15px; color:var(--sl-color-company); min-width:0; }
.sl-ui .sl-company span { overflow-wrap:anywhere; }
.sl-ui .sl-company .sl-icon { width:20px; height:20px; }
.sl-ui .sl-welcome { text-align:center; margin-bottom:44px; }
.sl-ui .sl-welcome > :first-child { margin:0; font-size:36px; line-height:1.22; font-weight:600; letter-spacing:-.7px; text-wrap:balance; }
.sl-ui .sl-welcome p { margin:12px 0 0; font-size:18px; line-height:1.5; color:var(--sl-color-muted); text-wrap:balance; }
.sl-ui .sl-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.sl-ui .sl-card { min-width:0; display:flex; flex-direction:column; align-items:center; text-align:center; padding:36px 28px 28px; border:1px solid var(--sl-color-line); border-radius:var(--sl-radius-card); background:var(--sl-color-surface); box-shadow:var(--sl-shadow-card); transition:box-shadow var(--sl-motion-card),border-color var(--sl-motion-card); }
.sl-ui .sl-card:hover, .sl-ui .sl-card:focus-within { border-color:var(--sl-color-card-hover-line); box-shadow:var(--sl-shadow-hover); }
.sl-ui .sl-card--featured { border-color:var(--sl-color-featured-line); }
.sl-ui .sl-card--featured:hover,.sl-ui .sl-card--featured:focus-within { border-color:var(--sl-color-featured-hover); }
.sl-ui .sl-card-icon { display:grid; place-items:center; width:56px; height:56px; margin-bottom:24px; color:var(--sl-color-brand); }
.sl-ui .sl-card-icon .sl-icon { width:48px; height:48px; stroke-width:1.55; }
.sl-ui .sl-card-title { font-size:22px; line-height:1.3; font-weight:600; letter-spacing:-.2px; margin:0; }
.sl-ui .sl-card-description { max-width:280px; margin:12px 0 28px; font-size:17px; line-height:1.55; color:var(--sl-color-muted); text-wrap:pretty; }
.sl-ui .sl-card .sl-button { width:100%; margin-top:auto; }
.sl-ui .sl-help { margin-top:40px; text-align:center; }
.sl-ui .sl-help > p { margin:0; font-size:16px; color:var(--sl-color-muted); }
.sl-ui .sl-help-links { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:0 24px; margin-top:12px; }
.sl-ui .sl-help-links a { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; font-size:15px; color:var(--sl-color-link); text-decoration:none; border-radius:4px; }
.sl-ui .sl-help-links a:hover { color:var(--sl-color-link-hover); text-decoration:underline; text-underline-offset:4px; }
.sl-ui .sl-help-links .sl-icon { width:20px; height:20px; }
.sl-ui .sl-footer { border-top:1px solid var(--sl-color-line); background:var(--sl-color-surface); font-size:14px; color:var(--sl-color-footer); }
.sl-ui .sl-footer .sl-chrome { min-height:68px; }
/* Expansões propostas: controles, feedback, dados e navegação. */
.sl-ui .sl-field { display:flex; flex-direction:column; gap:6px; margin:20px 0; }
.sl-ui .sl-field label { font-size:16px; font-weight:600; }
.sl-ui .sl-required { font-size:14px; color:var(--sl-color-muted); font-weight:400; }
.sl-ui .sl-input, .sl-ui .sl-select { width:100%; min-width:0; min-height:48px; padding:10px 12px; background:white; border:1px solid var(--sl-color-control-line); border-radius:7px; color:var(--sl-color-ink); font-size:17px; line-height:1.5; }
.sl-ui .sl-input:hover:not(:disabled),.sl-ui .sl-select:hover:not(:disabled) { border-color:var(--sl-color-ink); }
.sl-ui .sl-input::placeholder { color:var(--sl-color-muted); opacity:1; }
.sl-ui .sl-input[aria-invalid="true"], .sl-ui .sl-select[aria-invalid="true"] { border:2px solid var(--sl-color-error); padding:9px 11px; }
.sl-ui .sl-input--success { border:2px solid var(--sl-color-success); padding:9px 11px; }
.sl-ui .sl-input:read-only { background:var(--sl-color-canvas); }
.sl-ui .sl-input:disabled,.sl-ui .sl-select:disabled { background:var(--sl-color-disabled-bg); color:var(--sl-color-muted); cursor:not-allowed; opacity:1; }
.sl-ui .sl-hint,.sl-ui .sl-error,.sl-ui .sl-success { font-size:15px; }
.sl-ui .sl-hint { color:var(--sl-color-muted); }
.sl-ui .sl-error { color:var(--sl-color-error); }
.sl-ui .sl-success { color:var(--sl-color-success); }
.sl-ui .sl-check { display:flex; align-items:center; gap:10px; min-height:44px; font-size:16px; margin-bottom:16px; cursor:pointer; }
.sl-ui .sl-check input { width:20px; height:20px; accent-color:var(--sl-color-action); flex:none; }
.sl-ui .sl-table-wrap { overflow:auto; max-width:100%; border:1px solid var(--sl-color-line); border-radius:12px; }
.sl-ui .sl-table { width:100%; min-width:500px; border-collapse:collapse; font-size:16px; text-align:left; }
.sl-ui .sl-table caption { text-align:left; padding:16px 20px; font-size:15px; color:var(--sl-color-muted); background:var(--sl-color-surface); }
.sl-ui .sl-table th,.sl-ui .sl-table td { padding:16px 20px; border-top:1px solid var(--sl-color-line); vertical-align:top; }
.sl-ui .sl-table th { font-weight:600; }
.sl-ui .sl-table thead { background:var(--sl-color-canvas); }
.sl-ui .sl-table tbody tr:hover { background:var(--sl-color-canvas); }
.sl-ui .sl-tag { display:inline-block; border:1px solid var(--sl-color-line); padding:3px 10px; border-radius:4px; font-size:14px; color:var(--sl-color-secondary-ink); background:var(--sl-color-canvas); white-space:nowrap; }
.sl-ui .sl-tag--info { background:var(--sl-color-info-bg); color:var(--sl-color-info); border-color:var(--sl-color-info); }
.sl-ui .sl-alert { padding:20px 24px; border:1px solid currentColor; border-radius:12px; }
.sl-ui .sl-alert strong { font-size:17px; font-weight:600; }
.sl-ui .sl-alert p { margin:6px 0 0; font-size:16px; line-height:1.5; }
.sl-ui .sl-alert--info { color:var(--sl-color-info); background:var(--sl-color-info-bg); }
.sl-ui .sl-alert--success { color:var(--sl-color-success); background:var(--sl-color-success-bg); }
.sl-ui .sl-alert--warning { color:var(--sl-color-warning); background:var(--sl-color-warning-bg); }
.sl-ui .sl-alert--error { color:var(--sl-color-error); background:var(--sl-color-error-bg); }
.sl-ui .sl-empty { text-align:center; display:flex; align-items:center; flex-direction:column; justify-content:center; }
.sl-ui .sl-empty .sl-icon { color:var(--sl-color-muted); width:36px; height:36px; margin-bottom:12px; }
.sl-ui .sl-inline-status { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.sl-ui .sl-spinner { width:18px; height:18px; display:inline-block; flex:none; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:sl-spin .8s linear infinite; }
@keyframes sl-spin { to { transform:rotate(360deg); } }
.sl-ui .sl-tablist { display:flex; gap:4px; border-bottom:1px solid var(--sl-color-line); overflow:auto; padding:4px; }
.sl-ui .sl-tab { background:transparent; color:var(--sl-color-muted); border:0; border-bottom:3px solid transparent; padding:12px 16px; min-height:48px; font-size:16px; font-weight:600; flex:none; }
.sl-ui .sl-tab:hover { background:var(--sl-color-canvas); }
.sl-ui .sl-tab[aria-selected="true"] { color:var(--sl-color-action); border-bottom-color:var(--sl-color-action); }
.sl-ui .sl-tabpanel { padding:24px 4px 4px; }
.sl-ui .sl-dialog { width:min(480px,calc(100% - 32px)); max-height:calc(100svh - 32px); overflow:auto; margin:auto; border:1px solid var(--sl-color-line); border-radius:16px; padding:28px; background:white; color:var(--sl-color-ink); box-shadow:var(--sl-shadow-dialog); font:inherit; }
.sl-ui .sl-dialog::backdrop { background:#252d385c; backdrop-filter:blur(3px); }
.sl-ui .sl-dialog-head { display:flex; gap:16px; justify-content:space-between; align-items:center; }
.sl-ui .sl-dialog h2 { margin:0; font-size:24px; font-weight:600; line-height:1.3; }
.sl-ui .sl-dialog p { margin:16px 0 20px; }
.sl-ui .sl-dialog .sl-alert p { margin:6px 0 0; }
.sl-ui .sl-dialog-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
.sl-ui .sl-icon-button { display:grid; place-items:center; flex:none; min-width:44px; min-height:44px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--sl-color-muted); }
.sl-ui .sl-icon-button:hover { background:var(--sl-color-canvas); }
@media (max-width:1050px) {
 .sl-ui .sl-chrome { width:calc(100% - 64px); }
 .sl-ui .sl-card-grid { gap:16px; }
 .sl-ui .sl-card { padding:28px 18px 24px; }
 .sl-ui .sl-card .sl-button { padding-inline:10px; gap:6px; }
}
@media (max-width:760px) {
 .sl-ui .sl-chrome { width:calc(100% - 40px); gap:16px; }
 .sl-ui .sl-header .sl-chrome { min-height:80px; }
 .sl-ui .sl-logo { width:136px; }
 .sl-ui .sl-brand-label { display:none; }
 .sl-ui .sl-company { font-size:14px; gap:7px; }
 .sl-ui .sl-card-grid { grid-template-columns:1fr; }
 .sl-ui .sl-card { padding:28px; }
 .sl-ui .sl-card-icon { height:44px; margin-bottom:20px; }
 .sl-ui .sl-card-icon .sl-icon { width:40px; height:40px; }
 .sl-ui .sl-card-description { margin-bottom:24px; }
 .sl-ui .sl-welcome { margin-bottom:28px; }
 .sl-ui .sl-welcome > :first-child { font-size:30px; letter-spacing:-.5px; }
 .sl-ui .sl-welcome p { font-size:17px; max-width:300px; margin-inline:auto; }
 .sl-ui .sl-help { margin-top:32px; }
 .sl-ui .sl-help-links { flex-direction:column; gap:4px; }
 .sl-ui .sl-footer .sl-chrome { min-height:64px; }
}
@media (prefers-reduced-motion:reduce) { .sl-ui *, .sl-ui *::before, .sl-ui *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
