:root{
  --void:#14121C; --void-2:#1D1A28; --panel:#211E2E; --panel-line:#332E44;
  --card-stock:#F7F3E8; --ink:#1C1A24; --ink-soft:#5A566A;
  --paper-text:#EDEAF5; --paper-text-soft:#9490A8;
  --violet:#7C4DFF; --cyan:#00D4FF; --magenta:#FF3D81; --gold:#FFD23F;
  --grade-gold:#D4AF37; --success:#3ECF8E; --danger:#FF5C6E;
  --radius:14px; --shadow:0 6px 20px rgba(0,0,0,0.35); --shadow-lg:0 24px 60px rgba(0,0,0,0.55);
  --holo: conic-gradient(from 180deg, var(--violet), var(--cyan), var(--magenta), var(--gold), var(--violet));
}
*{box-sizing:border-box;}
body{margin:0;background:var(--void);color:var(--paper-text);font-family:'Inter',sans-serif;-webkit-font-smoothing:antialiased;}
.display{font-family:'Bebas Neue',sans-serif;letter-spacing:0.02em;}
button{font-family:inherit;cursor:pointer;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.001ms !important;transition-duration:0.001ms !important;}}

.app{min-height:100vh;display:flex;flex-direction:column;}
.wrap{max-width:1300px;margin:0 auto;padding:0 24px;}
@media (max-width:640px){.wrap{padding:0 14px;}}

header.site{position:sticky;top:0;z-index:40;background:rgba(20,18,28,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--panel-line);}
.header-inner{display:flex;align-items:center;gap:20px;padding:12px 0;}
.logo-img{height:40px;width:auto;flex-shrink:0;}
.search-bar{flex:1;display:flex;align-items:center;gap:8px;background:var(--panel);border:1.5px solid var(--panel-line);border-radius:10px;padding:10px 16px;min-width:0;}
.search-bar input{border:none;outline:none;background:none;font-size:0.92rem;width:100%;color:var(--paper-text);}
.search-bar input::placeholder{color:var(--paper-text-soft);}
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.icon-btn{position:relative;background:none;border:none;padding:8px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--paper-text);transition:background .15s;}
.icon-btn:hover{background:var(--panel);}
.badge-count{position:absolute;top:2px;right:2px;background:var(--magenta);color:white;font-size:0.62rem;font-weight:800;border-radius:999px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 3px;font-family:'IBM Plex Mono',monospace;}
.btn{border:none;border-radius:9px;padding:10px 20px;font-weight:700;font-size:0.86rem;transition:transform .12s ease, filter .15s;}
.btn:active{transform:scale(0.97);}
.btn:disabled{opacity:0.5;cursor:not-allowed;}
.btn-primary{background:var(--paper-text);color:var(--ink);}
.btn-primary:hover{filter:brightness(0.92);}
.btn-holo{background:var(--holo);background-size:220% 220%;color:var(--ink);animation:holoshift 8s ease-in-out infinite;font-weight:800;}
@keyframes holoshift{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}
.btn-holo:hover{filter:brightness(1.08);}
.btn-ghost{background:none;border:1.5px solid var(--panel-line);color:var(--paper-text);}
.btn-ghost:hover{border-color:var(--cyan);}
.btn-danger{background:none;border:1.5px solid var(--danger);color:var(--danger);}
.btn-sm{padding:7px 14px;font-size:0.8rem;}
.btn-block{width:100%;}
.name-pill{display:flex;align-items:center;gap:8px;background:var(--panel);border-radius:999px;padding:5px 12px 5px 5px;font-size:0.82rem;font-weight:700;border:1px solid var(--panel-line);color:var(--paper-text);}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--holo);color:var(--ink);display:flex;align-items:center;justify-content:center;font-size:0.68rem;font-weight:800;font-family:'IBM Plex Mono',monospace;}
.avatar-img{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.avatar-lg{width:64px;height:64px;font-size:1.3rem;}
img.avatar-lg{width:64px;height:64px;}
.avatar-upload-row{display:flex;align-items:center;gap:14px;margin-bottom:20px;}

.chip-rail{display:flex;gap:8px;overflow-x:auto;padding:12px 0 14px;scrollbar-width:none;}
.chip-rail::-webkit-scrollbar{display:none;}
.chip{flex-shrink:0;border:1.5px solid var(--panel-line);background:var(--panel);border-radius:999px;padding:7px 15px;font-size:0.82rem;font-weight:700;color:var(--paper-text-soft);display:flex;align-items:center;gap:6px;transition:all .15s;}
.chip:hover{border-color:var(--cyan);color:var(--paper-text);}
.chip.active{background:var(--paper-text);color:var(--ink);border-color:var(--paper-text);}

.hero{padding:36px 0 8px;}
.hero h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(2.1rem,5vw,3.4rem);margin:0 0 8px;line-height:1.02;}
.hero .holo-word{background:var(--holo);background-size:250% 250%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:holoshift 6s ease-in-out infinite;}
.hero p{margin:0;color:var(--paper-text-soft);font-size:1rem;max-width:540px;}

main{flex:1;padding-bottom:60px;}
.content-row{display:flex;gap:26px;align-items:flex-start;padding-top:18px;}
.filters{width:230px;flex-shrink:0;background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius);padding:20px;position:sticky;top:96px;}
.filters h3{margin:0 0 14px;font-family:'Bebas Neue',sans-serif;font-size:1.2rem;}
.filter-group{margin-bottom:20px;}
.filter-group label.title{display:block;font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.07em;color:var(--paper-text-soft);margin-bottom:9px;}
.filter-option{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:0.85rem;cursor:pointer;color:var(--paper-text);}
select.sort-select{border:1.5px solid var(--panel-line);border-radius:8px;padding:7px 10px;font-size:0.82rem;background:var(--panel);color:var(--paper-text);}
.results-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.results-count{font-size:0.86rem;color:var(--paper-text-soft);}
.grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:18px;}

.card{background:var(--card-stock);border-radius:10px;overflow:hidden;cursor:pointer;transition:transform .18s, box-shadow .18s;position:relative;box-shadow:0 2px 8px rgba(0,0,0,0.3);}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.slab-label{background:var(--ink);color:var(--card-stock);padding:6px 9px;display:flex;justify-content:space-between;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:0.63rem;font-weight:700;}
.slab-label .grade-pill{background:var(--grade-gold);color:var(--ink);border-radius:3px;padding:1px 6px;font-weight:800;}
.slab-label.raw{background:var(--ink-soft);}
.card-photo{aspect-ratio:0.72;display:flex;align-items:center;justify-content:center;position:relative;flex-direction:column;padding:10px;text-align:center;overflow:hidden;}
.card-photo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.card-photo .art-icon{font-size:3.2rem;filter:drop-shadow(0 3px 6px rgba(0,0,0,0.25));}
.card-photo .franchise-tag{position:absolute;top:8px;left:8px;font-size:0.6rem;font-weight:800;text-transform:uppercase;color:var(--ink-soft);background:rgba(255,255,255,0.6);padding:2px 6px;border-radius:4px;}
.fav-btn{position:absolute;top:6px;right:6px;background:rgba(255,255,255,0.85);border:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink);}
.card-body{padding:10px 11px 12px;color:var(--ink);}
.card-set{font-size:0.68rem;font-weight:700;color:var(--ink-soft);margin:0 0 2px;text-transform:uppercase;}
.card-title{font-size:0.87rem;font-weight:700;color:var(--ink);margin:0 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.card-num{font-family:'IBM Plex Mono',monospace;font-size:0.7rem;color:var(--ink-soft);margin:0 0 9px;}
.price-tag{display:inline-flex;align-items:center;gap:5px;font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:0.95rem;color:var(--ink);background:var(--card-stock);border:2px solid var(--ink);border-radius:6px;padding:3px 9px;}

.empty-state{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--paper-text-soft);}
.empty-state .em-icon{font-size:2.6rem;margin-bottom:10px;}
.empty-state h3{margin:0 0 6px;color:var(--paper-text);font-family:'Bebas Neue',sans-serif;font-size:1.4rem;}

.overlay{position:fixed;inset:0;background:rgba(10,9,15,0.72);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .18s;}
.overlay.open{opacity:1;pointer-events:auto;}
.modal{background:var(--void-2);border:1px solid var(--panel-line);border-radius:18px;max-width:900px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative;transform:translateY(14px) scale(0.98);transition:transform .18s;}
.overlay.open .modal{transform:translateY(0) scale(1);}
.modal.narrow{max-width:480px;}
.modal-close{position:absolute;top:14px;right:14px;background:var(--panel);border:1px solid var(--panel-line);width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:5;color:var(--paper-text);}
.item-detail{display:flex;gap:0;}
.item-photo-large{flex:1 1 42%;display:flex;align-items:center;justify-content:center;padding:36px;}
.big-card{background:var(--card-stock);border-radius:14px;width:100%;max-width:280px;aspect-ratio:0.72;display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,0.45);overflow:hidden;}
.big-card .art{flex:1;display:flex;align-items:center;justify-content:center;font-size:6rem;}
.photo-stack{width:100%;max-width:320px;}
.big-photo{width:100%;aspect-ratio:0.72;object-fit:cover;border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,0.45);}
.thumb-row{display:flex;gap:8px;margin-top:10px;overflow-x:auto;}
.thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0;opacity:0.55;cursor:pointer;border:2px solid transparent;}
.thumb.active{opacity:1;border-color:var(--cyan);}
.item-info{flex:1 1 58%;padding:30px 30px 30px 26px;}
.item-info .set-line{font-size:0.78rem;font-weight:700;color:var(--cyan);text-transform:uppercase;margin:0 0 4px;}
.item-info h2{margin:0 0 4px;font-family:'Bebas Neue',sans-serif;font-size:1.9rem;}
.item-info .card-num{color:var(--paper-text-soft);margin:0 0 14px;}
.item-info .price-tag{font-size:1.2rem;padding:6px 14px;margin-bottom:16px;background:var(--void-2);border-color:var(--paper-text);color:var(--paper-text);}
.item-tags-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.tag-chip{background:var(--panel);border:1px solid var(--panel-line);border-radius:7px;padding:5px 10px;font-size:0.76rem;font-weight:700;color:var(--paper-text);}
.tag-chip.grade{background:var(--grade-gold);color:var(--ink);border-color:var(--grade-gold);}
.item-desc{font-size:0.9rem;line-height:1.6;color:var(--paper-text-soft);margin-bottom:20px;}
.seller-row{display:flex;align-items:center;gap:10px;padding:12px;background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;margin-bottom:20px;}
.seller-row .seller-name{font-weight:700;font-size:0.88rem;color:var(--paper-text);}
.item-actions{display:flex;gap:10px;flex-wrap:wrap;}

.form-pad{padding:28px 26px;}
.form-pad h2{margin:0 0 4px;font-family:'Bebas Neue',sans-serif;font-size:1.7rem;}
.form-pad .sub{font-size:0.85rem;color:var(--paper-text-soft);margin:0 0 20px;}
.field{margin-bottom:15px;}
.field label{display:block;font-size:0.72rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:var(--paper-text-soft);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--panel-line);border-radius:9px;padding:10px 12px;font-family:'Inter',sans-serif;font-size:0.9rem;color:var(--paper-text);background:var(--panel);}
.field input::placeholder,.field textarea::placeholder{color:var(--paper-text-soft);}
.field textarea{resize:vertical;min-height:65px;}
.field-row{display:flex;gap:12px;}
.field-row .field{flex:1;}
.emoji-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.emoji-opt{width:42px;height:42px;border-radius:9px;border:1.5px solid var(--panel-line);background:var(--panel);display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.emoji-opt.selected{border-color:var(--cyan);background:var(--void-2);}
.grading-toggle{display:flex;gap:8px;margin-bottom:6px;}
.grading-toggle button{flex:1;padding:9px;border-radius:9px;border:1.5px solid var(--panel-line);background:var(--panel);color:var(--paper-text);font-weight:700;font-size:0.85rem;}
.grading-toggle button.selected{background:var(--paper-text);color:var(--ink);border-color:var(--paper-text);}
.photo-upload-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.photo-thumb-wrap{position:relative;width:64px;height:64px;}
.photo-thumb{width:64px;height:64px;object-fit:cover;border-radius:9px;}
.photo-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--danger);color:white;border:none;font-size:0.65rem;display:flex;align-items:center;justify-content:center;}
.photo-add-btn{width:64px;height:64px;border-radius:9px;border:1.5px dashed var(--panel-line);background:var(--panel);display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--paper-text-soft);cursor:pointer;}
.photo-add-btn.disabled{opacity:0.5;cursor:not-allowed;}
.form-error{background:rgba(255,92,110,0.12);border:1px solid var(--danger);color:var(--danger);padding:10px 12px;border-radius:9px;font-size:0.84rem;margin-bottom:14px;}
.form-note{font-size:0.8rem;color:var(--paper-text-soft);margin-top:6px;}
.link-btn{background:none;border:none;color:var(--cyan);font-weight:700;font-size:0.84rem;padding:0;}

.banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;padding:14px 18px;margin:18px 0;flex-wrap:wrap;}
.banner p{margin:0;font-size:0.88rem;color:var(--paper-text-soft);}
.banner strong{color:var(--paper-text);}

.tab-bar{display:flex;gap:6px;border-bottom:1px solid var(--panel-line);margin-bottom:20px;}
.tab-btn{background:none;border:none;padding:10px 4px;margin-right:20px;font-weight:700;font-size:0.9rem;color:var(--paper-text-soft);border-bottom:2px solid transparent;}
.tab-btn.active{color:var(--paper-text);border-bottom-color:var(--cyan);}

.order-list{display:flex;flex-direction:column;gap:12px;}
.order-card{background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;padding:16px 18px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.order-card .order-icon{font-size:1.8rem;width:44px;height:44px;background:var(--void-2);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.order-card .order-main{flex:1;min-width:180px;}
.order-card .order-title{font-weight:700;font-size:0.92rem;margin:0 0 2px;}
.order-card .order-sub{font-size:0.78rem;color:var(--paper-text-soft);margin:0;}
.status-badge{font-family:'IBM Plex Mono',monospace;font-size:0.7rem;font-weight:700;padding:4px 9px;border-radius:999px;text-transform:uppercase;white-space:nowrap;}
.status-pending_payment{background:#4A4560;color:var(--paper-text);}
.status-paid_held{background:rgba(0,212,255,0.15);color:var(--cyan);}
.status-shipped{background:rgba(255,210,63,0.15);color:var(--gold);}
.status-delivered{background:rgba(62,207,142,0.15);color:var(--success);}
.status-completed{background:rgba(62,207,142,0.25);color:var(--success);}
.status-disputed{background:rgba(255,92,110,0.15);color:var(--danger);}
.status-refunded{background:rgba(255,92,110,0.1);color:var(--danger);}
.order-card .order-actions{display:flex;gap:8px;flex-wrap:wrap;}

.stripe-el-wrap{border:1.5px solid var(--panel-line);border-radius:9px;padding:12px;background:var(--panel);margin-bottom:14px;}

/* ---------- messaging ---------- */
.convo-list{display:flex;flex-direction:column;gap:2px;max-height:60vh;overflow-y:auto;}
.convo-row{display:flex;align-items:center;gap:12px;padding:12px 8px;background:none;border:none;border-bottom:1px solid var(--panel-line);text-align:left;width:100%;color:var(--paper-text);}
.convo-row:hover{background:var(--panel);}
.convo-main{flex:1;min-width:0;}
.convo-name{font-weight:700;font-size:0.88rem;margin-bottom:2px;}
.convo-snippet{font-size:0.8rem;color:var(--paper-text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.convo-time{font-size:0.72rem;color:var(--paper-text-soft);flex-shrink:0;}
.thread-header{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--panel-line);}
.message-list{display:flex;flex-direction:column;gap:8px;padding:16px 22px;max-height:45vh;overflow-y:auto;}
.msg-bubble-row{display:flex;}
.msg-bubble-row.me{justify-content:flex-end;}
.msg-bubble{max-width:75%;background:var(--panel);border:1px solid var(--panel-line);border-radius:14px 14px 14px 4px;padding:9px 13px;font-size:0.87rem;line-height:1.4;color:var(--paper-text);}
.msg-bubble-row.me .msg-bubble{background:var(--paper-text);color:var(--ink);border-radius:14px 14px 4px 14px;border:none;}
.reply-bar{display:flex;gap:8px;padding:14px 22px 22px;border-top:1px solid var(--panel-line);}
.reply-bar input{flex:1;border:1.5px solid var(--panel-line);border-radius:9px;padding:10px 12px;background:var(--panel);color:var(--paper-text);font-size:0.88rem;}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--paper-text);color:var(--ink);padding:13px 22px;border-radius:999px;font-size:0.86rem;font-weight:700;box-shadow:var(--shadow-lg);z-index:200;opacity:0;pointer-events:none;transition:all .25s;max-width:90vw;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.error{background:var(--danger);color:white;}

footer.site{border-top:1px solid var(--panel-line);padding:26px 0;text-align:center;font-size:0.8rem;color:var(--paper-text-soft);}
.footer-logo{height:28px;margin-bottom:10px;}

.filters-toggle{display:none;}
@media (max-width:880px){
  .filters{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:90;border-radius:0;transform:translateX(-100%);transition:transform .2s;overflow-y:auto;}
  .filters.open{transform:translateX(0);}
  .filters-toggle{display:inline-flex;}
  .filters-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:85;}
  .filters-scrim.show{display:block;}
}
@media (max-width:680px){
  .item-detail{flex-direction:column;}
  .item-photo-large{padding:24px;}
  .item-info{padding:22px;}
}
@media (max-width:520px){
  .header-inner{flex-wrap:wrap;}
  .search-bar{order:3;flex-basis:100%;}
}
