/* GoldenSeat admin screens — gsx full-page redesign (preview-gated ?gsadmin). 2026-06-19.
 * Scoped to .gsx-adm so it never touches the legacy (!gsadmin) screens.
 * Reusable components: page header, toolbar, full-height card, clean table, detail card. */
.gsx-adm{--navy:#16284A;--navy-2:#22375f;--gold:#E6A91A;--gold-deep:#c9900c;--gold-tint:#fcf4df;--green:#1f9d6b;--green-deep:#178055;--red-deep:#b3322f;--ink:#1a2433;--muted:#5d6b82;--faint:#9aa6bb;--line:#e6e9f1;--line-2:#eef1f6;--bg:#f7f8fa;
  font-family:Heebo,Arial,sans-serif;color:var(--ink);height:calc(100vh - 112px);overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;width:100%;max-width:1560px;margin-inline:auto;padding:12px clamp(12px,2vw,28px) 16px;font-feature-settings:"tnum" 1}
.gsx-adm *{box-sizing:border-box}
.gsx-adm bdi{unicode-bidi:isolate}
.gsx-adm .mono{font-family:'IBM Plex Mono','Heebo',monospace}
/* header */
.gsx-adm .gsx-adm-hd{flex:none;display:flex;align-items:flex-end;justify-content:space-between;margin:2px 0 13px}
.gsx-adm .gsx-adm-hd h1{font-size:23px;font-weight:800;letter-spacing:-.4px;margin:0;display:inline}
.gsx-adm .gsx-adm-hd .sub{color:var(--muted);font-size:13.5px;margin-inline-start:10px;font-weight:500}
.gsx-adm .gsx-adm-new{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff;border:0;border-radius:9px;font:inherit;font-size:14px;font-weight:700;padding:10px 17px;cursor:pointer;text-decoration:none;box-shadow:0 3px 9px rgba(31,157,107,.25)}
.gsx-adm .gsx-adm-new:hover{background:var(--green-deep);color:#fff}
.gsx-adm .gsx-adm-new .p{font-size:17px;line-height:1}
/* layout cols */
.gsx-adm .gsx-adm-cols{flex:1;min-height:0;display:grid;grid-template-columns:1fr 384px;grid-template-rows:minmax(0,1fr);gap:18px;align-items:stretch}
.gsx-adm .gsx-adm-cols.full{grid-template-columns:1fr}
/* card */
.gsx-adm .gsx-adm-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px rgba(22,40,74,.05);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.gsx-adm .gsx-adm-ch{flex:none;display:flex;align-items:center;gap:9px;padding:14px 18px;border-bottom:1px solid var(--line-2);font-weight:700;font-size:14.5px}
.gsx-adm .gsx-adm-ch .bar{width:4px;height:17px;background:var(--gold);border-radius:2px}
/* toolbar */
.gsx-adm .gsx-adm-tb{flex:none;display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-2);background:#fbfcfe;flex-wrap:wrap}
.gsx-adm .gsx-adm-search{flex:1;min-width:200px;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 13px;height:40px}
.gsx-adm .gsx-adm-search input{border:0;outline:0;font:inherit;font-size:14px;flex:1;background:transparent;color:var(--ink)}
.gsx-adm .gsx-adm-search .i{color:var(--faint);font-size:15px}
.gsx-adm .gsx-adm-count{font-size:13px;color:var(--muted);white-space:nowrap}.gsx-adm .gsx-adm-count b{color:var(--navy);font-weight:800}
.gsx-adm .gsx-adm-flt{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 11px;font:inherit;font-size:13.5px;color:var(--ink);background:#fff}
/* action buttons (orders toolbar) */
.gsx-adm .gsx-adm-abar{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.gsx-adm .gsx-adm-abtn{height:38px;padding:0 14px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.gsx-adm .gsx-adm-abtn:hover{background:var(--bg);color:var(--navy)}
.gsx-adm .gsx-adm-abtn[disabled]{opacity:.4;cursor:not-allowed}
.gsx-adm .gsx-adm-abtn.ok{background:var(--green);border-color:var(--green);color:#fff}
.gsx-adm .gsx-adm-abtn.ok:hover{background:var(--green-deep);color:#fff}
.gsx-adm .gsx-adm-abtn.no{border-color:#eccaca;color:var(--red-deep)}
.gsx-adm .gsx-adm-abtn.no:hover{background:#fdeaea}
.gsx-adm .gsx-adm-abtn.del{background:#fff;border-color:#eccaca;color:var(--red-deep)}
.gsx-adm .gsx-adm-abtn.del:hover{background:#fdeaea}
.gsx-adm .gsx-adm-sep{width:1px;height:26px;background:var(--line);margin:0 3px}
.gsx-adm .gsx-adm-tbl .pchk{width:17px;height:17px;cursor:pointer;accent-color:var(--green)}
/* orders search panel (top half) */
.gsx-adm .gsx-srch{flex:none;padding:15px 20px}
.gsx-adm .gsx-srch-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}
.gsx-adm .gsx-f{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:12px}
.gsx-adm .gsx-f>label{font-size:13px;font-weight:600;color:var(--muted);text-align:start}
.gsx-adm .gsx-f input,.gsx-adm .gsx-f select{height:38px;border:1px solid var(--line);border-radius:9px;padding:0 11px;font:inherit;font-size:13.5px;color:var(--ink);background:#fff;width:100%}
.gsx-adm .gsx-f input:focus,.gsx-adm .gsx-f select:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(22,40,74,.08)}
.gsx-adm .gsx-f .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gsx-adm .gsx-srch-go{display:flex;gap:8px;margin-top:13px}
.gsx-adm .gsx-srch-go .go{height:40px;padding:0 26px;border-radius:9px;border:0;background:var(--navy);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.gsx-adm .gsx-srch-go .clr{height:40px;padding:0 18px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--muted);font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
/* ticket received/sent tracking cell */
.gsx-adm .trk{display:flex;flex-direction:column;gap:1px;align-items:center;line-height:1.25}
.gsx-adm .trk .on{color:var(--green-deep);font-weight:700;font-size:11.5px;white-space:nowrap}
.gsx-adm .trk .off{color:var(--faint);font-size:11.5px}
.gsx-adm .trk .stamp{font-size:10px;color:var(--muted);white-space:nowrap}
.gsx-adm .gsx-adm-tbl .chk{width:16px;height:16px;accent-color:var(--gold-deep);cursor:pointer}
.gsx-adm .tot{font-weight:700;font-feature-settings:"tnum" 1;white-space:nowrap}
/* table */
.gsx-adm .gsx-adm-tw{flex:1;min-height:0;overflow:auto}
.gsx-adm .gsx-adm-tbl{width:100%;border-collapse:collapse}
.gsx-adm .gsx-adm-tbl thead th{position:sticky;top:0;z-index:2;background:var(--bg);color:var(--navy);text-align:start;font-weight:700;font-size:12.5px;padding:11px 14px;white-space:nowrap;border-bottom:2px solid var(--gold)}
.gsx-adm .gsx-adm-tbl thead th.gs-sort{cursor:pointer;user-select:none}
.gsx-adm .gsx-adm-tbl thead th.gs-sort:hover{color:#16284a}
.gsx-adm .gsx-adm-tbl .gs-sort-mark{display:inline-block;min-width:10px;margin-inline-start:4px;color:var(--gold-deep);font-size:10px;vertical-align:1px}
.gsx-adm .gsx-adm-tbl tbody td{padding:0 14px;height:46px;border-bottom:1px solid var(--line-2);font-size:13.5px;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.gsx-adm .gsx-adm-tbl tbody tr{cursor:pointer}
.gsx-adm .gsx-adm-tbl tbody tr:hover{background:#fbf7ec}
.gsx-adm .gsx-adm-tbl tbody tr.sel{background:var(--gold-tint)}
.gsx-adm .gsx-adm-tbl tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.gsx-adm .gsx-adm-empty{padding:34px;text-align:center;color:var(--muted)}
/* pills */
.gsx-adm .role{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.gsx-adm .role.admin{background:#fdeaea;color:#b3322f}
.gsx-adm .role.agent{background:#e9f2fb;color:#1d5fa5}
.gsx-adm .role.supplier{background:#eaf6f0;color:#0f6e56}
.gsx-adm .role.aff{background:#f1ecfb;color:#6b3fa0}
.gsx-adm .role.spa{background:#fff3e0;color:#9a6400}
.gsx-adm .tk{font-size:11.5px;font-weight:700;color:var(--gold-deep);background:var(--gold-tint);border:1px solid #f0dca6;border-radius:999px;padding:2px 9px;white-space:nowrap}
.gsx-adm .tk.na{color:var(--faint);background:#f4f6f9;border-color:var(--line)}
.gsx-adm .st{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.gsx-adm .st.pending{background:var(--gold-tint);color:var(--gold-deep)}
.gsx-adm .st.approved{background:#eaf6f0;color:#0f6e56}
.gsx-adm .st.declined{background:#fdeaea;color:#b3322f}
.gsx-adm .st.canceled{background:#f4f6f9;color:var(--muted)}
/* detail card form */
.gsx-adm .gsx-adm-det{flex:1;min-height:0;overflow:auto;padding:16px 18px;display:flex;flex-direction:column}
.gsx-adm .gsx-adm-fg{margin-bottom:12px}
.gsx-adm .gsx-adm-fg label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:5px}
.gsx-adm .gsx-adm-fg input,.gsx-adm .gsx-adm-fg select{width:100%;height:38px;border:1px solid var(--line);border-radius:9px;padding:0 11px;font:inherit;font-size:13.5px;color:var(--ink);background:#fff}
.gsx-adm .gsx-adm-fg input:focus,.gsx-adm .gsx-adm-fg select:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(22,40,74,.08)}
.gsx-adm .gsx-adm-fg .ro{font-size:13.5px;font-weight:600;color:var(--ink);padding:8px 0}
.gsx-adm .gsx-adm-frow{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.gsx-adm .gsx-adm-act{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid var(--line-2);margin-top:auto}
.gsx-adm .gsx-adm-b{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:9px;font:inherit;font-size:13px;font-weight:700;padding:9px 15px;cursor:pointer;text-decoration:none;display:inline-block}
.gsx-adm .gsx-adm-b:hover{background:var(--bg);color:var(--navy)}
.gsx-adm .gsx-adm-b.save{background:var(--navy);border-color:var(--navy);color:#fff;flex:1;text-align:center}
.gsx-adm .gsx-adm-b.save:hover{background:var(--navy-2);color:#fff}
.gsx-adm .gsx-adm-b.del{background:#fff;border-color:#eccaca;color:var(--red-deep)}
.gsx-adm .gsx-adm-b.del:hover{background:#fdeaea}
.gsx-adm .gsx-adm-hint{font-size:11.5px;color:var(--faint);margin-top:12px;text-align:center}
.gsx-adm .gsx-adm-empty-side{flex:1;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:13.5px;text-align:center;padding:24px}
/* full-height pass-through for the included detail panel (card > ng-include > ng-controller > branch) */
.gsx-adm .gsx-adm-inc{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
/* restyle the LEGACY .form-wrapper.details detail panels (stadiums/events) to gsx — engine untouched, CSS only */
.gsx-adm .form-wrapper.details{padding:0;border:0;background:none;box-shadow:none;margin:0}
.gsx-adm .form-wrapper.details form{margin:0}
.gsx-adm .control-group{margin:0 0 12px}
.gsx-adm .control-label{float:none;width:auto;display:block;text-align:start;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 5px;padding:0;line-height:1.3}
.gsx-adm .controls{margin:0 !important}
.gsx-adm .controls input[type=text],.gsx-adm .controls input[type=number],.gsx-adm .controls input:not([type]),.gsx-adm .controls select{width:100%;height:38px;border:1px solid var(--line);border-radius:9px;padding:0 11px;font:inherit;font-size:13.5px;color:var(--ink);background:#fff;box-sizing:border-box;margin:0}
.gsx-adm .controls select[ui-select2]+.select2-container{width:100% !important}
.gsx-adm .controls input:focus,.gsx-adm .controls select:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(22,40,74,.08)}
.gsx-adm .controls label{font-size:13px;color:var(--ink);padding:6px 0;display:inline-block}
.gsx-adm .controls img{border-radius:9px;border:1px solid var(--line) !important;margin-top:6px;max-width:100%;height:auto}
.gsx-adm .controls input[type=file]{height:auto;border:0;padding:6px 0;font-size:12px}
.gsx-adm .form-actions{background:none;border:0;border-top:1px solid var(--line-2);padding:14px 0 0;margin:10px 0 0}
.gsx-adm .form-actions .btn{border-radius:9px;font-weight:700;font-size:13px;padding:9px 15px;background:#fff;border:1px solid var(--line);color:var(--navy);box-shadow:none;text-shadow:none;background-image:none;margin:0 0 6px}
.gsx-adm .form-actions .btn:hover{background:var(--bg)}
.gsx-adm .form-actions .btn-primary{background:var(--navy);border-color:var(--navy);color:#fff}
.gsx-adm .form-actions .btn-danger{background:#fff;border-color:#eccaca;color:var(--red-deep)}
.gsx-adm .form-actions .btn-danger:hover{background:#fdeaea}
.gsx-adm .gsx-adm-inc > [ng-controller]{flex:1;min-height:0;display:flex;flex-direction:column}
.gsx-adm .gsx-adm-detbranch{flex:1;min-height:0;display:flex;flex-direction:column}
@media(min-width:1700px){.gsx-adm{max-width:1480px}}
