:root {
  --bg:#100d17;
  --surface:#1b1526;
  --surface-raised:#241c32;
  --border:#342841;
  --text:#eee8f6;
  --muted:#a297af;
  --accent:#c6a1f0;
  --accent-dim:#ab83da;
  --soft-accent:#30223f;
}
.sidebar {
  width:280px;padding:22px 18px;overflow-y:auto;overscroll-behavior:contain;
  background:#16111f;scrollbar-width:thin;scrollbar-color:#463452 transparent;
}
.sidebar>* { flex-shrink:0; }
.sidebar .brand { padding:0 8px 14px;gap:10px;font-size:24px;justify-content:flex-start; }
.sidebar .brand>span:last-child { display:block; }
.sidebar .brand-symbol { width:35px;font-size:44px; }
.sidebar .brand-small { font-size:7px; }
.sidebar .nav-item { font-size:11px;justify-content:flex-start;padding:8px 10px;gap:9px;text-decoration:none; }
.sidebar .nav-item svg { width:17px;height:17px; }
.sidebar .nav-count { display:block;font-size:9px; }
.sidebar-controls { margin:10px 0 14px;padding-top:12px;border-top:1px solid var(--border); }
.sidebar .section-heading { margin-bottom:14px;align-items:flex-start;gap:4px; }
.sidebar .section-heading h2 { font-size:13px;gap:5px; }
.sidebar .section-heading .pill { display:none; }
.sidebar .section-heading p { font-size:9px;line-height:1.6; }
.sidebar .week-arrows { gap:2px; }
.sidebar .week-arrows .icon-button { width:24px;height:25px; }
.sidebar .search-row { flex-direction:column;gap:8px;margin-bottom:12px; }
.sidebar .search-box { width:100%;min-width:0;height:35px;flex:auto; }
.sidebar .select-wrap { width:100%;max-width:none;height:30px; }
.sidebar .select-wrap select { max-width:none;width:100%;height:28px; }
.sidebar .filter-row { flex-direction:column;align-items:flex-start;gap:11px;padding:0; }
.sidebar .tabs { width:100%;gap:2px; }
.sidebar .tab { padding:6px 7px;font-size:9px;gap:5px; }
.sidebar .key-filter { margin:0;font-size:9px; }
.extra-filters { margin-top:8px;font-size:10px;color:var(--muted); }
.extra-filters summary { cursor:pointer;padding:3px 0; }
.extra-filters .select-wrap { margin:8px 0 10px; }
.sidebar .panel { padding:13px;background:#1c1526;border-color:#352743; }
.sidebar .panel-heading h2 { font-size:11px; }
.sidebar .calendar-month { margin-top:8px; }
.sidebar .calendar-day { aspect-ratio:1.5;font-size:10px; }
.sidebar .calendar-days,.sidebar .calendar-weekdays { max-width:none; }
.sidebar .calendar-legend { font-size:8px; }
.sidebar .reset-panel { margin:12px 0 0;padding:13px;background:#21172e; }
.sidebar .reset-panel .eyebrow { font-size:8px; }
.sidebar .reset-panel p { font-size:9px; }
.sidebar .sidebar-bottom { display:block;margin:16px 0 0; }
.sidebar .save-status { font-size:9px;gap:6px;padding:6px 10px; }
.app-shell { margin-left:280px; }
main { padding:24px;max-width:1800px; }
.dungeon-grid { grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:18px; }
.card-art { height:180px;background:radial-gradient(ellipse at 50% 65%,#59416d45,transparent 72%); }
.card-art img { height:151px; }
.card-content { padding:4px 16px 15px; }
.card-content h3 { font-size:15px; }
.card-name { font-size:10px; }
.card-action { font-size:10px;min-height:36px; }
.card-tools .text-button { font-size:10px; }
.card-region { font-size:9px; }
.card-meta { font-size:9px; }
.dungeon-card:hover { border-color:#775193; }
.dungeon-card.completed { border-color:#72518e; }
.card-art::before { border-color:#b58bdc16;box-shadow:0 0 0 18px #b58bdc05,0 0 0 38px #b58bdc03; }
.backup-actions { display:flex;gap:8px;flex-wrap:wrap;margin:18px 0; }
.sidebar-toggle,.sidebar-backdrop { display:none; }
.toast { left:calc(50% + 140px); }
@media(min-width:1600px) {
  main { padding:28px; }
  .dungeon-grid { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
}
@media(max-width:760px) {
  .sidebar { width:280px;max-width:calc(100vw - 60px);z-index:30;transform:translateX(-100%);visibility:hidden;transition:transform .2s,visibility .2s; }
  .sidebar-open .sidebar { transform:translateX(0);visibility:visible; }
  .sidebar-open { overflow:hidden; }
  .sidebar-toggle { display:grid;place-items:center;position:fixed;left:12px;bottom:16px;width:44px;height:44px;border:1px solid #6b4a85;border-radius:12px;z-index:40;background:#392548;color:#ecd9ff;font-size:21px;box-shadow:0 5px 20px #0006; }
  .sidebar-backdrop:not([hidden]) { display:block;position:fixed;inset:0;z-index:25;background:#08050dcc; }
  .app-shell { margin-left:0; }
  main { padding:14px 14px 75px; }
  .dungeon-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
  .card-art { height:160px; }
  .card-art img { height:135px; }
  .card-content { padding:4px 12px 13px; }
  .card-content h3 { font-size:13px; }
  .card-name { font-size:9px; }
  .card-meta { font-size:8px; }
  .card-action,.card-tools .text-button { font-size:9px; }
  .toast { left:50%;bottom:70px; }
}
@media(max-width:380px) {
  .dungeon-grid { grid-template-columns:1fr; }
  .card-art { height:175px; }
  .card-art img { height:150px; }
}

/* Compact completion and clear, live card reordering. */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
#completion-dialog { width:min(450px,calc(100% - 32px)); }
#completion-dialog .modal-subtitle { margin-bottom:16px; }
#completion-dialog .resource-checklist { margin:16px 0 0; }
#completion-dialog .modal-actions { margin-top:18px; }
.drag-handle { width:auto;min-width:82px;height:32px;padding:0 8px;gap:4px;display:flex;align-items:center;justify-content:center;border-color:#74558d66;background:#261b36dd; }
.drag-handle span { font-size:10px; }
.dungeon-card .card-action::after { cursor:grab; }
.dungeon-card.is-dragging,.daily-card.is-dragging { opacity:.3;transform:none;border:2px dashed var(--accent);background:var(--soft-accent); }
.drag-ghost { position:fixed!important;left:0;top:0;z-index:1000;pointer-events:none;opacity:.96;box-shadow:0 20px 60px #0009;border-color:var(--accent);transition:none!important; }
.drag-ghost .card-art img { animation:none!important; }
.reordering,.reordering * { cursor:grabbing!important;user-select:none; }
.reordering .dungeon-card,.reordering .daily-card { transition:none; }
@media(max-width:480px){.drag-handle { min-width:68px;height:30px;padding:0 5px; }.drag-handle span { font-size:9px; }}

#daily-view { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,360px));gap:20px; }
.daily-card { padding:24px;background:linear-gradient(145deg,#261b35,#191320);border:1px solid #463153;border-radius:14px; }
.daily-card-heading { display:flex;align-items:center;gap:12px; }
.daily-symbol { display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#392747;color:#d5b5fa; }
.daily-symbol svg { width:23px;height:23px; }
.daily-card h1 { font-size:22px;letter-spacing:-.5px;margin:0; }
.daily-card-heading p { font-size:11px;color:var(--muted);margin-top:3px; }
.daily-state { margin-left:auto;color:var(--accent);font-size:10px; }
.offering-art { display:grid;place-items:center;height:180px;margin:14px 0;background:radial-gradient(ellipse,#9d6bcf25,transparent 68%); }
.offering-art img { object-fit:contain;filter:drop-shadow(0 12px 15px #0006); }
.daily-offering .eyebrow { color:var(--muted);font-size:9px; }
.daily-offering h2 { font-size:22px;line-height:1.35;margin-top:9px; }
.daily-offering h2 span { color:var(--accent); }
.daily-bonus { font-size:12px;color:#b7a9c5;line-height:1.75;margin:14px 0 22px; }
.daily-action { width:100%;min-height:42px;font-size:12px; }
.daily-foot { display:flex;justify-content:space-between;gap:8px;margin-top:17px;color:var(--muted);font-size:9px; }
.daily-foot a { color:var(--accent);text-decoration:none; }
.daily-card.is-complete { border-color:#9972bb; }
.daily-unavailable { padding:35px 0;font-size:13px;line-height:1.8;color:var(--muted); }
@media(max-width:480px){#daily-view{grid-template-columns:1fr}.daily-card{padding:20px}}

/* The four riders share a compact fan and float as one illustration. */
.card-art .boss-group { position:relative; width:100%; height:100%; pointer-events:none; animation:boss-float 6s ease-in-out infinite; animation-delay:var(--float-delay,0s); animation-play-state:paused; }
.card-art.art-visible .boss-group { animation-play-state:running; }
.card-art .boss-group img { position:absolute; left:50%; bottom:12px; width:55%; max-width:none; height:135px; margin-left:-27.5%; object-fit:contain; transform-origin:50% 90%; transform:translate(var(--fan-x),var(--fan-y)) rotate(var(--fan-angle)); animation:none; }
.card-art .boss-group img:nth-child(1) { --fan-x:-30%; --fan-y:3px; --fan-angle:-22deg; z-index:1; }
.card-art .boss-group img:nth-child(2) { --fan-x:-11%; --fan-y:-9px; --fan-angle:-8deg; z-index:3; }
.card-art .boss-group img:nth-child(3) { --fan-x:11%; --fan-y:-9px; --fan-angle:8deg; z-index:4; }
.card-art .boss-group img:nth-child(4) { --fan-x:30%; --fan-y:3px; --fan-angle:22deg; z-index:2; }
.dungeon-card:hover .card-art .boss-group img { transform:translate(var(--fan-x),var(--fan-y)) rotate(var(--fan-angle)); scale:1; }
.animations-paused .card-art .boss-group, .reordering .card-art .boss-group { animation-play-state:paused; }
.drag-ghost .card-art .boss-group { animation:none; }
@media(prefers-reduced-motion:reduce) { .card-art .boss-group { animation:none; } }
@media(max-width:480px) { .card-art .boss-group img { height:115px; bottom:4px; } }

.daily-card-heading h2 { margin:0;font-size:22px;overflow-wrap:anywhere; }
.daily-card { display:flex;flex-direction:column; }
.daily-card .daily-action { margin-top:auto; }
.kerubim-emblem { text-align:center;font-size:90px;color:#d6b5ef;padding:22px; }
.objective-progress { font-size:24px;text-align:center;padding:45px 0;color:#a994bb; }
.objective-progress strong { font-size:52px;color:#e7d3f6; }
.objective-controls { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px; }
.objective-controls span { font-size:12px;color:#b7a9c5; }
.create-objective { border-style:dashed;min-height:230px;align-items:center;justify-content:center;gap:18px;color:#c9a6e6;cursor:pointer;font-size:16px; }
.create-objective span { font-size:40px; }
.create-objective:hover { background:#30213e; }
.objective-field { display:flex;flex-direction:column;gap:10px;margin:20px 0;font-size:13px; }
.objective-field input { background:#191221;color:#eee;border:1px solid #574363;border-radius:8px;padding:12px;font:inherit; }

.kerubim-emblem { padding:22px;display:flex;justify-content:center; }
.kerubim-emblem img { width:160px;height:160px;object-fit:cover;border-radius:50%;border:2px solid #604875;box-shadow:0 8px 28px #100b1970; }

.fight-club-card .objective-progress svg { width:78px;height:78px;color:#c4a0e7; }
.fight-club-undo { align-self:center;margin-top:14px; }
