:root{--brand: #161616;--brand-dark: #000000;--accent: #df1818;--bg: #f5f4f4;--card: #ffffff;--text: #1d232b;--muted: #5f6b7a;--border: #d3d9e0;--border-strong: #9aa6b4;--focus: #2b6cd4;--primary: #c41a1a;--primary-dark: #8f0f0f;--danger: #b42318;--danger-bg: #fdecea;--warn-bg: #fff6dc;--warn-border: #e9b949;--ok: #1e7b3c;--seat-filled-bg: #e6f5eb;--seat-filled-border: #7cc296;--seat-vacant-bg: #fff0e0;--seat-vacant-border: #ec9a4b;--todo-fg: #5b3a8c;--todo-bg: #f1ecf8;--st-enquiry-bg: #e7eaee;--st-enquiry-fg: #39424e;--st-provisional-bg: #fde9b8;--st-provisional-fg: #7a4d00;--st-confirmed-bg: #d3f0dc;--st-confirmed-fg: #14632d;--st-cancelled-bg: #fbd9d6;--st-cancelled-fg: #9b1c12;--radius: 10px;--tap: 46px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:17px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1.05rem;margin-top:1rem}a{color:var(--primary)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.875rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}input[type=text],input[type=email],input[type=tel],input[type=search],input[type=date],input[type=time],input:not([type]),select,textarea{font:inherit;width:100%;min-height:var(--tap);padding:.5rem .7rem;border:1px solid var(--border-strong);border-radius:8px;background:#fff;color:var(--text)}textarea{resize:vertical;overflow:hidden;min-height:4.5rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #2b6cd440}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}input[type=file]{font:inherit;padding:.5rem 0}input[type=checkbox]{width:24px;height:24px;accent-color:var(--primary);margin:0;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:var(--tap);padding:.45rem 1rem;border:1px solid var(--border-strong);border-radius:8px;background:#fff;color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}.btn:hover{background:#eef1f5}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{color:var(--danger);border-color:#e5a29b}.btn-danger:hover{background:var(--danger-bg)}.btn-light{background:#ffffff26;color:inherit;border-color:#ffffff80}.btn-light:hover{background:#ffffff47}.btn-pressed{background:#fbe7e7;border-color:var(--primary)}.btn-small{min-height:38px;padding:.25rem .7rem;font-size:.9rem}.btn-big{min-height:52px;padding:.6rem 1.3rem;font-size:1.05rem}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--muted)}.icon-btn:hover{background:#eef1f5}.icon-btn:disabled{opacity:.35}.icon-btn.danger{color:var(--danger)}.link-btn{background:none;border:none;padding:.25rem 0;font:inherit;color:var(--primary);text-decoration:underline;cursor:pointer;min-height:32px}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;align-items:center}.row-actions.left{justify-content:flex-start}.stack{display:flex;flex-direction:column;gap:.6rem}.inline-input{display:flex;gap:.4rem;align-items:center}.inline-input>input{flex:1;min-width:0}.checkbox-input{display:inline-flex;align-items:center;gap:.6rem;min-height:var(--tap);cursor:pointer}.field-label{display:block;font-weight:600;font-size:.95rem}.field-help{margin:.25rem 0 0;font-size:.85rem;color:var(--muted)}.field-error{color:var(--danger);font-size:.9rem;margin:.3rem 0 0}.topbar{background:var(--brand);color:#fff;position:sticky;top:0;z-index:20}.topbar-inner{max-width:1100px;margin:0 auto;padding:.4rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.15rem;min-height:var(--tap);display:flex;align-items:center}.nav{display:flex;align-items:center;gap:.25rem;margin-left:auto}.nav a{color:#fff;text-decoration:none;padding:.5rem .8rem;border-radius:8px;min-height:var(--tap);display:flex;align-items:center;font-weight:600}.nav a:hover{background:#ffffff1f}.nav a.active{background:#fff3;box-shadow:inset 0 -3px 0 var(--accent)}.nav-user{margin:0 .5rem 0 1rem;opacity:.85;font-size:.9rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:none;margin-left:auto;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);border-radius:8px;font:inherit;font-weight:600;min-height:42px;padding:0 .9rem}@media(max-width:720px){.nav-toggle{display:block}.nav{display:none;width:100%;flex-direction:column;align-items:stretch;padding-bottom:.6rem}.nav.open{display:flex}.nav-user{margin:.5rem .8rem}}.page{max-width:1100px;margin:0 auto;padding:1rem 1rem 4rem}.page-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.page-head h1{margin:0}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin-bottom:1rem}.loading{display:flex;align-items:center;gap:.6rem;padding:2rem 0;color:var(--muted);justify-content:center}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-box{background:var(--danger-bg);border:1px solid #f1b5ae;color:#7a1a12;border-radius:var(--radius);padding:.8rem 1rem;margin:.75rem 0}.error-box p{margin:0 0 .5rem}.error-box p:last-child{margin-bottom:0}.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--muted)}.empty-title{font-size:1.15rem;font-weight:600;color:var(--text);margin:0 0 .5rem}.banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem}.banner-warn{background:var(--warn-bg);border:1px solid var(--warn-border);font-weight:600}.deleted-banner p{margin:0}.deleted-banner .deleted-reason{font-weight:400;margin-top:.2rem;overflow-wrap:anywhere}.deleted-banner .deleted-hint{font-weight:400;margin-top:.2rem}.quick-reasons{display:flex;flex-wrap:wrap;gap:.4rem}.gig-card-deleted{overflow-wrap:anywhere}.toasts{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:100;width:min(32rem,calc(100% - 2rem))}.toast{display:flex;align-items:center;gap:.75rem;background:#1f1f1f;color:#fff;padding:.6rem .6rem .6rem 1rem;border-radius:var(--radius);box-shadow:0 6px 20px #00000040}.toast span{flex:1}.toast-error{background:var(--danger)}.toast-close{background:none;border:none;color:#fff;font-size:1.4rem;min-width:36px;min-height:36px;cursor:pointer}.dialog{border:none;border-radius:14px;padding:0;width:min(30rem,calc(100% - 1.5rem));max-height:calc(100vh - 2rem);box-shadow:0 20px 50px #0000004d}.dialog-wide{width:min(56rem,calc(100% - 1.5rem))}.dialog::backdrop{background:#0f172380}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem .75rem .25rem 1.25rem}.dialog-head h2{margin:0}.dialog-body{padding:.5rem 1.25rem 1.25rem}.gig-sheet p,.gig-sheet .banner{margin:0}.sheet-quick{display:flex;align-items:center;gap:1rem}.sheet-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.75rem 1.25rem;align-items:start}.sheet-group{border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .75rem .5rem;margin:0;min-width:0}.sheet-group legend{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--brand);padding:0 .3rem}.sheet-option{display:flex;align-items:center;gap:.65rem;min-height:var(--tap);cursor:pointer}.sheet-option input{width:1.15rem;height:1.15rem;flex:none}.sheet-option-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.sheet-option-value{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-option-value.is-empty{font-style:italic;color:var(--border-strong)}.sheet-actions{position:sticky;bottom:-1.25rem;background:var(--card);padding:.75rem 0 1.25rem;margin-bottom:-1.25rem;border-top:1px solid var(--border)}.menu{position:relative}.menu>summary{list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu-items{position:absolute;right:0;top:100%;z-index:30;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #0000002e;min-width:12rem;padding:.3rem;display:flex;flex-direction:column}.menu-items button{text-align:left;background:none;border:none;font:inherit;padding:.65rem .8rem;border-radius:6px;cursor:pointer;min-height:44px}.menu-items button:hover{background:#eef1f5}.menu-items button.danger{color:var(--danger)}.badge{display:inline-block;padding:.12rem .55rem;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.01em;white-space:nowrap;background:var(--st-enquiry-bg);color:var(--st-enquiry-fg)}.badge-provisional{background:var(--st-provisional-bg);color:var(--st-provisional-fg)}.badge-confirmed{background:var(--st-confirmed-bg);color:var(--st-confirmed-fg)}.badge-cancelled{background:var(--st-cancelled-bg);color:var(--st-cancelled-fg);text-decoration:line-through}.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--border);margin-bottom:.75rem;overflow-x:auto}.tab{background:none;border:none;font:inherit;font-weight:600;color:var(--muted);padding:.6rem 1rem;min-height:var(--tap);border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer}.tab.active{color:var(--brand);border-bottom-color:var(--primary)}.search{margin-bottom:1rem}.gig-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.gig-card{display:grid;grid-template-columns:9.5rem 1fr auto;gap:.25rem 1rem;align-items:center;background:var(--card);border:1px solid var(--border);border-left:6px solid var(--st-enquiry-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:.8rem 1rem;text-decoration:none;color:inherit}.gig-card:hover{border-color:var(--border-strong)}.gig-card.status-provisional{border-left-color:#e9b949}.gig-card.status-confirmed{border-left-color:#3aa35f}.gig-card.status-cancelled{border-left-color:#d9534f;opacity:.75}.gig-card.status-cancelled .gig-name{text-decoration:line-through}.gig-card-date{font-weight:700;color:var(--brand)}.gig-card-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.gig-name{font-weight:700;font-size:1.08rem}.gig-card-line{color:var(--muted);font-size:.92rem;margin-top:.15rem}.gig-card-lineup{text-align:center;line-height:1.1;color:var(--muted)}.gig-card-lineup.full{color:var(--ok)}.lineup-num{display:block;font-weight:700;font-size:1.15rem}.lineup-label{font-size:.75rem}@media(max-width:640px){.gig-card{grid-template-columns:1fr auto}.gig-card-date{grid-column:1 / -1;font-size:.95rem}}.back-link{display:inline-flex;align-items:center;min-height:40px;text-decoration:none;font-weight:600;margin-bottom:.5rem}.gig-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.gig-header h1{margin-bottom:.35rem;word-break:break-word}.gig-header h1.cancelled{text-decoration:line-through}.gig-header-meta{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-weight:600}.gig-actions{display:flex;gap:.4rem;flex-wrap:wrap}.sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;align-items:start}.section-lineup,.section-notes,.section-custom{grid-column:1 / -1}@media(max-width:860px){.sections{grid-template-columns:1fr}}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.section-head h2{margin:0;color:var(--brand)}.section-head-extra{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:.25rem .75rem}.hidden-fields{border:1px dashed var(--border);border-radius:8px;padding:.5rem .75rem;margin-bottom:.6rem}.hidden-fields p{margin:0}.lineup-count{font-weight:700;color:var(--muted)}.lineup-count.full{color:var(--ok)}.field-list{display:flex;flex-direction:column;gap:.9rem}.lineup-list{display:flex;flex-direction:column}.lineup-row{display:grid;grid-template-columns:minmax(8rem,11rem) minmax(0,1fr) minmax(0,1.2fr) 5.2rem 2.2rem;grid-template-areas:"pos person notes depsbtn menu" ". status status status ." "deps deps deps deps deps" "problems problems problems problems problems";gap:0 .6rem;align-items:center;padding:.35rem 0;border-top:1px solid #eef1f5}.lineup-row:first-child{border-top:none}.lineup-pos{grid-area:pos;display:flex;flex-direction:column;min-width:0}.lineup-pos .field-label{font-size:.92rem}.lineup-person{grid-area:person;min-width:0}.lineup-notes{grid-area:notes;min-width:0}.lineup-menu{grid-area:menu}.lineup-menu .icon-btn{min-height:36px;min-width:36px}.lineup-problems{grid-area:problems}.lineup-deps-btn{grid-area:depsbtn;display:flex;justify-content:flex-end}.deps-btn{gap:.3rem;min-width:5.2rem;white-space:nowrap}.deps-count{display:inline-block;min-width:1.3rem;padding:0 .3rem;border-radius:999px;background:#e7eaee;color:var(--text);font-size:.78rem;font-weight:700;text-align:center}.deps-btn-yes .deps-count{background:var(--st-confirmed-bg);color:var(--st-confirmed-fg)}.deps-btn-no .deps-count{background:var(--st-cancelled-bg);color:var(--st-cancelled-fg)}.deps-btn-maybe .deps-count{background:var(--st-provisional-bg);color:var(--st-provisional-fg)}.deps-btn.is-dirty{box-shadow:0 0 0 2px var(--warn-border)}.deps-panel{grid-area:deps;margin:.35rem 0 .2rem;padding:.5rem .6rem;border:1px solid #e3e8ee;border-radius:8px;background:#f6f8fa}.lineup-row.deps-is-dirty .deps-panel{border-color:var(--warn-border);background:#fffcf2}.deps-empty{margin:0 0 .4rem}.deps-list{display:flex;flex-direction:column;gap:.35rem;margin:0 0 .5rem;padding:0;list-style:none}.dep-entry{display:grid;grid-template-columns:minmax(7rem,1.2fr) 9.5rem 6.5rem minmax(6rem,1.5fr) 9rem;gap:.35rem;align-items:center;padding-left:.4rem;border-left:4px solid var(--border-strong)}.dep-yes{border-left-color:var(--ok)}.dep-no{border-left-color:var(--danger)}.dep-maybe{border-left-color:var(--warn-border)}.dep-entry>*{min-width:0}.dep-actions{display:flex;align-items:center;justify-content:flex-end;gap:.3rem}.dep-seated{color:var(--ok);font-weight:600;white-space:nowrap}.deps-add{display:flex;gap:.4rem;align-items:center}.deps-add .combo{flex:1;min-width:0}@media(max-width:600px){.dep-entry{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-bottom:.35rem;border-bottom:1px solid #e3e8ee}.dep-actions{grid-column:1 / -1}}.lineup-status{grid-area:status;display:flex;flex-wrap:wrap;gap:.25rem .4rem;margin:.3rem 0 .1rem;padding:0;list-style:none}.seat-note{font-size:.84rem;line-height:1.3;padding:.1rem .5rem;border-radius:10px;border:1px solid transparent}.seat-note:before{font-weight:700;margin-right:.3rem}.seat-note-bad{color:var(--danger);background:var(--danger-bg);border-color:#f2b8b2}.seat-note-bad:before{content:"✕"}.seat-note-warn{color:#7a4d00;background:var(--warn-bg);border-color:#f0d48a}.seat-note-warn:before{content:"?"}.seat-note-info{color:var(--muted);background:#eef1f5}.seat-note-info:before{content:"i";font-style:italic;font-family:Georgia,serif}.spond-summary{margin:0 0 .6rem;padding:.5rem .75rem;border-radius:8px;background:#f6f8fa;border:1px solid #e3e8ee}.spond-summary p{margin:0}.spond-summary .spond-unseated{margin-top:.25rem;color:#7a4d00}.lineup-print-person,.lineup-print-notes{display:none}.lineup-row .lineup-person input{background:var(--seat-filled-bg);border-color:var(--seat-filled-border)}.lineup-row.is-vacant .lineup-person input{background:var(--seat-vacant-bg);border-color:var(--seat-vacant-border);border-style:dashed}@media(max-width:600px){.lineup-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 2.2rem;grid-template-areas:"pos depsbtn menu" "person notes notes" "status status status" "deps deps deps" "problems problems problems";gap:.2rem .5rem}}.field-head{display:flex;align-items:center;gap:.5rem;min-height:2rem}.field-head .field-label{flex:1}.field-control{display:flex;gap:.4rem;align-items:flex-start;margin-top:.15rem}.field-control>:first-child{flex:1;min-width:0}.field-link{flex-shrink:0;min-height:var(--tap)}.field-checkbox .field-control>:first-child{flex:0 1 auto}.print-value{display:none}.dirty-mark{font-size:.78rem;font-weight:600;color:#7a4d00;white-space:nowrap}.field.is-dirty:not(.lineup-row) :is(input:not([type=checkbox]),textarea,select),.lineup-row.notes-is-dirty .lineup-notes input{border-color:var(--warn-border);background:#fffcf2}.lineup-row.is-dirty .lineup-person input:not(:focus){box-shadow:0 0 0 2px var(--warn-border)}.field.has-error :is(input,textarea,select),.lineup-row.notes-has-error .lineup-notes input,.lineup-row.has-error .lineup-person input{border-color:var(--danger)}.save-bar{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin:1rem -.25rem 0;padding:.65rem .9rem;background:var(--card);border:1px solid var(--warn-border);border-radius:var(--radius) var(--radius) 0 0;box-shadow:0 -4px 14px #1018281f}.save-bar-problem{border-color:var(--danger)}.save-bar-msg{margin:0;font-weight:600;flex:1 1 14rem}.save-bar-problem .save-bar-msg{color:var(--danger)}.save-bar-actions{display:flex;gap:.5rem;margin-left:auto}.save-bar-actions .btn-primary{min-width:7rem}.new-gig-kicker{margin:0;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.new-gig-hint{margin-top:-.5rem}.money-input{display:flex;align-items:stretch}.money-prefix{display:flex;align-items:center;padding:0 .7rem;border:1px solid var(--border-strong);border-right:none;border-radius:8px 0 0 8px;background:#eef1f5;font-weight:700}.money-input input{border-radius:0 8px 8px 0}.conflict{margin-top:.4rem;background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;padding:.6rem .8rem}.conflict p{margin:0 0 .5rem}.conflict .row-actions{justify-content:flex-start}.combo{position:relative}.combo-list{position:absolute;left:0;right:0;top:calc(100% + 2px);z-index:25;max-height:16rem;overflow-y:auto;list-style:none;margin:0;padding:.25rem;background:#fff;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 10px 25px #00000026}.combo-list li{display:flex;align-items:baseline;gap:.5rem;padding:.6rem;border-radius:6px;cursor:pointer;min-height:44px}.combo-list li:hover,.combo-list li.active{background:#fbe7e7}.combo-name{font-weight:600}.combo-pos{color:var(--muted);font-size:.85rem}.combo-used{margin-left:auto;font-size:.75rem;color:#7a4d00;background:var(--st-provisional-bg);padding:0 .4rem;border-radius:999px}.gig-footer{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:.5rem}.hidden-list{list-style:none;padding:0;margin:.4rem 0 0;display:flex;flex-direction:column;gap:.3rem}.hidden-list li{display:flex;align-items:center;gap:.75rem}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:.6rem 0;border-bottom:1px solid var(--border)}.card.timeline{padding:0 1rem}.timeline li:last-child{border-bottom:none}.timeline-who{font-weight:700}.timeline-when{color:var(--muted);font-size:.9rem;cursor:help}.timeline-gig{font-weight:700;display:inline-block;margin-bottom:.15rem}.toolbar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:.75rem}.toolbar input[type=search]{flex:1;min-width:12rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--card)}th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}tr.inactive td{color:var(--muted);background:#f8f9fa}td.row-actions{display:table-cell;text-align:right;white-space:nowrap}td.row-actions .btn{margin-left:.3rem}.roster-table,.users-table{border:1px solid var(--border);border-radius:var(--radius)}.roster-table td{padding:.35rem .3rem}.roster-table td :is(input,select){width:100%;min-width:8rem}.roster-table td.is-dirty :is(input,select){border-color:var(--warn-border);background:#fffcf2}.roster-table td.has-conflict :is(input,select){border-color:var(--warn-border);box-shadow:0 0 0 2px var(--warn-border)}.roster-table td.has-error input{border-color:var(--danger)}@media(max-width:720px){.roster-table thead,.users-table thead{display:none}.roster-table,.users-table,.roster-table tbody,.users-table tbody,.roster-table tr,.users-table tr,.roster-table td,.users-table td{display:block;width:100%}.roster-table,.users-table{border:none;background:none}.roster-table tr,.users-table tr{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.6rem;padding:.4rem .2rem}.roster-table td,.users-table td{border:none;padding:.25rem .8rem}.roster-table td[data-label]:before,.users-table td[data-label]:before{content:attr(data-label);display:inline-block;width:6.5rem;color:var(--muted);font-size:.8rem;text-transform:uppercase}.roster-table td[data-label=Name]:before,.users-table td[data-label=Who]:before{display:none}.roster-table td[data-label]{display:flex;align-items:center}.roster-table td[data-label]:before{flex:none}.roster-table td :is(input,select){min-width:0;flex:1}td.row-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.4rem;padding-top:.5rem!important}td.row-actions .btn{margin-left:0}}.member-form{margin-bottom:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1rem;margin-bottom:.75rem}.form-grid .span-2{grid-column:1 / -1}@media(max-width:600px){.form-grid{grid-template-columns:1fr}}.help-steps{margin:0;padding-left:1.3rem}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem 1rem}@media(max-width:700px){.mapping-grid{grid-template-columns:1fr 1fr}}@media(max-width:440px){.mapping-grid{grid-template-columns:1fr}}.preview-wrap{max-height:22rem;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.preview-table th{position:sticky;top:0;background:#fff}.preview-table tr.excluded td{color:var(--muted);text-decoration:line-through}.preview-table td:first-child{width:2.5rem}.import-result{font-size:1.1rem}.lineup-plan h3{margin:0 0 .2rem;font-size:1rem}.plan-list{margin:0;padding-left:1.3rem}.add-user-form{display:grid;grid-template-columns:2fr 1.5fr auto auto;gap:.6rem;align-items:end;margin-bottom:.5rem}@media(max-width:720px){.add-user-form{grid-template-columns:1fr}}.lineup-editor{list-style:none;padding:0;margin:0 0 .75rem;display:flex;flex-direction:column;gap:.35rem}.lineup-editor li{display:flex;align-items:center;gap:.3rem}.lineup-editor input{flex:1;min-width:0}.pos-num{width:2rem;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.lineup-editor+.inline-input{margin-bottom:.75rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(160deg,var(--brand) 0%,var(--brand-dark) 100%)}.login-card{background:#fff;border-radius:16px;padding:2rem 1.5rem;width:min(26rem,100%);box-shadow:0 20px 50px #0000004d;text-align:center}.login-card form{text-align:left}.dev-banner{background:#ffdd57;color:#3d2e00;font-weight:800;text-align:center;padding:.5rem;border-radius:8px;letter-spacing:.02em}.gig-card-main{min-width:0}.gig-card-todo{color:var(--todo-fg);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gig-header-text{min-width:0;max-width:100%}.still-needed{margin:.4rem 0 0;font-size:.92rem;color:var(--todo-fg);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.req-mark{color:var(--muted);font-weight:700}.field.is-required .field-head .field-label{flex:0 1 auto}.field.is-required .field-head .menu{margin-left:auto}.field.is-missing .req-mark{color:var(--todo-fg)}.missing-mark{font-size:.75rem;font-weight:600;color:var(--todo-fg);background:var(--todo-bg);border-radius:999px;padding:.05rem .5rem;white-space:nowrap}.lineup-pos-label{display:flex;align-items:baseline;gap:.2rem;min-width:0}.required-lineup{grid-column:1 / -1}.required-seats{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:0 1rem}@media print{@page{margin:12mm}:root{font-size:10pt;background:#fff}body{background:#fff}.no-print,.topbar,.toasts,.back-link,.gig-actions,.gig-footer,.banner,.history,.field-help,.field-control,.save-bar,.lineup-person,.lineup-notes,.lineup-menu,.lineup-problems,.menu{display:none!important}.page{max-width:none;padding:0}.gig-header{margin-bottom:.4rem;border-bottom:2px solid #000;padding-bottom:.3rem}.gig-header h1{font-size:18pt}.badge{border:1px solid #000;background:none!important;color:#000!important}.card{box-shadow:none;border:none;border-radius:0;padding:.2rem 0;margin:0 0 .3rem;break-inside:avoid}.sections{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem}.section-head{border-bottom:1px solid #999;margin-bottom:.2rem}.section-head h2{font-size:11pt;color:#000}.section-empty,.field.is-empty{display:none!important}.field-list{gap:.15rem}.field{display:grid;grid-template-columns:9.5rem 1fr;gap:.4rem;break-inside:avoid}.field-head{min-height:0}.field-label{font-size:9pt;font-weight:700;color:#000}.print-value{display:block;white-space:pre-wrap}.lineup-row{grid-template-columns:9.5rem minmax(0,1fr) minmax(0,1.4fr);grid-template-areas:none;gap:0 .6rem;padding:.05rem 0;border-top:1px solid #ddd;font-size:9pt}.lineup-row .lineup-pos,.lineup-row .lineup-print-person,.lineup-row .lineup-print-notes{grid-area:auto}.lineup-row .print-value{display:block}.lineup-row.is-vacant .lineup-print-person:before{content:"—"}a{color:#000;text-decoration:none}}.combo-list li.combo-venue{flex-direction:column;align-items:flex-start;gap:.1rem}.combo-venue .combo-name{overflow-wrap:anywhere}.venue-offer{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;margin-top:.4rem;padding:.5rem .7rem;border-radius:8px;background:var(--st-provisional-bg);font-size:.9rem}.venue-offer p{margin:0;flex:1 1 14rem;white-space:pre-line}
