/* PINK-THEME-BEGIN v1 全站粉色少女主题（追加在各自样式表末尾，靠层叠顺序生效） */

/* ---------- 设计变量：统一各应用的色板 ---------- */
:root{
  --bg:#fff6fa; --bg2:#ffe8f3;
  --card:#ffffff; --card2:#fffafc;
  --pink:#ff8fab; --pink-deep:#e94f86; --pink-soft:#ffe4ec; --pink-line:#ffd1e0;
  --text:#8c3a5e; --muted:#a05c7c;
  --accent:#e07a96; --accent2:#f0b7c4;
  --brand:#ff7fb8; --brand2:#ff5c8a;
  --amber:#ffb86b;
  --ink:#8c3a5e; --ink2:#a05c7c;
  --line:#ffd9e8; --soft:#fff0f6;
  --good:#31c48d; --danger:#ff5c7a; --warn:#e0a75f;
  --radius:22px;
  --shadow:0 10px 26px rgba(226,116,166,.18);
}

/* ---------- 页面底色：粉色极光 ---------- */
html{background-color:#fff6fa}
body{
  background-color:#fff6fa !important;
  background-image:
    radial-gradient(920px 540px at 8% -12%, rgba(255,158,201,.38), transparent 60%),
    radial-gradient(780px 470px at 94% 2%,  rgba(255,201,221,.42), transparent 58%),
    radial-gradient(830px 500px at 48% 110%,rgba(224,182,255,.34), transparent 62%),
    linear-gradient(170deg,#fff6fa 0%,#ffe8f3 38%,#ffd9ea 68%,#fff0f7 100%) !important;
  background-attachment:fixed !important;
  color:#8c3a5e;
}

/* ---------- 容器：白底 + 粉边 + 大圆角 ---------- */
.panel,.panel-body,.card,.stat-card,.mode-card,.task-card,.login-box,.rand-box,
.item-list,.history-section,.history-list,.modal-content,.container,.img-card,
.filter-bar,.toolbar,.panel-head,.panel-hd,.difficulty-selector,.mode-selection{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(255,158,196,.45);
  border-radius:20px;
  box-shadow:0 10px 26px rgba(226,116,166,.16);
  color:#8c3a5e;
}
.panel-head,.panel-hd,.filter-bar,.toolbar{
  background:linear-gradient(100deg,#ffe4ec,#fff0f6);
  border-bottom:1px solid rgba(255,158,196,.4);
}

/* ---------- 顶栏 / 导航 ---------- */
.topbar,.site-head,.head-nav,.admin-nav,.appbar{
  background:linear-gradient(100deg,#ff8fbe 0%,#ffa8cd 45%,#e9c6ff 100%);
  color:#fff;
}
.topbar a,.site-head a,.head-nav a,.admin-nav a,.topbar .brand,.site-head .brand{color:#fff}

/* ---------- 侧边栏 ---------- */
.sidebar{
  background:rgba(255,255,255,.94);
  border-right:1px solid rgba(255,158,196,.4);
  color:#8c3a5e;
}
.sidebar a{color:#a13d68}
.sidebar a:hover,.sidebar a.on,.sidebar a.active{
  background:rgba(255,143,190,.16);
  color:#d64f85;
}

/* ---------- 按钮 ---------- */
.btn,.btn-primary,.btn-sm,.btn-roll,.add-one,.custom-btn,.start-btn,.draw-btn,
.action-btn,.reset-btn,.back-btn,.add-bulk,
button,input[type=submit],input[type=button]{
  background:linear-gradient(100deg,#ff8fbe,#ffb3d1);
  border:1px solid #ff8fbe;
  color:#fff;
  border-radius:14px;
  box-shadow:0 6px 16px rgba(226,116,166,.25);
}
.btn:hover,button:hover,input[type=submit]:hover{filter:brightness(1.05)}
.btn-danger,.btn-del,.danger{
  background:linear-gradient(100deg,#ff6b8a,#ff8fa3);
  border-color:#ff6b8a;
}

/* 带状态的选择类按钮：只改常态，选中态交给应用自己的 .active 规则 */
.tab,.chip,.difficulty-btn,.slot,.pagination a,.pager a{
  background:#fff;
  border:1px solid rgba(255,158,196,.5);
  color:#a13d68;
  border-radius:14px;
}

/* ---------- 表单 ---------- */
input,select,textarea{
  border:1px solid rgba(255,158,196,.55);
  border-radius:12px;
  background:#fffafd;
  color:#8c3a5e;
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:#ff8fbe;
  box-shadow:0 0 0 3px rgba(255,143,190,.22);
}

/* ---------- 表格 ---------- */
table{border-collapse:collapse}
table th{
  background:linear-gradient(100deg,#ffe4ec,#fff0f6);
  color:#a13d68;
}
table td{border-bottom:1px solid rgba(255,158,196,.28)}

/* ---------- 链接与标签 ---------- */
a{color:#d64f85}
a:hover{color:#a13d68}
.badge,.tag,.label{
  background:rgba(255,143,190,.15);
  color:#d64f85;
  border-radius:999px;
}
.alert,.toast{
  border-radius:14px;
  border:1px solid rgba(255,158,196,.5);
}

/* ---------- 移动端安全区 ---------- */
@media(max-width:600px){
  .container,.panel,.card,.stat-card,.mode-card,.task-card{border-radius:16px}
}

/* PINK-THEME-END */

/* PINK-THEME-UX v1 · 设计令牌 + 触摸反馈 + 微交互（追加于文件末尾，勿手改） */
:root{
  --fs-xs:12px; --fs-sm:14px; --fs-md:16px; --fs-lg:20px; --fs-xl:24px; --fs-2xl:32px;
  --r-sm:8px; --r-md:14px; --r-lg:22px; --r-pill:999px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px;
  --sh-1:0 2px 8px rgba(226,116,166,.10);
  --sh-2:0 10px 26px rgba(226,116,166,.16);
  --sh-3:0 20px 44px rgba(226,116,166,.26);
  --ease:cubic-bezier(.2,.7,.3,1);
  --dur:.18s;
}
*{ -webkit-tap-highlight-color:transparent }
h1{font-size:var(--fs-xl)} h2{font-size:var(--fs-lg)} h3{font-size:var(--fs-md)}
.panel,.panel-body,.card,.stat-card,.mode-card,.task-card,.login-box,.rand-box,
.item-list,.history-section,.history-list,.modal-content,.container,.img-card,
.filter-bar,.toolbar,.panel-head,.panel-hd,.difficulty-selector,.mode-selection,
.todo-box,.goal-box,.cal,.wc-card,.script-card,.note-card,.day-card{ border-radius:var(--r-lg) }
.btn,.btn-primary,.btn-sm,.btn-roll,.add-one,.custom-btn,.start-btn,.draw-btn,
.action-btn,.reset-btn,.back-btn,.add-bulk,
button,input[type=submit],input[type=button]{ border-radius:var(--r-md) }
a,button,.btn,[role=button]{ transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), filter var(--dur) var(--ease) }
a:active,button:active,.btn:active,[role=button]:active{ transform:scale(.97) }
a.card:hover,a.mode-card:hover,a.task-card:hover{ transform:translateY(-3px); box-shadow:var(--sh-3) }
.btn:hover,button:hover,input[type=submit]:hover,input[type=button]:hover{ transform:translateY(-2px); box-shadow:var(--sh-2) }
:focus-visible{ outline:2px solid var(--brand,#ff7fb8); outline-offset:2px; border-radius:var(--r-sm) }
.num,.count,.stat,.score,.digit,.metric{ font-variant-numeric:tabular-nums }
::-webkit-scrollbar{ width:8px; height:8px }
::-webkit-scrollbar-track{ background:transparent }
::-webkit-scrollbar-thumb{ background:linear-gradient(180deg,#ffb3d1,#ff8fab); border-radius:999px }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important }
}
/* PINK-THEME-UX-END */

/* PINK-THEME-UX v2 · 空状态 / Toast / 骨架屏（追加，勿手改） */
.empty-state{ text-align:center; padding:38px 20px 34px; color:var(--muted) }
.empty-state .es-ico{ display:inline-block; font-size:42px; line-height:1; filter:drop-shadow(0 5px 12px rgba(233,79,134,.28)); animation:es-float 3.2s ease-in-out infinite }
.empty-state .es-title{ display:block; margin-top:12px; font-size:var(--fs-md,16px); font-weight:600; color:var(--text) }
.empty-state .es-hint{ display:block; margin-top:5px; font-size:var(--fs-sm,14px); color:var(--muted) }
@keyframes es-float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
.empty-tip,.hist-empty{ text-align:center; padding:26px 16px; color:var(--muted); font-size:var(--fs-sm,14px); border:1.5px dashed rgba(255,158,196,.45); border-radius:var(--r-lg,22px); background:rgba(255,255,255,.55) }
.hist-empty{ list-style:none }
.hist-empty .es-ico{ margin-right:6px }
.toast,.alert{ padding:12px 16px; border-radius:var(--r-md,14px); box-shadow:var(--sh-1,0 2px 8px rgba(226,116,166,.10)); background:#fff; border:1px solid rgba(255,158,196,.45); border-left:4px solid var(--brand,#ff7fb8); color:var(--text,#8c3a5e); animation:toast-in .28s var(--ease,ease) }
.toast.err,.alert.err,.toast.error{ border-left-color:#ff5c7a; background:#fff5f8 }
.toast.ok,.alert.ok,.toast.success{ border-left-color:#31c48d }
@keyframes toast-in{ from{opacity:0; transform:translateY(-8px)} to{opacity:1; transform:none} }
.skeleton{ position:relative; overflow:hidden; background:#ffeef5; border-radius:var(--r-md,14px); min-height:1em }
.skeleton::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent); transform:translateX(-100%); animation:sk-shimmer 1.4s infinite }
@keyframes sk-shimmer{ to{ transform:translateX(100%) } }
.task-card p{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
/* PINK-THEME-UX2-END */

/* PINK-THEME-DARK v1 · 跟随系统暗色（追加，勿手改） */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#241620; --bg2:#2e1b27; --card:#3a2430; --card2:#33202b;
    --soft:#3a2430; --pink-soft:#3f2632; --pink-line:#5a3345;
    --line:#5a3345; --border:#5a3345;
    --text:#f6dce8; --muted:#cf9eb6; --ink:#f6dce8; --ink2:#cf9eb6;
    --accent-soft:#3f2632;
    --bg1:#241620; --sky-soft:#3a2430; --good-soft:#20302a; --bad-soft:#3a2329;
    --shadow:0 10px 26px rgba(0,0,0,.35);
    --sh-1:0 2px 8px rgba(0,0,0,.30); --sh-2:0 10px 26px rgba(0,0,0,.38); --sh-3:0 20px 44px rgba(0,0,0,.46);
  }
  html{ background-color:#241620 }
  body{
    background-color:#241620 !important;
    background-image:
      radial-gradient(920px 540px at 8% -12%, rgba(255,143,190,.13), transparent 60%),
      radial-gradient(780px 470px at 94% 2%, rgba(255,179,209,.11), transparent 58%),
      radial-gradient(830px 500px at 48% 110%, rgba(224,182,255,.09), transparent 62%),
      linear-gradient(170deg,#241620 0%,#2e1b27 55%,#241620 100%) !important;
    color:var(--text);
  }
  .panel,.panel-body,.card,.stat-card,.mode-card,.task-card,.login-box,.rand-box,
  .item-list,.history-section,.history-list,.modal-content,.container,.img-card,
  .filter-bar,.toolbar,.panel-head,.panel-hd,.difficulty-selector,.mode-selection,
  .todo-box,.goal-box,.cal,.wc-card,.script-card,.note-card,.day-card{
    background:rgba(58,36,48,.92); border-color:#5a3345; color:var(--text);
  }
  .panel-head,.panel-hd,.filter-bar,.toolbar{ background:linear-gradient(100deg,#3f2632,#33202b); border-bottom-color:#5a3345 }
  input,select,textarea{ background:#2e1b27; border-color:#5a3345; color:var(--text) }
  input::placeholder,textarea::placeholder{ color:#a87792 }
  .tab,.chip,.difficulty-btn,.slot,.pagination a,.pager a{ background:#33202b; border-color:#5a3345; color:#e9b8cc }
  table th{ background:linear-gradient(100deg,#3f2632,#33202b); color:#e9b8cc }
  table td{ border-bottom-color:rgba(90,51,69,.6) }
  a{ color:#ff9ec3 } a:hover{ color:#ffc2d8 }
  .badge,.tag,.label{ background:rgba(255,143,190,.18); color:#ffb3d1 }
  .btn-ghost{ background:#33202b !important; color:#ff9ec3 !important; border-color:#5a3345 !important }
  .empty-tip,.hist-empty{ background:rgba(58,36,48,.55); border-color:#5a3345 }
  .toast,.alert{ background:#33202b; border-color:#5a3345; color:var(--text) }
  .toast.err,.alert.err{ background:#3a2329 }
  .skeleton{ background:#3a2430 }
  .skeleton::after{ background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent) }
  ::-webkit-scrollbar-thumb{ background:linear-gradient(180deg,#8a4a63,#5a3345) }
}
/* PINK-THEME-DARK-END */

/* ===== PINK-THEME-MOBILE-PERF v1 =====
   手机端性能:background-attachment:fixed 会随滚动整页重绘;backdrop-filter
   叠动态背景会闪烁。移动端一律降级为静态/透明(背景层本身有底色,不影响可读)。 */
@media (max-width:640px){
  *{background-attachment:scroll!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important}
}
/* ===== PINK-THEME-MOBILE-PERF-END ===== */
