:root{--navy:#2C3C58;--deep:#20314b;--steel:#48627E;--sage:#9FB4B1;--mist:#E8F0EE;--pale:#F4F8F7;--white:#FDFDFD;--line:#DDE7E5;--muted:#607078;--shadow:0 14px 40px rgba(36,61,70,.075);--round:18px;--safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#F5F8F7;color:var(--navy);font-family:Poppins,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--steel);text-decoration:none}a:hover{text-decoration:underline}.hidden{display:none!important}.subtle{color:var(--muted);line-height:1.55}.fine-print{font-size:11px;color:var(--muted);line-height:1.5}.eyebrow{font:700 10px Barlow,sans-serif;letter-spacing:.17em;color:var(--steel)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:600}h1{font-size:27px;line-height:1.22;letter-spacing:-.02em}h2{font-size:19px;line-height:1.25}h3{font:600 15px Barlow,sans-serif} .topbar{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-inner{height:70px;max-width:960px;margin:auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand img{display:block;width:95px;height:auto}.brand-divider{height:30px;width:1px;background:var(--line)}.brand-label{font:700 11px Barlow,sans-serif;letter-spacing:.095em;line-height:1.05}.brand-label small{font-size:9px;color:#768e91;letter-spacing:.08em}.header-right{display:flex;gap:10px;align-items:center}.live-pill{background:#e6f1eb;color:#3d7960;border-radius:20px;padding:5px 9px;font:600 11px Barlow,sans-serif;display:flex;align-items:center;gap:6px}.live-pill i{width:6px;height:6px;border-radius:50%;background:#43a277}.live-pill.offline{background:#fff1e7;color:#a15f32}.live-pill.offline i{background:#cd8545}.user-button{background:var(--mist);border:0;border-radius:50%;height:34px;width:34px;color:var(--steel);font:700 13px Barlow,sans-serif}.app-shell{min-height:100vh;padding-bottom:calc(82px + var(--safe))}.main-content{max-width:960px;margin:0 auto;padding:23px 18px 36px}.page-head{display:flex;align-items:start;justify-content:space-between;gap:13px;margin-bottom:17px}.page-head h1{margin:4px 0 2px}.page-head p{margin:0}.header-kicker{font:700 10px Barlow,sans-serif;letter-spacing:.16em;color:#789093}.action-row{display:flex;gap:9px;flex-wrap:wrap}.button{min-height:42px;padding:9px 14px;border-radius:11px;border:1px solid #b6c9c8;background:var(--white);color:var(--navy);font:600 12px Poppins,sans-serif;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-align:center;transition:transform .15s cubic-bezier(.23,1,.32,1),background .15s}.button:active{transform:scale(.97)}.button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.button.primary:hover{background:#405471}.button.soft{background:var(--mist);border-color:transparent;color:var(--deep)}.button.quiet{background:transparent;border-color:transparent;color:var(--steel)}.button.small{min-height:33px;padding:6px 10px;font-size:11px}.button.full{width:100%}.button.half{flex:1}.button.danger{border-color:#f1d5d5;color:#a24a4a}.button-icon{font-size:17px;line-height:0}.card{background:#fff;border:1px solid #e3ebe9;border-radius:var(--round);padding:18px;box-shadow:var(--shadow)}.card+.card,.card+.section,.section+.card{margin-top:14px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.card-title h2{margin:0}.muted{color:var(--muted)}.section{margin-top:22px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px}.section-title h2{margin:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.hero{background:linear-gradient(110deg,#eaf2ef,#f9fbfa);border:1px solid #dae8e3;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.hero h1{margin:4px 0 6px}.hero p{max-width:540px;margin-bottom:0}.hero-dates{border:1px solid #d7e7e2;padding:11px;border-radius:12px;text-align:center;white-space:nowrap}.hero-dates strong{display:block;font:600 18px 'Playfair Display';}.hero-dates small{font:600 10px Barlow;color:var(--steel)}.metric{background:#fff;border:1px solid #e1eae8;border-radius:15px;padding:13px;min-height:104px}.metric .value{font:600 25px 'Playfair Display';line-height:1;color:var(--navy)}.metric .value small{font:500 12px Poppins;color:var(--muted)}.metric .label{color:var(--muted);font:600 11px Barlow;line-height:1.2;margin-top:8px}.metric .mini{font:400 10px Poppins;color:#849392;margin-top:4px}.funnel{position:relative}.funnel-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.funnel-step{background:var(--pale);border-radius:13px;padding:12px 10px;min-height:96px;position:relative}.funnel-step .number{font:600 27px 'Playfair Display';color:var(--navy);line-height:1}.funnel-step .small-label{font:600 10px Barlow;color:var(--steel);line-height:1.25;margin-top:8px}.funnel-step .rate{font:700 10px Barlow;color:#4c826c;margin-top:4px}.funnel-desc{font-size:11px;color:var(--muted);margin:12px 0 0;line-height:1.5}.progress-list{display:grid;gap:13px}.progress-line{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:5px}.progress-line .name{font:600 12px Barlow}.progress-line .amount{font:600 11px Barlow;color:var(--steel)}.progress-line .track{grid-column:1/-1;height:6px;border-radius:7px;background:#eaf0ee;overflow:hidden}.progress-line .bar{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--sage),var(--steel));min-width:0}.person{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px;margin-bottom:9px;display:block;width:100%;text-align:left;color:var(--navy)}.person:hover,.slot:hover{border-color:var(--sage)}.person-header{display:flex;align-items:start;justify-content:space-between;gap:8px}.person-name{font:600 15px Barlow}.person-meta{font:400 11px Poppins;color:var(--muted);line-height:1.45;margin-top:2px}.person-next{font:500 11px Poppins;color:var(--steel);margin-top:8px;line-height:1.35}.chip{font:600 10px Barlow;padding:4px 8px;border-radius:16px;background:var(--pale);color:var(--steel);white-space:nowrap}.chip.qualified,.chip.meeting{background:#e9f3ee;color:#3f725d}.chip.order{background:#dfe9f7;color:#345780}.chip.partner{background:#f1ecda;color:#806c30}.chips{display:flex;gap:6px;flex-wrap:wrap}.search{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:0 13px;margin:12px 0}.search input{width:100%;height:45px;border:0;outline:none;box-shadow:none!important;background:transparent}.search:focus-within{border-color:var(--steel)}.empty{padding:28px 16px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #c8d8d6;border-radius:15px;line-height:1.5}.empty strong{display:block;color:var(--navy);font:600 15px Barlow;margin-bottom:5px}.slot{display:flex;width:100%;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;justify-content:space-between;align-items:center;text-align:left;color:var(--navy);margin:7px 0;gap:8px}.slot time{font:700 13px Barlow}.slot .detail{font:400 11px Poppins;color:var(--muted)}.slot .right{white-space:nowrap}.slot.is-booked{background:#edf3f1}.slot.is-completed{opacity:.68}.day-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:4px;margin-bottom:13px}.day-tabs button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 14px;white-space:nowrap;color:var(--steel);font:600 12px Barlow}.day-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}.slot-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.slot-columns h3{margin:0 0 8px}.bottom-nav{position:fixed;z-index:18;bottom:0;left:0;right:0;background:rgba(253,253,253,.98);border-top:1px solid #dce6e4;display:flex;justify-content:center;padding:5px max(7px,env(safe-area-inset-left)) calc(5px + var(--safe));box-shadow:0 -9px 24px rgba(48,65,71,.05)}.bottom-nav button{min-height:57px;min-width:0;width:min(20%,110px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;color:#779090;font:600 10px Barlow}.bottom-nav button.active{color:var(--navy)}.bottom-nav .nav-icon{font:500 23px Arial,sans-serif;line-height:1}.bottom-nav button.active .nav-icon{transform:translateY(-2px)}.login-screen{min-height:100vh;background:radial-gradient(circle at 20% 15%,#e5efeb 0,#f6f9f7 42%,#eef4f2 100%);display:grid;place-items:center;padding:20px}.login-panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(27,52,58,.12);padding:30px;width:min(100%,410px)}.login-logo{width:151px;margin-bottom:28px}.login-panel h1{font-size:30px;margin:10px 0 9px}.login-panel .subtle{font-size:12px;margin-bottom:22px}.login-panel .fine-print{margin:20px 0 0}.stack{display:grid;gap:13px}.error{color:#a44646;font:500 12px Poppins;min-height:1.3em}.form-dialog{border:0;padding:0;border-radius:17px;box-shadow:0 30px 90px rgba(23,48,57,.28);width:min(92vw,550px);max-height:min(89vh,900px);overflow:auto;background:#fff;color:var(--navy)}.form-dialog::backdrop{background:rgba(19,34,47,.53)}.dialog-inner{padding:20px}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:14px}.dialog-head h2{margin:0}.close{border:0;background:#edf2f1;border-radius:50%;width:30px;height:30px;font-size:18px;color:var(--navy)}.form-dialog form{display:grid;gap:13px}.form-dialog label,.login-panel label{display:block;font:600 11px Barlow;color:var(--steel);letter-spacing:.025em}.form-dialog input,.form-dialog select,.form-dialog textarea,.login-panel input,.login-panel select{display:block;width:100%;min-height:43px;border:1px solid #d1dddb;border-radius:10px;margin-top:5px;padding:10px 11px;background:#fff;color:var(--navy);font:400 13px Poppins;outline:none}.form-dialog textarea{min-height:81px;resize:vertical}.form-dialog input:focus,.form-dialog select:focus,.form-dialog textarea:focus,.login-panel input:focus,.login-panel select:focus{border-color:var(--steel);box-shadow:0 0 0 3px #dce9ea}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:3px 0}.check-pill{display:flex!important;align-items:center;gap:8px;padding:10px;background:var(--pale);border-radius:10px;font:600 11px Barlow!important;color:var(--navy)!important;letter-spacing:0!important}.check-pill input{width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;accent-color:var(--steel)}.dialog-footer{display:flex;gap:10px;margin-top:8px}.notice{background:#eef4f2;border-left:3px solid var(--sage);border-radius:8px;padding:9px 11px;color:var(--steel);font-size:11px;line-height:1.5}.notice.warn{background:#fff4e9;border-color:#d8aa63;color:#875f36}.toast{position:fixed;z-index:50;bottom:calc(82px + var(--safe));left:50%;transform:translateX(-50%);width:min(90vw,370px);background:var(--navy);color:#fff;border-radius:12px;padding:11px 15px;text-align:center;box-shadow:var(--shadow);font:500 12px Poppins}.toast.fail{background:#a64c4c}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0}.mini-input{width:76px!important;min-height:35px!important;text-align:center}.footer-note{text-align:center;font:11px Poppins;color:#8da09f;margin-top:24px}.wide-only{display:none}@media(min-width:700px){.main-content{padding:32px 26px 40px}.grid-2{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{gap:14px}.dashboard-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-panels>.card{margin:0}.wide-only{display:block}.form-dialog{width:min(88vw,610px)}.hero{padding:25px}.hero h1{font-size:31px}}@media(max-width:380px){.brand img{width:83px}.brand-label{font-size:10px}.main-content{padding:18px 13px}.card{padding:14px}.funnel-step{padding:10px 7px}.funnel-step .number{font-size:23px}.check-grid{grid-template-columns:1fr 1fr}}

/* Two independently bookable seats per screening, like the booth board. */
.screening-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px;align-items:center;margin:8px 0;padding:9px 8px;background:#fff;border:1px solid var(--line);border-radius:13px}
.screening-time strong{display:block;font:700 12px Barlow;color:var(--navy)}
.screening-time small{display:block;font:400 9px Barlow;color:var(--muted);line-height:1.2;margin-top:2px}
.seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.seat-button{min-width:0;min-height:55px;text-align:left;background:#edf4f1;border:1px solid #d8e8e1;border-radius:10px;color:var(--navy);padding:8px 9px;transition:transform .15s,background .15s}
.seat-button:active{transform:scale(.97)}
.seat-button.is-booked{background:#e8eef5;border-color:#d7e2ee}
.seat-button.is-completed{background:#f1f3f3;opacity:.7}
.seat-button.is-cancelled{background:#f6f3f3;color:#9f9696}
.seat-label{display:block;font:700 10px Barlow;letter-spacing:.03em;color:var(--steel)}
.seat-guest{display:block;font:500 11px Poppins;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
@media(max-width:380px){.screening-row{grid-template-columns:70px minmax(0,1fr);gap:6px;padding:8px 6px}.seat-button{padding:7px 6px}}

.blocked-row{background:#eef1f2;border-color:#e3e8e9;color:#718087;min-height:53px}
.blocked-row .screening-time strong{color:#61727b}
.blocked-label{grid-column:2;display:flex;align-items:center;font:600 11px Barlow;color:#6c7984;line-height:1.25;padding-left:2px}
.walkin-row{background:#f3eee3;border-color:#e9dfc8}
.walkin-row .blocked-label{color:#876d42}
.badge-scanner{display:grid;gap:7px;padding:13px;background:#eff5f2;border:1px solid #dce8e2;border-radius:12px}
.badge-scanner .badge-trigger{width:100%;justify-content:center;font-size:13px;letter-spacing:0;color:#2c3c58}
.badge-scanner .fine-print{margin:0;line-height:1.45}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* One continuous capture flow: hide conditional fields even where form-label rules set display. */
[hidden]{display:none!important}
#capture-person-details,#capture-followup,#capture-outcomes{display:grid;gap:12px}
