.database-toolbar{display:grid;grid-template-columns:minmax(200px,2fr) minmax(150px,1.5fr) repeat(3,minmax(110px,1fr));gap:12px}.database-toolbar label{display:flex;flex-direction:column;gap:7px;color:var(--soft);font-size:11px;min-width:0}.database-toolbar input,.database-toolbar select{width:100%;min-width:0;min-height:42px;background:#171222;color:var(--text);border:1px solid var(--border);border-radius:7px;padding:10px;font:inherit;font-size:12px}.database-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.database-card{display:flex;text-align:left;gap:14px;border:1px solid var(--border);background:#1a1423;border-radius:9px;padding:12px;color:var(--text);min-width:0;cursor:pointer}.database-card:hover{border-color:var(--gold);background:#261c30}.database-card img{width:64px;aspect-ratio:421/614;object-fit:contain;align-self:start}.database-card>span{display:flex;flex-direction:column;gap:6px;min-width:0}.database-card strong{font-size:14px;line-height:1.4}.database-card small{color:var(--soft);font-size:11px;line-height:1.4}.database-card b{font-size:11px;font-weight:500;color:var(--gold);margin-top:auto;line-height:1.5}.database-card i{font-style:normal}.source-heading{display:flex;align-items:center;gap:24px;margin:8px 0 24px}.source-heading>button{width:110px;flex-shrink:0;background:none;border:0;color:var(--gold);cursor:pointer}.source-heading img{width:100%;display:block;margin-bottom:8px}.source-heading small{font-size:11px}.source-heading h2{margin:6px 0 12px}.source-heading p{font-size:12px;color:var(--soft);line-height:1.6;margin:8px 0}.source-list{display:grid;gap:20px}.source-list section{border-top:1px solid var(--border);padding-top:18px}.source-list h3{font-size:19px;margin:0 0 10px}.source-list h3 span{font:12px sans-serif;color:var(--soft);margin-left:6px}.source-list p{font-size:13px;line-height:1.8;color:var(--soft);margin:8px 0}.source-list small{display:block;font-size:11px;line-height:1.6;color:var(--soft)}.source-list a{color:var(--gold)}.source-available{display:block;color:#a9d6b8;font-size:12px}.source-duels{display:grid;gap:10px}.source-duels article{border:1px solid var(--border);border-radius:8px;padding:14px;background:#1b1525}.source-duels strong{font-size:14px}.source-duels article>a{display:inline-block;font-size:12px;margin-top:12px}.source-rates{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.source-rates>span{display:flex;gap:12px;justify-content:space-between;min-width:120px;border-radius:5px;background:#2b2035;font-size:11px;padding:7px 9px;color:#cfbedc}.source-rates b{color:#f3dfb5;font-variant-numeric:tabular-nums}.source-help{font-size:12px!important}.inspect-sources{margin:12px 0}
@media(max-width:1100px){.database-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.database-search{grid-column:1/-1}.database-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.database-toolbar{grid-template-columns:1fr 1fr;gap:10px}.database-grid{grid-template-columns:1fr}.database-card img{width:58px}.source-heading{gap:16px;align-items:start}.source-heading>button{width:80px}.source-heading h2{font-size:24px}.source-rates>span{min-width:100px}.source-list h3{font-size:18px}}
/* Card sources are grouped by the player's next action. */
dialog:has(.source-sheet){width:min(920px,calc(100% - 32px));max-width:920px;padding:24px;max-height:calc(100dvh - 40px);scrollbar-width:thin}
.source-title{padding-right:40px;margin-bottom:22px}.source-title .eyebrow{font-size:9px;letter-spacing:.13em;margin:0 0 8px}.source-title h2{font-size:28px;line-height:1.25;margin:0}
.source-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px;align-items:start}.source-preview{position:sticky;top:0;min-width:0}.source-card-art{display:block;border:0;background:none;padding:0;width:100%;cursor:pointer}.source-card-art img{display:block;width:100%;aspect-ratio:421/614;object-fit:contain;filter:drop-shadow(0 7px 12px #0004)}.source-card-meta{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-top:16px}.source-type{font-size:11px;color:var(--soft)}.source-owned{font-size:11px;border:1px solid var(--border);background:#ffffff04;border-radius:20px;padding:5px 12px}.source-inspect{width:100%;border:1px solid #e8c77740;border-radius:7px;background:#e8c7770b;color:var(--gold);font:inherit;font-size:12px;min-height:40px;padding:9px 12px}.source-card-meta>small{font-size:10px;color:var(--soft)}
.source-main{display:grid;gap:18px;min-width:0}.source-section{min-width:0}.source-section+.source-section{border-top:1px solid var(--border);padding-top:18px}.source-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.source-section h3{font-family:inherit;font-weight:600;font-size:14px;margin:0;line-height:1.5}.source-section-heading>span{font-size:10px;color:var(--soft)}.source-section .source-help{font-size:11px!important;color:var(--soft);margin:5px 0 12px;line-height:1.6}.source-duels{gap:10px}.source-duels article{padding:14px;border-radius:9px;background:#ffffff03}.source-duelist{display:flex;align-items:center;gap:10px}.source-duelist>img{width:36px;height:40px;object-fit:cover;object-position:top;border-radius:5px;background:#20182c}.source-duelist>div{flex:1;min-width:0}.source-duelist strong{font-size:13px}.source-duelist small{display:block;font-size:10px;line-height:1.5;color:var(--soft);margin-top:4px}.source-duelist>span{font-size:9px;color:var(--soft);white-space:nowrap}
.source-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:14px 0}.source-rates>span{min-width:0;display:flex;flex-direction:column;align-items:start;gap:5px;font-size:10px;background:#2a2234;padding:8px 10px}.source-rates b{font-size:14px;font-weight:600}.source-duels article>.source-farm-link{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--gold);font-size:12px;margin:0;padding-top:12px;border-top:1px solid var(--border)}.source-farm-link small,.source-featured-link small{font-size:10px;color:var(--soft);display:block;line-height:1.5;margin-top:5px}
.source-pack-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.source-pack-links a{padding:11px;border:1px solid var(--border);border-radius:7px;font-size:12px;display:flex;flex-direction:column;gap:8px}.source-pack-links b{font-size:11px;font-weight:500;color:var(--gold)}.source-pack-links i{float:right;font-style:normal}.source-pack-links a:hover,.source-featured-link:hover{border-color:#e8c77770;background:#e8c77708}.source-small{font-size:10px;color:var(--soft);line-height:1.5;margin:8px 0 12px}.source-featured-link{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:7px;padding:11px;font-size:12px;color:var(--gold)}
.source-explainer{border-top:1px solid var(--border);padding-top:5px}.source-explainer summary{font-size:11px;line-height:1.6;min-height:36px;color:var(--soft);padding:10px 0;cursor:pointer}.source-explainer p,.source-extra p{font-size:11px;line-height:1.7;color:var(--soft);margin:4px 0 10px}.source-explainer a{color:var(--gold)}.source-duels+.source-explainer{border:0;margin-top:6px;padding:0}.source-section .source-explainer>summary{padding-bottom:0;min-height:28px}
@media(max-width:700px){dialog:has(.source-sheet){padding:20px;max-height:calc(100dvh - 24px);width:calc(100% - 24px)}.source-layout{grid-template-columns:125px minmax(0,1fr);gap:20px}.source-title h2{font-size:25px}.source-rates b{font-size:12px}.source-rates>span{padding:8px}.source-duelist>span{display:none}}
@media(max-width:560px){dialog:has(.source-sheet){padding:20px 16px}.source-title{margin-bottom:16px}.source-title h2{font-size:23px}.source-title .eyebrow{font-size:8px}.source-layout{grid-template-columns:1fr;gap:20px}.source-preview{position:static;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border);padding-bottom:18px}.source-card-art{width:72px;flex-shrink:0}.source-card-meta{margin:0;align-items:start;gap:8px;flex:1}.source-card-meta>small{display:none}.source-inspect{width:auto;min-height:36px;padding:8px 12px}.source-owned{border:0;padding:0;background:none}.source-main{gap:16px}.source-duelist>span{display:block}.source-rates b{font-size:14px}.source-preview .source-type{font-size:11px}}
