:root{--invite-ink:#011b2c;--invite-paper:#fbe9c4;--invite-surface:#073243;--invite-red:#e03521;--invite-gold:#fbd996;--invite-muted:#696252;--invite-line:#dcc694;--invite-max:1120px;--ink:#101010;--surface:#191919;--paper:#eee8d7;--white:#fff;--blue:#7899a6;--orange:#cc7048;--muted:#adaaa2;--line:#343431;--paper-line:#d2cbb8;--good:#255d41;--good-bg:#e6f1e9;--warn:#75521e;--warn-bg:#faf0d9;--bad:#92372c;--bad-bg:#f8e9e4;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--field:12px;--card:24px;--pill:999px;--body:Arial,Helvetica,sans-serif;--head:Georgia,'Times New Roman',serif;--xs:12px;--sm:14px;--base:16px;--lg:20px;--xl:28px;--title:clamp(32px,4vw,48px);--max:1440px;--ease:180ms ease}
*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--body);font-size:var(--base);line-height:1.5}button,input,select{font:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--head);font-weight:400;line-height:1.1}h1{font-size:var(--title)}h2{font-size:var(--xl)}p+p{margin-top:var(--s4)}a{color:inherit;text-underline-offset:var(--s1)}img{max-width:100%;display:block}button,a,input,select{outline-offset:var(--s1)}:focus-visible{outline:3px solid var(--blue)}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,a{touch-action:manipulation}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:var(--s4);z-index:10;background:var(--paper);color:var(--ink);padding:var(--s4)}.skip:focus{top:var(--s4)}.loading{min-height:100svh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--s5)}.loading p{color:var(--muted)}.site-header{max-width:var(--max);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s5) var(--s6)}.site-header img{width:100px;height:64px;object-fit:contain}.header-meta{font-size:var(--sm);color:var(--muted);text-align:right}.eyebrow{font-size:var(--xs);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:var(--s4)}.muted{color:var(--muted)}.small{font-size:var(--sm)}.button{min-height:var(--s7);padding:var(--s3) var(--s5);border:1px solid transparent;border-radius:var(--field);background:var(--paper);color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);transition:background var(--ease),transform var(--ease)}.button:hover{background:var(--white)}.button.secondary{background:transparent;border-color:var(--line);color:var(--paper)}.button.secondary:hover{background:var(--surface)}.button.text{background:transparent;color:var(--paper);padding-inline:var(--s3);font-weight:400;text-decoration:underline}.button.compact{font-size:var(--sm);padding-inline:var(--s4)}.full{width:100%}.stack{display:flex;flex-direction:column;gap:var(--s5)}.row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.row.end{justify-content:flex-end}.grow{flex:1}.field{display:block}.field span{display:block;margin-bottom:var(--s2);font-size:var(--sm)}.field input,.field select,.search-input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:var(--field);padding:var(--s3) var(--s4);background:var(--ink);color:var(--white)}input::placeholder{color:var(--muted)}.field input:focus{border-color:var(--blue)}.error-text{font-size:var(--sm);color:var(--bad);background:var(--bad-bg);border-radius:var(--field);padding:var(--s4)}.error-text:empty{display:none}.notice{font-size:var(--sm);border:1px solid var(--line);border-radius:var(--field);padding:var(--s4);color:var(--muted)}.guest-layout{max-width:var(--max);margin:var(--s4) auto var(--s8);padding:0 var(--s6);display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);gap:var(--s7);align-items:center}.guest-art{min-width:0}.kv{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--field)}.art-caption{padding:var(--s5) var(--s2);display:flex;align-items:center;justify-content:space-between;gap:var(--s4);font-size:var(--sm);color:var(--muted)}.art-caption span:first-child{color:var(--paper)}.invite-card{background:var(--paper);color:var(--ink);padding:var(--s7);border-radius:var(--card);min-width:0;color-scheme:light}.invite-card .eyebrow{color:#526c77}.invite-card h1{margin-bottom:var(--s5)}.invite-card .intro{font-size:var(--base);line-height:1.65;margin-bottom:var(--s6)}.event-details{border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line);padding:var(--s5) 0;margin-bottom:var(--s6)}.event-details b{display:block;margin-bottom:var(--s2)}.event-details .address{font-size:var(--sm);color:#625e53;margin-top:var(--s2)}.invite-card .button{background:var(--ink);color:var(--paper)}.invite-card .button:hover{background:#282828}.invite-card .button.secondary{border-color:var(--paper-line);background:transparent;color:var(--ink)}.invite-card .button.text{background:transparent;color:#625e53}.invite-card .footnote{margin-top:var(--s5);font-size:var(--xs);color:#625e53;line-height:1.65;text-align:center}.invite-card .error-text{margin-top:var(--s4)}.ticket-heading{text-align:center}.ticket-name{font-size:var(--lg);font-weight:600;text-align:center;margin-top:var(--s4)}.qr-box{width:min(100%,260px);aspect-ratio:1;background:var(--white);margin:var(--s5) auto;border-radius:var(--field);overflow:hidden}.qr-box img{width:100%;height:100%}.ticket-instruction{text-align:center;font-size:var(--sm);margin-bottom:var(--s5)}.ticket-mark{font-size:var(--xs);color:var(--good);text-align:center;margin-bottom:var(--s3)}.page-foot{max-width:var(--max);margin:auto;padding:var(--s5) var(--s6);display:flex;justify-content:space-between;gap:var(--s5);border-top:1px solid var(--line);color:var(--muted);font-size:var(--xs)}.login-layout{max-width:1050px;margin:var(--s6) auto var(--s8);padding:0 var(--s6);display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s7);align-items:center}.panel{background:var(--surface);border:1px solid var(--line);padding:var(--s6);border-radius:var(--card)}.panel h1,.panel h2{margin-bottom:var(--s4)}.panel>.small{margin-bottom:var(--s5)}.workspace{max-width:var(--max);margin:var(--s4) auto var(--s7);padding:0 var(--s6)}.workspace-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s5);margin:var(--s5) 0 var(--s6)}.workspace-heading .eyebrow{margin-bottom:var(--s2)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s5);margin-bottom:var(--s6)}.stat{border-top:1px solid var(--line);padding-top:var(--s4)}.stat strong{display:block;font-weight:400;font-size:clamp(36px,4vw,52px);line-height:1.2}.stat span{font-size:var(--sm);color:var(--muted)}.tools{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;margin:var(--s5) 0}.tools .search-input{max-width:380px}.add-grid{display:grid;grid-template-columns:1fr 1.3fr auto;gap:var(--s4);align-items:end}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--field)}table{width:100%;border-collapse:collapse;font-size:var(--sm);text-align:left}th{font-size:var(--xs);font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;padding:var(--s4) var(--s5);background:var(--surface)}td{padding:var(--s4) var(--s5);border-top:1px solid var(--line);vertical-align:middle}td .guest-email{display:block;margin-top:var(--s1);font-size:var(--xs);color:var(--muted);overflow-wrap:anywhere}.table-actions{display:flex;gap:var(--s2);justify-content:flex-end}.table-actions .button{min-height:var(--s7)}.check{width:20px;height:20px;accent-color:var(--paper);cursor:pointer}.badge{font-size:var(--xs);padding:var(--s1) var(--s2);display:inline-block;border-radius:var(--pill);background:var(--line);white-space:nowrap}.badge.good{background:var(--good-bg);color:var(--good)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.empty{padding:var(--s7);text-align:center;color:var(--muted)}.staff-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6);align-items:start}.camera{aspect-ratio:4/3;position:relative;border-radius:var(--field);background:var(--ink);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line)}.camera video{width:100%;height:100%;object-fit:cover}.camera-label{max-width:230px;padding:var(--s5);color:var(--muted);font-size:var(--sm)}.scan-frame{position:absolute;inset:18%;border:2px solid var(--paper);border-radius:var(--field);pointer-events:none}.camera-actions{display:flex;gap:var(--s3);margin-top:var(--s5)}.camera-actions .button{flex:1}.result{min-height:400px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--s5)}.result h2{font-size:clamp(30px,3vw,42px)}.result .sign{font-size:var(--xl);border:1px solid currentColor;border-radius:50%;width:var(--s8);height:var(--s8);display:flex;align-items:center;justify-content:center}.result.success{background:var(--good-bg);color:var(--good);border-color:var(--good)}.result.duplicate{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.result.error{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}.result.success .button,.result.duplicate .button,.result.error .button{background:var(--ink);color:var(--paper)}.manual{margin-top:var(--s6)}.manual h2{margin-bottom:var(--s4)}.search-results{margin-top:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}.search-person{padding:var(--s4);border:1px solid var(--line);border-radius:var(--field);display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.toast{position:fixed;bottom:var(--s5);left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;padding:var(--s4) var(--s5);background:var(--paper);color:var(--ink);border-radius:var(--field);box-shadow:0 8px 40px #0008;z-index:20;font-size:var(--sm)}dialog{max-width:520px;width:calc(100% - 32px);border:1px solid var(--line);padding:var(--s6);border-radius:var(--card);background:var(--surface);color:var(--paper)}dialog::backdrop{background:#000a}dialog h2{margin-bottom:var(--s5)}dialog p{font-size:var(--sm);line-height:1.65}dialog .row{margin-top:var(--s5)}.import-preview{max-height:260px;overflow:auto;margin-top:var(--s5);font-size:var(--sm)}.import-preview p{padding-block:var(--s2);border-top:1px solid var(--line)}
@media(min-width:1500px){.guest-layout{margin-top:var(--s7);margin-bottom:var(--s9)}}@media(max-width:1000px){.guest-layout{gap:var(--s5);grid-template-columns:1.1fr 1fr}.invite-card{padding:var(--s6)}.art-caption{display:none}.staff-grid{gap:var(--s5)}.add-grid{grid-template-columns:1fr 1fr}.add-grid .button{grid-column:1/-1}.site-header{padding-inline:var(--s5)}}@media(max-width:700px){.site-header{padding:var(--s4) var(--s5)}.site-header img{width:80px;height:52px}.header-meta{font-size:var(--xs)}.guest-layout,.login-layout{display:flex;flex-direction:column;padding:0 var(--s5);gap:var(--s5);margin-top:var(--s3);margin-bottom:var(--s7)}.guest-art,.invite-card,.login-layout .panel{width:100%}.invite-card{padding:var(--s6) var(--s5)}.login-layout .guest-art{max-width:520px}.page-foot{padding:var(--s5);flex-wrap:wrap}.workspace{padding-inline:var(--s5)}.workspace-heading{align-items:start;flex-direction:column}.workspace-heading h1{font-size:36px}.workspace-heading>.row{width:100%}.workspace-heading>.row .button{flex:1}.stats{gap:var(--s4)}.stat strong{font-size:38px}.staff-grid{grid-template-columns:1fr}.result{min-height:280px}.panel{padding:var(--s5)}.add-grid{grid-template-columns:1fr}.add-grid .button{grid-column:auto}.tools>.row{width:100%}.tools>.row .button{flex:1}.tools .search-input{max-width:none;width:100%}th,td{padding:var(--s3)}th:nth-child(2),td:nth-child(2){min-width:200px}.table-wrap{margin-inline:0}.table-actions{flex-direction:column}.table-actions .button{min-height:var(--s7)}.camera{aspect-ratio:4/3}.header-actions{gap:var(--s2)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.invite-card h1,.ticket-name,.result h2,td:nth-child(2){overflow-wrap:anywhere}
@media(max-width:700px){.table-wrap{overflow:visible;border:0}table{display:block}thead{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}tbody{display:block}tbody tr{display:grid;grid-template-columns:var(--s6) minmax(0,1fr);border:1px solid var(--line);border-radius:var(--field);margin-top:var(--s3);padding:var(--s3)}td{border:0;padding:var(--s2)}td:nth-child(1){grid-column:1;grid-row:1/5}td:nth-child(n+2){grid-column:2;min-width:0}td.empty{grid-column:1/-1;padding:var(--s5)}.table-actions{flex-direction:row;justify-content:start;flex-wrap:wrap}.table-actions .button{padding:var(--s3);font-size:var(--xs)}}

/* MAS LANSMAN.pdf — guest-facing surfaces only. */
.invitation-theme{--ink:var(--invite-ink);--paper:var(--invite-paper);--surface:var(--invite-surface);--blue:var(--invite-gold);--muted:var(--invite-gold);--paper-line:var(--invite-line);--max:var(--invite-max)}
.invitation-theme .guest-layout{grid-template-columns:minmax(0,1fr) minmax(340px,1fr);gap:var(--s7)}
.invitation-theme .kv{border:0;border-radius:0}
.invitation-theme .invite-card .eyebrow{color:var(--invite-surface)}
.invitation-theme .invite-card .address,.invitation-theme .invite-card .footnote,.invitation-theme .invite-card .button.text{color:var(--invite-muted)}
.invitation-theme .invite-card .button:hover{background:var(--invite-surface)}
.invitation-theme .invite-card .button.text:hover{background:transparent}
.invitation-theme .invite-card :focus-visible{outline-color:var(--invite-ink)}
@media(max-width:1000px){.invitation-theme .guest-layout{gap:var(--s5)}}
@media(max-width:700px){.invitation-theme .guest-layout{gap:var(--s5)}}

/* Approved Phase 1: team login screens only. */
:root{--team-line:#5a8590;--team-login-max:1050px;--team-login-form-min:352px;--team-art-max:360px;--team-title:clamp(28px,3vw,40px);--team-focus-width:3px}
.team-login{--ink:var(--invite-ink);--surface:var(--invite-surface);--paper:var(--invite-paper);--blue:var(--invite-gold);--muted:var(--invite-gold);--line:var(--team-line)}
.team-login .login-layout{max-width:var(--team-login-max);grid-template-columns:minmax(0,1fr) minmax(var(--team-login-form-min),1fr);grid-template-areas:"art panel";gap:var(--s7)}
.team-login .login-layout .panel{grid-area:panel;background:var(--invite-paper);color:var(--invite-ink);color-scheme:light}
.team-login .guest-art{grid-area:art;max-width:var(--team-art-max);width:100%;justify-self:center;align-self:center}
.team-login .kv{border:0;border-radius:0;height:auto;width:100%}
.team-login .panel h1{font-size:var(--team-title);overflow-wrap:anywhere}
.team-login .panel .muted,.team-login .panel .eyebrow{color:var(--invite-muted)}
.team-login .field input{background:var(--invite-paper);color:var(--invite-ink);border-color:var(--invite-muted)}
.team-login .field input::placeholder{color:var(--invite-muted)}
.team-login .panel .button{background:var(--invite-ink);color:var(--invite-paper)}
.team-login .panel .button:hover{background:var(--invite-surface)}
.team-login .panel :focus-visible{outline:var(--team-focus-width) solid var(--invite-ink);outline-offset:var(--s1)}
@media(max-width:1000px){.team-login .login-layout{gap:var(--s5)}}

/* Approved Phase 2: team workspaces only. */
:root{--team-stat:clamp(28px,3vw,40px);--team-camera-max:480px;--team-result-title:clamp(28px,3vw,36px)}
.team-workspace{--ink:var(--invite-ink);--surface:var(--invite-surface);--paper:var(--invite-paper);--blue:var(--invite-gold);--muted:var(--invite-gold);--line:var(--team-line)}
.team-workspace .workspace-heading{margin-bottom:var(--s5)}
.team-workspace .workspace-heading h1{font-size:var(--team-title)}
.team-workspace .stats{margin-bottom:var(--s5)}
.team-workspace .stat strong{font-size:var(--team-stat)}
.team-workspace .camera,.team-workspace .camera-actions{width:100%;max-width:var(--team-camera-max);margin-inline:auto}
.team-workspace .result h2{font-size:var(--team-result-title)}
.team-workspace .field input,.team-workspace .field select,.team-workspace .search-input{color:var(--paper);border-color:var(--line)}
.team-workspace .badge:not(.good):not(.warn){background:var(--ink);color:var(--paper)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.guest-view select{width:auto}
.camera-label svg{width:var(--xl);height:var(--xl)}
.staff-grid:has(.result[hidden]){grid-template-columns:minmax(0,1fr);max-width:calc(var(--team-camera-max) + var(--s6) * 2);margin-inline:auto}
@media(max-width:1000px){.table-actions{flex-wrap:wrap}}
