/* BE PURE notiZEN — Design-System v1 (ZEN / Tageslicht), festgezurrt 25.07.2026.
   Spec: docs/notizen_designsystem_v1_LOCKED_20260725.md
   Weltbild-Tokens vorbereitet (data-world), Standard = ZEN. */

*{box-sizing:border-box}
:root, [data-world="zen"]{
  color-scheme: light;
  --paper:#f3f4ee; --ink:#2c2f26; --ink2:#565a4f; --ink3:#6f7364;
  --line:#e2e4da; --line-strong:#d3d6ca;
  --mark:#211f1a; --accent:#6f8f68; --accent2:#516f4b; --accent-soft:#e8eee3; --card:#fff;
  --sand:#b79a5f; --blocked:#7c6588; --ghost:.05;
  --sans:"neue-haas-grotesk-display","neue-haas-grotesk-text",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --r:12px; --r-sm:10px;
}
/* Tageslicht-Weltbild GEGEN Browser-Zwangsinversion absichern: Ein explizit
   deklariertes (bewusst identisch helles) Dark-Theme signalisiert Chrome/Safari,
   dass die Seite ihr Farbschema selbst regelt — „Auto Dark Mode for Web Contents"
   invertiert dann NICHT mehr (kein Gold/Grau-Matsch). Das echte dunkle Weltbild
   folgt bewusst als eigener Odin-Skin, nicht als algorithmische Inversion. */
@media (prefers-color-scheme: dark){
  :root, [data-world="zen"]{
    color-scheme: light;
    --paper:#f3f4ee; --ink:#2c2f26; --ink2:#565a4f; --ink3:#6f7364;
    --line:#e2e4da; --line-strong:#d3d6ca;
    --mark:#211f1a; --accent:#6f8f68; --accent2:#516f4b; --accent-soft:#e8eee3; --card:#fff;
    --sand:#b79a5f; --blocked:#7c6588; --ghost:.05;
  }
}
/* ===== Weltbild Odin (Basalt / Feuerlicht) — bewusster Dark-Skin (kein
   Browser-Zwang). Gleiche Struktur wie ZEN, andere Gestalt: Rune statt Ensō,
   warmes Gold, Basaltgrund. Aktiv nur bei body[data-world="odin"]. ===== */
[data-world="odin"]{
  color-scheme:dark;
  --paper:#231a12; --ink:#e7dcc4; --ink2:#a4937a; --ink3:#7c6f5a;
  --line:#3a2e20; --line-strong:#4d3e2b;
  --mark:#c9a24e; --accent:#cf9f52; --accent2:#e2ba66; --accent-soft:#3a2a15;
  --sand:#c79a5c; --blocked:#b791ad; --ghost:.06; --card:#2c2216;
}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:var(--sans); font-weight:400;
  transition:background .5s ease, color .5s ease;
  background:var(--paper); color:var(--ink);
  line-height:1.62; letter-spacing:.006em; -webkit-font-smoothing:antialiased;
  font-size:16px;
}
a{color:inherit}

/* Tageslicht durchs Blätterdach + weiche Ruhe */
.atmos{position:fixed;inset:0;z-index:0;pointer-events:none;transition:opacity .5s ease}
body[data-world="zen"] .atmos{opacity:.10;
  background:radial-gradient(92% 62% at 50% -8%, rgba(255,255,255,.55), rgba(244,245,238,0) 58%),
    url("img/atmos_daylight.jpg") center top/cover no-repeat}
/* Odin: warme Feuerlicht-Glut + weiche Vignette (Geborgenheit), reines CSS */
body[data-world="odin"] .atmos{opacity:1;
  background:radial-gradient(50% 42% at 50% 37%, rgba(200,140,62,.20), rgba(110,66,26,.05) 46%, rgba(0,0,0,0) 70%),
    radial-gradient(125% 120% at 50% 6%, rgba(0,0,0,0) 52%, rgba(12,7,3,.55))}

/* ---- Blatt / linke Achse als Rückgrat ---- */
.sheet{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:26px 30px 90px 74px;overflow:hidden}
.axis{position:absolute;left:38px;top:30px;bottom:40px;width:1px;z-index:2;
  background:linear-gradient(180deg,transparent,var(--line-strong) 7%,var(--line-strong) 93%,transparent)}
.axis::before{content:"";position:absolute;left:-2px;top:60px;width:5px;height:5px;border-radius:50%;background:var(--accent)}

/* ---- Kopf: ruhig — nur Wortmarke + EIN Menü (statt Nav-Leiste) ---- */
.topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding-bottom:14px;margin-bottom:10px}
.brand{font-size:.92rem;letter-spacing:.01em;color:var(--ink2);text-decoration:none;font-weight:500}
.brand:hover{color:var(--ink)}
.menu{position:relative}
.menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;
  color:var(--ink2);font-size:.86rem;user-select:none;padding:.15rem .1rem}
.menu>summary::-webkit-details-marker{display:none}
.menu>summary:hover{color:var(--ink)}
.menu-ic{width:20px;height:13px;flex:none;
  background:linear-gradient(currentColor,currentColor) top/100% 1.6px no-repeat,
    linear-gradient(currentColor,currentColor) center/100% 1.6px no-repeat,
    linear-gradient(currentColor,currentColor) bottom/100% 1.6px no-repeat}
.menu[open] .menu-word{color:var(--ink)}
.menu-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.menu-panel{position:absolute;right:0;top:calc(100% + .55rem);z-index:50;
  width:min(240px,calc(100vw - 28px));
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.55rem;
  box-shadow:0 16px 44px rgba(46,51,44,.16);display:flex;flex-direction:column;gap:.7rem}
.menu-group{display:flex;flex-direction:column;gap:.02rem}
.menu-label{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3);
  font-weight:600;padding:0 .6rem .2rem}
.menu-panel a{padding:.44rem .6rem;border-radius:var(--r-sm);color:var(--ink2);font-size:.92rem;
  text-decoration:none;display:flex;align-items:center;gap:.4rem}
.menu-panel a:hover{background:var(--accent-soft);color:var(--accent2)}
.menu-panel a.on{color:var(--accent2);font-weight:500;background:var(--accent-soft)}
/* Reality-Captures: Filter nach Person */
.rc-filter{display:flex;flex-wrap:wrap;gap:.3rem .9rem;margin:.4rem 0 1.3rem;font-size:.82rem}
.rc-filter a{color:var(--ink3);text-decoration:none}
.rc-filter a:hover{color:var(--ink2)}
.rc-filter a.on{color:var(--accent2);font-weight:500;border-bottom:1px solid var(--accent-soft)}
.rc-meta strong{color:var(--ink)}

main.card{position:relative;z-index:2;padding:0}

/* ===================== HERO (Startseite) ===================== */
/* EINE Grösse --sz steuert Ensō, Zusatzkreis, Schrift & Abstand -> Proportion überall gleich */
.hero{--sz:min(384px,76vw);padding-top:clamp(6px,2.4vh,22px)}
@media(max-height:680px){ .hero{--sz:min(384px,76vw,46vh);padding-top:6px} }
.mark-field{display:flex;justify-content:center;padding:calc(var(--sz)*.05) 0 calc(var(--sz)*.05)}
.mark-wrap{position:relative;width:var(--sz);aspect-ratio:1/1}
.enso{position:absolute;inset:0;background:var(--mark);
  -webkit-mask:url("img/enso_zen.png") center/contain no-repeat;mask:url("img/enso_zen.png") center/contain no-repeat;
  filter:drop-shadow(0 calc(var(--sz)*.03) calc(var(--sz)*.05) rgba(58,56,44,.16))}
/* Weltbild-Sichtbarkeit + Odin-Rune (SVG mit Gold-Relief) */
[data-world="zen"] .odin-only{display:none!important}
[data-world="odin"] .zen-only{display:none!important}
.rune-big{position:absolute;inset:0;width:100%;height:100%}
.rune-sm{width:100%;height:100%}
.enso-sm{position:absolute;inset:0;background:var(--mark);
  -webkit-mask:url("img/enso_zen.png") center/contain no-repeat;mask:url("img/enso_zen.png") center/contain no-repeat;
  filter:drop-shadow(0 4px 8px rgba(58,56,44,.14))}
.count{position:absolute;top:2.5%;right:-1.5%;width:calc(var(--sz)*.188);height:calc(var(--sz)*.188);border-radius:50%;
  border:1px solid var(--ink2);background:var(--paper);display:grid;place-items:center;text-align:center;
  box-shadow:0 0 0 calc(var(--sz)*.016) var(--paper)}
.count .n{font-size:calc(var(--sz)*.056);color:var(--ink);line-height:1}
.count .l{font-size:calc(var(--sz)*.026);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);margin-top:calc(var(--sz)*.006)}
a.count{cursor:pointer;text-decoration:none;transition:border-color .2s ease}
a.count:hover{border-color:var(--accent2)}
a.count:hover .l{color:var(--accent2)}
.say{max-width:34ch}
.say .greeting{font-weight:300;font-size:calc(var(--sz)*.125);line-height:1.2;letter-spacing:-.014em;margin:0 0 calc(var(--sz)*.03);text-wrap:balance}
.say .progress{color:var(--ink3);font-size:.9rem;margin:0}.say .progress b{color:var(--accent2);font-weight:500}
.say .hint{color:var(--ink3);font-size:.9rem;margin:.2rem 0 0}
.zen-cta{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;margin-top:calc(var(--sz)*.055)}
.zen-cta-circle{width:42px;height:42px;border-radius:50%;border:1px solid var(--accent);color:var(--accent2);display:grid;place-items:center;font-size:1rem;flex:none;transition:.2s}
.zen-cta:hover .zen-cta-circle{background:var(--accent-soft)}
.zen-cta-label{color:var(--accent2);font-size:.88rem;letter-spacing:.05em}
.zen-later-hint{margin-top:calc(var(--sz)*.05);color:var(--ink3);font-size:.84rem}
.zen-later-hint a{color:var(--accent2);text-decoration:none;border-bottom:1px solid var(--accent-soft)}

/* Fortschritts-Bogen ums Ensō — „wachsende Vervollständigung" an echte Zahlen
   gebunden (done/total). Wächst beim Laden aus dem Nichts zum echten Stand. */
.enso-prog{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);z-index:1;pointer-events:none;overflow:visible}
.enso-prog .track{fill:none;stroke:var(--line-strong);stroke-width:.7;opacity:.45}
.enso-prog .arc{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;opacity:.9;
  stroke-dasharray:301.6;stroke-dashoffset:var(--off,301.6);
  animation:ensoFill 1.25s cubic-bezier(.22,.61,.36,1) .3s both}
@keyframes ensoFill{from{stroke-dashoffset:301.6}to{stroke-dashoffset:var(--off,301.6)}}
@media(prefers-reduced-motion:reduce){.enso-prog .arc{animation:none}}

/* Funkeln beim Erledigen — ruhig, kurz, ZEN (weicher Punkt, kein Konfetti) */
.zsparkle{position:fixed;z-index:60;width:6px;height:6px;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,var(--accent) 0%,var(--sand) 55%,transparent 72%);
  animation:zsparkle .62s ease-out forwards}
@keyframes zsparkle{0%{transform:translate(0,0) scale(.3);opacity:0}
  22%{opacity:1}100%{transform:translate(var(--dx,0),var(--dy,0)) scale(1);opacity:0}}

/* ===================== Folgeseiten: Tages-Anker + Geist ===================== */
.ghost-mark{position:absolute;top:-70px;right:-190px;width:520px;height:520px;opacity:var(--ghost);z-index:1;pointer-events:none}
.ghost-mark.zen{background:var(--mark);-webkit-mask:url("img/enso_zen.png") center/contain no-repeat;mask:url("img/enso_zen.png") center/contain no-repeat}
.page-head{display:flex;align-items:center;gap:1.1rem;margin:6px 0 1.7rem}
.anchor{position:relative;width:58px;height:58px;flex:none}
.page-head .eyebrow{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink3);font-weight:600}
.page-head h1{font-weight:400;font-size:1.2rem;margin:.15rem 0 .1rem;letter-spacing:-.005em}
.page-head .prog{font-size:.78rem;color:var(--ink3)}.page-head .prog b{color:var(--accent2);font-weight:500}

/* Seitentitel (einfache Seiten ohne Anker) */
h1{font-weight:400;font-size:1.2rem;margin:0 0 .3rem;letter-spacing:-.005em}
h2{font-weight:400;font-size:1rem;margin:1.6rem 0 .4rem;color:var(--ink2)}
h3{font-weight:400;font-size:.95rem}
.hint{color:var(--ink3);font-size:.9rem;line-height:1.6}
.story{color:var(--ink2);line-height:1.7;margin:.6rem 0}
.steps,.help-list{padding-left:1.2rem;line-height:1.7;color:var(--ink2)}
.highlight{font-size:1.05rem;color:var(--accent2);margin-top:1.4rem}
.legend,.legend-grid{color:var(--ink3);font-size:.9rem}
.legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.4rem;margin:1.1rem 0}
.legend-grid div strong{color:var(--ink)}.legend-grid div span{display:block;color:var(--ink3);font-size:.85rem}

/* ===================== Listen (Aufgaben) — offen, keine Kästen ===================== */
.group,.horizon-section{margin-top:1.8rem}.group:first-of-type,.horizon-section:first-of-type{margin-top:.4rem}
.horizon-heading{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink3);font-weight:600;
  margin:0 0 .4rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}
.horizon-heading-blocked{color:var(--blocked)} .horizon-heading-done{color:var(--ink3)}
.plan-list,.loop-list,.scan-list,.archiv-list,.user-list{list-style:none;margin:0;padding:0}
.loop-item,.archiv-item,.user-item{padding:.72rem 0;border-bottom:1px solid var(--line)}
.loop-view{display:flex;align-items:baseline;justify-content:space-between;gap:.85rem}
.loop-view[hidden]{display:none}
.loop-view > span,.scan-text,.archiv-text-wrap{flex:1;font-size:.98rem;color:var(--ink)}
.archiv-text-wrap{display:flex;flex-direction:column;gap:.15rem}
.fixed-date-badge{margin-left:.5rem;font-size:.72rem;color:var(--sand)}
/* Chat->Task-Bruecke: Herkunftsnachweis als ruhige Zeile unter dem Task */
.src-badge{display:block;margin-top:.25rem;font-size:.72rem;color:var(--ink3);letter-spacing:.01em}
.src-badge a{color:var(--accent2);text-decoration:none;border-bottom:1px solid var(--accent-soft)}
/* Interne Rückfragen (kontrollZENter-Keim) — Konversations-Threads */
.nav-count{display:inline-block;min-width:1.1em;padding:0 .35em;border-radius:999px;
  background:var(--accent-soft);color:var(--accent2);font-size:.7rem;font-weight:600;text-align:center}
.thread-list{list-style:none;margin:0 0 1.5rem;padding:0}
.thread{padding:.9rem 0 1rem;border-bottom:1px solid var(--line)}
.thread-handled{opacity:.6}
.thread-head{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.4rem}
.thread-with{font-weight:500;color:var(--ink)}
.thread-state{font-size:.72rem;color:var(--ink3)}
.thread-state.open{color:var(--accent2)}
.msg-list{list-style:none;margin:0;padding:0}
.msg-item{padding:.35rem 0}
.msg-item.msg-mine{padding-left:1.1rem;border-left:2px solid var(--accent-soft);margin-left:.1rem}
.msg-meta{font-size:.74rem;color:var(--ink3);margin-bottom:.1rem}
.msg-meta strong{color:var(--ink2)}
.msg-text{font-size:.96rem;color:var(--ink);line-height:1.5}
.thread-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;margin-top:.55rem}
.reply-form{display:flex;align-items:center;gap:.5rem;flex:1 1 16rem}
.reply-form input[type=text]{flex:1;font-family:inherit;font-size:.9rem;color:var(--ink);
  padding:.35rem .65rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--paper)}
.reply-form input[type=text]:focus{outline:none;border-color:var(--accent)}
.msg-form{display:flex;flex-direction:column;gap:.6rem;max-width:34rem;margin-top:.3rem}
.msg-form textarea{width:100%;font-family:inherit;font-size:.98rem;color:var(--ink);padding:.6rem .7rem;
  border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);resize:vertical}
.msg-form textarea:focus{outline:none;border-color:var(--accent)}
.msg-form .assign-select{align-self:flex-start}
.loop-actions{display:flex;gap:.9rem;flex-shrink:0}
.link-button{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.8rem;color:var(--ink3);padding:0}
.link-button:hover{color:var(--ink2)}
.loop-done-btn{color:var(--accent)}.loop-done-btn:hover{color:var(--accent2)}
.done-text,.archiv-text-no{color:var(--ink3);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.archiv-badge{font-size:.72rem;letter-spacing:.03em}
.archiv-badge-done{color:var(--accent2)}.archiv-badge-no{color:var(--ink3)}
.my-task-badge,.delegiert-meta{font-size:.72rem;color:var(--ink3)}
.my-task-active .my-task-badge{color:var(--accent2)}.my-task-blocked .my-task-badge{color:var(--blocked)}.my-task-done .my-task-badge{color:var(--accent2)}
.done-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.done-toggle-label{font-size:.72rem;color:var(--ink3);display:flex;align-items:center;gap:.4rem;cursor:pointer}
.done-section.done-hidden .done-list{display:none}
.scan-buttons{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.4rem}
.scan-buttons button{background:var(--card);color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:.34rem .9rem;cursor:pointer;font-family:inherit;font-size:.82rem}
.scan-buttons button:hover{border-color:var(--accent);color:var(--accent2)}
.access-badge{font-size:.68rem;padding:.12rem .5rem;border-radius:999px;margin-left:.4rem}
.access-badge-locked{color:var(--ink3);background:var(--line)}.access-badge-open{color:var(--accent2);background:var(--accent-soft)}
.team-delegated-heading,.delegiert-subhead{color:var(--ink3);margin-top:1.4rem}
.archiv-note{color:var(--ink3);font-style:italic}
.assign-label{color:var(--ink3);font-size:.85rem;white-space:nowrap}
.user-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.user-info{display:flex;flex-direction:column;gap:.15rem}
.user-name{color:var(--ink)}.user-meta{color:var(--ink3);font-size:.78rem}
.user-inactive .user-name{color:var(--ink3);text-decoration:line-through}

/* ===================== Formulare — weich ===================== */
textarea,input[type="text"],input[type="password"],input[type="date"],select,.soft-input{
  font-family:inherit;font-size:.95rem;color:var(--ink);background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:.6rem .7rem;outline:none;width:100%}
textarea{min-height:88px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.assign-select{width:auto}
.button{display:inline-block;margin-top:1rem;padding:.6rem 1.3rem;border:none;border-radius:999px;cursor:pointer;
  font-family:inherit;font-size:.92rem;background:var(--accent);color:#fff;text-decoration:none;letter-spacing:.02em}
.button.secondary{background:var(--accent-soft);color:var(--accent2)}
.loop-edit-form{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem 0;flex-wrap:wrap}
.loop-edit-form[hidden]{display:none}
.new-user-form{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.new-user-form input,.new-user-form select{width:auto}
.login-error{color:#b06a6a;font-size:.85rem;margin:.4rem 0}
.inline{display:inline}

/* ===================== Login ===================== */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--paper)}
.login-wrap{width:320px;text-align:center}
.login-title{font-weight:400;font-size:1.35rem;margin-bottom:1.8rem}
.login-form{display:flex;flex-direction:column;gap:.5rem;text-align:left}
.login-form label{color:var(--ink3);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;margin-top:.4rem}
.login-form .button{align-self:center}

/* ===================== Reality-Capture-Widget ===================== */
#reality-capture-widget{position:fixed;bottom:1.2rem;right:1.2rem;z-index:100}
#rc-toggle{background:var(--card);color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;
  cursor:pointer;font-family:inherit;font-size:.85rem;box-shadow:0 6px 20px rgba(46,51,44,.10)}
#rc-toggle:hover{color:var(--ink)}
#rc-box{position:absolute;bottom:3rem;right:0;width:290px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.8rem;box-shadow:0 10px 30px rgba(46,51,44,.12)}
.rc-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}
.rc-all-link{color:var(--ink3);font-size:.75rem;text-decoration:none}
#rc-submit{background:var(--accent);color:#fff;border:none;border-radius:999px;padding:.35rem .9rem;cursor:pointer;font-family:inherit;font-size:.8rem}
#rc-status{color:var(--accent2);font-size:.75rem;margin-top:.3rem;height:1em}
.rc-list{list-style:none;padding:0}.rc-list li{padding:.6rem 0;border-bottom:1px solid var(--line)}
.rc-meta{color:var(--ink3);font-size:.75rem;margin-bottom:.2rem}.rc-item-text{white-space:pre-wrap}

/* ===================== Spracheingabe (Web Speech API) ===================== */
.mic-row{display:flex;align-items:center;gap:.7rem;margin:.6rem 0 0}
.mic-btn{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--card);color:var(--ink2);
  border-radius:999px;padding:.42rem .95rem;cursor:pointer;font-family:inherit;font-size:.85rem;transition:.2s}
.mic-btn:hover{border-color:var(--accent);color:var(--accent2)}
.mic-btn.on{border-color:var(--accent);color:var(--accent2);background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}
.mic-btn .mic-ic{font-size:.95rem}
.mic-btn.on .mic-ic{animation:micpulse 1.15s ease-in-out infinite}
@keyframes micpulse{0%,100%{opacity:1}50%{opacity:.35}}
.mic-status{color:var(--ink3);font-size:.82rem}
@media(prefers-reduced-motion:reduce){.mic-btn.on .mic-ic{animation:none}}

/* ===================== Mobile — aufgeraeumt & bedienbar ===================== */
@media(max-width:600px){
  .sheet{padding:16px 15px 90px 18px}
  .axis{left:5px;top:14px;bottom:28px}
  .hero{--sz:min(360px,72vw)}
  /* Aufgabenzeilen: Text volle Breite, Aktionen brechen darunter um ->
     groessere, klar tippbare Ziele statt gequetschter Mini-Links */
  .loop-view{flex-wrap:wrap;gap:.35rem .8rem}
  .loop-view > span,.scan-text{flex:1 1 100%;font-size:1rem}
  .loop-actions{gap:1.4rem;margin-top:.15rem}
  .link-button{font-size:.9rem;padding:.25rem 0}
  .scan-buttons button{padding:.5rem 1.05rem;font-size:.9rem}
  .page-head{gap:.75rem;margin-bottom:1.3rem}
  .page-head h1{font-size:1.15rem}
  .anchor{width:44px;height:44px}
  .reply-form{flex:1 1 100%}
  .thread-actions{gap:1.2rem}
  .msg-form{max-width:100%}
  #reality-capture-widget{bottom:.8rem;right:.8rem}
  #rc-box{width:min(290px,86vw)}
}
