:root{
  --bg:#0f1115;--list-bg:#1a1e23;--card-bg:#181b20;
  --text:#e6eef6;--muted:#9da3aa;--accent:#4aa3ff;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC";
  background:var(--bg);color:var(--text);}
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:10px 16px;background:#121417;border-bottom:1px solid #222;}
.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;
  padding:6px 10px;margin-left:6px;cursor:pointer;}
.viewport{height:calc(100vh - 50px);padding:14px;}
.board{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;}
.list{background:var(--list-bg);border-radius:12px;
  min-width:calc(100% - 50px);scroll-snap-align:start;padding:12px;}
@media(min-width:768px){.list{min-width:320px;}}
.list-header{display:flex;justify-content:space-between;align-items:center;}
.list-title{font-size:18px;font-weight:700;outline:none;}
.cards{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
.card{display:flex;align-items:center;justify-content:space-between;
  background:var(--card-bg);border-radius:8px;padding:6px 10px;
  font-size:14px;position:relative;border:1px solid rgba(255,255,255,0.05);}
.card.empty{background:#2a2d33;border:1px dashed #444;}
.card-left{display:flex;align-items:center;gap:6px;flex:1;overflow:hidden;}
.icons{position:relative;width:28px;height:20px;}
.icons span{position:absolute;transition:opacity .2s;}
.icons .inactive{opacity:.3;}
.icons .active{opacity:1;}
.icons .back{left:8px;z-index:1;}
.icons .front{z-index:2;}
.card-date{width:46px;font-size:13px;color:#aaa;text-align:right;}
.card-tag{font-size:12px;color:#fff;border-radius:4px;padding:2px 6px;}
.card-title{flex:1;overflow:hidden;text-overflow:ellipsis;margin-left:4px;}
.card-right{display:flex;align-items:center;gap:4px;}
.card-amount{width:70px;background:transparent;border:none;color:var(--accent);
  font-weight:700;font-size:15px;text-align:right;outline:none;}
.trash{position:fixed;top:0;left:50%;transform:translateX(-50%);
  width:80px;height:80px;background:#a00;color:#fff;display:flex;
  align-items:center;justify-content:center;border-radius:50%;
  opacity:0.9;z-index:9999;}
.hidden{display:none;}
.modal{position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(0,0,0,0.6);display:flex;align-items:center;
  justify-content:center;z-index:2000;}
.modal-content{background:#222;padding:20px;border-radius:8px;width:80%;max-width:400px;}
