/* ============================================================
   ChampArena — Organizer portal & event wizard
   Extends css/shared.css. Uses only the existing design tokens
   (--navy, --surface, --gold, --border…) so nothing here
   introduces a new colour, font or radius.
   ============================================================ */

/* ---------- wizard shell ---------- */
.wiz-modal{max-width:680px;display:flex;flex-direction:column;max-height:92vh;}
.wiz-crumb{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:5px;}
.wiz-modal .modal-steps{padding:0 28px;margin-bottom:0;padding-bottom:18px;
  border-bottom:1px solid var(--border);position:sticky;top:73px;background:var(--surface);z-index:2;}
.wiz-modal .modal-body{flex:1;overflow-y:auto;}

.wiz-foot{padding:18px 28px 22px;border-top:1px solid var(--border);
  position:sticky;bottom:0;background:var(--surface);z-index:2;}
.wiz-btns{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.wiz-right{display:flex;gap:10px;align-items:center;margin-left:auto;}
.wiz-foot .btn{padding:11px 22px;font-size:14px;}

.wiz-msg{font-size:13px;min-height:0;margin-bottom:0;transition:all .2s;}
.wiz-msg.err{color:#E5484D;margin-bottom:12px;}
.wiz-msg.ok{color:#4CC38A;margin-bottom:12px;}

.wiz-hint{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5;}
.wiz-opt{font-size:10px;letter-spacing:.04em;text-transform:none;color:var(--faint);
  font-weight:400;margin-left:5px;}
.wiz-note{font-size:12.5px;color:var(--muted);padding:12px 14px;background:var(--navy-2);
  border:1px solid var(--border);border-radius:var(--radius-sm);}
.wiz-note b{color:var(--body);}

/* ---------- layout helpers ---------- */
.wiz-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

/* textarea matches .field input exactly */
.field textarea{width:100%;background:var(--navy-2);border:1.5px solid var(--border-2);
  border-radius:10px;padding:12px 14px;color:var(--white);font-size:14.5px;
  font-family:inherit;outline:none;transition:border .2s;resize:vertical;line-height:1.6;}
.field textarea:focus{border-color:var(--gold);}
.field textarea::placeholder{color:var(--muted);}

/* ---------- choice chips ---------- */
.wiz-picks{display:flex;flex-wrap:wrap;gap:9px;}
.wiz-pick{display:flex;align-items:center;gap:8px;padding:11px 15px;background:var(--navy-2);
  border:1.5px solid var(--border-2);border-radius:11px;color:var(--body);font-size:13.5px;
  font-family:inherit;cursor:pointer;transition:all .2s;}
.wiz-pick:hover{border-color:rgba(216,182,103,.4);color:var(--white);}
.wiz-pick.sel{border-color:var(--gold);background:rgba(216,182,103,.08);color:var(--gold);}
.wiz-pick .e{font-size:16px;}
.wiz-pick.sm{padding:9px 18px;}
.wiz-toggle-row{display:flex;gap:9px;}

.wiz-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;
  font-size:14px;color:var(--body);text-transform:none;letter-spacing:0;font-weight:400;}
.wiz-check input{width:17px;height:17px;accent-color:var(--gold);margin-top:1px;flex-shrink:0;}

/* ---------- uploads ---------- */
.wiz-up-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.wiz-up label{display:block;font-size:12px;letter-spacing:.5px;text-transform:uppercase;
  color:var(--muted);font-weight:600;margin-bottom:8px;}
.wiz-up-box{position:relative;height:130px;border:1.5px dashed var(--border-2);border-radius:12px;
  background:var(--navy-2);display:flex;align-items:center;justify-content:center;
  cursor:pointer;overflow:hidden;transition:all .2s;}
.wiz-up-box:hover,.wiz-up-box.drag{border-color:var(--gold);background:rgba(216,182,103,.05);}
.wiz-up-box.has{border-style:solid;}
.wiz-up-box img{width:100%;height:100%;object-fit:contain;padding:8px;}
.wiz-up-box.busy{opacity:.5;pointer-events:none;}
.wiz-up-empty{text-align:center;color:var(--muted);font-size:12px;line-height:1.7;}
.wiz-up-empty b{display:block;font-size:22px;color:var(--faint);font-weight:400;}
.wiz-up-x{position:absolute;top:7px;right:7px;padding:4px 9px;font-size:11px;
  background:rgba(5,11,24,.8);border:1px solid var(--border-2);border-radius:7px;
  color:var(--body);cursor:pointer;font-family:inherit;transition:all .2s;}
.wiz-up-x:hover{color:#E5484D;border-color:#E5484D;}

.wiz-gal{display:flex;flex-wrap:wrap;gap:10px;}
.wiz-gal-item{position:relative;width:88px;height:88px;border-radius:10px;overflow:hidden;
  border:1px solid var(--border-2);}
.wiz-gal-item img{width:100%;height:100%;object-fit:cover;}
.wiz-gal-add{width:88px;height:88px;border:1.5px dashed var(--border-2);border-radius:10px;
  background:var(--navy-2);color:var(--muted);font-size:11.5px;cursor:pointer;
  font-family:inherit;transition:all .2s;}
.wiz-gal-add:hover{border-color:var(--gold);color:var(--gold);}

.wiz-sponsor{display:flex;gap:8px;margin-bottom:9px;align-items:center;}
.wiz-sponsor input{flex:1;background:var(--navy-2);border:1.5px solid var(--border-2);
  border-radius:10px;padding:10px 13px;color:var(--white);font-size:14px;
  font-family:inherit;outline:none;}
.wiz-sponsor input:focus{border-color:var(--gold);}
.wiz-sponsor .wiz-up-x{position:static;}

.wiz-themes{display:flex;flex-wrap:wrap;gap:9px;}
.wiz-theme{width:40px;height:40px;border-radius:10px;border:2px solid transparent;
  cursor:pointer;transition:all .2s;}
.wiz-theme:hover{transform:scale(1.06);}
.wiz-theme.sel{border-color:var(--gold);transform:scale(1.06);}

/* ---------- custom form builder (step 5) ---------- */
.ff-card{border:1px solid var(--border-2);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--navy-2);}
.ff-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.ff-num{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:rgba(216,182,103,.14);
  color:var(--gold);font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:600;}
.ff-label{flex:1;background:var(--surface);border:1.5px solid var(--border-2);border-radius:9px;
  padding:9px 12px;color:var(--white);font-size:14px;font-family:inherit;outline:none;}
.ff-label:focus{border-color:var(--gold);}
.ff-move{display:flex;gap:4px;}
.ff-move button{width:28px;height:28px;border-radius:7px;border:1px solid var(--border-2);
  background:var(--surface);color:var(--body);cursor:pointer;font-size:13px;transition:all .15s;}
.ff-move button:hover:not([disabled]){border-color:var(--gold);color:var(--gold);}
.ff-move button[disabled]{opacity:.3;cursor:default;}
.ff-move .ff-del:hover{border-color:#E5484D;color:#E5484D;}
.ff-row{display:flex;align-items:center;gap:14px;}
.ff-type{background:var(--surface);border:1.5px solid var(--border-2);border-radius:9px;
  padding:8px 11px;color:var(--white);font-size:13px;font-family:inherit;outline:none;cursor:pointer;}
.ff-req{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--body);cursor:pointer;}
.ff-req input{width:15px;height:15px;accent-color:var(--gold);}
.ff-opts{margin-top:10px;}
.ff-opts textarea{width:100%;background:var(--surface);border:1.5px solid var(--border-2);
  border-radius:9px;padding:9px 12px;color:var(--white);font-size:13.5px;font-family:inherit;
  outline:none;resize:vertical;line-height:1.6;}
.ff-opts textarea:focus{border-color:var(--gold);}
.ff-empty{text-align:center;padding:24px;color:var(--muted);font-size:13px;
  border:1px dashed var(--border-2);border-radius:12px;}

.wiz-slug{display:flex;align-items:center;background:var(--navy-2);border:1.5px solid var(--border-2);
  border-radius:10px;overflow:hidden;}
.wiz-slug span{padding:11px 4px 11px 13px;color:var(--muted);font-size:13.5px;white-space:nowrap;}
.wiz-slug input{flex:1;background:none;border:none;padding:11px 13px 11px 2px;color:var(--white);
  font-size:14px;font-family:inherit;outline:none;}

/* ---------- review ---------- */
.wiz-problems{padding:14px 16px;background:rgba(229,72,77,.08);border:1px solid rgba(229,72,77,.25);
  border-radius:12px;margin-bottom:20px;font-size:13px;color:#E5848A;}
.wiz-problems b{display:block;color:#E5484D;margin-bottom:7px;font-size:13px;}
.wiz-problems ul{margin:0;padding-left:17px;line-height:1.75;}
.wiz-ok{padding:13px 16px;background:rgba(76,195,138,.08);border:1px solid rgba(76,195,138,.25);
  border-radius:12px;margin-bottom:20px;font-size:13.5px;color:#4CC38A;}

.wiz-preview{border:1px solid var(--border-2);border-radius:var(--radius);overflow:hidden;
  margin-bottom:20px;background:var(--navy-2);}
.wiz-prev-banner{height:140px;display:flex;align-items:center;justify-content:center;
  font-size:46px;overflow:hidden;}
.wiz-prev-banner img{width:100%;height:100%;object-fit:cover;}
.wiz-prev-banner img.lg{width:84px;height:84px;border-radius:50%;object-fit:cover;}
.wiz-prev-body{padding:18px 20px;}
.wiz-prev-body h4{font-family:'Fraunces',serif;font-size:19px;color:var(--white);
  margin:10px 0 5px;font-weight:600;line-height:1.3;}
.wiz-prev-body p{font-size:13.5px;color:var(--body);margin-bottom:9px;line-height:1.55;}
.wiz-prev-meta{font-size:12.5px;color:var(--muted);}
.wiz-prev-foot{display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding-top:14px;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--muted);}
.wiz-prev-price{font-size:17px;color:var(--gold);font-weight:600;}

.wiz-rev{border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.wiz-rev-row{display:flex;justify-content:space-between;gap:16px;padding:11px 15px;
  font-size:13.5px;border-bottom:1px solid var(--border);}
.wiz-rev-row:last-child{border-bottom:none;}
.wiz-rev-row span{color:var(--muted);}
.wiz-rev-row b{color:var(--white);font-weight:500;text-align:right;}

/* ============================================================
   PORTAL — tabs, panels, tables, filters
   ============================================================ */
.org-role{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:20px;font-size:11px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--gold);
  background:rgba(216,182,103,.1);border:1px solid rgba(216,182,103,.25);}

.org-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:28px;
  overflow-x:auto;scrollbar-width:none;}
.org-tabs::-webkit-scrollbar{display:none;}
.org-tab{padding:12px 18px;background:none;border:none;border-bottom:2px solid transparent;
  color:var(--muted);font-size:14px;font-family:inherit;cursor:pointer;white-space:nowrap;
  transition:all .2s;margin-bottom:-1px;}
.org-tab:hover{color:var(--body);}
.org-tab.active{color:var(--gold);border-bottom-color:var(--gold);}

.stat-row.six{grid-template-columns:repeat(6,1fr);}
.stat-card .stat-sub{font-size:11.5px;color:var(--faint);margin-top:6px;}

.org-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;}
.org-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;}
.org-panel-head h3{font-family:'Fraunces',serif;font-weight:600;font-size:17px;color:var(--white);}

.org-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;margin-top:22px;}
.org-chart{height:240px;position:relative;}

.org-empty{text-align:center;padding:34px 16px;color:var(--muted);font-size:13.5px;line-height:1.7;}
.dim{color:var(--faint);font-size:12px;}

/* traffic sources */
.src-row{margin-bottom:14px;}
.src-top{display:flex;justify-content:space-between;font-size:13px;color:var(--body);margin-bottom:6px;}
.src-top b{color:var(--white);}
.src-track{height:5px;border-radius:3px;background:var(--navy-2);overflow:hidden;}
.src-fill{height:100%;background:linear-gradient(90deg,var(--gold-dk),var(--gold));border-radius:3px;}

.org-pill{display:inline-block;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  padding:2px 8px;border-radius:20px;border:1px solid;margin-left:4px;vertical-align:middle;}

/* toolbar / filters */
.org-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px;}
.org-search{flex:1;min-width:220px;background:var(--surface);border:1.5px solid var(--border-2);
  border-radius:10px;padding:11px 14px;color:var(--white);font-size:14px;
  font-family:inherit;outline:none;transition:border .2s;}
.org-search:focus{border-color:var(--gold);}
.org-search::placeholder{color:var(--muted);}
.org-select{background:var(--surface);border:1.5px solid var(--border-2);border-radius:10px;
  padding:11px 13px;color:var(--white);font-size:13.5px;font-family:inherit;outline:none;
  cursor:pointer;max-width:220px;}
.org-select:focus{border-color:var(--gold);}
.org-select.sm{padding:6px 9px;font-size:12.5px;}
.org-toolbar-right{display:flex;gap:8px;margin-left:auto;}

/* bulk action bar */
.org-bulk{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:11px 16px;margin-bottom:14px;border-radius:11px;
  background:rgba(216,182,103,.08);border:1px solid rgba(216,182,103,.25);
  font-size:13.5px;color:var(--gold);}
.org-bulk-actions{display:flex;gap:6px;flex-wrap:wrap;}

/* tables */
.org-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.reg-table{min-width:900px;}
.reg-table tr.sel td{background:rgba(216,182,103,.06);}
.data-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold);cursor:pointer;}

.org-pager{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:16px;flex-wrap:wrap;font-size:13px;}
.org-pager-btns{display:flex;align-items:center;gap:10px;}
.org-pager button[disabled]{opacity:.35;pointer-events:none;}

/* ---------- button loading state ---------- */
.btn.loading{position:relative;color:transparent !important;pointer-events:none;}
.btn.loading::after{content:'';position:absolute;top:50%;left:50%;width:15px;height:15px;
  margin:-7.5px 0 0 -7.5px;border:2px solid rgba(255,255,255,.3);
  border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite;
  color:var(--navy);}

/* ---------- approval queue ---------- */
.tab-badge{display:inline-block;min-width:18px;padding:1px 6px;margin-left:6px;
  border-radius:20px;background:var(--gold);color:var(--navy);
  font-size:11px;font-weight:700;line-height:16px;text-align:center;}

.appr-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:20px;margin-bottom:16px;transition:opacity .2s;}
.appr-card.busy{opacity:.45;pointer-events:none;}
.appr-head{display:flex;align-items:center;gap:15px;margin-bottom:14px;}
.appr-title{flex:1;min-width:0;}
.appr-title h4{font-family:'Fraunces',serif;font-weight:600;font-size:17px;
  color:var(--white);margin-bottom:4px;}
.appr-title .emi{font-size:12.5px;color:var(--muted);}
.appr-sub{font-size:14px;color:var(--body);margin-bottom:8px;}
.appr-desc{font-size:13.5px;color:var(--muted);line-height:1.65;
  max-height:78px;overflow:hidden;position:relative;}
.appr-actions{display:flex;gap:9px;margin-top:16px;flex-wrap:wrap;align-items:center;}

.appr-note{margin-top:7px;font-size:12px;padding:7px 11px;border-radius:8px;
  background:rgba(216,182,103,.08);border:1px solid rgba(216,182,103,.22);color:var(--gold);}
.appr-note.rej{background:rgba(229,72,77,.08);border-color:rgba(229,72,77,.25);color:#E5848A;}
.appr-note b{color:inherit;}

/* ---------- responsive: portal ---------- */
@media(max-width:1100px){
  .stat-row.six{grid-template-columns:repeat(3,1fr);}
  .org-cols{grid-template-columns:1fr;}
}
@media(max-width:760px){
  .stat-row,.stat-row.six{grid-template-columns:repeat(2,1fr);gap:12px;}
  .stat-card{padding:16px;}
  .stat-card .sv{font-size:22px;}
  .org-panel{padding:16px;}
  .org-toolbar{flex-direction:column;align-items:stretch;}
  .org-select{max-width:none;}
  .org-toolbar-right{margin-left:0;}
  .org-toolbar-right .btn{flex:1;}
  .org-bulk{flex-direction:column;align-items:stretch;}
  .evt-manage-card{flex-wrap:wrap;}
  .evt-manage-stats{width:100%;justify-content:space-around;
    padding-top:14px;border-top:1px solid var(--border);}
  .evt-actions{width:100%;justify-content:flex-end;}
  .org-pager{justify-content:center;}
}

/* ---------- mobile ---------- */
@media(max-width:640px){
  .wiz-modal{max-width:100%;max-height:100vh;border-radius:0;height:100vh;}
  .modal-backdrop{padding:0;}
  .wiz-modal .modal-steps{top:69px;padding-left:20px;padding-right:20px;}
  .wiz-modal .modal-body{padding:20px;}
  .wiz-foot{padding:14px 20px 18px;}
  .wiz-grid-2,.wiz-up-row{grid-template-columns:1fr;}
  .wiz-btns{flex-wrap:wrap;}
  .wiz-right{width:100%;}
  .wiz-right .btn{flex:1;}
  .wiz-foot .btn{padding:12px 16px;}
}

/* ---- admin: two-column All Events (powered vs discovery) ---- */
.ae-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.ae-col-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--border);}
.ae-col-head h3{font-family:'Fraunces',serif;font-weight:600;font-size:16px;color:var(--white);}
.ae-count{min-width:22px;text-align:center;padding:1px 8px;border-radius:20px;font-size:12px;font-weight:700;}
.ae-count.gold{color:#1a1204;background:linear-gradient(135deg,#F0D28E,#D8B667);}
.ae-count.dim{color:var(--body);background:var(--navy-2);border:1px solid var(--border-2);}
.ae-col .evt-manage-card{padding:14px;gap:12px;}
.ae-col .evt-manage-stats{gap:14px;}
@media(max-width:900px){ .ae-cols{grid-template-columns:1fr;} }

/* eligible-classes selector */
.wiz-classes{display:flex;flex-wrap:wrap;gap:8px;}

/* form builder: "already collected" callout */
.ff-already{padding:14px 16px;margin-bottom:16px;border-radius:12px;
  background:rgba(216,182,103,.07);border:1px solid rgba(216,182,103,.22);}
.ff-already b{color:var(--gold);font-size:13px;}
.ff-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px;}
.ff-chips span{font-size:12px;color:var(--body);background:var(--navy-2);
  border:1px solid var(--border-2);border-radius:100px;padding:3px 11px;}
