/* Shared card system: neutral graphite, lime accents, clear content hierarchy. */
#daily-view,.dungeon-grid { gap:18px;align-items:stretch; }
#daily-view { grid-template-columns:repeat(auto-fill,minmax(min(100%,285px),1fr)); }
.dungeon-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr)); }
.daily-card,.dungeon-card { border:1px solid #494b45;border-radius:18px;background:#292b27;box-shadow:0 4px 14px #00000012;transition:border-color .2s,box-shadow .2s;overflow:hidden; }
.daily-card:hover,.dungeon-card:hover { border-color:#788552;box-shadow:0 8px 24px #00000024; }
.daily-card.is-complete,.dungeon-card.completed { border-color:#73864c; }
.dungeon-card { display:flex;flex-direction:column; }
.dungeon-card .card-art { height:180px;flex:none;background:radial-gradient(ellipse at 50% 80%,#4f5d313b,transparent 70%),#252722; }
.dungeon-card .card-art::before { width:120px;height:120px;top:38px;left:calc(50% - 60px);border-color:#b2c17e15;box-shadow:0 0 0 24px #b2c17e04; }
.dungeon-card .card-art::after { height:32px;background:linear-gradient(transparent,#292b27);pointer-events:none; }
.dungeon-card .card-art>img { height:140px;bottom:4px; }
.dungeon-card .level-badge { top:14px;left:16px;padding:0;border:0;background:none;color:#969d8b;font-size:9px;letter-spacing:1px;font-weight:600; }
.dg-state { position:absolute;right:14px;top:11px;z-index:1;display:flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #535b423d;border-radius:20px;color:#b7bea8;background:#30352bdd;font-size:9px; }
.dg-state i { width:4px;height:4px;border-radius:50%;background:#a8bc70; }
.dg-state svg { width:12px;height:12px; }
.dg-state.done { color:#d0e49c;background:#3e4d29; }
.card-content { display:flex;flex-direction:column;flex:1;padding:8px 18px 18px; }
.card-region { font-size:9px;font-weight:500;letter-spacing:.6px;line-height:1.5;margin-bottom:6px; }
.card-content h3 { font-size:19px;font-weight:650;line-height:1.2;letter-spacing:-.4px;white-space:normal;overflow-wrap:anywhere;color:#edf0e5;margin:0; }
.card-content .card-name { white-space:normal;overflow:visible;font-size:11px;line-height:1.5;color:#a5aa9e;margin:7px 0 16px;min-height:33px; }
.card-meta { margin-top:auto;gap:8px;flex-wrap:wrap;padding:0 0 14px;font-size:10px;min-height:0;color:#a6b191; }
.card-meta svg { width:13px;height:13px; }
.dungeon-card .card-action,.daily-card .daily-action { min-height:40px;border:1px solid #657644;border-radius:10px;font-size:12px;font-weight:600;gap:8px; }
.dungeon-card .card-action { background:#3c482c;color:#d6e7b2; }
.dungeon-card .card-action:hover { background:#495a32;border-color:#93ab5a; }
.dungeon-card .card-action::after { border-radius:18px; }
.dungeon-card .card-action svg { width:15px;height:15px; }
.card-tools { margin-top:12px;padding-top:12px;border-color:#42473a;align-items:center;flex-wrap:wrap; }
.card-tools .text-button { font-size:10px; }
.card-tools .undo-card { margin-left:auto; }
.daily-card { padding:20px; }
.daily-card-heading { gap:10px;align-items:center;min-height:47px;margin-bottom:20px; }
.daily-title { flex:1;min-width:0; }
.daily-card-heading .daily-title p { margin:0 0 3px;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#a6b48c; }
.daily-card-heading h2 { font-size:21px;font-weight:650;line-height:1.2;letter-spacing:-.5px;color:#edf0e5; }
.daily-symbol { flex:none;width:39px;height:39px;border:1px solid #52613b;border-radius:12px;background:#39432b;color:#b5ce7d; }
.daily-symbol svg { width:20px;height:20px; }
.daily-state { display:grid;place-items:center;width:24px;height:24px;flex:none;color:#737e61; }
.daily-state svg { width:18px;height:18px; }
.daily-state.done { border-radius:50%;background:#506830;color:#d9edac; }
.daily-feature { display:flex;align-items:center;gap:16px;min-height:134px;padding:14px 12px;border:1px solid #424936;border-radius:12px;background:linear-gradient(125deg,#343c2b,#282c24); }
.daily-feature .offering-art,.daily-feature .kerubim-emblem { width:88px;height:98px;flex:none;padding:0;margin:0;border:0;background:none; }
.daily-feature .offering-art img { width:88px;height:98px;object-fit:contain; }
.daily-feature .kerubim-emblem img { width:84px;height:94px;object-fit:cover;border:1px solid #748054;border-radius:12px;box-shadow:0 5px 12px #0003; }
.daily-offering { min-width:0; }
.daily-offering .eyebrow { font-size:8px;letter-spacing:1px;color:#b5c690; }
.daily-offering h3 { margin:6px 0 0;font-size:17px;font-weight:600;line-height:1.3;color:#e6edd9;overflow-wrap:anywhere; }
.daily-description { padding:18px 0 20px; }
.detail-label { font-size:10px;font-weight:650;color:#d2dac4; }
.daily-bonus { font-size:12px;line-height:1.65;color:#b3b8ab;margin:5px 0 0; }
.daily-bonus strong { font-weight:600;color:#d7dfc8; }
.location-list { display:flex;flex-wrap:wrap;gap:6px;margin-top:12px; }
.location-list span { background:#353a2e;border:1px solid #49523b;border-radius:6px;padding:3px 7px;font-size:10px;color:#c0ccaa; }
.daily-card .daily-action { margin-top:auto;background:#a9c85d;color:#202914;border-color:#a9c85d; }
.daily-card .daily-action:hover { background:#bdd978;border-color:#bdd978; }
.daily-card.is-complete .daily-action { background:#3c482c;border-color:#657644;color:#d6e7b2; }
.daily-foot { padding-top:13px;margin-top:0;font-size:10px;color:#959e88;align-items:center; }
.daily-foot>span { display:flex;align-items:center;gap:5px; }
.daily-foot svg { width:12px;height:12px; }
.daily-foot a,.daily-foot .text-button { font-size:10px;color:#bacd92; }
.fight-club-undo { margin:0; }
.fight-feature { min-height:134px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #424936;border-radius:12px;background:radial-gradient(ellipse at 50% 20%,#52623255,transparent 80%),#282c24;padding:14px; }
.fight-emblem { color:#b7d57a; }
.fight-emblem svg { width:43px;height:43px; }
.fight-feature .eyebrow { font-size:8px;letter-spacing:1.2px;color:#a1af87; }
.fight-feature h3 { font-size:18px;font-weight:600;color:#e6edd9; }
.objective-summary { text-align:center;padding:15px 0 24px; }
.objective-summary .objective-progress { padding:0;margin:0 0 15px;line-height:1.4; }
.objective-progress strong { font-size:58px;font-weight:650;letter-spacing:-3px;color:#e6edd9; }
.objective-progress span { font-size:19px;color:#9ba68b; }
.objective-meter { display:block;appearance:none;width:100%;height:6px;border:0;border-radius:10px;background:#42483a;overflow:hidden;accent-color:#a9c85d; }
.objective-meter::-webkit-progress-bar { background:#42483a;border-radius:10px; }
.objective-meter::-webkit-progress-value { background:#a9c85d;border-radius:10px; }
.objective-meter::-moz-progress-bar { background:#a9c85d; }
.objective-summary>p:last-child { color:#a7b199;font-size:11px;margin-top:10px; }
.objective-controls { margin-bottom:18px; }
.objective-controls .button { border-radius:9px;min-width:36px;min-height:36px;font-size:18px; }
.objective-controls span { color:#a7b199;font-size:11px; }
.daily-card.create-objective { border:1px dashed #616d4a;background:#30342b;min-height:240px;gap:8px; }
.create-objective .create-plus { display:grid;place-items:center;width:48px;height:48px;font-size:30px;border:1px solid #657644;border-radius:15px;background:#3b452e;color:#b7cd91;margin-bottom:7px; }
.create-objective strong { font-size:16px;font-weight:600;color:#d4dfc1; }
.create-objective small { font-size:11px;color:#9da98a; }
.daily-card.create-objective:not(:disabled):hover { background:#363f2c;border-color:#9fb875; }
.daily-card.is-dragging,.dungeon-card.is-dragging { background:var(--soft-accent);border:2px dashed var(--accent);box-shadow:none; }
.daily-card.drag-ghost,.dungeon-card.drag-ghost { background:#292b27;border-color:var(--accent);box-shadow:0 18px 48px #0009; }
@media(max-width:520px) { .dungeon-grid { grid-template-columns:1fr; } .daily-card { padding:18px; } .card-content h3 { font-size:20px; } }
@media(prefers-reduced-motion:reduce) { .daily-card,.dungeon-card { transition:none; } }

.daily-card.create-objective:disabled { opacity:1;cursor:not-allowed;background:#2d3029;border-color:#4c5343;box-shadow:none; }
.daily-card.create-objective:disabled strong { color:#949d88; }
.daily-card.create-objective:disabled .create-plus { color:#879475;background:#343b2c;border-color:#4c5940; }
.daily-card.create-objective:disabled small { color:#bdcaa9;background:#3a442e;border-radius:20px;padding:4px 12px; }

.daily-card-heading[data-drag-handle] { user-select:none;-webkit-user-select:none; }
.travel-position { display:inline-flex;align-items:center;gap:5px;vertical-align:baseline;min-height:28px;padding:3px 7px;background:#353a2e;border:1px solid #49523b;border-radius:6px;font-size:11px;line-height:1.4;color:#c0ccaa;cursor:pointer; }
.travel-position svg { width:12px;height:12px;opacity:.7; }
.travel-position:hover { background:#465337;border-color:#819956;color:#e0eccb; }
.travel-position:focus-visible { outline:2px solid var(--accent);outline-offset:2px; }

/* Travel commands sit outside prose, with a clear destination for each action. */
.travel-route { margin-top:16px; }
.route-caption { display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px; }
.route-caption>span { font-size:10px;font-weight:600;color:#c8d1bb; }
.route-caption small { font-size:9px;color:#929f80; }
.travel-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.travel-grid .travel-position { display:flex;justify-content:space-between;gap:8px;min-height:49px;padding:8px 10px;border-color:#49523d;border-radius:9px;text-align:left;background:#30362a; }
.travel-info { display:flex;flex-direction:column;gap:3px;min-width:0; }
.travel-info small { color:#a3af93;font-size:9px;line-height:1.2; }
.travel-info strong { color:#d5e2c0;font-size:12px;line-height:1.2;font-weight:550; }
.travel-grid .travel-position>svg { flex:none;width:14px;height:14px;color:#b3c792; }
.travel-grid .travel-position:hover { background:#414f31;border-color:#82985b; }
.site-topbar .brand { padding:0; }
.site-topbar .brand-logo { display:block;width:174px;height:58px;object-fit:contain; }
@media(max-width:760px) { .site-topbar .brand-logo { width:141px;height:47px; } }
@media(max-width:360px) { .site-topbar { gap:6px; } .site-topbar .brand-logo { width:117px;height:39px; } }
