:root{--text:#3f3b46;--text-h:#08060d;--text-muted:#6b6572;--bg:#fff;--bg-subtle:#f6f5f8;--bg-raised:#fff;--border:#e5e4e7;--accent:#7c3aed;--accent-bg:#7c3aed1a;--accent-contrast:#fff;--danger:#b3261e;--danger-bg:#b3261e14;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#d1d0d6;--text-h:#f3f4f6;--text-muted:#96939e;--bg:#16171d;--bg-subtle:#1e1f26;--bg-raised:#1b1c23;--border:#2e303a;--accent:#a78bfa;--accent-bg:#a78bfa24;--accent-contrast:#16171d;--danger:#ff8178;--danger-bg:#ff81781f}}*{box-sizing:border-box}body{margin:0}h1,h2{color:var(--text-h);letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:26px}h2{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:15px;font-weight:600}p{margin:0}button{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);cursor:pointer;padding:8px 14px;font-weight:500;transition:opacity .12s,background .12s,border-color .12s}button:hover:not(:disabled){opacity:.88}button:disabled{opacity:.5;cursor:default}button.btn-secondary{border-color:var(--border);color:var(--text-h);background:0 0}button.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border);opacity:1}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;min-height:100svh;display:flex}.topbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.topbar-left{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.brand{color:var(--text-h);letter-spacing:-.01em;font-size:15px;font-weight:700}.brand:hover{text-decoration:none}.topbar-nav{gap:var(--space-1);font-size:13px;display:flex}.topbar-nav a{color:var(--text-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:500}.topbar-nav a:hover{color:var(--text-h);background:var(--bg-subtle);text-decoration:none}.topbar-nav a.active{color:var(--text-h);background:var(--accent-bg)}.topbar-user{align-items:center;gap:var(--space-2) var(--space-3);color:var(--text-muted);flex-wrap:wrap;font-size:13px;display:flex}.topbar-user .org-name{color:var(--text-h);font-weight:600}.topbar-user button{padding:5px 12px;font-size:13px}.page{width:100%;max-width:720px;padding:var(--space-5) var(--space-4) var(--space-6);flex:1;margin:0 auto}.page-loading{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.page-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.page>h1{margin-bottom:var(--space-1)}.hint{color:var(--text-muted);margin-bottom:var(--space-4);font-size:13px}.auth-card{max-width:380px;padding:var(--space-6) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-raised);margin:64px auto}.auth-card h1{font-size:20px}.auth-card .hint{margin-top:var(--space-1)}.auth-card form{gap:var(--space-3);margin:var(--space-4) 0;flex-direction:column;display:flex}.auth-card button{margin-top:var(--space-1)}.auth-card p{color:var(--text-muted);font-size:13px}.inline-form{align-items:end;gap:var(--space-3);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.inline-form label,.auth-card label{gap:var(--space-1);flex-direction:column;flex:160px;font-size:13px;font-weight:500;display:flex}label{color:var(--text-h)}input{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text-h);padding:7px 10px}select{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-h);padding:6px 8px}input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.inline-form button,.auth-card button{flex:none}.form-error{color:var(--danger);margin:0;font-size:13px}.event-list,.shift-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.event-list li{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);flex-wrap:wrap;transition:border-color .12s,background .12s;display:flex}.event-list li:hover{border-color:var(--accent);background:var(--bg-subtle)}.shift-item{gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.shift-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.shift-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.volunteer-list{padding:var(--space-2) 0 0;border-top:1px solid var(--border);gap:var(--space-1);flex-direction:column;margin:0;font-size:13px;list-style:none;display:flex}.volunteer-list li{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.volunteer-list button{color:var(--text-muted);background:0 0;border-color:#0000;padding:2px 8px;font-size:12px}.volunteer-list button:hover:not(:disabled){color:var(--danger);background:var(--danger-bg);opacity:1}.event-list a{color:var(--text-h);font-weight:600}.event-list a:hover{color:var(--accent)}.event-date,.event-location{color:var(--text-muted);margin-left:var(--space-2);font-size:13px}.signup-status{align-items:center;gap:var(--space-2);font-size:13px;font-weight:500;display:flex}.signup-status button{background:var(--danger-bg);color:var(--danger);border-color:#0000;padding:4px 10px;font-size:12px;font-weight:500}.signup-status button:hover:not(:disabled){opacity:1;border-color:var(--danger)}.calendar-nav{gap:var(--space-1);display:flex}.calendar-nav button{border-color:var(--border);color:var(--text-h);background:0 0;padding:4px 12px;font-size:13px}.calendar-nav button:hover:not(:disabled){background:var(--bg-subtle);opacity:1}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekday{text-align:center;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:2px 0 var(--space-2);font-size:11px;font-weight:600}.calendar-cell{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:2px;min-height:68px;padding:4px;display:flex;overflow:hidden}.calendar-cell--empty{border-color:#0000}.calendar-cell--today{border-color:var(--accent);background:var(--accent-bg)}.calendar-cell--today .calendar-day-number{color:var(--accent);font-weight:700}.calendar-day-number{color:var(--text-muted);font-size:11px}.calendar-events{flex-direction:column;gap:2px;min-width:0;display:flex}.calendar-event{background:var(--accent-bg);white-space:nowrap;text-overflow:ellipsis;color:var(--text-h);border-radius:4px;padding:1px 4px;font-size:11px;font-weight:500;line-height:1.3;display:block;overflow:hidden}.calendar-event:hover{opacity:.8;text-decoration:none}.calendar-overflow{color:var(--text-muted);font-size:10px}.team-list{gap:var(--space-2);margin:0;margin-bottom:var(--space-5);flex-direction:column;padding:0;list-style:none;display:flex}.team-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.team-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.position-form{align-items:center;gap:var(--space-1);display:flex}.position-form input{width:auto;min-width:140px}.position-chips{gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.position-chip{background:var(--accent-bg);color:var(--text-h);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.position-tag{background:var(--accent-bg);color:var(--text-h);margin-left:var(--space-2);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:500}.member-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.member-list li{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);flex-wrap:wrap;display:flex}.member-contact{color:var(--text-muted);font-size:13px}.member-role-badge{background:var(--bg-subtle);text-transform:capitalize;white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.modal-overlay{padding:var(--space-4);z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);flex-direction:column;width:100%;max-width:420px;max-height:80vh;display:flex}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.modal-header h2{margin:0}.member-search{width:100%}.member-picker-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.member-picker-list li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-1);border-bottom:1px solid var(--border);display:flex}.member-picker-list li:last-child{border-bottom:none}@media (width<=480px){.topbar{padding:var(--space-3) var(--space-4)}.inline-form label,.inline-form button{flex:100%}.auth-card{margin:var(--space-6) auto;padding:var(--space-5) var(--space-4)}.calendar-grid{gap:2px}.calendar-cell{border-radius:4px;min-height:48px;padding:2px}.calendar-day-number{font-size:10px}.calendar-event{padding:0 2px;font-size:9px}.calendar-overflow{font-size:8px}}
