:root {
  --gtl-wine: #6d1f3a;
  --gtl-wine-dark: #4f1429;
  --gtl-gold: #b8923a;
  --gtl-ivory: #fbf8f3;
  --gtl-line: #eadfcb;
}
.gtl-body { background: var(--gtl-ivory); font-family: 'Inter', system-ui, sans-serif; color: #2f2626; min-height: 100vh; }
h1, h2, h3, .gtl-brand, .gtl-title { font-family: 'Playfair Display', Georgia, serif; }
.gtl-navbar { background: linear-gradient(90deg, var(--gtl-wine-dark), var(--gtl-wine)); border-bottom: 3px solid var(--gtl-gold); }
.gtl-brand { font-weight: 700; letter-spacing: .5px; }
.navbar .nav-link.active { color: #fff !important; border-bottom: 2px solid var(--gtl-gold); }
.card { border: 1px solid var(--gtl-line); border-radius: 14px; box-shadow: 0 2px 10px rgba(109, 31, 58, .05); }
.card-header { background: #fff; border-bottom: 1px solid var(--gtl-line); font-weight: 600; border-radius: 14px 14px 0 0 !important; }
.btn-gtl { background: var(--gtl-wine); border-color: var(--gtl-wine); color: #fff; }
.btn-gtl:hover, .btn-gtl:focus { background: var(--gtl-wine-dark); border-color: var(--gtl-wine-dark); color: #fff; }
.btn-outline-gtl { border-color: var(--gtl-wine); color: var(--gtl-wine); }
.btn-outline-gtl:hover { background: var(--gtl-wine); color: #fff; }
.text-gold { color: var(--gtl-gold) !important; }
.text-wine { color: var(--gtl-wine) !important; }
.widget { border-left: 5px solid var(--gtl-gold); }
.widget .widget-value { font-size: 2.1rem; font-weight: 700; color: var(--gtl-wine); line-height: 1.1; }
.widget .widget-icon { font-size: 2rem; color: var(--gtl-gold); opacity: .85; }
.progress { height: 12px; background: #efe6d6; }
.progress-bar { background: var(--gtl-wine); }
.table > :not(caption) > * > * { vertical-align: middle; }
.code-mono { font-family: ui-monospace, Consolas, monospace; letter-spacing: .5px; }
.visual-preview { max-height: 220px; max-width: 100%; border-radius: 10px; border: 1px solid var(--gtl-line); }
/* Login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px;
  background: radial-gradient(circle at top left, #f3e6d0, transparent 55%), radial-gradient(circle at bottom right, #ecd3da, transparent 55%), var(--gtl-ivory); }
.login-card { width: 100%; max-width: 420px; }
/* Scanner */
#reader { width: 100%; min-height: 260px; background: #1d1417; border-radius: 12px; overflow: hidden; }
.scan-result { border-radius: 14px; padding: 22px; text-align: center; color: #fff; transition: background .2s; }
.scan-result.idle { background: #efe6d6; color: #6b5b5b; }
.scan-result.ok { background: #198754; }
.scan-result.partial { background: #e08a00; }
.scan-result.ko { background: #c0392b; }
.scan-result .scan-icon { font-size: 3.4rem; line-height: 1; }
.scan-result .scan-msg { font-size: 1.4rem; font-weight: 700; margin: 8px 0 4px; }
.scan-result .scan-guest { font-size: 1.1rem; }
