:root{--bg:#0e110b;--panel:#151910;--panel2:#1a2013;--line:#2b331e;--line2:#222a15;--txt:#e9eedd;--dim:#8d9878;--faint:#5a654c;--green:#a3e05c;--green-d:#6fae35;--amber:#ffc95c;--amber-d:#c79a3a;--red:#ff6a5e;--mono:"JetBrains Mono",monospace;--sans:"Space Grotesk",sans-serif}

*{margin:0;padding:0;box-sizing:border-box}

[hidden]{display:none!important}

body{min-height:100vh;background:var(--bg);color:var(--txt);font-family:var(--sans);background-image:radial-gradient(rgba(163,224,92,.035) 1px,transparent 1.5px);background-size:26px 26px}

::selection{background:var(--green);color:#15230a}

header{display:flex;justify-content:space-between;align-items:center;padding:16px 28px;border-bottom:1px solid var(--line2)}

.brand{display:flex;align-items:center;gap:12px}

.brand svg{width:30px;height:30px;stroke:var(--amber);fill:none;stroke-width:1.6}

.bname{font-weight:700;font-size:17px;letter-spacing:.14em}

.bsub{font-family:var(--mono);font-size:10px;color:var(--faint);letter-spacing:.1em}

.h-right{display:flex;align-items:center;gap:14px}

.userchip{display:flex;align-items:center;gap:9px;padding:6px 12px 6px 6px;border:1px solid var(--line2);border-radius:99px;background:var(--panel)}

.userchip img{width:26px;height:26px;border-radius:50%;background:var(--panel2)}

.userchip .un{font-family:var(--mono);font-size:12px;color:var(--dim)}

.pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--line2);border-radius:99px;padding:6px 12px;background:var(--panel)}

.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}

.pill.on .dot{background:var(--green);animation:pulse 1.6s infinite}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

main{max-width:1280px;margin:0 auto;padding:28px 28px 70px}

.panel{background:var(--panel);border:1px solid var(--line2);border-radius:16px}

.phead{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line2);font-size:11px;letter-spacing:.16em;color:var(--dim);font-weight:600}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:13px;border-radius:10px;cursor:pointer;border:1px solid transparent;padding:11px 20px;letter-spacing:.03em}

.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}

.btn:disabled{opacity:.5;cursor:default}

.btn-p{background:var(--green);color:#15230a}

.btn-p:hover:not(:disabled){background:#b6f074}

.btn-g{background:transparent;border-color:var(--line);color:var(--txt)}

.btn-g:hover:not(:disabled){border-color:var(--green-d);color:var(--green)}

.btn-r{background:transparent;border-color:var(--line);color:var(--red)}

.btn-r:hover{border-color:var(--red)}

.input,.select{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--txt);font-family:var(--mono);font-size:13px;padding:12px 14px;outline:none}

.input:focus,.select:focus{border-color:var(--green-d)}

.input.bad{border-color:var(--red)}

.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}

.label{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--dim)}

.hint{font-family:var(--mono);font-size:11px;color:var(--faint);line-height:1.6}

#view-setup{max-width:480px;margin:6vh auto 0}

.step{padding:26px}

.step+.step{margin-top:18px}

.stepnum{font-family:var(--mono);font-size:11px;color:var(--green);letter-spacing:.2em;margin-bottom:4px}

h1{font-size:24px;margin-bottom:4px}

.stepsub{color:var(--dim);font-size:13px;margin-bottom:22px;line-height:1.55}

.pwwrap{position:relative}

.pwwrap .input{padding-right:44px}

.eyebtn{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:8px;color:var(--faint)}

.eyebtn:hover{color:var(--dim)}

.eyebtn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}

.remember{display:flex;align-items:center;gap:8px;margin:2px 0 18px;font-size:12px;color:var(--dim);cursor:pointer;user-select:none}

.remember input{accent-color:var(--green)}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.wfull{width:100%}

.farm-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}

.col-main{display:flex;flex-direction:column;gap:18px}

.log-panel{grid-column:2}

.frame{display:flex;flex-direction:column;gap:18px;grid-row:1/3}

.side-body{padding:8px 20px 18px}

.kv{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line2);font-size:12px}

.kv:last-child{border-bottom:none}

.kv .k{color:var(--dim);font-size:11px;font-weight:600;letter-spacing:.08em}

.kv .v{font-family:var(--mono);font-size:12px;color:var(--txt);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.controls{display:flex;flex-direction:column;gap:10px;padding:16px 20px 20px}

.controls .btn{justify-content:flex-start}

.bal-body{padding:26px 30px 24px}

.bal-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}

.chchip{font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--line2);padding:5px 10px;border-radius:99px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.odo{display:flex;align-items:flex-end;font:800 clamp(56px,9vw,110px)/1 var(--mono);color:var(--amber);letter-spacing:-.02em;height:1.05em}

.odo.flash{animation:ofl .7s}

@keyframes ofl{0%{color:#8ff05a}100%{color:var(--amber)}}

.odo-dg{height:1em;overflow:hidden;display:inline-block}

.odo-roll{display:flex;flex-direction:column;transition:transform .55s cubic-bezier(.16,1,.3,1)}

.odo-roll span{height:1em;display:block;text-align:center}

.odo-cm{display:inline-block;color:var(--amber-d)}

.deltarow{display:flex;align-items:center;gap:14px;margin-top:10px;font-family:var(--mono);font-size:13px}

.delta{padding:5px 12px;border-radius:8px;border:1px solid var(--line);color:var(--dim)}

.delta.pos{color:var(--green);border-color:rgba(163,224,92,.35)}

.delta.neg{color:var(--red);border-color:rgba(255,106,94,.35)}

.delsub{color:var(--faint);font-size:11px}

.chartbox{margin-top:22px}

.chartbox canvas{width:100%;height:130px;display:block}

.ledger{display:flex;flex-wrap:wrap}

.li{flex:1 1 140px;padding:18px 22px;border-left:1px solid var(--line2);min-width:130px}

.li:first-child{border-left:none}

.lin{font:700 26px var(--mono);color:var(--txt)}

.li .label{margin-top:5px}

.log-body{height:300px;overflow-y:auto;padding:12px 16px;font-family:var(--mono);font-size:11.5px}

.log-body::-webkit-scrollbar{width:8px}

.log-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}

.lrow{display:flex;gap:10px;padding:4px 6px;border-radius:6px;line-height:1.5;word-break:break-word}

.lrow:hover{background:var(--panel2)}

.lt{color:var(--faint);flex-shrink:0}

.lg{flex-shrink:0;width:42px;font-weight:700}

.lx{color:#c9d1b4;white-space:pre-wrap}

.k-send .lg{color:var(--green)}.k-sys .lg{color:var(--dim)}.k-sys .lx{color:var(--dim)}

.k-err .lg{color:var(--red)}.k-err .lx{color:#ffb3ac}

.k-warn .lg{color:var(--amber)}.k-warn .lx{color:#ffe3ab}

.k-owo .lg{color:var(--amber-d)}

#toasts{position:fixed;bottom:22px;right:22px;display:flex;flex-direction:column;gap:10px;z-index:99}

.toast{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:10px;padding:12px 16px;font-size:13px;max-width:340px;box-shadow:0 8px 30px rgba(0,0,0,.5)}

.toast.t-err{border-left-color:var(--red)}

.toast.t-warn{border-left-color:var(--amber)}

.toast svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;color:var(--green)}

.toast.t-err svg{color:var(--red)}

.toast.t-warn svg{color:var(--amber)}

@media(max-width:980px){.farm-grid{grid-template-columns:1fr}.frame{grid-row:auto}.log-panel{grid-column:1}header{flex-wrap:wrap;gap:10px}}

/* ---------- add-token modal ---------- */

.mask{position:fixed;inset:0;background:rgba(5,8,3,.74);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:120;padding:20px}

.modal{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.6)}

.mhead{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line2);font-size:11px;letter-spacing:.16em;color:var(--dim);font-weight:600}

.mclose{background:none;border:none;color:var(--faint);cursor:pointer;font-size:15px;line-height:1;padding:4px 6px}

.mclose:hover{color:var(--red)}

.mbody{padding:20px}

.acclist{margin-top:16px;border:1px solid var(--line2);border-radius:10px;overflow:hidden}

/* session controls inside the token manager */
.msec{margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}

.mhead2{font-size:10px;letter-spacing:.16em;color:var(--faint);font-weight:600;margin-bottom:10px}

.msec-row{display:flex;flex-wrap:wrap;gap:8px}

.msec-row .btn{flex:1 1 44%;justify-content:center;padding:9px 12px;font-size:12px}

.vbanner{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px;padding:10px 12px;border:1px solid var(--amber-d);background:rgba(255,201,92,.07);color:var(--amber);border-radius:10px;font-size:11.5px;line-height:1.5}

.accrow{display:flex;align-items:center;gap:9px;padding:9px 12px;font-family:var(--mono);font-size:11.5px;color:var(--dim);border-bottom:1px solid var(--line2);background:var(--panel2)}

.accrow:last-child{border-bottom:none}

.accrow.primary{color:var(--txt)}

.accrow img{width:18px;height:18px;border-radius:50%;background:var(--panel)}

.accrow .atag{font-size:9px;letter-spacing:.1em;color:var(--faint);border:1px solid var(--line2);padding:2px 6px;border-radius:99px}

.accrow .adot{width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:auto}

.accrow.editing{background:rgba(163,224,92,.08)}

.accacts{display:flex;gap:6px;margin-left:8px}

.accact{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--faint);cursor:pointer;padding:0}

.accact:hover{border-color:var(--green-d);color:var(--green)}

.accact.danger:hover{border-color:var(--red);color:var(--red)}

.accact svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.accq{flex:1;color:var(--red);font-size:11.5px;letter-spacing:.03em}

.mini{font-family:var(--sans);font-size:10.5px;font-weight:600;padding:5px 11px;border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--txt);cursor:pointer}

.mini:hover{border-color:var(--green-d);color:var(--green)}

.mini.r{border-color:var(--red);color:var(--red)}

.mini.r:hover{background:var(--red);color:#1a0a08}
