/* Super Seeder · participant app v1.0 — the site v2 look (dark only; tokens from mockup v1/v2).
   No inline styles anywhere: the CSP is style-src 'self'. Fonts are self-hosted (fonts/fonts.css). */
@import url("/static/fonts/fonts.css");

:root{
  color-scheme:dark;
  --night:#070C16; --surface:#0C1422; --surface-2:#0A111D; --line:#1A2940; --line-soft:#132033;
  --frost:#DCE7F5; --mist:#8395AE; --dim:#3A4C68;
  --sprout:#3EE8A4; --glacier:#4FD4E0; --aurora:#8B7CFF; --husk:#E9B35A; --bad:#F26D6D;
  --grad:linear-gradient(110deg,var(--sprout) 0%,var(--glacier) 55%,var(--aurora) 100%);
  --display:'Bricolage Grotesque','Avenir Next','Segoe UI',system-ui,sans-serif;
  --body:'Instrument Sans','Helvetica Neue','Segoe UI',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r:12px;
}
*{box-sizing:border-box}
html{background:var(--night)}
body{background:var(--night);color:var(--frost);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased;margin:0}
a{color:var(--glacier)}
h1,h2,h3,h4{margin:0;font-family:var(--display);text-wrap:balance}
h1{font-size:clamp(28px,4.4vw,40px);line-height:1.05;letter-spacing:-.03em;font-weight:750}
h2{font-size:clamp(20px,2.6vw,24px);letter-spacing:-.015em;font-weight:700}
h3{font-size:17px;font-weight:700}
p{margin:0}
code,.mono{font-family:var(--mono);font-size:.92em}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1160px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}
:focus-visible{outline:2px solid var(--glacier);outline-offset:3px;border-radius:4px}
.muted{color:var(--mist)} .dim{color:var(--dim)}
.fine{font-size:13.5px;color:var(--mist);line-height:1.55}
.fine b{color:var(--frost);font-weight:600}
.eyebrow{font:500 12px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--mist)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* markers */
.ex,.al,.live,.beta{font:700 9.5px/1 var(--mono);letter-spacing:.14em;padding:3px 6px;border-radius:4px;vertical-align:2px;white-space:nowrap}
.ex{color:var(--husk);border:1px solid rgba(233,179,90,.45)}
.al{color:var(--aurora);border:1px dashed rgba(139,124,255,.6)}
.live{color:var(--sprout);border:1px solid rgba(62,232,164,.45)}
.beta{color:var(--sprout);background:rgba(62,232,164,.12)}

/* nav */
nav.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;border-bottom:1px solid var(--line);background:rgba(7,12,22,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.nav-in{display:flex;align-items:center;gap:18px;height:58px}
.brand{display:flex;align-items:center;gap:10px;font:700 18px var(--display);letter-spacing:-.01em;text-decoration:none;color:var(--frost)}
.brand svg{flex:none}
.nav-links{display:flex;gap:16px;margin-left:auto;font-size:14px}
.nav-links a{color:var(--mist);text-decoration:none}
.nav-links a:hover{color:var(--frost)}
.who{display:flex;align-items:center;gap:8px}
.wallet{font:500 12.5px var(--mono);color:var(--frost);border:1px solid var(--line);border-radius:99px;padding:5px 10px;display:inline-flex;align-items:center;gap:7px}
.wallet::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--sprout)}
@media(max-width:560px){.brand .bt{display:none}.nav-in{gap:10px}.nav-links{gap:12px;font-size:13.5px}.wallet{display:none}}

/* app header + tabs */
.apphead{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding-block:18px 0}
.apphead .host{font:500 12px var(--mono);color:var(--mist)}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-top:10px;scrollbar-width:none}
.tabs a{white-space:nowrap;padding:10px 12px;font-size:14.5px;color:var(--mist);text-decoration:none;border-bottom:2px solid transparent}
.tabs a:hover{color:var(--frost)}
.tabs a[aria-current="page"]{color:var(--frost);border-bottom-color:var(--sprout)}
main{padding-block:26px 64px;display:grid;gap:22px}
main > .head{display:grid;gap:8px}
main > .head p{color:var(--mist);max-width:70ch}

/* flash */
.flash{border-radius:10px;padding:12px 14px;font-size:14.5px;border:1px solid var(--line)}
.flash.ok{border-color:rgba(62,232,164,.4);background:rgba(62,232,164,.06)}
.flash.err{border-color:rgba(242,109,109,.45);background:rgba(242,109,109,.06)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font:600 14.5px var(--body);padding:10px 16px;border-radius:10px;text-decoration:none;border:1px solid transparent;cursor:pointer;color:var(--frost);background:transparent}
.btn.primary{background:var(--grad);color:#04140D}
.btn.ghost{border-color:var(--line)}
.btn.ghost:hover{border-color:var(--glacier)}
.btn.warn{border-color:rgba(242,109,109,.45);color:var(--bad)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.mini{font:600 12.5px var(--body);color:var(--frost);background:transparent;border:1px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer}
.mini:hover{border-color:var(--glacier)}
.mini.warn{color:var(--bad);border-color:rgba(242,109,109,.4)}
.mini[aria-pressed="true"]{background:var(--frost);color:#08111C;border-color:var(--frost)}
form.inline{display:inline}

/* period selector */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg a{font:500 13px var(--body);color:var(--mist);text-decoration:none;padding:7px 13px;border-right:1px solid var(--line)}
.seg a:last-child{border-right:none}
.seg a[aria-current="page"]{background:var(--frost);color:#08111C}
.period{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}

/* the five cards */
.cards5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.c5{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:16px;display:flex;flex-direction:column;gap:6px}
.c5 .k{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mist)}
.c5 .v{font:700 clamp(20px,2.1vw,26px)/1.15 var(--mono);letter-spacing:-.02em}
.c5 .sub{font-size:12.5px;color:var(--mist);line-height:1.45}
.c5.hl{border-color:rgba(62,232,164,.45);background:linear-gradient(180deg,rgba(62,232,164,.06),rgba(7,12,22,0) 55%),var(--surface-2)}
.c5.hl .v{color:var(--sprout)}
.c5.lt{border-style:dashed;border-color:rgba(139,124,255,.5)}
.c5.lt .v{color:var(--aurora)}
.sum{display:none;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:14px;gap:10px}
.sum .row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sum .k{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mist)}
.sum b{display:block;font:700 18px var(--mono);margin-top:3px}
@media(max-width:1000px){.cards5{grid-template-columns:repeat(2,minmax(0,1fr))}.cards5 .c5:last-child{grid-column:1/-1}}
@media(max-width:900px){.sum{display:grid}}
.honest{border-left:3px solid var(--aurora);padding:4px 0 4px 14px;color:var(--mist);font-size:14.5px}

/* chart */
.panel{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);padding:18px}
.panel-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.chart{position:relative;margin-top:16px;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;border-radius:8px}
.chart:focus{outline:none}
.chart:focus-visible{outline:2px solid var(--glacier);outline-offset:8px}
.yax{display:flex;flex-direction:column;justify-content:space-between;height:214px;margin-top:-7px;font:500 11px/14px var(--mono);
  color:var(--mist);text-align:right;font-variant-numeric:tabular-nums}
.plot{position:relative;height:200px;touch-action:pan-y;cursor:crosshair;-webkit-tap-highlight-color:transparent}
.plot svg{display:block;width:100%;height:100%;overflow:visible}
.plot .grid{stroke:var(--line-soft);stroke-width:1;stroke-dasharray:3 4}
.plot .base{stroke:var(--line);stroke-width:1}
.plot .sel{fill:rgba(79,212,224,.09);opacity:0;transition:opacity .12s}
.plot .sel.on{opacity:1}
.plot .bc{fill:#22344F} .plot .bs{fill:var(--glacier)} .plot .bt{fill:var(--sprout)}
.plot .day{transition:opacity .12s}
.plot svg:has(.day.on) .day:not(.on){opacity:.45}
.xax{grid-column:2;position:relative;height:16px;margin-top:8px;font:500 11px/16px var(--mono);color:var(--mist)}
.xax span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.xax span.first{transform:none} .xax span.last{transform:translateX(-100%)}
.xax span.now{color:var(--glacier)}
.ctip{position:absolute;top:4px;left:0;z-index:3;min-width:200px;pointer-events:none;background:#0F1A2C;border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;box-shadow:0 10px 28px rgba(0,0,0,.5);font:500 13px/1.55 var(--body);color:var(--frost)}
.ctip[hidden]{display:none}
.ctip .h{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700;margin-bottom:5px}
.ctip .h .live{font-size:8.5px;padding:2px 5px}
.ctip .r{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:9px;align-items:center}
.ctip .r i{width:10px;height:10px;border-radius:2px}
.ctip .r span{color:var(--mist)}
.ctip .r b{font:600 13px var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.ctip .c{background:#22344F} .ctip .s{background:var(--glacier)} .ctip .t{background:var(--sprout)} .ctip .n{background:transparent}
.ctip .f{color:var(--mist);font-size:12px;margin-top:6px;padding-top:6px;border-top:1px solid var(--line-soft)}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font:500 12px var(--mono);color:var(--mist);margin-top:12px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.legend .c{background:#22344F} .legend .s{background:var(--glacier)} .legend .t{background:var(--sprout)} .legend .m{background:var(--husk);border-radius:99px}
.legend .hint{margin-left:auto;color:var(--dim)}
@media(max-width:600px){.legend .hint{margin-left:0;flex-basis:100%}}

/* key page (1.2.0): a chave dia a dia */
.cards4{grid-template-columns:repeat(4,minmax(0,1fr))}
.head h1 .kid{font:600 .6em var(--mono);letter-spacing:0;vertical-align:middle}
.head h1 .pill{vertical-align:middle;margin-left:4px}
.head .eyebrow a{color:inherit;text-decoration:none}
.head .eyebrow a:hover{color:var(--frost)}
.plot .mark{fill:var(--husk)}
.tbl-days{min-width:760px}
.tbl tr.today td{background:rgba(79,212,224,.05)}
.evt{display:inline-block;font:600 11px var(--mono);padding:2px 7px;border-radius:99px;background:rgba(232,236,245,.07);color:var(--mist);margin:1px 2px 1px 0;white-space:nowrap}
.evt.limit_reached,.evt.ratio_low{color:var(--husk);background:rgba(233,179,90,.12)}
.evt.dry{color:var(--glacier);background:rgba(79,212,224,.1)}
.evt.revoked,.evt.forbidden,.evt.error{color:var(--bad);background:rgba(242,109,109,.1)}
.evt.refilled,.evt.resumed{color:var(--sprout);background:rgba(62,232,164,.12)}
@media(max-width:1000px){.cards4{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* keys */
.keys{display:grid;gap:12px}
.key{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:16px;display:grid;gap:12px}
.key-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.key-top .kid{font:600 14px var(--mono)}
.key-top .lbl{font-weight:600}
.kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.kv div{min-width:0}
.kv dt{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mist)}
.kv dd{margin:3px 0 0;font:500 14px var(--mono)}
.kv dd small{display:block;font:400 12px var(--body);color:var(--mist)}
.key-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sellfrom{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sellfrom .fine{flex-basis:100%}
.caps{margin:6px 0}.caps-form{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:6px 0}.caps-form label{display:flex;flex-direction:column;gap:2px;font-size:.85em}.caps-form input{width:6em}
@media(max-width:760px){.kv{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pill{font:600 11px var(--mono);padding:3px 9px;border-radius:99px;letter-spacing:.04em}
.pill.active{color:var(--sprout);background:rgba(62,232,164,.12)}
.pill.paused{color:var(--husk);background:rgba(233,179,90,.12)}
.pill.dry{color:var(--glacier);background:rgba(79,212,224,.1)}
.pill.revoked,.pill.forbidden{color:var(--bad);background:rgba(242,109,109,.1)}

/* forms */
.form{display:grid;gap:12px;max-width:640px}
.field label,.field .lab{display:block;font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mist);margin-bottom:6px}
.field input[type=text],.field input[type=password],.field select{width:100%;background:var(--night);border:1px solid var(--line);border-radius:9px;padding:10px 11px;color:var(--frost);font:500 14px var(--mono)}
.choice{display:flex;flex-wrap:wrap;gap:8px}
.choice label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font:500 14px var(--body);text-transform:none;letter-spacing:0;color:var(--frost);margin:0;cursor:pointer}
.choice input{accent-color:var(--sprout)}

/* tables */
.scroll{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:560px}
.tbl th{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mist);text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line-soft);font-family:var(--mono);font-size:12.5px;vertical-align:top}
.tbl tr:last-child td{border-bottom:none}
.tbl td.r,.tbl th.r{text-align:right}
.okb{color:var(--sprout)} .warnb{color:var(--husk)} .badb{color:var(--bad)}

/* cards/tiles (also used by /ops) */
.card{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:18px;display:grid;gap:12px;min-width:0}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.tile{border:1px solid var(--line-soft);border-radius:10px;padding:12px;display:grid;gap:4px}
.tile .k{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mist)}
.tile .v{font:700 18px var(--mono)}
.tile .s{font-size:12px;color:var(--mist)}
.badge{font:600 11px var(--mono);padding:2px 8px;border-radius:99px;border:1px solid var(--line)}
.badge.active,.badge.ok{color:var(--sprout);border-color:rgba(62,232,164,.4)}
.badge.paused,.badge.needs_review,.badge.open{color:var(--husk);border-color:rgba(233,179,90,.4)}
.badge.dry{color:var(--glacier)} .badge.revoked{color:var(--bad)}
ul.events{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:13px}
ul.events .t{font-family:var(--mono);color:var(--mist)}

/* sign in */
.signin{max-width:620px;display:grid;gap:14px}
.status{font-size:14.5px;min-height:1.5em;color:var(--mist)}
.status.ok{color:var(--sprout)} .status.err{color:var(--bad)} .status.warn{color:var(--husk)}
.msgbox{font:500 12px/1.6 var(--mono);color:var(--mist);background:#050912;border:1px solid var(--line);border-radius:10px;padding:14px;white-space:pre-wrap;word-break:break-all;margin:0}
.notlisted{border:1px dashed rgba(139,124,255,.55);border-radius:14px;padding:18px;display:grid;gap:8px;background:rgba(139,124,255,.04)}
.notlisted[hidden]{display:none}

/* your SEED */
.launch{border:1px dashed rgba(139,124,255,.55);border-radius:16px;padding:22px;display:grid;gap:12px;background:linear-gradient(180deg,rgba(139,124,255,.06),rgba(7,12,22,0) 55%),var(--surface-2)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media(max-width:760px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}

footer{border-top:1px solid var(--line);padding-block:22px 40px;font:500 12px var(--mono);color:var(--dim)}
footer .wrap{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:space-between}
footer a{color:var(--mist);text-decoration:none}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important}}
