:root{--green:#173b31;--green2:#285d49;--cream:#f3f1e9;--gold:#c7a86f;--ink:#1e332b;--muted:#78867f;--line:#dfe6df;--red:#a94035;--ok:#1e7a4d}*{box-sizing:border-box}html{background:#f5f6f2}body{margin:0;color:var(--ink);font:14px 'DM Sans',Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}[hidden]{display:none!important}:focus-visible{outline:3px solid #79b494;outline-offset:3px}.gate-login{min-height:100dvh;display:grid;grid-template-columns:54% 46%;background:#fff}.login-visual{position:relative;background:linear-gradient(180deg,rgba(7,27,21,.12),rgba(10,42,31,.88)),url('/assets/images/night-wedding.webp') center/cover;color:#fff}.visual-copy{position:absolute;left:10%;bottom:10%;max-width:600px}.visual-copy>span,.kicker,.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:700}.visual-copy>span{color:#e3cda6}.visual-copy h1{font:500 clamp(44px,5vw,76px)/.94 'Cormorant Garamond',Georgia,serif;margin:24px 0}.visual-copy h1 em{color:#ead8b7}.visual-copy p{max-width:430px;line-height:1.8;color:#dce8e1}.login-panel{position:relative;padding:70px clamp(35px,8vw,130px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.back{position:absolute;top:32px;color:#77867e;text-decoration:none;font-size:12px}.logo{width:180px;height:135px;object-fit:contain;object-position:left}.kicker{color:#789083;margin-top:10px}.login-panel h2{font:500 clamp(42px,4vw,58px)/1 'Cormorant Garamond',Georgia,serif;margin:18px 0 10px}.login-panel>p{color:var(--muted);line-height:1.7;margin:0 0 28px}.login-panel form{width:100%;max-width:440px}.login-panel label,.manual-card label{display:block;font-size:12px;font-weight:700;margin:0 0 18px}.login-panel input,.manual-card input,.hero select{width:100%;padding:15px;border:1px solid #d6dfd7;border-radius:8px;background:#fff;color:var(--ink);margin-top:9px}.password-row{position:relative}.password-row input{padding-right:78px}.password-row button{position:absolute;right:7px;bottom:7px;border:0;background:#edf3ee;color:var(--green2);padding:8px 10px;border-radius:5px;font-size:11px;font-weight:700}.main-button,.manual-card button{width:100%;border:0;background:var(--green2);color:#fff;padding:16px 18px;border-radius:7px;font-weight:700;display:flex;justify-content:space-between}.main-button:disabled{opacity:.6}.form-error{background:#fff0ed;color:#8d2e26;padding:12px;border-radius:6px;margin-bottom:13px}.help-link{margin-top:20px;color:#315f4c;font-weight:700;font-size:12px}.login-panel>small{margin-top:28px;color:#8a968f;line-height:1.7;max-width:420px}.gate-app{min-height:100vh}.gate-app header{height:78px;background:var(--green);color:#fff;padding:0 clamp(20px,5vw,70px);display:flex;align-items:center;justify-content:space-between}.mini-brand{display:flex;align-items:center;color:#fff;text-decoration:none;gap:13px}.mini-brand img{width:82px;height:57px;object-fit:contain;filter:brightness(0) invert(1)}.mini-brand span{font-size:9px;letter-spacing:2px;font-weight:700}.operator{display:flex;align-items:center;gap:12px}.operator div{display:flex;flex-direction:column}.operator b{font-size:11px}.operator small{color:#b9cec2;font-size:9px;margin-top:3px}.operator button{color:#fff;background:transparent;border:1px solid #507265;border-radius:6px;padding:8px 12px;font-size:11px}.online{width:8px;height:8px;background:#5ee38d;border-radius:50%;box-shadow:0 0 0 4px rgba(94,227,141,.13)}.online.off{background:#e19854}.gate-app main{max-width:1240px;margin:auto;padding:46px 25px 100px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:28px}.hero h1{font:500 clamp(38px,5vw,62px)/1 'Cormorant Garamond',Georgia,serif;margin:12px 0}.hero p{color:var(--muted)}.hero label{font-size:11px;font-weight:700;min-width:min(360px,100%)}.event-card{padding:24px 28px;border-radius:12px;background:linear-gradient(135deg,#173b31,#285a49);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px}.event-state{font-size:9px;letter-spacing:2px;color:#c5d8cd}.event-card h2{margin:10px 0 8px;font-size:23px}.event-card p{color:#c3d2ca;margin:0}.event-status{background:#d9c28f;color:#254436;padding:8px 12px;border-radius:50px;font-size:10px;font-weight:700;text-transform:uppercase}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}.stats article,.progress-card,.manual-card,.history-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:21px}.stats span{display:block;font-size:10px;color:var(--muted);font-weight:600}.stats strong{display:block;font:600 38px 'Cormorant Garamond',Georgia,serif;margin-top:13px}.stats .accent{background:#e9f2eb;border-color:#d2e4d7}.progress-card>div:first-child{display:flex;justify-content:space-between}.progress{height:8px;margin-top:13px;background:#e8ece8;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2f7657,#c2a66e);transition:width .4s}.scan-launch{width:100%;border:0;background:#c2a66e;color:#17372e;border-radius:12px;padding:23px 26px;display:flex;align-items:center;gap:18px;text-align:left;box-shadow:0 12px 35px rgba(109,87,49,.17)}.scan-launch span:nth-child(2){display:flex;flex-direction:column}.scan-launch b{font-size:16px}.scan-launch small{font-size:10px;margin-top:5px}.scan-launch>i{margin-left:auto;font-size:20px}.scan-icon{font-size:30px}.scanner-panel{background:#102820;color:#fff;border-radius:12px;padding:22px;margin-top:16px}.scanner-head{display:flex;justify-content:space-between;align-items:center}.scanner-head span{font-size:9px;letter-spacing:2px;color:#9fc0ae}.scanner-head h2{margin:7px 0 15px}.scanner-head button{border:1px solid #45685b;color:#fff;background:transparent;border-radius:6px;padding:8px 12px}.scanner-panel p{text-align:center;color:#bad0c4}.scanner-panel #qr-reader{overflow:hidden;border-radius:10px;border:0!important;background:#071611}.scanner-panel #qr-reader video{object-fit:cover}.result-panel{margin-top:16px;padding:25px;border-radius:12px;color:#fff}.result-panel.accepted{background:#207048}.result-panel.rejected{background:#9c3e36}.result-panel .result-tag{font-size:10px;letter-spacing:2px;font-weight:700}.result-panel h2{font:600 35px/1 'Cormorant Garamond',Georgia,serif;margin:10px 0}.result-panel dl{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}.result-panel dl div{background:rgba(255,255,255,.1);padding:12px;border-radius:7px}.result-panel dt{font-size:9px;opacity:.72}.result-panel dd{margin:5px 0 0;font-weight:700}.result-panel button{border:0;background:#fff;color:var(--green);padding:12px 16px;border-radius:6px;font-weight:700}.lower-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:16px;margin-top:16px}.manual-card h2,.history-card h2{margin:8px 0;font-size:18px}.manual-card p{color:var(--muted);line-height:1.6}.manual-card button{justify-content:center}.section-title{display:flex;justify-content:space-between}.section-title button{border:0;background:#edf3ee;color:#315d49;width:34px;height:34px;border-radius:50%}.history-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0ec}.history-item:last-child{border:0}.history-dot{width:9px;height:9px;border-radius:50%;background:#2c8b58}.history-dot.fail{background:#b14d42}.history-item b{display:block;font-size:12px}.history-item small{color:var(--muted)}.history-item time{font-size:10px;color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:25px}.eyebrow{color:#819288}@media(max-width:800px){.gate-login{grid-template-columns:1fr}.login-visual{display:none}.login-panel{min-height:100dvh;padding:80px 28px 40px}.gate-app header{height:68px;padding:0 16px}.mini-brand img{width:60px}.mini-brand span{display:none}.operator div{display:none}.gate-app main{padding:28px 15px 70px}.hero{display:block}.hero label{display:block;margin-top:24px}.event-card{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:repeat(2,1fr)}.stats article{padding:17px}.stats strong{font-size:32px}.lower-grid{grid-template-columns:1fr}.scan-launch{position:sticky;bottom:12px;z-index:4}.result-panel dl{grid-template-columns:1fr}.scanner-panel{padding:14px}}
