:root{
    --charcoal: #dff8d5;
    --charcoal-light: #f2fded;
    --panel-line: #3d3d40;
    --felt: #cff6ff;
    --amber: #00bcff;
    --ink-light: #468037;
    --ink-dim: #0e4e06;
  }
  *{box-sizing:border-box;}
  html,body{
    margin:0; height:100%;
    background:var(--felt);
    font-family: 'Trebuchet MS', sans-serif;
    color:var(--ink-light);
  }
  body{
    display:flex;
    height:100vh;
    overflow:hidden;
  }

  /* ---------- Sidebar ---------- */
  #sidebar{
    width:236px;
    flex-shrink:0;
    background:var(--charcoal);
    border-right:1px solid var(--panel-line);
    display:flex;
    flex-direction:column;
    padding:18px 16px 60px;
    gap:20px;
    overflow-y:auto;
  }
  .brand{
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-dim);
    border-bottom:1px solid var(--panel-line);
    padding-bottom:12px;
  }
  .brand strong{
    display:block;
    font-size:15px;
    letter-spacing:.02em;
    color:var(--ink-light);
    margin-bottom:3px;
  }
  .section-label{
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--ink-dim);
    margin-bottom:8px;
  }
  select, button, input[type=file], input[type=text], input[type=number]{
    font-family: 'Trebuchet MS', sans-serif;
    font-size:12px;
  }
  #paperSize, #bleedInput{
    width:100%;
    background:var(--charcoal-light);
    color:var(--ink-light);
    border:1px solid var(--panel-line);
    padding:8px 8px;
    border-radius:3px;
  }
  .row{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:10px;
  }
  .row label{ font-size:11.5px; color:var(--ink-light); flex:1; }
  .row input[type=color]{
    width:30px; height:26px;
    background:none; border:1px solid var(--panel-line); border-radius:3px;
    padding:2px; cursor:pointer;
  }
  .row input[type=checkbox]{
    width:15px; height:15px;
    accent-color: var(--amber);
    cursor:pointer;
  }
  .btn{
    width:100%;
    background:var(--charcoal-light);
    color:var(--ink-light);
    border:1px solid var(--panel-line);
    padding:8px 10px;
    border-radius:3px;
    cursor:pointer;
    text-align:left;
    letter-spacing:.02em;
  }
  .btn:hover{ border-color:var(--amber); color:var(--amber); }
  .btn.primary{
    background:var(--amber);
    border-color:var(--amber);
    color:#1c1200;
    font-weight:600;
    text-align:center;
  }
  .btn.primary:hover{ background:#c76a22; color:#1c1200; }
  .btn.danger:hover{ border-color:#b5453a; color:#e28378; }

  .orient-btn{
    flex:1;
    background:var(--charcoal-light);
    color:var(--ink-light);
    border:1px solid var(--panel-line);
    padding:7px 6px;
    border-radius:3px;
    cursor:pointer;
    text-align:center;
    font-size:11.5px;
    letter-spacing:.02em;
  }
  .orient-btn:hover{ border-color:var(--amber); }
  .orient-btn.selected{
    border-color:var(--amber);
    background:rgba(217,118,43,0.12);
    color:var(--amber);
  }

  /* Tooltip container */
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted var(--ink-dim); /* Add dots under the hoverable text */
  cursor: pointer;
  font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--ink-dim);
}

/* Tooltip text */
.tooltiptext {
  visibility: hidden; /* Hidden by default */
  width: 160px;
  background-color: var(--ink-dim);
  color: var(--charcoal);
  text-align: center;
  border-radius: 6px;
  padding: 5px 5px;
  position: absolute;
  z-index: 1;
  bottom: 100%;
  left: 65%;
  margin-left: -65px;
}

/* Show the tooltip text on hover */
.tooltip:hover .tooltiptext {
  visibility: visible;
}

  /* ---------- Swatches ---------- */
  #swatches{
    display:flex;
    flex-direction:column;
    gap:6px;
    max-height:220px;
    overflow-y:auto;
    padding-right:2px;
  }
  #usedColorsList{
    display:flex;
    flex-direction:column;
    gap:4px;
    max-height:220px;
    overflow-y:auto;
    padding-right:2px;
  }
  .used-row{
    display:flex;
    align-items:center;
    gap:9px;
    padding:4px 6px;
    border:1px solid transparent;
    border-radius:3px;
    cursor:pointer;
  }
  .used-row:hover{ border-color:var(--panel-line); }
  .used-row.selected{
    border-color:var(--amber);
    background:rgba(217,118,43,0.12);
  }
  .used-count{
    margin-left:auto;
    font-size:11.5px;
    font-weight:600;
    color:var(--amber);
    flex-shrink:0;
  }
  .used-menu-btn{
    flex-shrink:0;
    background:none;
    border:none;
    color:var(--ink-dim);
    cursor:pointer;
    font-size:14px;
    line-height:1;
    padding:2px 4px;
    border-radius:3px;
  }
  .used-menu-btn:hover{ color:var(--amber); background:rgba(217,118,43,0.12); }
  .used-menu-popup{
    position:fixed;
    z-index:50;
    background:var(--charcoal-light);
    border:1px solid var(--panel-line);
    border-radius:4px;
    box-shadow:0 8px 24px rgba(0,0,0,0.45);
    width:200px;
    max-height:280px;
    overflow-y:auto;
    padding:4px;
  }
  .used-menu-header{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-dim);
    padding:6px 8px 4px;
  }
  .used-menu-item{
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 8px;
    border-radius:3px;
    cursor:pointer;
    font-size:11.5px;
    color:var(--ink-light);
  }
  .used-menu-item:hover{ background:rgba(217,118,43,0.15); }
  .used-menu-item .swatch-chip{ width:16px; height:16px; }
  .swatch{
    display:flex;
    align-items:center;
    gap:9px;
    padding:5px 6px;
    border:1px solid transparent;
    border-radius:3px;
    cursor:pointer;
  }
  .swatch:hover{ border-color:var(--panel-line); }
  .swatch.selected{
    border-color:var(--amber);
    background:rgba(217,118,43,0.12);
  }
  .swatch-chip{
    width:22px; height:22px;
    border-radius:3px;
    border:1px solid rgba(255,255,255,0.25);
    flex-shrink:0;
  }
  .swatch-num{
    font-size:12px;
    font-weight:600;
    color:var(--ink-light);
    width:26px;
  }
  .swatch-hex{
    font-size:10px;
    color:var(--ink-dim);
    text-transform:uppercase;
    display:flex;
    align-items:center;
    gap:4px;
  }
  .fx-badge{
    font-size:11px;
    line-height:1;
  }
  .fx-neon{ color:#ff5fb0; text-shadow:0 0 4px rgba(255,95,176,0.7); }
  .fx-metallic{ color:#b9c2c9; }
  .fx-translucent{ color:#7fd6e8; }
  .fx-fluorescent{ color:#c6ff5c; text-shadow:0 0 4px rgba(198,255,92,0.6); }
  .swatch-del{
    margin-left:auto;
    background:none;
    border:none;
    color:var(--ink-dim);
    cursor:pointer;
    font-size:13px;
    padding:2px 4px;
  }
  .swatch-del:hover{ color:#e28378; }

  #eraserSwatch{
    display:flex; align-items:center; gap:9px;
    padding:5px 6px; border:1px solid transparent; border-radius:3px; cursor:pointer;
    margin-bottom:8px;
  }
  #eraserSwatch:hover{ border-color:var(--panel-line); }
  #eraserSwatch.selected{ border-color:var(--amber); background:rgba(217,118,43,0.12); }
  .eraser-chip{
    width:22px; height:22px; border-radius:3px;
    border:1px dashed var(--ink-dim);
    background:repeating-linear-gradient(45deg,#444 0,#444 2px,#2a2a2d 2px,#2a2a2d 5px);
    flex-shrink:0;
  }

  #csvInput, #pngInput{ display:none; }
  .file-label{ display:block; }

  .hint{
    font-size:10.5px;
    line-height:1.5;
    color:var(--ink-dim);
  }

  /* ---------- Canvas area ---------- */
  #stage{
    flex:1;
    overflow:auto;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:40px;
  }
  #canvasWrap{
    background:#fff;
    box-shadow: 0 12px 34px rgba(0,0,0,0.35);
  }
  canvas{
    display:block;
    cursor:crosshair;
  }

  #statusBar{
    position:fixed;
    bottom:0; left:236px; right:0;
    background:var(--charcoal);
    border-top:1px solid var(--panel-line);
    color:var(--ink-dim);
    font-size:11px;
    padding:6px 16px;
    display:flex;
    gap:18px;
  }
  #statusBar span b{ color:var(--ink-light); }
  #zoomGroup{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:8px;
  }
  .zoom-btn{
    background:var(--charcoal-light);
    color:var(--ink-light);
    border:1px solid var(--panel-line);
    width:20px; height:20px;
    line-height:1;
    border-radius:3px;
    cursor:pointer;
    font-size:13px;
    display:flex; align-items:center; justify-content:center;
  }
  .zoom-btn:hover{ border-color:var(--amber); color:var(--amber); }
  #zoomPct{
    min-width:38px;
    text-align:center;
    color:var(--ink-light);
    cursor:pointer;
  }
  #zoomPct:hover{ color:var(--amber); }