/* 团小保 VI 1.0：母品牌视觉层，不改变定联工作台业务逻辑。 */
:root {
  --brand-orange: #c34a2f;
  --brand-orange-dark: #9f3826;
  --brand-orange-soft: #f5e2d9;
  --brand-cream: #fff8f2;
  --brand-charcoal: #2b2724;
  --brand-sand: #e9ddd3;
  --brand-green: #8ea46d;
  --paper: #fbf7f3;
  --paper-deep: #f3e8df;
  --card: #fffdfb;
  --ink: var(--brand-charcoal);
  --ink-soft: #746960;
  --muted: #746960;
  --line: var(--brand-sand);
  --clay: var(--brand-orange);
  --clay-dark: var(--brand-orange-dark);
  --clay-deep: var(--brand-orange-dark);
  --clay-soft: var(--brand-orange-soft);
  --teal: #667d56;
  --teal-soft: #e7eddf;
  --sage: var(--brand-green);
  --sage-soft: #edf1e8;
  --shadow: 0 18px 48px rgba(84, 51, 35, .11);
}

body {
  accent-color: var(--brand-orange);
}

::selection {
  color: #fff;
  background: var(--brand-orange);
}

.brand-parent {
  display: block;
  color: var(--brand-orange);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .14em;
}

.title .brand-parent {
  margin-bottom: 2px;
}

.auth-hero .brand-parent,
.card-head .brand-parent {
  margin-top: 8px;
}

.brand-logo,
.brand-mark,
.logo {
  background: var(--brand-cream);
  box-shadow: 0 7px 20px rgba(195, 74, 47, .2) !important;
}

.btn-primary,
button.primary {
  background: var(--brand-orange) !important;
  border-color: var(--brand-orange) !important;
  color: #fff !important;
}

.btn-primary:hover,
button.primary:hover {
  background: var(--brand-orange-dark) !important;
}

:focus-visible {
  outline-color: rgba(195, 74, 47, .42) !important;
}

/* PWA 主工作台：统一头部、卡片与弹窗的品牌质感。 */
.head-row {
  min-height: 68px;
}

.sync-badge,
.today-kicker,
.calendar-title-icon {
  color: var(--brand-orange);
}

.today,
.calendar-workbench,
.ov-card,
.panel,
.sheet {
  border-color: var(--brand-sand) !important;
}

.today-hero,
.set-access {
  background: linear-gradient(145deg, var(--brand-orange-dark), var(--brand-orange)) !important;
}

.today-empty,
.calendar-empty,
.lib-empty {
  background-color: var(--brand-cream) !important;
}

.calendar-mobile-toggle,
.calendar-ai-btn,
.today-share-btn {
  align-items: center;
  justify-content: center;
}

/* 所有弹窗保持居中，并给上下留出安全区。 */
.mask,
.modal-mask {
  align-items: center !important;
  justify-content: center !important;
  padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)) !important;
}

.mask > .sheet,
.modal-card {
  max-height: calc(100dvh - max(32px, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
  border-radius: 22px !important;
  box-shadow: 0 28px 80px rgba(43, 39, 36, .25) !important;
}

/* 管理后台保持正式控制台结构，同时与母品牌统一。 */
.topbar,
.side-status,
.login-gate {
  background: var(--brand-charcoal) !important;
}

.side-tabs .tab.active,
.quick-flow button:hover {
  background: var(--brand-cream) !important;
}

.login-seal {
  overflow: hidden;
  background: transparent !important;
  box-shadow: 0 8px 22px rgba(195, 74, 47, .2);
}

.login-seal img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.expired-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--brand-charcoal);
  font-size: 14px;
}

.expired-brand img {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  box-shadow: 0 7px 20px rgba(195, 74, 47, .2);
}

@media (max-width: 700px) {
  .brand-parent {
    font-size: 9px;
  }

  .mask,
  .modal-mask {
    padding-inline: 12px !important;
  }

  .mask > .sheet,
  .modal-card {
    width: 100% !important;
    border-radius: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
