:root{--bg:#14120f;--panel:#1c1a16;--panel-hover:#201d18;--topbar:#1a1713;--sidebar:#181511;--border:#332e26;--border-strong:#4a4238;--text:#f0ebe3;--text-muted:#a09789;--text-dim:#6f685d;--text-dimmer:#5b544a;--accent:#d2622a;--accent-hover:#e0703a;--accent-text:#160f0a;--green:#5fa37d;--green-bg:#2b3a31;--green-fg:#8fd0ae;--yellow:#d9a441;--yellow-bg:#3b3527;--yellow-fg:#e0c68a;--red-bg:#3a2118;--red-fg:#e3a184;--blue:#3f8fb6;--sans:"Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:ui-monospace, Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font:13px/1.45 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#root{min-height:100svh}body{background:var(--bg);color:var(--text);margin:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:3px solid var(--bg);background:#3a352c;border-radius:6px}h1,h2,h3{font-family:var(--sans);color:var(--text);letter-spacing:-.3px;margin:0 0 .5rem;font-weight:700}h1{font-size:1.5rem}h2{font-size:1.05rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.field{text-align:left;color:var(--text-muted);flex-direction:column;align-items:flex-start;gap:.3rem;font-size:.8rem;display:flex}input,select,textarea{font:inherit;color:var(--text);border:1px solid var(--border);background:#151310;border-radius:7px;padding:.5rem}.field input,.field select{width:100%}input:focus,select:focus,textarea:focus{border-color:var(--border-strong);outline:none}input[type=checkbox]{width:auto}button{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:.5rem 1rem;transition:border-color .15s,background .15s}button:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.btn-primary{background:var(--accent);color:var(--accent-text);border:none;font-weight:600}button.btn-primary:hover:not(:disabled){background:var(--accent-hover)}button.btn-plain{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}button.btn-plain:hover:not(:disabled){color:var(--accent-hover);background:0 0;border-color:#0000}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);padding-bottom:.5rem;font-size:.65rem;font-weight:600}td{border-bottom:1px solid #221f1a;padding:.55rem .3rem .55rem 0;font-size:.8rem}code{font-family:var(--mono);color:var(--text-muted);background:#151310;border-radius:4px;padding:2px 6px;font-size:.8rem}.pill{color:var(--text-muted);background:#2e2820;border-radius:5px;padding:2px 8px;font-size:.7rem;display:inline-block}.pill-green{background:var(--green-bg);color:var(--green-fg)}.pill-yellow{background:var(--yellow-bg);color:var(--yellow-fg)}.pill-red{background:var(--red-bg);color:var(--red-fg)}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.error-text{color:#e3a184}.schedule-page{min-width:0}.schedule-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.schedule-actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.schedule-volunteers-panel{margin:1rem 0}.schedule-volunteer-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.65rem;margin-top:.75rem;display:grid}.schedule-volunteer-card{border:1px solid var(--border);background:#151310;border-radius:8px;flex-direction:column;gap:.2rem;min-height:60px;padding:.65rem;display:flex;overflow:hidden}.schedule-volunteer-card span,.schedule-assign-row span,.schedule-available-row span{overflow-wrap:anywhere}.schedule-calendar-panel{padding:0;overflow-x:auto}.schedule-grid{grid-template-columns:72px repeat(7,minmax(140px,1fr));min-width:1100px;display:grid}.schedule-grid-header{z-index:4;background:var(--panel);border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;justify-content:center;gap:.1rem;min-height:54px;padding:.55rem;display:flex;position:sticky;top:0}.schedule-grid-header span,.schedule-time-header{color:var(--text-muted);font-size:.75rem}.schedule-time-column,.schedule-day-column{height:1440px;position:relative}.schedule-time-column{border-right:1px solid var(--border);background:#151310}.schedule-day-column{touch-action:none;-webkit-user-select:none;user-select:none;border-right:1px solid var(--border);cursor:crosshair}.schedule-hour-label,.schedule-hour-line{border-bottom:1px solid #28231d;height:60px}.schedule-hour-label{color:var(--text-dim);padding:.35rem .45rem;font-size:.72rem}.schedule-hour-line:nth-child(2n){background:#ffffff03}.schedule-drag-selection{border:1px dashed var(--accent);pointer-events:none;z-index:2;background:#d2622a2e;border-radius:7px;min-height:30px;position:absolute;left:.35rem;right:.35rem}.schedule-shift-card{color:#fff8ef;cursor:pointer;z-index:3;border:1px solid #ffffff29;border-radius:8px;flex-direction:column;gap:.08rem;min-height:64px;padding:.45rem;display:flex;position:absolute;left:.35rem;right:.35rem;overflow:hidden;box-shadow:0 8px 18px #0000003d}.schedule-shift-card:hover{z-index:5;filter:brightness(1.05)}.schedule-shift-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;line-height:1.15;overflow:hidden}.schedule-shift-card span{opacity:.92;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;line-height:1.2;overflow:hidden}.schedule-shift-card.is-empty{background:#2f6f8f}.schedule-shift-card.is-partial{background:#9b7327}.schedule-shift-card.is-full{background:#457b5d}.schedule-manage-button{color:#fff;background:#0000002e;border-color:#ffffff38;align-self:flex-start;margin-top:auto;padding:.12rem .35rem;font-size:.66rem}.schedule-modal-backdrop{z-index:50;background:#000000ad;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.schedule-modal{border:1px solid var(--border-strong);background:var(--panel);border-radius:10px;width:min(560px,100%);max-height:min(780px,100vh - 2rem);padding:1rem;overflow-y:auto;box-shadow:0 24px 80px #00000073}.schedule-modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.schedule-modal-header button{width:34px;height:34px;padding:0;font-size:1.1rem}.schedule-dialog-form{flex-direction:column;gap:.8rem;display:flex}.schedule-dialog-form textarea{resize:vertical;width:100%}.schedule-dialog-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.schedule-dialog-actions{grid-template-columns:auto 1fr auto auto;align-items:center;gap:.5rem;margin-top:.4rem;display:grid}.schedule-danger-button{color:var(--red-fg);border-color:#6b3928}.schedule-assign-heading,.schedule-assign-section{flex-direction:column;gap:.45rem;margin-bottom:1rem;display:flex}.schedule-assign-section h2{margin-bottom:.1rem}.schedule-assign-row,.schedule-available-row{border:1px solid var(--border);background:#151310;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem;display:flex}.schedule-assign-row>div,.schedule-available-row>span:first-child{text-align:left;flex-direction:column;min-width:0;display:flex}.schedule-available-list{flex-direction:column;gap:.5rem;display:flex}.schedule-available-row{width:100%}@media (width<=720px){.schedule-dialog-row,.schedule-dialog-actions{grid-template-columns:1fr}.schedule-actions{width:100%}}.volunteer-auth-panel{width:100%;max-width:420px}.volunteer-auth-form{flex-direction:column;gap:.8rem;margin-top:1rem;display:flex}.volunteer-portal-shell{width:min(1120px,100% - 2rem);min-height:100svh;margin:0 auto;padding:1.25rem 0 2rem}.volunteer-portal-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.volunteer-status-panel{border-width:2px;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;display:flex}.volunteer-status-panel.is-available{background:#18251d;border-color:#3d7155}.volunteer-status-panel.is-dropping-out{background:#281911;border-color:#82442e}.volunteer-portal-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start;gap:1rem;display:grid}.volunteer-shift-days{flex-direction:column;gap:1rem;margin-top:.8rem;display:flex}.volunteer-shift-day h3{margin-bottom:.5rem}.volunteer-shift-card{border:1px solid var(--border);background:#151310;border-radius:8px;margin-bottom:.6rem;padding:.8rem}.volunteer-shift-card>div{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.volunteer-message-panel{flex-direction:column;min-height:520px;display:flex}.volunteer-message-thread{flex-direction:column;flex:1;gap:.6rem;min-height:280px;max-height:520px;padding:.6rem 0;display:flex;overflow-y:auto}.volunteer-message{border:1px solid var(--border);background:#151310;border-radius:8px;max-width:88%;padding:.6rem}.volunteer-message.from-volunteer{background:#2c241b;align-self:flex-end}.volunteer-message.from-staff{align-self:flex-start}.volunteer-message span,.volunteer-message small{color:var(--text-dim);font-size:.72rem;display:block}.volunteer-message p{overflow-wrap:anywhere;margin:.15rem 0}.volunteer-message-form{flex-direction:column;gap:.5rem;margin-top:auto;display:flex}.volunteer-message-form textarea{resize:vertical;width:100%}@media (width<=860px){.volunteer-portal-grid{grid-template-columns:1fr}.volunteer-status-panel,.volunteer-portal-header,.volunteer-shift-card>div{flex-direction:column;align-items:stretch}}.loom-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.loom-tabs{flex-wrap:wrap;gap:.45rem;display:flex}.loom-layout{grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.loom-form{flex-direction:column;gap:.75rem;display:flex}.loom-form textarea{resize:vertical;width:100%}.loom-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.loom-checkboxes{color:var(--text-muted);flex-wrap:wrap;gap:1rem;display:flex}.loom-checkboxes label{align-items:center;gap:.4rem;display:flex}.loom-actions,.loom-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.loom-list{flex-direction:column;gap:.7rem;display:flex}.loom-event-card,.loom-small-card{border:1px solid var(--border);background:#151310;border-radius:8px;padding:.8rem}.loom-event-card>div:first-child{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.loom-small-card{grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;display:grid}.loom-color-dot{border:1px solid #ffffff3d;border-radius:50%;width:14px;height:14px}@media (width<=900px){.loom-layout,.loom-form-row{grid-template-columns:1fr}.loom-small-card{grid-template-columns:auto 1fr}.loom-small-card button{grid-column:1/-1}}.shell{background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;display:flex}.topbar{background:var(--topbar);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:14px;height:52px;padding:0 16px;display:flex}.topbar .logo{letter-spacing:-.2px;font-size:15px;font-weight:700}.topbar .logo .app-tag{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-left:9px;font-size:11px;font-weight:400}.topbar-spacer{flex:1}.convention-badge{border:1px solid var(--border);background:#1f1b16;border-radius:7px;align-items:center;gap:8px;height:30px;padding:0 11px;font-size:12px;display:flex}.convention-badge .dot{background:var(--green);border-radius:50%;flex:none;width:7px;height:7px}.shell-body{flex:1;min-height:0;display:flex}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;flex:none;gap:2px;width:216px;padding:10px 8px;display:flex;overflow-y:auto}.sidebar-section{font:600 10px var(--mono);letter-spacing:.1em;color:var(--text-dimmer);padding:12px 10px 4px}.sidebar-section:first-child{padding-top:4px}.nav-item{cursor:pointer;color:var(--text-muted);border-radius:6px;align-items:center;gap:9px;padding:7px 10px;font-size:12.5px;display:flex}.nav-item:hover{background:#201d18}.nav-item.active{color:var(--text);background:#2e2820;font-weight:600}.nav-item .dot{background:var(--text-dim);border-radius:1px;flex:none;width:5px;height:5px}.nav-item.active .dot{background:var(--accent)}.content{flex:1;min-width:0;padding:24px 28px 48px;overflow-y:auto}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-card{width:100%;max-width:420px}.stack-form{flex-direction:column;gap:.65rem;display:flex}.stack-form input,.stack-form select,.stack-form textarea{width:100%}
