/* ============================================================
   J&B 野球魂 — Main Stylesheet
   ============================================================ */
:root{
  --red:#C8102E; --red-dark:#a00d24; --red-light:#fff0f2;
  --navy:#003087; --navy-dark:#002060;
  --dark:#0f172a; --dark2:#1e293b;
  --gray:#64748b; --gray-light:#94a3b8;
  --bg:#f1f5f9; --border:#e2e8f0; --white:#fff;
  --shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);
  --shadow:0 4px 16px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.05);
  --shadow-lg:0 10px 40px rgba(0,0,0,.12),0 4px 12px rgba(0,0,0,.08);
  --radius:10px; --radius-lg:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Microsoft JhengHei','Noto Sans TC',Arial,sans-serif;background:var(--bg);color:#1e293b;line-height:1.65}
a{color:var(--red);text-decoration:none;transition:color .2s}
a:hover{color:var(--red-dark)}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
img{max-width:100%}

/* ── HEADER ── */
.site-header{
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%);
  color:#fff;position:sticky;top:0;z-index:100;
  box-shadow:0 2px 20px rgba(0,0,0,.4);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:8px;min-width:0}
.site-logo{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;min-width:0;flex-shrink:1}
.site-logo-img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 0 6px rgba(255,255,255,.25));flex-shrink:0}
.site-logo span{font-size:17px;font-weight:800;letter-spacing:.5px;background:linear-gradient(90deg,#fff,#ccd6f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-logo:hover{opacity:.9}
.header-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;flex-shrink:0}
.greeting{color:rgba(255,255,255,.55);font-size:12px;margin-right:2px}
.main-nav{display:flex;gap:2px;border-top:1px solid rgba(255,255,255,.08);padding:3px 0}
.main-nav a{
  color:rgba(255,255,255,.65);padding:7px 13px;border-radius:7px;
  font-size:13px;font-weight:500;transition:all .2s;
  display:flex;align-items:center;gap:5px;
}
.main-nav a:hover{color:#fff;background:rgba(255,255,255,.1)}
.main-nav a.active{color:#fff;background:var(--red)}

/* ── BUTTONS ── */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 18px;border-radius:8px;font-size:13px;
  font-weight:600;cursor:pointer;border:none;
  transition:all .18s;text-decoration:none;
  white-space:nowrap;font-family:inherit;line-height:1;
}
.btn-sm{padding:5px 12px;font-size:12px;border-radius:6px}
.btn-primary{background:var(--red);color:#fff;box-shadow:0 2px 8px rgba(200,16,46,.3)}
.btn-primary:hover{background:var(--red-dark);color:#fff;box-shadow:0 4px 14px rgba(200,16,46,.4);transform:translateY(-1px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-dark);color:#fff;transform:translateY(-1px)}
.btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,.35);color:#fff}
.btn-outline:hover{background:rgba(255,255,255,.12);color:#fff}
.btn-gray{background:#f1f5f9;color:#475569;border:1.5px solid var(--border)}
.btn-gray:hover{background:#e2e8f0;color:#1e293b}
.btn-danger{background:#ef4444;color:#fff;box-shadow:0 2px 8px rgba(239,68,68,.25)}
.btn-danger:hover{background:#dc2626;color:#fff;transform:translateY(-1px)}
.btn-success{background:#10b981;color:#fff;box-shadow:0 2px 8px rgba(16,185,129,.25)}
.btn-success:hover{background:#059669;color:#fff;transform:translateY(-1px)}
.btn-warning{background:#f59e0b;color:#fff}
.btn-warning:hover{background:#d97706;color:#fff}
.btn-full{width:100%;justify-content:center;padding:12px;font-size:15px}
.btn-danger-soft{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}
.btn-danger-soft:hover{background:#fecaca;color:#b91c1c}

/* ── MAIN ── */
.site-main{min-height:calc(100vh - 200px);padding:28px 0}

/* ── PAGE HEADER ── */
.page-header{
  background:linear-gradient(135deg,#0f172a 0%,#1a2e4a 55%,#1e1a2e 100%);
  color:#fff;padding:32px 0;margin-bottom:28px;
  position:relative;overflow:hidden;
}
/* 草地條紋 */
.page-header::before{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,transparent,transparent 60px,rgba(255,255,255,.013) 60px,rgba(255,255,255,.013) 61px);
  pointer-events:none;
}
/* 右側大棒球形狀 */
.page-header::after{
  content:'';position:absolute;
  right:-80px;top:50%;transform:translateY(-50%);
  width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle at 38% 38%,rgba(255,255,255,.09) 0%,rgba(255,255,255,.04) 50%,transparent 70%);
  border:2px solid rgba(255,255,255,.05);
  pointer-events:none;
}
.page-header h1{font-size:24px;font-weight:800;display:flex;align-items:center;gap:10px}
.page-header h1 i{color:var(--red)}
.page-header p{opacity:.65;margin-top:6px;font-size:14px}

/* ── CARD ── */
.card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(0,0,0,.04)}
.card-header{
  padding:16px 22px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(to right,#fafbfc,#fff);
}
.card-header h3{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.card-header h3 i{color:var(--red)}
.card-body{padding:22px}

/* ── FORMS ── */
.auth-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 60%,#c8102e20 100%);
  padding:20px;
}
.auth-box{
  background:#fff;border-radius:20px;padding:40px;
  width:100%;max-width:440px;
  box-shadow:0 24px 64px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.1);
}
.auth-logo{text-align:center;margin-bottom:28px}
.auth-logo img{display:block;margin:0 auto 10px}
.auth-logo h2{font-size:22px;font-weight:800;color:var(--dark);margin-bottom:4px}
.auth-logo p{color:var(--gray);font-size:14px}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:#374151}
.form-group label .req{color:var(--red)}
.form-control{
  width:100%;padding:10px 14px;
  border:1.5px solid var(--border);border-radius:8px;
  font-size:14px;transition:all .2s;font-family:inherit;
  background:#fff;color:#1e293b;
}
.form-control:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.1)}
textarea.form-control{resize:vertical;min-height:100px}
select.form-control{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;
}
.form-hint{font-size:11px;color:var(--gray-light);margin-top:5px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.auth-footer{text-align:center;margin-top:22px;font-size:13px;color:var(--gray)}

/* ── ALERTS ── */
.alert{padding:12px 16px;border-radius:9px;margin-bottom:16px;font-size:14px;display:flex;align-items:center;gap:9px;border-left:4px solid}
.alert-error{background:#fff5f5;border-color:#f87171;color:#b91c1c}
.alert-success{background:#f0fdf4;border-color:#4ade80;color:#166534}
.alert-info{background:#eff6ff;border-color:#60a5fa;color:#1d4ed8}
.alert-warning{background:#fffbeb;border-color:#fbbf24;color:#92400e}

/* ── TABLES ── */
.data-table{width:100%;border-collapse:collapse;font-size:14px}
.data-table th{background:var(--dark);color:#e2e8f0;padding:11px 14px;text-align:left;font-size:12px;font-weight:600;letter-spacing:.4px;white-space:nowrap}
.data-table td{padding:13px 14px;border-bottom:1px solid var(--border);vertical-align:middle;color:#374151}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:#f8fafc}
.data-table .center{text-align:center}

/* ── TEAM CARD ── */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.team-card{
  background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow);overflow:hidden;
  transition:transform .25s,box-shadow .25s;
  border:1px solid rgba(0,0,0,.04);
}
.team-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.team-card-top{
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%);
  padding:22px;display:flex;align-items:center;gap:14px;
  position:relative;overflow:hidden;
}
.team-card-top::after{
  content:'';position:absolute;right:-20px;top:-20px;
  width:100px;height:100px;border-radius:50%;
  background:rgba(200,16,46,.15);pointer-events:none;
}
.team-logo{width:54px;height:54px;border-radius:12px;object-fit:cover;border:2.5px solid rgba(255,255,255,.25);flex-shrink:0;display:block;position:relative;z-index:1}
.team-card-top h3{color:#fff;font-size:16px;font-weight:700;position:relative;z-index:1}
.team-card-top p{color:rgba(255,255,255,.6);font-size:12px;margin-top:3px;position:relative;z-index:1}
.team-card-body{padding:16px 18px}
.team-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.team-stat{text-align:center;background:var(--bg);border-radius:8px;padding:10px 6px}
.team-stat .val{font-size:20px;font-weight:800;color:var(--red);line-height:1}
.team-stat .lbl{font-size:11px;color:var(--gray);margin-top:3px}
.team-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--gray);margin-bottom:10px}
.team-meta span{display:flex;align-items:center;gap:4px}

/* ── BADGES ── */
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:5px;font-size:11px;font-weight:600;letter-spacing:.2px}
.badge-level-A{background:#fef3c7;color:#92400e;border:1.5px solid #fbbf24}
.badge-level-B{background:#dbeafe;color:#1e40af;border:1.5px solid #93c5fd}
.badge-level-community{background:#dcfce7;color:#166534;border:1.5px solid #86efac}
.badge-level-corp{background:#f3e8ff;color:#6b21a8;border:1.5px solid #c4b5fd}
.badge-level-student{background:#ffedd5;color:#9a3412;border:1.5px solid #fdba74}
.badge-level-other{background:#f1f5f9;color:#475569;border:1.5px solid #cbd5e1}
.badge-community{background:#d1fae5;color:#065f46}
.badge-corp{background:#ede9fe;color:#5b21b6}

/* ── RECRUIT ── */
.recruit-list{display:flex;flex-direction:column;gap:10px}
.recruit-item{
  background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  padding:16px 20px;display:flex;align-items:flex-start;gap:16px;
  transition:all .2s;border:1px solid var(--border);
}
.recruit-item:hover{box-shadow:var(--shadow);transform:translateX(4px);border-color:#fecaca}
.recruit-icon{
  width:44px;height:44px;border-radius:10px;
  background:var(--red-light);display:flex;align-items:center;
  justify-content:center;color:var(--red);font-size:18px;flex-shrink:0;
}
.recruit-content{flex:1}
.recruit-content h4{font-size:15px;font-weight:700;margin-bottom:5px}
.recruit-content h4 a{color:#1e293b}
.recruit-content h4 a:hover{color:var(--red)}
.recruit-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--gray)}

/* ── FORUM ── */
.board-list{display:flex;flex-direction:column;gap:8px}
.board-item{
  background:#fff;border-radius:var(--radius-lg);padding:18px 22px;
  display:flex;align-items:center;gap:18px;box-shadow:var(--shadow-sm);
  transition:all .22s;text-decoration:none;color:inherit;
  border:1px solid var(--border);
}
.board-item:hover{background:#fff;color:inherit;transform:translateX(5px);box-shadow:var(--shadow);border-color:#fecaca}
.board-icon{
  width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--red),var(--red-dark));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:20px;flex-shrink:0;box-shadow:0 4px 12px rgba(200,16,46,.3);
}
.board-info{flex:1}
.board-info h4{font-size:15px;font-weight:700;color:#1e293b}
.board-info p{font-size:12px;color:var(--gray);margin-top:3px}
.board-counts{text-align:right;font-size:12px;color:var(--gray)}
.board-counts strong{font-size:16px;color:var(--dark);display:block;font-weight:800}

/* ── TOPIC LIST ── */
.topic-item{
  background:#fff;border-radius:var(--radius);padding:14px 18px;
  display:flex;align-items:center;gap:14px;
  box-shadow:var(--shadow-sm);margin-bottom:6px;
  transition:all .2s;border:1px solid var(--border);
}
.topic-item:hover{box-shadow:var(--shadow);transform:translateX(3px);border-color:#fecaca}
.topic-info{flex:1}
.topic-info a{font-size:14px;font-weight:600;color:#1e293b}
.topic-info a:hover{color:var(--red)}
.topic-meta{font-size:12px;color:var(--gray);margin-top:3px;display:flex;gap:12px}
.topic-stats{text-align:right;font-size:12px;color:var(--gray);min-width:80px}

/* ── SIDEBAR ── */
.layout-2col{display:grid;grid-template-columns:1fr 290px;gap:24px}
.layout-2col>*{min-width:0}
.sidebar .widget{
  background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);margin-bottom:18px;
  overflow:hidden;border:1px solid var(--border);
}
.widget-header{
  background:linear-gradient(135deg,var(--dark),var(--dark2));
  color:#fff;padding:12px 18px;font-size:13px;font-weight:700;
  display:flex;align-items:center;gap:8px;letter-spacing:.3px;
}
.widget-header i{color:var(--red)}
.widget-body{padding:14px 16px}
.widget-list li{list-style:none;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px;display:flex;align-items:center;gap:8px}
.widget-list li:last-child{border-bottom:none}
.widget-list a{color:#374151;font-weight:500}
.widget-list a:hover{color:var(--red)}

/* ── HOME HERO ── */
.hero{
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 60%,#2d1b4e 100%);
  color:#fff;padding:56px 0;margin-bottom:32px;
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;top:0;right:0;bottom:0;
  width:45%;
  background:url('/logo.png') no-repeat center/contain;
  opacity:.04;pointer-events:none;
}
.hero::after{
  content:'';position:absolute;bottom:-60px;left:-60px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,16,46,.2),transparent 70%);
  pointer-events:none;
}
.hero h1{font-size:36px;font-weight:900;margin-bottom:12px;line-height:1.2;position:relative;z-index:1}
.hero h1 span{color:var(--red)}
.hero p{font-size:16px;opacity:.75;margin-bottom:28px;max-width:580px;line-height:1.75;position:relative;z-index:1}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1}
.hero-count{display:flex;gap:16px;margin-top:36px;flex-wrap:wrap;position:relative;z-index:1}
.hero-count-item{
  text-align:center;
  background:rgba(255,255,255,.07);backdrop-filter:blur(10px);
  padding:16px 28px;border-radius:12px;
  border:1px solid rgba(255,255,255,.1);
}
.hero-count-item .n{font-size:32px;font-weight:900;color:var(--red);line-height:1}
.hero-count-item .l{font-size:12px;opacity:.7;margin-top:4px}

/* ── PROFILE ── */
.profile-header{
  background:linear-gradient(135deg,#0f172a,#1e3a5f);
  color:#fff;padding:28px 32px;border-radius:var(--radius-lg);
  display:flex;align-items:center;gap:20px;margin-bottom:24px;flex-wrap:wrap;
}
.profile-grid{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start}
.sidebar-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid var(--border);margin-bottom:16px}
.sidebar-card-header{background:linear-gradient(135deg,var(--dark),var(--dark2));color:#fff;padding:12px 18px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}
.sidebar-card-header i{color:var(--red)}
.sidebar-card-body{padding:12px 14px}
.profile-hero{
  background:linear-gradient(135deg,#0f172a,#1e3a5f);
  color:#fff;padding:32px;border-radius:var(--radius-lg);
  display:flex;align-items:center;gap:20px;margin-bottom:24px;
}
.profile-ava{
  width:76px;height:76px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:34px;border:3px solid rgba(255,255,255,.25);
  overflow:hidden;flex-shrink:0;
}
.profile-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.profile-avatar-large{
  width:90px;height:90px;border-radius:50%;
  background:rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:40px;border:3px solid rgba(255,255,255,.25);
  overflow:hidden;flex-shrink:0;
}
.profile-avatar-large img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.profile-info h2{font-size:20px;font-weight:700}
.profile-info p{opacity:.7;font-size:14px;margin-top:4px}

/* ── PAGINATION ── */
.pagination{display:flex;gap:6px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.pagination a,.pagination span{
  padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;
  background:#fff;box-shadow:var(--shadow-sm);border:1px solid var(--border);
}
.pagination a{color:#475569}
.pagination a:hover{background:var(--red);color:#fff;border-color:var(--red);transform:translateY(-1px)}
.pagination .cur{background:var(--red);color:#fff;border-color:var(--red)}

/* ── TABS ── */
.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:22px}
.tab-btn{
  padding:10px 22px;font-size:14px;font-weight:600;
  cursor:pointer;border:none;background:none;color:var(--gray);
  border-bottom:3px solid transparent;margin-bottom:-2px;
  transition:all .2s;font-family:inherit;
}
.tab-btn.active,.tab-btn:hover{color:var(--red);border-bottom-color:var(--red)}

/* ── RANKING ── */
.rank1{color:#f59e0b;font-size:18px}
.rank2{color:#94a3b8;font-size:16px}
.rank3{color:#cd7f32;font-size:16px}

/* ── MISC ── */
.empty-state{text-align:center;padding:56px;color:var(--gray-light)}
.empty-state i{font-size:52px;opacity:.25;display:block;margin-bottom:14px}
.divider{border:none;border-top:1px solid var(--border);margin:18px 0}
.text-gray{color:var(--gray)}.text-sm{font-size:13px}.text-xs{font-size:12px}
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}
.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}
.flex{display:flex}.items-center{align-items:center}.gap-1{gap:8px}.gap-2{gap:16px}
.justify-between{justify-content:space-between}

/* ── FOOTER ── */
.site-footer{
  background:linear-gradient(135deg,#0f172a,#1e293b);
  color:rgba(255,255,255,.65);
  padding:48px 0 24px;margin-top:56px;
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px}
.footer-grid h4{color:#fff;font-size:14px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.footer-grid h4 i{color:var(--red)}
.footer-grid p{font-size:13px;line-height:1.85;color:rgba(255,255,255,.5)}
.footer-grid li{list-style:none;font-size:13px;margin-bottom:8px}
.footer-grid a{color:rgba(255,255,255,.5);transition:color .2s}
.footer-grid a:hover{color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:20px;text-align:center;
  font-size:12px;color:rgba(255,255,255,.3);
}

/* ── HAMBURGER ── */
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;align-items:center;
  width:38px;height:38px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.2);
  border-radius:8px;cursor:pointer;gap:5px;flex-shrink:0;
}
.nav-toggle span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:all .25s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  .layout-2col{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:24px}
  .hero-count{gap:10px}
  .hero-count-item{padding:12px 18px}
}

@media(max-width:768px){
  /* Header */
  .nav-toggle{display:flex}
  .header-inner{position:relative}
  .main-nav{
    display:none;flex-direction:column;gap:0;
    position:absolute;top:100%;left:0;right:0;
    background:linear-gradient(135deg,#0f172a,#1e3a5f);
    border-top:1px solid rgba(255,255,255,.1);
    padding:8px 0;z-index:200;border-radius:0 0 12px 12px;
    box-shadow:0 8px 24px rgba(0,0,0,.3);
  }
  .main-nav.open{display:flex}
  .main-nav a{padding:11px 20px;border-radius:0;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}
  .main-nav a:last-child{border-bottom:none}
  .main-nav a.active{background:rgba(200,16,46,.3)}
  .site-header .container{position:relative}
  /* Mobile-specific header tweaks */
  .header-actions{gap:4px}
  .nav-toggle{flex-shrink:0}
  .site-logo{flex:1;min-width:0}
  .site-logo span{max-width:120px}
  .header-actions .btn-outline{display:inline-flex;padding:6px 8px}
  .header-actions .btn-primary{padding:6px 8px}
  .header-actions .btn-admin-link{padding:6px 8px}

  /* Page header */
  .page-header{padding:22px 0;margin-bottom:20px}
  .page-header h1{font-size:20px}
  .page-header p{font-size:13px}
  /* 讓 page-header 左側內容填滿整行，按鈕不留空白 */
  .page-header .container>div:first-child{flex:1;min-width:0}

  /* Hero */
  .hero{padding:36px 0}
  .hero h1{font-size:26px}
  .hero p{font-size:14px;margin-bottom:20px}
  .hero-count{gap:8px}
  .hero-count-item{padding:10px 14px}
  .hero-count-item .n{font-size:24px}

  /* Cards */
  .card-body{padding:16px}
  .card-header{padding:12px 16px}

  /* Layout */
  .layout-2col{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .form-row-3{grid-template-columns:1fr !important}
  .team-grid{grid-template-columns:1fr}

  /* Tables: make them scrollable */
  .data-table-wrap,.data-table{overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* Footer */
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .site-footer{padding:32px 0 20px}

  /* Profile */
  .profile-hero{flex-direction:column;text-align:center;padding:22px}
  .profile-header{flex-direction:column;text-align:center;padding:20px}
  .profile-grid{grid-template-columns:1fr}

  /* Auth box */
  .auth-box{padding:28px 20px}

  /* Recruit/Board items */
  .recruit-item{flex-wrap:wrap}
  .board-counts{min-width:auto}

  /* Tactics canvas */
  #tacticsCanvas{width:100% !important}
}

/* ── 640px：手機通用補強（放在 480px 之前，讓 480px 可以再覆蓋）── */
@media(max-width:640px){
  .container{padding:0 14px}
  .page-header{padding:18px 0;margin-bottom:16px}
  .page-header h1{font-size:18px;gap:7px}
  .page-header p{font-size:12px}
  .widget-body{padding:12px}
  .sidebar-card-body{padding:10px 12px}
  .data-table th{padding:9px 10px;font-size:11px}
  .data-table td{padding:10px 10px;font-size:12px}
  .form-row{grid-template-columns:1fr;gap:12px}
  .data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .card-header{padding:12px 14px}
  .card-body{padding:14px}
}

/* ── 手機按鈕最小點擊區（44px）── */
@media(max-width:768px){
  .btn:not(.btn-sm){min-height:44px;touch-action:manipulation}
  .btn-full{min-height:50px}
}

@media(max-width:480px){
  .container{padding:0 12px}
  .btn{padding:7px 14px;font-size:12px}
  .btn-sm{padding:5px 10px;font-size:11px}
  .btn-full{font-size:14px}

  /* Header: hide secondary action buttons */
  .header-actions .btn-primary{font-size:11px;padding:5px 8px}
  .header-actions .btn-primary i+span,.header-actions .btn-primary .btn-text{display:none}

  /* Page header */
  .page-header h1{font-size:18px;gap:7px}
  .page-header p{font-size:12px}

  /* Hero */
  .hero h1{font-size:22px}
  .hero-btns{gap:8px}
  .hero-count{display:grid;grid-template-columns:1fr 1fr;gap:8px}

  /* Cards */
  .card-body{padding:12px}
  .card-header{padding:10px 14px;flex-wrap:wrap;gap:6px}
  .card-header h3{font-size:14px}

  /* Team card */
  .team-card-top{padding:16px}
  .team-card-body{padding:12px 14px}

  /* Stats tables */
  .data-table th,.data-table td{padding:8px 10px;font-size:12px}

  /* Profile hero */
  .profile-hero{padding:18px 14px}
  .profile-avatar-large{width:70px;height:70px;font-size:32px}

  /* Auth */
  .auth-box{padding:22px 16px;border-radius:14px}
  .auth-logo h2{font-size:19px}

  /* Board/Recruit items */
  .board-item{padding:14px 14px;gap:12px}
  .board-icon{width:40px;height:40px;font-size:17px}
  .topic-item{flex-wrap:wrap;gap:8px}
  .topic-stats{min-width:auto;text-align:left}

  /* Pagination */
  .pagination a,.pagination span{padding:6px 10px;font-size:12px}

  /* Footer */
  .site-footer{margin-top:36px}
}

/* Tab nav */
.tab-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:600;color:var(--gray);border-bottom:3px solid transparent;text-decoration:none;transition:.2s}
.tab-btn:hover{color:var(--dark)}
.tab-btn.active{color:var(--red);border-bottom-color:var(--red)}

/* Mid-size: hide button text early so header never wraps */
@media(max-width:1100px){
  .header-actions .btn-text{display:none}
  .header-actions .btn-outline{padding:6px 9px}
  .header-actions .btn-primary{padding:6px 9px}
  .header-actions .btn-admin-link{padding:6px 9px}
  .header-actions .greeting{display:none}
}

/* Desktop: main-nav always horizontal */
@media(min-width:769px){
  .main-nav{display:flex !important;flex-direction:row}
  .nav-toggle{display:none !important}
}
/* LINE login: icon only on small screens (text already hidden by btn-text rule) */
@media(max-width:480px){
  .header-actions a[href*="line=1"]{ padding:6px 10px }
}


/* ================================================================
   DARK MODE  (html[data-theme="dark"])
   ================================================================ */
html[data-theme="dark"]{
  color-scheme:dark;
  /* 覆蓋 CSS 變數，讓所有 var(--xxx) 自動切換 */
  --dark:#e6edf3;
  --dark2:#c9d1d9;
  --gray:#8b949e;
  --gray-light:#6e7681;
  --bg:#010409;
  --border:rgba(255,255,255,.12);
}
html[data-theme="dark"] body{background:#0d1117;color:#c9d1d9}
/* 標題、標籤、段落預設亮色 */
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6{color:#e6edf3}
html[data-theme="dark"] .page-header h1,
html[data-theme="dark"] .page-header h2,
html[data-theme="dark"] .page-header p{color:#fff}
html[data-theme="dark"] label{color:#c9d1d9}
html[data-theme="dark"] p{color:#c9d1d9}
html[data-theme="dark"] small{color:#8b949e}
/* 內文連結用藍色，nav/header 連結不影響 */
html[data-theme="dark"] .card a:not(.btn),
html[data-theme="dark"] .card-body a:not(.btn),
html[data-theme="dark"] .site-main>div a:not(.btn),
html[data-theme="dark"] p a:not(.btn){color:#79c0ff}
html[data-theme="dark"] .card a:not(.btn):hover,
html[data-theme="dark"] .card-body a:not(.btn):hover,
html[data-theme="dark"] .site-main>div a:not(.btn):hover,
html[data-theme="dark"] p a:not(.btn):hover{color:#a5d6ff}
/* Cards */
html[data-theme="dark"] .card{background:#161b22;border-color:rgba(255,255,255,.08);box-shadow:0 4px 16px rgba(0,0,0,.4)}
html[data-theme="dark"] .card-header{background:#1c2433;border-bottom-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .card-header h3{color:#e6edf3}
html[data-theme="dark"] .card-body{color:#c9d1d9}
/* Forms */
html[data-theme="dark"] .form-control{background:#0d1117;border-color:rgba(255,255,255,.18);color:#c9d1d9}
html[data-theme="dark"] .form-control:focus{border-color:var(--red);background:#0d1117}
html[data-theme="dark"] select.form-control option{background:#161b22;color:#c9d1d9}
/* Tables */
html[data-theme="dark"] .data-table th{background:#1c2433;color:#8b949e}
html[data-theme="dark"] .data-table td{color:#c9d1d9;border-bottom-color:rgba(255,255,255,.06)}
html[data-theme="dark"] .data-table tr:hover td{background:rgba(255,255,255,.04)}
/* Buttons */
html[data-theme="dark"] .btn-gray{background:#21262d;color:#c9d1d9;border-color:rgba(255,255,255,.15)}
html[data-theme="dark"] .btn-gray:hover{background:#30363d;color:#e6edf3}
/* Alerts */
html[data-theme="dark"] .alert-error{background:#3d1515;border-color:#f87171;color:#fca5a5}
html[data-theme="dark"] .alert-success{background:#163020;border-color:#4ade80;color:#86efac}
html[data-theme="dark"] .alert-info{background:#0c1a2e;border-color:#60a5fa;color:#93c5fd}
html[data-theme="dark"] .alert-warning{background:#2d1f00;border-color:#fbbf24;color:#fcd34d}
/* Page header */
html[data-theme="dark"] .page-header{background:linear-gradient(135deg,#0d1117,#161b22)}
/* Auth box */
html[data-theme="dark"] .auth-wrap{background:#0d1117}
html[data-theme="dark"] .auth-box{background:#161b22;border-color:rgba(255,255,255,.1)}
/* Misc */
html[data-theme="dark"] .badge-level-A{background:#2d2506;color:#fcd34d;border-color:#854d0e}
html[data-theme="dark"] .badge-level-B{background:#0c1a2e;color:#93c5fd;border-color:#1e40af}
html[data-theme="dark"] hr{border-color:rgba(255,255,255,.08)}
html[data-theme="dark"] input[type="text"],
html[data-theme="dark"] input[type="email"],
html[data-theme="dark"] input[type="password"],
html[data-theme="dark"] input[type="number"],
html[data-theme="dark"] textarea{background:#0d1117;border-color:rgba(255,255,255,.18);color:#c9d1d9}
/* Dark toggle button */
.dark-toggle{background:none;border:1.5px solid rgba(255,255,255,.3);color:rgba(255,255,255,.7);border-radius:8px;padding:5px 9px;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center}
.dark-toggle:hover{border-color:rgba(255,255,255,.6);color:#fff;background:rgba(255,255,255,.1)}

/* ================================================================
   SKELETON LOADING
   ================================================================ */
.skel{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%);background-size:200% 100%;animation:skel-shine 1.4s infinite;border-radius:6px}
@keyframes skel-shine{0%{background-position:200% 0}100%{background-position:-200% 0}}
html[data-theme="dark"] .skel{background:linear-gradient(90deg,#1e293b 25%,#2d3748 50%,#1e293b 75%);background-size:200% 100%}
.skel-text{height:14px;margin-bottom:8px;border-radius:4px}
.skel-text.w80{width:80%}
.skel-text.w60{width:60%}
.skel-text.w40{width:40%}
.skel-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0}
.skel-card{background:#fff;border-radius:12px;padding:16px;border:1px solid var(--border);display:flex;flex-direction:column;gap:10px}
html[data-theme="dark"] .skel-card{background:#161b22;border-color:rgba(255,255,255,.08)}
.skel-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.skel-row:last-child{border-bottom:none}
html[data-theme="dark"] .skel-row{border-color:rgba(255,255,255,.06)}

/* ── DARK MODE 補強修正 ── */
/* 【嚴重】widget-header / sidebar-card-header 用 var(--dark) 做漸層，dark mode 下 --dark 翻成淺色 → 白底白字 */
html[data-theme="dark"] .widget-header,
html[data-theme="dark"] .sidebar-card-header{background:linear-gradient(135deg,#1c2433,#1e2d3d)!important;color:#fff}

/* 元件白底未覆蓋 */
html[data-theme="dark"] .team-card{background:#161b22;border-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .recruit-item{background:#161b22;border-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .board-item{background:#161b22;border-color:rgba(255,255,255,.08);color:#c9d1d9}
html[data-theme="dark"] .board-item:hover{background:#1c2433;border-color:rgba(200,16,46,.6)}
html[data-theme="dark"] .topic-item{background:#161b22;border-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .topic-item:hover{border-color:rgba(200,16,46,.6)}
html[data-theme="dark"] .sidebar .widget{background:#161b22;border-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .sidebar-card{background:#161b22;border-color:rgba(255,255,255,.08)}
html[data-theme="dark"] .widget-body{color:#c9d1d9}
html[data-theme="dark"] .widget-list li{border-bottom-color:rgba(255,255,255,.06)}

/* 連結文字顏色 */
html[data-theme="dark"] .recruit-content h4 a{color:#e6edf3}
html[data-theme="dark"] .recruit-content h4 a:hover{color:var(--red)}
html[data-theme="dark"] .topic-info a{color:#e6edf3}
html[data-theme="dark"] .topic-info a:hover{color:var(--red)}
html[data-theme="dark"] .board-info h4{color:#e6edf3}
html[data-theme="dark"] .widget-list a{color:#c9d1d9}

/* 分頁按鈕 */
html[data-theme="dark"] .pagination a,
html[data-theme="dark"] .pagination span{background:#161b22;border-color:rgba(255,255,255,.12);color:#c9d1d9}
html[data-theme="dark"] .pagination a:hover{background:var(--red);color:#fff;border-color:var(--red)}

/* 表格 hover 亮色背景 */
html[data-theme="dark"] .data-table tr:hover td{background:rgba(255,255,255,.05)!important}

/* Badges 淺色背景 */
html[data-theme="dark"] .badge-level-community{background:#052e16;color:#86efac;border-color:#166534}
html[data-theme="dark"] .badge-level-corp{background:#2e1065;color:#d8b4fe;border-color:#7c3aed}
html[data-theme="dark"] .badge-level-student{background:#431407;color:#fdba74;border-color:#9a3412}
html[data-theme="dark"] .badge-level-other{background:#1e293b;color:#94a3b8;border-color:#475569}
html[data-theme="dark"] .badge-community{background:#052e16;color:#86efac}
html[data-theme="dark"] .badge-corp{background:#2e1065;color:#d8b4fe}

/* btn-danger-soft 淺粉紅 */
html[data-theme="dark"] .btn-danger-soft{background:#3d1515;color:#fca5a5;border-color:#7f1d1d}
html[data-theme="dark"] .btn-danger-soft:hover{background:#4d1f1f;color:#fca5a5}
