:root {
  --b: #d8dee6; --p: #1a5fb4; --bg: #f7f8fa; --tx: #1a1d21; --mut: #6b7580; --bad: #c01c28; --ok: #0f5132;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; margin: 0; background: var(--bg); color: var(--tx); font-size: 15px; }
.wrap { max-width: 780px; margin: 0 auto; padding: 16px calc(16px + env(safe-area-inset-right)) 40px calc(16px + env(safe-area-inset-left)); }
header h1 { font-size: 20px; margin: 0 0 4px; }
.sub { color: var(--mut); font-size: 13px; margin: 0 0 16px; }
.mut { color: var(--mut); font-size: 13px; }
.accent { color: var(--p); }
fieldset { border: 1px solid var(--b); border-radius: 10px; padding: 14px; margin: 0 0 14px; background: #fff; }
legend { font-weight: 600; font-size: 12px; padding: 0 6px; color: var(--mut); text-transform: uppercase; letter-spacing: .04em; }
label { display: block; font-size: 12px; color: var(--mut); margin-bottom: 3px; }
.mt { margin-top: 12px; }
input, textarea, select { width: 100%; padding: 10px; border: 1px solid var(--b); border-radius: 7px; font: inherit; font-size: 16px; background: #fff; color: var(--tx); }
input:focus, textarea:focus, select:focus { outline: 2px solid var(--p); outline-offset: -1px; border-color: var(--p); }
textarea { min-height: 150px; resize: vertical; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.full { grid-column: 1 / -1; }
.span2 { grid-column: span 2; }
.timb { display: flex; gap: 8px; flex-wrap: wrap; }
.timb label { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--tx); padding: 9px 14px; border: 1px solid var(--b); border-radius: 8px; cursor: pointer; background: #fff; margin: 0; font-weight: 600; }
.timb input { width: auto; }
.timb label:hover { border-color: var(--p); background: #f0f5fc; }
button { background: var(--p); color: #fff; border: 0; border-radius: 8px; padding: 13px 20px; font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; min-height: 44px; }
button:disabled { opacity: .5; cursor: default; }
.ghost { background: transparent; color: var(--mut); border: 1px solid var(--b); font-weight: 400; }
.bar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.err { color: var(--bad); font-size: 12px; margin-top: 3px; display: none; }
.msg { padding: 10px 12px; border-radius: 8px; font-size: 14px; margin-bottom: 12px; }
.msg.ok { background: #e6f4ea; color: var(--ok); }
.msg.bad { background: #fdecea; color: #8c1d18; }
.auth { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; padding: 10px; border: 1px solid var(--b); border-radius: 8px; background: #fff; }
.auth input { width: auto; flex: 1; min-width: 180px; }
.perfil { border: 1px solid var(--b); border-radius: 10px; padding: 0 14px; background: #fff; }
.perfil summary { cursor: pointer; padding: 12px 0; font-size: 13px; color: var(--mut); }
.perfil[open] { padding-bottom: 14px; }
@media (prefers-color-scheme: dark) {
  :root { --b: #333a44; --bg: #16191d; --tx: #e6e9ee; --mut: #9aa4b0; }
  fieldset, .auth, .perfil, input, textarea, select, .timb label { background: #1e2228; }
  .timb label:hover { background: #24303f; }
  .msg.ok { background: #10281a; } .msg.bad { background: #2a1416; color: #f5a6a0; }
}
