:root{--bg:#f5f7fb;--surface:#fff;--ink:#121826;--muted:#667085;--line:#e4e7ec;--primary:#5b4df5;--primary-dark:#4438d4;--danger:#c92a2a;--shadow:0 20px 50px rgba(16,24,40,.08);--radius:18px}
*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
body{margin:0;min-height:100vh}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
.topbar{height:72px;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em}
.brand-mark{width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,var(--primary),#8f7cff);color:#fff;display:grid;place-items:center;font-weight:900;font-size:24px;box-shadow:0 12px 25px rgba(91,77,245,.25)}
.brand-mark.small{width:34px;height:34px;border-radius:10px;font-size:16px}
.topbar nav{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:700}
.container{width:min(1180px,calc(100% - 40px));margin:0 auto}
.narrow{width:min(680px,calc(100% - 40px))}
.section-space{padding:52px 0 80px}
.hero-layout{padding:90px 0 80px;display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.hero{position:sticky;top:150px;padding-top:25px}
.hero h1{font-size:clamp(44px,6vw,78px);line-height:.98;letter-spacing:-.065em;margin:18px 0 24px;max-width:700px}
.hero p{font-size:19px;line-height:1.65;color:var(--muted);max-width:540px}
.eyebrow,.report-kicker{font-size:12px;font-weight:900;letter-spacing:.14em;color:var(--primary)}
.event-grid,.card-list{display:grid;gap:16px}
.event-card,.list-card,.empty-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.event-card{padding:28px;min-height:205px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s,border-color .2s}
.event-card:hover{transform:translateY(-3px);border-color:#c9c5ff}
.event-card h2{font-size:26px;letter-spacing:-.035em;margin:16px 0 14px}
.date-chip{display:inline-flex;padding:7px 10px;border-radius:999px;background:#eeecff;color:var(--primary-dark);font-size:12px;font-weight:800}
.metrics{display:flex;gap:18px;color:var(--muted);font-size:13px}
.metrics.large{font-size:15px;margin-top:14px}
.btn{border:0;border-radius:11px;padding:11px 16px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;min-height:42px;transition:.2s}
.btn.primary{background:var(--primary);color:#fff;box-shadow:0 10px 22px rgba(91,77,245,.2)}
.btn.primary:hover{background:var(--primary-dark)}
.btn.dark{background:var(--ink);color:#fff;width:100%}
.btn.ghost{background:#fff;border:1px solid var(--line)}
.btn.danger{background:#fff1f1;color:var(--danger);border:1px solid #ffd3d3}
.btn.full{width:100%}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}
.page-head h1{font-size:42px;line-height:1.05;letter-spacing:-.045em;margin:10px 0 0}
.head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.list-card{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.list-card h3{font-size:18px;margin:0 0 6px}
.list-card span{font-size:13px;color:var(--muted)}
.actions{display:flex;align-items:center;justify-content:flex-end;gap:15px;flex-wrap:wrap;font-size:13px;font-weight:800;color:var(--primary-dark)}
.table-card,.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:17px 20px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);background:#fafbfc}
td{font-size:14px}
tbody tr:last-child td{border-bottom:0}
.empty-cell{text-align:center;color:var(--muted);padding:50px}
.form-card{padding:28px}
.form-grid{display:grid;gap:20px}
.form-grid label{display:grid;gap:8px;font-size:13px;font-weight:800;color:#344054}
input{width:100%;height:48px;padding:0 14px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:var(--ink);outline:none;transition:.2s}
input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(91,77,245,.1)}
.form-actions{display:flex;justify-content:flex-end;padding-top:5px}
.auth-page,.auth-body{background:radial-gradient(circle at top,#eeecff 0,#f7f8fc 40%,#f5f7fb 100%)}
.auth-page .topbar{position:static}
.auth-card{width:min(440px,calc(100% - 36px));margin:9vh auto;background:#fff;padding:36px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.auth-card .brand-mark{margin-bottom:28px}
.auth-card h1{font-size:34px;letter-spacing:-.045em;margin:8px 0 28px}
.install-card{width:min(560px,calc(100% - 36px));margin:5vh auto}
.inline{display:inline}
.link-button{border:0;background:none;padding:0;color:inherit;font-weight:inherit}
.danger-link{color:var(--danger)}
.flash-stack{position:fixed;right:22px;top:88px;z-index:50;display:grid;gap:10px;width:min(390px,calc(100% - 44px))}
.alert{padding:13px 16px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);font-size:14px;font-weight:700}
.alert.success{border-color:#a6f4c5;background:#ecfdf3;color:#067647}
.alert.error{border-color:#fecdca;background:#fef3f2;color:#b42318}
.empty-card{padding:38px;text-align:center;color:var(--muted)}
.empty-card h1{color:var(--ink)}
.danger-zone{display:flex;justify-content:flex-end;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.report-page{background:#dde1e8}
.report-page .topbar{display:none}
.report-sheet{width:210mm;min-height:297mm;margin:20px auto;background:#fff;padding:16mm 15mm;box-shadow:0 16px 45px rgba(0,0,0,.12)}
.report-toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}
.report-header{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:15px;border-bottom:2px solid var(--ink)}
.report-header h1{font-size:30px;letter-spacing:-.04em;margin:7px 0 5px}
.report-header p{margin:0;color:var(--muted)}
.report-total{text-align:right}
.report-total strong{font-size:35px;display:block;line-height:1}
.report-total span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.report-summary{display:flex;gap:30px;padding:13px 0;font-size:12px;color:var(--muted)}
.report-summary strong{color:var(--ink)}
.report-group{margin-top:18px;break-inside:auto}
.report-group-head{display:flex;justify-content:space-between;align-items:center;background:#f2f4f7;padding:10px 12px;border-radius:8px 8px 0 0;break-after:avoid}
.report-group-head h2{font-size:15px;margin:0}
.report-group-head span{font-size:11px;color:var(--muted)}
.report-table{border:1px solid #d0d5dd}
.report-table th,.report-table td{padding:8px 10px;border:1px solid #e4e7ec;font-size:10.5px}
.report-table th{background:#fafafa;color:#475467}
.report-footer{margin-top:18px;padding-top:8px;border-top:1px solid #e4e7ec;text-align:right;font-size:9px;color:#98a2b3}
.report-empty{padding:40px;text-align:center;color:var(--muted)}
@media(max-width:850px){.hero-layout{grid-template-columns:1fr;gap:35px;padding-top:50px}.hero{position:static}.page-head{flex-direction:column}.head-actions{justify-content:flex-start}.table-card{overflow:auto}.topbar{padding:0 20px}.report-sheet{width:100%;min-height:100vh;margin:0;padding:25px}.report-header{align-items:flex-start}.report-total{display:none}}
@media(max-width:560px){.container,.narrow{width:min(100% - 24px,1180px)}.section-space{padding:32px 0 60px}.hero h1{font-size:46px}.page-head h1{font-size:34px}.topbar nav{gap:14px}.brand>span:last-child{display:none}.list-card{align-items:flex-start;flex-direction:column}.actions{justify-content:flex-start}.form-card{padding:20px}th,td{padding:14px 12px}.event-card{min-height:185px}}
@page{size:A4 portrait;margin:10mm}
@media print{html,body{background:#fff}.no-print,.topbar{display:none!important}.report-sheet{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}.report-group{break-inside:auto}.report-group-head{break-after:avoid}.report-table thead{display:table-header-group}.report-table tr{break-inside:avoid}.report-footer{position:relative}.report-header{margin-top:0}}
.pwa-install{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:8px 12px;font-size:13px;font-weight:800;white-space:nowrap}
.pwa-install:hover{border-color:#c9c5ff;color:var(--primary-dark)}
.pwa-modal[hidden]{display:none}
.pwa-modal{position:fixed;inset:0;background:rgba(16,24,40,.52);backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:20px}
.pwa-modal-card{position:relative;width:min(410px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 28px 80px rgba(16,24,40,.25)}
.pwa-modal-card h2{font-size:28px;letter-spacing:-.04em;margin:20px 0 10px}
.pwa-modal-card p,.offline-card p{color:var(--muted);line-height:1.65;margin:0 0 24px}
.pwa-modal-close{position:absolute;right:16px;top:14px;width:36px;height:36px;border:0;border-radius:50%;background:#f2f4f7;font-size:24px;line-height:1;color:var(--muted)}
.offline-card{text-align:left}
@media(max-width:560px){.pwa-install{padding:8px 10px}.topbar nav{gap:10px}}
@media(display-mode:standalone){.pwa-install{display:none!important}}
.hero-actions{margin-top:24px}
