/* 仅真机触摸 + PWA Standalone · 高饱和活力（电脑浏览器不加载） */
:root {
  --red-core: #ff3b3b;
  --red-bright: #ff5555;
  --red-hot: #ff7070;
  --red-deep: #b91c1c;
  --red-glow: rgba(255, 50, 50, 0.78);
  --red-bg: rgba(185, 28, 28, 0.48);
  --red-bg-soft: rgba(160, 24, 24, 0.36);
  --red-border: rgba(255, 70, 70, 0.92);
  --red-border-soft: rgba(255, 80, 80, 0.78);
  --red-inset: rgba(255, 100, 100, 0.42);
  --red-halo: rgba(255, 45, 45, 0.38);
  --white-core: #ffffff;
  --white-glow: rgba(255, 255, 255, 0.62);
  --white-bg: rgba(255, 255, 255, 0.14);
  --white-border: rgba(255, 255, 255, 0.72);
  --card-border: rgba(255, 60, 60, 0.55);
  --logo-idle: 0.78;
  --red-text: #ffb4b4;
  --white-text: #f8fafc;
  --label-muted: #949494;
  --focus-ring: rgba(255, 70, 70, 0.28);
}

body::before {
  background:
    radial-gradient(ellipse 95% 55% at 50% -8%, var(--red-halo), transparent 62%),
    radial-gradient(ellipse 70% 35% at 50% 102%, rgba(255,255,255,.06), transparent 58%),
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,60,60,.05) 2px, rgba(255,60,60,.05) 4px);
}
.phone-shell { background: #060404; }

header.p-head { border-bottom-color: rgba(255,70,70,.55); }
.swiper-panel {
  padding-top: 18px;
}
.emblem-wrap {
  background: linear-gradient(155deg, #ff5555, #990000);
  box-shadow: 0 0 22px rgba(255,55,55,.55);
}
.eyebrow { color: #ff5555; text-shadow: 0 0 10px rgba(255,70,70,.45); }
.master-badge, #edit-master-badge {
  color: #ff5555;
  text-shadow: 0 0 8px rgba(255,70,70,.35);
}

.ms.done {
  border-color: rgba(255,80,80,.85);
  background: rgba(185,28,28,.42);
  box-shadow: inset 3px 0 0 #ff4444, 0 0 18px rgba(255,55,55,.22);
}
.ms.white-slot.done {
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.12);
  box-shadow: inset 3px 0 0 #ffffff, 0 0 16px rgba(255,255,255,.14);
}
.ms.done .dot {
  border-color: #ff5555; color: #fff;
  background: linear-gradient(145deg, #ff7070, #cc1111);
  box-shadow: 0 0 14px rgba(255,70,70,.55);
}
.ms.white-slot.done .dot {
  border-color: #ffffff; color: #0f172a;
  background: linear-gradient(145deg, #ffffff, #cbd5e1);
  box-shadow: 0 0 12px rgba(255,255,255,.45);
}
.ms.done .pct { color: #ff6666; text-shadow: 0 0 8px rgba(255,80,80,.35); }
.ms.white-slot.done .pct { color: #f8fafc; text-shadow: 0 0 8px rgba(255,255,255,.25); }

.task.red-slot {
  border-color: rgba(255,70,70,.55);
  background: rgba(185,28,28,.28);
  box-shadow: inset 4px 0 0 #ff4444, 0 0 12px rgba(255,55,55,.1);
}
.task.white-slot {
  border-color: rgba(255,255,255,.38);
  background: rgba(255,255,255,.1);
  box-shadow: inset 4px 0 0 rgba(255,255,255,.72), 0 0 10px rgba(255,255,255,.06);
}
.task.red-slot.done {
  border-color: rgba(255,80,80,.88);
  background: rgba(185,28,28,.48);
  box-shadow: inset 4px 0 0 #ff5555, 0 0 18px rgba(255,55,55,.22);
}
.task.white-slot.done {
  border-color: rgba(255,255,255,.62);
  background: rgba(255,255,255,.14);
  box-shadow: inset 4px 0 0 #ffffff, 0 0 16px rgba(255,255,255,.14);
}
.task.red-slot .task-check { border-color: rgba(255,80,80,.65); background: rgba(120,15,15,.72); }
.task.white-slot .task-check { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.08); }
.task.red-slot.done .task-check {
  border-color: #ff5555; color: #fff;
  background: linear-gradient(145deg, #ff7070, #cc1111);
  box-shadow: 0 0 12px rgba(255,70,70,.5);
}
.task.white-slot.done .task-check {
  border-color: #ffffff; color: #0f172a;
  background: linear-gradient(145deg, #ffffff, #cbd5e1);
  box-shadow: 0 0 10px rgba(255,255,255,.42);
}
.task-tag {
  border-color: rgba(255,80,80,.45);
  color: #ffb4b4;
  background: rgba(185,28,28,.32);
}
.task.white-slot .task-tag {
  border-color: rgba(255,255,255,.42);
  color: #f8fafc;
  background: rgba(255,255,255,.12);
}
.task-grip:active { color: #ff5555; }
.task.drop-before { box-shadow: inset 0 3px 0 #ff4444; }
.task.drop-after { box-shadow: inset 0 -3px 0 #ff4444; }
.task.red-slot.done .task-text { color: #fecaca; }
.task.white-slot.done .task-text { color: #ffffff; }
.task-del { background: rgba(185,28,28,.48); color: #ffb4b4; }
.task.white-slot .task-del { background: rgba(255,255,255,.16); color: #f8fafc; }
.btn-add {
  border-color: rgba(255,80,80,.72);
  background: rgba(185,28,28,.28);
  color: #ffb4b4;
  box-shadow: 0 0 14px rgba(255,55,55,.12);
}

.card {
  background: linear-gradient(165deg, rgba(22,14,14,.98), rgba(6,4,4,1));
  box-shadow: 0 8px 28px rgba(0,0,0,.5), 0 0 24px rgba(255,45,45,.08), inset 0 1px 0 rgba(255,100,100,.06);
}
.card-head::before { text-shadow: 0 0 10px rgba(255,70,70,.4); }

.time-tile.on { box-shadow: inset 0 0 0 1px var(--red-inset), 0 0 28px rgba(255,55,55,.32); }
.time-tile.on .time-vis #cal-grid-dots { opacity: 0.42; }
.red-zone .tone-swatch { box-shadow: 0 0 16px rgba(255, 55, 55, 0.65); }
.white-zone .tone-swatch { box-shadow: 0 0 14px rgba(255, 255, 255, 0.42); }
.tone-zone.red-zone.is-over { box-shadow: inset 0 0 0 1px var(--red-inset), 0 0 16px rgba(255,55,55,.18); }
.tone-zone.white-zone.is-over { box-shadow: inset 0 0 0 1px rgba(255,255,255,.25), 0 0 14px rgba(255,255,255,.12); }

.page-dots span.on {
  background: linear-gradient(90deg, #cc1111, var(--red-core), #ff8888);
  box-shadow: 0 0 16px var(--red-glow);
}

.advisor-portrait-glow { background: radial-gradient(ellipse at 50% 70%, rgba(255,55,55,.52), transparent 68%); }
.advisor-portrait-frame {
  border-color: rgba(255,70,70,.75);
  box-shadow: inset 0 0 0 1px rgba(255,100,100,.32), 0 8px 32px rgba(255,45,45,.28);
}
.advisor-portrait { filter: contrast(1.08) saturate(1.28); }
.advisor-name { color: #ffb4b4; text-shadow: 0 0 24px rgba(255,80,80,.45); }
.advisor-bubble.is-advisor {
  border-color: rgba(255,80,80,.55);
  box-shadow: inset 2px 0 0 var(--red-core), 0 0 14px rgba(255,55,55,.12);
}
.advisor-bubble.is-user {
  border-color: rgba(255,255,255,.32);
  background: var(--white-bg);
  box-shadow: inset -2px 0 0 rgba(255,255,255,.55), 0 0 10px rgba(255,255,255,.06);
}
.advisor-dialog {
  border-color: rgba(255,80,80,.62);
  background: linear-gradient(180deg, rgba(24,12,12,.98), rgba(8,4,4,.98));
  box-shadow: inset 0 0 0 1px rgba(255,100,100,.22), 0 4px 28px rgba(255,55,55,.18);
}
.advisor-dialog::before {
  background: rgba(24,12,12,.98);
  border-left-color: rgba(255,80,80,.62);
  border-top-color: rgba(255,80,80,.62);
}
.advisor-dialog-name { text-shadow: 0 0 12px rgba(255,70,70,.35); }
.advisor-send {
  border-color: rgba(255,80,80,.72);
  background: linear-gradient(145deg, rgba(185,28,28,.55), rgba(120,15,15,.72));
  box-shadow: 0 0 16px rgba(255,55,55,.22);
}

.chat-mgr-master { border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.04); }
.chat-mgr-master.on { box-shadow: inset 3px 0 0 var(--red-core), 0 0 20px rgba(255,55,55,.22); }
.chat-mgr-master.on .chat-mgr-master-meta { text-shadow: 0 0 8px rgba(255,70,70,.3); }
.chat-mgr-toolbar { border-top-color: rgba(255,70,70,.22); }
.chat-mgr-clear {
  border-color: rgba(255,80,80,.62);
  background: rgba(185,28,28,.38);
  box-shadow: 0 0 12px rgba(255,55,55,.15);
}
.chat-mgr-row-main { border-color: rgba(255,255,255,.1); }
.chat-mgr-row.is-advisor .chat-mgr-row-main {
  border-color: rgba(255,80,80,.45);
  box-shadow: inset 2px 0 0 var(--red-core), 0 0 12px rgba(255,55,55,.1);
}
.chat-mgr-row.is-user .chat-mgr-row-main { border-color: rgba(255,255,255,.22); background: var(--white-bg); }
.chat-mgr-row.is-advisor .chat-mgr-row-who { text-shadow: 0 0 6px rgba(255,70,70,.28); }
.chat-mgr-row-del {
  border-color: rgba(255,80,80,.35);
  background: rgba(185,28,28,.28);
  color: var(--red-text);
}

.logo-bubble img {
  filter: drop-shadow(0 2px 10px rgba(0,0,0,.5)) saturate(1.25) contrast(1.06);
}
.logo-bubble.on img {
  filter: drop-shadow(0 0 18px rgba(255,55,55,.75)) drop-shadow(0 0 8px rgba(255,120,120,.55)) saturate(1.35) contrast(1.08);
}

.time-sheet-panel {
  background: linear-gradient(165deg, #1a1010, #060404);
  border-color: rgba(255,80,80,.55);
  box-shadow: 0 -8px 48px rgba(255,55,55,.12), 0 -8px 40px rgba(0,0,0,.6);
}
.sheet-nav {
  border-color: rgba(255,80,80,.42);
  background: rgba(185,28,28,.28);
  color: var(--red-text);
}
.cal-day.today { box-shadow: inset 0 0 0 1px rgba(255,100,100,.62); }
.cal-day.sel {
  background: linear-gradient(145deg, var(--red-core), #990000);
  box-shadow: 0 4px 18px rgba(255,55,55,.55);
}
.sheet-btn {
  border-color: rgba(255,80,80,.62);
  background: linear-gradient(145deg, rgba(185,28,28,.48), rgba(120,15,15,.62));
  box-shadow: 0 0 14px rgba(255,55,55,.18);
}
.cd-wheel-frame {
  border-color: rgba(255,80,80,.55);
  box-shadow: inset 0 0 16px rgba(255,55,55,.18);
}
.cd-wheel-item.is-active { text-shadow: 0 0 10px rgba(255,80,80,.35); }

.alarm-panel {
  border-color: rgba(255, 80, 80, 0.82);
  background: linear-gradient(165deg, #2a0808, #060404);
  box-shadow: 0 0 72px rgba(255, 55, 55, 0.45);
}
.alarm-ring { border-color: rgba(255, 100, 100, 0.48); }
.alarm-eyebrow { text-shadow: 0 0 10px rgba(255,70,70,.4); }
.alarm-dismiss {
  background: linear-gradient(145deg, #ff5555, #990000);
  box-shadow: 0 4px 28px rgba(255, 55, 55, 0.48);
}

.task-sheet-sector-wrap {
  border-color: rgba(255,80,80,.35);
  background: rgba(185,28,28,.12);
  box-shadow: inset 0 0 12px rgba(255,55,55,.08);
}
.task-pri-btn.red-slot.on {
  background: rgba(185,28,28,.42);
  box-shadow: 0 0 16px rgba(255,55,55,.28);
}
.task-sheet-done.red-slot.on {
  background: rgba(185,28,28,.42);
  box-shadow: 0 0 12px rgba(255,55,55,.2);
}
.task-inline-input {
  border-bottom-color: rgba(255,80,80,.62);
  background: rgba(185,28,28,.18);
}

.tip {
  border-color: rgba(255,80,80,.55);
  background: rgba(185,28,28,.22);
}

.bottom-chrome {
  background: #060404;
}
.page-dots {
  transform: translateY(30px);
}
.page-dots span {
  height: 2px;
}
.logo-dock.is-visible {
  max-height: calc(44px + var(--logo-dock-shift, 42px));
}
.logo-strip {
  gap: 8px;
  padding-bottom: 0;
  transform: translateY(var(--logo-dock-shift, 42px));
}

.logo-bubble.is-down {
  transform: scale(0.78) translateY(3px);
  transition: transform 0.06s cubic-bezier(0.4, 0, 0.95, 0.65);
}
.logo-bubble.on.is-down {
  transform: scale(0.84) translateY(3px);
}
.logo-bubble.is-down img {
  opacity: 0.92;
  filter: drop-shadow(0 1px 6px rgba(255,55,55,.35)) brightness(1.12) saturate(1.25);
}
.logo-bubble.is-bounce {
  animation: logoSpringTouch 0.58s cubic-bezier(0.34, 1.72, 0.48, 1);
}
.logo-bubble.is-bounce:not(.on) {
  animation-name: logoSpringTouchOff;
}
@keyframes logoSpringTouch {
  0%   { transform: scale(0.78) translateY(3px); }
  35%  { transform: scale(1.14) translateY(-2px); }
  55%  { transform: scale(0.92) translateY(1px); }
  75%  { transform: scale(1.08) translateY(-1px); }
  100% { transform: scale(1.06) translateY(0); }
}
@keyframes logoSpringTouchOff {
  0%   { transform: scale(0.78) translateY(3px); }
  35%  { transform: scale(1.1) translateY(-2px); }
  55%  { transform: scale(0.94) translateY(1px); }
  100% { transform: scale(1) translateY(0); }
}

#cal-sel-cell, #cd-bar-fill { fill: #ff5555; }
.time-vis stop[offset="1"] { stop-color: #990000; }
.alarm-panel svg circle, .alarm-panel svg path { stroke: #ff5555; }
.alarm-panel svg path:last-of-type { stroke: #ffb4b4; }
