/* Central Praia 1.0 — load tokens.css before this file. Font binaries and licenses in assets/fonts/. */
@font-face{font-family:'Archivo Expanded';src:url('assets/fonts/archivo-expanded-black.ttf') format('truetype');font-weight:900;font-display:swap}
@font-face{font-family:'Archivo Expanded';src:url('assets/fonts/archivo-expanded-extrabold.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:'Syne';src:url('assets/fonts/syne-variable.ttf') format('truetype');font-weight:400 800;font-display:swap}
@font-face{font-family:'Inter Tight';src:url('assets/fonts/inter-tight-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Martian Mono';src:url('assets/fonts/martian-mono-variable.ttf') format('truetype');font-weight:100 800;font-display:swap}
.cp-button{box-sizing:border-box;min-height:48px;padding:12px 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--cp-border-control);border-radius:4px;background:var(--cp-surface);color:var(--cp-text-strong);font:600 1rem/1.25 var(--cp-font-body);cursor:pointer;text-decoration:none;transition:box-shadow 120ms ease,transform 120ms ease;white-space:normal}
.cp-button.primary{background:var(--cp-accent);color:var(--cp-on-accent);border-color:var(--cp-asfalto)}
.cp-button.secondary{background:transparent;color:var(--cp-text-strong);border-color:var(--cp-text-strong)}
.cp-button.tertiary{border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:4px}
.cp-button:hover,.cp-button.is-hover{box-shadow:inset 0 0 0 1px currentColor}
.cp-button:active,.cp-button.is-pressed{box-shadow:inset 0 0 0 2px currentColor;transform:translateY(1px)}
.cp-button:disabled{cursor:not-allowed;background:var(--cp-disabled-bg);color:var(--cp-disabled-text);border-color:var(--cp-disabled-border);box-shadow:none;transform:none}
:where(a,button,input,select,textarea,summary):focus-visible,.cp-button:focus-visible,.demo-focus{outline:2px solid transparent;outline-offset:4px;box-shadow:var(--cp-focus-shadow)}
.cp-tag{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--cp-border-control);border-radius:0;padding:4px 8px;color:var(--cp-text-muted);background:var(--cp-surface);font:500 12px/18px var(--cp-font-data)}
.cp-tag.paid{color:var(--cp-text-strong);border-color:var(--cp-text-strong);font-weight:500}
.cp-field{display:flex;flex-direction:column;gap:8px;margin:20px 0;font:600 16px/24px var(--cp-font-body);color:var(--cp-text)}
.cp-field input,.cp-field select,.cp-field textarea{min-width:0;width:100%;box-sizing:border-box;min-height:48px;padding:12px 16px;border:1px solid var(--cp-border-control);border-radius:4px;background:var(--cp-surface);color:var(--cp-text);font:400 1rem/1.5 var(--cp-font-body)}
.cp-field input::placeholder{color:var(--cp-text-muted);opacity:1}
.cp-field input:disabled{background:var(--cp-disabled-bg);color:var(--cp-disabled-text);cursor:not-allowed}
.cp-field input.invalid,.cp-field input[aria-invalid=true]{border:2px solid var(--cp-text-strong);border-left:6px solid var(--cp-accent);padding-left:10px}
.cp-field .help,.cp-field .error{font-size:14px;line-height:20px;font-weight:400;color:var(--cp-text-muted)}
.cp-field .error{font-weight:600;color:var(--cp-text-strong)}
.required{font-size:14px;font-weight:400;color:var(--cp-text-muted)}
.check-line{display:flex;align-items:center;gap:12px;min-height:48px;margin:12px 0;font-size:16px}
.check-line input{appearance:auto;width:24px;height:24px;accent-color:var(--cp-text-strong)}
.chip[aria-pressed=true]{background:var(--cp-selected-bg);color:var(--cp-selected-text)}
.chip[aria-pressed=true]:before{content:'✓'}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.cp-message{display:flex;gap:12px;padding:20px;border:1px solid var(--cp-feedback-border);background:var(--cp-feedback-bg);color:var(--cp-feedback-text);font-size:16px;line-height:24px}
.cp-message .icon{flex-shrink:0}
.icon{width:24px;height:24px;flex-shrink:0;vertical-align:middle}
.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:100%;animation:cp-spin 1s linear infinite}
@keyframes cp-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
[hidden]{display:none!important}

.cp-button .icon{width:20px;height:20px}
@media(forced-colors:active){:where(a,button,input,select,textarea,summary):focus-visible,.cp-button:focus-visible,.demo-focus{outline:2px solid Highlight;outline-offset:3px;box-shadow:none}.cp-button,.cp-tag,.cp-field input,.cp-field select{border-color:ButtonText}.chip[aria-pressed=true]{outline:2px solid Highlight}}
