:root{
  --bg:#F2F5F9;
  --card:#FFFFFF;
  --ink:#0F1B2D;
  --muted:#7A8799;
  --line:#E8EDF4;
  --indigo:#4F46E5;
  --indigo-deep:#3730A3;
  --sky:#38BDF8;
  --green:#10B981;
  --orange:#F97316;
  --red:#F04438;
  --shadow:0 10px 28px rgba(15,27,45,.07);
  --r:22px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  background:#0E1524;
  color:var(--ink);
  display:flex;justify-content:center;align-items:center;
  min-height:100dvh;
}
button{font-family:inherit;border:0;background:none;color:inherit;cursor:pointer;padding:0}
input,select,textarea{font-family:inherit;color:inherit}
.device{
  position:fixed;top:0;bottom:0;
  width:min(420px,100vw);
  height:100dvh;
  background:var(--bg);
  overflow:hidden;
  box-shadow:0 30px 90px rgba(0,0,0,.5);
}
@media(min-width:540px){
  .device{border-radius:46px;border:10px solid #171F2E;height:min(920px,100dvh)}
}
.hidden{display:none!important}

/* status bar */
.statusbar{
  position:absolute;top:0;left:0;right:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 26px 4px;
  font-size:14px;font-weight:600;
  background:linear-gradient(var(--bg) 60%,transparent);
  pointer-events:none;
}
.statusbar svg{display:block}
.sb-right{display:flex;align-items:center;gap:6px}

/* setup */
.setup-view{
  position:absolute;inset:0;z-index:70;overflow-y:auto;
  background:
    radial-gradient(circle at 18% 12%, rgba(56,189,248,.30), transparent 42%),
    radial-gradient(circle at 86% 82%, rgba(99,102,241,.34), transparent 46%),
    linear-gradient(160deg,#141B4D 0%,#312E81 58%,#4F46E5 100%);
  color:#fff;display:flex;flex-direction:column;align-items:center;
  padding:56px 24px 40px;text-align:center;
}
.setup-view .app-icon{
  width:84px;height:84px;border-radius:22px;
  background:linear-gradient(145deg,#38BDF8,#4F46E5 58%,#312E81);
  display:flex;align-items:center;justify-content:center;
  font-size:38px;font-weight:800;
  box-shadow:0 18px 40px rgba(0,0,0,.35), inset 0 2px 4px rgba(255,255,255,.3);
  margin-bottom:18px;
}
.setup-view h1{margin:0;font-size:28px;letter-spacing:2px}
.setup-sub{margin:8px 0 26px;font-size:13.5px;opacity:.78}
.setup-card{
  width:100%;max-width:340px;background:var(--card);color:var(--ink);
  border-radius:22px;padding:20px;text-align:left;box-shadow:0 20px 50px rgba(0,0,0,.3);
}
.setup-tip{font-size:12px;color:var(--muted);line-height:1.6;margin:10px 0 14px}

/* main */
.main{
  position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:58px 0 calc(128px + var(--safe-b));
}
.view{display:none}
.view.active{display:block;animation:viewIn .25s ease}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.screen{padding:0 18px}

/* tabbar / fab */
.tabbar{
  position:absolute;left:0;right:0;bottom:0;z-index:45;
  display:flex;height:calc(78px + var(--safe-b));
  padding-bottom:calc(10px + var(--safe-b));
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(22px);
  border-top:1px solid var(--line);
}
.tab-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  font-size:11px;color:var(--muted);transition:color .2s;
}
.tab-item svg{width:23px;height:23px}
.tab-item.active{color:var(--indigo-deep);font-weight:600}
.fab{
  position:absolute;right:20px;bottom:calc(94px + var(--safe-b));z-index:46;
  width:58px;height:58px;border-radius:50%;
  background:linear-gradient(145deg,#6366F1,#4F46E5 55%,#3730A3);
  color:#fff;font-size:30px;font-weight:300;line-height:1;
  box-shadow:0 12px 26px rgba(79,70,229,.42);
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s;
}
.fab:active{transform:scale(.92)}

/* typography */
.page-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 16px}
.greet{font-size:22px;font-weight:700;margin:0 0 3px}
.date-line{font-size:13px;color:var(--muted)}
.icon-btn{
  width:40px;height:40px;border-radius:50%;background:var(--card);
  box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;color:var(--ink);
}
.icon-btn svg{width:19px;height:19px}
.sec-title{font-size:13px;color:var(--muted);margin:24px 4px 10px;letter-spacing:.4px;font-weight:600}

/* cards */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(135deg,#141B4D 0%,#312E81 48%,#4F46E5 100%);
  padding:22px 22px 20px;border-radius:26px;
  box-shadow:0 16px 34px rgba(49,46,129,.34);
}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.hero::before{width:210px;height:210px;right:-70px;top:-90px}
.hero::after{width:150px;height:150px;left:-46px;bottom:-74px;background:rgba(255,255,255,.06)}
.hero-top{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.86;position:relative;z-index:1}
.hero-top svg{width:15px;height:15px}
.balance{margin:8px 0 2px;font-size:34px;font-weight:700;letter-spacing:.5px;font-variant-numeric:tabular-nums;position:relative;z-index:1}
.balance small{font-size:15px;font-weight:600;opacity:.85}
.balance-delta{font-size:12px;opacity:.78;position:relative;z-index:1}
.hero-stats{
  position:relative;z-index:1;display:flex;margin-top:18px;padding-top:15px;
  border-top:1px solid rgba(255,255,255,.16);
}
.hero-stat{flex:1}
.hero-stat + .hero-stat{border-left:1px solid rgba(255,255,255,.16);padding-left:15px}
.hero-stat label{display:block;font-size:11.5px;opacity:.74;margin-bottom:4px}
.hero-stat b{font-size:15.5px;font-weight:700;font-variant-numeric:tabular-nums}
.hero-stat .soft{color:#A5B4FC}
.hero-stat .warn{color:#FCD34D}

.quick-row{display:flex;gap:10px;margin-top:16px}
.quick{
  flex:1;background:var(--card);border-radius:17px;box-shadow:var(--shadow);
  padding:13px 6px 11px;display:flex;flex-direction:column;align-items:center;gap:6px;
  font-size:11.5px;font-weight:600;transition:transform .15s;
}
.quick:active{transform:scale(.95)}
.quick .qi{
  width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:19px;
}

/* badges */
.badge{font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:99px;flex:none}
.badge.paid{background:rgba(16,185,129,.14);color:#047857}
.badge.unpaid{background:rgba(249,115,22,.15);color:#C2410C}
.badge.partial{background:rgba(245,158,11,.16);color:#B45309}
.badge.return{background:rgba(240,68,56,.12);color:#B42318}
.ch-tag{font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:6px;color:#fff;flex:none}
.ch-tag.wechat{background:#07C160}
.ch-tag.alipay{background:#1677FF}
.ch-tag.card{background:#8B5CF6}
.ch-tag.cash{background:#10B981}
.ch-tag.bank{background:#0EA5E9}

/* rows */
.tx-row{display:flex;align-items:center;gap:12px;padding:13px 18px}
.tx-row + .tx-row{border-top:1px solid #F1F4F9}
.cat-ico{
  width:42px;height:42px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;
}
.tx-info{flex:1;min-width:0}
.tx-title{font-size:14.5px;font-weight:600;display:flex;align-items:center;gap:6px}
.tx-note{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-right{text-align:right;flex:none}
.tx-amt{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.tx-amt.profit{color:var(--green)}
.tx-sub{font-size:11.5px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}
.see-all{display:block;text-align:center;padding:12px;font-size:13px;color:var(--indigo);font-weight:600}
.list-card{background:var(--card);border-radius:18px;box-shadow:var(--shadow)}
.empty-tip{text-align:center;color:var(--muted);font-size:13px;padding:40px 0}

/* debt cards */
.debt-card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow)}
.debt-row{display:flex;align-items:center;gap:12px;padding:13px 18px}
.debt-row + .debt-row{border-top:1px solid #F1F4F9}
.debt-name{flex:1;min-width:0}
.debt-name b{display:block;font-size:14px}
.debt-name span{font-size:11.5px;color:var(--muted)}
.debt-amt{font-size:14.5px;font-weight:700;color:var(--orange);font-variant-numeric:tabular-nums}
.mini-btn{
  font-size:12px;font-weight:700;color:var(--indigo);
  background:rgba(79,70,229,.09);padding:8px 13px;border-radius:99px;flex:none;
}
.mini-btn:active{background:rgba(79,70,229,.16)}
.mini-btn.green{color:#047857;background:rgba(16,185,129,.12)}
.mini-btn.orange{color:#C2410C;background:rgba(249,115,22,.13)}

/* seg / month nav */
.seg{
  display:flex;background:#E8EDF4;border-radius:12px;padding:3px;margin-bottom:14px;
}
.seg-item{
  flex:1;text-align:center;padding:8px 0;border-radius:10px;font-size:13px;font-weight:600;color:var(--muted);
  transition:background .2s,color .2s;
}
.seg-item.active{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(15,27,45,.09)}
.month-nav{display:flex;align-items:center;justify-content:space-between;margin:2px 0 12px}
.month-nav b{font-size:17px;font-weight:700}
.mn-btn{
  width:34px;height:34px;border-radius:50%;background:var(--card);box-shadow:var(--shadow);
  display:flex;align-items:center;justify-content:center;color:var(--muted);
}
.mn-btn:disabled{opacity:.35}
.mn-btn svg{width:16px;height:16px}
.day-group{margin-bottom:16px}
.day-head{
  display:flex;justify-content:space-between;align-items:center;
  font-size:12px;color:var(--muted);padding:4px 6px 8px;
}
.day-head b{color:var(--ink);font-weight:600}

/* money view */
.money-sec{display:flex;gap:10px;margin-bottom:14px}
.money-box{flex:1;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:13px 15px}
.money-box label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.money-box b{font-size:17px;font-variant-numeric:tabular-nums}
.money-box b.debt{color:var(--orange)}
.money-box b.pay{color:var(--indigo)}

/* inventory */
.search-box{position:relative;margin-bottom:12px}
.search-box .text-input{padding-left:40px}
.search-box .si{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--muted);
}
.inv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.inv-card{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:14px;text-align:left;width:100%}
.inv-card .ic-top{display:flex;align-items:center;justify-content:space-between}
.inv-card .ic-name{font-size:14.5px;font-weight:700}
.inv-card .ic-stock{margin-top:8px;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.inv-card .ic-stock small{font-size:12px;color:var(--muted);font-weight:500}
.inv-card .ic-meta{margin-top:4px;font-size:11px;color:var(--muted)}
.inv-card .ic-warn{margin-top:8px;font-size:10.5px;color:#C2410C;background:rgba(249,115,22,.12);border-radius:99px;padding:3px 8px;display:inline-block;font-weight:700}
.inv-card .ic-val{margin-top:8px;font-size:12px;color:var(--indigo-deep);font-weight:600;font-variant-numeric:tabular-nums}

/* report */
.chart-summary{display:flex;gap:10px;margin:4px 0 14px}
.cstat{flex:1;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px}
.cstat label{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.cstat b{font-size:16px;font-variant-numeric:tabular-nums}
.cstat b.profit{color:var(--green)}
.cstat b.debt{color:var(--orange)}
.year-stat{display:flex;gap:10px;margin-bottom:14px}
.year-stat .big{
  flex:1.35;background:linear-gradient(135deg,#141B4D,#312E81 60%,#4F46E5);
  color:#fff;border-radius:20px;padding:16px 18px;box-shadow:0 12px 26px rgba(49,46,129,.3);
}
.year-stat .big label{display:block;font-size:11.5px;opacity:.75;margin-bottom:5px}
.year-stat .big b{font-size:24px;font-variant-numeric:tabular-nums}
.year-stat .stack{flex:1;display:flex;flex-direction:column;gap:10px}
.year-stat .stack .cstat{flex:1;display:flex;flex-direction:column;justify-content:center;padding:10px 14px}
.bars-wrap{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 12px 12px}
.legend{display:flex;gap:18px;justify-content:center;font-size:12px;color:var(--muted);margin-bottom:14px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
.legend .l-profit{background:var(--green)}
.legend .l-sales{background:var(--indigo)}
.bars{display:flex;align-items:flex-end;gap:6px;height:150px}
.bgroup{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.binner{display:flex;gap:3px;align-items:flex-end;height:118px;width:100%;justify-content:center}
.b-bar{width:9px;border-radius:4px 4px 2px 2px;transition:height .45s ease}
.b-bar.profit{background:linear-gradient(180deg,#34D399,#059669)}
.b-bar.sales{background:linear-gradient(180deg,#A5B4FC,#4F46E5)}
.blabel{font-size:9.5px;color:var(--muted)}
.ch-grid{display:flex;gap:8px;margin:4px 0 14px}
.ch-cell{
  flex:1;background:var(--card);border-radius:15px;box-shadow:var(--shadow);
  padding:10px 4px;text-align:center;
}
.ch-cell .ce{font-size:15px}
.ch-cell label{display:block;font-size:9.5px;color:var(--muted);margin:3px 0 2px}
.ch-cell b{font-size:12px;font-variant-numeric:tabular-nums}
.rank-head{display:flex;justify-content:space-between;align-items:baseline;padding:16px 18px 8px}
.rank-head b{font-size:16px}
.rank-head span{font-size:12px;color:var(--muted)}
.rank-row{display:flex;align-items:center;gap:12px;padding:12px 18px}
.rank-row + .rank-row{border-top:1px solid #F1F4F9}
.rank-name{flex:1.1;font-size:14px;font-weight:600}
.rank-bar{flex:2;height:7px;border-radius:99px;background:#EAF0F6;overflow:hidden}
.rank-bar i{display:block;height:100%;border-radius:99px}
.rank-amt{flex:1;text-align:right;font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums}
.rank-amt.debt{color:var(--orange)}

/* me */
.me-head{display:flex;align-items:center;gap:14px;padding:6px 4px 4px}
.avatar{
  width:58px;height:58px;border-radius:50%;
  background:linear-gradient(145deg,#38BDF8,#4F46E5 60%,#312E81);
  color:#fff;font-size:22px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 22px rgba(79,70,229,.35);
}
.me-name{font-size:19px;font-weight:700;margin:0 0 3px}
.me-sub{font-size:12px;color:var(--muted)}
.row{
  display:flex;align-items:center;gap:13px;
  padding:15px 18px;background:var(--card);
}
.row + .row{border-top:1px solid #F1F4F9}
.row:first-child{border-radius:18px 18px 0 0}
.row:last-child{border-radius:0 0 18px 18px}
.row-ico{
  width:36px;height:36px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;
}
.row-main{flex:1;min-width:0}
.row-title{font-size:14.5px;font-weight:600}
.row-sub{font-size:11.5px;color:var(--muted);margin-top:2px}
.row-end{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}
.row-end .ok{color:var(--green);font-weight:700;font-size:12.5px}
.row-end .warn{color:var(--orange);font-weight:700;font-size:12.5px}
.row-end svg{width:15px;height:15px}
.group{border-radius:18px;box-shadow:var(--shadow);overflow:hidden;background:var(--card)}
.btn-primary{
  display:block;width:100%;text-align:center;
  background:linear-gradient(135deg,#6366F1,#4F46E5 60%,#3730A3);
  color:#fff;font-size:16px;font-weight:700;
  padding:16px;border-radius:18px;box-shadow:0 12px 26px rgba(79,70,229,.35);
  transition:transform .15s, opacity .2s;
}
.btn-primary:active{transform:scale(.97)}
.btn-primary:disabled{opacity:.5;box-shadow:none}
.btn-ghost{
  display:block;width:100%;text-align:center;
  background:var(--card);color:var(--ink);font-size:15px;font-weight:600;
  padding:15px;border-radius:18px;box-shadow:var(--shadow);
}
.btn-ghost.danger{color:var(--red)}

/* sheets */
.backdrop{
  position:absolute;inset:0;z-index:60;background:rgba(10,18,32,.42);
  opacity:0;pointer-events:none;transition:opacity .25s;
}
.backdrop.show{opacity:1;pointer-events:auto}
.sheet{
  position:absolute;left:0;right:0;bottom:0;z-index:61;
  background:var(--card);border-radius:28px 28px 0 0;
  transform:translateY(105%);transition:transform .34s cubic-bezier(.32,.72,.22,1);
  max-height:94%;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:6px 20px calc(26px + var(--safe-b));
}
.sheet.open{transform:translateY(0)}
.handle{width:40px;height:5px;border-radius:3px;background:#D5DDE8;margin:8px auto 10px}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.sheet-head h3{margin:0;font-size:18px;font-weight:700}
.sheet-x{
  width:34px;height:34px;border-radius:50%;background:#EFF3F8;color:var(--muted);
  display:flex;align-items:center;justify-content:center;
}
.sheet-x svg{width:15px;height:15px}

/* forms */
.form-row{margin:11px 0}
.form-label{display:block;font-size:12px;color:var(--muted);margin-bottom:7px;font-weight:600}
.text-input{
  width:100%;border:1.5px solid var(--line);border-radius:13px;padding:12px 14px;
  font-size:15px;background:#FBFCFE;outline:none;transition:border .2s;
}
.text-input:focus{border-color:var(--indigo)}
.row2{display:flex;gap:10px}
.row2 > *{flex:1}
.suggest{
  background:var(--card);border:1.5px solid var(--line);border-radius:13px;
  margin-top:6px;overflow:hidden;box-shadow:0 8px 22px rgba(15,27,45,.10);
}
.suggest-item{
  display:flex;align-items:center;gap:9px;width:100%;text-align:left;
  padding:11px 13px;font-size:13.5px;font-weight:600;
}
.suggest-item + .suggest-item{border-top:1px solid #F1F4F9}
.suggest-item:active{background:#F3F5FA}
.suggest-item .si-sub{margin-left:auto;font-size:11px;color:var(--muted);font-weight:500}
.chip-row{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}
.chip-mini{
  font-size:12px;font-weight:700;color:var(--indigo-deep);
  background:rgba(79,70,229,.08);padding:7px 12px;border-radius:99px;
}
.chip-mini:active{background:rgba(79,70,229,.16)}
.src-chips{display:flex;gap:8px}
.src-chip{
  flex:1;text-align:center;padding:10px 0;border-radius:12px;font-size:13px;font-weight:600;
  background:#F0F3F8;color:var(--muted);border:2px solid transparent;transition:all .15s;
}
.src-chip.sel{background:rgba(16,185,129,.10);color:#047857;border-color:rgba(16,185,129,.45)}
.src-chip.sel-debt{background:rgba(249,115,22,.12);color:#C2410C;border-color:rgba(249,115,22,.5)}
.src-chip.sel-part{background:rgba(245,158,11,.13);color:#B45309;border-color:rgba(245,158,11,.5)}
.src-chip.sel-ch{background:rgba(79,70,229,.10);color:var(--indigo-deep);border-color:rgba(79,70,229,.5)}
.calc-box{
  background:#F3F5FA;border-radius:16px;padding:14px;margin:12px 0;
  display:flex;flex-wrap:wrap;gap:10px 0;
}
.calc-item{flex:1;min-width:33%;text-align:center}
.calc-item label{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.calc-item b{font-size:16px;font-variant-numeric:tabular-nums}
.calc-item b.inc{color:var(--green)}
.calc-item b.cost{color:var(--muted)}
.calc-item b.pct{font-size:14px;color:var(--indigo)}

/* sale lines */
.line-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:6px;margin-bottom:8px}
.line-grid .lg-input{
  width:100%;min-width:0;border:1.5px solid var(--line);border-radius:10px;
  padding:9px 8px;font-size:13px;background:#FBFCFE;outline:none;
}
.line-grid .lg-input:focus{border-color:var(--indigo)}
.line-grid .lg-remove{
  grid-column:1 / -1;justify-self:end;color:var(--red);font-size:12px;font-weight:600;padding:4px 6px;
}
.line-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.line-head span{font-size:12px;color:var(--muted);font-weight:600}
.add-line-btn{
  font-size:12.5px;font-weight:700;color:var(--indigo);
  background:rgba(79,70,229,.08);padding:9px 14px;border-radius:99px;display:inline-block;
}
.line-sub{font-size:11px;color:var(--muted);margin:2px 0 10px}
.line-price-calc{font-size:11px;color:var(--indigo-deep);font-weight:600}

/* act sheet */
.act-opt{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;
  background:#F7F9FC;border-radius:16px;padding:15px;margin-bottom:9px;transition:background .15s;
}
.act-opt:active{background:#EDF1F7}
.act-opt .ao-ico{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.act-opt .ao-title{font-size:15px;font-weight:700}
.act-opt .ao-sub{font-size:11.5px;color:var(--muted);margin-top:2px}

/* detail */
.det-hero{background:linear-gradient(135deg,#141B4D,#312E81 60%,#4F46E5);color:#fff;border-radius:22px;padding:18px;margin-bottom:14px}
.det-hero .dh-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;opacity:.8}
.det-hero .dh-amt{font-size:28px;font-weight:700;margin-top:8px;font-variant-numeric:tabular-nums}
.det-hero .dh-profit{font-size:13px;margin-top:6px;opacity:.9}
.det-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}
.det-cell{background:#F7F9FC;border-radius:13px;padding:11px 13px}
.det-cell label{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.det-cell b{font-size:14.5px;font-variant-numeric:tabular-nums}
.det-lines{background:#F7F9FC;border-radius:13px;padding:6px 13px;margin-bottom:14px}
.det-line{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #E9EEF5;font-size:13px}
.det-line:last-child{border-bottom:0}
.det-line .dl-name{flex:1}
.det-line .dl-amt{font-variant-numeric:tabular-nums;color:var(--muted)}

/* manage sheets */
.item-cell{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid #F1F4F9}
.item-cell:last-child{border-bottom:0}
.item-cell .ii{width:36px;height:36px;border-radius:11px;background:#EEF0F7;display:flex;align-items:center;justify-content:center;font-size:17px;flex:none}
.item-cell .in{flex:1;font-size:13.5px;font-weight:600}
.item-cell .ic{font-size:12px;color:var(--muted);text-align:right}
.add-line{display:flex;gap:8px;margin-top:12px}
.add-line .text-input{flex:1}
.add-line .mini-btn{flex:none}

/* sync */
.sync-hero{
  background:linear-gradient(135deg,#141B4D,#312E81 60%,#4F46E5);color:#fff;
  border-radius:20px;padding:18px;text-align:center;margin-bottom:14px;
}
.sync-hero .st{font-size:12px;opacity:.8;margin-bottom:6px}
.sync-hero .sv{font-size:20px;font-weight:700}
.sync-key{
  font-size:12px;background:#F0F3F8;border-radius:10px;padding:10px 12px;
  word-break:break-all;margin:8px 0;font-family:ui-monospace,Consolas,monospace;
}

/* toast */
.toast{
  position:absolute;left:50%;bottom:calc(104px + var(--safe-b));z-index:90;
  transform:translateX(-50%) translateY(16px);
  background:rgba(15,27,45,.92);color:#fff;font-size:13.5px;font-weight:600;
  padding:11px 20px;border-radius:99px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;
  max-width:86%;overflow:hidden;text-overflow:ellipsis;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
}
