:root{
    --primary:#1f4c8f;
    --primary-2:#2f6fbd;
    --primary-dark:#183b70;
    --primary-soft:#eef5ff;
    --accent:#f59931;
    --accent-dark:#d87912;
    --accent-soft:#fff4e5;
    --gold:var(--accent);
    --gold-soft:var(--accent-soft);
    --bg:#f7faff;
    --surface:#ffffff;
    --surface-soft:#f8fbff;
    --text:#0f172a;
    --muted:#64748b;
    --border:#dce7f4;
    --border-strong:#c7d8ec;
    --danger:#b42318;
    --danger-soft:#fff1f0;
    --success:#177245;
    --success-soft:#e9f8ef;
    --warning:#966000;
    --warning-soft:#fff4df;
    --purple:#6452a8;
    --purple-soft:#f1edff;
    --sidebar-width:268px;
    --mobile-topbar-height:58px;
    --mobile-nav-height:72px;
    --radius-sm:12px;
    --radius:18px;
    --radius-lg:24px;
    --shadow-soft:0 10px 30px rgba(31,76,143,.08);
    --shadow:0 20px 55px rgba(31,76,143,.12);
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{min-height:100vh;margin:0;color:var(--text);font-family:var(--font-family,Inter,ui-sans-serif,system-ui,sans-serif);font-size:.92rem;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 0 0,rgba(31,76,143,.13),transparent 28rem),radial-gradient(circle at 92% 4%,rgba(245,153,49,.10),transparent 22rem),linear-gradient(145deg,#f7faff 0%,#eef5ff 44%,#fff 100%);overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
img{max-width:100%}
::selection{background:rgba(31,76,143,.18)}
.app-main{padding-top:26px;padding-bottom:58px}
.admin-main{width:min(calc(100% - 40px),var(--content-width,1320px));margin:0 auto}
.public-main{padding-bottom:84px}
.app-alert{border:1px solid rgba(31,76,143,.10);border-radius:16px;box-shadow:var(--shadow-soft);font-weight:750}
.form-label{margin-bottom:.45rem;color:#334155;font-size:.82rem;font-weight:850}
.form-control,.form-select{min-height:46px;border:1px solid var(--border-strong);border-radius:13px;background:#fff;color:var(--text);font-size:.88rem;padding:.64rem .82rem;box-shadow:0 4px 12px rgba(31,76,143,.025)}
.form-control::placeholder{color:#94a3b8}
.form-control:focus,.form-select:focus{border-color:rgba(31,76,143,.62);box-shadow:0 0 0 .22rem rgba(31,76,143,.11)}
.form-control:disabled,.form-select:disabled{background:#f3f6fa;color:#8b98a9}
textarea.form-control{min-height:112px;resize:vertical}
.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:.58rem .92rem;border-radius:13px;font-size:.84rem;font-weight:850;line-height:1.1;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary-app,.action-primary,.open-event,.submit-registration,.save-event,.login-button,.filter-button,.assign-form .btn,.staff-header .btn,.lookup-form .btn,.result-actions .btn,.closed-lookup-btn{border:0;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:0 10px 22px rgba(31,76,143,.20)}
.btn-primary-app:hover,.action-primary:hover,.open-event:hover,.submit-registration:hover,.save-event:hover,.login-button:hover,.filter-button:hover,.assign-form .btn:hover,.staff-header .btn:hover,.lookup-form .btn:hover,.result-actions .btn:hover,.closed-lookup-btn:hover{color:#fff;background:linear-gradient(135deg,var(--primary-dark),var(--primary));box-shadow:0 14px 28px rgba(31,76,143,.24)}
.btn-secondary-soft,.action-light,.btn-light-app,.back-btn,.reset-button,.download-secondary{border:1px solid var(--border);background:rgba(255,255,255,.92);color:var(--primary-dark);box-shadow:0 8px 20px rgba(31,76,143,.06)}
.action-gold,.btn-gold-app{border:1px solid rgba(245,153,49,.22);background:linear-gradient(135deg,#f8b15c,var(--accent));color:#4f3210;box-shadow:0 10px 22px rgba(245,153,49,.16)}
.page-card,.admin-event-card,.registrations-card,.form-section,.scanner-card,.staff-card,.staff-form-card,.assign-card,.assigned-card,.logs-card,.lookup-card,.lookup-result-card,.ticket-card,.verify-card,.register-card{border:1px solid rgba(31,76,143,.11);background:rgba(255,255,255,.94);box-shadow:var(--shadow-soft);backdrop-filter:blur(12px)}
.status,.event-state,.permission-badge,.log-result{white-space:nowrap}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text)}
.table>:not(caption)>*>*{border-color:#edf2f8}
.table-responsive{scrollbar-width:thin;scrollbar-color:rgba(31,76,143,.28) transparent}
.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-thumb{border-radius:999px;background:rgba(31,76,143,.25)}
@media(max-width:900px){
    body{background:linear-gradient(180deg,#f7faff 0%,#f4f8ff 100%)}
    .app-main{padding-top:16px;padding-bottom:calc(var(--mobile-nav-height) + 34px + env(safe-area-inset-bottom))}
    .admin-main{width:min(calc(100% - 20px),var(--content-width,1320px))}
    .public-main{width:100%;max-width:none;padding-left:12px;padding-right:12px}
    .form-control,.form-select{min-height:48px;font-size:16px}
    textarea.form-control{font-size:16px}
    .btn{min-height:44px}
}
