/* =====================================================================
   Global Tailor Management Package – theme
   Palette: chalk-cream cloth, burgundy thread, brass, ink navy.
   Signature: tape-measure strip in the header / login card.
   ===================================================================== */
:root {
    --gt-ink: #1d2033;
    --gt-ink-2: #262a42;
    --gt-ink-3: #343957;
    --gt-burgundy: #8a1f3f;
    --gt-burgundy-dark: #6d1730;
    --gt-burgundy-soft: #f6e8ed;
    --gt-brass: #c9a227;
    --gt-brass-soft: #faf3dc;
    --gt-tape: #f3cd4c;
    --gt-cream: #f8f6f1;
    --gt-paper: #ffffff;
    --gt-line: #e7e2d8;
    --gt-text: #23232b;
    --gt-muted: #6f6c78;
    --gt-success: #2f7d4f;
    --gt-danger: #b4323a;
    --gt-radius: 14px;
    --gt-sidebar-w: 262px;
    --gt-shadow: 0 1px 2px rgba(29, 32, 51, .06), 0 4px 14px rgba(29, 32, 51, .05);
    --bs-primary: var(--gt-burgundy);
    --bs-primary-rgb: 138, 31, 63;
    --bs-link-color: var(--gt-burgundy);
    --bs-link-color-rgb: 138, 31, 63;
    --bs-link-hover-color: var(--gt-burgundy-dark);
    --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Nirmala UI", "Noto Sans Telugu", "Noto Sans Devanagari", "Mangal", "Gautami", sans-serif;
    --bs-body-color: var(--gt-text);
    --bs-body-bg: var(--gt-cream);
    --bs-border-color: var(--gt-line);
}

html { font-size: 15px; }
body { background: var(--gt-cream); min-height: 100vh; }

h1, h2, h3, .gt-display { font-family: "Playfair Display", Georgia, "Times New Roman", serif; letter-spacing: .2px; }
h4, h5, h6 { font-weight: 600; }
.text-muted { color: var(--gt-muted) !important; }
a { text-decoration: none; }

/* ---------------- Buttons ---------------- */
.btn { border-radius: 10px; font-weight: 500; padding: .5rem 1rem; }
.btn-lg { padding: .75rem 1.4rem; }
.btn-primary { --bs-btn-bg: var(--gt-burgundy); --bs-btn-border-color: var(--gt-burgundy); --bs-btn-hover-bg: var(--gt-burgundy-dark); --bs-btn-hover-border-color: var(--gt-burgundy-dark); --bs-btn-active-bg: var(--gt-burgundy-dark); --bs-btn-disabled-bg: var(--gt-burgundy); --bs-btn-disabled-border-color: var(--gt-burgundy); }
.btn-outline-primary { --bs-btn-color: var(--gt-burgundy); --bs-btn-border-color: var(--gt-burgundy); --bs-btn-hover-bg: var(--gt-burgundy); --bs-btn-hover-border-color: var(--gt-burgundy); --bs-btn-active-bg: var(--gt-burgundy-dark); }
.btn-brass { background: var(--gt-brass); border-color: var(--gt-brass); color: #2b2205; }
.btn-brass:hover { background: #b38f1f; color: #1d1703; }
.btn-touch { min-height: 44px; }
.form-control, .form-select { border-radius: 10px; min-height: 42px; border-color: #ddd7cb; }
.form-control:focus, .form-select:focus { border-color: var(--gt-burgundy); box-shadow: 0 0 0 .2rem rgba(138, 31, 63, .15); }
.form-label { font-weight: 500; font-size: .88rem; color: #46434f; margin-bottom: .3rem; }
.form-check-input:checked { background-color: var(--gt-burgundy); border-color: var(--gt-burgundy); }
.required::after { content: " *"; color: var(--gt-danger); }
.input-group-text { border-radius: 10px; background: #f3f0e8; border-color: #ddd7cb; }

/* ---------------- Layout ---------------- */
.gt-sidebar {
    position: fixed; inset: 0 auto 0 0; width: var(--gt-sidebar-w); z-index: 1040;
    background: linear-gradient(180deg, var(--gt-ink) 0%, var(--gt-ink-2) 100%);
    color: #d9d8e3; display: flex; flex-direction: column; transition: transform .25s ease;
}
.gt-brand { display: flex; align-items: center; gap: .7rem; padding: 1.1rem 1.1rem .9rem; color: #fff; border-bottom: 1px solid rgba(255,255,255,.07); }
.gt-brand:hover { color: #fff; }
.gt-brand-mark {
    width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; flex-shrink: 0;
    background: radial-gradient(circle at 30% 30%, #b8325a, var(--gt-burgundy) 60%, var(--gt-burgundy-dark));
    box-shadow: inset 0 0 0 2px rgba(201,162,39,.65); color: var(--gt-brass-soft); font-size: 1.25rem;
}
/* Shop logo (sidebar and sign-in page): a white tile so the logo reads on the dark background. */
.gt-brand-logo {
    width: 70px; height: 42px; flex-shrink: 0; object-fit: contain; padding: 3px 4px;
    background: #fff; border-radius: 10px; box-shadow: inset 0 0 0 2px rgba(201,162,39,.65);
}
.gt-brand-name { font-family: "Playfair Display", Georgia, serif; font-weight: 700; line-height: 1.05; font-size: 1.02rem; }
.gt-brand-sub { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gt-brass); }
.gt-nav { overflow-y: auto; padding: .6rem .6rem 2rem; flex: 1; scrollbar-width: thin; scrollbar-color: #444a6d transparent; }
.gt-nav-group { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: #8d8fa8; padding: 1rem .8rem .35rem; }
/* Collapsible menu groups: the heading is a button; items animate open / closed. */
button.gt-nav-group {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem; width: 100%;
    margin-top: .3rem; padding: .55rem .8rem; background: none; border: 0; border-radius: 8px; text-align: left; cursor: pointer;
}
button.gt-nav-group:focus-visible { outline: 2px solid var(--gt-brass); outline-offset: -2px; }
.gt-nav-caret { font-size: .7rem; transition: transform .25s ease; }
.gt-nav-section.collapsed .gt-nav-caret { transform: rotate(-90deg); }
.gt-nav-items { display: grid; grid-template-rows: 1fr; }
.gt-nav-items > div { min-height: 0; overflow: hidden; margin: 0 -.6rem; padding: 0 .6rem; } /* room for the active marker */
.gt-nav-section.collapsed .gt-nav-items { grid-template-rows: 0fr; }
.gt-nav-section.collapsed .gt-nav-items > div { visibility: hidden; }
.gt-nav-animate .gt-nav-items { transition: grid-template-rows .28s ease; }
.gt-nav-animate .gt-nav-items > div { transition: visibility .28s; }
.gt-nav-animate .gt-nav-items a { transition: opacity .2s ease, background-color .18s ease, color .18s ease; }
.gt-nav-section.collapsed .gt-nav-items a { opacity: 0; }
/* System settings → Menu → Expand: every group open, headings are plain labels. */
.gt-nav-expanded .gt-nav-caret { display: none; }
.gt-nav-expanded button.gt-nav-group { cursor: default; }
.gt-nav-expanded button.gt-nav-group:hover { background: none; color: #8d8fa8; }
.gt-nav a {
    display: flex; align-items: center; gap: .7rem; color: #d3d3df; padding: .58rem .8rem; border-radius: 10px;
    font-size: .92rem; margin-bottom: 1px; position: relative;
}
.gt-nav a i { font-size: 1.05rem; width: 1.2rem; text-align: center; color: #a7a9c4; }
/* Hover highlight (sky blue, distinct from the brass "current page" colour); fades back on mouse leave. */
:root { --gt-nav-hover-bg: rgba(96, 165, 250, .18); --gt-nav-hover-fg: #fff; --gt-nav-hover-icon: #93c5fd; }
.gt-nav a, button.gt-nav-group { transition: background-color .18s ease, color .18s ease; }
.gt-nav a i, .gt-nav-caret { transition: color .18s ease, transform .25s ease; }
.gt-nav a:hover, .gt-nav a:focus-visible { background: var(--gt-nav-hover-bg); color: var(--gt-nav-hover-fg); }
.gt-nav a:hover i, .gt-nav a:focus-visible i { color: var(--gt-nav-hover-icon); }
button.gt-nav-group:hover, button.gt-nav-group:focus-visible { background: var(--gt-nav-hover-bg); color: var(--gt-nav-hover-fg); }
button.gt-nav-group:hover .gt-nav-caret { color: var(--gt-nav-hover-icon); }
.gt-nav-section:hover > button.gt-nav-group:not(:hover) { color: #c4c6da; }   /* heading of the open-on-hover group */
.gt-nav-section.pinned > .gt-nav-group .gt-nav-caret { color: var(--gt-brass); }  /* pinned open with a click */
.gt-nav a.active { background: rgba(201,162,39,.14); color: #fff; }
.gt-nav a.active:hover { background: rgba(201,162,39,.24); }
@media (prefers-reduced-motion: reduce) { .gt-nav-animate .gt-nav-items, .gt-nav-animate .gt-nav-items a, .gt-nav a, .gt-nav a i, button.gt-nav-group, .gt-nav-caret { transition: none; } }
.gt-nav a.active i { color: var(--gt-brass); }
.gt-nav a.active::before { content: ""; position: absolute; left: -.6rem; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--gt-brass); }
.gt-sidebar-foot { padding: .8rem 1rem; font-size: .75rem; color: #8d8fa8; border-top: 1px solid rgba(255,255,255,.07); }

.gt-main { margin-left: var(--gt-sidebar-w); min-height: 100vh; display: flex; flex-direction: column; }
.gt-topbar {
    position: sticky; top: 0; z-index: 1030; background: rgba(255,255,255,.94); backdrop-filter: blur(6px);
    border-bottom: 1px solid var(--gt-line); display: flex; align-items: center; gap: .8rem; padding: .55rem 1.4rem .55rem;
}
/* Tape measure strip: brass yellow with inch ticks */
.gt-tape {
    height: 8px; width: 100%;
    background-color: var(--gt-tape);
    background-image:
        repeating-linear-gradient(90deg, rgba(29,32,51,.85) 0 1px, transparent 1px 48px),
        repeating-linear-gradient(90deg, rgba(29,32,51,.55) 0 1px, transparent 1px 12px);
    background-size: 100% 100%, 100% 55%;
    background-repeat: no-repeat;
    border-bottom: 1px solid #d9b236;
}
.gt-topbar .gt-search { max-width: 420px; flex: 1; }
.gt-topbar .gt-search .form-control { background: var(--gt-cream); border-color: transparent; padding-left: 2.3rem; }
.gt-topbar .gt-search .bi { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--gt-muted); }
.gt-content { padding: 1.4rem 1.6rem 2.5rem; flex: 1; }
.gt-footer { padding: .9rem 1.6rem; font-size: .78rem; color: var(--gt-muted); border-top: 1px solid var(--gt-line); background: #fff; }
.gt-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--gt-burgundy-soft); color: var(--gt-burgundy); display: grid; place-items: center; font-weight: 700; }

.gt-backdrop { display: none; }
@media (max-width: 991.98px) {
    .gt-sidebar { transform: translateX(-100%); }
    body.gt-nav-open .gt-sidebar { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.35); }
    body.gt-nav-open .gt-backdrop { display: block; position: fixed; inset: 0; background: rgba(15,16,28,.45); z-index: 1035; }
    .gt-main { margin-left: 0; }
    .gt-content { padding: 1rem .9rem 2rem; }
    .gt-topbar { padding: .5rem .8rem; }
}

/* ---------------- Page header ---------------- */
.gt-page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .8rem; margin-bottom: 1.2rem; }
.gt-page-head h1 { font-size: 1.65rem; margin: 0; color: var(--gt-ink); }
.gt-page-head .gt-crumb { font-size: .78rem; color: var(--gt-muted); text-transform: uppercase; letter-spacing: .1em; margin-bottom: .15rem; }
.gt-page-head .gt-actions { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---------------- Cards ---------------- */
.card { border: 1px solid var(--gt-line); border-radius: var(--gt-radius); box-shadow: var(--gt-shadow); }
.card-header { background: transparent; border-bottom: 1px solid var(--gt-line); padding: .85rem 1.15rem; font-weight: 600; }
.card-header .bi { color: var(--gt-burgundy); margin-right: .35rem; }
.card-body { padding: 1.15rem; }
.gt-section-title { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gt-burgundy); font-weight: 700; margin: 0 0 .7rem; display: flex; align-items: center; gap: .5rem; }
.gt-section-title::after { content: ""; flex: 1; height: 1px; background: repeating-linear-gradient(90deg, var(--gt-line) 0 6px, transparent 6px 10px); }

/* KPI cards */
.gt-kpi { position: relative; overflow: hidden; height: 100%; }
.gt-kpi .card-body { display: flex; align-items: center; gap: .9rem; }
.gt-kpi-icon { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; flex-shrink: 0; }
.gt-kpi-label { font-size: .78rem; color: var(--gt-muted); text-transform: uppercase; letter-spacing: .06em; }
.gt-kpi-value { font-size: 1.45rem; font-weight: 700; color: var(--gt-ink); line-height: 1.15; }
.gt-kpi a.stretched-link::after { z-index: 1; }
.tone-burgundy { background: var(--gt-burgundy-soft); color: var(--gt-burgundy); }
.tone-brass { background: var(--gt-brass-soft); color: #9a7a12; }
.tone-ink { background: #e9eaf3; color: var(--gt-ink-3); }
.tone-green { background: #e5f3ea; color: var(--gt-success); }
.tone-red { background: #fbe7e8; color: var(--gt-danger); }
.tone-teal { background: #e2f2f2; color: #1e7070; }
.tone-blue { background: #e6eefb; color: #2d5ca8; }

.gt-hero {
    border-radius: var(--gt-radius); color: #fff; padding: 1.3rem 1.5rem; margin-bottom: 1.2rem;
    background: radial-gradient(1000px 300px at 100% 0%, rgba(201,162,39,.25), transparent 60%), linear-gradient(120deg, var(--gt-ink) 0%, var(--gt-ink-3) 100%);
    position: relative; overflow: hidden;
}
.gt-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background-color: var(--gt-tape);
    background-image: repeating-linear-gradient(90deg, rgba(29,32,51,.8) 0 1px, transparent 1px 12px); }
.gt-hero h1 { font-size: 1.6rem; margin: 0; }
.gt-hero .small { color: #c8c9da; }

/* ---------------- Tables ---------------- */
.table { --bs-table-bg: transparent; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .65rem .75rem; border-color: #eee9df; }
.table thead th { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: #6c6874; font-weight: 600; background: #faf8f3; white-space: nowrap; }
.table-hover tbody tr:hover > * { background: #fcfaf5; }
.table tfoot td, .table tfoot th { font-weight: 700; background: #faf8f3; }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.table-cancelled td { text-decoration: line-through; color: #a5a1ab; }

/* Mobile: tables marked .table-stack become cards */
@media (max-width: 767.98px) {
    .table-stack thead { display: none; }
    .table-stack tbody tr { display: block; border: 1px solid var(--gt-line); border-radius: 12px; margin-bottom: .7rem; background: #fff; padding: .35rem .2rem; }
    .table-stack tbody td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .35rem .75rem; text-align: right; }
    .table-stack tbody td::before { content: attr(data-label); font-weight: 600; color: var(--gt-muted); text-align: left; font-size: .8rem; }
    .table-stack tbody td.no-label::before { content: none; }
    .table-stack tfoot { display: none; }
}

/* ---------------- Status badges ---------------- */
.badge-status { display: inline-block; padding: .28rem .6rem; border-radius: 999px; font-size: .74rem; font-weight: 600; white-space: nowrap; border: 1px solid transparent; }
.st-booked { background: #eef0f6; color: #48506e; border-color: #dfe2ee; }
.st-cutting { background: #fdf0e3; color: #a35a12; border-color: #f6dcc0; }
.st-stitching { background: #e9eefc; color: #3355a6; border-color: #d3dcf6; }
.st-folding { background: #f2ebfb; color: #6b3fa6; border-color: #e2d4f4; }
.st-ready { background: #e4f4ec; color: #237049; border-color: #c8e7d6; }
.st-billed { background: #fff6d8; color: #8a6a00; border-color: #f2e1a1; }
.st-paid { background: #dff3f1; color: #17716a; border-color: #bfe5e1; }
.st-gatepass { background: #e3f1fb; color: #1f6191; border-color: #c4e0f4; }
.st-delivered { background: #1d2033; color: #f3cd4c; }
.st-cancelled { background: #fbe7e8; color: #a12a33; border-color: #f4cfd2; }

/* ---------------- Filter bar ---------------- */
.gt-filter { background: #fff; border: 1px solid var(--gt-line); border-radius: var(--gt-radius); padding: .85rem; margin-bottom: 1rem; }
.gt-filter .form-control, .gt-filter .form-select { min-height: 40px; }

/* ---------------- Order booking ---------------- */
.gt-order-total { background: var(--gt-ink); color: #fff; border-radius: var(--gt-radius); padding: 1.1rem 1.2rem; position: sticky; top: 76px; }
.gt-order-total .row-line { display: flex; justify-content: space-between; padding: .25rem 0; color: #cfd0de; }
.gt-order-total .grand { font-size: 1.9rem; font-weight: 700; color: var(--gt-tape); font-variant-numeric: tabular-nums; }
.gt-order-total .advance input { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.2); }
.gt-order-total .advance .form-select { background-color: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.2); }
.gt-order-total .advance option { color: #222; }
.gt-line-card { border: 1px dashed #d9cfbd; border-radius: 12px; padding: .8rem; background: #fffdf8; margin-bottom: .75rem; }
.gt-line-card .line-no { width: 30px; height: 30px; border-radius: 50%; background: var(--gt-burgundy); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: .85rem; }
.gt-measure-chip { display: inline-block; padding: .15rem .45rem; margin: .1rem; border-radius: 6px; background: var(--gt-brass-soft); color: #6f5810; font-size: .75rem; font-weight: 600; }

/* Measurement entry */
.gt-measure-group { border: 1px solid var(--gt-line); border-radius: 12px; padding: .9rem; background: #fff; height: 100%; }
.gt-measure-group h6 { font-family: "Playfair Display", Georgia, serif; color: var(--gt-burgundy); font-size: 1rem; margin-bottom: .7rem; display: flex; align-items: center; gap: .4rem; }
.gt-measure-field label { font-size: .8rem; color: #555; margin-bottom: .1rem; display: flex; justify-content: space-between; }
.gt-measure-field label .short { color: var(--gt-brass); font-weight: 700; }
.gt-measure-field .form-control { text-align: right; font-weight: 600; font-size: 1.05rem; }
.gt-measure-field .changed { background: #fff7d6; border-color: var(--gt-brass); }

/* Stage pipeline */
.gt-pipeline { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
.gt-pipeline .step { display: flex; flex-direction: column; align-items: center; min-width: 74px; text-align: center; font-size: .7rem; color: var(--gt-muted); }
.gt-pipeline .dot { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #ece8df; color: #9a96a3; font-size: .8rem; margin-bottom: .2rem; }
.gt-pipeline .step.done .dot { background: var(--gt-burgundy); color: #fff; }
.gt-pipeline .step.current .dot { background: var(--gt-tape); color: var(--gt-ink); box-shadow: 0 0 0 3px rgba(243,205,76,.35); }
.gt-pipeline .bar { flex: 1; min-width: 10px; height: 2px; background: #e2ddd2; margin-top: -14px; }

/* Stage tabs */
.gt-stage-tabs .nav-link { border-radius: 10px; color: var(--gt-muted); font-weight: 500; }
.gt-stage-tabs .nav-link.active { background: var(--gt-ink); color: #fff; }

/* Login */
.gt-login-wrap { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.gt-login-art { background: radial-gradient(800px 400px at 0% 100%, rgba(201,162,39,.22), transparent 60%), linear-gradient(140deg, var(--gt-ink) 0%, #2d1830 100%); color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.gt-login-art h1 { font-size: 2.6rem; line-height: 1.1; }
.gt-login-art .gt-tape { position: absolute; left: -10%; width: 120%; height: 34px; transform: rotate(-8deg); top: 58%; background-size: 100% 100%, 100% 45%; opacity: .95; box-shadow: 0 8px 22px rgba(0,0,0,.3); }
.gt-login-form { display: grid; place-items: center; padding: 2rem; background: var(--gt-cream); }
.gt-login-card { width: 100%; max-width: 410px; }
@media (max-width: 991.98px) { .gt-login-wrap { grid-template-columns: 1fr; } .gt-login-art { min-height: 220px; padding: 1.6rem; } .gt-login-art h1 { font-size: 1.8rem; } .gt-login-art .gt-tape { top: 75%; height: 22px; } }

/* Error pages */
.gt-error { max-width: 560px; margin: 8vh auto; text-align: center; }
.gt-error .code { font-family: "Playfair Display", Georgia, serif; font-size: 6rem; color: var(--gt-burgundy); line-height: 1; }

/* Tom-select tweaks */
.ts-wrapper.form-select, .ts-wrapper.form-control { padding: 0; min-height: 42px; }
.ts-control { border-radius: 10px !important; min-height: 42px; padding: .45rem .75rem !important; border-color: #ddd7cb !important; }
.ts-dropdown { border-radius: 10px; }
.ts-dropdown .opt-sub { font-size: .78rem; color: var(--gt-muted); }

/* Misc */
.gt-empty { text-align: center; padding: 2.5rem 1rem; color: var(--gt-muted); }
.gt-empty .bi { font-size: 2.4rem; color: #cfc6b4; display: block; margin-bottom: .4rem; }
.gt-kv { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; font-size: .92rem; }
.gt-kv dt { color: var(--gt-muted); font-weight: 500; }
.gt-kv dd { margin: 0; font-weight: 500; }
.gt-chart { position: relative; height: 260px; }
.toast-container { z-index: 1100; }
.cursor-pointer { cursor: pointer; }
.fw-600 { font-weight: 600; }
.small-caps { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gt-muted); }

/* ---------------- Telugu / Hindi UI ---------------- */
/* Playfair Display has no Telugu or Devanagari glyphs: use the body font stack for headings in those languages. */
html:lang(te) h1, html:lang(te) h2, html:lang(te) h3, html:lang(te) .gt-display, html:lang(te) .gt-measure-group h6,
html:lang(hi) h1, html:lang(hi) h2, html:lang(hi) h3, html:lang(hi) .gt-display, html:lang(hi) .gt-measure-group h6 { font-family: var(--bs-body-font-family); letter-spacing: 0; }
/* Indic scripts need a little more line height and no forced upper-casing. */
html:lang(te) body, html:lang(hi) body { line-height: 1.6; }
html:lang(te) .text-uppercase, html:lang(hi) .text-uppercase, html:lang(te) .gt-nav-group, html:lang(hi) .gt-nav-group { letter-spacing: 0; }
.gt-lang-inline .btn { min-width: 4.5rem; }

/* ---------------- Dashboard: classic light fills ---------------- */
.gt-dash .gt-hero {
    color: var(--gt-ink); border: 1px solid #ecdfc4; box-shadow: var(--gt-shadow);
    background: radial-gradient(900px 280px at 100% 0%, rgba(201,162,39,.20), transparent 62%), linear-gradient(120deg, #fffaf0 0%, #fbeef2 100%);
}
.gt-dash .gt-hero h1 { color: var(--gt-burgundy); }
.gt-dash .gt-hero .small { color: #6a6474; }
.gt-dash .gt-hero .gt-hero-date { color: #9a7a12; letter-spacing: .14em; font-weight: 600; }
.gt-dash .gt-hero .btn-light { background: #fff; border-color: #e3d6bd; color: var(--gt-ink); }
.gt-dash .gt-hero .btn-light:hover { background: var(--gt-brass-soft); border-color: var(--gt-brass); }

.gt-dash .gt-kpi { border-left-width: 4px; transition: transform .15s ease, box-shadow .15s ease; }
.gt-dash .gt-kpi:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(29,32,51,.08), 0 10px 22px rgba(29,32,51,.08); }
.gt-dash .gt-kpi .gt-kpi-icon { background: #fff; box-shadow: 0 1px 2px rgba(29,32,51,.08); }
.gt-dash .gt-kpi .gt-kpi-label { color: #5d5a66; }
.gt-dash .kpi-burgundy { background: #fbeef2; border-color: #f0d3dc; border-left-color: #b8566f; }
.gt-dash .kpi-brass { background: #fdf6e0; border-color: #f0e2b0; border-left-color: #d1ab3a; }
.gt-dash .kpi-ink { background: #eef0f8; border-color: #d9dcec; border-left-color: #6b72a0; }
.gt-dash .kpi-green { background: #eaf6ee; border-color: #cfe8d8; border-left-color: #58a777; }
.gt-dash .kpi-red { background: #fdecec; border-color: #f5cfd1; border-left-color: #d0666c; }
.gt-dash .kpi-teal { background: #e6f5f4; border-color: #c8e6e4; border-left-color: #4f9f9c; }
.gt-dash .kpi-blue { background: #eaf2fd; border-color: #cfdff6; border-left-color: #5b88cf; }

.gt-dash .card-header { border-top-left-radius: var(--gt-radius); border-top-right-radius: var(--gt-radius); }
.gt-dash .head-sand .card-header { background: #fdf6e0; border-bottom-color: #f0e2b0; }
.gt-dash .head-sky .card-header { background: #eaf2fd; border-bottom-color: #cfdff6; }
.gt-dash .head-rose .card-header { background: #fbeef2; border-bottom-color: #f0d3dc; }
.gt-dash .head-sage .card-header { background: #eaf6ee; border-bottom-color: #cfe8d8; }
.gt-dash .head-mist .card-header { background: #eef0f8; border-bottom-color: #d9dcec; }
.gt-dash .table thead th { background: #fffaf0; }

/* ---------------- Order Booking: customer photos (front / side / back) ---------------- */
.gt-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.gt-photo-frame { position: relative; aspect-ratio: 3 / 4; border: 1px dashed #d8cdb6; border-radius: var(--gt-radius); background: var(--gt-cream); overflow: hidden; }
.gt-photo-img, .gt-photo-img img { display: block; width: 100%; height: 100%; }
.gt-photo-img img { object-fit: cover; }
.gt-photo-frame:has(.gt-photo-img:not(.d-none)) { border-style: solid; }
.gt-photo-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 2.4rem; color: #cbbfa6; }
.gt-photo-img:not(.d-none) + .gt-photo-empty { display: none; }
.gt-photo-busy { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: .35rem; background: rgba(255,255,255,.8); font-size: .8rem; }
.gt-photo-info { font-size: .72rem; min-height: 1.1em; }
.gt-cam-video { display: block; width: 100%; max-height: 70vh; object-fit: contain; background: #000; }
@media (max-width: 575.98px) {
    .gt-photo-grid { gap: .5rem; }
    .gt-photo-tile .btn { padding: .2rem .35rem; font-size: .75rem; }
}
