@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
    --navy-950:#06172d; --navy-900:#0a2445; --navy-800:#103765;
    --blue-600:#2563eb; --blue-500:#3b82f6; --indigo:#635bff;
    --green:#0f9f6e; --red:#d92d20; --amber:#f59e0b;
    --ink:#12213a; --muted:#667085; --line:#e5eaf2; --canvas:#f4f7fc;
    --surface:#fff; --radius:16px; --shadow:0 14px 36px rgba(18,33,58,.09);
}
.event-card .event-meta{grid-template-columns:repeat(4,minmax(0,1fr))}.event-card .event-meta>div{display:flex;flex-direction:column}.event-card .event-meta span{min-height:2.05em;line-height:1.05}.event-card .event-meta strong{margin-top:.4rem}.event-meta .allocated-total{background:#f2f6ff}.event-meta .allocated-total strong{color:#285bc5}.event-card .event-meta .collection-total{grid-column:auto}@media(max-width:575.98px){.event-card .event-meta{grid-template-columns:1fr 1fr}}

* { box-sizing:border-box }
.event-qr-options{display:grid;gap:.7rem}.event-qr-option{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid #dce5f2;border-radius:14px;color:#16345d;text-decoration:none;background:#f8faff;transition:.16s}.event-qr-option:hover{border-color:#8eb4ff;background:#eef4ff;transform:translateY(-1px)}.event-qr-option span:not(.event-qr-icon){display:flex;flex-direction:column;gap:.15rem}.event-qr-option small{color:#6b7890}.event-qr-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#3182f6,#5147eb)}
.card-photo-control{display:flex;align-items:center;gap:.75rem;min-height:54px}.card-photo-control small{display:block;margin-top:.25rem;color:#748198;font-size:.7rem}.card-photo-preview{width:54px;height:54px;flex:0 0 54px;border-radius:50%;display:grid;place-items:center;overflow:hidden;border:2px solid #dce6f5;background:#eef3ff;color:#5472ac;font-size:1.25rem}.card-photo-preview img{display:none;width:100%;height:100%;object-fit:cover}.card-photo-preview.has-image img{display:block}.card-photo-preview.has-image i{display:none}.profile-crop-stage{position:relative;width:min(100%,360px);aspect-ratio:1;margin:auto;overflow:hidden;border-radius:16px;background:#14243b;touch-action:none}.profile-crop-stage canvas{display:block;width:100%;height:100%;cursor:grab}.profile-crop-stage canvas:active{cursor:grabbing}.profile-crop-guide{position:absolute;inset:8px;border:2px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 999px rgba(0,0,0,.25);pointer-events:none}.member-avatar.has-photo{padding:0;overflow:hidden}.member-avatar.has-photo img{width:100%;height:100%;object-fit:cover}
.map-photo-field{display:flex!important;flex-direction:column;align-items:center!important;justify-content:center!important;gap:.2rem;background:rgba(76,110,190,.2)!important;overflow:hidden}.map-photo-field>i:not(.resize-handle){font-size:1.5rem}.map-photo-field>b{font-size:.58rem}.map-barcode-field{display:flex!important;flex-direction:column;align-items:center!important;justify-content:center!important;gap:.15rem;background:#fff!important;color:#111!important}.mapper-barcode-bars{display:block;width:88%;height:58%;background:repeating-linear-gradient(90deg,#111 0 2px,transparent 2px 4px,#111 4px 5px,transparent 5px 8px)}.map-barcode-field>b{font-size:.55rem}
.beneficiary-card-table th:first-child,.beneficiary-card-table td:first-child{text-align:center!important}.beneficiary-card-table td:first-child{font-variant-numeric:tabular-nums}.beneficiary-card-table .member-avatar{border-radius:50%}.beneficiary-card-table .member-avatar.has-photo{padding:0;overflow:hidden;border:2px solid #d8e5f7;background:#fff}.beneficiary-card-table .member-avatar.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%}
html { scroll-behavior:smooth }
body { margin:0; font-family:Inter,system-ui,sans-serif; background:var(--canvas); color:var(--ink); -webkit-font-smoothing:antialiased }

/* Authentication */
.auth-bg,.terminal-bg { min-height:100vh; background:
    radial-gradient(circle at 12% 5%,rgba(59,130,246,.42),transparent 30%),
    radial-gradient(circle at 90% 90%,rgba(99,91,255,.3),transparent 32%),
    linear-gradient(145deg,var(--navy-950),var(--navy-800)); }
.auth-bg:before,.terminal-bg:before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:38px 38px }
.login-card { max-width:470px; width:100%; border-radius:26px!important; box-shadow:0 30px 70px rgba(0,0,0,.28)!important; overflow:hidden; position:relative }
.login-card:before { content:""; display:block; height:5px; background:linear-gradient(90deg,var(--blue-500),var(--indigo),#8b5cf6) }
.logo-mark { display:grid; place-items:center; width:58px; height:58px; border-radius:18px; background:linear-gradient(135deg,var(--blue-500),var(--indigo)); color:#fff; font-weight:800; font-size:20px; letter-spacing:.04em; box-shadow:0 12px 25px rgba(59,130,246,.35) }

/* Shell and navigation */
.sidebar { position:sticky; top:0; width:260px; min-height:100vh; flex:0 0 260px; background:
    radial-gradient(circle at 10% 0,rgba(59,130,246,.3),transparent 25%),
    linear-gradient(180deg,var(--navy-900),var(--navy-950)); display:flex; flex-direction:column; box-shadow:12px 0 35px rgba(6,23,45,.13); z-index:20 }
.brand { font-size:23px; font-weight:800; letter-spacing:-.03em; padding:.6rem .7rem; color:#fff }
.brand:before { content:"AV"; display:inline-grid; place-items:center; width:39px; height:39px; margin-right:10px; border-radius:12px; background:linear-gradient(135deg,#60a5fa,#635bff); font-size:13px; letter-spacing:.04em; vertical-align:middle; box-shadow:0 8px 18px rgba(59,130,246,.35) }
.brand small { display:block; margin:5px 0 0 51px; font-size:9px; font-weight:600; opacity:.58; letter-spacing:.08em; text-transform:uppercase }
.sidebar .nav { padding-top:.5rem }
.sidebar a { position:relative; color:#b9cbe1; text-decoration:none; padding:.82rem 1rem; border:1px solid transparent; border-radius:12px; font-size:.91rem; font-weight:600; transition:.2s ease }
.sidebar a { display:flex; align-items:center; gap:12px }
.sidebar a i { display:grid; place-items:center; flex:0 0 31px; width:31px; height:31px; border-radius:9px; color:#8faac8; background:rgba(255,255,255,.055); font-size:.93rem; transition:.2s ease }
.sidebar a:hover { color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.07); transform:translateX(3px) }
.sidebar a:hover i { color:#fff; background:rgba(96,165,250,.18); transform:scale(1.06) }
.sidebar a.active { color:#fff; background:linear-gradient(135deg,rgba(59,130,246,.28),rgba(99,91,255,.2)); border-color:rgba(130,174,255,.2); box-shadow:0 8px 20px rgba(0,0,0,.12) }
.sidebar a.active i { color:#fff; background:linear-gradient(135deg,#4695fa,#635bff); box-shadow:0 6px 14px rgba(40,105,220,.34) }
.sidebar-group{margin:.35rem 0;padding:.8rem .65rem .7rem;border:1px solid rgba(144,178,215,.14);border-radius:15px;background:rgba(8,35,66,.34)}.sidebar-group-title{padding:0 .35rem .55rem;color:#fff;font-size:.67rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.sidebar-group-links{position:relative;display:flex;flex-direction:column;gap:.18rem;padding-left:.55rem}.sidebar-group-links:before{content:"";position:absolute;left:.2rem;top:.15rem;bottom:.15rem;width:1px;background:rgba(137,174,216,.22)}.sidebar-group .sidebar-group-links a{padding:.66rem .65rem;border-radius:10px;font-size:.8rem}.sidebar-group .sidebar-group-links a i{width:27px;height:27px;flex-basis:27px;background:transparent;color:#9ecbf8}.sidebar-group .sidebar-group-links a.active i{background:rgba(255,255,255,.13);color:#fff;box-shadow:none}
.main { min-width:0; min-height:100vh; display:flex; flex-direction:column }
.main main { flex:1; max-width:1600px; width:100%; margin:0 auto }
.topbar { min-height:72px; background:rgba(255,255,255,.88); border-bottom:1px solid rgba(222,229,239,.85); backdrop-filter:blur(16px); position:sticky; top:0; z-index:15 }
.topbar strong { font-weight:750 }
.topbar small { font-size:.7rem; font-weight:650; text-transform:uppercase; letter-spacing:.06em }
.user-chip { display:flex; align-items:center; gap:.65rem; padding:.38rem .75rem .38rem .4rem; border:1px solid #e2e8f0; border-radius:999px; background:#fff; color:#56647a; font-size:.76rem; font-weight:700; box-shadow:0 5px 14px rgba(18,33,58,.06) }
.user-avatar { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#3b82f6,#635bff); color:#fff; font-size:.82rem; font-weight:800; box-shadow:0 5px 12px rgba(59,130,246,.24) }
.topbar-logout-form{margin:0}.topbar-logout-btn{display:flex;align-items:center;gap:.42rem;min-height:42px;padding:.5rem .75rem;border:1px solid #f1c8c5;color:#b42318;background:#fff5f4;box-shadow:none}.topbar-logout-btn:hover{color:#fff;background:#d92d20;border-color:#d92d20;transform:translateY(-1px);box-shadow:0 7px 16px rgba(217,45,32,.2)}
.table tbody td>a:not(.btn){color:#204d93;text-decoration:none;font-weight:750;transition:.16s}.table tbody td>a:not(.btn):hover{color:#245fe5}.table tbody td:first-child>a:not(.btn){display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .55rem;border-radius:9px;background:#f0f5ff}.table tbody td:first-child>a:not(.btn):before{content:"\f1f4";font-family:"bootstrap-icons";color:#4474d8;font-size:.8rem}.table th.text-center,.table td.text-center{text-align:center!important}.table td.text-center .member-status,.table td.text-center .event-status,.table td.text-center .badge{margin-inline:auto}.table tbody tr{transition:background-color .15s}.table tbody tr:hover>td{background-color:#f8faff}
.topbar-actions { display:flex; align-items:center; gap:.7rem }
.working-year-form { display:flex; align-items:center; gap:.55rem; padding:.34rem .42rem .34rem .7rem; background:linear-gradient(135deg,#f7faff,#f3f1ff); border:1px solid #dce5f4; border-radius:13px; box-shadow:0 5px 14px rgba(18,33,58,.06) }
.working-year-form label { display:flex; align-items:center; gap:.42rem; margin:0; color:#586984; font-size:.7rem; font-weight:750; text-transform:uppercase; letter-spacing:.045em; white-space:nowrap }
.working-year-form label i { color:#326ce5; font-size:.9rem }
.working-year-form .form-select { width:126px; min-height:34px; height:34px; padding:.25rem 1.9rem .25rem .58rem; border:0; background-color:#fff; color:#213a61; font-size:.8rem; font-weight:800; box-shadow:0 2px 8px rgba(18,33,58,.07); cursor:pointer }

/* Typography and surfaces */
h1,h2,h3 { letter-spacing:-.035em }
.h3 { font-weight:800; color:#10213b }
.card { border-radius:var(--radius)!important }
.card.shadow-sm { box-shadow:var(--shadow)!important }
.metric-card,.terminal-stat { position:relative; overflow:hidden; background:linear-gradient(145deg,#fff,#fafdff); border:1px solid rgba(222,229,239,.9); border-radius:18px; padding:1.35rem; box-shadow:0 9px 25px rgba(24,52,88,.07); min-height:122px; transition:transform .22s,box-shadow .22s }
.metric-card:after,.terminal-stat:after { content:""; position:absolute; right:-25px; top:-28px; width:88px; height:88px; border-radius:50%; background:linear-gradient(135deg,rgba(59,130,246,.13),rgba(99,91,255,.05)) }
.metric-card:hover { transform:translateY(-4px); box-shadow:0 16px 34px rgba(24,52,88,.12) }
.metric-card span,.terminal-stat span { display:block; color:var(--muted); font-size:.79rem; font-weight:650; text-transform:uppercase; letter-spacing:.045em }
.metric-card strong,.terminal-stat strong { position:relative; z-index:1; display:block; font-size:1.75rem; margin-top:.6rem; color:#102a4c; letter-spacing:-.045em }
.terminal-stat small{position:relative;z-index:1;display:block;margin-top:.3rem;color:#8a96a8;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.metric-card.compact { min-height:100px; padding:1.05rem 1.2rem }
.metric-card.compact strong { font-size:1.5rem; margin-top:.35rem }
.member-name { display:flex; align-items:center; gap:.65rem }
.member-avatar { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:10px; color:#3158b4; background:linear-gradient(135deg,#e8f1ff,#e8e9ff); font-size:.78rem; font-weight:800 }
.member-status { display:inline-flex; align-items:center; gap:.38rem; padding:.4rem .65rem; border-radius:999px; font-size:.73rem; font-weight:750 }
.member-status.is-active { color:#087653; background:#d8f7e9 }
.member-status.is-inactive { color:#667085; background:#e9edf3 }
.member-inactive td { color:#7b8798; background:#fafbfc }
.usage-track{width:90px;height:5px;margin-top:.38rem;overflow:hidden;border-radius:999px;background:#e8edf5}.usage-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#635bff)}
.year-card{display:flex;gap:1rem;height:100%;padding:1.25rem;border:1px solid #e2e8f1;border-radius:17px;background:linear-gradient(145deg,#fff,#f9fbff);box-shadow:0 9px 25px rgba(24,52,88,.07);transition:.2s}.year-card:hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(24,52,88,.11)}.year-icon{display:grid;place-items:center;width:45px;height:45px;flex:0 0 45px;border-radius:13px;color:#fff;background:linear-gradient(135deg,#3b82f6,#635bff);box-shadow:0 8px 17px rgba(59,130,246,.25)}.year-accounts{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .65rem;border-radius:9px;color:#355b9b;background:#edf4ff;font-size:.72rem}
.settings-year{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem .9rem;border:1px solid #d8e4f5;border-radius:12px;color:#5b6d89;background:#f7faff;font-size:.78rem}.settings-year i{color:#326ce5}.settings-year strong{color:#1e3a65}.settings-menu-title{padding:.35rem .6rem .75rem;color:#8995a8;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.settings-menu a{display:flex;align-items:center;gap:.75rem;padding:.85rem;border-radius:12px;color:#41536f;text-decoration:none}.settings-menu a.active{color:#214d9b;background:linear-gradient(135deg,#edf5ff,#f0efff)}.settings-menu a>i:first-child{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#3b82f6,#635bff)}.settings-menu a span small{display:block;margin-top:.15rem;color:#7a879a;font-size:.68rem}.series-preview{position:relative;overflow:hidden;padding:1.35rem;border-radius:18px;color:#fff;background:linear-gradient(135deg,#153d73,#4c46c7);box-shadow:0 16px 30px rgba(34,70,140,.25)}.series-preview:after{content:"";position:absolute;width:120px;height:120px;right:-35px;top:-45px;border:1px solid rgba(255,255,255,.2);border-radius:50%}.series-preview span,.series-preview strong,.series-preview small{display:block;position:relative;z-index:1}.series-preview span{font-size:.68rem;opacity:.72;text-transform:uppercase;letter-spacing:.08em}.series-preview strong{margin:.55rem 0;font-size:1.55rem;letter-spacing:.04em}.series-preview small{opacity:.72}.settings-icon{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:15px;color:#fff;background:linear-gradient(135deg,#3b82f6,#635bff);box-shadow:0 9px 19px rgba(59,130,246,.28);font-size:1.2rem}.series-info{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid #e1e7f0;border-radius:13px;background:#e1e7f0}.series-info>div{padding:1rem;background:#f8faff}.series-info span,.series-info strong{display:block}.series-info span{color:#7b8798;font-size:.68rem;font-weight:700;text-transform:uppercase}.series-info strong{margin-top:.3rem;color:#213c67}@media(max-width:575px){.series-info{grid-template-columns:1fr}.settings-year{width:100%;justify-content:center}}

/* Professional buttons */
.btn { position:relative; overflow:hidden; border-radius:11px; font-weight:700; letter-spacing:-.01em; padding:.62rem 1.08rem; border-width:1px; transition:transform .18s ease,box-shadow .18s ease,filter .18s ease }
.btn:not(:disabled):hover { transform:translateY(-2px) }
.btn:not(:disabled):active { transform:translateY(0); box-shadow:none!important }
.btn-primary { border-color:#2563eb; background:linear-gradient(135deg,#3b82f6 0%,#2563eb 48%,#4f46e5 100%); color:#fff; box-shadow:0 8px 18px rgba(37,99,235,.25) }
.btn-primary:hover,.btn-primary:focus { border-color:#1d4ed8; filter:saturate(1.12); box-shadow:0 12px 23px rgba(37,99,235,.34)!important }
.btn-success { border-color:#0d9666; background:linear-gradient(135deg,#18b981,#087b5a); color:#fff; box-shadow:0 8px 18px rgba(15,159,110,.24) }
.btn-success:hover { border-color:#087b5a; box-shadow:0 12px 23px rgba(15,159,110,.32)!important }
.btn-outline-primary { color:#245ed2; border-color:#bfd1f7; background:#f6f9ff; box-shadow:0 4px 10px rgba(37,99,235,.07) }
.btn-outline-primary:hover { color:#fff; border-color:#2563eb; background:linear-gradient(135deg,#3b82f6,#4f46e5); box-shadow:0 9px 18px rgba(37,99,235,.22) }
.btn-outline-success { color:#087b5a; border-color:#a9ddca; background:#f1fbf7 }
.btn-outline-success:hover { background:linear-gradient(135deg,#18b981,#087b5a); border-color:#087b5a; color:#fff }
.btn-outline-danger { color:#b42318; border-color:#f5b7b2; background:#fff7f6 }
.btn-outline-danger:hover { background:linear-gradient(135deg,#ef5b50,#c9261b); border-color:#c9261b; color:#fff }
.btn-soft-danger { color:#b42318; border-color:transparent; background:#fff0ef; box-shadow:none }
.btn-soft-danger:hover { color:#fff; background:linear-gradient(135deg,#e9574d,#c9261b); border-color:#c9261b; box-shadow:0 8px 16px rgba(180,35,24,.2) }
.member-actions { display:flex; align-items:center; justify-content:flex-end; gap:.42rem; white-space:nowrap }
.member-actions form { display:inline-flex; margin:0 }
.member-actions .btn { min-height:34px; display:inline-flex; align-items:center; justify-content:center }
.btn-light { background:#fff; border-color:#dce3ed; color:#344054; box-shadow:0 5px 12px rgba(17,37,64,.07) }
.btn-lg { padding:.82rem 1.35rem; border-radius:13px }
.btn-sm { padding:.46rem .8rem; border-radius:9px }
.sidebar .btn-outline-light { color:#d7e4f2; background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.15); box-shadow:none }
.sidebar .btn-outline-light:hover { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.26) }

/* Forms and modals */
.form-label { color:#344054; font-size:.83rem; font-weight:700; margin-bottom:.45rem }
.form-control,.form-select,.input-group-text { min-height:44px; border-color:#d8e0eb; border-radius:11px; background-color:#fbfcfe; color:#172b4d; transition:border-color .18s,box-shadow .18s,background .18s }
.form-control:hover,.form-select:hover { border-color:#b9c7db; background:#fff }
.form-control:focus,.form-select:focus { border-color:#4b83ef; background:#fff; box-shadow:0 0 0 4px rgba(59,130,246,.12) }
.input-group>.input-group-text { border-radius:11px 0 0 11px; background:#eef4ff; color:#2563eb; font-weight:800 }
.modal-content { border:0; border-radius:21px; overflow:hidden; box-shadow:0 28px 75px rgba(8,29,56,.27) }
.modal-header { padding:1.2rem 1.4rem; background:linear-gradient(135deg,#f8fbff,#f1f5ff); border-bottom:1px solid #e5eaf2 }
.modal-title { font-weight:800; color:#142b4b }
.modal-body { padding:1.4rem }
.modal-footer { padding:1rem 1.4rem; background:#fafcff; border-top-color:#e8edf4 }
.alert { border:0; border-radius:13px; font-weight:600; box-shadow:0 7px 18px rgba(18,33,58,.06) }

/* Tables and status */
.table-responsive { border-radius:var(--radius) }
.table { --bs-table-bg:transparent }
.table thead th { font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:#65738a; background:#f5f8fc; border-bottom:1px solid #dfe6ef; padding:1rem }
.table td { padding:1rem; border-color:#edf1f6; vertical-align:middle }
.table tbody tr { transition:background .16s }
.table tbody tr:hover { background:#f7faff }
.table code { padding:.25rem .48rem; border-radius:7px; color:#3158b4; background:#edf3ff; font-weight:700 }
.badge { border-radius:999px; padding:.45rem .7rem; font-weight:750; letter-spacing:.02em }
.status-active { background:#d8f7e9; color:#087653 }
.status-draft { background:#eaf0f7; color:#475467 }
.status-closed,.status-cancelled { background:#fee4e2; color:#b42318 }
.event-status{display:inline-flex!important;align-items:center;align-self:flex-start;gap:.4rem;flex:0 0 auto;width:auto!important;height:30px!important;min-width:0!important;padding:.4rem .68rem!important;border-radius:999px!important;font-size:.7rem;font-weight:800;line-height:1;letter-spacing:.045em;white-space:nowrap}.event-status i{font-size:.72rem}.event-status.status-active{border:1px solid #a9e8ce;background:#ddf8ec;color:#067653;box-shadow:0 4px 10px rgba(15,159,110,.1)}.event-status.status-draft{border:1px solid #d7dee8;background:#f0f3f7;color:#556274}.event-status.status-closed,.event-status.status-cancelled{border:1px solid #f2c6c2;background:#fff0ef;color:#b42318}
.event-card{overflow:hidden}.event-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;margin-top:.75rem;border:1px solid #e5eaf2;border-radius:12px;background:#e5eaf2}.event-meta>div{padding:.8rem 1rem;background:#f8faff}.event-meta span,.event-meta strong{display:block}.event-meta span{color:#7b8798;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.event-meta strong{margin-top:.25rem;color:#18365f;font-size:1.05rem}.event-meta .collection-total{background:linear-gradient(135deg,#edf9f4,#e8f7ff)}.event-meta .collection-total span{color:#408069}.event-meta .collection-total strong{color:#087653}.event-actions{display:flex;align-items:center;gap:.42rem}.event-actions form{display:inline-flex;margin:0}@media(max-width:575px){.event-meta{grid-template-columns:1fr 1fr}.event-meta .collection-total{grid-column:1/-1}}
.btn-event-report{color:#7a5800;border:1px solid #f4d780;background:linear-gradient(135deg,#fff9df,#fff2b8);box-shadow:0 5px 12px rgba(195,145,0,.12)}.btn-event-report:hover{color:#fff;border-color:#d99b00;background:linear-gradient(135deg,#f5b91d,#d99100);box-shadow:0 8px 17px rgba(200,140,0,.24)}
.event-metric{position:relative;overflow:hidden;min-height:132px;padding:1.1rem;border:1px solid #e3e9f2;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(24,52,88,.07)}.event-metric>i{display:grid;place-items:center;width:34px;height:34px;margin-bottom:.7rem;border-radius:10px;color:#2563eb;background:#eaf2ff}.event-metric span,.event-metric strong{display:block}.event-metric span{color:#748197;font-size:.67rem;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.event-metric strong{margin-top:.28rem;color:#17345c;font-size:1.25rem;letter-spacing:-.03em}.metric-green>i,.metric-emerald>i{color:#087653;background:#ddf8ec}.metric-cyan>i{color:#087c93;background:#e2f7fb}.metric-indigo>i{color:#574ad4;background:#eeecff}.metric-amber>i{color:#a66b00;background:#fff4d5}.completion-number{font-size:1.8rem;color:#2563eb}.event-progress{height:12px;overflow:hidden;border-radius:999px;background:#e8edf5}.event-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#635bff);box-shadow:0 0 12px rgba(59,130,246,.35)}.progress-detail{padding:.7rem .85rem;border-radius:11px;background:#f4f7fb}.progress-detail span,.progress-detail strong{display:block}.progress-detail span{color:#7b8798;font-size:.65rem;font-weight:750;text-transform:uppercase}.progress-detail strong{margin-top:.2rem;color:#243f68}.progress-detail.success{background:#eaf9f3}.progress-detail.success strong{color:#087653}.progress-detail.pending{background:#fff5e4}.progress-detail.pending strong{color:#a66b00}.event-report-tabs{padding:1rem 1.2rem;border:0;background:#f8faff}.event-report-tabs .nav{gap:.5rem}.event-report-tabs .nav-link{border-radius:10px;color:#637087;font-size:.8rem;font-weight:750}.event-report-tabs .nav-link span{margin-left:.45rem;padding:.2rem .42rem;border-radius:999px;background:#e7edf6}.event-report-tabs .nav-link.active{background:linear-gradient(135deg,#3b82f6,#4f46e5);box-shadow:0 7px 15px rgba(37,99,235,.22)}.event-report-tabs .nav-link.active span{background:rgba(255,255,255,.2)}.report-table-heading{display:flex;justify-content:space-between;align-items:center;padding:1.25rem}.report-table-heading h3{margin:0 0 .2rem;font-size:1rem;font-weight:800}.report-table-heading p{margin:0;color:#7b8798;font-size:.75rem}.report-list-count{padding:.42rem .65rem;border-radius:999px;font-size:.7rem;font-weight:800}.report-list-count.collected{color:#087653;background:#ddf8ec}.report-list-count.pending{color:#946000;background:#fff1cc}.empty-report{padding:3rem!important;text-align:center!important;color:#8a96a8!important}.empty-report i,.empty-report span{display:block}.empty-report i{margin-bottom:.6rem;font-size:1.8rem}.empty-report.success{color:#087653!important}

/* Terminal */
.terminal-shell { max-width:680px }
.event-strip,.terminal-card { background:rgba(255,255,255,.97); border:1px solid rgba(255,255,255,.7); border-radius:21px; padding:1.35rem; box-shadow:0 16px 38px rgba(0,0,0,.18) }
.event-strip { position:relative; overflow:hidden }
.event-strip:after { content:""; position:absolute; width:110px; height:110px; border-radius:50%; right:-35px; top:-42px; background:linear-gradient(135deg,rgba(59,130,246,.2),rgba(99,91,255,.06)) }
.event-strip span,.event-strip strong,.event-strip small { display:block; position:relative; z-index:1 }
.event-strip span { font-size:.7rem; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.08em }
.event-strip strong { font-size:1.2rem; margin:.28rem 0; color:#122b4d }
.event-strip small { color:#3158b4; font-weight:700 }
.scan-button { position:relative; width:min(290px,82vw); min-height:96px; border:1px solid rgba(255,255,255,.28); border-radius:24px; background:linear-gradient(135deg,#4292ff 0%,#2563eb 48%,#5146dc 100%); color:#fff; font-size:1.25rem; font-weight:800; letter-spacing:.035em; box-shadow:0 16px 30px rgba(37,99,235,.38),inset 0 1px rgba(255,255,255,.25); transition:.22s ease }
.scan-button:before { content:""; display:inline-block; width:22px; height:22px; border:3px solid #fff; border-radius:7px; margin-right:12px; vertical-align:-5px; box-shadow:inset 0 0 0 3px rgba(255,255,255,.28) }
.scan-button:not(:disabled):hover { transform:translateY(-4px) scale(1.015); box-shadow:0 21px 38px rgba(37,99,235,.48),inset 0 1px rgba(255,255,255,.25) }
.scan-button:disabled { filter:grayscale(1); opacity:.5 }
.result-card { margin-top:1rem; background:#fff; border-radius:20px; padding:1.4rem; box-shadow:0 16px 36px rgba(0,0,0,.17) }
.result-card.duplicate { background:linear-gradient(145deg,#e14034,#a91610); color:#fff; text-align:center; border:1px solid rgba(255,255,255,.25) }
.result-card.success { background:linear-gradient(145deg,#13ad79,#057353); color:#fff; text-align:center; border:1px solid rgba(255,255,255,.25) }
.confirm-button { min-height:66px; font-weight:800; font-size:1.05rem }
#reader { border:0!important; border-radius:15px; overflow:hidden }
.manual-divider{display:flex;align-items:center;gap:.8rem;margin:1.5rem 0 1rem;color:#8390a3;font-size:.68rem;font-weight:800;letter-spacing:.08em}.manual-divider:before,.manual-divider:after{content:"";height:1px;flex:1;background:#e2e8f0}.manual-card-form{text-align:left}.manual-card-form .input-group .btn{border-radius:0 11px 11px 0}.lookup-mode{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.8rem;padding:.38rem .62rem;border-radius:999px;color:#3158b4;background:#edf4ff;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.terminal-install-divider{display:flex;align-items:center;gap:.7rem;margin:1.25rem 0 .85rem;color:#8a96a8;font-size:.64rem;font-weight:800;letter-spacing:.08em}.terminal-install-divider:before,.terminal-install-divider:after{content:"";height:1px;flex:1;background:#e1e7f0}.terminal-install-status{margin-top:.65rem;color:#7b8798;font-size:.72rem;text-align:center}.terminal-install-status.is-success{color:#087653}.terminal-install-status.is-warning{color:#946000}
.bulk-format-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.bulk-format-options label{cursor:pointer}.bulk-format-options input{position:absolute;opacity:0;pointer-events:none}.bulk-format-options span{display:flex;min-height:125px;flex-direction:column;align-items:center;justify-content:center;padding:1rem;border:2px solid #e1e8f2;border-radius:15px;background:#f8faff;transition:.18s}.bulk-format-options i{color:#5272d8;font-size:1.8rem}.bulk-format-options strong{margin-top:.45rem;color:#183961}.bulk-format-options small{color:#7d899a;text-align:center}.bulk-format-options input:checked+span{border-color:#3d6df2;background:#edf3ff;box-shadow:0 8px 20px rgba(49,94,234,.14);transform:translateY(-2px)}.bulk-format-options input:checked+span i{color:#285ce7}@media(max-width:575px){.bulk-format-options{grid-template-columns:1fr}.bulk-format-options span{min-height:82px}}
.bulk-card-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem;max-height:380px;overflow:auto;padding:.2rem}.bulk-card-selector label{display:flex;align-items:center;gap:.7rem;padding:.75rem;border:1px solid #dfe7f1;border-radius:12px;background:#f8faff;cursor:pointer}.bulk-card-selector label:has(input:checked){border-color:#7195fa;background:#edf3ff}.bulk-card-selector span{min-width:0;flex:1}.bulk-card-selector strong,.bulk-card-selector small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-card-selector strong{color:#183961}.bulk-card-selector small{color:#77859a;font-size:.7rem}.bulk-card-selector em{padding:.25rem .4rem;border-radius:7px;color:#3158b4;background:#e5edff;font-size:.62rem;font-style:normal;font-weight:800}
.bulk-record-table{max-height:520px;border:1px solid #e1e7f0;border-radius:13px}.bulk-record-table thead{position:sticky;top:0;z-index:2}.bulk-record-table td{font-size:.78rem;white-space:nowrap}.bulk-record-table .bulk-check-col{width:42px}.bulk-record-table tr:has(.bulk-card-checkbox:checked)>td{background:#f4f7ff}.bulk-record-table .member-status{padding:.32rem .5rem;font-size:.65rem}
.category-color-badge{padding:.42rem .68rem;font-weight:800;letter-spacing:.025em;box-shadow:0 3px 8px rgba(24,52,88,.07)}
.report-nav{display:flex;gap:.6rem;padding:.55rem;border:1px solid #e1e8f2;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(24,52,88,.06)}.report-nav a{display:flex;align-items:center;gap:.5rem;padding:.7rem .9rem;border-radius:11px;color:#607089;text-decoration:none;font-size:.78rem;font-weight:750}.report-nav a.active{color:#fff;background:linear-gradient(135deg,#3182ff,#4f46e5);box-shadow:0 7px 16px rgba(49,94,234,.22)}.scan-count-badge{display:inline-grid;place-items:center;min-width:42px;padding:.4rem .65rem;border-radius:10px;color:#087653;background:#ddf8ec;font-weight:850}@media(max-width:767px){.report-nav{overflow-x:auto}.report-nav a{flex:0 0 auto}}
.member-actions .icon-action-btn{display:inline-grid;place-items:center;width:38px;height:38px;min-width:38px;padding:0;border-radius:10px}.member-actions .icon-action-btn i{margin:0;font-size:1rem}.member-actions{flex-wrap:nowrap}
.stat-refresh{animation:statPulse .55s ease}@keyframes statPulse{0%{transform:scale(1);color:#102a4c}45%{transform:scale(1.16);color:#0f9f6e}100%{transform:scale(1);color:#102a4c}}

footer { border-top:1px solid #e3e9f1 }

@media (max-width:767px) {
    body>.d-flex { display:block!important }
    .sidebar { position:fixed; inset:auto 0 0 0; width:100%; min-height:68px; height:68px; display:flex; flex-direction:row; align-items:center; padding:.45rem!important; z-index:100; overflow:hidden }
    .brand,.sidebar form { display:none }
    .sidebar .nav { flex-direction:row!important; flex-wrap:nowrap; gap:.25rem!important; width:100%; overflow-x:auto; padding:0 0 .15rem; scrollbar-width:none }.sidebar-group{display:contents}.sidebar-group-title{display:none}.sidebar-group-links{display:contents}.sidebar-group-links:before{display:none}
    .sidebar .nav::-webkit-scrollbar { display:none }
    .sidebar a { flex:0 0 auto; padding:.45rem .72rem; font-size:.64rem; text-align:center; border-radius:10px; display:flex; flex-direction:column; gap:2px }
    .sidebar a i { width:25px; height:25px; flex-basis:25px; font-size:.8rem; background:transparent }
    .main { padding-bottom:68px }
    .topbar { min-height:60px; padding:.8rem 1rem!important }
    .topbar-actions { gap:.4rem }
    .working-year-form { padding:.25rem }
    .working-year-form label { display:none }
    .working-year-form .form-select { width:108px; font-size:.72rem }
    .main main { padding:1rem!important }
    .metric-card { min-height:108px; padding:1rem }
    .metric-card strong { font-size:1.45rem }
    footer { display:none }
    .login-card { border-radius:21px!important }
}

.category-stat-card{height:100%;padding:1.1rem;border:1px solid #e1e8f2;border-radius:16px;background:linear-gradient(145deg,#fff,#f7faff);box-shadow:0 8px 22px rgba(24,52,88,.06)}
.category-stat-card>div:first-child>i{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#315eea;background:#e9efff}
.category-stat-name{display:block;color:#15345d;font-weight:850;font-size:1rem}.category-stat-card small{color:#8490a3;font-size:.64rem;font-weight:750}
.category-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem}.category-stat-grid div{padding:.65rem;border-radius:10px;background:#fff;border:1px solid #e8edf5}
.category-stat-grid span,.category-stat-grid strong{display:block}.category-stat-grid span{color:#7b8799;font-size:.62rem;font-weight:750;text-transform:uppercase}.category-stat-grid strong{margin-top:.18rem;color:#193c69;font-size:1rem}

.terminal-event-selector{width:100%;margin:.35rem 0}.terminal-event-selector .form-select{border:1px solid rgba(37,99,235,.2);border-radius:12px;font-weight:750;color:#17345c;background-color:#fff}
.profile-heading-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;color:#fff;background:linear-gradient(135deg,#3384ff,#5146e5);font-size:1.45rem;box-shadow:0 10px 22px rgba(49,94,234,.24)}
.event-category-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}.event-category-options label{display:flex;align-items:center;gap:.7rem;padding:.85rem;border:1px solid #dce5f1;border-radius:13px;background:#f8faff;cursor:pointer;transition:.18s ease}.event-category-options label:hover{border-color:#7599ff;background:#f1f5ff;transform:translateY(-1px)}.event-category-options label:has(input:checked){border-color:#3d6df2;background:#edf3ff;box-shadow:0 6px 15px rgba(49,94,234,.12)}.event-category-options input{width:1.15rem;height:1.15rem;margin:0}.event-category-options span,.event-category-options strong,.event-category-options small{display:block}.event-category-options strong{color:#183961}.event-category-options small{margin-top:.12rem;color:#7d899a;font-size:.68rem}

.design-stage{position:relative;overflow:hidden;width:100%;border-radius:14px;background:#e9eef6;touch-action:none}.design-stage>img{display:block;width:100%;height:auto}.design-stage #mappingLayer{position:absolute;inset:0}.map-field{position:absolute;display:flex;align-items:center;overflow:hidden;padding:.2%;border:2px dashed #2563eb;background:rgba(255,255,255,.72);font-weight:800;line-height:1;cursor:move;user-select:none}.map-field.selected{border-style:solid;box-shadow:0 0 0 3px rgba(37,99,235,.22)}.map-field>span{width:100%;overflow:hidden;white-space:nowrap}.map-field .resize-handle{position:absolute;right:0;bottom:0;width:14px;height:14px;border-radius:8px 0 0;background:#2563eb;cursor:nwse-resize}.mapper-qr-grid{display:grid;place-items:center;height:100%;font-size:2.5em}.map-field b{position:absolute;inset:auto 2px 2px auto;padding:2px;background:#fff;font-size:10px}.mapper-panel{position:sticky;top:1rem}.mapper-field-toggle{display:flex;align-items:center;gap:.55rem;padding:.55rem;margin-bottom:.4rem;border:1px solid #e1e8f2;border-radius:10px;background:#f8faff;cursor:pointer}.mapper-field-toggle span{font-size:.78rem;font-weight:750;color:#29486e}
.map-photo-field{overflow:visible!important}.map-photo-field .resize-handle{right:-7px;bottom:-7px;width:20px;height:20px;z-index:5;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px rgba(8,38,92,.35);touch-action:none}
.entryqr-sidebar-brand{display:flex!important;align-items:center;justify-content:center;padding:.35rem!important}.entryqr-sidebar-brand:before{display:none!important;content:none!important}.entryqr-sidebar-brand img{display:block;width:100%;max-width:210px;height:auto;border-radius:10px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.22)}.entryqr-login-logo{display:block;width:min(100%,280px);height:auto;margin-inline:auto;border-radius:14px}.entryqr-terminal-logo{width:92px;height:42px;object-fit:cover;object-position:center;border-radius:9px;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.2)}@media(max-width:575.98px){.entryqr-terminal-logo{width:70px;height:34px}}
.entryqr-sidebar-brand img{max-width:145px;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.mapper-font-number{width:92px}.mapper-font-number .form-control{min-height:34px;height:34px;padding:.25rem .4rem;text-align:center;font-weight:800}.mapper-font-number .input-group-text{min-height:34px;padding:.25rem .4rem}.mapper-italic-control{margin-top:.8rem;padding:.7rem .75rem .7rem 2.8rem;border:1px solid #e1e8f2;border-radius:10px;background:#f8faff}.mapper-italic-control .form-check-label{color:#29486e;font-size:.78rem;font-weight:750}
.card-design-upload{align-items:start}.card-design-upload .form-control,.card-design-upload .btn{height:54px}.card-design-upload .form-control[type=file]{padding:.48rem}.card-design-upload .form-control[type=file]::file-selector-button{height:36px;margin-top:-.05rem}.card-design-upload-action .btn{display:flex;align-items:center;justify-content:center;transform:translateY(3px)}.card-design-upload .form-text{color:#66758b}@media(max-width:991.98px){.card-design-upload-action{margin-top:0}.card-design-upload-action .btn{transform:none}.card-design-upload .form-control,.card-design-upload .btn{height:50px}}
.event-design-state{min-height:56px;border-radius:13px;padding:.6rem .9rem;display:flex;align-items:center;gap:.7rem}.event-design-state>i{font-size:1.35rem}.event-design-state span{display:flex;flex-direction:column}.event-design-state small{font-size:.64rem;font-weight:800;letter-spacing:.08em}.event-design-state strong{font-size:.92rem}.event-design-state.is-configured{color:#087653;background:#e0f8ed}.event-design-state.is-pending{color:#8a5a00;background:#fff4d6}

@media print {
    .sidebar,.topbar,.btn,form,footer { display:none!important }
    .main main { padding:0!important }
    body { background:#fff }
    .card { box-shadow:none!important; border:1px solid #ddd!important }
}
