:root{--blue:#003b78;--yellow:#ffc400;--dark:#080808;--red:#d71920;--light:#f5f7fb}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(160deg,#070707,#19283b);color:#fff;min-height:100vh}.page{max-width:470px;margin:0 auto;padding:22px}.card{background:#fff;color:#202020;border-radius:22px;box-shadow:0 20px 50px rgba(0,0,0,.35);overflow:hidden}.hero{background:#030303;text-align:center;padding:28px 22px 20px}.logo{width:150px;max-width:75%;margin-bottom:12px}.tag{color:var(--yellow);font-weight:800;letter-spacing:.06em}.content{padding:24px}.headline{text-align:center;margin:0 0 8px;color:var(--blue)}.sub{text-align:center;color:#666;margin:0 0 20px}.field{margin-bottom:14px}label{display:block;font-weight:700;margin-bottom:6px}input,select{width:100%;padding:13px;border:1px solid #ddd;border-radius:12px;font-size:16px}.check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;color:#444}.check input{width:auto;margin-top:4px}.btn{width:100%;background:var(--yellow);color:#111;font-weight:900;border:0;border-radius:14px;padding:15px;font-size:17px;cursor:pointer}.promo{background:#fff4c8;border-radius:16px;padding:14px;margin:18px 0;color:#111;text-align:center}.foot{text-align:center;font-size:12px;color:#777;padding:14px 20px 22px}.error{background:#ffe2e2;color:#9a1111;border-radius:10px;padding:10px;margin-bottom:15px}.success{text-align:center}.timer{font-size:42px;font-weight:900;color:var(--blue);margin:18px 0}.admin{max-width:1100px;margin:0 auto;padding:28px;color:#111}.admin-card{background:white;border-radius:18px;padding:22px;margin-bottom:20px;box-shadow:0 8px 30px rgba(0,0,0,.08)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.metric{background:#f7f9fc;border-radius:16px;padding:18px}.metric strong{font-size:32px;color:var(--blue)}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid #eee;text-align:left}.admin-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.link{color:var(--blue);font-weight:700;text-decoration:none}
.promo-card{
background:#fff7e6;
border:2px solid #f7b500;
border-radius:18px;
padding:18px;
margin:20px 0;
text-align:center;
}

.promo-card h2{
margin:15px 0 10px;
color:#111;
font-size:24px;
}

.promo-card p{
font-size:16px;
line-height:1.6;
}

.promo-image{
width:100%;
max-width:420px;
border-radius:14px;
display:block;
margin:auto;
}
/* iPhone captive-portal fixes */
html,
body {
    width: 100%;
    height: auto;
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
}

body {
    min-height: 100dvh;
}

.page {
    width: 100%;
    min-height: 100%;
    padding-bottom: 80px;
}

.card {
    overflow: visible;
}

input,
select,
button,
textarea {
    position: relative;
    z-index: 2;
    pointer-events: auto;
    touch-action: manipulation;
}

input,
textarea {
    -webkit-user-select: text;
    user-select: text;
    font-size: 16px;
}

@media (max-width: 480px) {
    .page {
        padding: 10px;
        padding-bottom: 100px;
    }

    .content {
        padding: 18px;
    }
}