:root{color-scheme:dark;font:16px/1.5 system-ui,sans-serif;color:#f1f6ff;background:#070c17;--panel:#0e192d;--edge:#29436c;--muted:#b7c7dd;--accent:#62d4ff}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at top right,#14264b,transparent 55%)}
main{max-width:860px;margin:auto;padding:24px 16px 48px}
h1,h2,h3,p{margin:0 0 12px}
h1{line-height:1.15;letter-spacing:-.035em;font-size:clamp(1.8rem,5vw,2.7rem)}
h2{font-size:1.2rem;color:var(--accent)}
p,small{color:var(--muted)}
header,.bar,.actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
header{margin-bottom:24px}
header img{width:74px}
.brand{display:flex;align-items:center;gap:14px;font-weight:700}
.panel,.entry{border:1px solid var(--edge);border-radius:18px;background:var(--panel);padding:20px;margin-bottom:14px}
.login{max-width:420px;margin:7vh auto;text-align:center;padding:32px 24px}
.login img{width:144px;margin:4px auto 20px}
.login label{text-align:left}
label{display:block;font-weight:650;min-width:0}
input,select,textarea,button{font:inherit}
input,select,textarea{display:block;width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--edge);background:#080f1d;color:inherit;margin-top:5px;min-height:44px}
textarea{resize:vertical}
button{cursor:pointer;border:1px solid var(--edge);color:#fff;padding:9px 15px;min-height:44px;border-radius:10px;background:#152744;font-weight:650}
button.primary{background:linear-gradient(110deg,#174ae0,#087da4);border-color:transparent}
button.link{background:transparent}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.login button{width:100%;margin-top:16px}
.grid,.line,.totals{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.line{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:end;margin:12px 0}
.totals{grid-template-columns:repeat(auto-fit,minmax(142px,1fr));margin-bottom:16px}
.total{background:#0a2339;padding:12px;border-radius:12px}
.total strong{display:block;font-size:1.18rem;font-variant-numeric:tabular-nums}
.badge{display:inline-block;border-radius:20px;padding:3px 9px;background:#493518;color:#ffe7a9;font-size:.8rem}
.badge.ok{background:#123c37;color:#b3fae3}
.notice,.error{color:#ffd184}
.error:empty{display:none}
.entry{display:block;width:100%;text-align:left;margin-bottom:10px}
.entry strong{font-size:1.15rem}
.member{padding:12px;border:1px solid var(--edge);border-radius:12px;margin:12px 0}
.empty{padding:20px 0}
@media(max-width:480px){main{padding:18px 12px 32px}.panel{padding:14px}.grid{grid-template-columns:1fr}.line{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:6px}.line button{padding:8px}.brand span{font-size:.9rem}}
[hidden]{display:none!important} h3{margin-top:16px}
.member-role{color:var(--accent);font-size:.8rem;font-weight:600}
.member-role input{color:var(--accent)}
.check{display:flex;align-items:center;gap:8px}.check input{width:auto;min-height:auto;margin:0}
.member-summary{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px;align-items:center}
.member-summary .member-role{display:block}
.member details{margin-top:10px}
.member summary{cursor:pointer;color:var(--muted);font-size:.85rem}
.member details[open] summary{margin-bottom:8px}
.register-payment{margin-top:10px}
.member.member-paid{background:#124838;border-color:#54dfa0;box-shadow:inset 0 0 0 1px #54dfa0}
.paid-label,.payment-balance{display:block;margin-top:4px;font-size:.8rem}
.paid-label{color:#b9ffdc;font-weight:750}
[data-payments]{margin-top:12px}
#receipts.member-paid{background:#124838;border-color:#54dfa0;box-shadow:inset 0 0 0 1px #54dfa0}
.client-total{border:1px solid #45baff}
.client-total strong{color:#b5efff;font-size:1.4rem}
.allocation-action{margin-top:6px;min-height:36px;padding:5px 10px;font-size:.85rem}
.allocation input[readonly]{background:#15253c}
#receipt-form{margin-top:10px}
#toggle-details,[data-private].grid{margin-top:12px}
.event-fields{padding:0;margin:0;border:0;min-width:0}
.event-fields[data-private],.event-edit-actions{margin-top:12px}
.event-fields:disabled input,.event-fields:disabled select{background:#15253c;opacity:1}
.member-absent{margin:12px 0;padding:9px 12px;border:1px solid #52627a;border-radius:12px;background:#202c3f;color:#d0dbea}
.member-absent>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.member-absent>summary::-webkit-details-marker{display:none}
.member-absent>summary small{display:block;font-size:.76rem}
.absent-show,.absent-hide{border:1px solid #657893;border-radius:8px;padding:5px 10px;color:#e2ecfb;font-size:.85rem}
.member-absent:not([open]) .absent-hide,.member-absent[open] .absent-show{display:none}
.member-absent>.member{margin-bottom:0}
button.danger{background:#47202e;border-color:#9d5067;color:#ffe7ee}
#delete-confirmation{margin-top:12px}
#delete-confirmation .actions{margin-top:10px}
#sticky-balance{position:fixed;z-index:2;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,860px);display:flex;justify-content:space-between;gap:12px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:#132842;border:1px solid #45baff;color:#f1f6ff}
#sticky-balance .negative{color:#ff9c9c}
#editor:has(#sticky-balance:not([hidden])){padding-bottom:60px}
.travel-total{display:block;color:var(--muted)}
.event-menu{position:relative}
.event-menu summary{cursor:pointer}
.event-menu>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid var(--edge);border-radius:10px;background:#152744;font-weight:650;list-style:none}
.event-menu>summary::-webkit-details-marker{display:none}
.event-menu-options{position:absolute;top:calc(100% + 8px);right:0;z-index:5;display:grid;gap:4px;width:min(254px,calc(100vw - 24px));padding:8px;background:var(--panel);border:1px solid var(--edge);border-radius:12px;box-shadow:0 8px 24px #0009}
.event-menu-options button,.event-menu .data-tools summary{width:100%;min-height:44px;padding:9px 12px;text-align:left;background:transparent;border:0;font-weight:650}
.event-menu-options button:hover,.event-menu .data-tools summary:hover{background:#152744}
.event-menu .data-tools-options{display:grid;padding-left:12px;border-left:1px solid var(--edge)}
.event-menu .event-menu-lock{border-top:1px solid var(--edge);border-radius:0;margin-top:4px}
header:has(.event-menu){margin-bottom:14px}
.events-bar h1{margin:0}
.events-search{margin:10px 0 12px}
.events-search input{margin:0}
.events-search .error{margin-top:8px}
@media(max-width:480px){header:has(.event-menu) img{width:56px}header:has(.event-menu) .brand{gap:8px}.events-bar button{padding-inline:10px}}
.event-card{position:relative;margin-bottom:10px}
.event-card .entry{padding-right:66px;margin-bottom:0}
button.delete-icon{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:44px;padding:0;background:transparent;color:#ffb8c9}
button.delete-icon:hover{background:#47202e;border-color:#9d5067}
#delete-event{width:min(440px,calc(100% - 32px));padding:20px;border:1px solid var(--edge);border-radius:16px;background:var(--panel);color:inherit}
#delete-event::backdrop{background:#050b17b8}

.login .pin-input{font-size:1.4rem;letter-spacing:.55em;text-align:center}
.pin-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px auto;max-width:290px}
.pin-pad button{border-radius:999px;min-height:48px;font-size:1.25rem}
.pin-pad [data-digit="0"]{grid-column:2}
dialog .pin-input{font-size:1.4rem;letter-spacing:.55em;text-align:center}
.event-pages{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px}
.event-pages span{color:var(--muted);font-size:.9rem;text-align:center}
.event-pages button:disabled{opacity:.55}

.event-group{margin-top:20px}
.event-group h2{margin-bottom:8px}
.upcoming-events h2{color:#7cdeff}
.upcoming-events .entry{
  background:linear-gradient(110deg,#12365a,#10243c);
  border-color:#2b6590;
  border-left:4px solid #58cefa;
}
.upcoming-events .entry small{color:#c2e5f9}
.past-events h2{color:#b8c6d7}
.past-events .entry{
  background:#17202f;
  border-color:#39465a;
  border-left:4px solid #77869d;
}
.past-events .entry small{color:#bac7d9}
.event-group-empty{font-size:.9rem;margin-bottom:8px}
.event-today{background:#493518;color:#ffe7a9}

.logistics>summary{cursor:pointer;color:var(--accent);font-size:1.2rem;font-weight:700}
.logistics #logistics-fields{margin:14px 0}
.logistics-people{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0;padding:0;border:0}
.logistics-people .check{min-height:36px}
.logistics-people input{min-width:18px;min-height:18px}
.logistics h4{margin:16px 0 6px}
.logistics-set{display:flex;gap:10px;align-items:end;margin-bottom:10px}
.logistics-set label{flex:1}
.logistics-dialog{width:min(94vw,570px);max-height:90vh;color:inherit;margin:auto}
.logistics-dialog canvas{display:block;width:100%;height:auto;margin:0 auto 12px}
.logistics-dialog::backdrop{background:#050911d9}
.event-menu-options a.menu-link{display:flex;align-items:center;min-height:44px;padding:9px 12px;border-radius:10px;color:#fff;font-weight:650;text-decoration:none}
.event-menu-options a.menu-link:hover{background:#152744}
header>details.event-menu{margin-left:auto}
