/* ============================================================
   IACTACON 2027 Kolkata — Guest System theme
   Navy #0d2f66 · Steel #5b87a4 · Maroon #8d191c (from the conference hero)
   Class names (ps-*) are kept so every desk template inherits the look.
   ============================================================ */
@font-face{font-family:'Archivo';src:url('/static/vendor/fonts/archivo.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}

:root{
  --ps-navy:#0d2f66; --ps-navy-mid:#1d4f9a; --ps-navy-light:#5b87a4; --ps-navy-deep:#08224f;
  --ps-accent:#8d191c; --ps-accent-light:#c0393c;
  --ps-bg:#f3f6f9; --ps-bg-card:#fff; --ps-text:#14233a; --ps-muted:#5a6b7b;
  --ps-border:#d9e2ec; --ps-tint:#e6eef6;
  --ps-success:#1f7a5c; --ps-danger:#b3261e; --ps-info:#1d4f9a; --ps-warning:#b4741f;
  --ps-radius:10px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{font-family:'Archivo','Segoe UI',system-ui,sans-serif;background:var(--ps-bg);color:var(--ps-text);display:flex;flex-direction:column;min-height:100vh;font-size:15px;-webkit-font-smoothing:antialiased}
main{flex:1}
h1,h2,h3,h4,h5,h6{font-family:'Archivo',sans-serif;color:var(--ps-navy);font-weight:700;letter-spacing:-.01em}
h4{font-size:1.25rem}
a{color:var(--ps-navy-mid)}
:focus-visible{outline:3px solid var(--ps-navy-mid);outline-offset:2px}

/* ── Navbar ── */
.ps-navbar{background:var(--ps-navy);border-bottom:4px solid var(--ps-accent);padding:.45rem 1rem}
.ps-navbar .navbar-brand{display:flex;align-items:center;gap:.65rem;color:#fff!important;font-weight:800;font-size:1.05rem;letter-spacing:.02em;font-stretch:112%}
.ps-navbar .navbar-brand img{height:34px;width:auto;background:#fff;border-radius:50%;padding:2px}
.ps-navbar .navbar-brand span{font-weight:500;opacity:.8;margin-left:.3rem}
.ps-navbar .nav-link{color:rgba(255,255,255,.88)!important;font-size:.875rem;font-weight:500;border-radius:8px;padding:.45rem .8rem!important}
.ps-navbar .nav-link:hover{background:rgba(255,255,255,.12);color:#fff!important}
.ps-navbar .navbar-toggler{border-color:rgba(255,255,255,.4)}
.ps-navbar .navbar-toggler-icon{filter:invert(1)}
.ps-navbar .badge{background:#fff!important;color:var(--ps-navy)!important;font-weight:700}

/* ── Footer ── */
.ps-footer{background:var(--ps-navy-deep);color:rgba(255,255,255,.72);font-size:.8rem;padding:1.1rem 1rem;text-align:center;border-top:4px solid var(--ps-accent)}
.ps-footer strong{color:#fff}
.ps-footer .qubix-brand{color:#fff;font-weight:600}

/* ── Buttons (flat, solid, strong press state) ── */
.btn{border-radius:8px;font-weight:600}
.btn-ps-primary,.btn-ps-gold,.btn-ps-success,.btn-ps-danger,.btn-ps-info,.btn-ps-warning{border:0;color:#fff!important;transition:background .15s,transform .05s}
.btn-ps-primary{background:var(--ps-navy)} .btn-ps-primary:hover{background:var(--ps-navy-mid)}
.btn-ps-gold{background:var(--ps-accent)} .btn-ps-gold:hover{background:var(--ps-accent-light)}
.btn-ps-success{background:var(--ps-success)} .btn-ps-success:hover{background:#176148}
.btn-ps-danger{background:var(--ps-danger)} .btn-ps-danger:hover{background:#8c1d16}
.btn-ps-info{background:var(--ps-navy-mid)} .btn-ps-info:hover{background:var(--ps-navy)}
.btn-ps-warning{background:var(--ps-warning)} .btn-ps-warning:hover{background:#8d5a14}
.btn:active{transform:translateY(1px)}

/* ── Cards ── */
.ps-card{background:var(--ps-bg-card);border-radius:var(--ps-radius);border:1px solid var(--ps-border);box-shadow:0 1px 2px rgba(13,47,102,.05);overflow:hidden}
.ps-card-header{background:var(--ps-tint);color:var(--ps-navy);padding:.8rem 1.1rem;border-bottom:1px solid var(--ps-border);position:relative}
.ps-card-header::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ps-accent)}
.ps-card-header h4,.ps-card-header h5,.ps-card-header h6{color:var(--ps-navy)!important;margin:0;font-weight:700}
.ps-card-header [style*="color:var(--ps-accent)"],.ps-card-header i{color:var(--ps-accent)!important}
/* template headers that carried inline gradients keep the same calm look */
.ps-card-header[style]{background:var(--ps-tint)!important}

/* ── Stat tiles ── */
.ps-stat{background:#fff;border-radius:var(--ps-radius);border:1px solid var(--ps-border);padding:.9rem 1.1rem;position:relative}
.ps-stat::before{content:'';position:absolute;left:0;top:.9rem;bottom:.9rem;width:4px;border-radius:0 4px 4px 0;background:var(--ps-navy)}
.ps-stat.gold::before{background:var(--ps-accent)} .ps-stat.green::before{background:var(--ps-success)}
.ps-stat.red::before{background:var(--ps-danger)}  .ps-stat.blue::before{background:var(--ps-navy-light)}
.ps-stat.orange::before{background:var(--ps-warning)}
.ps-stat-value{font-size:clamp(1.6rem,4vw,2.3rem);font-weight:800;color:var(--ps-navy);line-height:1;font-variant-numeric:tabular-nums;padding-left:.3rem}
.ps-stat-label{font-size:.78rem;color:var(--ps-muted);font-weight:600;margin-top:6px;padding-left:.3rem}

/* ── Hero wrapper (the Kolkata hero sits full width above the desks) ── */
.ps-hero-wrap{background:#fff;border-bottom:1px solid var(--ps-border)}
.ps-hero{background:var(--ps-navy);color:#fff}
.ps-meta-pill{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.12);border-radius:50px;padding:.35rem .9rem;margin:.2rem;font-size:.85rem}

/* ── Desk grid on home ── */
.ps-desks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.ps-desk{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.2rem;background:#fff;border:1px solid var(--ps-border);border-radius:var(--ps-radius);text-decoration:none;color:var(--ps-text);transition:border-color .15s,box-shadow .15s}
.ps-desk:hover{border-color:var(--ps-navy);box-shadow:0 4px 16px rgba(13,47,102,.12);color:var(--ps-text)}
.ps-desk .ico{width:42px;height:42px;border-radius:10px;background:var(--ps-tint);color:var(--ps-navy);display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.ps-desk.primary .ico{background:var(--ps-accent);color:#fff}
.ps-desk b{font-size:1.02rem;color:var(--ps-navy)}
.ps-desk span.d{font-size:.84rem;color:var(--ps-muted);line-height:1.4}
.ps-desk .go{margin-top:auto;padding-top:.4rem;font-size:.82rem;font-weight:700;color:var(--ps-accent)}

/* ── Service toggle buttons ── */
.ps-service-btn{border-radius:10px;padding:.65rem 1rem;font-size:.88rem;font-weight:700;border:2px solid var(--ps-navy);cursor:pointer;width:100%;transition:background .15s,color .15s}
.ps-service-btn.unmarked{background:#fff;color:var(--ps-navy)}
.ps-service-btn.unmarked:hover{background:var(--ps-tint)}
.ps-service-btn.marked{background:var(--ps-success);color:#fff;border-color:var(--ps-success)}
.ps-service-btn.locked{background:var(--ps-tint);color:var(--ps-muted);border-color:var(--ps-border);cursor:not-allowed;position:relative;opacity:1}
.ps-service-btn.locked::after{content:'🔒';position:absolute;top:2px;right:6px;font-size:.7rem}

/* ── Scanner ── */
.ps-scanner-card{border-radius:14px;overflow:hidden;border:1px solid var(--ps-border);box-shadow:0 6px 24px rgba(13,47,102,.1);background:#fff}
.ps-scanner-header{background:var(--ps-navy);padding:1.1rem;text-align:center;color:#fff}
.ps-guest-result{animation:slideIn .18s ease}
@keyframes slideIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#qr-reader{aspect-ratio:1/1;max-width:300px;margin-left:auto;margin-right:auto}

/* ── Hotel / travel tags ── */
.ps-hotel-badge{background:var(--ps-accent);color:#fff;border-radius:8px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-block}
.ps-car-badge{background:var(--ps-navy-mid);color:#fff;border-radius:8px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-block}
.ps-checkin-tag{background:#d8f0e6;color:#14553f;border-radius:6px;padding:2px 8px;font-size:.75rem;font-weight:700}
.ps-checkout-tag{background:#f8dedb;color:#8c1d16;border-radius:6px;padding:2px 8px;font-size:.75rem;font-weight:700}

/* ── Tabs ── */
.ps-day-tab{border-bottom:3px solid transparent;color:var(--ps-muted);font-weight:600;padding:.5rem 1rem;cursor:pointer}
.ps-day-tab.active{border-bottom-color:var(--ps-accent);color:var(--ps-navy)}

/* ── Live bar ── */
.ps-live-bar{background:var(--ps-navy);color:#fff;text-align:center;padding:.5rem 1rem;font-size:.82rem;font-weight:600}
.ps-live-bar strong{font-variant-numeric:tabular-nums}
.ps-live-dot{display:inline-block;width:8px;height:8px;background:#5be0a0;border-radius:50%;margin-right:6px;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ── Tables ── */
.ps-table thead th,.table thead th{background:var(--ps-navy)!important;color:#fff!important;font-weight:600;border:0;white-space:nowrap}
.ps-table tbody tr:hover,.table-hover tbody tr:hover{background:var(--ps-tint)!important}
.table{--bs-table-bg:transparent}

/* ── Login ── */
.ps-login-wrap{min-height:78vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.ps-login-card{width:100%;max-width:420px;border-radius:14px;overflow:hidden;box-shadow:0 14px 44px rgba(13,47,102,.18)}
.ps-login-header,.ps-login-header[style]{background:var(--ps-navy)!important;padding:1.6rem 1.5rem 1.4rem;text-align:center;border-bottom:4px solid var(--ps-accent)}
.ps-login-logo{font-size:2.1rem;font-weight:800;color:#fff;letter-spacing:.04em;font-stretch:115%;line-height:1.05}
.ps-login-sub{color:#c9d8ea;font-weight:600;font-size:.85rem;margin-top:.3rem}

/* ── Guest-type pills ── */
.badge-DELEGATE{background:#0d2f66!important}.badge-PGT_STUDENT{background:#2f6f9f!important}
.badge-ACCOMPANYING{background:#b4741f!important}.badge-FACULTY{background:#1f7a5c!important}
.badge-ORGANISER{background:#8d191c!important}.badge-CORPORATE{background:#5b87a4!important}
.badge-STAFF{background:#6b7280!important}.badge-SPONSOR{background:#3d6b2f!important}

.qubix-powered{font-size:.72rem;color:var(--ps-muted);text-align:center;padding:.4rem}
.qubix-powered a{color:var(--ps-accent);text-decoration:none;font-weight:600}

/* ── Forms ── */
.form-control,.form-select{border-radius:8px;border-color:#c4d1de}
.form-control:focus,.form-select:focus{border-color:var(--ps-navy-mid);box-shadow:0 0 0 3px rgba(29,79,154,.18)}
.form-label{font-weight:600;color:var(--ps-text)}
.nav-pills .nav-link.active{background:var(--ps-navy)}

/* ── Responsive ── */
@media(max-width:768px){
  body{font-size:14.5px}
  .ps-stat{padding:.75rem .9rem}.ps-stat-value{font-size:1.5rem}
  .ps-navbar .navbar-brand span{display:none}
  .btn,.form-control,.form-select{min-height:44px}   /* touch-sized controls on desk phones */
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media(max-width:576px){.ps-desks{grid-template-columns:1fr 1fr;gap:10px}.ps-desk{padding:.85rem}.ps-desk .d{display:none}.ps-desk .ico{width:36px;height:36px}}
.ps-scanner-header i,.ps-scanner-header h6{color:#fff!important}.ps-scanner-header h6{margin:0;font-weight:700}
