#toylib-app{
  --toylib-ink:#182018;
  --toylib-ink-2:#212b21;
  --toylib-paper:#f2ede0;
  --toylib-paper-dim:#e5dfcd;
  --toylib-moss:#7c9b6e;
  --toylib-moss-dim:#4f6647;
  --toylib-out:#c1793f;
  --toylib-in:#5c8a5a;
  --toylib-mono: 'SF Mono', 'Courier New', monospace;

  background:var(--toylib-ink);
  color:var(--toylib-paper);
  font-family: Georgia, 'Times New Roman', serif;
  border-radius:12px;
  padding:0 0 24px;
  max-width:680px;
  margin:0 auto;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
#toylib-app *{box-sizing:border-box;}
#toylib-app .toylib-tabs{
  display:flex; border-bottom:1px solid #2c3a2c; position:sticky; top:0; background:var(--toylib-ink); z-index:2; border-radius:12px 12px 0 0;
}
#toylib-app .toylib-tab{
  flex:1; padding:14px 6px; text-align:center; font-family:var(--toylib-mono); font-size:11px;
  letter-spacing:.06em; text-transform:uppercase; color:#6d7f6a; cursor:pointer;
  border:none; border-bottom:2px solid transparent; background:none;
}
#toylib-app .toylib-tab.active{ color:var(--toylib-moss); border-bottom-color:var(--toylib-moss); }
#toylib-app .toylib-panel{ display:none; padding:20px 18px 0; }
#toylib-app .toylib-panel.active{ display:block; }

#toylib-reader-wrap{
  background:var(--toylib-ink-2); border-radius:10px; overflow:hidden; position:relative;
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
}
#toylib-reader-wrap video{ width:100%; height:100%; object-fit:cover; }
#toylib-scan-frame{
  position:absolute; inset:15%; border:2px solid var(--toylib-moss); border-radius:8px;
  pointer-events:none; box-shadow:0 0 0 999px rgba(0,0,0,.35);
}
#toylib-cam-status{ font-family:var(--toylib-mono); font-size:12px; color:#93a690; text-align:center; padding:20px; }

#toylib-app .toylib-btn{
  font-family:var(--toylib-mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase;
  padding:11px 16px; border-radius:6px; border:1px solid var(--toylib-moss-dim);
  background:transparent; color:var(--toylib-moss); cursor:pointer;
}
#toylib-app .toylib-btn.toylib-solid{ background:var(--toylib-moss); color:var(--toylib-ink); border-color:var(--toylib-moss); font-weight:bold; }
#toylib-app .toylib-row{ display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.toylib-manual-entry{ margin-top:22px; padding-top:18px; border-top:1px dashed #38452f; }
#toylib-app label{ font-family:var(--toylib-mono); font-size:11px; color:#6d7f6a; text-transform:uppercase; letter-spacing:.07em; }
#toylib-app input{
  width:100%; background:var(--toylib-ink-2); border:1px solid #38452f; color:var(--toylib-paper);
  padding:11px 12px; border-radius:6px; font-family:Georgia,serif; font-size:15px; margin-top:6px;
}

#toylib-scan-card{ margin-top:18px; background:var(--toylib-paper); color:var(--toylib-ink); border-radius:10px; padding:18px; display:none; }
#toylib-scan-card.show{ display:block; }
.toylib-toy-name{ font-size:20px; }
.toylib-tags{ margin:8px 0; }
.toylib-badge{
  display:inline-block; font-family:var(--toylib-mono); font-size:10px; text-transform:uppercase;
  letter-spacing:.06em; padding:3px 9px; border-radius:20px; margin-bottom:8px;
}
.toylib-badge.available{ background:var(--toylib-in); color:#eef5ec; }
.toylib-badge.out{ background:var(--toylib-out); color:#fbf0e6; }
.toylib-tag-pill{
  display:inline-block; font-family:var(--toylib-mono); font-size:10px; text-transform:uppercase;
  background:var(--toylib-paper-dim); color:#4a5647; padding:3px 8px; border-radius:12px; margin:2px 4px 2px 0;
}

.toylib-field{ margin-bottom:16px; }
#toylib-tag-input-wrap{
  display:flex; flex-wrap:wrap; gap:6px; background:var(--toylib-ink-2); border:1px solid #38452f;
  border-radius:6px; padding:8px; margin-top:6px;
}
#toylib-tag-input-wrap input{ border:none; background:transparent; flex:1; min-width:100px; padding:4px; margin:0; }
.toylib-chip{
  background:var(--toylib-moss-dim); color:#e8f0e5; font-family:var(--toylib-mono); font-size:11px;
  padding:4px 8px; border-radius:12px; display:flex; align-items:center; gap:6px;
}
.toylib-chip button{ background:none; border:none; color:#e8f0e5; cursor:pointer; font-size:13px; padding:0; }
#toylib-tag-suggestions{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.toylib-suggestion{
  font-family:var(--toylib-mono); font-size:10px; text-transform:uppercase; color:#93a690;
  border:1px solid #38452f; padding:3px 8px; border-radius:12px; cursor:pointer; background:none;
}

.toylib-lib-controls{ display:flex; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.toylib-lib-controls input{ margin-top:0; flex:1; min-width:140px; }
.toylib-filter-chips{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.toylib-filter-chip{
  font-family:var(--toylib-mono); font-size:10px; text-transform:uppercase; padding:5px 10px;
  border-radius:14px; border:1px solid #38452f; color:#93a690; background:none; cursor:pointer;
}
.toylib-filter-chip.active{ background:var(--toylib-moss); color:var(--toylib-ink); border-color:var(--toylib-moss); }
.toylib-stats{ display:flex; gap:14px; margin-bottom:16px; font-family:var(--toylib-mono); font-size:12px; color:#93a690; }
.toylib-stats b{ color:var(--toylib-paper); font-size:16px; display:block; font-family:Georgia,serif; }

.toylib-ticket{
  background:var(--toylib-paper); color:var(--toylib-ink); border-radius:10px; display:flex;
  margin-bottom:12px; position:relative; overflow:hidden; box-shadow:0 6px 16px rgba(0,0,0,.25);
}
.toylib-qr-side{
  background:var(--toylib-paper-dim); padding:12px; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; position:relative;
}
.toylib-qr-side::after{
  content:""; position:absolute; right:-8px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; background:var(--toylib-ink); border-radius:50%;
}
.toylib-info-side{
  padding:12px 14px; flex:1; min-width:0; border-left:2px dashed #cfc6ae;
  display:flex; flex-direction:column; gap:5px;
}
.toylib-name{ font-size:17px; word-break:break-word; }
.toylib-meta{ font-family:var(--toylib-mono); font-size:11px; color:#8a8368; }
.toylib-borrower{ font-family:var(--toylib-mono); font-size:11px; color:#96412e; }
.toylib-ticket-actions{ display:flex; gap:8px; margin-top:auto; padding-top:6px; flex-wrap:wrap; }
.toylib-ticket-actions button{
  font-family:var(--toylib-mono); font-size:10px; text-transform:uppercase; letter-spacing:.04em;
  padding:6px 10px; border-radius:5px; border:1px solid #cfc6ae; background:transparent; color:#4a4535; cursor:pointer;
}
.toylib-ticket-actions button.toylib-danger{ border-color:#c98d7f; color:#96412e; }
.toylib-ticket-actions button.toylib-primary{ background:var(--toylib-moss-dim); color:#eef2ea; border-color:var(--toylib-moss-dim); }
.toylib-empty{ text-align:center; padding:50px 20px; color:#6d7f6a; font-family:var(--toylib-mono); font-size:13px; }
.toylib-checkout-form{ margin-top:12px; display:none; }
.toylib-checkout-form.show{ display:block; }

.toylib-gate-overlay{
  position:absolute; inset:0; background:rgba(24,32,24,.97); z-index:20;
  display:flex; align-items:center; justify-content:center; border-radius:12px;
  padding:24px;
}
.toylib-gate-box{
  width:100%; max-width:280px; text-align:center;
}
.toylib-gate-title{ font-size:22px; color:var(--toylib-paper); margin-bottom:4px; }
.toylib-gate-sub{ font-family:var(--toylib-mono); font-size:12px; color:#93a690; margin-bottom:18px; }
.toylib-gate-box input{
  width:100%; background:var(--toylib-ink-2); border:1px solid #38452f; color:var(--toylib-paper);
  padding:12px; border-radius:6px; font-family:var(--toylib-mono); font-size:18px; text-align:center;
  letter-spacing:.15em; margin-bottom:14px;
}
.toylib-gate-box .toylib-btn{ width:100%; }
.toylib-gate-error{
  display:none; margin-top:12px; font-family:var(--toylib-mono); font-size:11px; color:#e59a7d;
}
.toylib-gate-error.show{ display:block; }

#toylib-app{ position:relative; }

#toylib-toast{
  position:fixed; bottom:20px; left:50%; transform:translateX(-50%);
  background:var(--toylib-moss); color:var(--toylib-ink); padding:10px 18px; border-radius:20px;
  font-family:var(--toylib-mono); font-size:12px; font-weight:bold; opacity:0; pointer-events:none;
  transition:opacity .25s; z-index:9999; max-width:85vw; text-align:center;
}
#toylib-toast.show{ opacity:1; }
