:root {
  --bg:#120f0c; --surface:#1b1712; --surface2:#251f18; --line:#342b21;
  --text:#f2eadf; --muted:#9e9281; --flame:#f2a93b; --ember:#df5538;
  --green:#65b980; --radius:14px;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;
  --mono:"SFMono-Regular",Consolas,monospace;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--sans)}
body{padding-bottom:86px;-webkit-font-smoothing:antialiased}.hidden{display:none!important}
button,input,select,textarea{font:inherit}.topbar{display:flex;align-items:center;padding:18px 16px 8px;gap:12px}
.wordmark{font:700 15px var(--mono);letter-spacing:.05em;display:flex;align-items:center;gap:8px}
.flame-dot{width:8px;height:8px;border-radius:50%;background:var(--flame);box-shadow:0 0 9px var(--flame)}
.user-badge{margin-left:auto;color:var(--muted);font-size:12px;max-width:45%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
main{padding:8px 16px 24px;max-width:720px;margin:0 auto}.view-head{display:flex;align-items:center;justify-content:space-between;margin:8px 0 14px}
h1{font-size:26px;margin:0 0 3px}h2{font-size:14px;margin:0 0 10px}.view-head p,.muted{margin:0;color:var(--muted);font-size:13px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px;margin-bottom:12px}
.source-line{font-size:12px;color:var(--muted);margin:-6px 0 10px}.source-line.stale{color:var(--ember)}
.rates-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.rate-card{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:11px}
.rate-card .pair{font-size:11px;color:var(--muted)}.rate-card .price{font:600 16px var(--mono);margin-top:4px;overflow:hidden;text-overflow:ellipsis}
.field{margin-bottom:11px}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}
input,select,textarea{width:100%;color:var(--text);background:var(--surface2);border:1px solid var(--line);border-radius:9px;padding:11px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--flame)}textarea{resize:vertical;min-height:70px}
.converter-row,.row2{display:flex;gap:9px;align-items:end}.grow{flex:1}.swap{margin-bottom:11px;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:var(--surface2);color:var(--flame);font-size:20px}
.btn-primary,.btn-small,.btn-ghost,.chip,.icon-btn{border:0;cursor:pointer}
.btn-primary{background:var(--flame);color:#211608;border-radius:10px;padding:11px 14px;font-weight:700}
.card>.btn-primary{width:100%}.btn-small{background:var(--flame);color:#211608;border-radius:20px;padding:8px 13px;font-weight:700}
.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.icon-btn{width:34px;height:34px;background:var(--surface2);color:var(--text);border:1px solid var(--line);border-radius:9px;font-size:19px}
.result{font:600 22px var(--mono);color:var(--green);padding:16px 2px 2px;word-break:break-word}.result small{display:block;font:12px var(--sans);color:var(--muted);margin-top:5px}
.form-card{border-color:#624c29}.form-actions{display:flex;justify-content:flex-end;gap:8px}.form-actions .btn-primary{width:auto}
fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 12px;padding:10px}legend{font-size:11px;color:var(--muted)}
.check{display:flex;align-items:center;gap:7px;font-size:13px;padding:5px}.check input{width:auto}
.filter-row{display:flex;gap:7px;margin:0 0 10px}.chip{border:1px solid var(--line);background:var(--surface2);color:var(--muted);padding:7px 12px;border-radius:18px}.chip.active{background:var(--flame);color:#211608;border-color:var(--flame)}
.stack{display:flex;flex-direction:column;gap:8px}.item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}
.item.done{opacity:.58}.item.done .item-title{text-decoration:line-through}.item-title{font-weight:650;font-size:15px;word-break:break-word}
.item-meta{display:flex;flex-wrap:wrap;gap:6px 10px;color:var(--muted);font-size:11px;margin-top:6px}.item-meta .overdue{color:var(--ember)}
.item-description{font-size:13px;color:#c9beaf;margin-top:7px;white-space:pre-wrap}.item-actions{display:flex;gap:7px;margin-top:10px}
.item-actions button{border:1px solid var(--line);background:var(--surface2);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px}
.empty{text-align:center;color:var(--muted);padding:28px 12px}.section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11px;margin:16px 2px 9px}
.month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.weekdays span{text-align:center;color:var(--muted);font-size:10px}.day{aspect-ratio:1;border:0;border-radius:8px;background:transparent;color:var(--text);position:relative}
.day.outside{color:#5e554a}.day.today{outline:1px solid var(--flame)}.day.has-event::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:var(--flame);bottom:4px;left:calc(50% - 2px)}
.team-row{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--surface2);display:grid;place-items:center;color:var(--flame);font-weight:700}
.team-info{flex:1}.role{color:var(--muted);font-size:11px;margin-top:2px}.invite-result{margin-top:12px;background:var(--surface2);border-radius:9px;padding:10px;font-size:12px;word-break:break-all;color:var(--green)}
.notice{margin:8px 16px;padding:12px;border-radius:10px}.error{background:#3a1b16;color:#ffb9aa}.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:#f3eadb;color:#24190d;padding:9px 14px;border-radius:20px;font-size:12px;z-index:20;box-shadow:0 6px 24px #0008}
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--line);padding:7px 4px calc(7px + env(safe-area-inset-bottom));z-index:10}
.tabbar button{flex:1;border:0;background:transparent;color:var(--muted);font-size:10px;padding:4px 1px;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button span{font-size:19px}.tabbar button.active{color:var(--flame)}
@media(max-width:410px){.row2{flex-direction:column;align-items:stretch}.rates-grid{grid-template-columns:1fr 1fr}.invite-card .row2{flex-direction:column}}
