/* Additions for the multi-user app, in the prototype's design language. */
html,body{margin:0;background:#ECEBE3;}

/* auth */
.spn-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 16px;}
.spn-auth-card{
  width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow);
}
.spn-auth-card .spn-tagline{margin:14px 0 22px;}
.spn-auth-tabs{display:flex;gap:4px;margin-bottom:18px;}
.spn-auth-tabs button{
  flex:1;background:none;border:1px solid var(--line2);border-radius:var(--pill);
  padding:8px 0;font-size:13px;font-weight:600;color:var(--muted);
}
.spn-auth-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink);}
.spn-google{
  width:100%;display:flex;align-items:center;justify-content:center;gap:9px;
  background:#fff;border:1px solid var(--line2);border-radius:var(--pill);
  padding:11px;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;margin-bottom:16px;
}
.spn-google:hover{border-color:var(--base);}
.spn-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;
  font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 14px;}
.spn-or::before,.spn-or::after{content:"";flex:1;height:1px;background:var(--line);}
.spn-auth .spn-save{width:100%;margin-top:6px;}
.spn-legal-note{font-size:11.5px;color:var(--muted);line-height:1.5;margin:14px 0 0;}
.spn-legal-note a,.spn-foot a{color:var(--base);}

/* masthead additions */
.spn-mast-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.spn-badge{
  display:inline-flex;align-items:center;gap:7px;background:var(--waves-soft);
  color:#6B4A10;border:1px solid #E5CE9F;border-radius:var(--pill);
  padding:9px 15px;font-size:12.5px;font-weight:600;
}
.spn-badge b{background:var(--waves);color:#fff;border-radius:var(--pill);padding:1px 8px;font-size:11px;}
.spn-badge:hover{border-color:var(--waves);}
.spn-acct{font-family:var(--font-mono);font-size:11px;color:var(--muted);text-align:right;line-height:1.6;}
.spn-acct button{background:none;border:none;color:var(--base);padding:0;font-family:inherit;font-size:11px;
  text-decoration:underline;text-underline-offset:2px;}
.spn-progress{
  margin:0 34px;padding:10px 16px;border:1px solid #B9D6CD;background:var(--base-soft);
  border-radius:var(--pill);font-size:12.5px;color:var(--base);font-weight:600;margin-top:16px;
}

/* card additions */
.spn-card-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;}
.spn-card-suggest{
  display:inline-flex;align-items:center;gap:6px;margin-top:12px;cursor:pointer;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;color:var(--muted);
  background:none;border:1px solid var(--line, #DAD8CE);padding:6px 12px;border-radius:var(--pill);
  transition:background .14s,color .14s,border-color .14s;
}
.spn-card-suggest:hover{color:var(--ink);border-color:var(--ink);}
.spn-review-note{
  background:var(--waves-soft);border-radius:var(--radius-sm);padding:10px 13px;
  font-size:12.5px;color:#5A4213;line-height:1.5;margin:0 0 16px;
}
.spn-ok{color:var(--base);font-size:12px;margin:6px 0 0;}

/* bulk + queue */
.spn-bulk-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.spn-bulk-grid .spn-drop{min-height:150px;justify-content:center;}
.spn-bulk-head{font-size:13px;font-weight:700;margin:0 0 6px;}
.spn-q-item{border:1px solid var(--line);background:var(--card);border-radius:var(--radius-sm);
  padding:14px 15px;margin-bottom:12px;}
.spn-q-reason{font-size:12.5px;color:#8A5A12;margin:0 0 10px;line-height:1.45;}
.spn-q-file{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);margin:0 0 6px;}
.spn-q-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;align-items:center;}
.spn-q-actions .spn-link{font-size:11px;}

.spn-foot{
  border-top:1px solid var(--line);padding:18px 34px 30px;font-size:12px;color:var(--muted);
  display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;
}

@media (max-width:720px){
  .spn-bulk-grid{grid-template-columns:1fr;}
  .spn-progress{margin:12px 16px 0;}
  .spn-foot{padding:16px;}
}

/* impact line */
.spn-impact{font-size:13px;}
.spn-impact .src{color:var(--muted);font-family:var(--font-mono);font-size:11px;}

/* one-off notices (paper queued, drafts ready) */
.spn-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;}

/* drop files anywhere on the page */
.spn-page{min-height:100vh;}
.spn-page-drop{
  position:fixed;inset:12px;z-index:60;pointer-events:none;
  display:flex;align-items:center;justify-content:center;
  border:2px dashed var(--base);border-radius:var(--radius);
  background:rgba(220,237,232,.85);color:var(--base);
  font-family:var(--font-mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;
}

/* ── sections, making waves, drag to rank, evidence pyramid ───────────── */
:root{--primary:#46627E;--primary-soft:#E2E9F0;}
.spn-stratum-tag.primary{background:var(--primary);}
.spn-spine.primary{background:var(--primary);opacity:.85;}
.spn-card-type.primary{color:var(--primary);}
.spn-stratum-empty{color:var(--muted);font-size:13.5px;margin:2px 0 0;}
.spn-stratum-hint{font-size:12px;color:var(--muted);margin:-6px 0 12px;}
.spn-stratum{scroll-margin-top:20px;border-radius:var(--radius);transition:background .6s ease,box-shadow .6s ease;}
.spn-stratum.flash{background:rgba(23,121,106,.06);box-shadow:0 0 0 10px rgba(23,121,106,.06);}
.spn-rank{
  font-family:var(--font-mono);font-size:11px;font-weight:500;color:#fff;
  border-radius:var(--pill);padding:1px 8px;background:var(--base);
}
.spn-rank.primary{background:var(--primary);}

/* making waves: a badge, and a slow rolling wave along the card's top edge */
.spn-card{position:relative;}
.spn-waves-tag{
  display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--waves);background:var(--waves-soft);
  border-radius:var(--pill);padding:2px 9px 2px 7px;
}
.spn-card-wave{
  position:absolute;left:6px;right:0;top:0;height:7px;overflow:hidden;pointer-events:none;
  border-top-right-radius:var(--radius);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='7' viewBox='0 0 40 7'%3E%3Cpath d='M0 4 Q10 0 20 4 T40 4 V0 H0Z' fill='%23BE7C1A' fill-opacity='.35'/%3E%3C/svg%3E") repeat-x;
  animation:spn-roll 6s linear infinite;
}
@keyframes spn-roll{from{background-position:0 0;}to{background-position:40px 0;}}
.spn-waves-note{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--waves);margin:0 0 18px;}
.spn-wave-ico{flex:0 0 auto;}

/* drag to rank (SortableJS) */
.spn-cards{display:grid;gap:14px;}
.spn-grip{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:26px;margin:-4px 0 -4px -6px;
  color:var(--line2);cursor:grab;border-radius:6px;touch-action:none;transition:color .12s,background .12s;
}
.spn-grip:hover{color:var(--ink);background:#EFEEE7;}
.spn-grip:active{cursor:grabbing;}
.spn-drag-ghost{opacity:.35;}
.spn-drag-ghost .spn-card-in{filter:grayscale(.4);}
.spn-drag-chosen{box-shadow:0 18px 40px -18px rgba(21,48,42,.45);}

/* layout: the pyramid sits in the right-hand space on wide screens */
@media (min-width:1100px){
  .spn-main.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:0 34px;align-items:start;}
  .spn-main.with-aside .spn-main-col{grid-column:1;grid-row:1;max-width:820px;}
  .spn-main.with-aside .spn-aside{grid-column:2;grid-row:1;position:sticky;top:22px;}
}
@media (max-width:1099px){
  .spn-aside{margin-bottom:22px;}
}

/* the evidence pyramid */
.spn-pyramid{display:grid;gap:6px;justify-items:center;}
.spn-pyramid-h{
  justify-self:start;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);margin:0 0 6px;
}
.spn-pyr-block{
  position:relative;display:grid;justify-items:center;align-content:center;gap:1px;
  border:none;color:#fff;cursor:pointer;font-family:var(--font-body);
  transition:transform .18s ease,filter .18s ease;
}
.spn-pyr-block:hover{transform:translateY(-2px);filter:brightness(1.08);}
.spn-pyr-block:focus-visible{outline:3px solid var(--base-soft);outline-offset:3px;}
.spn-pyr-block.base{
  width:100%;max-width:250px;height:112px;background:var(--base);padding-top:26px;
  clip-path:polygon(50% 0,100% 100%,0 100%);
}
.spn-pyr-block.primary{
  width:100%;max-width:250px;height:92px;background:var(--primary);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);border-radius:0 0 var(--radius-sm) var(--radius-sm);
}
@media (min-width:1100px){
  .spn-pyr-block.base{width:62%;margin-bottom:-1px;}
  .spn-pyr-block.primary{clip-path:polygon(19% 0,81% 0,100% 100%,0 100%);}
}
.spn-pyr-block .n{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1;}
.spn-pyr-block .l{font-size:11.5px;font-weight:600;letter-spacing:.01em;opacity:.95;}
.spn-pyr-block .w{
  display:inline-flex;align-items:center;gap:4px;margin-top:3px;font-family:var(--font-mono);font-size:10.5px;
  background:rgba(255,255,255,.18);border-radius:var(--pill);padding:1px 7px;
}
.spn-pyr-block.base .l{font-size:10.5px;}
.spn-pyr-waves{
  position:relative;overflow:hidden;width:100%;max-width:250px;margin-top:8px;display:flex;align-items:center;gap:8px;
  padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--waves);background:var(--card);
  color:var(--waves);font-family:var(--font-body);font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;
  transition:background .15s,color .15s;
}
.spn-pyr-waves b{margin-left:auto;font-family:var(--font-mono);font-weight:500;}
.spn-pyr-waves:hover{background:var(--waves-soft);}
.spn-pyr-waves.on{background:var(--waves);color:#fff;}
.spn-pyr-waves:disabled{opacity:.45;cursor:default;}
.spn-pyr-wave-art{
  position:absolute;left:0;right:0;bottom:0;height:9px;opacity:.5;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='9' viewBox='0 0 40 9'%3E%3Cpath d='M0 5 Q10 1 20 5 T40 5 V9 H0Z' fill='%23BE7C1A' fill-opacity='.35'/%3E%3C/svg%3E") repeat-x;
  animation:spn-roll 5s linear infinite;
}
.spn-pyr-waves.on .spn-pyr-wave-art{opacity:.35;filter:brightness(3);}
@media (max-width:1099px){
  .spn-pyramid{grid-template-columns:1fr 1fr;justify-items:stretch;gap:8px;}
  .spn-pyramid-h{grid-column:1 / -1;}
  .spn-pyr-block.base,.spn-pyr-block.primary{max-width:none;height:84px;clip-path:none;border-radius:var(--radius-sm);padding-top:0;}
  .spn-pyr-waves{grid-column:1 / -1;max-width:none;margin-top:0;}
}
@media (prefers-reduced-motion: reduce){
  .spn-card-wave,.spn-pyr-wave-art{animation:none;}
  .spn-pyr-block,.spn-stratum{transition:none;}
}

/* ── compact cards (the default); open for the full summary ─────────────── */
.spn-card{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;}
.spn-card.compact .spn-card-in{padding:14px 18px 12px;}
.spn-card.compact .spn-card-title{font-size:16.5px;margin-top:6px;cursor:pointer;}
.spn-compact-rec{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;}
.spn-compact-rec li{
  position:relative;padding-left:16px;font-size:13.5px;line-height:1.45;color:#2A3F39;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.spn-compact-rec li::before{content:"";position:absolute;left:1px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--base);}
.spn-card.waves .spn-compact-rec li::before{background:var(--waves);}
.spn-compact-foot{display:flex;align-items:center;gap:8px;margin-top:10px;}
.spn-open,.spn-copy,.spn-close{
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;
  border-radius:var(--pill);padding:5px 12px;cursor:pointer;transition:background .14s,color .14s,border-color .14s;
}
.spn-open{background:var(--base-soft);color:var(--base);border:1px solid #BAD3CA;}
.spn-open:hover{background:var(--base);color:#fff;}
.spn-copy,.spn-close{background:none;color:var(--muted);border:1px solid var(--line2);}
.spn-copy:hover,.spn-close:hover{color:var(--ink);border-color:var(--ink);}
.spn-close{margin-top:12px;margin-left:auto;}
.spn-card.flash{box-shadow:0 0 0 3px var(--waves-soft),var(--shadow);}

/* ── topic header and suggestions ───────────────────────────────────────── */
.spn-topic-head{margin:0 0 18px;}
.spn-topic-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.spn-topic-name{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-.02em;margin:0;}
.spn-brief-btn,.spn-pyr-brief{
  display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#F4F3EC;border:none;cursor:pointer;
  border-radius:var(--pill);padding:8px 16px;font-size:13px;font-weight:600;font-family:var(--font-body);
  transition:background .15s,transform .15s;
}
.spn-brief-btn:hover,.spn-pyr-brief:hover{background:var(--base);transform:translateY(-1px);}
.spn-brief-btn{margin-left:auto;}
.spn-pyr-brief{width:100%;max-width:250px;justify-content:center;margin-top:8px;}
@media (min-width:1100px){.spn-brief-btn{display:none;}} /* on wide screens it's under the pyramid */
@media (max-width:1099px){.spn-pyr-brief{display:none;}}
.spn-suggest{display:grid;gap:8px;margin-top:12px;}
.spn-suggest-item{
  display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 14px;border-radius:var(--radius-sm);
  font-size:13.5px;line-height:1.45;border:1px solid;
}
.spn-suggest-item .ico{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#fff;}
.spn-suggest-item.good{background:var(--base-soft);border-color:#BAD3CA;color:#154A40;}
.spn-suggest-item.good .ico{background:var(--base);}
.spn-suggest-item.seek{background:#F6EFE3;border-color:#E5CFA6;color:#6B4A12;}
.spn-suggest-item.seek .ico{background:var(--waves);}
.spn-suggest-item.info{background:var(--primary-soft);border-color:#C3D0DD;color:#2E465E;}
.spn-suggest-item.info .ico{background:var(--primary);}

/* ── evidence timeline ──────────────────────────────────────────────────── */
.spn-timeline{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 18px 10px;margin:0 0 26px;}
.spn-tl-track{position:relative;border-bottom:2px solid var(--line2);margin:0 6px;}
.spn-tl-now{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--waves);opacity:.6;}
.spn-tl-dot{
  position:absolute;width:13px;height:13px;margin-left:-6.5px;border-radius:50%;border:2px solid var(--card);
  padding:0;cursor:pointer;background:var(--primary);box-shadow:0 1px 2px rgba(21,48,42,.25);
  transition:transform .15s ease;
}
.spn-tl-dot.base{background:var(--base);}
.spn-tl-dot.waves{box-shadow:0 0 0 2px var(--waves),0 1px 2px rgba(21,48,42,.25);}
.spn-tl-dot:hover,.spn-tl-dot:focus-visible{transform:scale(1.35);z-index:3;outline:none;}
.spn-tl-tip{
  position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:240px;
  background:var(--ink);color:#F4F3EC;font-size:12px;line-height:1.35;text-align:left;padding:7px 10px;
  border-radius:8px;pointer-events:none;opacity:0;transition:opacity .12s;font-family:var(--font-body);font-weight:600;
}
.spn-tl-tip i{display:block;font-style:normal;font-weight:400;opacity:.75;margin-top:2px;}
.spn-tl-dot:hover .spn-tl-tip,.spn-tl-dot:focus-visible .spn-tl-tip{opacity:1;}
.spn-tl-axis{position:relative;height:18px;margin:4px 6px 0;}
.spn-tl-axis span{position:absolute;transform:translateX(-50%);font-family:var(--font-mono);font-size:10.5px;color:var(--muted);}
.spn-tl-key{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--muted);}
.spn-tl-key span{display:inline-flex;align-items:center;gap:5px;}
.spn-tl-key i{width:9px;height:9px;border-radius:50%;background:var(--primary);}
.spn-tl-key i.base{background:var(--base);}
.spn-tl-key i.waves{background:var(--card);box-shadow:0 0 0 2px var(--waves);}

/* ── topic brief ────────────────────────────────────────────────────────── */
.spn-brief{max-width:760px;}
.spn-brief-kicker{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;}
.spn-brief .spn-suggest{margin:0 0 18px;}
.spn-brief-sec{margin:0 0 22px;}
.spn-brief-sec h3{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:18px;margin:0 0 10px;}
.spn-brief-sec ol{margin:0;padding-left:22px;display:grid;gap:14px;}
.spn-brief-sec ol > li::marker{font-family:var(--font-mono);font-size:12px;color:var(--muted);}
.spn-brief-ref{margin:0 0 5px;font-size:14px;line-height:1.4;}
.spn-brief-ref span{color:var(--muted);}
.spn-brief-ref .spn-waves-tag{margin-left:6px;vertical-align:1px;}
.spn-brief-sec ul{margin:0 0 4px;padding-left:18px;font-size:13.5px;line-height:1.5;}
.spn-brief-sec a{font-family:var(--font-mono);font-size:11px;color:var(--base);word-break:break-all;}
.spn-brief-foot{font-size:12px;color:var(--muted);margin:6px 0 0;}
@media print{
  body.spn-print-brief *{visibility:hidden;}
  body.spn-print-brief .spn-brief,body.spn-print-brief .spn-brief *{visibility:visible;}
  body.spn-print-brief .spn-scrim{position:absolute;inset:auto;background:none;backdrop-filter:none;padding:0;overflow:visible;}
  body.spn-print-brief .spn-brief{position:absolute;left:0;top:0;max-width:none;border:none;box-shadow:none;animation:none;background:#fff;}
  body.spn-print-brief .spn-brief-actions,body.spn-print-brief .spn-x{display:none;}
  body.spn-print-brief .spn-brief-sec li{break-inside:avoid;}
}
@media (prefers-reduced-motion: reduce){.spn-card,.spn-tl-dot{transition:none;}}

/* folder upload */
.spn-drop-alt{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;}
.spn-drop-alt span{font-size:12.5px;color:var(--muted);flex:1;min-width:200px;}

/* pointing at "Needs your input" */
.spn-pointer{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:40;overflow:visible;transition:opacity .6s ease;}
.spn-pointer.gone{opacity:0;}
.spn-pointer path:not([fill]){
  fill:none;stroke:var(--waves);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;
  animation:spn-draw .9s .25s ease-out forwards;filter:drop-shadow(0 1px 1px rgba(190,124,26,.25));
}
@keyframes spn-draw{to{stroke-dashoffset:0;}}
.spn-badge.attention{animation:spn-nudge 1.8s ease-in-out 3;box-shadow:0 0 0 0 rgba(190,124,26,.45);}
.spn-badge.attention::after{
  content:"";position:absolute;inset:-4px;border-radius:var(--pill);border:2px solid var(--waves);
  animation:spn-ring 1.8s ease-out 3 forwards;pointer-events:none;
}
.spn-badge{position:relative;}
@keyframes spn-nudge{0%,100%{transform:translateY(0);}15%{transform:translateY(-4px);}30%{transform:translateY(0);}45%{transform:translateY(-2px);}60%{transform:translateY(0);}}
@keyframes spn-ring{0%{opacity:.9;transform:scale(1);}100%{opacity:0;transform:scale(1.18);}}
@media (prefers-reduced-motion: reduce){
  .spn-pointer path:not([fill]){animation:none;stroke-dashoffset:0;}
  .spn-badge.attention,.spn-badge.attention::after{animation:none;}
}

/* "Needs your input": checkboxes sit inline with their label */
.spn-fld .spn-checkline{
  display:flex;align-items:center;gap:8px;margin:10px 0 0;cursor:pointer;
  font-family:var(--font-body);font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:500;
}
.spn-fld .spn-checkline input{width:16px;height:16px;margin:0;padding:0;flex:0 0 auto;accent-color:var(--base);}

.spn-own-id{margin-top:12px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.03em;color:var(--muted);
  border:1px dashed var(--line2);border-radius:var(--pill);padding:5px 11px;}

/* ── topic map at scale ─────────────────────────────────────────────────── */
.spn-map-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.spn-map-top .spn-map-intro{margin-bottom:14px;}
.spn-map-only{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);cursor:pointer;white-space:nowrap;}
.spn-map-only input{accent-color:var(--base);}
.spn-map-cols{scroll-behavior:smooth;scroll-padding:0 24px;padding-bottom:16px;}
.spn-map-col{transition:min-width .25s ease;}
.spn-map-col.past{gap:6px;min-width:168px;}
.spn-map-col.past .spn-map-node{height:32px;padding:0 13px;font-size:12px;opacity:.62;box-shadow:none;}
.spn-map-col.past .spn-map-node:hover{opacity:1;}
.spn-map-col.past .spn-map-node.on{opacity:1;font-size:12.5px;box-shadow:0 6px 16px -10px rgba(23,121,106,.7);}
.spn-map-col.past .spn-map-node .ct,.spn-map-col.past .spn-map-node .brn{font-size:10px;padding:1px 6px;}
.spn-map-col.cur{min-width:228px;}
.spn-map-node.seealso{border-style:dashed;background:transparent;}
.spn-map-node.seealso .ct{background:none;color:var(--base);font-family:var(--font-mono);font-size:11px;}
.spn-map-node.ghost{border:1.5px dashed var(--waves);background:var(--waves-soft);color:#6B4A12;opacity:1;}
.spn-map-node.ghost .ct{background:var(--waves);color:#fff;font-family:var(--font-mono);font-size:11px;
  min-width:22px;text-align:center;padding:3px 8px;border-radius:var(--pill);}
.spn-map-node.ghost:hover{border-color:var(--waves);box-shadow:0 8px 20px -14px rgba(190,124,26,.8);}

/* rail: suggested topics and the show-all switch */
.spn-area.suggested{border:1px dashed var(--waves);background:var(--waves-soft);color:#6B4A12;margin-bottom:4px;}
.spn-area.suggested .n{color:var(--waves);}
.spn-area-more{background:none;border:none;color:var(--base);font-size:12px;padding:6px 11px;cursor:pointer;text-align:left;}
.spn-area-more:hover{text-decoration:underline;}

/* suggestion dialog */
.spn-suggest-modal{max-width:560px;}
.spn-suggest-papers{margin:0 0 16px;padding-left:18px;display:grid;gap:6px;font-size:13.5px;}
.spn-suggest-papers span{color:var(--muted);font-size:12px;margin-left:4px;}

/* selected map branch: just the highlight colour, no box around its count and arrow */
.spn-map-node.on .brc,.spn-map-node.on .brn{background:none;color:#fff;}

/* the drawn evidence pyramid (wide screens); tiles on narrow ones */
.spn-pyr-svg{display:none;width:100%;max-width:250px;overflow:visible;}
.spn-pyr-tier{cursor:pointer;outline:none;}
.spn-pyr-tier polygon{stroke-width:8;stroke-linejoin:round;transition:filter .18s ease,transform .18s ease;}
.spn-pyr-tier.base polygon{fill:var(--base);stroke:var(--base);}
.spn-pyr-tier.primary polygon{fill:var(--primary);stroke:var(--primary);}
.spn-pyr-tier:hover polygon{filter:brightness(1.1);}
.spn-pyr-tier:focus-visible polygon{stroke:var(--waves);}
.spn-pyr-tier text{fill:#fff;text-anchor:middle;font-family:var(--font-body);pointer-events:none;}
.spn-pyr-tier text.n{font-family:var(--font-display);font-weight:800;font-size:26px;}
.spn-pyr-tier text.l{font-size:12px;font-weight:600;}
.spn-pyr-tier text.w{font-family:var(--font-mono);font-size:9.5px;opacity:.9;}
@media (min-width:1100px){
  .spn-pyr-svg{display:block;}
  .spn-pyramid .spn-pyr-block{display:none;}
}

/* admin: topic ideas */
.spn-badge.admin{background:var(--primary-soft);border-color:#C3D0DD;color:var(--primary);}
.spn-badge.admin b{background:var(--primary);}
.spn-badge.admin.quiet{opacity:.75;}
.spn-ideas{max-width:720px;}
.spn-idea{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:10px;background:var(--card);}
.spn-idea-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.spn-idea-row input{flex:1 1 180px;min-width:0;padding:9px 11px;border:1px solid var(--line2);border-radius:var(--radius-sm);font:inherit;font-size:14px;font-weight:600;background:#fff;}
.spn-idea-row select{flex:1 1 180px;min-width:0;padding:9px 10px;border:1px solid var(--line2);border-radius:var(--radius-sm);font:inherit;font-size:13px;background:#fff;}
.spn-idea-stats{margin:8px 0 0;font-size:12.5px;color:var(--muted);}
.spn-ideas-done{margin-top:14px;font-size:13px;color:var(--muted);}
.spn-ideas-done summary{cursor:pointer;}
.spn-ideas-done ul{margin:8px 0 0;padding-left:18px;display:grid;gap:4px;}
.spn-ideas-done span{font-size:12px;margin-left:6px;}

/* consensus & position stands: the peak of the pyramid */
:root{--consensus:#C8962A;--consensus-ink:#8A6512;--consensus-soft:#F6ECD2;}
/* gold for fills; the darker ink where gold is text on the page (readability) */
.spn-stratum-tag.consensus{background:var(--consensus);}
.spn-spine.consensus{background:var(--consensus);}
.spn-card-type.consensus{color:var(--consensus-ink);}
.spn-rank.consensus{background:var(--consensus);}
.spn-tl-dot.consensus{background:var(--consensus);}
.spn-tl-key i.consensus{background:var(--consensus);}
.spn-pyr-tier.consensus polygon{fill:var(--consensus);stroke:var(--consensus);}
.spn-pyr-block.consensus{background:var(--consensus);}
.spn-pyr-tier text.l.small{font-size:10.5px;}
@media (max-width:1099px){ .spn-pyramid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:1099px){
  .spn-pyr-block.consensus{max-width:none;height:84px;clip-path:none;border-radius:var(--radius-sm);padding-top:0;}
  .spn-pyr-waves{grid-column:1 / -1;}
  .spn-pyr-brief{grid-column:1 / -1;}
}

/* pyramid: hover a tier to see its study designs (Pyramid in app.jsx) */
.spn-pyr-tier.open polygon{filter:brightness(1.08);}
.spn-pyr-tier text.hd{font-size:11px;font-weight:700;letter-spacing:.02em;}
.spn-pyr-tier text.b{font-size:10.5px;font-weight:500;}
.spn-pyr-tier text.b .bn{font-family:var(--font-mono);font-weight:600;}
.spn-pyr-tier .band.zero text{opacity:.5;}
.spn-pyr-tier line.sep{stroke:rgba(255,255,255,.22);stroke-width:1;}
.spn-pyr-tier line.sep.off{stroke:rgba(255,255,255,.7);stroke-dasharray:3 3;}

/* ── screens & motion: soft, quick, and off for anyone who asks their device
   to reduce motion (styles.css turns every .spn animation off then) ─────── */
@keyframes spn-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.spn-screen{animation:spn-in .38s cubic-bezier(.2,.7,.3,1) both;}
.spn-auth-card{animation:spn-in .32s cubic-bezier(.2,.7,.3,1) both;}
.spn-page{animation:spn-in .45s cubic-bezier(.2,.7,.3,1) both;}
/* cards rise in, one after another, the first time they appear */
.spn-card{animation:spn-in .42s cubic-bezier(.2,.7,.3,1) both;}
.spn-card:nth-child(2){animation-delay:.04s;} .spn-card:nth-child(3){animation-delay:.08s;}
.spn-card:nth-child(4){animation-delay:.12s;} .spn-card:nth-child(5){animation-delay:.16s;}
.spn-card:nth-child(n+6){animation-delay:.2s;}
/* the pyramid builds from the base up */
.spn-pyr-tier{animation:spn-in .5s cubic-bezier(.2,.7,.3,1) both;}
.spn-pyr-tier.primary{animation-delay:.05s;} .spn-pyr-tier.base{animation-delay:.15s;} .spn-pyr-tier.consensus{animation-delay:.25s;}

/* loading text under the lock (LockScreen) */
.spn-boot-text{margin:0;color:var(--muted);font-family:var(--font-mono);font-size:12.5px;text-align:center;max-width:36ch;}

/* sign-in extras */
.spn-auth-h{font-family:var(--font-display);font-size:22px;margin:18px 0 0;letter-spacing:-.01em;}
.spn-auth-alt{margin:14px 0 0;font-size:13px;text-align:center;color:var(--muted);}
.spn-auth-info{margin:0 0 10px;font-size:13px;color:var(--base);}
.spn-muted{color:var(--muted);}
.spn-google{display:flex;align-items:center;justify-content:center;gap:10px;}
.spn-code{font-family:var(--font-mono);font-size:26px !important;letter-spacing:.45em;text-align:center;padding:12px 10px !important;}

/* welcome: a new library's first screen */
.spn-welcome{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 26px 20px;
  margin-bottom:22px;box-shadow:var(--shadow);animation:spn-in .5s .1s cubic-bezier(.2,.7,.3,1) both;}
.spn-welcome h2{font-family:var(--font-display);font-size:clamp(22px,3vw,30px);letter-spacing:-.02em;line-height:1.1;margin:4px 0 18px;}
.spn-welcome-steps{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;counter-reset:step;}
.spn-welcome-steps li{counter-increment:step;display:grid;gap:3px;font-size:13px;color:var(--muted);padding-left:34px;position:relative;}
.spn-welcome-steps li::before{content:counter(step);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;
  background:var(--base-soft);color:var(--base);font-weight:700;font-size:12px;display:grid;place-content:center;}
.spn-welcome-steps b{color:var(--ink);font-size:14px;}
.spn-welcome-drop{min-height:150px;display:grid;place-content:center;justify-items:center;gap:6px;cursor:pointer;}
.spn-welcome-icon{font-size:28px;color:var(--base);transition:transform .2s ease;}
.spn-welcome-drop:hover .spn-welcome-icon,.spn-welcome-drop.drag .spn-welcome-icon{transform:translateY(3px);}
.spn-welcome-foot{margin:12px 0 0;font-size:13px;color:var(--muted);}
@media (max-width:700px){ .spn-welcome-steps{grid-template-columns:1fr;} .spn-welcome{padding:20px 16px 16px;} }

/* admin: invites */
.spn-invite-form{display:flex;gap:8px;margin-bottom:12px;}
.spn-invite-form input{flex:1;min-width:0;}
.spn-invite-note{background:var(--base-soft);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px;font-size:13px;}
.spn-invite-note p{margin:0 0 6px;} .spn-invite-note p:last-child{margin:0;}
.spn-invite-link{display:flex;gap:8px;align-items:center;}
.spn-invite-link code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px;background:var(--card);padding:6px 8px;border-radius:6px;}
.spn-invite-list{list-style:none;margin:0;padding:0;display:grid;}
.spn-invite-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px;}
.spn-invite-list .who{flex:1;min-width:180px;overflow-wrap:anywhere;}
.spn-invite-list .st{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--waves);}
.spn-invite-list .st.joined{color:var(--base);}
.spn-invite-list .src{font-size:12px;color:var(--muted);}
.spn-invite-list .acts{display:flex;gap:10px;}

/* admin: owner dashboard */
.spn-modal.spn-dash{max-width:920px;width:100%;}
.spn-dash-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.spn-dash-tiles .tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;display:grid;gap:2px;}
.spn-dash-tiles .tile.warn{border-color:var(--waves);background:var(--waves-soft);}
.spn-dash-tiles .k{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.spn-dash-tiles b{font-family:var(--font-display);font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums;}
.spn-dash-tiles .s{font-size:12px;color:var(--muted);}
.spn-dash-note{font-size:12.5px;color:var(--muted);margin:10px 0 0;}
.spn-dash-h{font-family:var(--font-display);font-size:16px;margin:22px 0 8px;}
.spn-dash-table{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);}
.spn-dash-table table{width:100%;border-collapse:collapse;font-size:13px;}
.spn-dash-table th{text-align:left;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.spn-dash-table td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.spn-dash-table tr:last-child td{border-bottom:none;}
.spn-dash-table .num{text-align:right;font-variant-numeric:tabular-nums;}
.spn-dash-table .tag{margin-left:6px;font-size:10.5px;padding:1px 6px;border-radius:99px;background:var(--base-soft);color:var(--base);}
.spn-dash-table .tag.warn{background:var(--waves-soft);color:var(--waves);}
.spn-dash-fails{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.spn-dash-fails li{display:grid;gap:1px;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);}
.spn-dash-fails span{color:var(--muted);font-size:12px;}
.spn-dash-fails .why{color:var(--ink);}
@media (max-width:760px){ .spn-dash-tiles{grid-template-columns:1fr 1fr;} }

/* pyramid on narrow screens: a tapped tier's study designs */
.spn-pyr-block.on{box-shadow:0 0 0 3px var(--paper),0 0 0 5px currentColor;}
.spn-pyr-block.base.on{color:var(--base);} .spn-pyr-block.primary.on{color:var(--primary);}
.spn-pyr-block.on .n,.spn-pyr-block.on .l,.spn-pyr-block.on .w{color:#fff;}
.spn-pyr-detail{grid-column:1 / -1;width:100%;max-width:250px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:12px 14px;animation:spn-in .25s cubic-bezier(.2,.7,.3,1) both;}
.spn-pyr-detail .hd{margin:0 0 8px;font-weight:700;font-size:13px;}
.spn-pyr-detail ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:5px;}
.spn-pyr-detail li{display:grid;grid-template-columns:minmax(110px,1.3fr) 2fr 24px;gap:8px;align-items:center;font-size:12.5px;}
.spn-pyr-detail li.zero{opacity:.45;}
.spn-pyr-detail li.off{border-top:1.5px dashed var(--line2);padding-top:6px;margin-top:2px;}
.spn-pyr-detail .bar{height:7px;background:var(--line);border-radius:99px;overflow:hidden;}
.spn-pyr-detail .bar i{display:block;height:100%;border-radius:99px;background:var(--primary);transition:width .3s ease;}
.spn-pyr-detail.base .bar i{background:var(--base);}
.spn-pyr-detail .ct{text-align:right;font-family:var(--font-mono);font-weight:600;}
@media (max-width:1099px){ .spn-pyr-detail{max-width:none;} }

/* ── the padlock: logo, and the lock over the page while it loads ───────── */
.spn-lock{display:block;overflow:visible;}
.spn-lock .shackle{fill:none;stroke:var(--base);stroke-width:6;stroke-linecap:round;
  transition:transform .32s cubic-bezier(.3,1.7,.5,1);}
.spn-lock.open .shackle{transform:translateY(-9px);}
.spn-lock .body{fill:var(--ink);}
.spn-lock .hole{fill:var(--paper);}
.spn-brand{display:inline-flex;align-items:center;gap:14px;}
.bm-lock{height:66px;width:auto;flex:0 0 auto;margin-top:6px;}
.spn-auth-card .bm-lock{height:58px;}
@media (max-width:700px){ .bm-lock{height:50px;} .spn-brand{gap:10px;} }

.spn-lockscreen{position:fixed;inset:0;z-index:100;background:var(--paper);display:grid;place-content:center;
  justify-items:center;gap:22px;padding:40px 16px;}
.spn-lockscreen-lock{height:92px;width:auto;transform-origin:50% 100%;}
.spn-lockscreen.closed .spn-lockscreen-lock{animation:spn-lock-bounce .9s cubic-bezier(.3,0,.4,1) infinite;}
.spn-lockscreen.opening .spn-lockscreen-lock{animation:spn-lock-pop .8s cubic-bezier(.2,.7,.3,1) forwards;}
.spn-lockscreen.opening{animation:spn-lock-reveal .8s ease forwards;}
@keyframes spn-lock-bounce{
  0%,100%{transform:translateY(0) scaleY(1);}
  40%{transform:translateY(-16px) scaleY(1.02);}
  80%{transform:translateY(0) scaleY(.94);}
  90%{transform:translateY(0) scaleY(1.02);}
}
@keyframes spn-lock-pop{0%{transform:scale(1);}25%{transform:scale(1.1);}55%{transform:scale(1.08);opacity:1;}100%{transform:scale(1.22);opacity:0;}}
@keyframes spn-lock-reveal{0%,60%{opacity:1;}100%{opacity:0;visibility:hidden;}}
.spn-lockscreen.opening .spn-boot-text{opacity:0;transition:opacity .2s;}

/* ── sign-up steps: fields and interests (Onboarding, Settings) ─────────── */
.spn-auth-card.spn-onboard{max-width:560px;width:100%;}
.spn-steps{display:flex;gap:6px;margin:18px 0 4px;}
.spn-steps i{flex:1;height:4px;border-radius:99px;background:var(--line);}
.spn-steps i.on{background:var(--base);}
.spn-fieldpick{display:grid;gap:10px;margin:16px 0 18px;}
.spn-field-main{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;text-align:left;
  padding:20px 20px;border-radius:var(--radius);border:2px solid var(--line2);background:var(--card);cursor:pointer;
  transition:border-color .15s,background .15s,transform .15s;}
.spn-field-main:hover{transform:translateY(-1px);border-color:var(--base);}
.spn-field-main.on{border-color:var(--base);background:var(--base-soft);}
.spn-field-main .tick{grid-row:span 2;width:30px;height:30px;border-radius:50%;border:2px solid var(--line2);
  display:grid;place-content:center;font-weight:800;color:#fff;font-size:15px;}
.spn-field-main.on .tick{background:var(--base);border-color:var(--base);}
.spn-field-main .nm{font-family:var(--font-display);font-weight:800;font-size:24px;letter-spacing:-.02em;color:var(--ink);}
.spn-field-main .bl{font-size:13px;color:var(--muted);}
.spn-fieldpick-h{margin:6px 0 0;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.spn-field-soon{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.spn-field-small{display:grid;gap:1px;text-align:left;padding:8px 11px;border-radius:var(--radius-sm);
  border:1px dashed var(--line2);background:transparent;cursor:pointer;opacity:.8;}
.spn-field-small:hover{opacity:1;border-color:var(--muted);}
.spn-field-small.on{opacity:1;border-style:solid;border-color:var(--base);}
.spn-field-small .nm{font-size:13px;font-weight:600;color:var(--ink);}
.spn-field-small .nt{font-size:11px;color:var(--muted);}
.spn-field-small.on .nt{color:var(--base);}
.spn-field-suggest{font-size:13px;padding:8px 11px;border-radius:var(--radius-sm);border:1px solid var(--line2);background:var(--card);color:var(--ink);}
.spn-chips{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 18px;}
.spn-chip{font-size:13.5px;padding:8px 13px;border-radius:99px;border:1.5px solid var(--line2);background:var(--card);
  color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s;}
.spn-chip:hover{border-color:var(--base);}
.spn-chip.on{background:var(--base);border-color:var(--base);color:#fff;}
/* the big "Unlock my evidence" button: its padlock opens on hover */
.spn-unlock{width:100%;display:flex;align-items:center;justify-content:center;gap:14px;padding:18px 20px;margin-top:4px;
  border:none;border-radius:var(--radius);background:var(--ink);color:#fff;cursor:pointer;
  font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.01em;
  box-shadow:0 12px 30px -14px rgba(21,48,42,.7);transition:transform .15s,box-shadow .15s;}
.spn-unlock:hover{transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(21,48,42,.75);}
.spn-unlock:disabled{opacity:.7;cursor:default;transform:none;}
.spn-unlock-lock{height:34px;width:auto;}
.spn-unlock .spn-lock .body{fill:#fff;}
.spn-unlock .spn-lock .hole{fill:var(--ink);}
.spn-unlock .spn-lock .shackle{stroke:#7FD3C2;}
.spn-unlock:hover .spn-lock .shackle,.spn-unlock:disabled .spn-lock .shackle{transform:translateY(-9px);}
/* topic map: their interests lead, starred */
.spn-map-node.interest .star{color:var(--waves);}
/* settings */
.spn-modal.spn-settings{max-width:600px;width:100%;}
.spn-pwform{display:grid;gap:8px;max-width:380px;}
.spn-pwform input{font-size:14px;padding:9px 11px;border-radius:var(--radius-sm);border:1px solid var(--line2);background:var(--card);color:var(--ink);}
@media (max-width:560px){ .spn-field-soon{grid-template-columns:1fr;} .spn-field-main .nm{font-size:20px;} .spn-unlock{font-size:19px;} }

/* profile button and menu (top right) */
.spn-profile{position:relative;align-self:center;}
.spn-profile-btn{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border-radius:99px;
  border:1px solid var(--line2);background:var(--card);cursor:pointer;color:var(--ink);font-size:13px;font-weight:600;
  transition:border-color .15s,box-shadow .15s;}
.spn-profile-btn:hover,.spn-profile-btn[aria-expanded="true"]{border-color:var(--base);box-shadow:var(--shadow);}
.spn-profile-btn .av{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-content:center;
  font-family:var(--font-display);font-weight:800;font-size:14px;}
.spn-profile-btn .cv{font-size:10px;color:var(--muted);}
.spn-profile-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:70;width:290px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 50px -20px rgba(21,48,42,.45);padding:8px;
  animation:spn-in .18s cubic-bezier(.2,.7,.3,1) both;}
.spn-profile-menu .who{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.spn-profile-menu .who b{font-size:13px;overflow-wrap:anywhere;}
.spn-profile-menu .who span{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);}
.spn-profile-menu .hd{margin:6px 10px 4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.spn-profile-menu .it{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;border:none;
  background:none;color:var(--ink);font-size:13.5px;text-align:left;text-decoration:none;cursor:pointer;}
.spn-profile-menu .it:hover{background:var(--base-soft);}
.spn-profile-menu .it.on{font-weight:700;}
.spn-profile-menu .it.soon{color:var(--muted);cursor:default;}
.spn-profile-menu .it.soon:hover{background:none;}
.spn-profile-menu .it em{margin-left:auto;font-style:normal;font-size:11px;}
.spn-profile-menu .it.act{color:var(--base);font-weight:600;}
.spn-profile-menu .ck{width:16px;flex:0 0 16px;text-align:center;color:var(--base);}
.spn-profile-menu .sep{height:1px;background:var(--line);margin:6px 0;}
@media (max-width:700px){ .spn-profile-btn .fl{display:none;} .spn-profile-menu{width:min(290px,calc(100vw - 32px));} }
/* the header row keeps right-aligned when it wraps, and its menus draw above the page */
.spn-masthead{position:relative;z-index:30;}
.spn-mast-actions{justify-content:flex-end;}

/* ── the upload tray (bottom right): each paper's progress ───────────────── */
.spn-tray{position:fixed;right:18px;bottom:18px;z-index:65;width:360px;max-height:60vh;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 24px 60px -24px rgba(21,48,42,.55);animation:spn-in .3s cubic-bezier(.2,.7,.3,1) both;overflow:hidden;}
.spn-tray-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);}
.spn-tray-hd b{font-size:13.5px;}
.spn-tray-hd span{display:flex;gap:10px;}
.spn-tray-hd .spn-link{font-size:15px;text-decoration:none;}
.spn-tray.live .spn-tray-hd{background:linear-gradient(90deg,var(--base-soft),var(--card) 60%,var(--base-soft));
  background-size:200% 100%;animation:spn-tray-shimmer 2.4s linear infinite;}
@keyframes spn-tray-shimmer{from{background-position:100% 0;}to{background-position:-100% 0;}}
.spn-tray-list{list-style:none;margin:0;padding:6px 0;overflow-y:auto;}
.spn-tray-list li{display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;padding:8px 14px;}
.spn-tray-list .nm{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.spn-tray-list .steps{display:flex;gap:3px;}
.spn-tray-list .steps i{width:14px;height:4px;border-radius:99px;background:var(--line);}
.spn-tray-list .steps i.on{background:var(--base);}
.spn-tray-list .steps i.now{background:var(--base);animation:spn-tray-pulse 1s ease-in-out infinite;}
@keyframes spn-tray-pulse{50%{opacity:.35;}}
.spn-tray-list .st{grid-column:1 / -1;font-size:11.5px;color:var(--muted);}
.spn-tray-list li.ok .st{color:var(--base);}
.spn-tray-list li.warn .st{color:var(--waves);}
.spn-tray-list li.bad .st{color:#B3452F;}
.spn-tray-list li.warn .steps i.on,.spn-tray-list li.bad .steps i.on{background:var(--line2);}
.spn-tray-ft{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line);background:var(--waves-soft);font-size:12.5px;}
.spn-tray-ft .spn-save{margin:0 0 0 auto;padding:7px 14px;white-space:nowrap;}
.spn-tray-note{margin:0;padding:8px 14px 12px;font-size:11.5px;color:var(--muted);}
.spn-tray.min .spn-tray-hd{border-bottom:none;}
@media (max-width:560px){ .spn-tray{left:10px;right:10px;bottom:10px;width:auto;} }

/* invite-only beta: the request-access note (RequestAccess) */
.spn-peer{margin:0 0 14px;padding:11px 13px;border-radius:var(--radius-sm);background:var(--waves-soft);
  border:1px solid rgba(190,124,26,.35);font-size:12.5px;color:var(--ink);}
.spn-peer b{display:block;margin-bottom:3px;font-size:13px;}
.spn-peer p{margin:0;line-height:1.5;color:var(--muted);}
.spn-peer a{color:var(--base);font-weight:600;}
.spn-peer.big{padding:16px 16px 14px;animation:spn-in .3s cubic-bezier(.2,.7,.3,1) both;}
.spn-peer.big b{font-family:var(--font-display);font-size:18px;letter-spacing:-.01em;}
.spn-peer.big p{font-size:13.5px;color:var(--ink);}
.spn-peer-btn{display:inline-block;margin-top:12px;text-decoration:none;color:#fff !important;width:auto;padding:9px 16px;}
