*,:before,:after{box-sizing:border-box}html,body{color:#1a1a1a;background:#fff;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:40rem;margin:0 auto;padding:1.5rem 1rem}h1{overflow-wrap:anywhere;margin:0;font-size:1.75rem;line-height:1.2}.test-banner{z-index:10;color:#fff;text-align:center;letter-spacing:.04em;background:#c2410c;padding:.5rem 1rem;font-weight:700;position:sticky;top:0}.muted{color:#555}main:has(.weeks){max-width:56rem}h2{margin:2rem 0 .5rem;font-size:1.25rem}ul.plain{margin:0;padding:0;list-style:none}.row{align-items:center;gap:.5rem .75rem;margin:.4rem 0;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:12rem;min-width:0}label{color:#555;flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}input,select,button{font:inherit;color:#1a1a1a;background:#fff;border:1px solid #8a8a8a;border-radius:.35rem;max-width:100%;min-height:2.5rem;padding:.25rem .6rem}input[type=color]{width:3rem;padding:.1rem}button{cursor:pointer;background:#f1f1f1}button.link{color:#0b57d0;background:0 0;border:0;padding:0 .25rem;text-decoration:underline}button.link.current{color:#1a1a1a;font-weight:700;text-decoration:none}.badge{color:#14501c;background:#dff3e1;border-radius:1rem;padding:.1rem .5rem;font-size:.8rem}.badge.closed{color:#333;background:#e4e4e4}.error{color:#a30000;margin:.3rem 0}.week{border:1px solid #c8c8c8;border-left-width:.5rem;border-radius:.4rem;margin:.6rem 0;padding:.5rem .75rem}.week.closed{background:#f0f0f0}.week p{margin:.2rem 0}.notes{margin-top:.5rem}.legend{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.chip i{vertical-align:-.15rem;border:1px solid #8a8a8a;width:1rem;height:1rem;display:inline-block}.warning{background:#fff4e0;border:1px solid #b26a00;border-radius:.35rem;margin:.4rem 0;padding:.25rem .75rem}button:disabled{opacity:.5;cursor:not-allowed}.admin-nav{margin:0 0 1rem}main:has(.people){max-width:56rem}.panel{border:1px solid #c8c8c8;border-radius:.4rem;margin:.6rem 0;padding:.5rem .75rem .75rem}.panel h2,.panel h3{margin:.5rem 0;font-size:1.05rem}.person{border-bottom:1px solid #e0e0e0;padding:.25rem 0}textarea{font:inherit;resize:vertical;border:1px solid #8a8a8a;border-radius:.35rem;max-width:100%;padding:.35rem .6rem}label.wide{flex-basis:100%}.link-box{font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.danger{border-top:1px solid #e0b4b4;margin-top:1rem;padding-top:.25rem}main:has(.staff){max-width:64rem}.staff-header p{margin:.3rem 0}.staff-blocks{grid-template-columns:minmax(0,1fr);gap:0 1.5rem;display:grid}@media (width>=48rem){.staff-blocks{grid-template-columns:repeat(2,minmax(0,1fr))}}.staff-blocks h2{margin:1.5rem 0 .5rem}.card{overflow-wrap:anywhere;border:1px solid #c8c8c8;border-radius:.4rem;margin:.5rem 0;padding:.5rem .75rem}.card h3{margin:0;font-size:1rem}.card .dates{margin-left:.4rem;font-weight:400}.card p{margin:.25rem 0 0;font-size:.92rem}.card.closed{color:#555;background:#ececec;border-style:dashed}.closed-reason,.note-kind{font-weight:600}.narrow{width:5.5rem}.round{border:1px solid #c8c8c8;border-radius:.4rem;margin:.6rem 0;padding:.5rem .75rem}.grid-scroll{border:1px solid #c8c8c8;border-radius:.4rem;max-width:100%;overflow-x:auto}table.grid{border-collapse:collapse;min-width:100%}table.grid th,table.grid td{text-align:left;vertical-align:top;white-space:nowrap;border-bottom:1px solid #e4e4e4;padding:.3rem .5rem;font-weight:400}table.grid thead th{background:#f6f6f6;font-weight:700}table.grid tbody th{background:#fff;font-weight:700;position:sticky;left:0}table.grid tr.inactive th{font-weight:400}table.grid td.over{color:#a30000;font-weight:700}.rounds-list ul{margin:0}.round-block{border:1px solid #c8c8c8;border-radius:.4rem;margin:.5rem 0;padding:.5rem .75rem}.round-block p{margin:.25rem 0 0}.round-block.completed{color:#444;background:#f0f0f0}.round-block.open{border-width:2px;border-color:#14501c}.round-block.not_open{color:#555}main:has(.rounds){max-width:56rem}.card-tap{text-align:left;width:100%;min-height:3rem;font:inherit;color:inherit;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.15rem;margin:0;padding:.25rem 0;display:flex}.card-title{font-weight:700}.card-state{color:#555;font-size:.88rem}.card.selected{background:#e8f0fe;border:2px solid #0b57d0}.card.selected .card-state{color:#0b3d91;font-weight:600}.card.confirmed{background:#dff3e1;border:2px solid #14501c}.card.confirmed .card-state{color:#14501c;font-weight:700}.card.confirmed .card-state:before{content:"🔒︎ "}.days{margin-top:.25rem}.days button.link{min-height:2.5rem;padding:0 .25rem}.day-grid{border:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin:.25rem 0 0;padding:0;display:grid}.day-grid legend{color:#333;margin-bottom:.25rem;font-size:.85rem}label.day{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #8a8a8a;border-radius:.35rem;flex-direction:column;align-items:center;gap:.1rem;min-height:3.25rem;padding:.2rem 0;font-size:.8rem;display:flex}label.day.on{color:#fff;background:#0b57d0;border-color:#0b57d0}label.day input{width:1.1rem;height:1.1rem;min-height:0;margin:0}.day-num{font-weight:700}.pick-list{margin:.25rem 0;padding-left:1.2rem}.round-block.current{background:#f3f8ff}.staff.picking{padding-bottom:5rem}.submit-bar{z-index:5;padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #c8c8c8;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 6px #00000014}.submit-bar .row{max-width:64rem;margin:0 auto}.submit-bar .error-line{max-width:64rem;margin:0 auto .3rem}.error-line .error{margin:0 0 .3rem}.round-note{color:#8a4b00;font-weight:600}button.primary{color:#fff;background:#0b57d0;border-color:#0b57d0;padding:.25rem 1.25rem;font-weight:700}.overlay{z-index:10;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:.5rem;width:100%;max-width:28rem;max-height:100%;padding:1rem;overflow-y:auto}.dialog h2{margin-top:0}.success{background:#dff3e1;border:2px solid #14501c;border-radius:.5rem;padding:1rem}.person-round p{margin:0 0 .4rem}.card .load{color:#3d3d3d;font-size:.88rem}.card.full{background:#fdf0ef;border:2px solid #b3261e}.card .full-label{color:#fff;letter-spacing:.04em;background:#b3261e;border-radius:.25rem;margin-top:.3rem;padding:0 .45rem;font-weight:700;display:inline-block}main:has(.dashboard){max-width:48rem}main:has(.person-page){max-width:64rem}.dash-round p{margin:.2rem 0}.figures{flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:.3rem;display:flex}.figure strong{font-size:1.25rem}.shortcuts .button-link,a.button-link{color:#1a1a1a;background:#f1f1f1;border:1px solid #8a8a8a;border-radius:.35rem;align-items:center;min-height:2.5rem;padding:.25rem 1rem;text-decoration:none;display:inline-flex}.list-controls{flex-direction:column;gap:.25rem;display:flex}.list-controls input[type=search]{width:100%}label.check{color:#1a1a1a;flex-direction:row;align-items:center;gap:.5rem;min-height:2.5rem;font-size:.95rem}label.check input{width:1.2rem;height:1.2rem;min-height:0}.people-list{border-top:1px solid #e0e0e0}.person-row{border-bottom:1px solid #e0e0e0;flex-wrap:wrap;align-items:baseline;gap:.15rem .75rem;padding:.5rem .25rem;display:flex}.person-name{overflow-wrap:anywhere;flex:11rem;min-width:0;font-weight:700}.submitted{color:#14501c}.not-submitted{color:#8a4b00}details.panel>summary{cursor:pointer;align-items:center;min-height:2.5rem;font-weight:700;display:flex}.person-page .back{margin:0 0 .5rem}.person-page .panel h2{margin-top:.5rem}.copy-manual{background:#fff4e0;border:1px solid #b26a00;border-radius:.35rem;flex-basis:100%;padding:.25rem .75rem .5rem}.copy-manual textarea{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:.85rem}.person-calendar h3{margin:.5rem 0}.card h4{margin:0;font-size:1rem}.card.mine{background:#dff3e1;border:2px solid #14501c}.card.mine.closed{background:#e4efe5}.mine-days{color:#14501c}.full-weeks li{padding:.15rem 0}.over-flag{color:#a30000;font-weight:700}main:has(.lists){max-width:48rem}.lists .panel h2{margin-top:.5rem}.swatch{vertical-align:-.15rem;border:1px solid #8a8a8a;border-radius:.2rem;flex:none;width:1rem;height:1rem;display:inline-block}.type-row,.setting-row{border-top:1px solid #e0e0e0;padding:.5rem 0}.type-row:first-child,.setting-row:first-of-type{border-top:0}.setting-row label{max-width:100%}.setting-row input:not([type=color]),.setting-row select,.setting-row textarea{width:100%}.setting-row p{margin:.2rem 0;font-size:.9rem}.person-days select{max-width:100%}.day-row{border-bottom:1px solid #e0e0e0;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;padding:.25rem 0;display:flex}.day-row label.check{flex:9rem}.day-row select{flex:0 14rem}.person-page h3{margin:1rem 0 .25rem;font-size:1rem}fieldset.bare{border:0;min-width:0;margin:0;padding:0}.year-bar{margin:.5rem 0}.year-bar select{max-width:100%}.read-only-banner{background:#eee;border-color:#5b5b5b}fieldset.bare:disabled input,fieldset.bare:disabled select,fieldset.bare:disabled textarea{color:#555;background:#f4f4f4}main:has(.weeks-page){max-width:100%}table.summary{border-collapse:collapse;font-size:.85rem}table.summary th,table.summary td{vertical-align:top;text-align:left;overflow-wrap:anywhere;border-right:1px solid #c8c8c8;min-width:9.5rem;max-width:13rem;padding:.25rem .4rem;font-weight:400}table.summary th[scope=row]{z-index:1;background:#f6f6f6;border-right:2px solid #8a8a8a;width:4.5rem;min-width:4.5rem;font-weight:700;position:sticky;left:0}table.summary .closed{color:#444;background:#ececec}table.summary .notes-row td p{margin:0 0 .2rem}table.summary td.count{border-bottom:2px solid #8a8a8a;font-weight:700}table.summary td.count.high{background:#ffe08a}table.summary td.count.full{color:#6b0000;background:#f4b4b4}table.summary .own-cap{font-weight:400}table.summary td.place{border:1px dashed #8a8a8a}table.summary td.last-place{border-bottom:2px solid #1a1a1a}table.summary td.over{color:#a30000;font-weight:700}table.summary .selected{outline-offset:-2px;outline:2px solid #0b57d0}.week-head{text-align:left;width:100%;min-height:2.5rem;color:inherit;background:0 0;border:0;flex-direction:column;align-items:flex-start;padding:0;display:flex}.week-head .week-no{font-weight:700}button.week-head .week-no{text-decoration:underline}.week-head .week-dates{font-size:.8rem}table.summary .name{border-left:4px solid #0000;padding-left:.3rem;display:block}table.summary .name.inactive{color:#555;font-style:italic}.grid-key .legend{margin:.4rem 0}.swatch{width:2.5rem}.week-editor h2{margin:.25rem 0}.week-editor h3{margin:.75rem 0 .25rem;font-size:1rem}
