:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1c2733;background:#f3f6f9;--brand: #2c5796;--brand-dark: #1f3f6e;--brand-light: #e8eef7;--primary: var(--brand);--danger: #c62828;--border: #d5dde5}*{box-sizing:border-box}body{margin:0}.topbar{display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;background:var(--brand);color:#fff;flex-wrap:wrap}.topbar h1{font-size:1.2rem;margin:0}.brand{display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none}.brand img{height:40px;width:auto;background:#fff;border-radius:50%;padding:2px}button:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark)}button.secondary:hover:not(:disabled){background:var(--brand-light);color:var(--brand-dark)}button.danger:hover:not(:disabled){background:#a31f1f;border-color:#a31f1f}a{color:var(--brand)}a.button{display:inline-block;background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:4px;text-decoration:none}a.button:hover{background:var(--brand-dark)}.topbar nav{display:flex;gap:1rem;flex:1}.topbar nav a{color:#cfe3ff;text-decoration:none;padding:.25rem .5rem;border-radius:4px}.topbar nav a.active{background:#ffffff26;color:#fff}.season-picker{display:flex;gap:.5rem;align-items:center}.primary-nav{flex:1}.topbar-right{display:flex;align-items:center;gap:1rem;margin-left:auto}.topbar-tools{display:flex;align-items:center;gap:1rem}.menu-wrap{position:relative}.menu{position:absolute;right:0;top:calc(100% + .5rem);z-index:20;min-width:14rem;display:flex;flex-direction:column;gap:.75rem;padding:.5rem;background:var(--brand);border-radius:6px;box-shadow:0 6px 18px #00000040}.menu nav{flex-direction:column;gap:.15rem}.menu nav a{padding:.5rem .75rem}.mobile-only{display:none!important}.menu-toggle{display:block;margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:1.4rem;line-height:1;padding:.3rem .6rem}.card{overflow-x:auto}@media(max-width:800px){.topbar{gap:.75rem;padding:.6rem 1rem}.topbar h1{font-size:1rem}.brand img{height:32px}.desktop-only{display:none!important}.mobile-only{display:flex!important}.topbar nav a.mobile-only{display:block!important}.menu-wrap{position:static}.topbar{position:relative}.menu{left:0;right:0;top:100%;border-radius:0;padding:.75rem 1rem}.menu-tools{flex-direction:column;gap:.75rem;border-top:1px solid rgba(255,255,255,.2);padding-top:.75rem}.topbar nav{flex-direction:column;gap:.25rem}.topbar nav a{padding:.6rem .5rem;font-size:1.05rem}.season-picker{justify-content:space-between}.season-picker select{flex:1}.auth-box{margin-left:0;justify-content:space-between}main{padding:.75rem}.card{padding:.75rem}.form-row{flex-direction:column;align-items:stretch}.form-row label,.form-row input,.form-row select,.form-row button{width:100%}.weekdays{flex-wrap:wrap}button,a.button{min-height:2.75rem}input,select{min-height:2.75rem;font-size:1rem}th,td{padding:.4rem .35rem;font-size:.9rem}}main{padding:1.5rem;max-width:1200px;margin:0 auto}.card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem}.card h2,.card h3{margin-top:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--border)}th{font-size:.85rem;color:#52606d}.form-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:.75rem}.form-row label{display:flex;flex-direction:column;font-size:.85rem;gap:.25rem}input,select,textarea{font:inherit;padding:.35rem .5rem;border:1px solid var(--border);border-radius:4px}button{font:inherit;padding:.35rem .8rem;border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:4px;cursor:pointer}button.secondary{background:#fff;color:var(--primary)}button.danger{background:var(--danger);border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;gap:.4rem}.error{background:#fdecea;color:var(--danger);padding:.5rem .75rem;border-radius:4px;margin-bottom:.75rem}.muted{color:#5f6b78}.weekdays{display:flex;gap:.5rem}.weekdays label{flex-direction:row;align-items:center;gap:.2rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.8rem;background:#e3eaf2}.badge.Pending{background:#fef3c7}.badge.Accepted{background:#dcfce7}.badge.Declined,.badge.Cancelled{background:#f1f5f9}.members{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.3rem}.members label{flex-direction:row;gap:.4rem;align-items:center}tr.unassigned td{background:#fff8e1}.view-toggle{margin-left:auto}.grouped{display:flex;flex-direction:column;gap:1rem}.day-group{border:1px solid var(--border);border-radius:6px;overflow:hidden}.day-header{display:flex;justify-content:space-between;align-items:baseline;padding:.5rem .75rem;background:var(--brand-light);border-bottom:1px solid var(--border)}.day-header h3{margin:0;font-size:1rem;text-transform:capitalize}.warn{color:#b26a00}.time-group{display:flex;gap:1rem;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.time-group:last-child{border-bottom:none}.time-label{min-width:7rem;font-weight:600;padding-top:.35rem}.time-shifts{list-style:none;margin:0;padding:0;flex:1;display:flex;flex-direction:column;gap:.35rem}.time-shifts li{display:grid;grid-template-columns:minmax(10rem,1fr) minmax(12rem,2fr) auto;gap:.5rem;align-items:center;padding:.2rem .4rem;border-radius:4px}.time-shifts li.unassigned{background:#fff8e1}.auth-box{color:#cfe3ff;display:flex;gap:.5rem;align-items:center;margin-left:1rem;text-decoration:none}.login{max-width:32rem}.badge.response-None{background:#f1f5f9}.badge.response-Accepted{background:#dcfce7}.badge.response-Declined{background:#fee2e2}.time-shifts li{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;white-space:nowrap}.time-shifts li>.badge:first-child{min-width:9rem;overflow:hidden;text-overflow:ellipsis}.time-shifts li select{flex:1;min-width:10rem;max-width:18rem}.time-shifts li button{margin-left:auto}.time-shifts li button~button{margin-left:0}td{white-space:nowrap;vertical-align:middle}td.actions{flex-wrap:nowrap}td.actions{justify-content:flex-end}td button,td select,.time-shifts button,.time-shifts select{padding:.15rem .5rem;font-size:.8rem}td button,.time-shifts button{width:auto;flex:0 0 auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem}.stat{border:1px solid #d5dde8;border-radius:6px;padding:.5rem .75rem}.stat.warn{border-color:#d9822b;background:#fff4e6}.stat-value{font-size:1.5rem;font-weight:600;color:#2c5796}.stat.warn .stat-value{color:#b35c00}.stat-label{font-size:.8rem;color:#555}@media(max-width:800px){.day-header{flex-wrap:wrap;gap:.25rem .75rem;padding:.5rem}.time-group{flex-direction:column;gap:.35rem;padding:.5rem}.time-label{min-width:0;padding-top:0;font-size:.95rem}.time-shifts li{flex-wrap:wrap;white-space:normal;gap:.35rem .5rem;padding:.45rem .5rem;border:1px solid var(--border);background:#fff}.time-shifts li.unassigned{background:#fff8e1}.time-shifts li>.badge:first-child{min-width:0}.time-shifts li>span:not(.badge){flex:1 1 100%;font-weight:500}.time-shifts li select{flex:1 1 100%;max-width:none;min-width:0;font-size:1rem;padding:.4rem}.time-shifts li button{margin-left:0;padding:.4rem .8rem;font-size:.9rem}td{white-space:normal}td.actions{flex-wrap:wrap}td button,td select{padding:.35rem .6rem;font-size:.9rem}table,table tbody,table tr,table td{display:block;width:100%}table thead{display:none}table tr{border:1px solid var(--border);border-radius:6px;padding:.5rem .65rem;margin-bottom:.6rem;background:#fff}table tr.unassigned{background:#fff8e1}table td{border:none;padding:.2rem 0}table.has-labels td[data-label]:not([data-label=""]){display:grid;grid-template-columns:6.5rem 1fr;gap:.5rem;align-items:center}table.has-labels td[data-label]:not([data-label=""]):before{content:attr(data-label);font-size:.8rem;color:#52606d;font-weight:600}table td:empty{display:none}table td.actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.4rem;padding-top:.4rem}table td select{width:100%}}.form-row label.check-filter,label.check-filter{display:inline-flex;flex-direction:row;align-items:center;gap:.4rem;white-space:nowrap;cursor:pointer;padding:.35rem .6rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:.9rem;align-self:flex-end}.form-row label.check-filter input,label.check-filter input{width:auto;margin:0}label.check-filter:has(input:checked){color:#1e3a8a;border-color:var(--primary, #2563eb);background:#eff6ff}@media(max-width:800px){.form-row:has(label.half){flex-direction:row;flex-wrap:wrap;gap:.5rem}.form-row label.half,.form-row label.check-filter{width:auto;flex:1 1 calc(50% - .5rem);min-width:0}.form-row label.check-filter{justify-content:center;white-space:normal;text-align:center}.form-row label.half input{min-width:0}.view-toggle{display:flex;width:100%;flex:1 1 100%}.view-toggle button{flex:1 1 0;width:auto}}.help h3{margin:1rem 0 .35rem;font-size:1rem}.help ul .help li{margin-bottom:.25rem}.help-toc{display:flex;gap:1rem;flex-wrap:wrap}.help dt{font-weight:600;margin-top:.6rem}.help dd{margin:.15rem 0 0}.success{background:#dcfce7;color:#166534;padding:.5rem .75rem;border-radius:4px;margin-bottom:.75rem}.auth-box a.account-link{color:#fff;text-decoration:underline;text-underline-offset:3px}tr.past,.time-shifts li.past{opacity:.55}tr.past.unassigned,.time-shifts li.past.unassigned{background:#f3f4f6}.account h3{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e3e8ee}.account h3+*{margin-top:.5rem}.account .actions{margin-top:.75rem}:focus-visible{outline:3px solid #f5a524;outline-offset:2px}main:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:.5rem;top:-4rem;z-index:100;background:#fff;color:var(--primary);padding:.5rem 1rem;border-radius:4px;box-shadow:0 2px 8px #0003}.skip-link:focus{top:.5rem}a.button.secondary{background:#fff;color:var(--primary);border:1px solid var(--primary)}.audit-changes{margin:0;font-size:.85rem;display:grid;grid-template-columns:max-content 1fr;gap:.15rem .75rem}.audit-changes>div{display:contents}.audit-changes dt{color:#5f6b78}.audit-changes dd{margin:0;overflow-wrap:anywhere}.audit-changes del{color:#b42318}.audit-changes ins{color:#067647;text-decoration:none;font-weight:600}.audit-changes li{overflow-wrap:anywhere}.pager{justify-content:center;align-items:center;margin-top:.75rem}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
