/* Shared black and red theme, applied after layout styles. */
:root {
  color-scheme: dark;
  --accent: #d7263d;
  --accent-bright: #ff7181;
  --accent-deep: #321219;
  --surface: #151316;
  --surface-raised: #1d1a1e;
  --ink: #f1edef;
  --muted: #aba3aa;
  --line: #342d33;
  --bg: #0c0b0d;
  --white: #f1edef;
  --lime: var(--accent);
  --green: var(--accent-bright);
  --radius: 12px;
}
::selection { background: #842134; color: #fff; }
body { background: var(--bg); color: var(--ink); }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline-color: var(--accent-bright);
}
button:disabled { opacity: .55; }
.sidebar { background: #100e11; border-color: var(--line); }
.brand { display: flex; align-items: center; gap: 12px; color: var(--ink); padding: 0 10px; }
.brand-word { display: inline-flex; letter-spacing: -4px; }
.brand-dot { color: var(--accent); }
.brand-lock { width: 30px; height: 36px; color: var(--accent); stroke-width: 2.3; }
.brand-mobile { display: none; }
.space-label { color: #a097a0; font-size: 11px; letter-spacing: 1.8px; }
.nav-link { color: var(--muted); border-radius: 7px; border: 1px solid transparent; }
.nav-link.active { color: #fff; background: #34121b; border-color: #632330; box-shadow: inset 3px 0 var(--accent); }
.nav-link.active svg { color: var(--accent-bright); }
.nav-link:hover:not(.active) { background: #20171c; color: #fff; }
.nav-link .nav-count { background: #5a202d; color: #f8dfe4; }
.pair-avatars span { background: #29242a; color: #dfd6dc; border-color: #100e11; }
.pair-avatars span+span { background: #5a1d2a; color: #ffced6; }
.demo-label span { background: var(--accent); }
.topbar { background: #110f12; border-color: var(--line); }
.breadcrumb span { color: #655a63; }
.role-switch { background: #1e191f; border: 1px solid var(--line); border-radius: 7px; }
.role-switch button { color: var(--muted); border-radius: 4px; }
.role-switch button.active { background: #722032; color: white; box-shadow: none; }
.profile { background: #36212a; color: #ffccd5; border: 1px solid #59303e; }
.eyebrow { color: #a69aa3; }
h1 { font-weight: 900; letter-spacing: -1px; }
.btn { border-radius: 6px; }
.btn:hover { transform: none; }
.btn-dark,.btn-lime { background: var(--accent); color: #fff; border: 1px solid var(--accent); }
.btn-dark:hover,.btn-lime:hover { background: #b91d33; border-color: #b91d33; }
.btn-outline { background: #1b171c; color: #e5dce3; border-color: #493842; }
.btn-outline:hover { background: #2a1a22; border-color: #8a394c; }
.btn-soft { background: #2c2028; color: #eed8e1; border: 1px solid #4b2b38; }
.btn-soft:hover:not(:disabled) { background: #3c2431; }
.btn-delete { background: #291317; color: #ff8a97; border: 1px solid #5e2531; }
.btn-delete:hover { background: #41151f; }
.btn-delete-solid { background: #b82138; color: #fff; }
.summary { background: linear-gradient(110deg,#301019,#181216); border: 1px solid #662333; border-left: 3px solid var(--accent); }
.summary-kicker { color: var(--accent-bright); letter-spacing: 1.5px; }
.summary h2 { color: #f5ecef; font-weight: 800; }
.summary p { color: #c5a5b0; }
.progress-ring { background: conic-gradient(var(--accent) calc(var(--progress)*1%),#4b2531 0); }
.progress-inner { background: #211217; }
.progress-inner strong { color: #fff; }
.progress-inner span { color: #ccabb7; }
.filter { background: #171317; color: #b8aab4; border-color: var(--line); border-radius: 5px; }
.filter.active { background: #5d1a29; color: #fff; border-color: #af354d; }
.filter:hover:not(.active) { border-color: #8e3549; }
.task-card,.panel,.reward-card,.settings-card,.history-list,.calendar-panel,.calendar-detail {
  background: var(--surface); border-color: var(--line); border-radius: 12px;
}
.task-card { border-radius: 9px; }
.task-icon,.task-icon.purple,.task-icon.peach { background: #30171f; color: #f77b8d; border: 1px solid #4c2632; border-radius: 7px; }
.tag { background: #29212a; color: #c1b0be; }
.tag.pending { background: #471922; color: #ffabb6; }
.tag.done { background: #282329; color: #c5bfc5; }
.task-meta { color: #ada1aa; }
.task-card.done .task-title { color: #b4a7b0; }
.notice { background: #20151b; color: #c9a7b5; border: 1px solid #422630; border-radius: 8px; }
.notice svg { color: #ef7187; }
.point-card { background: #161114; color: var(--ink); border: 1px solid #55303c; border-top: 3px solid var(--accent); }
.point-card .overline,.point-card p { color: #b5a1ac; }
.point-card .overline svg,.point-balance span { color: var(--accent-bright); }
.panel-title svg { color: #b68e9c; }
.day { color: #ac9ca6; }
.day-circle { background: #2b222b; color: #b8a6b3; }
.day-circle.filled { background: #98233a; color: #fff; }
.day-circle.today { border-color: #9c4257; }
.week-calendar-link { color: #f28b9c; }
.reward-mini-icon { background: #30191f; color: #ff8193; border: 1px solid #522b36; border-radius: 7px; }
.mini-bar { background: #3b2630; }
.mini-bar span { background: var(--accent); }
.pair-note strong { color: #cfbac5; }
footer { color: #a3939e; }
.reward-art,.reward-card:nth-child(2) .reward-art,.reward-card:nth-child(3) .reward-art {
  background: #25161d; color: #ec697e; border: 1px solid #482631; border-radius: 8px;
}
.wallet-inline { background: #35131e; color: #f5d9e2; border: 1px solid #6a283b; border-radius: 8px; }
.wallet-inline strong { color: #ff9bac; }
.history-value.negative { color: #c9a0ad; }
.empty { background: #171217; border-color: #55404d; border-radius: 9px; }
.field input,.field textarea,.field select { background: #100e11; color: var(--ink); border-color: #493844; border-radius: 6px; }
.field input::placeholder,.field textarea::placeholder { color: #8d7f89; opacity: 1; }
.toggle { background: #40303b; }
.toggle:before { background: #ddd2da; }
.toggle.on { background: #b6233e; }
.toggle.on:before { background: #fff; }
.demo-box { background: #21161d; color: #c0a7b5; border: 1px solid #412b37; border-radius: 8px; }
.danger-btn { color: #fb8499; }
dialog { background: #181216; color: var(--ink); border-color: #7c3046; border-radius: 12px; box-shadow: 0 30px 100px #000b; }
dialog::backdrop { background: #080609c9; backdrop-filter: blur(5px); }
.icon-button { background: #2b1d26; color: #e3c9d6; border-radius: 6px; }
.icon-button:hover { background: #462333; }
.proof { background: #251821; border: 1px solid #48313e; border-radius: 7px; }
.confirm-price { background: #32151f; color: #ffabbc; border: 1px solid #602a3d; border-radius: 8px; }
#toast { background: #341823; color: #fff; border: 1px solid #9f3d57; border-radius: 7px; box-shadow: 0 8px 32px #0009; }
.paused-banner { background: #331820; border-color: #743040; color: #f1bbc8; border-radius: 8px; }
.count-pill { background: #3c2432; color: #ecc5d6; }
.calendar-weekdays span:last-child { color: #ed7b8c; }
.calendar-day { background: #1c171c; color: #ded2dc; border-radius: 6px; }
.calendar-day:hover { background: #302029; }
.calendar-day.selected,.calendar-day.outside.selected { background: #3d1723; border-color: #df536e; box-shadow: inset 0 0 0 1px #df536e; }
.calendar-day.outside { background: #151215; color: #8e7d8a; }
.calendar-day.is-today .calendar-number { background: #c9233f; color: white; }
.day-ban { --label-bg:#58202c; --label-color:#ffadba; background:var(--label-bg); color:var(--label-color); }
.day-ruined { --label-bg:#3d202a; --label-color:#e9abbc; background:var(--label-bg); color:var(--label-color); }
.day-edging { --label-bg:#352b30; --label-color:#e2c4cf; background:var(--label-bg); color:var(--label-color); }
.day-free { --label-bg:#2b272c; --label-color:#d6ccd3; background:var(--label-bg); color:var(--label-color); }
.calendar-completed,.completion-key svg,.calendar-record-check { color: #fb839b; }
.selected-day-heading { background: #30151f; border-bottom: 1px solid #5e283a; }
.today-chip { background: #a72440; color: #fff; border-radius: 4px; }
.day-label-option { border-radius: 6px; }
.day-label-option.chosen { border-color: var(--label-color); }
.calendar-local-note { color: #b19cab; }
@media(max-width:1150px) and (min-width:951px) {
  .brand { padding: 0 7px; gap: 9px; font-size: 45px; }
  .brand-lock { width: 26px; height: 32px; }
}
@media(max-width:950px) and (min-width:731px) {
  .brand { padding: 0; gap: 5px; font-size: 25px; }
  .brand-word { letter-spacing: -2px; }
  .brand-lock { width: 19px; height: 25px; }
  .brand-mobile { display: none; }
}
@media(max-width:730px) {
  .sidebar { background: #100d11f5; border-top-color: #50303e; }
  .sidebar .brand { display: none; }
  .brand-mobile { display: flex; padding: 0; gap: 8px; font-size: 31px; }
  .brand-mobile .brand-word { letter-spacing: -2.5px; }
  .brand-mobile .brand-lock { width: 22px; height: 28px; }
  .topbar .breadcrumb { display: none; }
  .topbar { gap: 12px; }
  .nav-link.active { background: #35141f; color: #ffd3de; box-shadow: inset 0 2px var(--accent); border-color: #642537; }
  .role-switch button.active { background: #722032; }
}
