/* ==========================================================================
   RISE UP 管制塔 — 事業別テーマ (2026-09-22)
   [data-theme="roots"]  → 何も変えない（既存のクリーム地・虹色のまま）
   [data-theme="riseup"] → 白×オレンジ(#FA5E0A)×黒。RISE UPロゴ
   [data-theme="joyden"] → joyden.web.app と同じテイスト。JOY DENロゴ

   構造・データは一切変えない。見た目だけ。
   契約書/請求書の紙面(.invoice-paper / .contract-text-box)は無干渉。
   ========================================================================== */

/* ============================================================
   RISE UP テーマ
   白ベース／オレンジ #FA5E0A ／黒 #1F2937
   ============================================================ */
[data-theme="riseup"] {
  --riseup-orange: #FA5E0A;
  --riseup-orange-hi: #FF7A2E;
  --riseup-ink: #1F2937;
  --riseup-ink-soft: #4B5563;
  --riseup-ink-mute: #9CA3AF;
  --riseup-line: #E5E7EB;
  --riseup-paper: #FFFFFF;
  --riseup-radius: 16px;
}
[data-theme="riseup"] body,
[data-theme="riseup"] .login-screen {
  background: var(--riseup-paper) !important;
  color: var(--riseup-ink) !important;
  font-family: 'Inter', 'Noto Sans JP', -apple-system, sans-serif !important;
}
[data-theme="riseup"] body::before { display: none !important; }

/* Topbar (dashboard) — 白地・ロゴ画像 */
[data-theme="riseup"] .topbar {
  background: var(--riseup-paper);
  border-bottom: 1px solid var(--riseup-line);
}
[data-theme="riseup"] .topbar-brand {
  color: transparent !important;
  background: url('/logo.png') left center / contain no-repeat;
  width: 132px; height: 44px;
  padding: 0 !important;
  overflow: hidden;
}
[data-theme="riseup"] .topbar-brand::after { display: none !important; }
[data-theme="riseup"] .topbar-brand small { display: none !important; }

/* app-header (admin/finance/schedule/analytics/booking/resources) */
[data-theme="riseup"] .app-header {
  background: var(--riseup-paper) !important;
  color: var(--riseup-ink) !important;
  border-bottom: 1px solid var(--riseup-line);
}
[data-theme="riseup"] .app-header .app-title,
[data-theme="riseup"] .app-header .app-title small {
  color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .app-header .app-title::before {
  content: '';
  display: inline-block;
  width: 96px; height: 32px;
  background: url('/logo.png') left center / contain no-repeat;
  vertical-align: middle;
  margin-right: 10px;
}
[data-theme="riseup"] .app-header .app-title > span:first-child,
[data-theme="riseup"] .btn-link {
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .btn-link:hover {
  background: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
}

/* Contract/Finance の "back-to-admin" と brand-title */
[data-theme="riseup"] .header {
  background: var(--riseup-paper) !important;
  border-bottom: 1px solid var(--riseup-line) !important;
  backdrop-filter: none;
}
[data-theme="riseup"] .brand-title {
  color: var(--riseup-orange) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  letter-spacing: 0.04em;
}
[data-theme="riseup"] .brand-title [class^="l"],
[data-theme="riseup"] .brand-title [class*="l"] {
  color: inherit !important;
}
[data-theme="riseup"] .brand-title::before {
  content: '';
  display: inline-block;
  width: 112px; height: 36px;
  background: url('/logo.png') left center / contain no-repeat;
  flex-shrink: 0;
}
[data-theme="riseup"] .brand-title .brand-dept {
  color: var(--riseup-orange);
  font-weight: 900;
}
[data-theme="riseup"] .brand-tag {
  background: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
}
[data-theme="riseup"] .back-to-admin {
  border-color: var(--riseup-ink) !important;
  box-shadow: 2px 2px 0 var(--riseup-ink) !important;
}

/* Business switcher */
[data-theme="riseup"] .biz-switch {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  box-shadow: 3px 3px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .biz-btn {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-ink) !important;
  box-shadow: 2px 2px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .biz-btn.active {
  background: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
}

/* Hero (today card) — オレンジ一面・中は白 */
[data-theme="riseup"] .hero {
  background: var(--riseup-orange) !important;
  border: 3px solid var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
  border-radius: var(--riseup-radius) !important;
  transform: none !important;
  box-shadow: 6px 6px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .hero::before {
  background: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .hero-date,
[data-theme="riseup"] .hero-greet,
[data-theme="riseup"] .hero-greet small,
[data-theme="riseup"] .hero-cta {
  color: var(--riseup-paper) !important;
}
[data-theme="riseup"] .hero-cta {
  border-bottom-color: var(--riseup-paper) !important;
}
[data-theme="riseup"] .focus-item {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .focus-item.overdue {
  background: #FFECE0 !important;
  border-color: var(--riseup-orange) !important;
}
[data-theme="riseup"] .focus-item.today {
  background: #FFF6EE !important;
}
[data-theme="riseup"] .focus-empty {
  background: var(--riseup-paper) !important;
  color: var(--riseup-ink) !important;
  border-color: var(--riseup-ink-mute) !important;
}

/* 部署カード — 単色化、手描きイラストは黒化 */
[data-theme="riseup"] .dept-card {
  background: var(--riseup-paper) !important;
  border: 2.5px solid var(--riseup-ink) !important;
  border-radius: var(--riseup-radius) !important;
  box-shadow: 5px 5px 0 var(--riseup-ink) !important;
  transform: none !important;
  --accent: var(--riseup-orange) !important;
}
[data-theme="riseup"] .dept-card:hover {
  transform: translate(-3px, -3px) !important;
  box-shadow: 8px 8px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .dept-card .num {
  background: var(--riseup-paper) !important;
  color: var(--riseup-orange) !important;
  border-color: var(--riseup-ink) !important;
  box-shadow: 2px 2px 0 var(--riseup-ink) !important;
  transform: rotate(-2deg);
}
[data-theme="riseup"] .dept-card .thumb {
  background:
    radial-gradient(circle at 30% 20%, rgba(250,94,10,0.12), transparent 55%),
    radial-gradient(circle at 80% 90%, rgba(250,94,10,0.08), transparent 55%),
    #FFF6EE !important;
  border-style: solid !important;
  border-color: var(--riseup-ink) !important;
}
/* 元の暖色系イラストを RISE UP パレット (オレンジ寄り) に寄せる。
   彩度と明度を軽く上げ、外側にオレンジのドロップシャドウで発光感。 */
[data-theme="riseup"] .dept-card .thumb svg {
  filter:
    hue-rotate(-8deg)
    saturate(1.15)
    contrast(1.05)
    drop-shadow(0 0 4px rgba(250,94,10,0.35))
    drop-shadow(0 0 10px rgba(250,94,10,0.25)) !important;
  opacity: 1 !important;
}
[data-theme="riseup"] .dept-card .tag {
  background: var(--riseup-orange) !important;
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
  box-shadow: 2px 2px 0 var(--riseup-ink) !important;
  transform: none !important;
}
[data-theme="riseup"] .dept-card h3,
[data-theme="riseup"] .dept-card .desc,
[data-theme="riseup"] .dept-card .foot,
[data-theme="riseup"] .dept-card .num-big,
[data-theme="riseup"] .dept-card .arrow {
  color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .dept-card .foot { border-top-color: var(--riseup-ink) !important; }

/* Activity list (最近の動き) */
[data-theme="riseup"] .activity {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  border-radius: var(--riseup-radius) !important;
  transform: none !important;
  box-shadow: 5px 5px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .activity .date { color: var(--riseup-orange) !important; }

/* Section labels */
[data-theme="riseup"] .section-label .label-num { color: var(--riseup-orange) !important; }

/* Login screen (dashboard 特有) */
[data-theme="riseup"] .login-screen { background: var(--riseup-paper) !important; }
[data-theme="riseup"] .login-card {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  box-shadow: 6px 6px 0 var(--riseup-ink) !important;
  transform: none !important;
  border-radius: var(--riseup-radius) !important;
}
[data-theme="riseup"] .login-card h1 { color: var(--riseup-ink) !important; }
[data-theme="riseup"] .login-card .sub { color: var(--riseup-orange) !important; }
[data-theme="riseup"] .form-input {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-ink) !important;
  border-radius: 10px !important;
}
[data-theme="riseup"] .form-input:focus { border-color: var(--riseup-orange) !important; }
[data-theme="riseup"] .btn-primary,
[data-theme="riseup"] .btn-add {
  background: var(--riseup-orange) !important;
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
  box-shadow: 3px 3px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .btn-logout {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  color: var(--riseup-ink) !important;
  box-shadow: 2px 2px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .btn-logout:hover {
  background: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
}

/* Filter chips (admin/schedule etc.) */
[data-theme="riseup"] .filter-chip {
  background: var(--riseup-paper);
  border-color: var(--riseup-line);
  color: var(--riseup-ink);
}
[data-theme="riseup"] .filter-chip.active {
  background: var(--riseup-ink) !important;
  color: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .filter-chip.biz-chip-riseup.active {
  background: var(--riseup-orange) !important;
  border-color: var(--riseup-orange) !important;
}

/* Summary cards / KPI cards */
[data-theme="riseup"] .summary-card,
[data-theme="riseup"] .kpi-card {
  background: var(--riseup-paper) !important;
  border-radius: var(--riseup-radius) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}
[data-theme="riseup"] .summary-card.confirmed { border-left-color: var(--riseup-orange) !important; }
[data-theme="riseup"] .summary-card.expected  { border-left-color: var(--riseup-orange) !important; }
[data-theme="riseup"] .summary-card.warn      { border-left-color: var(--riseup-ink) !important; }
[data-theme="riseup"] .kpi-card.confirmed,
[data-theme="riseup"] .kpi-card.expected      { background: #FFF6EE !important; }
[data-theme="riseup"] .kpi-card.warn          { background: #FEECE2 !important; }
[data-theme="riseup"] .kpi-card.month-issue   { background: #FFF6EE !important; }
[data-theme="riseup"] .kpi-card.unpaid        { background: #FEECE2 !important; }
[data-theme="riseup"] .kpi-card.paid          { background: #F6F7F9 !important; }
[data-theme="riseup"] .kpi-value              { color: var(--riseup-ink) !important; }

/* Tables (admin case list) */
[data-theme="riseup"] .case-list,
[data-theme="riseup"] .invoice-card {
  border-radius: var(--riseup-radius) !important;
  background: var(--riseup-paper) !important;
}

/* Kanban */
[data-theme="riseup"] .kanban-col {
  background: #F6F7F9 !important;
  border-color: var(--riseup-ink) !important;
}
[data-theme="riseup"] .kanban-card {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  box-shadow: 2px 2px 0 var(--riseup-ink) !important;
}

/* Modal */
[data-theme="riseup"] .modal,
[data-theme="riseup"] .modal-overlay .modal {
  border-radius: var(--riseup-radius) !important;
}

/* Migration banner */
[data-theme="riseup"] .biz-migration {
  background: #FEECE2 !important;
  border-color: var(--riseup-orange) !important;
}

/* Business badges — 3テーマ共通で見分けがつく固定色 */
[data-theme="riseup"] .biz-badge-riseup,
[data-theme="joyden"] .biz-badge-riseup { background:#FEE2E2; color:#B02222; border:1px solid #B02222; }
[data-theme="riseup"] .biz-badge-roots,
[data-theme="joyden"] .biz-badge-roots  { background:#FEF3C7; color:#8B4B00; border:1px solid #8B4B00; }
[data-theme="riseup"] .biz-badge-joyden,
[data-theme="joyden"] .biz-badge-joyden { background:#DBEAFE; color:#1E4A8F; border:1px solid #1E4A8F; }

/* Wizard preview / cards */
[data-theme="riseup"] .wizard,
[data-theme="riseup"] .contract-card,
[data-theme="riseup"] .settings-card,
[data-theme="riseup"] .detail-head,
[data-theme="riseup"] .month-breakdown,
[data-theme="riseup"] .preview-box,
[data-theme="riseup"] .contract-select-card {
  background: var(--riseup-paper) !important;
  border-color: var(--riseup-ink) !important;
  border-radius: var(--riseup-radius) !important;
  box-shadow: 4px 4px 0 var(--riseup-ink) !important;
}
[data-theme="riseup"] .contract-select-card.selected {
  background: #FFF6EE !important;
}

/* ============================================================
   JOY DEN テーマ — ネオン仕様 (joyden.web.app LP と同じ夜景×グロー)
   ダーク下地 (--grad-night) の上に、シアン/ティール/ブルーのネオン発光。
   ============================================================ */
[data-theme="joyden"] {
  --jd-blue: #1E7FFF;
  --jd-teal: #18B2C6;
  --jd-green: #16C79A;
  --jd-cyan-hi: #7FF7E8;
  --jd-orange: #FF6A1A;
  --jd-orange-hi: #FF8C3A;
  --jd-night: #050B14;
  --jd-night-2: #0A1626;
  --jd-night-3: #0E1F33;
  --jd-panel: #0F1E33;   /* カード面 */
  --jd-panel-2: #142743;  /* カードのホバー面 */
  --jd-line-neon: rgba(24,178,198,0.35);
  --jd-line-neon-strong: rgba(30,127,255,0.55);
  --jd-text-on-dark: #E6EDF6;
  --jd-text-mute-dark: #9DB0C6;
  --jd-radius-md: 14px;
  --jd-radius-lg: 20px;
  --jd-radius-pill: 999px;
  --jd-glow-cyan: 0 0 24px rgba(0,229,200,0.55), 0 0 48px rgba(30,127,255,0.35);
  --jd-glow-cyan-sm: 0 0 12px rgba(24,178,198,0.55), 0 0 24px rgba(30,127,255,0.28);
  --jd-glow-orange: 0 14px 30px -10px rgba(255,106,26,0.7), 0 0 28px rgba(255,140,58,0.55);
  --jd-shadow-panel:
      0 0 0 1px rgba(24,178,198,0.35),
      0 24px 60px -28px rgba(0,0,0,0.7),
      inset 0 0 60px rgba(30,127,255,0.08);
  --jd-shadow-panel-hover:
      0 0 0 1px rgba(0,229,200,0.6),
      0 28px 70px -22px rgba(0,229,200,0.35),
      0 0 24px rgba(24,178,198,0.35),
      inset 0 0 80px rgba(30,127,255,0.12);
  --jd-grad-night: linear-gradient(180deg,#050B14 0%,#0A1626 60%,#0E1F33 100%);
  --jd-grad-cyan: linear-gradient(120deg,#7FF7E8 0%,#00E5C8 30%,#1E7FFF 70%,#5BE3D6 100%);
  --jd-grad: linear-gradient(120deg,#1E7FFF 0%,#18B2C6 50%,#16C79A 100%);
  --jd-grad-orange: linear-gradient(135deg,#FF6A1A 0%,#FF8C3A 100%);
}
[data-theme="joyden"] body,
[data-theme="joyden"] .login-screen {
  background: var(--jd-grad-night) !important;
  background-attachment: fixed !important;
  color: var(--jd-text-on-dark) !important;
  font-family: 'Zen Kaku Gothic New', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif !important;
}
/* 全画面に微かなネオンのブルーム */
[data-theme="joyden"] body::before {
  content: '' !important;
  position: fixed !important; inset: 0 !important;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(0,229,200,0.14) 0, transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(30,127,255,0.14) 0, transparent 42%) !important;
  pointer-events: none !important; z-index: 0 !important; display: block !important;
}

/* Topbar */
[data-theme="joyden"] .topbar {
  background: rgba(5,11,20,0.75) !important;
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--jd-line-neon) !important;
  box-shadow: 0 12px 32px -20px rgba(0,229,200,0.4);
}
[data-theme="joyden"] .topbar-brand {
  color: transparent !important;
  background: url('/tower/assets/joyden-logo.png') left center / contain no-repeat;
  width: 44px; height: 44px;
  padding: 0 !important;
  overflow: hidden;
  position: relative;
  filter: drop-shadow(0 0 12px rgba(0,229,200,0.55)) drop-shadow(0 0 24px rgba(30,127,255,0.35));
}
[data-theme="joyden"] .topbar-brand::before {
  content: '管制塔';
  position: absolute; left: 52px; top: 50%; transform: translateY(-50%);
  color: #fff !important;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 900; font-size: 16px;
  white-space: nowrap;
  text-shadow: 0 0 14px rgba(24,178,198,0.75), 0 0 28px rgba(30,127,255,0.5);
}
[data-theme="joyden"] .topbar-brand::after { display: none !important; }
[data-theme="joyden"] .topbar-brand small { display: none !important; }
[data-theme="joyden"] .topbar { padding-right: 20px; }

/* app-header */
[data-theme="joyden"] .app-header {
  background: rgba(5,11,20,0.85) !important;
  backdrop-filter: saturate(1.4) blur(10px);
  color: var(--jd-text-on-dark) !important;
  border-bottom: 1px solid var(--jd-line-neon) !important;
  box-shadow: 0 12px 32px -20px rgba(0,229,200,0.4);
}
[data-theme="joyden"] .app-header .app-title,
[data-theme="joyden"] .app-header .app-title small {
  color: #fff !important;
  font-family: 'Zen Maru Gothic', sans-serif;
  font-weight: 900;
  text-shadow: 0 0 14px rgba(24,178,198,0.6), 0 0 28px rgba(30,127,255,0.35);
}
[data-theme="joyden"] .app-header .app-title small { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] .app-header .app-title::before {
  content: '';
  display: inline-block;
  width: 32px; height: 32px;
  background: url('/tower/assets/joyden-logo.png') center / contain no-repeat;
  vertical-align: middle;
  margin-right: 8px;
  filter: drop-shadow(0 0 8px rgba(0,229,200,0.6)) drop-shadow(0 0 16px rgba(30,127,255,0.4));
}
[data-theme="joyden"] .btn-link {
  border-color: rgba(24,178,198,0.5) !important;
  color: var(--jd-text-on-dark) !important;
  background: transparent !important;
}
[data-theme="joyden"] .btn-link:hover {
  background: rgba(30,127,255,0.15) !important;
  color: #fff !important;
  box-shadow: 0 0 16px rgba(24,178,198,0.5) !important;
}

/* Header (contract/finance) */
[data-theme="joyden"] .header {
  background: rgba(5,11,20,0.85) !important;
  border-bottom: 1px solid var(--jd-line-neon) !important;
  backdrop-filter: saturate(1.4) blur(10px);
  box-shadow: 0 12px 32px -20px rgba(0,229,200,0.4);
}
[data-theme="joyden"] .brand-title {
  background: var(--jd-grad-cyan);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent !important;
  font-family: 'Oswald', 'Zen Maru Gothic', sans-serif;
  font-style: italic;
  letter-spacing: 0.04em;
  filter: drop-shadow(0 0 12px rgba(0,229,200,0.5)) drop-shadow(0 0 24px rgba(30,127,255,0.35));
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
}
[data-theme="joyden"] .brand-title [class^="l"],
[data-theme="joyden"] .brand-title [class*="l"],
[data-theme="joyden"] .brand-title .brand-dept { color: inherit !important; }
[data-theme="joyden"] .brand-title::before {
  content: '';
  display: inline-block;
  width: 36px; height: 36px;
  background: url('/tower/assets/joyden-logo.png') center / contain no-repeat;
  flex-shrink: 0;
  -webkit-text-fill-color: initial;
  filter: drop-shadow(0 0 10px rgba(0,229,200,0.55)) drop-shadow(0 0 22px rgba(30,127,255,0.35));
}
[data-theme="joyden"] .brand-sub { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] .brand-tag {
  background: rgba(30,127,255,0.15) !important;
  color: var(--jd-cyan-hi) !important;
  border: 1px solid var(--jd-line-neon) !important;
  text-shadow: 0 0 10px rgba(0,229,200,0.6);
}

/* Business switcher */
[data-theme="joyden"] .biz-switch {
  background: rgba(15,30,51,0.75) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-md) !important;
  box-shadow: var(--jd-glow-cyan-sm) !important;
  backdrop-filter: blur(8px);
}
[data-theme="joyden"] .biz-switch .label { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] .biz-btn {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-pill) !important;
  color: var(--jd-text-on-dark) !important;
  box-shadow: none !important;
}
[data-theme="joyden"] .biz-btn:hover {
  border-color: rgba(0,229,200,0.7) !important;
  box-shadow: 0 0 12px rgba(0,229,200,0.4) !important;
}
[data-theme="joyden"] .biz-btn.active {
  background: var(--jd-grad) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 0 16px rgba(30,127,255,0.6), 0 0 32px rgba(24,178,198,0.4) !important;
  text-shadow: 0 0 8px rgba(255,255,255,0.5);
}

/* Hero (today) — ダーク+シアン発光 */
[data-theme="joyden"] .hero {
  background: linear-gradient(135deg, #0A1626 0%, #0E1F33 100%) !important;
  border: 1px solid var(--jd-line-neon-strong) !important;
  color: #fff !important;
  border-radius: var(--jd-radius-lg) !important;
  transform: none !important;
  box-shadow: var(--jd-glow-cyan), inset 0 0 80px rgba(30,127,255,0.15) !important;
  position: relative;
  overflow: visible;
}
[data-theme="joyden"] .hero::after {
  content: '';
  position: absolute; inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: var(--jd-grad-cyan);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events: none;
  opacity: 0.6;
}
[data-theme="joyden"] .hero::before {
  background: var(--jd-grad-cyan) !important;
  color: #050B14 !important;
  border: none !important;
  transform: none !important;
  font-family: 'Oswald','Zen Maru Gothic', sans-serif;
  box-shadow: 0 0 16px rgba(0,229,200,0.7);
  text-shadow: none;
  font-style: italic;
  letter-spacing: 0.06em;
}
[data-theme="joyden"] .hero-date {
  color: var(--jd-cyan-hi) !important;
  text-shadow: 0 0 12px rgba(0,229,200,0.6);
}
[data-theme="joyden"] .hero-greet,
[data-theme="joyden"] .hero-greet small,
[data-theme="joyden"] .hero-cta {
  color: #fff !important;
}
[data-theme="joyden"] .hero-greet { text-shadow: 0 0 14px rgba(24,178,198,0.35); }
[data-theme="joyden"] .hero-cta {
  border-bottom-color: var(--jd-cyan-hi) !important;
  color: var(--jd-cyan-hi) !important;
  text-shadow: 0 0 10px rgba(0,229,200,0.5);
}
[data-theme="joyden"] .focus-item {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid var(--jd-line-neon) !important;
  color: #fff !important;
  border-radius: var(--jd-radius-md) !important;
  backdrop-filter: blur(4px);
}
[data-theme="joyden"] .focus-item.overdue {
  background: rgba(255,106,26,0.15) !important;
  border-color: rgba(255,140,58,0.7) !important;
  box-shadow: 0 0 16px rgba(255,106,26,0.35);
}
[data-theme="joyden"] .focus-item.today {
  background: rgba(30,127,255,0.15) !important;
  border-color: rgba(0,229,200,0.7) !important;
  box-shadow: 0 0 16px rgba(0,229,200,0.35);
}
[data-theme="joyden"] .focus-item .meta { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] .focus-empty {
  background: rgba(255,255,255,0.04) !important;
  color: var(--jd-text-mute-dark) !important;
  border: 1px dashed var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-md) !important;
}

/* 部署カード — ダーク面+ネオン枠 */
[data-theme="joyden"] .dept-card {
  background: var(--jd-panel) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-lg) !important;
  box-shadow: var(--jd-shadow-panel) !important;
  transform: none !important;
  --accent: var(--jd-cyan-hi) !important;
  position: relative;
  overflow: hidden;
}
[data-theme="joyden"] .dept-card::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at 30% 0%, rgba(0,229,200,0.12) 0%, transparent 60%);
  pointer-events: none;
}
[data-theme="joyden"] .dept-card:hover {
  transform: translate(-2px, -2px) !important;
  border-color: rgba(0,229,200,0.75) !important;
  box-shadow: var(--jd-shadow-panel-hover) !important;
}
[data-theme="joyden"] .dept-card .num {
  background: var(--jd-night) !important;
  color: var(--jd-cyan-hi) !important;
  border: 1px solid var(--jd-line-neon-strong) !important;
  box-shadow: 0 0 12px rgba(0,229,200,0.6) !important;
  text-shadow: 0 0 8px rgba(0,229,200,0.7);
  transform: none !important;
  font-style: italic;
  font-family: 'Oswald','Caveat', cursive;
}
[data-theme="joyden"] .dept-card .thumb {
  background:
    radial-gradient(circle at 30% 20%, rgba(0,229,200,0.18), transparent 55%),
    radial-gradient(circle at 80% 90%, rgba(30,127,255,0.18), transparent 55%),
    rgba(5,11,20,0.7) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-md) !important;
  box-shadow: inset 0 0 30px rgba(30,127,255,0.15);
}
/* 元の暖色系イラスト (オレンジ・黄・ピンク) を JOY DEN 寒色パレットに hue-rotate。
   彩度と明度を持ち上げてネオンっぽく、外側にシアン/ブルーのドロップシャドウ2重。 */
[data-theme="joyden"] .dept-card .thumb svg {
  filter:
    hue-rotate(175deg)
    saturate(1.55)
    brightness(1.18)
    contrast(1.05)
    drop-shadow(0 0 6px rgba(0,229,200,0.55))
    drop-shadow(0 0 14px rgba(30,127,255,0.4)) !important;
  opacity: 1 !important;
}
/* SVG 内の白/クリーム面 (#FFFCF2, #FFF4E6 系) は hue-rotate では白のまま。
   これはネオン風のペーパー面としてそのまま活かす。線と面の彩色は
   hue-rotate 後: 黄→シアン, オレンジ→ブルー, ピンク→ミント, 緑→紫（軽微）。 */
[data-theme="joyden"] .dept-card .tag {
  background: var(--jd-grad-cyan) !important;
  border: none !important;
  color: #050B14 !important;
  box-shadow: 0 0 16px rgba(0,229,200,0.5) !important;
  transform: none !important;
  border-radius: var(--jd-radius-pill) !important;
  font-family: 'Oswald','Zen Maru Gothic', sans-serif;
  font-weight: 800;
  letter-spacing: 0.1em;
}
[data-theme="joyden"] .dept-card h3 {
  font-family: 'Zen Maru Gothic', sans-serif;
  color: #fff !important;
  text-shadow: 0 0 10px rgba(24,178,198,0.35);
}
[data-theme="joyden"] .dept-card .desc { color: var(--jd-text-mute-dark) !important; }
[data-theme="joyden"] .dept-card .foot {
  border-top: 1px solid var(--jd-line-neon) !important;
}
[data-theme="joyden"] .dept-card .num-big { color: var(--jd-cyan-hi) !important; text-shadow: 0 0 12px rgba(0,229,200,0.5); font-family:'Oswald', sans-serif; font-style: italic; }
[data-theme="joyden"] .dept-card .num-big .unit { color: var(--jd-text-mute-dark) !important; text-shadow: none; }
[data-theme="joyden"] .dept-card .arrow { color: #fff !important; }

/* Activity */
[data-theme="joyden"] .activity {
  background: var(--jd-panel) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-lg) !important;
  transform: none !important;
  box-shadow: var(--jd-shadow-panel) !important;
  color: var(--jd-text-on-dark);
}
[data-theme="joyden"] .activity h3 { color: #fff !important; text-shadow: 0 0 10px rgba(24,178,198,0.4); }
[data-theme="joyden"] .activity h3::after { border-top-color: var(--jd-line-neon) !important; }
[data-theme="joyden"] .activity li { border-bottom-color: var(--jd-line-neon) !important; }
[data-theme="joyden"] .activity .date {
  color: var(--jd-cyan-hi) !important;
  font-family: 'Oswald','Zen Maru Gothic', sans-serif;
  font-style: italic;
  text-shadow: 0 0 10px rgba(0,229,200,0.5);
}
[data-theme="joyden"] .section-label .label-num {
  color: var(--jd-cyan-hi) !important;
  font-family: 'Oswald', sans-serif;
  font-style: italic;
  text-shadow: 0 0 10px rgba(0,229,200,0.5);
}
[data-theme="joyden"] .section-label .label-title { color: #fff !important; }
[data-theme="joyden"] .section-label .label-rule { border-top-color: var(--jd-line-neon) !important; }

/* Login */
[data-theme="joyden"] .login-card {
  background: var(--jd-panel) !important;
  border: 1px solid var(--jd-line-neon-strong) !important;
  border-radius: var(--jd-radius-lg) !important;
  box-shadow: var(--jd-glow-cyan), inset 0 0 60px rgba(30,127,255,0.15) !important;
  transform: none !important;
}
[data-theme="joyden"] .login-card h1 {
  color: #fff !important;
  font-family:'Zen Maru Gothic', sans-serif;
  text-shadow: 0 0 12px rgba(24,178,198,0.6), 0 0 24px rgba(30,127,255,0.35);
}
[data-theme="joyden"] .login-card .sub { color: var(--jd-cyan-hi) !important; text-shadow: 0 0 10px rgba(0,229,200,0.5); }
[data-theme="joyden"] .form-input {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid var(--jd-line-neon) !important;
  color: #fff !important;
  border-radius: 8px !important;
}
[data-theme="joyden"] .form-input::placeholder { color: var(--jd-text-mute-dark) !important; }
[data-theme="joyden"] .form-input:focus {
  border-color: var(--jd-cyan-hi) !important;
  box-shadow: 0 0 0 2px rgba(0,229,200,0.35), 0 0 20px rgba(0,229,200,0.35) !important;
  background: rgba(255,255,255,0.08) !important;
}
[data-theme="joyden"] .btn-primary,
[data-theme="joyden"] .btn-add {
  background: var(--jd-grad-orange) !important;
  border: none !important;
  color: #fff !important;
  border-radius: var(--jd-radius-md) !important;
  box-shadow: var(--jd-glow-orange) !important;
  text-shadow: 0 0 8px rgba(0,0,0,0.35);
}
[data-theme="joyden"] .btn-logout {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--jd-line-neon) !important;
  color: var(--jd-text-on-dark) !important;
  border-radius: var(--jd-radius-pill) !important;
  box-shadow: none !important;
}
[data-theme="joyden"] .btn-logout:hover {
  background: rgba(30,127,255,0.15) !important;
  border-color: rgba(0,229,200,0.7) !important;
  color: #fff !important;
  box-shadow: 0 0 16px rgba(24,178,198,0.5) !important;
}

/* Filter chips */
[data-theme="joyden"] .filter-chip {
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--jd-line-neon);
  border-radius: var(--jd-radius-pill);
  color: var(--jd-text-on-dark);
}
[data-theme="joyden"] .filter-chip:hover {
  border-color: rgba(0,229,200,0.7);
  box-shadow: 0 0 12px rgba(0,229,200,0.35);
}
[data-theme="joyden"] .filter-chip.active {
  background: var(--jd-grad) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 0 16px rgba(30,127,255,0.55) !important;
}

/* Cards / summary — 全部ダーク面+ネオン枠 */
[data-theme="joyden"] .summary-card,
[data-theme="joyden"] .kpi-card,
[data-theme="joyden"] .case-list,
[data-theme="joyden"] .invoice-card,
[data-theme="joyden"] .wizard,
[data-theme="joyden"] .contract-card,
[data-theme="joyden"] .settings-card,
[data-theme="joyden"] .detail-head,
[data-theme="joyden"] .month-breakdown,
[data-theme="joyden"] .preview-box,
[data-theme="joyden"] .contract-select-card {
  background: var(--jd-panel) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-lg) !important;
  box-shadow: var(--jd-shadow-panel) !important;
  color: var(--jd-text-on-dark) !important;
}
[data-theme="joyden"] .contract-select-card.selected {
  background: linear-gradient(135deg, rgba(30,127,255,0.2), rgba(0,229,200,0.15)) !important;
  border-color: var(--jd-cyan-hi) !important;
  box-shadow: 0 0 16px rgba(0,229,200,0.5), inset 0 0 30px rgba(30,127,255,0.15) !important;
}
[data-theme="joyden"] .summary-card.confirmed { border-left: 4px solid var(--jd-cyan-hi) !important; box-shadow: var(--jd-shadow-panel), inset 4px 0 24px rgba(0,229,200,0.15) !important; }
[data-theme="joyden"] .summary-card.expected  { border-left: 4px solid var(--jd-blue) !important; box-shadow: var(--jd-shadow-panel), inset 4px 0 24px rgba(30,127,255,0.15) !important; }
[data-theme="joyden"] .summary-card.warn      { border-left: 4px solid var(--jd-orange) !important; box-shadow: var(--jd-shadow-panel), inset 4px 0 24px rgba(255,106,26,0.15) !important; }
[data-theme="joyden"] .summary-card-label,
[data-theme="joyden"] .kpi-label { color: var(--jd-text-mute-dark) !important; }
[data-theme="joyden"] .summary-card-value,
[data-theme="joyden"] .kpi-value { color: #fff !important; text-shadow: 0 0 12px rgba(0,229,200,0.35); }
[data-theme="joyden"] .summary-card-sub,
[data-theme="joyden"] .kpi-sub { color: var(--jd-text-mute-dark) !important; }

/* 経理部 KPI cards のバリエーション */
[data-theme="joyden"] .kpi-card.month-issue {
  background: linear-gradient(135deg, var(--jd-panel), rgba(255,140,58,0.12)) !important;
  box-shadow: 0 0 0 1px rgba(255,140,58,0.5), 0 24px 60px -28px rgba(0,0,0,0.7), inset 0 0 60px rgba(255,106,26,0.12) !important;
}
[data-theme="joyden"] .kpi-card.unpaid {
  background: linear-gradient(135deg, var(--jd-panel), rgba(252,211,77,0.12)) !important;
  box-shadow: 0 0 0 1px rgba(252,211,77,0.5), 0 24px 60px -28px rgba(0,0,0,0.7), inset 0 0 60px rgba(252,211,77,0.12) !important;
}
[data-theme="joyden"] .kpi-card.paid {
  background: linear-gradient(135deg, var(--jd-panel), rgba(22,199,154,0.12)) !important;
  box-shadow: 0 0 0 1px rgba(22,199,154,0.55), 0 24px 60px -28px rgba(0,0,0,0.7), inset 0 0 60px rgba(22,199,154,0.15) !important;
}
[data-theme="joyden"] .kpi-card-value { color: #fff !important; text-shadow: 0 0 14px rgba(0,229,200,0.5); }
[data-theme="joyden"] .kpi-card-label,
[data-theme="joyden"] .kpi-card-amount { color: var(--jd-cyan-hi) !important; text-shadow: 0 0 8px rgba(0,229,200,0.35); }

/* Tables */
[data-theme="joyden"] table thead { background: rgba(255,255,255,0.04) !important; }
[data-theme="joyden"] table th { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] table td { color: var(--jd-text-on-dark) !important; }
[data-theme="joyden"] tbody tr { border-top-color: var(--jd-line-neon) !important; }
[data-theme="joyden"] tbody tr:hover { background: rgba(30,127,255,0.08) !important; }

/* Kanban */
[data-theme="joyden"] .kanban-col {
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-md) !important;
}
[data-theme="joyden"] .kanban-col-name { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] .kanban-col-count { background: rgba(255,255,255,0.06) !important; color: #fff !important; border-color: var(--jd-line-neon) !important; }
[data-theme="joyden"] .kanban-card {
  background: rgba(15,30,51,0.7) !important;
  border: 1px solid var(--jd-line-neon) !important;
  border-radius: var(--jd-radius-md) !important;
  box-shadow: 0 0 12px rgba(0,229,200,0.15), inset 0 0 20px rgba(30,127,255,0.06) !important;
  color: var(--jd-text-on-dark) !important;
}
[data-theme="joyden"] .kanban-card:hover {
  border-color: rgba(0,229,200,0.7) !important;
  box-shadow: 0 0 16px rgba(0,229,200,0.4) !important;
}
[data-theme="joyden"] .kanban-card .title { color: #fff !important; }
[data-theme="joyden"] .kanban-card .client { color: var(--jd-text-mute-dark) !important; }
[data-theme="joyden"] .kanban-card .amount { color: var(--jd-cyan-hi) !important; text-shadow: 0 0 8px rgba(0,229,200,0.4); }

/* Modal — ダーク面に */
[data-theme="joyden"] .modal-overlay,
[data-theme="joyden"] .modal-bg {
  background: rgba(0,0,0,0.7) !important;
}
[data-theme="joyden"] .modal {
  background: var(--jd-panel) !important;
  color: var(--jd-text-on-dark) !important;
  border: 1px solid var(--jd-line-neon-strong) !important;
  border-radius: var(--jd-radius-lg) !important;
  box-shadow: var(--jd-glow-cyan), inset 0 0 60px rgba(30,127,255,0.1) !important;
}
[data-theme="joyden"] .modal h2,
[data-theme="joyden"] .modal-title { color: #fff !important; text-shadow: 0 0 10px rgba(24,178,198,0.4); }
[data-theme="joyden"] .field label,
[data-theme="joyden"] .field-label { color: var(--jd-cyan-hi) !important; }
[data-theme="joyden"] input[type="text"],
[data-theme="joyden"] input[type="email"],
[data-theme="joyden"] input[type="password"],
[data-theme="joyden"] input[type="number"],
[data-theme="joyden"] input[type="date"],
[data-theme="joyden"] input[type="month"],
[data-theme="joyden"] input[type="tel"],
[data-theme="joyden"] select,
[data-theme="joyden"] textarea {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid var(--jd-line-neon) !important;
  color: #fff !important;
}
[data-theme="joyden"] input:focus,
[data-theme="joyden"] select:focus,
[data-theme="joyden"] textarea:focus {
  border-color: var(--jd-cyan-hi) !important;
  box-shadow: 0 0 0 2px rgba(0,229,200,0.35), 0 0 16px rgba(0,229,200,0.3) !important;
  background: rgba(255,255,255,0.1) !important;
}
[data-theme="joyden"] .btn-sm,
[data-theme="joyden"] .btn {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid var(--jd-line-neon) !important;
  color: var(--jd-text-on-dark) !important;
}
[data-theme="joyden"] .btn-sm:hover,
[data-theme="joyden"] .btn:hover {
  border-color: rgba(0,229,200,0.7) !important;
  color: #fff !important;
  box-shadow: 0 0 12px rgba(0,229,200,0.4) !important;
}
[data-theme="joyden"] .btn.btn-primary {
  background: var(--jd-grad-orange) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: var(--jd-glow-orange) !important;
}
[data-theme="joyden"] .btn-danger { color: var(--jd-orange-hi) !important; border-color: rgba(255,140,58,0.6) !important; }

/* Wizard step dots */
[data-theme="joyden"] .wizard-step-dot { background: rgba(255,255,255,0.15) !important; }
[data-theme="joyden"] .wizard-step-dot.done { background: var(--jd-teal) !important; box-shadow: 0 0 8px rgba(24,178,198,0.6); }
[data-theme="joyden"] .wizard-step-dot.active { background: var(--jd-cyan-hi) !important; box-shadow: 0 0 12px rgba(0,229,200,0.8); }
[data-theme="joyden"] .wizard-step-label,
[data-theme="joyden"] .wizard-step-title { color: var(--jd-cyan-hi) !important; text-shadow: 0 0 8px rgba(0,229,200,0.35); }
[data-theme="joyden"] .wizard-step-desc { color: var(--jd-text-mute-dark) !important; }

/* Toast */
[data-theme="joyden"] .toast {
  background: var(--jd-panel) !important;
  color: #fff !important;
  border: 1px solid var(--jd-cyan-hi) !important;
  box-shadow: 0 0 20px rgba(0,229,200,0.5) !important;
}

/* Migration banner */
[data-theme="joyden"] .biz-migration {
  background: rgba(30,127,255,0.15) !important;
  border: 1px solid var(--jd-cyan-hi) !important;
  color: #fff !important;
  box-shadow: 0 0 16px rgba(0,229,200,0.35) !important;
}

/* ============================================================
   共通: 印刷プレビュー用の紙面は無干渉
   .invoice-paper / .contract-text-box / @media print は既存のまま
   ============================================================ */
[data-theme="riseup"] .invoice-paper,
[data-theme="joyden"] .invoice-paper,
[data-theme="riseup"] .contract-text-box,
[data-theme="joyden"] .contract-text-box {
  background: #FFFFFF !important;
  color: #1F2937 !important;
  font-family: 'M PLUS Rounded 1c', sans-serif !important;
  border: 2px solid #1F2937 !important;
  border-radius: 16px !important;
  box-shadow: 6px 6px 0 #1F2937 !important;
}
[data-theme="riseup"] .invoice-paper *,
[data-theme="joyden"] .invoice-paper *,
[data-theme="riseup"] .contract-text-box *,
[data-theme="joyden"] .contract-text-box * {
  font-family: inherit;
}

/* Print: テーマの色を全部無効化 */
@media print {
  [data-theme] body {
    background: #FFFFFF !important;
    color: #1F2937 !important;
  }
  [data-theme] .topbar,
  [data-theme] .app-header,
  [data-theme] .header,
  [data-theme] .biz-switch,
  [data-theme] .hero,
  [data-theme] .dept-grid,
  [data-theme] .activity,
  [data-theme] .biz-migration {
    display: none !important;
  }
}

/* Mobile: 崩れないようフォールバック */
@media (max-width: 520px) {
  [data-theme="riseup"] .topbar-brand,
  [data-theme="joyden"] .topbar-brand {
    width: 88px; height: 36px;
  }
  [data-theme="riseup"] .app-header .app-title::before,
  [data-theme="joyden"] .app-header .app-title::before {
    width: 72px;
  }
}
