/* 项目深度陪跑 · 公共样式（自包含，无外部依赖）
   双主题：默认跟随系统，可用 <html data-theme="dark|light"> 强制。 */

:root {
  --bg: #f6f7f9;
  --panel: #ffffff;
  --panel-2: #f0f2f5;
  --text: #1d2129;
  --muted: #86909c;
  --border: #e5e6eb;
  --accent: #2f6fd6;
  --accent-soft: rgba(47, 111, 214, .10);
  --warn: #b8860b;
  --warn-soft: rgba(255, 193, 7, .14);
  --danger: #d64545;
  --shadow: 0 1px 3px rgba(0, 0, 0, .06);
  --radius: 10px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #14161a;
    --panel: #1c1f26;
    --panel-2: #22262e;
    --text: #e6e8eb;
    --muted: #9aa3ae;
    --border: #2c313a;
    --accent: #6ea8fe;
    --accent-soft: rgba(110, 168, 254, .12);
    --warn: #ffd86b;
    --warn-soft: rgba(255, 193, 7, .10);
    --danger: #ff8a8a;
    --shadow: none;
  }
}

html[data-theme="light"] {
  --bg: #f6f7f9; --panel: #ffffff; --panel-2: #f0f2f5; --text: #1d2129;
  --muted: #86909c; --border: #e5e6eb; --accent: #2f6fd6;
  --accent-soft: rgba(47,111,214,.10); --warn: #b8860b;
  --warn-soft: rgba(255,193,7,.14); --danger: #d64545;
  --shadow: 0 1px 3px rgba(0,0,0,.06);
}
html[data-theme="dark"] {
  --bg: #14161a; --panel: #1c1f26; --panel-2: #22262e; --text: #e6e8eb;
  --muted: #9aa3ae; --border: #2c313a; --accent: #6ea8fe;
  --accent-soft: rgba(110,168,254,.12); --warn: #ffd86b;
  --warn-soft: rgba(255,193,7,.10); --danger: #ff8a8a; --shadow: none;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei",
               "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.6;
}

a { color: var(--accent); }

header {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: .7rem 1.2rem;
  border-bottom: 1px solid var(--border);
  background: var(--panel);
}
header .htitles { display: flex; flex-direction: column; min-width: 0; }
header h1 { margin: 0; font-size: 1.05rem; font-weight: 600; }
header .sub { font-size: .76rem; color: var(--muted); }
.nav { display: flex; gap: .4rem; flex-wrap: wrap; }
.nav a {
  font-size: .82rem; padding: .3rem .7rem; border-radius: 6px;
  text-decoration: none; color: var(--text); border: 1px solid transparent;
}
.nav a:hover { background: var(--panel-2); }
.nav a.on { background: var(--accent-soft); color: var(--accent); border-color: var(--accent); }
.userbar { margin-left: auto; display: flex; align-items: center; gap: .5rem; font-size: .82rem; }
.uavatar { opacity: .7; }
.uname { color: var(--muted); max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

button, .btn {
  font: inherit; font-size: .85rem; cursor: pointer;
  padding: .42rem .9rem; border-radius: 8px;
  border: 1px solid var(--accent); background: var(--accent); color: #fff;
  transition: .15s;
}
button:hover:not(:disabled) { filter: brightness(1.08); }
button:disabled { opacity: .55; cursor: not-allowed; }
.btn-dl, .btn-logout {
  background: transparent; color: var(--text); border-color: var(--border);
}
.btn-dl:hover, .btn-logout:hover { background: var(--panel-2); filter: none; }
.btn-sm { font-size: .75rem; padding: .3rem .6rem; }
.btn-danger { background: transparent; color: var(--danger); border-color: var(--border); }

input[type=text], input[type=email], input[type=password], textarea, select {
  font: inherit; font-size: .88rem; color: var(--text);
  background: var(--bg); border: 1px solid var(--border);
  border-radius: 8px; padding: .5rem .7rem; width: 100%;
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--accent); }

.page { max-width: 900px; margin: 0 auto; padding: 2rem 1.2rem; }
.ptitle { font-size: 1.25rem; margin: 0 0 .4rem; }
.psub { color: var(--muted); font-size: .9rem; margin: 0 0 1.2rem; }
.card {
  background: var(--panel); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.1rem 1.2rem; box-shadow: var(--shadow);
}

/* ===== 登录 / 注册弹窗 ===== */
.mask {
  position: fixed; inset: 0; background: rgba(0, 0, 0, .48);
  display: none; align-items: center; justify-content: center; z-index: 60;
}
.mask.show { display: flex; }
.modal {
  width: min(400px, 92vw); background: var(--panel);
  border: 1px solid var(--border); border-radius: 12px; padding: 1.3rem;
}
.modal h3 { margin: 0 0 1rem; font-size: 1.05rem; }
.modal .row { margin-bottom: .8rem; }
.modal label { display: block; font-size: .78rem; color: var(--muted); margin-bottom: .3rem; }
.modal .err { color: var(--danger); font-size: .78rem; min-height: 1.1rem; }
.modal .acts { display: flex; gap: .6rem; justify-content: flex-end; margin-top: .5rem; }
.modal .switch { font-size: .78rem; color: var(--muted); margin-top: .6rem; text-align: center; }
.modal .switch a { cursor: pointer; }

/* ===== 报告全屏 ===== */
.report-fs {
  position: fixed !important; inset: 0 !important; z-index: 80;
  width: 100vw !important; height: 100vh !important;
  border: none !important; border-radius: 0 !important; background: var(--panel);
}

footer.site {
  text-align: center; color: var(--muted); font-size: .75rem;
  padding: 1.4rem 1rem 2rem;
}
