@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#202436;--primary:#2435ab;--blue:#2435ab;--line:#dce0f7;--muted:#6e7385;--name-width:116px}*{box-sizing:border-box}body{margin:0;background:#edeff1;color:var(--ink);font:13px 'DM Sans',sans-serif}aside{position:fixed;inset:0 auto 0 0;width:170px;background:var(--primary);color:white;padding:28px 16px}.brand{font-size:25px;letter-spacing:-1px;margin-bottom:45px}.eyebrow{font-size:9px;letter-spacing:1.5px;font-weight:700;color:#727b9c}aside .eyebrow{color:#cbd2ff;font-size:8px}aside a{display:block;background:#ffffff1c;border-left:3px solid #9caaff;padding:12px 10px;border-radius:4px;margin-top:12px;font-size:12px}.sidefoot{position:absolute;bottom:25px;color:#cbd2ff;font-size:11px;line-height:1.6}main{margin-left:170px;padding:24px;min-width:0}.hero{margin:0 0 22px}h1{font:800 30px Manrope,sans-serif;letter-spacing:-1px;margin:6px 0}p{color:var(--muted);line-height:1.5}.hero p{margin:0;font-size:12px}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:5px;padding:8px 12px;font:600 11px 'DM Sans',sans-serif;cursor:pointer}button:hover{border-color:var(--primary);background:#f1f3ff}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,.scroll:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.primary{background:var(--primary);color:white;border-color:var(--primary);padding:10px 16px}.primary:hover{background:#1d2a8c;color:white}.setup{display:grid;gap:16px}.card{background:white;border:1px solid var(--line);border-radius:8px;padding:18px;min-width:0}.cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px}.cardhead>div:first-child{display:flex;align-items:center;gap:9px}h2{font:700 16px Manrope,sans-serif;margin:0}.num{border:1px solid var(--line);border-radius:50%;padding:5px;font-size:9px;color:#91829e}.hint{font-size:11px;margin:10px 0 14px}input,select{background:#fbfafd;border:1px solid var(--line);border-radius:4px;padding:7px;font:12px 'DM Sans',sans-serif;color:var(--ink);min-width:0;width:100%}#events{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pool-column{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fcfcff}.pool-heading{padding:9px 11px;display:flex;justify-content:space-between;align-items:center}.pool-heading h3{font-size:13px;margin:0}.pool-heading>span{font-size:10px}.pool-events{padding:7px;display:grid;gap:5px}.event-tile{display:grid;grid-template-columns:84px minmax(0,1fr) 30px;align-items:center;gap:7px;width:100%;padding:8px;border:0;border-left:3px solid currentColor;text-align:left;border-radius:3px;min-height:33px}.event-time{font-size:10px;white-space:nowrap;font-weight:500}.event-tile strong{font-size:11px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-count{font-size:9px;text-align:right;white-space:nowrap}.event-tile:hover{filter:brightness(.97)}.add-pool-event{display:block;margin:0 7px 7px;width:calc(100% - 14px);padding:6px;background:transparent;border-style:dashed;font-size:10px}.no-events{text-align:center;margin:8px;font-size:11px}.Barton{background:#dceefb;color:#175579}.Twyver{background:#e9def6;color:#60318a}.Elver{background:#d7f0ed;color:#176b66}#guards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.entry{display:grid;grid-template-columns:1.2fr 1fr 1fr 18px;gap:7px;align-items:end;padding:8px 0;border-top:1px solid #efedf3}.entry label{font-size:8px;color:var(--muted);line-height:1.8}.remove{border:0;padding:7px 0;color:#9c91a7;background:none}.output{margin-top:16px;padding:18px 14px}.rota-actions{display:flex;gap:8px;align-items:center}.empty{text-align:center;padding:35px}.empty>span{font-size:28px;color:#9a89ae}.empty h3{font-size:14px;margin:12px 0 6px}.empty p{font-size:12px}.notice{padding:10px 12px;background:#fff2e8;color:#8c4e2a;border:1px solid #f1dbc7;border-radius:5px;margin-top:12px;font-size:12px;line-height:1.5}.notice ul{margin:8px 0 0;padding-left:20px}.success{background:#eff2ff;color:#2435ab;border-color:#d7defc;font-size:11px}.rota-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 8px}.legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap;font-size:10px}.legend>span{display:flex;gap:5px;align-items:center}.legend i{font-style:normal;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;font-weight:700;border:1px solid #00000009}.scroll-note{font-size:10px;color:var(--muted);white-space:nowrap}.Free{background:#fcfcff;color:var(--muted)}.Off{background:#b8bfd1;color:#515c76}.scroll{--slot-width:28px;overflow:auto;max-height:620px;border:1px solid var(--line);border-radius:5px;scrollbar-color:#b6a3cc #f4f0f7}.rota-table{border-spacing:0;table-layout:fixed;width:max-content;border-collapse:separate;font-size:10px}.name-col{width:var(--name-width)}.slot-col{width:var(--slot-width)}.rota-table th,.rota-table td{padding:0;text-align:center;height:32px;border-right:1px solid white;border-bottom:1px solid white;overflow:hidden}.rota-table thead th{position:sticky;top:0;background:#eef0fc;color:#697398;font-size:9px;font-weight:500;z-index:3;height:30px;width:var(--slot-width);min-width:var(--slot-width);max-width:var(--slot-width);font-variant-numeric:tabular-nums;letter-spacing:-.4px}.rota-table thead .hour{color:#1d2a8c;font-weight:700;border-left:1px solid #c0c9ed}.rota-table .row-label{width:var(--name-width);min-width:var(--name-width);max-width:var(--name-width);text-align:left;padding:6px 10px;position:sticky;left:0;z-index:2;background:white;font-size:11px;color:var(--ink);border-right:1px solid #d3daf3}.rota-table .row-label small{display:block;font-size:9px;font-weight:400;color:var(--muted);margin-top:2px}.rota-table thead .row-label{z-index:4;background:#eef0fc}.guard-row td{font-weight:700;width:var(--slot-width);min-width:var(--slot-width);max-width:var(--slot-width)}.pool-timeline td,.pool-timeline th{border-top:2px solid white;height:30px}.rota-table .pool-label{font-size:11px}.rota-table .pool-label.Barton{background:#dceefb;color:#175579}.rota-table .pool-label.Twyver{background:#e9def6;color:#60318a}.rota-table .pool-label.Elver{background:#d7f0ed;color:#176b66}.event-span{text-align:left!important;font-size:10px;font-weight:500}.event-span span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 8px;max-width:100%}.event-gap{background:#f1f3f8}.stats{display:flex;flex-wrap:wrap;gap:5px 18px;margin-top:12px;font-size:10px;color:var(--muted)}.stats b{color:#394b9c;margin-right:4px}footer{display:flex;justify-content:space-between;padding:20px 0 0;font-size:9px;color:#8b94ad;letter-spacing:1px}footer span{letter-spacing:0}dialog{border:1px solid var(--line);border-radius:10px;padding:24px;width:420px;max-width:calc(100vw - 30px);color:var(--ink);box-shadow:0 24px 100px #13215240}dialog::backdrop{background:#15215870;backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head button{border:0;font-size:22px;padding:0 4px}dialog label{display:block;font-size:12px;font-weight:600;margin:13px 0}dialog input,dialog select{margin-top:6px;padding:10px}.modal-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:space-between;margin-top:20px;gap:12px}.modal-actions .primary{margin-left:auto}.danger{color:#a7463d}.danger:hover{background:#fcf0ee;border-color:#d89991}#eventError{color:#a7463d;font-size:12px}
@media(min-width:1700px){main{padding:28px 32px}.event-tile{grid-template-columns:94px minmax(0,1fr) 32px;padding:9px 10px}.event-time,.event-tile strong{font-size:12px}}
@media(max-width:1150px){aside{width:145px;padding:24px 12px}.brand{font-size:22px}main{margin-left:145px;padding:18px}.event-tile{grid-template-columns:1fr auto;gap:4px 8px}.event-time{grid-column:1/-1}.event-tile strong{white-space:normal}#guards{grid-template-columns:1fr}.scroll-note{display:none}}
@media(max-width:650px){aside{position:static;width:100%;height:auto;padding:13px 16px}.brand{margin:0;font-size:23px}aside .eyebrow,aside a,.sidefoot{display:none}main{margin:0;padding:16px 10px}h1{font-size:25px}.hero{margin-bottom:16px}.card{padding:13px}#events{grid-template-columns:repeat(3,minmax(200px,1fr));overflow-x:auto;gap:8px;padding-bottom:5px}.pool-heading{padding:8px}.pool-heading>span{font-size:9px}.event-tile{grid-template-columns:1fr auto}.event-time{grid-column:1/-1}.event-tile strong{font-size:11px}.output{padding:13px 8px}.rota-table .row-label{padding-left:7px}.legend{gap:7px;font-size:9px}.legend i{width:15px;height:15px}.entry{gap:4px;grid-template-columns:1fr 1fr 1fr 16px}.entry input{font-size:11px;padding:7px 3px}.rota-toolbar{margin-top:10px}footer span{display:none}}
.rota-table .guard-row .row-label{padding-top:4px;padding-bottom:4px;line-height:1.1}.rota-table .guard-row .row-label small{line-height:1.1;margin-top:1px}.rota-table .guard-row td{height:32px}

/* Single-column team; the rota scrolls without a visible scrollbar. */
#guards{grid-template-columns:1fr}.scroll{scrollbar-width:none;-ms-overflow-style:none}.scroll::-webkit-scrollbar{display:none}.review-card{margin-top:16px}.review-card .hint{margin-bottom:0}.review-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.review-list li{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid #dce0f7;border-radius:6px;font-size:12px}.review-list li.extended{background:#fff7ec;border-color:#efd3a7}.note-tag{font-size:10px;white-space:nowrap;font-weight:700;background:#edf0ff;color:#2435ab;padding:4px 7px;border-radius:4px}.extended .note-tag{background:#ffebcc;color:#8c570d}.review-list small{display:block;color:#72788a;font-size:11px;margin-top:4px}.note-pools{color:#777e91}.review-clear{font-size:12px;color:#2435ab;margin:12px 0 0}#breakdownDialog{width:min(1050px,calc(100vw - 32px));max-width:none}.breakdown-scroll{overflow:auto;max-height:65vh;border:1px solid var(--line);border-radius:6px}.breakdown-table{width:100%;min-width:800px;border-collapse:separate;border-spacing:0;font-size:12px}.breakdown-table th,.breakdown-table td{padding:11px 10px;text-align:center;border-bottom:1px solid #e9ecf7;white-space:nowrap}.breakdown-table thead th{position:sticky;top:0;background:#eef0fc;color:#2435ab;font-size:11px;z-index:1}.breakdown-table thead small{font-weight:400;color:#7a8297}.breakdown-table th:first-child{text-align:left}.breakdown-table tbody tr:last-child>*{border-bottom:0}.breakdown-table tbody tr:nth-child(even){background:#fafbff}.breakdown-table .over-preferred{background:#fff0d9;color:#8c570d;font-weight:700}@media(max-width:650px){.rota-actions{flex-wrap:wrap;justify-content:flex-end}.rota-actions button{font-size:10px;padding:8px}.review-list li{gap:8px;padding:10px}.note-pools{display:block}#breakdownDialog{padding:16px}}
/* One blue throughout the interface; pool T/E retain their distinct identifiers. */
:root{--primary:#2435ab;--blue:#2435ab;--line:#dedee5;--ink:#25252d;--muted:#74747e}aside{background:var(--primary)}aside .eyebrow,.sidefoot{color:#fff}.eyebrow{color:#777780}aside a{border-left-color:#fff;background:#ffffff20}button:hover{border-color:var(--primary);background:#f5f5f7}.primary:hover{background:var(--primary);color:white;filter:brightness(1)}.Barton,.rota-table .pool-label.Barton{background:var(--primary);color:white}.event-tile.Barton:hover{background:var(--primary);color:white;filter:none}.pool-heading.Barton{background:var(--primary);color:white}.rota-table thead th{background:#f0f0f4;color:#6e6e7a}.rota-table thead .hour{color:var(--primary);border-left-color:#c9c9d0}.rota-table .row-label{border-right-color:#dedee5}.rota-table thead .row-label{background:#f0f0f4}.success{background:white;border-color:var(--line);color:var(--primary)}.review-clear{color:var(--primary)}.note-tag{background:#f1f1f5;color:var(--primary)}.review-list li{border-color:var(--line)}.review-list li.extended{background:#fff7ec;border-color:#efd3a7}.extended .note-tag{background:#ffebcc;color:#8c570d}.note-pools{color:#777780}.breakdown-table thead th{background:#f1f1f5;color:var(--primary)}.breakdown-table thead small{color:#777780}.breakdown-table tbody tr:nth-child(even){background:#fafafa}.breakdown-table th,.breakdown-table td{border-bottom-color:var(--line)}input,select{background:#fbfbfc}.Free{background:#fcfcfd}.Off{background:#bfc0c8;color:#56565f}.event-gap{background:#f1f1f4}.num,footer{color:#888891}.dm-settings{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.dm-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.dm-heading h3{font-size:13px;margin:0}.dm-toggle{display:flex;gap:8px;align-items:center;font-size:12px;cursor:pointer}.dm-toggle input{width:16px;height:16px;margin:0;accent-color:var(--primary)}.dm-shift{display:grid;grid-template-columns:70px 1fr 1fr;gap:12px;align-items:end}.dm-shift label{font-size:9px;color:var(--muted);line-height:1.8}.dm-shift input:disabled{opacity:.5}.dm-badge{font-weight:700;color:var(--primary);padding:8px 0;font-size:12px}.rota-table .dm-row th,.rota-table .dm-row td{border-top:7px solid white;box-shadow:0 -1px 0 #bfc0c8}.rota-table .dm-row .row-label{color:var(--primary);background:#f4f4f7}.rota-table .dm-row .row-label:before{content:'DUTY MANAGER';font-size:7px;display:block;font-weight:500;letter-spacing:.6px;color:#777780;margin-bottom:2px}.rota-table .dm-row td{height:38px}@media(max-width:650px){.dm-heading{align-items:flex-start;flex-wrap:wrap}.dm-shift{grid-template-columns:40px 1fr 1fr;gap:8px}}
/* Barton has its own pool colour, separate from the royal-blue controls. */
.Barton,.pool-heading.Barton,.rota-table .pool-label.Barton,.event-tile.Barton:hover{background:#f5dfb5;color:#70460f}.rota-table thead .time-gap{border-left:3px double #91919d}
.rota-table{width:var(--table-width);min-width:var(--table-width)}
/* Overlapping events share one continuous pool band, with separators only between pools. */
.rota-table .pool-timeline:not(.pool-last) td{border-bottom-width:0}.rota-table .pool-continuation td{border-top-width:0}
.presets-panel{margin-bottom:16px}.presets-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.presets-panel h2{display:flex;align-items:center;gap:10px}.presets-panel .hint{margin:6px 0 12px}.sample-badge{font:500 9px 'DM Sans',sans-serif;color:#8b5d1e;background:#fff2d9;border-radius:4px;padding:4px 6px}.preset-date{font-size:10px;color:var(--muted);min-width:155px}.preset-date input{margin-top:5px;display:block}.preset-days{display:flex;gap:7px;flex-wrap:wrap}.preset-days button{min-width:54px}.preset-days .active{background:var(--primary);color:white;border-color:var(--primary)}.preset-status{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.5}.preset-status:empty{display:none}.preset-status button{font-size:10px;padding:3px 8px;margin-left:5px}a{color:var(--primary)}@media(max-width:650px){.presets-top{align-items:flex-start;flex-wrap:wrap}.preset-date{width:100%}.preset-days{gap:5px}.preset-days button{min-width:36px;flex:1;padding:7px}.rota-actions{gap:5px}.output>.cardhead{flex-wrap:wrap}}

aside a.selected{color:#fff}
.preset-notice{font-size:11px;line-height:1.6;background:#fff7ec;border:1px solid #efd3a7;border-radius:5px;padding:10px 12px;margin:12px 0 0}.preset-notice:empty{display:none}.breaks-title{font-size:13px;margin:18px 0 6px}.meal-list{font-size:12px;padding-left:18px;line-height:1.8}

.emergency-alert{background:#fff0e9;border-color:#dc907a;color:#843b28;margin-bottom:14px}.emergency-alert p{color:inherit;margin:8px 0;line-height:1.6}
/* Pool fills match the supplied Excel sheet; controls retain the UI blue. */
.Barton,.pool-heading.Barton,.rota-table .pool-label.Barton,.event-tile.Barton:hover{background:#a6caec;color:#0e2841}
.Twyver,.pool-heading.Twyver,.rota-table .pool-label.Twyver,.event-tile.Twyver:hover{background:#d9827b;color:#421c18}
.Elver,.pool-heading.Elver,.rota-table .pool-label.Elver,.event-tile.Elver:hover{background:#ffe23d;color:#302a0a}
