/* Mayara Almeida DS — components v0.2. Requires tokens.css */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
a{color:var(--color-primary-text)} a:hover{color:var(--primary-600)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
::selection{background:var(--primary-100)}

/* Type */
.display{font-family:var(--font-display);font-size:var(--text-display);font-weight:600;line-height:var(--lh-display);letter-spacing:var(--ls-display)}
.h1{font-family:var(--font-display);font-size:var(--text-h1);font-weight:600;line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}
.h2{font-family:var(--font-display);font-size:var(--text-h2);font-weight:600;line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}
.h3{font-size:var(--text-h3);font-weight:700;line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}
.text-sm{font-size:var(--text-sm);line-height:var(--lh-sm)}
.text-muted{color:var(--color-text-muted)}
.label{font-size:var(--text-label);font-weight:500;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--color-text-muted)}
.num{font-variant-numeric:tabular-nums}

/* Buttons — glass */
.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 22px;border:0;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:15px;font-weight:500;letter-spacing:-.005em;cursor:pointer;text-decoration:none;
  -webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);
  background-size:260% 100%,100% 100%;background-position:140% 0,0 0;background-repeat:no-repeat;
  transition:transform var(--dur-base) ease,filter var(--dur-base) ease,background-position var(--dur-sheen) var(--ease-out)}
.btn > *{position:relative;z-index:2}
.btn:hover{transform:translateY(-1px);background-position:-40% 0,0 0}
.btn:active{transform:translateY(0)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
.btn-sm{height:36px;padding:0 16px;font-size:14px;border-radius:var(--radius-md)}
.btn-lg{height:52px;padding:0 26px;font-size:16px}
.btn-primary{color:#fff;text-shadow:0 1px 1px rgba(110,25,25,.3);
  background-image:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.02) 38%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.02) 62%,transparent 75%),linear-gradient(170deg,#DE5F5A 0%,var(--color-primary) 55%,#CC3838 100%);
  box-shadow:inset 0 2px 1px -.5px rgba(255,255,255,.7),inset 0 -2px 1px -.5px rgba(255,255,255,.4),inset 0 0 14px 2px rgba(255,255,255,.18),0 0 0 .5px rgba(150,35,35,.55),0 3px 6px -2px rgba(110,40,40,.18),0 16px 28px -12px rgba(var(--blush),.55)}
.btn-primary:hover{filter:brightness(1.06)} .btn-primary:active{filter:brightness(.94)}
.btn-secondary{color:var(--color-text);
  background-image:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.12) 38%,rgba(255,255,255,.4) 50%,rgba(255,255,255,.12) 62%,transparent 75%),linear-gradient(170deg,rgba(246,246,248,.74) 0%,rgba(234,234,238,.68) 100%);
  box-shadow:-6px -4px 22px -6px rgba(160,230,235,.28),6px 6px 24px -6px rgba(255,205,175,.24),inset 0 0 16px rgba(255,255,255,.22),inset 0 2px 1px -.5px #fff,inset 0 -2px 1px -.5px rgba(255,255,255,.95),inset 3px 0 6px -3px rgba(70,70,85,.14),inset -3px 0 6px -3px rgba(70,70,85,.14),inset 0 0 12px rgba(255,255,255,.55),0 0 0 1px rgba(255,255,255,.85),0 3px 6px -2px rgba(60,40,50,.08),0 16px 26px -12px rgba(var(--blush),.42)}
.btn-secondary:hover{filter:brightness(1.02)} .btn-secondary:active{filter:brightness(.97)}
/* living aura — place <span class="btn-aura" aria-hidden="true"></span> as first child of .btn-primary.
   A layer with the button's own rounded shape and a slowly turning conic gradient in tints of the button red.
   No blur, no blend mode and no clipping, so it cannot leak a frame or a hard edge outside the button. */
@property --aura-a{syntax:"<angle>";inherits:false;initial-value:0deg}
.btn-aura{position:absolute!important;z-index:0!important;inset:0;border-radius:inherit;pointer-events:none;
  background:conic-gradient(from var(--aura-a),
    color-mix(in srgb,var(--primary-200) 30%,transparent),
    color-mix(in srgb,var(--primary-400) 14%,transparent),
    color-mix(in srgb,var(--primary-300) 24%,transparent),
    color-mix(in srgb,var(--primary-200) 30%,transparent));
  animation:ds-aura var(--dur-aura) linear infinite}
@keyframes ds-aura{to{--aura-a:360deg}}
.btn-ghost{background:transparent;color:var(--color-text);padding:0 14px;-webkit-backdrop-filter:none;backdrop-filter:none;transition:background var(--dur-fast)}
.btn-ghost:hover{background:var(--color-border);transform:none}
.btn-link{background:none;padding:0 4px;color:var(--color-primary-text);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(212,59,59,.35);-webkit-backdrop-filter:none;backdrop-filter:none}
.btn-link:hover{text-decoration-color:var(--color-primary);transform:none}
@media (prefers-reduced-motion:reduce){.btn-aura{animation:none}.btn{transition:none}}

/* Fields */
.field{display:flex;flex-direction:column;gap:8px}
.field-label{font-size:13px;font-weight:500}
.field-help{font-size:12px;color:var(--color-text-subtle)}
.field-error{font-size:12px;color:var(--color-danger)}
.input{height:44px;width:100%;padding:0 14px;font-family:var(--font-sans);font-size:15px;color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.input::placeholder{color:var(--color-placeholder)}
.input:hover{border-color:var(--neutral-400)}
.input:focus,.input:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring)}
.input[aria-invalid="true"],.input.is-error{border-color:var(--color-danger);box-shadow:0 0 0 4px rgba(163,32,28,.08)}
.input:disabled,.input.is-disabled{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text-muted);opacity:.5}
.input-group{display:flex;align-items:center;gap:8px;padding:0 14px}
.input-group > input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;font:inherit;color:inherit}
.input-affix{font-size:12px;font-weight:500;color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-xs);padding:4px 8px}

/* Choice */
.checkbox{appearance:none;width:20px;height:20px;margin:0;border:1px solid var(--neutral-400);border-radius:6px;background:#fff;cursor:pointer;display:inline-grid;place-content:center}
.checkbox:checked{background:var(--color-primary);border-color:var(--color-primary);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 6px -2px rgba(212,59,59,.5)}
.checkbox:checked::after{content:"";width:10px;height:6px;border:2px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.radio{appearance:none;width:20px;height:20px;margin:0;border:1px solid var(--neutral-400);border-radius:50%;background:#fff;cursor:pointer}
.radio:checked{border:6px solid var(--color-primary)}
.switch{appearance:none;width:40px;height:24px;margin:0;border-radius:12px;background:var(--neutral-300);position:relative;cursor:pointer;box-shadow:inset 0 1px 2px rgba(60,40,50,.12);transition:background var(--dur-base)}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(60,40,50,.2);transition:transform var(--dur-base) var(--ease-out)}
.switch:checked{background:var(--color-primary);box-shadow:inset 0 1px 2px rgba(110,25,25,.25)}
.switch:checked::after{transform:translateX(16px)}
.seg{display:inline-flex;gap:2px;padding:3px;background:var(--color-border);border-radius:var(--radius-md)}
.seg-opt{height:34px;padding:0 14px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:500 14px var(--font-sans);cursor:pointer}
.seg-opt[aria-pressed="true"]{background:#fff;color:var(--color-text);box-shadow:0 1px 2px rgba(60,40,50,.08),0 2px 6px -2px rgba(var(--blush),.2)}

/* Cards */
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}
.card-flat{box-shadow:none}
.list-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm)}
.list-row:hover{background:#F3F1EE}
.avatar{width:36px;height:36px;border-radius:var(--radius-md);background:#F1EEEB;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--neutral-700)}

/* Tags */
.tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:var(--radius-xs)}
.tag-primary{background:var(--color-danger-bg);color:var(--primary-700)}
.tag-neutral{background:var(--color-border);color:var(--neutral-700)}
.tag-success{background:var(--color-success-bg);color:var(--color-success-text)}
.tag-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}
.tag-outline{border:1px solid var(--color-border-strong);color:var(--neutral-700);padding:3px 9px}
