/* 水湧行銷 廣告儲值專戶 — 水波主題 */
:root{
  --cyan:#2BC7E9; --blue:#1E7BE6; --deep:#0E4DA4; --ink:#123;
  --sub:#5b7186; --line:#d9e8f2; --bg:#f2f9fd; --card:#ffffff;
  --ok:#0e9f6e; --warn:#d03050; --amber:#c8811a;
  --grad:linear-gradient(135deg,#2BC7E9 0%,#1E7BE6 55%,#0E4DA4 100%);
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:"Microsoft JhengHei","PingFang TC","Noto Sans TC",sans-serif;
  background:var(--bg);color:var(--ink);font-size:15px;line-height:1.7;
  min-height:100vh;
}
a{color:var(--blue)}

/* ---------- 頂部水波 header ---------- */
.hero{
  position:relative;background:var(--grad);color:#fff;
  padding:26px 24px 64px;overflow:hidden;
}
.hero .inner{max-width:1060px;margin:0 auto;position:relative;z-index:2;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.hero h1{font-size:21px;letter-spacing:1px;font-weight:700}
.hero .sub{font-size:12.5px;opacity:.85;letter-spacing:2px;margin-top:2px}
.hero .btn-ghost{
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.55);color:#fff;
  border-radius:20px;padding:5px 18px;font-size:13px;cursor:pointer;
}
.hero .btn-ghost:hover{background:rgba(255,255,255,.28)}
/* 兩層流動波浪 */
.waves{position:absolute;left:0;right:0;bottom:-2px;height:56px;z-index:1;pointer-events:none}
.waves svg{position:absolute;bottom:0;left:0;width:200%;height:100%;
  animation:drift 14s linear infinite}
.waves svg.w2{opacity:.5;animation-duration:9s;animation-direction:reverse;height:70%}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 背景氣泡（登入頁） */
.bubbles span{
  position:absolute;bottom:-60px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);
  animation:rise linear infinite;
}
@keyframes rise{to{transform:translateY(-110vh)}}

/* ---------- 版面 ---------- */
.wrap{max-width:1060px;margin:-34px auto 40px;padding:0 20px;position:relative;z-index:3}
.grid{display:grid;gap:16px}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.g3,.g4{grid-template-columns:1fr 1fr}}

.card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:18px 22px;box-shadow:0 3px 14px rgba(30,123,230,.07);
}
.card h2{font-size:15.5px;color:var(--deep);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.card h2::before{content:"";width:5px;height:18px;border-radius:3px;background:var(--grad)}

/* 餘額主卡 */
.balance-card{
  background:var(--grad);color:#fff;border:none;position:relative;overflow:hidden;
}
.balance-card::after{
  content:"";position:absolute;right:-40px;top:-70px;width:220px;height:220px;border-radius:50%;
  background:rgba(255,255,255,.10);
}
.balance-card .label{font-size:13px;opacity:.85;letter-spacing:2px}
.balance-card .amount{font-size:40px;font-weight:800;letter-spacing:1px;line-height:1.25}
.balance-card .meta{font-size:12.5px;opacity:.9;margin-top:6px}
.balance-card .meta b{font-size:15px}

.stat .label{font-size:12.5px;color:var(--sub);letter-spacing:1px}
.stat .val{font-size:22px;font-weight:700;color:var(--deep);margin-top:2px}
.stat .hint{font-size:11.5px;color:var(--sub)}

/* 表格 */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{background:#eef6fc;color:var(--deep);text-align:left;padding:8px 10px;font-weight:600;white-space:nowrap}
td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tr:hover td{background:#f7fbfe}
td.r,th.r{text-align:right}
.badge{display:inline-block;border-radius:12px;font-size:11.5px;padding:0 9px;font-weight:600}
.badge.ok{background:#e3f6ee;color:var(--ok)}
.badge.void{background:#fbe9ed;color:var(--warn)}
.badge.api{background:#e6f2fd;color:var(--blue)}
.badge.manual{background:#fdf3e3;color:var(--amber)}

/* 表單 */
.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}
.field{display:flex;flex-direction:column;gap:3px}
.field label{font-size:12px;color:var(--sub)}
input,select{
  border:1.5px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px;
  font-family:inherit;background:#fff;color:var(--ink);min-width:120px;
}
input:focus,select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(43,199,233,.18)}
.btn{
  background:var(--grad);color:#fff;border:none;border-radius:8px;padding:8px 22px;
  font-size:14px;font-weight:600;cursor:pointer;letter-spacing:1px;
}
.btn:hover{filter:brightness(1.08)}
.btn.sm{padding:3px 12px;font-size:12.5px;border-radius:6px}
.btn.danger{background:#fbe9ed;color:var(--warn)}
.btn.plain{background:#eef6fc;color:var(--deep)}

/* 分頁籤 */
.tabs{display:flex;gap:6px;margin:0 0 16px;flex-wrap:wrap}
.tabs button{
  border:1.5px solid var(--line);background:#fff;border-radius:20px;padding:6px 20px;
  font-size:13.5px;cursor:pointer;color:var(--sub);font-family:inherit;
}
.tabs button.on{background:var(--grad);color:#fff;border-color:transparent;font-weight:600}

/* 長條圖 */
.chart{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:8px}
.chart .bar{
  flex:1;background:linear-gradient(180deg,#2BC7E9,#1E7BE6);border-radius:5px 5px 0 0;
  min-height:3px;position:relative;
}
.chart .bar span{
  position:absolute;top:-19px;left:50%;transform:translateX(-50%);
  font-size:10px;color:var(--sub);white-space:nowrap;
}
.chart-x{display:flex;gap:6px;margin-top:4px}
.chart-x div{flex:1;text-align:center;font-size:10px;color:var(--sub);white-space:nowrap;overflow:hidden}

.note{font-size:12.5px;color:var(--sub)}
.empty{color:var(--sub);text-align:center;padding:22px 0;font-size:13.5px}
.msg{font-size:13px;margin-top:6px;min-height:18px}
.msg.err{color:var(--warn)} .msg.ok{color:var(--ok)}
footer{max-width:1060px;margin:30px auto 26px;padding:0 20px;color:var(--sub);font-size:12px;text-align:center}
.mt{margin-top:16px}
.scroll{overflow-x:auto}
