.app-main{max-width:none!important}.controls{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}.nav{display:flex;align-items:center;gap:.4rem}.month-label{font-family:var(--font-display);font-size:1.2rem;min-width:8rem;text-align:center}.btn,.btn-ghost,.vt,.btn-del,#publishBtn{font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:none;padding:.4rem .8rem;border-radius:4px;cursor:pointer;line-height:1.1}.btn-ghost{background:none;border:1px solid var(--mahogany);color:var(--brewery-dark)}.btn-ghost:hover{background:#0000000a}#publishBtn,.btn{background:var(--mid-olive);color:var(--warm-canvas);border:1px solid var(--mid-olive)}#prev,#next{font-size:1.1rem;padding:.15rem .6rem;line-height:1}.tab{font-size:.85rem}.muted{color:var(--fired-brick);font-size:.85rem;margin:.5rem 0}.grid-wrap{overflow-x:scroll;overflow-y:auto;border:1px solid #D8CFC2;border-radius:6px;max-height:calc(100vh - 230px);scrollbar-width:thin;scrollbar-color:#B0A188 #EFE9DD}.grid-wrap::-webkit-scrollbar{width:14px;height:14px;-webkit-appearance:none}.grid-wrap::-webkit-scrollbar-track{background:#efe9dd;border-radius:7px}.grid-wrap::-webkit-scrollbar-thumb{background:#c9bba8;border-radius:7px;border:3px solid #EFE9DD}.grid-wrap::-webkit-scrollbar-thumb:hover{background:#b0a188}.grid-wrap::-webkit-scrollbar-corner{background:#efe9dd}table.rota{border-collapse:collapse;table-layout:fixed;background:var(--warm-canvas);font-size:13px}table.rota th,table.rota td{border:1px solid #D8CFC2}.hrs-col{background:var(--brewery-dark);color:var(--warm-canvas);position:sticky;left:0;z-index:3;width:60px;min-width:60px;max-width:60px;padding:4px;text-align:center;vertical-align:middle;font-size:11px;line-height:1.2}thead .hrs-col{position:sticky;top:0;z-index:7;font-weight:600}.hrs-total{display:block;font-weight:700;font-size:14px}.hrs-hol{display:block;font-size:8px;color:#a6d785;text-transform:uppercase;letter-spacing:.04em}.staff-col{background:var(--brewery-dark);color:var(--warm-canvas);position:sticky;left:60px;z-index:2;width:150px;min-width:150px;max-width:150px;padding:6px 10px;text-align:left;vertical-align:middle}thead .staff-col{position:sticky;top:0;z-index:7}.staff-name{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-team{font-size:10px;color:#c9bba8;text-transform:uppercase;letter-spacing:.05em;margin-top:1px}thead th.date-cell{position:sticky;top:0;z-index:3;background:#ece5d7;width:70px;min-width:70px;max-width:70px;padding:4px 0;text-align:center;cursor:pointer}thead th.date-cell:hover{background:#e3dac9}.closed-chips{display:flex;gap:2px;justify-content:center;margin-top:2px}.closed-chip{font-size:8px;font-weight:700;color:var(--warm-canvas);background:var(--fired-brick);border-radius:2px;padding:0 3px;letter-spacing:.03em;line-height:1.5}.closed-label{display:block;font-size:7.5px;line-height:1.05;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--fired-brick);padding:2px 1px;text-align:center}.cl-areas{display:flex;gap:1.2rem;flex:1;font-size:.95rem}.cl-areas label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.m-note{font-size:.72rem;color:var(--fired-brick);margin-bottom:.5rem}th.date-cell.weekend{background:#e3dac9}table.rota .is-today{box-shadow:inset 2px 0 0 var(--forest-olive),inset -2px 0 0 var(--forest-olive)}table.rota .is-today.is-today-top{box-shadow:inset 2px 0 0 var(--forest-olive),inset -2px 0 0 var(--forest-olive),inset 0 2px 0 var(--forest-olive)}table.rota .is-today.is-today-bottom{box-shadow:inset 2px 0 0 var(--forest-olive),inset -2px 0 0 var(--forest-olive),inset 0 -2px 0 var(--forest-olive)}thead th.date-cell.is-today,thead th.date-cell.is-today.weekend{background:color-mix(in srgb,var(--warm-canvas) 78%,var(--mid-olive))}thead th.date-cell.is-today .d{color:var(--forest-olive)}th.date-cell .d{font-weight:700;font-size:15px;color:var(--brewery-dark)}th.date-cell .dow{color:#7a6e60;font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-top:2px}td.shift-cell{background:var(--warm-canvas);padding:0;width:70px;min-width:70px;max-width:70px;height:46px;text-align:center;vertical-align:middle;cursor:pointer;transition:background .1s}td.shift-cell.weekend{background:#efe9dd}td.shift-cell.closed-kitchen{background:repeating-linear-gradient(45deg,#e4e9d5,#e4e9d5 6px,#c8d3a6 6px 12px)}td.shift-cell.closed-cafe{background:repeating-linear-gradient(45deg,#f1e2d8,#f1e2d8 6px,#e3c6b4 6px 12px)}td.shift-cell.closed-both{background:#d8c4ac}td.shift-cell.editable:hover{background:#ece5d7}td.shift-cell .empty{color:#d0c6b6;font-size:16px;font-weight:300}td.shift-cell .add-hint{font-size:.6rem;color:var(--dusty-coral);text-align:center;opacity:.4;padding-top:1px;cursor:pointer}td.shift-cell.editable:hover .add-hint{opacity:1}td.shift-cell.editable:hover .empty{color:var(--dusty-coral)}.shift-block{padding:4px 2px;border-bottom:1px solid rgba(0,0,0,.08);cursor:pointer}.shift-block:last-of-type{border-bottom:none}.shift-block:hover{filter:brightness(.96)}.shift-block.draft{opacity:.5;border:1px dashed var(--fired-brick);border-radius:3px}.shift-block.pot-kitchen{background:#8c472e38}.shift-block.pot-cafe{background:#2e40092e}.shift-block.pot-events{background:#bf725647}.shift-block.pot-mgmt{background:#2c181024}.shift-block .t{font-weight:600;font-size:12px;line-height:1.25;color:var(--brewery-dark)}.shift-block .cost{font-size:10px;color:var(--fired-brick);margin-top:1px;font-weight:500}td.shift-cell.leave{vertical-align:middle}.leave-tag{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}td.shift-cell.leave.hol{background:#e5e5cc}td.shift-cell.leave.hol .leave-tag{color:var(--forest-olive)}.leave-hrs{display:block;font-size:10px;font-weight:600;color:var(--forest-olive);margin-top:1px}td.shift-cell.leave.sick{background:#edd5c9}td.shift-cell.leave.sick .leave-tag{color:var(--fired-brick)}td.shift-cell.leave.unpaid{background:#e2dcd0}td.shift-cell.leave.unpaid .leave-tag{color:var(--mahogany)}tr.totals td.total-cell{background:#ece5d7;font-weight:700;text-align:center;font-size:11px;color:var(--brewery-dark)}.totals-toggle{cursor:pointer;user-select:none}tr.totals.pot-row td.total-cell{background:#f2ece0;font-weight:500;color:var(--fired-brick);font-size:10px}tr.totals.pot-row .staff-col{color:#c9bba8;font-weight:500}.pot-row-label{padding-left:1.6rem!important;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.view-toggle{display:inline-flex;border:1px solid var(--mahogany);border-radius:4px;overflow:hidden;margin-left:.5rem}.vt{border:none;background:none;padding:.25rem .7rem;cursor:pointer;font-size:.85rem;color:var(--brewery-dark)}.vt.active,#selectBtn.active{background:var(--mid-olive);color:var(--warm-canvas)}.pub-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}.paste-bar{display:flex;align-items:center;gap:.8rem;margin-bottom:.6rem;padding:.4rem .8rem;background:#e5e5cc;border:1px solid var(--forest-olive);border-radius:6px;font-size:.85rem;font-weight:700;color:var(--forest-olive)}.paste-bar[hidden]{display:none}.paste-hint{font-weight:400;font-size:.78rem;color:var(--brewery-dark)}.paste-bar button{font:inherit;font-size:.78rem;font-weight:600;padding:.25rem .8rem;border:1px solid var(--forest-olive);background:var(--forest-olive);color:var(--warm-canvas);border-radius:4px;cursor:pointer;margin-left:auto}body.paste-mode .shift-cell.editable{cursor:copy}body.paste-mode .shift-cell.editable:hover{outline:2px dashed var(--forest-olive);outline-offset:-2px}.pub-chip{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .6rem;border-radius:3px;font-weight:600}.pub-chip.draft{background:#edd5c9;color:var(--fired-brick)}.pub-chip.published{background:#e5e5cc;color:var(--forest-olive)}.pub-chip.mixed{background:#ece5d7;color:var(--brewery-dark)}.pub-chip.neutral{background:#ece5d7;color:#7a6e60}.select-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:.6rem;padding:.5rem .75rem;background:#ece5d7;border:1px solid #D8CFC2;border-radius:4px}.shift-block[draggable=true]{cursor:grab}.shift-block.selected{outline:2px solid var(--fired-brick);outline-offset:-2px}.shift-block.dragging{opacity:.4}td.shift-cell.drop-target{outline:2px dashed var(--forest-olive);outline-offset:-3px;background:#2e40091a}.team-dd{position:relative;display:inline-block}.team-panel{position:absolute;right:0;top:calc(100% + 4px);background:var(--warm-canvas);border:1px solid var(--mahogany);border-radius:4px;padding:.35rem;min-width:170px;z-index:30;box-shadow:0 6px 20px #2c181038}.team-opt{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem;font-size:.85rem;cursor:pointer;border-radius:3px}.team-opt:hover{background:#0000000d}.nav{position:relative}.dp-trigger{min-width:9rem;font-family:var(--font-display);font-size:1.05rem;font-weight:600}.dp-panel{position:absolute;top:calc(100% + 6px);left:2.5rem;z-index:40;width:262px;background:var(--warm-canvas);border:1px solid var(--mahogany);border-radius:6px;padding:.6rem;box-shadow:0 8px 24px #2c181040}.dp-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-family:var(--font-display);font-size:1rem}.dp-head button{border:none;background:none;font-size:1.2rem;cursor:pointer;padding:0 .5rem;color:var(--brewery-dark)}.dp-dow,.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-dow span{text-align:center;font-size:.6rem;color:var(--fired-brick);font-weight:600;padding-bottom:2px}.dp-cell{text-align:center;padding:.35rem 0;font-size:.8rem;border-radius:3px;cursor:pointer}.dp-cell.blank{cursor:default}.dp-cell:not(.blank):hover{background:#0000000f}.dp-cell.sel{background:color-mix(in srgb,var(--mid-olive) 32%,var(--warm-canvas));font-weight:600}.dp-cell.preview{background:color-mix(in srgb,var(--dusty-coral) 35%,var(--warm-canvas))}.dp-modes{display:flex;gap:4px;margin-top:.55rem;border-top:1px solid #D8CFC2;padding-top:.55rem}.dp-mode{flex:1;font-size:.74rem;font-weight:600;padding:.3rem;border:1px solid var(--mahogany);background:none;border-radius:4px;cursor:pointer;color:var(--brewery-dark)}.dp-mode.active{background:var(--mid-olive);color:var(--warm-canvas);border-color:var(--mid-olive)}.dp-hint{font-size:.68rem;color:var(--fired-brick);margin-top:.4rem;text-align:center;min-height:.9em}tr.open-row td.open-cell{background:color-mix(in srgb,var(--warm-canvas) 82%,var(--dusty-coral));vertical-align:top;padding:2px}tr.open-row .staff-col.open-row-label{font-style:italic;color:#e8d8c0}.open-chip{background:color-mix(in srgb,var(--warm-canvas) 68%,var(--dusty-coral));border:1px dashed var(--fired-brick);border-radius:3px;padding:2px 4px;margin-bottom:2px;cursor:pointer;line-height:1.2}.open-chip .t{font-weight:600;font-size:11px}.open-chip .cost{font-size:9px;color:var(--fired-brick);text-transform:uppercase}.open-add{font-size:.62rem;color:var(--fired-brick);text-align:center;opacity:.5;cursor:pointer;padding-top:1px}td.open-cell:hover .open-add{opacity:1}tr.event-row td.event-cell{background:color-mix(in srgb,var(--warm-canvas) 84%,var(--mid-olive));vertical-align:top;padding:2px;width:70px;min-width:70px;max-width:70px;overflow:hidden}tr.event-row .staff-col.event-row-label{font-style:italic;color:#e8d8c0;font-weight:400}thead tr.event-row td.event-cell{position:sticky;top:calc(var(--date-row-h, 48px) - 1px);z-index:3;text-align:left;font-weight:400}thead tr.event-row .hrs-col,thead tr.event-row .staff-col{top:calc(var(--date-row-h, 48px) - 1px);z-index:7}tr.temp-sep{cursor:pointer}tr.temp-sep .staff-col.temp-sep-label{font-weight:600;font-size:12px;color:#e8d8c0;user-select:none}tr.temp-sep td.temp-sep-fill{background:color-mix(in srgb,var(--warm-canvas) 88%,var(--brewery-dark));color:var(--fired-brick);font-size:11px;padding:4px 10px;text-align:left;white-space:nowrap}tr.temp-sep:hover td.temp-sep-fill{background:color-mix(in srgb,var(--warm-canvas) 80%,var(--brewery-dark))}.event-chip{background:color-mix(in srgb,var(--warm-canvas) 72%,var(--mid-olive));border:1px solid var(--forest-olive);border-radius:3px;padding:2px 3px;margin-bottom:2px;line-height:1.15;overflow:hidden}.event-chip:last-child{margin-bottom:0}.event-chip .ev-name{font-weight:600;font-size:10px;color:var(--brewery-dark);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-chip .ev-guests{font-size:9px;font-weight:600;color:var(--fired-brick);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-chip .ev-time{font-size:9px;color:var(--forest-olive);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cost-val{display:inline-block;filter:blur(4px);transition:filter .12s ease}.grid-wrap:not(.costs-hidden) .cost-val{filter:none}.cost-lock{display:inline-block;opacity:.5;letter-spacing:.08em}.cost-bar{display:flex;justify-content:flex-end;margin-top:.5rem}.cost-bar[hidden]{display:none}.cost-switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8rem;font-weight:600;color:var(--brewery-dark);user-select:none}.cost-switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;width:38px;height:20px;border-radius:20px;background:#c9bba8;transition:background .15s;flex:none}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--warm-canvas);transition:left .15s}.cost-switch input:checked+.switch-track{background:var(--mid-olive)}.cost-switch input:checked+.switch-track .switch-thumb{left:20px}.modal.modal-os{width:min(600px,94vw)}.os-elig{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:0;font-size:.85rem}.os-staff-list{display:flex;flex-direction:column;gap:.15rem;max-height:220px;overflow-y:auto;border:1px solid #D8CFC2;border-radius:4px;padding:.5rem;margin-top:.3rem}.os-staff{font-size:.85rem;display:flex;gap:.5rem;align-items:center;cursor:pointer;white-space:nowrap;padding:.1rem .2rem}.os-staff input{flex:none;margin:0}.os-all{font-weight:600;margin-left:.2rem}.modal-wide{width:min(720px,94vw)}.eng-summary{margin-bottom:.75rem;color:var(--fired-brick);font-weight:600;font-size:.9rem}.eng-list{max-height:50vh;overflow:auto;border:1px solid #D8CFC2;border-radius:4px;margin-bottom:.75rem}table.eng-tbl{border-collapse:collapse;width:100%;font-size:.82rem}table.eng-tbl th,table.eng-tbl td{border-bottom:1px solid #E3DAC9;padding:.35rem .6rem;text-align:left}table.eng-tbl th{background:#ece5d7;position:sticky;top:0}table.eng-tbl tr.unfilled{color:var(--fired-brick);font-style:italic}.modal-overlay{position:fixed;inset:0;background:#2c181073;display:flex;align-items:center;justify-content:center;z-index:50}.modal-overlay[hidden]{display:none}.modal{background:var(--warm-canvas);border:1px solid var(--mahogany);border-radius:8px;padding:1.5rem;width:min(420px,92vw);box-shadow:0 10px 40px #2c18104d}.modal h3{font-family:var(--font-display);margin:0 0 1rem}.m-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.7rem}.m-row label{width:90px;font-size:.85rem;color:var(--fired-brick);text-transform:uppercase;letter-spacing:.06em}.m-row select,.m-row input{flex:1;padding:.45rem;border:1px solid var(--mahogany);border-radius:4px;background:var(--warm-canvas);font-family:var(--font-body);font-size:.95rem}.m-fixed{flex:1;font-weight:600}.m-skills{flex:1;position:relative}.m-skills>summary{list-style:none;cursor:pointer;padding:.45rem;border:1px solid var(--mahogany);border-radius:4px;background:var(--warm-canvas);font-size:.95rem}.m-skills>summary::-webkit-details-marker{display:none}.m-skills>summary:after{content:"▾";float:right;color:var(--fired-brick)}.m-skills[open]>summary:after{content:"▴"}.m-skills-list{position:absolute;z-index:5;left:0;right:0;margin-top:2px;background:var(--warm-canvas);border:1px solid var(--mahogany);border-radius:4px;padding:.4rem .55rem;box-shadow:0 6px 20px #2c181033}.m-skills-list label{width:auto;display:flex;align-items:center;gap:.5rem;text-transform:none;letter-spacing:normal;color:var(--brewery-dark);font-size:.9rem;padding:.2rem 0;cursor:pointer}.m-skills-list input{flex:0 0 auto}.m-err{color:var(--fired-brick);font-size:.85rem;min-height:1.1em;margin-bottom:.5rem}.m-actions{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.btn-del{background:var(--fired-brick);color:var(--warm-canvas);border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;font-weight:600}
