/* Velmin 5.17 features */
.hidden{display:none!important}
.v-toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translate(-50%,12px);z-index:300;max-width:min(92vw,520px);padding:11px 16px;border-radius:14px;background:#1b2021;color:#eee;border:1px solid rgba(232,215,165,.28);font-size:13px;opacity:0;pointer-events:none;transition:.25s}
.v-toast.on{opacity:1;transform:translate(-50%,0)}
/* composer extras */
.composer-modes .mode-pill.rec{background:#7a2230;border-color:#c0475a;color:#fff;animation:vpulse 1.2s infinite}
.composer-modes .vc-pill{border-color:rgba(232,215,165,.4)}
.cost-chip{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;border:1px solid rgba(232,215,165,.22);background:rgba(232,215,165,.06);color:#e7d8ad;font-size:12px;cursor:pointer;white-space:nowrap}
.cost-chip small{opacity:.75}.cost-chip i{font-style:normal}
.cost-chip.low{border-color:#c0475a;color:#ff8d9d;background:rgba(192,71,90,.12)}
.slash-pop{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:40;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:#101617;border:1px solid rgba(232,215,165,.22);box-shadow:0 12px 40px #000a}
.slash-pop button{display:flex;gap:12px;justify-content:space-between;padding:10px 14px;background:none;border:0;color:#ddd;text-align:left;cursor:pointer}
.slash-pop button:hover,.slash-pop button:focus{background:rgba(232,215,165,.1)}
.slash-pop b{color:#e7d8ad}.slash-pop span{opacity:.6;font-size:12px}
/* modals */
.v-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.62);backdrop-filter:blur(6px)}
.v-card{width:min(560px,100%);max-height:88dvh;overflow:auto;padding:20px;border-radius:20px;background:#0e1415;border:1px solid rgba(232,215,165,.22);color:#e8e8e8}
.v-card textarea,.v-card input{width:100%}
.v-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.v-card-head h3{margin:0;font-size:18px}
.v-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.v-stats div{padding:12px;border-radius:14px;background:rgba(255,255,255,.04);display:flex;flex-direction:column;gap:4px}.v-stats small{opacity:.6}.v-stats b{font-size:20px;color:#e7d8ad}
.v-budget{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.v-budget label{display:flex;flex-direction:column;gap:5px;font-size:12px;opacity:.9}.v-budget small,.v-budget button{grid-column:1/-1}
.v-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.06);font-size:13px;align-items:center}
.v-row .neg{color:#ff9a8a}.v-row .pos{color:#8fe3a8}
.v-row kbd{padding:3px 8px;border-radius:8px;background:#1b2224;border:1px solid rgba(255,255,255,.12);font-size:12px}
/* voice chat overlay */
body.vc-open{overflow:hidden}
.vc{position:fixed;inset:0;z-index:250;display:flex;flex-direction:column;align-items:center;gap:14px;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 38%,#17201f,#050808 70%);color:#eee}
.vc-close{position:absolute;right:16px;top:calc(14px + env(safe-area-inset-top));width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:#fff;font-size:16px;cursor:pointer}
.vc-title{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#e7d8ad;opacity:.85}
.vc-log{flex:1;width:min(640px,100%);overflow:auto;display:flex;flex-direction:column;gap:10px;padding:6px 2px;scroll-behavior:smooth}
.vc-log p{margin:0;padding:10px 14px;border-radius:16px;max-width:88%;line-height:1.45;font-size:15px}
.vc-log .me{align-self:flex-end;background:#e7d8ad;color:#17140b}.vc-log .ai{align-self:flex-start;background:rgba(255,255,255,.07)}.vc-log .err{align-self:center;background:rgba(192,71,90,.18);color:#ffb3bf;font-size:13px}
.vc-orb{--lvl:0;position:relative;width:132px;height:132px;border-radius:50%;border:1px solid rgba(232,215,165,.5);background:radial-gradient(circle at 35% 30%,#f3e6bd,#b9a468 70%);color:#17140b;font-size:44px;cursor:pointer;display:grid;place-items:center;transform:scale(calc(1 + var(--lvl)*.12));transition:transform .08s}
.vc-orb i{position:absolute;inset:-10px;border-radius:50%;border:1px solid rgba(232,215,165,.35);opacity:0;pointer-events:none}
.vc[data-state=listening] .vc-orb i{animation:vring 1.6s infinite}.vc[data-state=listening] .vc-orb i:nth-child(2){animation-delay:.5s}.vc[data-state=listening] .vc-orb i:nth-child(3){animation-delay:1s}
.vc[data-state=thinking] .vc-orb{animation:vpulse 1s infinite;filter:saturate(.6)}
.vc[data-state=speaking] .vc-orb{background:radial-gradient(circle at 35% 30%,#d9ecff,#6f95c4 70%);animation:vpulse 1.4s infinite}
.vc-status{font-size:15px;min-height:22px}.vc-hands{font-size:13px;opacity:.85;display:flex;gap:8px;align-items:center}.vc-cost{opacity:.55}
@keyframes vring{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.7);opacity:0}}
@keyframes vpulse{0%,100%{box-shadow:0 0 0 0 rgba(232,215,165,.35)}50%{box-shadow:0 0 0 14px rgba(232,215,165,0)}}
.vc-start{display:flex;align-items:center;gap:12px;margin:0 0 16px;flex-wrap:wrap}
/* quote/pin */
.msg-tools{position:fixed;z-index:60;display:none;gap:4px;padding:4px;border-radius:12px;background:#151c1d;border:1px solid rgba(232,215,165,.25)}
.msg-tools.on{display:flex}.msg-tools button{background:none;border:0;color:#e7d8ad;font-size:15px;padding:4px 7px;cursor:pointer;border-radius:8px}.msg-tools button:hover{background:rgba(255,255,255,.08)}
.pin-bar{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:8px 2px;margin-bottom:6px;scrollbar-width:none}.pin-bar::-webkit-scrollbar{display:none}
.pin-bar b{font-size:12px;color:#e7d8ad;white-space:nowrap}.pin-bar button{flex:0 0 auto;padding:6px 11px;border-radius:999px;border:1px solid rgba(232,215,165,.25);background:rgba(232,215,165,.06);color:#ddd;font-size:12px;cursor:pointer;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* life quests */
.quest-card{margin:14px 0 18px;padding:16px;border-radius:18px;background:linear-gradient(160deg,rgba(232,215,165,.08),rgba(255,255,255,.02));border:1px solid rgba(232,215,165,.2)}
.quest-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.streak{font-size:22px}.streak b{color:#e7d8ad;font-size:28px}.streak span{font-size:13px;opacity:.7}
.week{margin-left:auto;display:flex;gap:6px}.week i{width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.12)}.week i.on{background:#e7d8ad;box-shadow:0 0 10px rgba(232,215,165,.5)}
.quest-warn{margin:10px 0 0;padding:8px 12px;border-radius:12px;background:rgba(255,160,70,.12);color:#ffc58a;font-size:13px}
.quest-card h4{margin:14px 0 8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.quest{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid rgba(255,255,255,.06)}.quest div{flex:1;display:flex;flex-direction:column;gap:2px}.quest small{opacity:.6}.quest em{font-size:11px;opacity:.55;font-style:normal}
.quest .qm{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(232,215,165,.4);color:#e7d8ad;font-size:13px}.quest.done .qm{background:#e7d8ad;color:#17140b}.quest.done b{text-decoration:line-through;opacity:.6}
.streak-chip{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:6px 12px;border-radius:999px;border:1px solid rgba(232,215,165,.28);background:rgba(232,215,165,.07);color:#e7d8ad;font-size:13px;cursor:pointer}.streak-chip.risk{border-color:#ff9a4d;color:#ffb878;animation:vpulse 2s infinite}
/* group project */
.proj-panel{margin:10px 0;border-radius:16px;border:1px solid rgba(232,215,165,.2);background:rgba(255,255,255,.025)}
.proj-panel summary{padding:11px 14px;cursor:pointer;color:#e7d8ad;font-weight:600}.proj-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:8px}
.proj-body label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.9}.proj-body h4{margin:10px 0 2px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.pj-note{display:flex;gap:8px;align-items:baseline;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.04);font-size:13px}.pj-note span{flex:1}.pj-note small{opacity:.5}.pj-note button{background:none;border:0;color:#999;cursor:pointer}
.pj-add{display:flex;gap:8px}.pj-add input{flex:1}.pj-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
@media(max-width:820px){
  .cost-chip{margin-left:0}.v-stats{grid-template-columns:1fr 1fr 1fr}.v-budget{grid-template-columns:1fr}
  .vc-orb{width:116px;height:116px}.week{margin-left:0;width:100%}
}
/* account / auth card */
.auth-card{margin:6px 0 14px;padding:16px;border-radius:18px;border:1px solid rgba(232,215,165,.22);background:linear-gradient(160deg,rgba(232,215,165,.07),rgba(255,255,255,.02));display:flex;flex-direction:column;gap:10px}
.auth-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.auth-head b{font-size:14px;word-break:break-all}
.auth-badge{padding:4px 11px;border-radius:999px;font-size:12px;border:1px solid rgba(232,215,165,.35);color:#e7d8ad;background:rgba(232,215,165,.08)}.auth-badge.ok{background:#e7d8ad;color:#17140b}
.auth-hint{margin:0;font-size:13px;line-height:1.5}
.auth-tabs{display:flex;gap:6px;padding:4px;border-radius:999px;background:rgba(255,255,255,.05);width:fit-content;max-width:100%}
.auth-tabs button{padding:8px 16px;border:0;border-radius:999px;background:none;color:#cfd5d1;cursor:pointer;font-size:13px}.auth-tabs button.on{background:#e7d8ad;color:#17140b}
#authForm,#authCode,#authUser{display:flex;flex-direction:column;gap:10px}#authUser{flex-direction:row;flex-wrap:wrap;align-items:center}
.auth-card input{width:100%;font-size:16px;padding:12px 14px;border-radius:12px}
.auth-msg{margin:0;min-height:18px;font-size:13px;color:#8fe3a8}.auth-msg.bad{color:#ff9a8a}
/* data row, install, danger */
.data-row{flex-wrap:wrap;gap:10px}.data-actions{display:flex;gap:8px;flex-wrap:wrap}
.mini-btn.danger{border-color:#8a3340;color:#ff9aa8}
.install-row{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.install-row div{display:flex;flex-direction:column;gap:3px}
.install-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(76px + env(safe-area-inset-bottom));z-index:120;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#151c1d;border:1px solid rgba(232,215,165,.35);box-shadow:0 10px 40px #000a;font-size:14px;max-width:94vw}
.install-bar .btn-i{padding:8px 14px;border-radius:999px;border:0;background:#e7d8ad;color:#17140b;font-weight:700;cursor:pointer}.install-bar .btn-x{background:none;border:0;color:#9aa5a3;cursor:pointer}
