@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=VT323&display=swap');

:root {
    --amber: #ffb000;
    --amber-dim: #c87800;
    --amber-glow: rgba(255,176,0,0.12);
    --amber-border: rgba(255,176,0,0.35);
    --gold: #FFD700;
    --bg: #090700;
    --bg2: #0e0c00;
    --bg3: #131000;
    --red: #ff4444;
    --green: #44ff88;
    --blue: #44aaff;
    --text: #e8a000;
    --text-dim: #7a5000;
    --shadow: 0 0 20px rgba(255,176,0,0.25);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* CRT scanlines */
body {
  background:var(--bg);
  color:var(--amber);
  font-family:'Share Tech Mono',monospace;
  font-size:14px;
  min-height:100vh;
  position:relative;
}
body::before{
  content:'';position:fixed;inset:0;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.07) 2px,rgba(0,0,0,0.07) 4px);
  pointer-events:none;z-index:9000;
}
body::after{
  content:'';position:fixed;inset:0;
  background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,0.55) 100%);
  pointer-events:none;z-index:9001;
}
@keyframes scan{0%{transform:translateY(-100%)}100%{transform:translateY(100vh)}}
.scanline{
  position:fixed;top:0;left:0;right:0;height:3px;
  background:rgba(255,176,0,0.04);
  animation:scan 9s linear infinite;z-index:9002;pointer-events:none;
}

/* Header */
.site-header{
  border-bottom:2px solid var(--amber-border);
  padding:14px 28px;
  display:flex;align-items:center;justify-content:space-between;
  background:var(--bg2);box-shadow:var(--shadow);
  position:sticky;top:0;z-index:100;
}
.logo{
  font-family:'VT323',monospace;font-size:26px;letter-spacing:4px;
  text-shadow:0 0 16px var(--amber);color:var(--amber);
  text-decoration:none;display:block;
}
.logo span{color:var(--amber-dim);font-size:12px;letter-spacing:2px;display:block;margin-top:-4px}

nav{display:flex;gap:4px}
.nav-btn{
  background:transparent;border:1px solid var(--amber-border);
  color:var(--text-dim);font-family:'Share Tech Mono',monospace;font-size:12px;
  padding:6px 14px;cursor:pointer;text-transform:uppercase;letter-spacing:1px;
  transition:all .15s;text-decoration:none;display:inline-block;
}
.nav-btn:hover,.nav-btn.active{
  background:var(--amber-glow);color:var(--amber);border-color:var(--amber);
  text-shadow:0 0 8px var(--amber);box-shadow:0 0 10px rgba(255,176,0,0.15);
}

/* Main */
.site-main{padding:24px 28px;max-width:1440px;margin:0 auto;position:relative;z-index:1}
.site-footer{
  text-align:center;padding:16px;border-top:1px solid var(--amber-border);
  font-size:11px;color:var(--text-dim);letter-spacing:2px;
}

/* Toast */
.toast{
  padding:10px 18px;margin-bottom:16px;
  border:1px solid var(--amber);background:var(--amber-glow);
  font-family:'VT323',monospace;font-size:17px;letter-spacing:1px;
}
.toast-success{border-color:var(--green);color:var(--green)}

/* Page title */
.page-title{
  font-family:'VT323',monospace;font-size:28px;letter-spacing:3px;
  margin-bottom:20px;text-shadow:0 0 10px rgba(255,176,0,0.3);
}

/* Panel */
.panel{border:1px solid var(--amber-border);background:var(--bg2);margin-bottom:20px}
.panel-header{
  background:var(--amber-glow);border-bottom:1px solid var(--amber-border);
  padding:10px 16px;font-family:'VT323',monospace;font-size:19px;letter-spacing:2px;
  display:flex;align-items:center;justify-content:space-between;
}
.panel-body{padding:16px}
.panel-body.p0{padding:0}

/* Grid */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}

/* Dashboard stats */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.stat-card{
  border:1px solid var(--amber-border);background:var(--bg3);
  padding:16px;text-align:center;
}
.stat-icon{font-size:24px;margin-bottom:6px}
.stat-val{font-family:'VT323',monospace;font-size:36px;line-height:1}
.stat-lbl{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-top:4px}

/* Rarity bars */
.rarity-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.rarity-row>span:first-child{min-width:110px;color:var(--text-dim);font-size:12px}
.rarity-bar-wrap{flex:1;height:6px;background:rgba(255,176,0,0.1);border:1px solid var(--amber-border)}
.rarity-bar{height:100%;background:var(--amber);transition:width .3s}

/* Quick links */
.quick-links{display:flex;gap:12px;flex-wrap:wrap}

/* Buttons */
.btn{
  background:transparent;border:1px solid var(--amber-border);color:var(--amber);
  font-family:'Share Tech Mono',monospace;font-size:12px;
  padding:7px 14px;cursor:pointer;text-transform:uppercase;letter-spacing:1px;
  transition:all .15s;text-decoration:none;display:inline-block;
}
.btn:hover{background:var(--amber-glow);border-color:var(--amber);box-shadow:0 0 8px rgba(255,176,0,0.2)}
.btn-primary{background:rgba(255,176,0,0.18);border-color:var(--amber);color:var(--amber)}
.btn-primary:hover{background:rgba(255,176,0,0.32);box-shadow:0 0 14px rgba(255,176,0,0.35)}
.btn-danger{border-color:rgba(255,68,68,0.5);color:var(--red)}
.btn-danger:hover{background:rgba(255,68,68,0.12);border-color:var(--red)}
.btn-sm{padding:3px 8px;font-size:11px}

/* Form */
.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
.form-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}
.form-group label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px}
.form-actions{display:flex;gap:8px;justify-content:flex-end}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap}

input,select,textarea{
  background:#0c0a00;border:1px solid var(--amber-border);color:var(--amber);
  font-family:'Share Tech Mono',monospace;font-size:13px;
  padding:6px 10px;outline:none;transition:border-color .15s;width:100%;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--amber);box-shadow:0 0 8px rgba(255,176,0,0.18);
}
select option{background:#0c0a00}
input[type=range]{padding:0;cursor:pointer;accent-color:var(--amber)}
.pct-input{width:80px;text-align:center}

/* Table */
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{
  background:rgba(255,176,0,0.08);color:var(--amber-dim);
  padding:8px 10px;text-align:left;font-size:11px;
  text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--amber-border);
}
tbody tr{border-bottom:1px solid rgba(255,176,0,0.07);transition:background .1s}
tbody tr:hover{background:var(--amber-glow)}
td{padding:7px 10px;vertical-align:middle}
.actions-col{white-space:nowrap}

/* Badges */
.badge{display:inline-block;padding:1px 7px;font-size:10px;border:1px solid;text-transform:uppercase;letter-spacing:1px}
.badge-common   {border-color:var(--text-dim);color:var(--text-dim)}
.badge-uncommon {border-color:var(--green);color:var(--green)}
.badge-rare     {border-color:var(--blue);color:var(--blue)}
.badge-epic     {border-color:#cc44ff;color:#cc44ff}
.badge-legendary{border-color:var(--amber);color:var(--amber);text-shadow:0 0 6px var(--amber)}
.badge-mythic {
    background: rgba(180,0,255,0.18);
    color: #d070ff;
    border: 1px solid rgba(180,0,255,0.4);
}

.badge-unique {
    background: rgba(255,60,0,0.18);
    color: #ff6030;
    border: 1px solid rgba(255,60,0,0.5);
    text-shadow: 0 0 6px rgba(255,80,0,0.6);
}

/* Cards */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(270px,1fr));
    gap: 16px
}
.card{
  border:1px solid var(--amber-border);background:var(--bg3);
  padding:16px;transition:all .2s;
}
.card:hover{border-color:var(--amber);background:var(--amber-glow);box-shadow:var(--shadow);transform:translateY(-2px)}
.card-title{font-family:'VT323',monospace;font-size:22px;letter-spacing:2px;margin-bottom:4px}
.card-sub{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:1px}

/* Stats in card */
.stat{display:flex;justify-content:space-between;padding:3px 0;border-bottom:1px solid rgba(255,176,0,0.06)}
.stat-label{color:var(--text-dim);font-size:12px}
.stat-val{color:var(--amber);font-size:12px}

/* Shop header */
.shop-header{
  background:linear-gradient(135deg,rgba(255,176,0,0.08),rgba(255,176,0,0.02));
  border:1px solid var(--amber);padding:18px;margin-bottom:20px;
}
.shop-name{font-family:'VT323',monospace;font-size:34px;letter-spacing:4px;text-shadow:0 0 16px var(--amber)}
.shop-city{color:var(--amber-dim);font-size:12px;text-transform:uppercase;letter-spacing:2px}

/* Barter */
.barter-panel{
  background:rgba(255,176,0,0.04);border:1px solid var(--amber);
  padding:16px;box-shadow:0 0 20px rgba(255,176,0,0.08);
}

/* Tabs */
.tabs{display:flex;border-bottom:1px solid var(--amber-border);margin-bottom:0}
.tab{
  padding:8px 18px;cursor:pointer;color:var(--text-dim);
  font-size:12px;text-transform:uppercase;letter-spacing:1px;
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s;
}
.tab.active{color:var(--amber);border-bottom-color:var(--amber)}
.tab:hover{color:var(--amber)}

/* Empty */
.empty{text-align:center;padding:48px;color:var(--text-dim)}
.empty-icon{font-family:'VT323',monospace;font-size:56px;opacity:.3;display:block;margin-bottom:12px}

/* Breadcrumb */
.breadcrumb{color:var(--text-dim);font-size:12px;margin-bottom:14px}
.breadcrumb a{color:var(--amber-dim);cursor:pointer;text-decoration:none}
.breadcrumb a:hover{color:var(--amber)}

/* Utilities */
.flex{display:flex}.gap-8{gap:8px}.gap-16{gap:16px}
.items-center{align-items:center}.justify-between{justify-content:space-between}
.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}
.text-dim{color:var(--text-dim)}.text-red{color:var(--red)}.text-green{color:var(--green)}
.text-blue{color:var(--blue)}.text-amber{color:var(--amber)}
.fz11{font-size:11px}
.w-full{width:100%}

/* Scrollbar */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--amber-border)}
::-webkit-scrollbar-thumb:hover{background:var(--amber)}

/* ── Responsive — tablette (≤ 1024px) ───────────────────────────────────── */
@media(max-width:1024px){
  /* Header */
  .site-header{ padding:10px 16px; }
  .logo{ font-size:22px; letter-spacing:2px; }
  .logo span{ font-size:11px; }
  .nav-btn{ padding:5px 10px; font-size:11px; }

  /* Main */
  .site-main{ padding:16px; }

  /* Grids */
  .grid-3{ grid-template-columns:1fr 1fr; }
  .stats-grid{ grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }

  /* Panel header : wrap les actions sur 2 lignes */
  .panel-header{ flex-wrap:wrap; gap:6px; }

  /* Shop header */
  .shop-header{ padding:12px; }
  .shop-name{ font-size:26px; }

  /* Tables : scroll horizontal */
  .table-responsive{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .table-responsive table{ min-width:500px; }

  /* Session : grille 2 col → 1 col */
  .session-shop-grid{
    grid-template-columns:1fr !important;
  }
  .session-shop-grid > div:first-child{
    border-right:none !important;
    border-bottom:1px solid var(--amber-border);
  }

  /* Troc global : empiler le range et les contrôles */
  .barter-controls{ flex-wrap:wrap; }
  .barter-controls #global-barter-display{
    font-size:32px;
    min-width:70px;
  }

  /* Formulaires : moins de colonnes */
  .form-row{ flex-direction:column; }
  .form-group{ min-width:unset; }

  /* Cartes villes/magasins */
  .card-grid{ grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
}

/* ── Responsive — petite tablette / paysage (≤ 768px) ───────────────────── */
@media(max-width:768px){
  /* Grids */
  .grid-2,.grid-3{ grid-template-columns:1fr; }
  .stats-grid{ grid-template-columns:1fr 1fr; }

  /* Header : empiler logo et nav */
  .site-header{ flex-wrap:wrap; gap:8px; padding:8px 12px; }
  nav{ flex-wrap:wrap; gap:3px; }
  .nav-btn{ padding:4px 8px; font-size:10px; }
  .logo{ font-size:20px; }

  /* Main */
  .site-main{ padding:10px 12px; }

  /* Sélecteur de villes en Session */
  .city-selector{ gap:4px; }
  .city-selector a{ padding:6px 12px; font-size:15px; }

  /* Panel header : bouttons en dessous du titre */
  .panel-header{ font-size:16px; }

  /* Shop header */
  .shop-name{ font-size:22px; letter-spacing:2px; }
  .shop-header .flex{ flex-wrap:wrap; gap:6px; }

  /* Cartes */
  .card-grid{ grid-template-columns:1fr; }

  /* Page title */
  .page-title{ font-size:22px; letter-spacing:2px; margin-bottom:12px; }

  /* Masquer colonnes secondaires dans les tables si trop étroit */
  .table-responsive{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .table-responsive table{ min-width:420px; }

  /* Boutons d'action dans les tableaux : empilés */
  .actions-col .btn{ margin-bottom:2px; display:block; }

  /* Barter */
  .barter-controls{ flex-direction:column; align-items:stretch; }
  .barter-controls #global-barter-display{
    text-align:center; font-size:36px; min-width:unset;
  }
  .barter-controls #global-barter-num{ width:100%; }

  /* Footer */
  .site-footer, footer{ flex-direction:column !important; gap:8px !important; text-align:center; }
}

