/* Commander Passport controls: scoped to preserve the Deckpress studio. */
.passport-builder { --passport-surface:#101827; --passport-rule:#34415d; --passport-text:#edf0ff; --passport-muted:#a9b4cd; --passport-accent:#b8a0ff; color:var(--passport-text); }
.passport-section-intro { margin-bottom:26px; }
.passport-section-intro h2 { font-size:22px; line-height:1.25; letter-spacing:-.025em; margin-bottom:12px; }
.passport-section-intro p { color:var(--passport-muted); font-size:13px; line-height:1.7; max-width:520px; }
.passport-builder label { color:#c4cfe3; font-size:13px; }
.passport-builder input,.passport-builder select,.passport-builder textarea { background:#0d1524; border-color:var(--passport-rule); color:var(--passport-text); }
.passport-builder input::placeholder,.passport-builder textarea::placeholder { color:#7788a5; }
.passport-builder input:focus,.passport-builder select:focus,.passport-builder textarea:focus { border-color:#9b7bff; box-shadow:0 0 0 3px #9b7bff17; }
.passport-card-picker { position:relative; margin-bottom:24px; }
.passport-search-row { display:flex; gap:9px; align-items:stretch; }
.passport-search-row input { min-width:0; flex:1; }
.passport-find-button { flex:none; font-size:12px; padding:10px 14px; min-height:46px; white-space:nowrap; }
.passport-suggestions { position:relative; border:1px solid #475274; border-radius:6px; overflow:hidden; margin-top:5px; background:#131e30; box-shadow:0 10px 25px #0004; max-height:255px; overflow-y:auto; z-index:5; }
.passport-suggestions button { display:block; width:100%; padding:10px 13px; color:#d6dff1; border:0; border-bottom:1px solid #26324a; background:transparent; font-size:13px; text-align:left; line-height:1.5; }
.passport-suggestions button:last-child { border-bottom:0; }
.passport-suggestions button:hover,.passport-suggestions button:focus-visible { background:#292241; color:#e6ddff; }
.passport-picker-message { color:#8496b5; font-size:11px; line-height:1.6; margin-top:7px; min-height:0; }
.passport-picker-message:empty { display:none; }
.passport-picker-message.is-error { color:#e9b57d; }
.passport-selected-card { display:flex; align-items:center; gap:15px; margin-top:14px; background:#131d30; border:1px solid #34415d; border-radius:9px; padding:13px; }
.passport-selected-card>img { width:67px; height:94px; object-fit:cover; border-radius:4px; box-shadow:0 5px 10px #0004; flex:none; }
.passport-selected-info { min-width:0; }
.passport-selected-info strong { display:block; color:#e6edfc; font-size:14px; line-height:1.4; font-weight:600; }
.passport-selected-info small { display:block; color:#8599b9; font-size:10px; margin-top:6px; }
.passport-card-actions { display:flex; align-items:center; gap:12px; margin-top:10px; flex-wrap:wrap; }
.passport-card-actions>a,.passport-card-actions>button { padding:0; background:none; border:0; color:var(--passport-accent); font-size:10px; line-height:1.7; text-decoration:underline; text-underline-offset:3px; }
.passport-card-actions>button:disabled { color:#6f7b95; }
.passport-partner-buttons { display:flex; flex-wrap:wrap; gap:8px; margin-top:-5px; margin-bottom:22px; }
.passport-partner-buttons button { padding:8px 11px; background:#0d1524; border:1px solid #34415d; color:#a9b4cd; border-radius:5px; font-size:11px; }
.passport-partner-buttons button[aria-pressed=true] { background:#27203c; border-color:#8d72d7; color:#d4c4ff; }
.passport-partner-area { border-left:2px solid #4c3e74; padding-left:17px; margin-bottom:24px; }
.passport-partner-area .passport-card-picker { margin:13px 0 0; }
.passport-help { font-size:11px; line-height:1.7; color:#879ab9; margin-top:8px; margin-bottom:20px; }
.passport-field-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; margin-bottom:25px; }
.passport-label-row { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:23px; margin-bottom:9px; }
.passport-label-row label { margin:0; }
.passport-label-row h3 { font-size:16px; line-height:1.4; letter-spacing:-.02em; color:#e4eaff; }
.passport-character-count { font-size:10px; color:#7f91af; white-space:nowrap; }
.passport-core-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:17px; }
.passport-core-list:empty { display:none; }
.passport-core-item { position:relative; min-width:0; padding:7px; background:#131d30; border:1px solid #34415d; border-radius:8px; }
.passport-core-item>img { width:100%; height:auto; aspect-ratio:5/7; object-fit:cover; border-radius:4px; }
.passport-core-item>span { display:block; color:#c7d1e7; font-size:10px; line-height:1.4; margin:7px 2px 1px; }
.passport-core-remove { position:absolute; right:0; top:0; transform:translate(30%,-30%); border:1px solid #716393; border-radius:50%; height:23px; width:23px; display:flex; align-items:center; justify-content:center; color:#ddd0ff; background:#302642; font-size:17px; padding:0; }
.passport-art-choices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:15px; }
.passport-art-option { padding:5px; border:1px solid #34415d; border-radius:5px; background:#101827; color:#a9b4cd; text-align:center; }
.passport-art-option:hover { border-color:#9b7bff; background:#25203a; }
.passport-art-option img { display:block; width:100%; aspect-ratio:5/7; object-fit:cover; border-radius:3px; }
.passport-art-option span { display:block; font-size:9px; margin-top:5px; }
.passport-export-options { display:flex; flex-direction:column; gap:13px; margin-top:22px; }
.passport-checkbox { display:flex; align-items:center; gap:11px; margin:0; cursor:pointer; }
.passport-checkbox input { width:17px; height:17px; min-height:0; flex:none; accent-color:#9b7bff; margin:0; padding:0; box-shadow:none!important; }
.passport-checkbox span { color:#b8c6df; font-size:12px; }
.passport-checkbox:has(input:disabled) span { color:#71829e; }
.passport-data-credit { border-top:1px solid #26324a; margin-top:25px; padding-top:15px; color:#6d809e; font-size:10px; line-height:1.7; }
#deck-preview.passport-preview { max-width:600px; width:100%; border-radius:9px; }
#deck-preview.passport-preview svg { display:block; width:100%; height:auto; }
@media(max-width:800px) { .passport-search-row { gap:7px; } .passport-find-button { padding:10px; font-size:11px; } .passport-field-pair { grid-template-columns:1fr; gap:18px; } .passport-selected-card { align-items:flex-start; gap:11px; padding:10px; } .passport-selected-card>img { width:55px; height:77px; } .passport-selected-info strong { font-size:12px; } .passport-card-actions { gap:8px; } }
@media(max-width:600px) { .passport-section-intro h2 { font-size:21px; } .passport-field-pair { grid-template-columns:1fr 1fr; gap:10px; } .passport-builder select { font-size:12px; padding:12px 10px; } .passport-selected-card>img { width:64px; height:90px; } .passport-selected-info strong { font-size:14px; } .passport-card-actions { gap:11px; } .passport-partner-buttons { gap:6px; } .passport-partner-buttons button { font-size:10px; padding:8px; } }
@media(prefers-reduced-motion:reduce) { .passport-builder * { scroll-behavior:auto; transition:none!important; } }

.passport-core-section { margin-top:25px; padding:19px; border:1px solid #44516f; border-radius:10px; background:#111b2d; }
.passport-core-section>.passport-label-row { margin-top:0; }
.passport-core-section .passport-label-row h3 { font-size:19px; color:#e5ebff; }
.passport-core-section>.passport-help { margin-bottom:18px; }
.passport-core-section .passport-card-picker { margin-bottom:0; }
.passport-deck-core-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; margin-bottom:18px; }
.passport-deck-core-row label { grid-column:1/-1; margin:0; color:#a9b4cd; font-size:12px; }
.passport-deck-core-row select { min-width:0; }
.passport-deck-core-row button { padding:11px 13px; font-size:11px; }
@media(max-width:480px) { .passport-deck-core-row { grid-template-columns:1fr; } .passport-deck-core-row button { width:100%; } }
.passport-core-empty { min-height:145px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:9px; padding:12px 7px; border:1px dashed #4c5a79; border-radius:7px; background:#0d1524; color:#9eafd0; font-size:10px; text-align:center; line-height:1.5; }
.passport-core-empty:hover { border-color:#a78aff; background:#1b2136; color:#e4d8ff; }
.passport-core-plus { font-size:25px; line-height:1; color:#b19af0; }
@media(max-width:600px) { .passport-core-section { padding:14px; } .passport-core-list { gap:8px; } .passport-core-empty { min-height:120px; font-size:9px; } }
