/* ═══════════════════════════════════════════
   ApolloSource — Frontend Styles v2
   ═══════════════════════════════════════════ */
:root{
  --as-bg:#0d0d0d;--as-bg-card:#141414;--as-bg-input:#1a1a1a;
  --as-border:#2a2a2a;--as-gold:#f5a623;--as-gold-dim:#c4831a;
  --as-text:#e8e8e8;--as-muted:#888;--as-white:#fff;
  --as-green:#5adc96;--as-red:#dc5a5a;--as-blue:#7aaeed;
  --as-radius:10px;--as-radius-sm:6px;
  --as-font:-apple-system,BlinkMacSystemFont,'Inter',sans-serif;
  --as-mono:'Fira Code','Consolas','Courier New',monospace;
}
.as-wrap{max-width:1100px;margin:0 auto;padding:0 20px 60px;font-family:var(--as-font);color:var(--as-text);}

/* ── Hero ── */
.as-hero{text-align:center;padding:80px 20px 60px;}
.as-hero__badge{display:inline-block;background:rgba(245,166,35,.12);border:1px solid rgba(245,166,35,.3);border-radius:999px;padding:6px 18px;font-size:.72em;letter-spacing:.12em;color:var(--as-gold);margin-bottom:28px;text-transform:uppercase;font-weight:700;}
.as-hero__title{font-size:clamp(2.2em,6vw,4em);font-weight:900;line-height:1.1;margin:0 0 20px;color:var(--as-white);letter-spacing:-.02em;}
.as-gold{color:var(--as-gold);}
.as-hero__subtitle{font-size:1.05em;color:var(--as-muted);line-height:1.7;margin:0 0 36px;}
.as-hero__buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:48px;}
.as-hero__stats{display:flex;justify-content:center;gap:50px;flex-wrap:wrap;}
.as-stat strong{display:block;font-size:2em;font-weight:800;color:var(--as-gold);}
.as-stat span{font-size:.72em;color:var(--as-muted);text-transform:uppercase;letter-spacing:.1em;}

/* ── Buttons ── */
.as-btn{display:inline-flex;align-items:center;gap:6px;padding:11px 24px;border-radius:var(--as-radius-sm);font-size:.85em;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:2px solid transparent;transition:all .2s;font-family:var(--as-font);line-height:1;}
.as-btn--primary{background:var(--as-gold);color:#111;border-color:var(--as-gold);}
.as-btn--primary:hover{background:var(--as-gold-dim);border-color:var(--as-gold-dim);color:#111;}
.as-btn--outline{background:transparent;color:var(--as-text);border-color:var(--as-border);}
.as-btn--outline:hover{border-color:var(--as-gold);color:var(--as-gold);}
.as-btn--secondary{background:var(--as-bg-input);color:var(--as-text);border-color:var(--as-border);}
.as-btn--ghost{background:transparent;color:var(--as-muted);border-color:transparent;}
.as-btn--ghost:hover{color:var(--as-text);}
.as-btn--danger{background:transparent;color:var(--as-red);border-color:var(--as-red);}
.as-btn--danger:hover{background:var(--as-red);color:#fff;}
.as-btn--sm{padding:6px 14px;font-size:.78em;}
.as-btn--lg{padding:14px 32px;font-size:.9em;}

/* ── Card ── */
.as-card{background:var(--as-bg-card);border:1px solid var(--as-border);border-radius:var(--as-radius);padding:24px;}

/* ── Search ── */
.as-search-bar{display:flex;max-width:780px;margin:0 auto 20px;}
.as-search-input{flex:1;background:var(--as-bg-input);border:1px solid var(--as-border);border-right:none;border-radius:var(--as-radius-sm) 0 0 var(--as-radius-sm);padding:13px 18px;color:var(--as-text);font-size:.95em;font-family:var(--as-font);outline:none;transition:border-color .2s;}
.as-search-input:focus{border-color:var(--as-gold);}
.as-search-input::placeholder{color:var(--as-muted);}
.as-search-bar .as-btn{border-radius:0 var(--as-radius-sm) var(--as-radius-sm) 0;}

/* ── Tag Filters ── */
.as-tag-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;justify-content:center;}
.as-tag-filter{background:transparent;border:1px solid var(--as-border);border-radius:999px;padding:5px 14px;font-size:.8em;color:var(--as-muted);cursor:pointer;transition:all .2s;font-family:var(--as-font);}
.as-tag-filter:hover,.as-tag-filter.active{border-color:var(--as-gold);color:var(--as-gold);background:rgba(245,166,35,.08);}

/* ── Addon Grid & Card ── */
.as-addon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-bottom:36px;}
.as-addon-card{background:var(--as-bg-card);border:1px solid var(--as-border);border-radius:var(--as-radius);padding:20px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s,transform .2s;}
.as-addon-card:hover{border-color:rgba(245,166,35,.4);transform:translateY(-2px);}
.as-addon-card__header{display:flex;align-items:flex-start;gap:12px;}
.as-addon-icon{width:44px;height:44px;flex-shrink:0;border-radius:8px;overflow:hidden;background:rgba(245,166,35,.08);}
.as-addon-icon img{width:100%;height:100%;object-fit:cover;}
.as-icon-placeholder{width:44px;height:44px;display:flex;align-items:center;justify-content:center;}
.as-icon-placeholder svg{width:22px;height:22px;stroke:var(--as-gold);}
.as-addon-title{font-size:.92em;font-weight:700;margin:0 0 3px;color:var(--as-white);}
.as-addon-title a{color:inherit;text-decoration:none;}
.as-addon-title a:hover{color:var(--as-gold);}
.as-addon-author{font-size:.78em;color:var(--as-muted);}
.as-addon-desc{font-size:.84em;color:var(--as-muted);line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.as-addon-tags{display:flex;flex-wrap:wrap;gap:5px;}
.as-tag{background:rgba(255,255,255,.05);border:1px solid var(--as-border);border-radius:999px;padding:2px 10px;font-size:.74em;color:var(--as-muted);text-decoration:none;}
.as-addon-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;font-size:.78em;color:var(--as-muted);}
.as-merge-badge{padding:2px 10px;border-radius:999px;font-size:.78em;font-weight:600;background:rgba(122,174,237,.12);color:var(--as-blue);border:1px solid rgba(122,174,237,.3);}
.as-merge-auto{background:rgba(90,220,150,.12);color:var(--as-green);border-color:rgba(90,220,150,.3);}
.as-merge-vote_threshold{background:rgba(245,166,35,.12);color:var(--as-gold);border-color:rgba(245,166,35,.3);}
.as-view-all{text-align:center;margin-top:10px;}

/* ── Browse Header ── */
.as-browse-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding-top:24px;}
.as-section-title{font-size:1.5em;font-weight:800;color:var(--as-white);margin:0;}

/* ── Single Addon ── */
.as-single{padding-top:20px;}
.as-back-link{display:inline-block;color:var(--as-muted);text-decoration:none;font-size:.85em;margin-bottom:18px;transition:color .2s;}
.as-back-link:hover{color:var(--as-gold);}
.as-single__banner{border-radius:var(--as-radius-sm) var(--as-radius-sm) 0 0;overflow:hidden;margin:-24px -24px 20px;}
.as-single__banner img{width:100%;max-height:280px;object-fit:cover;}
.as-single__title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
.as-single__title-row h1{margin:0;font-size:1.6em;color:var(--as-white);}
.as-single__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
.as-single__stats{display:flex;gap:20px;color:var(--as-muted);font-size:.82em;margin-top:14px;}
.as-single__header{margin-bottom:20px;}
.as-single__body{margin-bottom:20px;line-height:1.7;font-size:.95em;}
.as-single__body h3,.as-bbcode-h1{font-size:1.1em;color:var(--as-white);margin:16px 0 8px;}
.as-single__body h4,.as-bbcode-h2{font-size:1em;color:var(--as-muted);margin:12px 0 6px;}
.as-bbcode-hr{border:none;border-top:1px solid var(--as-border);margin:16px 0;}
.as-bbcode-list{padding-left:1.5em;color:var(--as-muted);font-size:.9em;margin:8px 0;}

/* ── Screenshots ── */
.as-screenshots{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px;overflow-x:auto;}
.as-screenshots a img{height:90px;border-radius:6px;border:1px solid var(--as-border);object-fit:cover;transition:opacity .2s;}
.as-screenshots a:hover img{opacity:.8;}

/* ── File browser ── */
.as-files{margin-bottom:20px;}
.as-file-tree{display:flex;flex-direction:column;gap:4px;margin-top:12px;}
.as-file-item{font-family:var(--as-mono);font-size:.8em;color:var(--as-muted);text-decoration:none;padding:4px 8px;border-radius:4px;transition:background .15s,color .15s;}
.as-file-item:hover{background:rgba(245,166,35,.08);color:var(--as-gold);}

/* ── Code viewer ── */
.as-file-viewer{margin-bottom:20px;}
.as-file-viewer__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--as-border);margin-bottom:12px;font-family:var(--as-mono);font-size:.85em;color:var(--as-muted);}
.as-code-view{background:#0a0a0a;border-radius:6px;padding:16px;font-family:var(--as-mono);font-size:.8em;overflow-x:auto;color:#ccc;line-height:1.6;white-space:pre;max-height:600px;overflow-y:auto;}

/* ── Diff viewer ── */
.as-diff-viewer{margin-bottom:20px;}
.as-diff-viewer__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.as-diff-viewer__header h3{margin:0;font-size:1.05em;color:var(--as-white);}
.as-diff-file{margin-bottom:16px;}
.as-diff-filename{font-family:var(--as-mono);font-size:.8em;color:var(--as-muted);padding:6px 12px;background:#0a0a0a;border-radius:6px 6px 0 0;border:1px solid var(--as-border);border-bottom:none;}
.as-diff-code{background:#0a0a0a;border:1px solid var(--as-border);border-radius:0 0 6px 6px;margin:0;padding:0;overflow-x:auto;font-family:var(--as-mono);font-size:.78em;line-height:1.5;max-height:500px;overflow-y:auto;}
.as-diff-line{display:flex;gap:0;}
.as-diff-add{background:rgba(90,220,150,.1);}
.as-diff-remove{background:rgba(220,90,90,.1);}
.as-diff-ln{min-width:40px;padding:0 8px;color:#555;text-align:right;user-select:none;border-right:1px solid var(--as-border);}
.as-diff-prefix{min-width:20px;padding:0 4px;color:var(--as-muted);}
.as-diff-add .as-diff-prefix{color:var(--as-green);}
.as-diff-remove .as-diff-prefix{color:var(--as-red);}
.as-diff-content{padding:0 8px;white-space:pre;}

/* ── Fix cards ── */
.as-fixes-section{margin-bottom:28px;}
.as-fixes-section .as-section-title{font-size:1.1em;margin-bottom:12px;}
.as-fix-card{background:var(--as-bg-card);border:1px solid var(--as-border);border-radius:var(--as-radius-sm);padding:16px;margin-bottom:10px;}
.as-fix-card.as-fix-accepted{border-left:3px solid var(--as-green);}
.as-fix-card.as-fix-pending{border-left:3px solid var(--as-gold);}
.as-fix-card.as-fix-rejected{border-left:3px solid var(--as-red);opacity:.6;}
.as-fix-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;flex-wrap:wrap;}
.as-fix-status{padding:2px 10px;border-radius:999px;font-size:.72em;font-weight:700;text-transform:uppercase;}
.as-fix-status--accepted{background:rgba(90,220,150,.12);color:var(--as-green);}
.as-fix-status--pending{background:rgba(245,166,35,.12);color:var(--as-gold);}
.as-fix-status--rejected{background:rgba(220,90,90,.12);color:var(--as-red);}
.as-fix-meta{font-size:.78em;color:var(--as-muted);}
.as-fix-desc{font-size:.85em;color:var(--as-muted);margin:0 0 10px;}
.as-fix-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.as-fix-actions,.as-fix-admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.as-vote-fix.as-voted{opacity:.5;cursor:default;}
.as-vote-display{color:var(--as-muted);font-size:.85em;}

/* ── Submit Fix ── */
.as-submit-fix{margin-bottom:20px;}
.as-submit-fix .as-section-title{font-size:1.1em;margin-bottom:10px;}
.as-submit-fix__info{font-size:.85em;color:var(--as-muted);line-height:1.6;margin-bottom:16px;}

/* ── Form ── */
.as-form{display:flex;flex-direction:column;gap:16px;}
.as-form-group{display:flex;flex-direction:column;gap:6px;}
.as-form-group label{font-size:.85em;color:var(--as-muted);font-weight:600;}
.as-form-group small{color:#666;font-weight:400;}
.as-input{background:var(--as-bg-input);border:1px solid var(--as-border);border-radius:var(--as-radius-sm);padding:11px 14px;color:var(--as-text);font-family:var(--as-font);font-size:.9em;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box;}
.as-input:focus{border-color:var(--as-gold);}
.as-input::placeholder{color:var(--as-muted);}
.as-textarea{resize:vertical;min-height:80px;}
select.as-input{cursor:pointer;}
.as-form-footer{display:flex;justify-content:flex-end;}

/* ── Workshop bar ── */
.as-workshop-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:rgba(245,166,35,.06);border:1px solid rgba(245,166,35,.2);border-radius:var(--as-radius-sm);padding:12px 16px;margin-bottom:4px;}
.as-workshop-label{font-size:.8em;font-weight:700;color:var(--as-gold);white-space:nowrap;}
.as-workshop-bar .as-input{flex:1;min-width:220px;margin:0;}
#as-workshop-status{font-size:.8em;}

/* ── Upload Zone ── */
.as-upload-zone{border:2px dashed var(--as-border);border-radius:var(--as-radius-sm);padding:32px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;}
.as-upload-zone:hover,.as-upload-zone.drag-over{border-color:var(--as-gold);background:rgba(245,166,35,.04);}
.as-upload-icon{font-size:2.5em;margin-bottom:8px;}
.as-upload-text{font-size:.9em;font-weight:600;color:var(--as-text);margin-bottom:4px;}
.as-upload-link{color:var(--as-gold);cursor:pointer;}
.as-upload-hint{font-size:.78em;color:var(--as-muted);}
.as-upload-filename{margin-top:8px;font-family:var(--as-mono);font-size:.82em;color:var(--as-gold);}

/* ── Tag input display ── */
.as-tag-display{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.as-tag-display .as-tag-chip{display:flex;align-items:center;gap:5px;background:rgba(245,166,35,.12);border:1px solid rgba(245,166,35,.3);border-radius:999px;padding:3px 12px;font-size:.8em;color:var(--as-gold);}
.as-tag-display .as-tag-chip button{background:none;border:none;color:var(--as-gold);cursor:pointer;padding:0;line-height:1;font-size:1em;}

/* ── Screenshots preview ── */
.as-screenshots-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.as-screenshots-preview img{height:60px;border-radius:4px;border:1px solid var(--as-border);}

/* ── Notices ── */
.as-notice{border-radius:var(--as-radius-sm);padding:13px 16px;margin-bottom:16px;font-size:.9em;}
.as-notice--warning{background:rgba(245,166,35,.1);border:1px solid rgba(245,166,35,.3);color:var(--as-gold);}
.as-notice--success{background:rgba(90,220,150,.1);border:1px solid rgba(90,220,150,.3);color:var(--as-green);}
.as-notice--error{background:rgba(220,90,90,.1);border:1px solid rgba(220,90,90,.3);color:var(--as-red);}
.as-notice--info{background:rgba(122,174,237,.1);border:1px solid rgba(122,174,237,.3);color:var(--as-blue);}
.as-notice a{color:inherit;}

/* ── Pagination ── */
.as-pagination{text-align:center;margin-top:24px;}
.as-pagination a,.as-pagination .current{display:inline-block;margin:0 3px;padding:7px 13px;border:1px solid var(--as-border);border-radius:var(--as-radius-sm);color:var(--as-muted);text-decoration:none;font-size:.85em;transition:all .2s;}
.as-pagination .current,.as-pagination a:hover{border-color:var(--as-gold);color:var(--as-gold);background:rgba(245,166,35,.08);}

/* ── Misc ── */
.as-no-results{color:var(--as-muted);text-align:center;padding:40px;}
.as-spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--as-border);border-top-color:var(--as-gold);border-radius:50%;animation:as-spin .7s linear infinite;vertical-align:middle;margin-right:6px;}
@keyframes as-spin{to{transform:rotate(360deg);}}

@media(max-width:600px){
  .as-addon-grid{grid-template-columns:1fr;}
  .as-hero__stats{gap:24px;}
  .as-browse-header{flex-direction:column;}
  .as-single__actions{flex-direction:column;}
}

/* ── Dashboard ── */
.as-dashboard-list{display:flex;flex-direction:column;gap:14px;}
.as-dashboard-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.as-dashboard-item__left{display:flex;align-items:flex-start;gap:14px;flex:1;min-width:0;}
.as-dashboard-thumb{width:64px;height:64px;flex-shrink:0;border-radius:8px;overflow:hidden;}
.as-dashboard-thumb img{width:100%;height:100%;object-fit:cover;}
.as-dashboard-info{flex:1;min-width:0;}
.as-dashboard-name{font-size:1em;font-weight:700;color:var(--as-white);text-decoration:none;display:block;margin-bottom:6px;}
.as-dashboard-name:hover{color:var(--as-gold);}
.as-dashboard-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:.8em;color:var(--as-muted);}
.as-dashboard-pending{color:var(--as-gold);font-weight:600;}
.as-dashboard-item__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;flex-shrink:0;}
.as-muted{color:var(--as-muted);}

/* ── BBCode rendered output ── */
.as-single__body .as-bb-h1{font-size:1.25em;font-weight:800;color:var(--as-white);margin:20px 0 8px;border-bottom:1px solid var(--as-border);padding-bottom:6px;}
.as-single__body .as-bb-h2{font-size:1.1em;font-weight:700;color:var(--as-white);margin:16px 0 6px;}
.as-single__body .as-bb-h3{font-size:1em;font-weight:700;color:var(--as-muted);margin:12px 0 4px;}
.as-single__body .as-bb-hr{border:none;border-top:1px solid var(--as-border);margin:16px 0;}
.as-single__body .as-bb-list{padding-left:1.6em;margin:8px 0;color:var(--as-text);}
.as-single__body .as-bb-list li{margin-bottom:4px;line-height:1.6;}
.as-single__body .as-bb-quote{border-left:3px solid var(--as-gold);margin:12px 0;padding:8px 14px;background:rgba(245,166,35,.06);border-radius:0 6px 6px 0;color:var(--as-muted);font-style:italic;}
.as-single__body .as-bb-quote cite{display:block;font-style:normal;font-weight:700;color:var(--as-gold);margin-bottom:4px;font-size:.85em;}
.as-single__body .as-bb-code{background:#0a0a0a;border:1px solid var(--as-border);border-radius:6px;padding:12px 16px;font-family:var(--as-mono);font-size:.82em;overflow-x:auto;color:#ccc;white-space:pre;margin:10px 0;}
.as-single__body .as-bb-img{max-width:100%;border-radius:6px;margin:8px 0;border:1px solid var(--as-border);}
.as-single__body .as-bb-video{position:relative;padding-bottom:56.25%;height:0;margin:12px 0;border-radius:8px;overflow:hidden;}
.as-single__body .as-bb-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;}
.as-single__body .as-bb-expand{margin:10px 0;border:1px solid var(--as-border);border-radius:6px;overflow:hidden;}
.as-single__body .as-bb-expand summary{padding:10px 14px;cursor:pointer;font-weight:600;color:var(--as-gold);background:rgba(245,166,35,.06);list-style:none;}
.as-single__body .as-bb-expand summary::-webkit-details-marker{display:none;}
.as-single__body .as-bb-expand div{padding:12px 14px;}
.as-single__body .as-bb-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:.88em;}
.as-single__body .as-bb-table th,.as-single__body .as-bb-table td{padding:8px 12px;border:1px solid var(--as-border);color:var(--as-text);}
.as-single__body .as-bb-table th{background:rgba(245,166,35,.08);color:var(--as-gold);font-weight:700;}
.as-single__body .as-bb-spoiler{background:var(--as-border);color:transparent;border-radius:4px;padding:0 6px;cursor:pointer;transition:all .2s;user-select:none;}
.as-single__body .as-bb-spoiler.revealed{background:rgba(255,255,255,.08);color:var(--as-text);}

/* ── Inline file viewer ── */
.as-file-btn{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--as-mono);font-size:.8em;color:var(--as-muted);padding:4px 8px;border-radius:4px;transition:background .15s,color .15s;}
.as-file-btn:hover,.as-file-btn.active{background:rgba(245,166,35,.08);color:var(--as-gold);}
.as-file-viewer-inline{margin-top:14px;border:1px solid var(--as-border);border-radius:var(--as-radius-sm);overflow:hidden;}
.as-file-viewer__header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#0a0a0a;border-bottom:1px solid var(--as-border);font-family:var(--as-mono);font-size:.82em;color:var(--as-muted);}
#as-file-viewer-content{margin:0;padding:16px;background:#0a0a0a;font-family:var(--as-mono);font-size:.8em;color:#ccc;line-height:1.6;overflow-x:auto;max-height:500px;overflow-y:auto;white-space:pre;}

/* ── Read more ── */
.as-read-more-btn{margin-top:10px;}
.as-desc-short{color:var(--as-muted);}

/* ── Author ── */
.as-addon-author-row{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.85em;color:var(--as-muted);}
.as-author-avatar-sm{border-radius:50%;width:24px;height:24px;vertical-align:middle;}
.as-author-avatar{border-radius:50%;}
.as-author-link{color:var(--as-gold);text-decoration:none;}
.as-author-link:hover{text-decoration:underline;}
