@import url("import.css");
/* [ai] Page-specific rules: home, daily loop, vault pages (ingest, inbox), settings, chat, embeds. The shell (bar, sidebar,
   frame, cards, buttons) is shell.css; the reading page is doc.css; the player is player.css. Tokens only. */
/* ---- home */
.at-home > .at-eyebrow { margin-bottom: 10px; }
.at-who { padding: 26px 30px; margin-bottom: 14px; font: 400 19px/1.55 var(--ds-text); } .at-who p { margin: 0 0 12px; } .at-who em { color: var(--ds-muted); } .at-who .at-more { font-family: var(--ds-font); }
.at-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-bottom: 14px; } .at-cards .at-card { display: flex; flex-direction: column; }
.at-needs { margin-bottom: 14px; border-color: var(--ds-line2); background: var(--ds-panel); } .at-needs-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 14px; } .at-needs-list a { color: var(--ds-fg); font-weight: 600; text-decoration: none; } .at-needs-list a::after { content: " →"; color: var(--ds-muted); }
.at-np { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.at-art { width: 44px; height: 44px; border-radius: 12px; flex: none; background: linear-gradient(135deg, var(--ds-accent), var(--ds-accent2)); }
.at-np strong { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.at-play { margin-left: auto; width: 40px; height: 40px; border-radius: 999px; border: 0; background: var(--ds-fg); color: var(--ds-bg); font-size: 14px; flex: none; display: grid; place-items: center; }
.at-track { height: 4px; border-radius: 2px; background: var(--ds-line); margin-top: auto; padding-top: 0; position: relative; top: 14px; } .at-track span { display: block; height: 100%; background: var(--ds-fg); border-radius: 2px; }
.at-continue { padding-bottom: 34px; }
.at-today-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; } .at-today-list li { display: flex; align-items: center; gap: 10px; }
.at-td-t { flex: 1; } .at-td-go, .at-td-done { font-weight: 600; text-decoration: none; color: var(--ds-fg); padding: 6px 12px; border-radius: 999px; border: 1px solid var(--ds-line2); min-height: 32px; display: inline-flex; align-items: center; }
.at-td-go { background: var(--ds-fg); color: var(--ds-bg); border-color: var(--ds-fg); } .at-td-done { color: var(--ds-muted); }
.at-streak { color: var(--ds-muted); font-size: 13px; margin: 10px 0 0; } .at-today-inline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 10px; } .at-today-inline .at-streak { margin: 0 0 0 auto; }
.at-digest { font-size: 15px; }
/* ---- daily loop: the runner (/do/<instrument>) */
.at-run { max-width: var(--ds-measure); }
.at-run-nav a { color: inherit; } .at-q { margin: 0 0 26px; } .at-q-t { display: block; font: 600 19px/1.3 var(--ds-font); margin: 0 0 6px; }
.at-q textarea { width: 100%; min-height: 60px; padding: 12px 14px; border: 1px solid var(--ds-line2); border-radius: var(--ds-radius-ctl); background: var(--ds-card); color: var(--ds-fg); font: 17px/1.6 var(--ds-font); resize: vertical; } .at-q textarea:focus { border-color: var(--ds-fg); outline: none; }
.at-scale { display: flex; gap: 6px; } .at-scale label { position: relative; } .at-scale input { position: absolute; opacity: 0; inset: 0; } .at-scale span { display: grid; place-items: center; width: 46px; height: 44px; border: 1px solid var(--ds-line2); border-radius: var(--ds-radius-ctl); background: var(--ds-card); font-weight: 600; cursor: pointer; }
.at-scale input:checked + span { background: var(--ds-fg); color: var(--ds-bg); border-color: var(--ds-fg); } .at-scale input:focus-visible + span { outline: 2px solid var(--ds-fg); outline-offset: 2px; }
.at-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; } .at-check input { width: 22px; height: 22px; accent-color: var(--ds-fg); }
/* ---- ingest */
.at-ingest-page section { margin-block: 1.5rem } .at-ingest-page h2 { margin-block: 0 .5rem }
.at-ingest-page .at-list li { color: var(--ds-fg); overflow-wrap: anywhere } .at-ingest-page .at-ingest-errs li { color: var(--ds-muted) }
.at-ingest-page .at-code { font: .82rem/1.5 var(--ds-mono); white-space: pre-wrap; overflow-wrap: anywhere; background: var(--ds-code); padding: .75rem; border-radius: var(--ds-radius-ctl) } .at-ingest-page code { font: .88em var(--ds-mono); overflow-wrap: anywhere }
.at-stats { list-style: none; margin: 0; padding: 0; font-size: 14px; display: grid; gap: 7px; } .at-stats b { font-variant-numeric: tabular-nums; margin-right: 4px; }
/* ---- inbox */
.at-inbox-page .at-prop { margin-block: 1rem; max-width: var(--ds-measure) } .at-inbox-page .at-prop h3 { margin: .25rem 0 .5rem; font-size: 1.15rem }
.at-inbox-page .at-ev { list-style: none; padding: 0; margin: .5rem 0; display: flex; flex-wrap: wrap; gap: .4rem .8rem; font-size: .9rem; color: var(--ds-muted) }
.at-inbox-page .at-prop-act { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: .75rem 0 0 } .at-inbox-page .at-prop-act .at-btn { min-height: 44px; min-width: 44px; padding-inline: 1rem }
.at-inbox-page .at-prop-act .at-accept { background: var(--ds-accent); color: var(--ds-bg); border-color: var(--ds-accent) } .at-inbox-page .at-prop-st { color: var(--ds-muted); font-size: .9rem }
.at-inbox-page .at-prop-accepted, .at-inbox-page .at-prop-dismissed { opacity: .72 } .at-inbox-page .at-prop-accepted .at-prop-act .at-btn, .at-inbox-page .at-prop-dismissed .at-prop-act .at-btn { display: none }
.at-inbox-page .at-empty { color: var(--ds-muted) } .at-prop-h-accepted { color: var(--ds-ok); font-weight: 600 } .at-prop-h-dismissed { color: var(--ds-muted) }
/* ---- settings (<atlas-settings>) */
.at-settings-page { max-width: 720px; }
.at-set { padding: 22px 24px 20px; border-radius: var(--ds-radius-card); background: var(--ds-card); border: 1px solid var(--ds-line); margin-bottom: 14px; } .at-set h2 { font: 400 26px/1.1 var(--ds-font); margin: 0 0 4px; text-transform: none; letter-spacing: 0; color: var(--ds-fg); display: block; } .at-set-lede { margin: 0 0 16px; color: var(--ds-muted); font-size: 14px; } .at-set-lede b { color: var(--ds-fg); font-weight: 600; }
.at-presets { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 18px; }
.at-preset { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 13px; min-height: 44px; border-radius: 14px; border: 1px solid var(--ds-line2); background: transparent; color: var(--ds-fg); font-family: var(--ds-font); text-align: left; cursor: pointer; transition: border-color .15s, background .15s, transform .15s var(--ds-ease); }
.at-preset:hover { background: var(--ds-soft); } .at-preset.on { border-color: var(--ds-fg); background: var(--ds-fg); color: var(--ds-bg); } .at-preset:active { transform: scale(.98); }
.at-preset-l { font-weight: 700; font-size: 14px; } .at-preset-g { font-size: 12px; font-variant-numeric: tabular-nums; opacity: .7; } .at-preset-h { font-size: 11.5px; opacity: .7; line-height: 1.3; margin-top: 3px; }
.at-slider { position: relative; padding: 6px 0 2px; } .at-slider input { -webkit-appearance: none; appearance: none; width: 100%; height: 44px; margin: 0; background: transparent; cursor: pointer; }
.at-slider input::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--ds-fg) var(--p), var(--ds-line2) var(--p)); } .at-slider input::-moz-range-track { height: 6px; border-radius: 999px; background: var(--ds-line2); } .at-slider input::-moz-range-progress { height: 6px; border-radius: 999px; background: var(--ds-fg); }
.at-slider input::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; margin-top: -8px; border-radius: 999px; background: var(--ds-card); border: 2px solid var(--ds-fg); box-shadow: var(--ds-shadow-sm); transition: transform .15s var(--ds-ease); } .at-slider input::-moz-range-thumb { width: 18px; height: 18px; border-radius: 999px; background: var(--ds-card); border: 2px solid var(--ds-fg); }
.at-slider input:active::-webkit-slider-thumb, .at-slider input:focus-visible::-webkit-slider-thumb { transform: scale(1.15); } .at-slider input:focus-visible { outline: none; }
.at-slider-scale { display: flex; justify-content: space-between; font-size: 11px; color: var(--ds-muted); font-variant-numeric: tabular-nums; margin-top: -4px; }
.at-set-live { margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--ds-soft); font-size: 14px; line-height: 1.45; } .at-set-live b { font-weight: 700; font-variant-numeric: tabular-nums; }
.at-sw, .at-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-top: 1px solid var(--ds-line); cursor: pointer; } .at-sw:first-of-type, .at-set-lede + .at-sw, .at-row:first-of-type, h2 + .at-row { border-top: 0; } .at-row { cursor: default; flex-wrap: wrap; }
.at-sw-t { display: flex; flex-direction: column; gap: 2px; font-size: 14px; font-weight: 600; } .at-sw-t .at-sub { font-weight: 400; }
.at-sw input { position: absolute; opacity: 0; width: 0; height: 0; } .at-sw-k { flex: none; width: 44px; height: 26px; border-radius: 999px; background: var(--ds-line2); position: relative; transition: background .2s; } .at-sw-k::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 999px; background: var(--ds-card); box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s var(--ds-ease); }
.at-sw input:checked + .at-sw-k { background: var(--ds-fg); } .at-sw input:checked + .at-sw-k::after { transform: translateX(18px); } .at-sw input:focus-visible + .at-sw-k { outline: 2px solid var(--ds-fg); outline-offset: 2px; }
.at-chips .ds-chip { min-height: 34px; }
.at-set-foot { text-align: center; color: var(--ds-muted); font-size: 12.5px; margin: 20px 0 0; transition: color .3s; } .at-set-foot.saved { animation: at-saved 1.2s var(--ds-ease); }
@keyframes at-saved { 0% { color: var(--ds-fg); } 100% { color: var(--ds-muted); } }
@media (max-width: 640px) { .at-presets { grid-template-columns: 1fr 1fr; } .at-set { padding: 18px 16px; } .at-who { padding: 20px; font-size: 17px; } }
.at-set-foot.err { color: var(--ds-danger); }
@media (prefers-reduced-motion: reduce) { .at-set-foot.saved { animation: none; } .at-preset { transition: none; } }
/* ---- chat (/chat): the frame is the page. Full-bleed under the bar, the body never scrolls, the height follows the visual
   viewport (--at-vv-h from the page script) so on an iPhone the composer rides up with the keyboard; html.at-kb drops the bottom inset. */
body.at-chat-body { height: 100dvh; overflow: hidden; overscroll-behavior: none; padding-bottom: 0; }
.at-chat-page { display: flex; flex-direction: column; margin: 0 -20px; height: calc(var(--at-vv-h, 100dvh) - var(--at-bar-h, 56px)); padding: 0 0 env(safe-area-inset-bottom); background: var(--ds-bg); }
html.at-kb .at-chat-page { padding-bottom: 0; }
.at-chat-frame { flex: 1 1 auto; width: 100%; min-height: 0; border: 0; background: var(--ds-bg); } .at-chat-off { margin: 0; padding: 8px 16px; font-size: 12.5px; color: var(--ds-muted); }
@media (min-width: 1100px) { html.at-side-open .at-chat-page { margin-left: -20px; } }   /* flush against the rail: the fork's own sidebar starts on our border */
/* ---- embeds (app/client/components) */
.at-embed { margin: 18px 0; } .at-embed-err { font: 500 13px var(--ds-font); color: var(--ds-muted); border: 1px dashed var(--ds-line2); border-radius: var(--ds-radius-ctl); padding: 10px 12px; margin: 0; }
.at-tile { display: inline-flex; flex-direction: column; gap: 2px; min-width: 150px; padding: 16px 18px; border-radius: var(--ds-radius-card); background: var(--ds-card); border: 1px solid var(--ds-line); font-family: var(--ds-font); }
.at-tile-v { font: 400 34px/1.05 var(--ds-font); font-variant-numeric: tabular-nums; } .at-tile-l { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-muted); } .at-tile-s { font-size: 13px; color: var(--ds-muted); }
.at-embed + .at-embed { margin-top: 10px; } .at-embed:has(.at-tile) { display: inline-block; margin-right: 10px; }
.at-reccard { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--ds-radius-card); background: var(--ds-card); border: 1px solid var(--ds-line); font-family: var(--ds-font); }
.at-recbody { min-width: 0; flex: 1; } .at-recbody strong { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .at-recbody .at-sub { display: block; }
.at-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-family: var(--ds-font); font-size: 14px; } .at-list li { padding: 10px 0; border-bottom: 1px solid var(--ds-line); } .at-list li:last-child { border-bottom: 0; }
.at-list strong { display: block; } .at-hit { display: block; } .at-list .at-sub { display: inline; margin-right: 6px; }

/* [ai] Injected static docs (shell.py inject → body.at-doc): the shared shell is the only chrome. Their own TOC column, copy
   buttons/toolbars and sticky mastheads are hidden or unstuck and their outer grid collapses to one measure; the rail's page
   TOC still reads the hidden nav.toc links. Their content styles (and working tools: filters, the workbook's exports) stay. */
body.at-doc nav.toc, body.at-doc .toolbar.no-print, body.at-doc .copybar, body.at-doc button.cp, body.at-doc #copy, body.at-doc #copy-text, body.at-doc #copy-html, body.at-doc #dcopy, body.at-doc .copy-section, body.at-doc button[class*="copy"] { display: none !important; }
body.at-doc header, body.at-doc .masthead { position: static !important; top: auto !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
body.at-doc .reg-tools { top: var(--at-bar-h, 56px) !important; }   /* the register's filter bar stays sticky, under the shared bar */
body.at-doc .wrap, body.at-doc .layout { display: block !important; max-width: 920px !important; margin: 0 auto !important; }
body.at-doc main { min-width: 0; max-width: none; }
