/* DISCOVER PANEL */
#discoverPanel{position:fixed;right:-600px;top:0;width:560px;height:100vh;background:#13132a;border-left:1px solid #2a2a4a;display:flex;flex-direction:column;z-index:110;transition:right .3s}
#discoverPanel.open{right:0}
.dp-header{padding:12px 16px;background:#1a1a35;border-bottom:1px solid #2a2a4a;display:flex;align-items:center;gap:10px;flex-shrink:0}
.dp-title{font-family:'Playfair Display',serif;color:#f39c12;font-size:1em;flex:1}
.dp-close{background:none;border:none;color:#666;cursor:pointer;font-size:1.1em;padding:2px 6px}
.dp-close:hover{color:#e8e0d0}
.dp-controls{padding:10px 14px;border-bottom:1px solid #1e1e2e;flex-shrink:0;display:flex;flex-direction:column;gap:8px}
.dp-row{display:flex;gap:6px;align-items:center}
.dp-input{flex:1;background:#1e1e30;border:1px solid #2a2a4a;color:#e8e0d0;padding:6px 10px;border-radius:6px;font-size:.8em;outline:none;font-family:'Inter',sans-serif}
.dp-input:focus{border-color:#f39c12}
/* Location input + autocomplete */
.dp-loc-wrap{position:relative;flex:1}
.dp-autocomplete{position:absolute;top:100%;left:0;right:0;background:#1e1e30;border:1px solid #2a2a4a;border-top:none;border-radius:0 0 7px 7px;z-index:50;max-height:220px;overflow-y:auto;display:none;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.dp-autocomplete.open{display:block}
.dp-ac-item{padding:8px 11px;cursor:pointer;font-size:.77em;color:#ccc;border-bottom:1px solid #16162a;line-height:1.4}
.dp-ac-item:hover,.dp-ac-item.hi{background:#252545;color:#e8e0d0}
.dp-ac-item small{color:#555;font-size:.88em;margin-top:1px;display:block}
.dp-ac-spin{padding:9px 11px;font-size:.72em;color:#555;font-style:italic}
.dp-cats{display:flex;gap:4px;flex-wrap:wrap}
.dp-cat{padding:3px 9px;border-radius:12px;border:1px solid rgba(255,255,255,.15);font-size:.7em;cursor:pointer;color:#888;transition:all .15s;user-select:none}
.dp-cat.active{background:rgba(243,156,18,.2);border-color:#f39c12;color:#f39c12}
.btn-discover{background:#f39c12;border:none;color:#0f0f1a;padding:7px 16px;border-radius:6px;cursor:pointer;font-size:.8em;font-weight:600;white-space:nowrap;transition:opacity .2s}
.btn-discover:disabled{opacity:.4;cursor:wait}
.dp-status{font-size:.72em;color:#666;padding:6px 14px;flex-shrink:0;min-height:22px;font-style:italic}
.dp-status.loading{color:#f39c12;animation:pulse 1.2s infinite}
.dp-status.error{color:#e74c3c;font-style:normal}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}
.dp-results{flex:1;overflow-y:auto;padding:8px 14px}
.dp-result-card{background:#1e1e30;border-radius:7px;margin-bottom:5px;padding:8px 10px;cursor:pointer;border:1px solid transparent;transition:all .15s;display:flex;align-items:flex-start;gap:8px}
.dp-result-card:hover{border-color:#2a2a4a}
.dp-result-card.selected{background:#1e2e1e;border-color:#27ae60}
.dp-check{width:16px;height:16px;border-radius:4px;border:1px solid #444;background:#12121f;flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;font-size:.7em;transition:all .15s}
.dp-result-card.selected .dp-check{background:#27ae60;border-color:#27ae60}
.dp-result-body{flex:1;min-width:0}
.dp-result-name{font-size:.8em;font-weight:600;color:#e8e0d0;margin-bottom:2px}
.dp-result-meta{font-size:.67em;color:#777;line-height:1.5}
.dp-result-desc{font-size:.67em;color:#666;margin-top:3px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dp-footer{padding:10px 14px;border-top:1px solid #1e1e2e;flex-shrink:0;display:flex;justify-content:space-between;align-items:center}
.dp-sel-count{font-size:.72em;color:#666}
.btn-add-selected{background:#27ae60;border:none;color:white;padding:7px 16px;border-radius:6px;cursor:pointer;font-size:.8em;font-weight:600}
.btn-add-selected:disabled{opacity:.35;cursor:default}

/* Auto-fill button on bank card */
.bank-card-fetch{background:none;border:none;color:#3a5a7a;cursor:pointer;font-size:.7em;padding:1px 3px;line-height:1;flex-shrink:0;transition:color .15s}
.bank-card-fetch:hover{color:#74b9ff}
.bank-card-fetch.loading{animation:pulse 1s infinite;color:#74b9ff}
/* Incomplete badge + fill button (prominent) */
.bank-card.incomplete{border-left-color:#e74c3c!important;background:rgba(231,76,60,.04)}
.badge-incomplete{display:inline-block;font-size:.58em;background:rgba(231,76,60,.18);color:#e74c3c;border:1px solid rgba(231,76,60,.3);border-radius:10px;padding:1px 6px;margin-left:4px;vertical-align:middle;white-space:nowrap}
.bank-card.complete .badge-complete{display:inline-block;font-size:.58em;background:rgba(39,174,96,.12);color:#27ae60;border:1px solid rgba(39,174,96,.25);border-radius:10px;padding:1px 5px;margin-left:4px;vertical-align:middle}
.btn-fill{display:block;width:calc(100% - 12px);margin:3px 6px 4px;padding:3px 0;background:rgba(231,76,60,.15);border:1px solid rgba(231,76,60,.3);color:#e74c3c;border-radius:4px;cursor:pointer;font-size:.67em;text-align:center;transition:all .15s}
.btn-fill:hover{background:rgba(231,76,60,.3);color:#ff6b6b}
.btn-fill.loading{animation:pulse 1s infinite;pointer-events:none}
.btn-fill.done{background:rgba(39,174,96,.15);border-color:rgba(39,174,96,.3);color:#27ae60}
/* Faded plan cards when filter active */
.plan-card.cat-faded{opacity:.12;pointer-events:none}
/* Discover duplicate badge */
.dp-result-card.is-dupe{opacity:.55;cursor:default}
.dp-result-card.is-dupe .dp-check{background:#1a2a1a;border-color:#27ae60}
.badge-dupe{display:inline-block;font-size:.62em;background:rgba(39,174,96,.15);color:#27ae60;border:1px solid rgba(39,174,96,.3);border-radius:10px;padding:1px 6px;margin-left:5px;vertical-align:middle}