/* Build with Baker - The AI Receipt. Scoped under .air. CSP-safe (no inline styles).
   Uses the global --color-* tokens, so it inherits site-wide dark mode automatically.
   Soft tint + bar accent colors are local vars with a dark override. */

/* --air-gold was #B5851A: 2.82:1 as the bold "80%" on the pale callout and 3.32:1
   under the white label on the cost bar. Deepened to a bronze that clears both
   (5.08:1 and 5.96:1) while staying the same warm accent. */
.air { max-width: 780px; --air-soft:#E8EDF7; --air-green:#2E7D5B; --air-gold:#805E0D; }
html[data-theme="dark"] .air { --air-soft:#1A2540; --air-green:#5FC18E; --air-gold:#E5BD5F; }

.air-leadq { font-size: 1.18rem; font-weight: 600; color: var(--color-text); margin: 0 0 16px; letter-spacing: -.2px; }
.air-leadq .air-tk { color: var(--color-primary); }

.air-topbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-bottom:18px; }
.air-models { display:flex; gap:6px; background:var(--color-card); border:1px solid var(--color-border); border-radius:10px; padding:4px; box-shadow:var(--shadow-sm); }
.air-model { padding:7px 12px; border-radius:7px; cursor:pointer; font-size:.82rem; color:var(--color-text-muted); border:none; background:transparent; transition:.15s; font-family:inherit; }
.air-model.is-active { background:var(--color-primary-solid); color:#fff; font-weight:600; }
.air-model small { display:block; font-size:.68rem; opacity:.85; font-weight:400; }
/* The dark solid indigo has less headroom than the light one, so 85% white on the
   selected pill measures 4.00:1. Full strength on that one pill only. */
html[data-theme="dark"] .air-model.is-active small { opacity:1; }
.air-stamp { font-size:.74rem; color:var(--color-text-muted); }
.air-stamp b { color:var(--air-green); }
.air-stamp a { color:var(--color-primary); }
.air-stamp .air-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--air-green); margin-right:5px; vertical-align:middle; }

.air-tasks { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.air-task { background:var(--color-card); border:1px solid var(--color-border); color:var(--color-text); padding:9px 14px; border-radius:999px; cursor:pointer; font-size:.86rem; transition:.15s; box-shadow:var(--shadow-sm); font-family:inherit; }
.air-task:hover { border-color:var(--color-primary); }
.air-task.is-active { background:var(--color-primary-solid); border-color:var(--color-primary-solid); color:#fff; font-weight:600; }

.air-card { background:var(--color-card); border:1px solid var(--color-border); border-radius:14px; padding:22px; margin-bottom:16px; box-shadow:var(--shadow-sm); }
.air-sizerow { display:flex; align-items:center; gap:14px; }
.air-sizerow label { font-size:.9rem; color:var(--color-text-muted); min-width:140px; }
.air-sizerow input[type=range] { flex:1; accent-color:var(--color-primary); }
.air-sizeval { font-weight:700; font-size:1.02rem; min-width:120px; text-align:right; }

.air-headline { font-size:2.7rem; font-weight:800; margin:4px 0 2px; letter-spacing:-1.5px; color:var(--color-primary); }
.air-anchor { color:var(--color-text-muted); font-size:1rem; margin-bottom:18px; }
.air-anchor b { color:var(--color-text); }
.air-bar { display:flex; height:38px; border-radius:9px; overflow:hidden; margin:10px 0 12px; border:1px solid var(--color-border); }
.air-seg { display:flex; align-items:center; justify-content:center; font-size:.72rem; color:#fff; font-weight:700; transition:.3s; min-width:0; overflow:hidden; white-space:nowrap; text-shadow:0 1px 1px rgba(0,0,0,.25); }
/* The segment fills are theme tokens, and in dark mode they flip to light tints -
   --color-neutral becomes #B6BFD0, which left the white label at 1.85:1. The bar
   has to stay bright to read against the dark card, so flip the label to ink
   instead of dimming the bar. Lowest of the four is 5.68:1. */
html[data-theme="dark"] .air-seg { color:var(--color-bg); text-shadow:none; }
.air-legend { display:flex; flex-wrap:wrap; gap:14px; font-size:.81rem; color:var(--color-text-muted); }
.air-legend span { display:flex; align-items:center; gap:6px; }
.air-dot2 { width:11px; height:11px; border-radius:3px; display:inline-block; flex:none; }
.air-dot2.sys  { background:var(--color-neutral); }
.air-dot2.file { background:var(--color-primary); }
.air-dot2.inp  { background:var(--air-green); }
.air-dot2.out  { background:var(--air-gold); }
.air-punch { margin-top:16px; padding:13px 15px; border-radius:10px; background:var(--air-soft); border-left:4px solid var(--air-gold); font-size:.94rem; color:var(--color-text); }
.air-punch b { color:var(--air-gold); }
.air-tip { margin-top:10px; font-size:.84rem; color:var(--air-green); padding-left:2px; }
.air-tip b { color:var(--air-green); }
.air-tip:empty { display:none; }
.air-foot { margin-top:18px; font-size:.77rem; color:var(--color-text-muted); }

.air-exportrow { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:-2px 0 14px; font-size:.84rem; color:var(--color-text-muted); }
.air-exbtn { display:inline-flex; align-items:center; gap:6px; background:var(--color-card); border:1px solid var(--color-primary); color:var(--color-primary); border-radius:8px; padding:7px 13px; cursor:pointer; font-size:.82rem; font-weight:600; transition:.15s; font-family:inherit; }
.air-exbtn:hover { background:var(--color-primary-solid); color:#fff; }

.air-devlink { font-size:.88rem; color:var(--color-text-muted); margin:0 0 4px; }
.air-devlink a { color:var(--color-primary); font-weight:600; }

.air-learn { margin-top:16px; border-top:1px solid var(--color-border); padding-top:16px; }
.air-learn summary { cursor:pointer; color:var(--color-primary); font-weight:600; font-size:.9rem; list-style:none; display:inline-flex; align-items:center; gap:7px; }
.air-learn summary::-webkit-details-marker { display:none; }
.air-learn summary::before { content:"\203A"; font-size:1.1rem; transition:transform .15s; display:inline-block; }
.air-learn[open] summary::before { transform:rotate(90deg); }
.air-learnbody { margin-top:14px; font-size:.88rem; color:var(--color-text-muted); line-height:1.65; }
.air-learnbody h4 { color:var(--color-text); font-size:.92rem; margin:16px 0 6px; }
.air-learnbody h4:first-child { margin-top:0; }
.air-learnbody b { color:var(--color-text); }
.air-learnbody p { margin:0 0 10px; }
.air-learnbody code { background:var(--air-soft); padding:1px 6px; border-radius:5px; font-size:.85em; }

.air-check { display:flex; align-items:center; gap:8px; margin-top:11px; font-size:.84rem; color:var(--color-text-muted); }
.air-check input { accent-color:var(--color-primary); width:16px; height:16px; }

/* Phone widths. The size row is the only rigid line in this stylesheet: a 140px
   label, a 120px right-aligned value, 14px of gap and a range input with its own
   intrinsic minimum floor it around 417px, so the readout clipped off the right
   edge of every phone. Stack it instead of shrinking the pieces. */
@media (max-width: 560px) {
  .air-sizerow { flex-direction: column; align-items: stretch; gap: 8px; }
  .air-sizerow label { min-width: 0; }
  .air-sizerow input[type=range] { width: 100%; }
  .air-sizeval { min-width: 0; text-align: left; font-size: 1.15rem; }
  .air-card { padding: 18px 16px; }
  .air-headline { font-size: 2.1rem; letter-spacing: -1px; }
}
