/* ===================================================================
   MINESITE — skin-maker.css  (synced with style.css / seeds.css)
   =================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=DM+Mono:wght@400;500&display=swap');

/* ─── DESIGN TOKENS — identical to style.css / seeds.css ──────── */
:root {
  --bg:           #060b06;
  --bg-2:         #0d160d;
  --bg-3:         #131f13;
  --bg-card:      #0f1a0f;
  --bg-elevated:  #172417;
  --border:       #1f3320;
  --border-2:     #2e5030;
  --border-focus: #4ade80;
  --green:        #4ade80;
  --green-dim:    #34c265;
  --green-muted:  #2a9e52;
  --green-glow:   rgba(74,222,128,0.18);
  --green-soft:   rgba(74,222,128,0.08);
  --gold:         #f59e0b;
  --cyan:         #06b6d4;
  --danger:       #f87171;
  --text:         #e2f0e2;
  --text-2:       #9dbe9d;
  --text-3:       #5e7e5e;
  --text-inv:     #060b06;
  --sans:   'DM Sans', system-ui, -apple-system, sans-serif;
  --mono:   'DM Mono', 'Courier New', monospace;
  --pixel:  'Press Start 2P', cursive;
  --radius:    6px;
  --radius-lg: 12px;
  --radius-xl: 18px;
  --dur-fast:  0.15s;
  --dur-base:  0.22s;
  --ease:      cubic-bezier(0.22,1,0.36,1);
  --transition: all var(--dur-base) var(--ease);
  --touch:     44px;
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast:0ms; --dur-base:0ms; }
  *, *::before, *::after { animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:hidden; }

body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-image:
    linear-gradient(rgba(74,222,128,0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74,222,128,0.018) 1px, transparent 1px);
  background-size: 32px 32px;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

:focus-visible { outline:2px solid var(--green); outline-offset:3px; border-radius:var(--radius); }

.pixel     { font-family:var(--pixel); letter-spacing:0.05em; }
.mono      { font-family:var(--mono); }
.container { max-width:1280px; margin:0 auto; padding:0 1.5rem; width:100%; }

.skip-link {
  position:absolute; top:-60px; left:1rem;
  background:var(--green); color:var(--bg);
  padding:10px 20px; font-weight:700; font-size:0.9rem;
  text-decoration:none; z-index:9999;
  border-radius:0 0 var(--radius) var(--radius); transition:top 0.2s;
}
.skip-link:focus { top:0; }

/* ─── SCROLL HINT ─────────────────────────────────────────────── */
.scroll-hint {
  position:fixed; bottom:1.75rem; left:50%; transform:translateX(-50%);
  z-index:150; display:flex; align-items:center; gap:.5rem;
  padding:.55rem 1.1rem .55rem .85rem;
  background:rgba(6,11,6,0.95); border:1px solid rgba(74,222,128,0.55);
  border-radius:99px; color:var(--green); font-family:var(--pixel);
  font-size:.42rem; letter-spacing:.1em; white-space:nowrap;
  cursor:pointer; user-select:none; backdrop-filter:blur(14px);
  box-shadow:0 4px 28px rgba(74,222,128,.18),0 0 0 1px rgba(74,222,128,.08);
  opacity:0; pointer-events:none;
  transition:opacity .4s ease, transform .4s ease, box-shadow .2s;
}
.scroll-hint.visible  { opacity:1; pointer-events:auto; }
.scroll-hint.dismissed{ opacity:0; pointer-events:none; transform:translateX(-50%) translateY(10px); }
.scroll-hint:hover { box-shadow:0 6px 36px rgba(74,222,128,.3),0 0 0 1px rgba(74,222,128,.2); border-color:rgba(74,222,128,.85); }
.scroll-hint-arrow { flex-shrink:0; animation:hint-bounce 1.3s ease-in-out infinite; }
@keyframes hint-bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(4px)} }

/* ─── HEADER — matches index.html exactly ─────────────────────── */
.site-header {
  position:sticky; top:0; z-index:200;
  background:rgba(6,11,6,0.9);
  backdrop-filter:blur(20px) saturate(1.4);
  border-bottom:1px solid var(--border);
}
.nav-container { display:flex; align-items:center; justify-content:space-between; height:68px; gap:1rem; }

.logo { display:flex; align-items:center; gap:0.7rem; text-decoration:none; flex-shrink:0; transition:var(--transition); }
.logo-icon-svg { width:34px; height:34px; border-radius:8px; border:1px solid var(--border-2); }
.logo-text { font-family:var(--pixel); font-size:0.65rem; color:var(--green); letter-spacing:0.1em; text-shadow:0 0 16px rgba(74,222,128,0.55); transition:color var(--dur-base) var(--ease); }
.logo:hover .logo-text { color:#b9f5d0; }

.main-nav ul { display:flex; gap:1.5rem; list-style:none; align-items:center; }
.main-nav a {
  font-family:var(--sans); font-size:0.875rem; font-weight:500;
  color:var(--text-2); text-decoration:none; letter-spacing:0.01em;
  transition:color var(--dur-base) var(--ease); position:relative; padding-bottom:2px;
}
.main-nav a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--green); border-radius:1px; transition:width var(--dur-base) var(--ease); }
.main-nav a:hover        { color:var(--text); }
.main-nav a:hover::after { width:100%; }
.main-nav a.active       { color:var(--green); }
.main-nav a.active::after{ width:100%; }

.nav-cta {
  background:var(--green-soft) !important; border:1px solid var(--border-2) !important;
  border-radius:999px !important; padding:0.42rem 1.1rem !important;
  color:var(--green) !important; font-size:0.82rem !important; font-weight:600 !important;
}
.nav-cta:hover { background:rgba(74,222,128,0.14) !important; border-color:var(--green-muted) !important; color:#b9f5d0 !important; }
.nav-cta::after { display:none !important; }

.mobile-menu-toggle { display:none; flex-direction:column; gap:5px; background:none; border:1px solid transparent; cursor:pointer; padding:0.5rem; border-radius:var(--radius); transition:border-color var(--dur-base) var(--ease); }
.mobile-menu-toggle:hover { border-color:var(--border-2); }
.burger-line { display:block; width:22px; height:2px; background:var(--text-2); border-radius:2px; transition:var(--transition); }

/* ─── ACTION BAR ─────────────────────────────────────────────── */
.action-bar { border-bottom:1px solid var(--border); padding:.85rem 0; background:var(--bg-2); }
.action-wrap {
  max-width:1280px; margin:0 auto; padding:0 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}
.page-title { font-size:clamp(.5rem,2vw,.75rem); color:var(--green); text-shadow:0 0 14px rgba(74,222,128,.3); }
.action-btns { display:flex; gap:.6rem; }

.abtn {
  display:flex; align-items:center; gap:.45rem;
  padding:.55rem 1rem; font-family:var(--sans); font-size:0.82rem; font-weight:500;
  border-radius:var(--radius); border:1px solid; cursor:pointer;
  transition:var(--transition); min-height:var(--touch);
}
.abtn-upload  { background:rgba(6,182,212,.08); border-color:rgba(6,182,212,.4); color:var(--cyan); }
.abtn-upload:hover  { background:rgba(6,182,212,.15); border-color:var(--cyan); }
.abtn-download{ background:var(--green-soft); border-color:var(--green-dim); color:var(--green); }
.abtn-download:hover{ background:rgba(74,222,128,.15); border-color:var(--green); }

/* ─── EDITOR MAIN ────────────────────────────────────────────── */
.editor-main {
  flex:1; max-width:1280px; width:100%; margin:0 auto;
  padding:.75rem 1.5rem; display:flex; flex-direction:column; gap:0;
}

/* Layer tabs */
.layer-tabs {
  display:flex; background:var(--bg-2);
  border:1px solid var(--border); border-bottom:none;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.ltab {
  padding:.65rem 1.5rem; background:none;
  border:none; border-bottom:2px solid transparent;
  color:var(--text-3); font-family:var(--sans); font-size:0.82rem; font-weight:500;
  cursor:pointer; transition:var(--transition); min-height:var(--touch);
}
.ltab:hover { color:var(--text-2); }
.ltab.active { color:var(--green); border-bottom-color:var(--green); }

/* THREE-COLUMN GRID */
.editor-grid {
  display:grid;
  grid-template-columns: 165px 1fr 340px;
  height: 600px;
  border: 1px solid var(--border);
  background: var(--bg-3);
  overflow: hidden;
}

/* ─── LEFT COL ───────────────────────────────────────────────── */
.col-left { border-right:1px solid var(--border); background:var(--bg-2); display:flex; flex-direction:column; overflow:hidden; }
.panel-head { font-family:var(--pixel); font-size:.38rem; color:var(--text-3); letter-spacing:.2em; text-transform:uppercase; padding:.6rem .75rem .5rem; border-bottom:1px solid var(--border); background:var(--bg-3); }
.parts-list { display:flex; flex-direction:column; gap:.25rem; padding:.5rem; overflow-y:auto; }
.part-btn {
  display:flex; align-items:center; gap:.55rem;
  padding:.55rem .65rem; background:none;
  border:1px solid transparent; color:var(--text-2);
  font-family:var(--sans); font-size:0.82rem; font-weight:500;
  border-radius:var(--radius); cursor:pointer; transition:var(--transition);
  text-align:left; min-height:var(--touch);
}
.part-btn:hover  { border-color:var(--border-2); color:var(--text); }
.part-btn.active { border-color:var(--green); color:var(--green); background:var(--green-soft); }
.pdot { width:8px; height:8px; border-radius:1px; flex-shrink:0; }

.flat-panel { margin-top:auto; border-top:1px solid var(--border); padding:.6rem; }
.flat-preview {
  background: repeating-conic-gradient(#080f08 0% 25%, #0b140b 25% 50%) 0 0 / 8px 8px;
  border:1px solid var(--border); border-radius:var(--radius);
  padding:.4rem; display:flex; justify-content:center;
}
#flatCanvas { image-rendering:pixelated; width:120px; height:120px; display:block; }
.flat-note { font-size:.52rem; color:var(--text-3); text-align:center; margin-top:.3rem; font-family:var(--mono); }

/* ─── CENTRE (3D viewport) ───────────────────────────────────── */
.col-centre {
  position:relative;
  background: repeating-conic-gradient(#070d07 0% 25%, #0a130a 25% 50%) 0 0 / 18px 18px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
#threeCanvas { display:block; cursor:grab; touch-action:none; }
#threeCanvas:active { cursor:grabbing; }
.vp-hint { position:absolute; bottom:.55rem; left:50%; transform:translateX(-50%); font-size:.5rem; color:rgba(74,222,128,.28); pointer-events:none; white-space:nowrap; font-family:var(--mono); }
.vp-loading {
  position:absolute; inset:0; background:rgba(6,11,6,0.8);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.75rem; font-size:0.82rem; color:var(--text-2); transition:opacity .4s; font-family:var(--sans);
}
.vp-loading.hidden { opacity:0; pointer-events:none; }
.vp-spinner { width:32px; height:32px; border:3px solid var(--border); border-top-color:var(--green); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ─── RIGHT COL (pixel editor) ──────────────────────────────── */
.col-right { border-left:1px solid var(--border); background:var(--bg-2); display:flex; flex-direction:column; }
.pixel-head { display:flex; align-items:center; justify-content:space-between; padding:.5rem .7rem; border-bottom:1px solid var(--border); background:var(--bg-3); }
.part-face-select { display:flex; align-items:center; gap:.75rem; }
.face-select { background:var(--bg-card); border:1px solid var(--border); color:var(--text); font-family:var(--sans); font-size:0.82rem; padding:.3rem .5rem; border-radius:var(--radius); cursor:pointer; }
.zoom-ctrl { display:flex; align-items:center; gap:.3rem; }
.zbtn { width:28px; height:28px; display:flex; align-items:center; justify-content:center; background:var(--bg-3); border:1px solid var(--border); color:var(--text-2); font-size:.9rem; border-radius:var(--radius); cursor:pointer; transition:var(--transition); min-width:var(--touch); min-height:var(--touch); }
.zbtn:hover { border-color:var(--green); color:var(--green); }
.zoom-val { font-size:0.72rem; color:var(--text-3); min-width:28px; text-align:center; font-family:var(--mono); }
.pixel-scroll { flex:1; overflow:auto; display:flex; align-items:center; justify-content:center; padding:.75rem; background:repeating-conic-gradient(#070d07 0% 25%, #0a130a 25% 50%) 0 0 / 12px 12px; -webkit-overflow-scrolling:touch; }
#partCanvas { display:block; image-rendering:pixelated; cursor:crosshair; touch-action:none; }
.pixel-status { padding:.4rem .7rem; border-top:1px solid var(--border); font-size:0.72rem; color:var(--text-3); font-family:var(--mono); }

/* ─── TOOLS BAR ──────────────────────────────────────────────── */
.tools-bar { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; padding:.6rem .75rem; border:1px solid var(--border); border-top:none; background:var(--bg-2); overflow-x:auto; }
.tg { display:flex; gap:.28rem; }
.tsep { width:1px; height:28px; background:var(--border-2); flex-shrink:0; align-self:center; }

.tbtn { width:var(--touch); height:var(--touch); display:flex; align-items:center; justify-content:center; background:var(--bg-3); border:1px solid var(--border); color:var(--text-2); border-radius:var(--radius); cursor:pointer; transition:var(--transition); position:relative; flex-shrink:0; }
.tbtn:hover:not(:disabled) { border-color:var(--border-2); color:var(--text); }
.tbtn.active  { border-color:var(--cyan); color:var(--cyan); background:rgba(6,182,212,.08); }
.tbtn:disabled{ opacity:.3; cursor:not-allowed; }
.tbtn-gold    { color:var(--gold) !important; }
.tbtn-gold:hover { border-color:var(--gold) !important; background:rgba(245,158,11,.08) !important; }
.tbtn-red     { color:var(--danger) !important; }
.tbtn-red:hover { border-color:var(--danger) !important; background:rgba(248,113,113,.08) !important; }

@media(hover:hover) {
  .tbtn[title]:hover::after {
    content:attr(title); position:absolute; bottom:calc(100% + 6px);
    left:50%; transform:translateX(-50%); background:var(--bg-3);
    color:var(--text); font-size:.5rem; white-space:nowrap;
    padding:.2rem .5rem; border-radius:2px;
    border:1px solid var(--border); pointer-events:none; z-index:20;
    font-family:var(--sans);
  }
}

/* ─── COLOUR BAR ─────────────────────────────────────────────── */
.colour-bar { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; padding:.6rem .75rem; border:1px solid var(--border); border-top:none; background:var(--bg-card); overflow-x:auto; }
.cb-lbl    { font-size:0.72rem; color:var(--text-3); flex-shrink:0; font-family:var(--sans); }
.swatch-row{ display:flex; gap:.3rem; flex-wrap:nowrap; overflow-x:auto; flex-shrink:0; }
.cswatch   { width:30px; height:30px; flex-shrink:0; border-radius:var(--radius); cursor:pointer; border:2px solid transparent; transition:var(--transition); }
.cswatch:hover { transform:scale(1.12); }
.cswatch.sel   { border-color:#fff; transform:scale(1.12); }
.colour-custom { display:flex; align-items:center; gap:.4rem; margin-left:auto; flex-shrink:0; }
.hex-box { display:flex; align-items:center; background:var(--bg-3); border:1px solid var(--border); border-radius:var(--radius); padding:0 .5rem; }
.hash    { font-size:0.72rem; color:var(--text-3); }
.hex-in  { background:none; border:none; outline:none; color:var(--green); font-family:var(--mono); font-size:0.72rem; width:58px; padding:.35rem 0; text-transform:uppercase; }
.native-pick { width:30px; height:30px; border:1px solid var(--border); border-radius:var(--radius); cursor:pointer; padding:0; background:none; appearance:none; }
.native-pick::-webkit-color-swatch-wrapper { padding:0; }
.native-pick::-webkit-color-swatch { border:none; border-radius:2px; }

/* ─── SETTINGS BAR ───────────────────────────────────────────── */
.settings-bar { display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; padding:.55rem .75rem; border:1px solid var(--border); border-top:none; background:var(--bg-2); border-radius:0 0 var(--radius-lg) var(--radius-lg); overflow-x:auto; }
.setting { display:flex; align-items:center; gap:.5rem; font-size:0.82rem; color:var(--text-2); white-space:nowrap; cursor:pointer; font-family:var(--sans); }
.setting span { color:var(--text-3); }
.s-sel { background:var(--bg-3); border:1px solid var(--border); color:var(--text); font-family:var(--sans); font-size:0.82rem; padding:.35rem .5rem; border-radius:var(--radius); cursor:pointer; outline:none; min-width:85px; transition:var(--transition); }
.s-sel:hover { border-color:var(--border-2); }
.setting-cb input { accent-color:var(--green); cursor:pointer; width:16px; height:16px; }

/* =========================================================================
   PREMADE SKINS GALLERY
   ========================================================================= */
.premade-skins { margin-top:1.5rem; background:var(--bg-2); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; }

/* Glowing accent line at top */
.premade-skins::before { content:''; display:block; height:2px; margin:-1.25rem -1.25rem 1.25rem; background:linear-gradient(90deg,transparent,var(--green),transparent); opacity:0.4; border-radius:var(--radius-lg) var(--radius-lg) 0 0; }

.premade-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; padding-bottom:.85rem; margin-bottom:.85rem; border-bottom:1px solid var(--border); }
.premade-header-left { display:flex; flex-direction:column; gap:.3rem; }
.premade-title { font-size:.55rem; color:var(--green); letter-spacing:.1em; }
.premade-note  { font-size:0.8rem; color:var(--text-3); font-family:var(--sans); }

.ps-meta-row { display:flex; align-items:center; gap:.75rem; margin-left:auto; flex-shrink:0; }
.ps-source-label     { font-size:0.72rem; white-space:nowrap; font-family:var(--mono); }
.ps-source-label.from-cms   { color:var(--green); }
.ps-source-label.from-local { color:var(--gold); }

/* Toolbar */
.ps-toolbar { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-bottom:.9rem; }
.ps-search-wrap { position:relative; display:flex; align-items:center; flex:1; min-width:160px; max-width:320px; }
.ps-search-icon { position:absolute; left:.6rem; color:var(--text-3); pointer-events:none; flex-shrink:0; }
.ps-search { width:100%; background:var(--bg-3); border:1px solid var(--border); border-radius:var(--radius); padding:.52rem .5rem .52rem 2.1rem; font-family:var(--sans); font-size:0.85rem; color:var(--text); outline:none; transition:var(--transition); }
.ps-search::placeholder { color:var(--text-3); }
.ps-search:focus { border-color:var(--green); box-shadow:0 0 0 3px var(--green-glow); }

.ps-filters { display:flex; gap:.35rem; flex-wrap:wrap; }
.ps-filter-btn { padding:.32rem .75rem; background:var(--bg-3); border:1px solid var(--border); border-radius:20px; color:var(--text-2); font-family:var(--sans); font-size:0.8rem; cursor:pointer; transition:var(--transition); white-space:nowrap; }
.ps-filter-btn:hover { border-color:var(--border-2); color:var(--text); }
.ps-filter-btn.active { background:var(--green-soft); border-color:var(--green); color:var(--green); }
.ps-count { font-size:0.78rem; color:var(--text-3); margin-left:auto; white-space:nowrap; font-family:var(--mono); }

/* Gallery grid — 5 columns to show ~30 at once */
.skin-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 1rem;
  min-height: 200px;
}

/* ── Card ─────────────────────────────────────────────────────── */
.ps-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  transition: transform 0.22s var(--ease), box-shadow 0.22s var(--ease), border-color 0.22s;
  position: relative;
}
.ps-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.55), 0 0 0 1px var(--green), 0 0 18px rgba(74,222,128,.12);
  border-color: var(--green);
}
.ps-card:focus-visible { outline:2px solid var(--green); outline-offset:2px; }

/* Thumbnail */
.ps-card-thumb { position:relative; aspect-ratio:1/1.55; overflow:hidden; }
.ps-thumb-bg { position:absolute; inset:0; background: radial-gradient(ellipse 70% 55% at 50% 90%, rgba(74,222,128,.07) 0%, transparent 70%), radial-gradient(ellipse 90% 60% at 50% 10%, rgba(0,0,0,.4) 0%, transparent 60%), repeating-conic-gradient(#080e08 0% 25%, #0b140b 25% 50%) 0 0 / 10px 10px; pointer-events:none; }
.ps-card-thumb::after { content:''; position:absolute; bottom:8%; left:50%; transform:translateX(-50%); width:38%; height:6px; background:rgba(0,0,0,.45); border-radius:50%; filter:blur(4px); pointer-events:none; }
.ps-card-img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:10% 18%; image-rendering:pixelated; opacity:0; transition:opacity 0.25s ease, filter 0.25s ease, transform 0.25s ease; filter:drop-shadow(0 6px 10px rgba(0,0,0,.7)); }
.ps-card:hover .ps-card-img { filter:drop-shadow(0 4px 6px rgba(0,0,0,.6)) drop-shadow(0 0 10px rgba(74,222,128,.3)); transform:translateY(-2px); }
.ps-spinner { position:absolute; top:50%; left:50%; width:28px; height:28px; border:2px solid rgba(74,222,128,0.15); border-top-color:var(--green); border-radius:50%; animation:spin 0.8s linear infinite; transform:translate(-50%,-50%); pointer-events:none; }

/* Card info */
.ps-card-info { padding:.65rem .75rem .75rem; background:var(--bg-2); flex:1; display:flex; flex-direction:column; border-top:1px solid var(--border); }
.ps-card-name { font-family:var(--pixel); font-size:0.5rem; color:var(--text); margin-bottom:.35rem; word-break:break-word; line-height:1.6; }
.ps-card-cat  { font-size:0.62rem; color:var(--green); background:var(--green-soft); border:1px solid rgba(74,222,128,.2); display:inline-block; padding:.12rem .45rem; border-radius:2px; align-self:flex-start; margin-bottom:.4rem; letter-spacing:.04em; font-family:var(--mono); }
.ps-card-desc { font-size:0.75rem; color:var(--text-2); margin:.2rem 0; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-family:var(--sans); }
.ps-card-tags { display:flex; flex-wrap:wrap; gap:.2rem; margin:.25rem 0 .55rem; }
.ps-tag       { font-size:0.6rem; padding:.1rem .35rem; background:var(--green-soft); border:1px solid rgba(74,222,128,.18); color:var(--text-3); border-radius:2px; text-transform:uppercase; letter-spacing:.06em; font-family:var(--mono); }

.ps-load-btn { background:transparent; border:1px solid var(--green-dim); border-radius:var(--radius); padding:.42rem .5rem; font-family:var(--pixel); font-size:0.42rem; color:var(--green); cursor:pointer; letter-spacing:.08em; transition:var(--transition); margin-top:auto; width:100%; }
.ps-load-btn:hover:not(:disabled) { background:var(--green-soft); border-color:var(--green); color:#fff; }
.ps-load-btn:disabled { opacity:.5; cursor:not-allowed; }

/* Empty state */
.ps-empty { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; gap:.5rem; padding:2.5rem; color:var(--text-3); background:var(--bg-3); border-radius:var(--radius-lg); text-align:center; font-family:var(--sans); }
.ps-empty-icon  { font-size:2rem; }
.ps-empty strong{ color:var(--text-2); }

/* ── PAGINATION ───────────────────────────────────────────────── */
.ps-pagination {
  display:flex; justify-content:center; align-items:center; gap:1rem;
  margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--border);
}
.ps-page-btn {
  background:transparent; border:1px solid var(--border); color:var(--text-2);
  padding:.6rem 1.2rem; font-family:var(--sans); font-size:0.82rem; font-weight:500;
  cursor:pointer; border-radius:var(--radius); transition:var(--transition);
}
.ps-page-btn:hover:not(:disabled) { border-color:var(--green-dim); color:var(--green); }
.ps-page-btn:disabled { opacity:.3; cursor:not-allowed; }
.ps-page-info { font-size:0.78rem; color:var(--text-3); font-family:var(--mono); }
.ps-page-info span { color:var(--text-2); }

/* ─── FOOTER — matches index.html 3-col footer ────────────────── */
.site-footer { background:var(--bg-2); border-top:1px solid var(--border); margin-top:auto; }
.footer-inner-grid { display:grid; grid-template-columns:1.8fr 1fr 1fr; gap:3rem; padding:3.5rem 0 3rem; }
.footer-brand { display:flex; flex-direction:column; gap:1rem; }
.footer-logo  { font-family:var(--pixel); font-size:0.7rem; color:var(--green); letter-spacing:.1em; text-shadow:0 0 12px rgba(74,222,128,.4); }
.footer-brand p { font-size:0.85rem; color:var(--text-3); line-height:1.7; max-width:280px; }
.footer-col h4  { font-family:var(--pixel); font-size:0.5rem; color:var(--text-2); letter-spacing:.12em; text-transform:uppercase; margin-bottom:1rem; }
.footer-col ul  { list-style:none; display:flex; flex-direction:column; gap:.55rem; }
.footer-col a   { font-size:0.85rem; color:var(--text-3); text-decoration:none; transition:color var(--dur-base) var(--ease); }
.footer-col a:hover { color:var(--green); }
.footer-bottom-bar   { border-top:1px solid var(--border); padding:1rem 0; }
.footer-bottom-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.footer-bottom-inner small { font-size:0.78rem; color:var(--text-3); }

/* ─── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width:960px) {
  .mobile-menu-toggle { display:flex; }
  .main-nav {
    position:fixed; top:68px; left:0; right:0;
    background:rgba(6,11,6,0.98); backdrop-filter:blur(20px);
    padding:1.5rem; visibility: hidden; opacity: 0; pointer-events: none;
    transition: opacity var(--dur-base) var(--ease), visibility var(--dur-base) var(--ease);
    border-bottom:1px solid var(--border); z-index:199;
  }
  .main-nav.open { visibility: visible; opacity: 1; pointer-events: auto; }
  .main-nav ul { flex-direction:column; gap:1.2rem; align-items:stretch; }
  .main-nav a  { display:block; text-align:center; padding:.5rem 0; }
  .footer-inner-grid { grid-template-columns:1fr; gap:2rem; text-align:center; }
  .footer-brand { align-items:center; }
  .footer-brand p{ max-width:100%; }
  .footer-col ul { align-items:center; }
  .footer-bottom-inner { flex-direction:column; text-align:center; }
}

@media (max-width:860px) {
  .editor-grid { grid-template-columns:1fr; grid-template-rows:auto 420px auto; height:auto; }
  .col-left { border-right:none; border-bottom:1px solid var(--border); flex-direction:row; align-items:center; overflow-x:auto; min-height:0; }
  .panel-head { display:none; }
  .parts-list { flex-direction:row; gap:.25rem; padding:.45rem; overflow-x:auto; overflow-y:hidden; min-width:0; }
  .part-btn   { flex-shrink:0; white-space:nowrap; }
  .flat-panel { display:none; }
  .col-centre { height:420px; border:none; }
  .col-right  { border-left:none; border-top:1px solid var(--border); height:380px; }
  .skin-gallery { grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); }
}

@media (max-width:600px) {
  .editor-main { padding:.5rem .75rem; }
  .action-wrap { gap:.5rem; }
  .abtn  { padding:.5rem .75rem; font-size:0.75rem; }
  .editor-grid { grid-template-rows:auto 360px auto; }
  .col-centre  { height:360px; }
  .col-right   { height:320px; }
  .tools-bar, .colour-bar, .settings-bar { padding:.5rem; gap:.4rem; }
  .tbtn   { width:38px; height:38px; }
  .cswatch{ width:26px; height:26px; }
  .skin-gallery { grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:.75rem; }
  .scroll-hint  { font-size:.38rem; padding:.45rem .9rem .45rem .7rem; }
  .ps-pagination { gap:.5rem; }
  .ps-page-btn  { padding:.5rem .75rem; font-size:0.72rem; }
}

/* Prevent body scroll when mobile menu is open */
body.menu-open { overflow: hidden; }

/* ═══════════════════════════════════════════════════
   MOBILE OVERFLOW — FINAL GUARD
═══════════════════════════════════════════════════ */
@media (max-width: 768px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
  }
  .editor-main {
    padding: .5rem !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  .editor-grid {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .tools-bar, .colour-bar, .settings-bar {
    flex-wrap: wrap !important;
    overflow-x: hidden !important;
  }
  canvas {
    max-width: 100% !important;
  }
}
