.board{--k: #0f8f84;--k-bg: #e3f5f2;--g: #4a52d6;--g-bg: #eceefd;--n: #c2417e;--n-bg: #fcebf3;--cab: #c07408;--cab-bg: #fff3df;--night-ink: #2c3a52;--night-bg: #e9edf4;--card: #ffffff;--radius: 14px;display:flex;flex-direction:column;gap:10px;padding:10px 12px 40px;max-width:1200px;margin:0 auto}.area-к{--area: var(--k);--area-bg: var(--k-bg)}.area-г{--area: var(--g);--area-bg: var(--g-bg)}.area-н{--area: var(--n);--area-bg: var(--n-bg)}.area-каб{--area: var(--cab);--area-bg: var(--cab-bg)}.area-none{--area: #6b7385;--area-bg: #eef0f4}.area-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--area, #6b7385);flex:none}.board-top{position:sticky;top:0;z-index:5;background:var(--bg);padding-bottom:6px;display:flex;flex-direction:column;gap:8px}.board-heading{display:flex;align-items:baseline;gap:12px}.board-heading h1{font-size:20px;flex:1}.to-table{font-size:13px}.board-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#e8ebf0;border-radius:12px;padding:3px;gap:3px}.board-tabs button{border:0;background:none;border-radius:9px;padding:8px 0;font-weight:500;color:var(--muted)}.board-tabs button.active{background:var(--card);color:var(--text);box-shadow:0 1px 3px #141e321f}.board-toolbar{display:flex;gap:8px}.board-search{flex:1;min-width:0;border-radius:10px;padding:8px 12px}.filter-button{border-radius:10px;white-space:nowrap}.filter-button.on{border-color:var(--accent);color:var(--accent)}.filter-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 24px #141e321f}.filter-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.filter-title{width:100%;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.fchip{border-radius:999px;padding:6px 12px;display:inline-flex;gap:6px;align-items:center}.fchip.on{background:var(--area-bg, #e8efff);border-color:var(--area, var(--accent));color:var(--area, var(--accent));font-weight:500}.filter-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center}.selected-bar{display:flex;gap:10px;align-items:center;background:#fff8db;border:1px solid #f1df9b;border-radius:10px;padding:6px 10px;font-size:13px}.selected-bar span{flex:1}.board-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px}.board-card>header{display:flex;align-items:center;gap:8px}.board-card h3{font-size:15px;margin:0;flex:1}.small-title{font-size:13px!important;color:var(--muted);font-weight:600}.count{font-size:12px;color:var(--muted);background:#eef0f4;border-radius:999px;padding:1px 8px}.card-time{font-size:12px;color:var(--muted)}.pill{font-size:12px;border-radius:999px;padding:2px 10px;background:#eef0f4;color:var(--text)}.pill.weekend{background:var(--weekend)}.pill.holiday{background:#fde7c4}.area-pill{background:var(--area-bg);color:var(--area)}.missing-badge{font-size:12px;color:var(--bad);background:#fdecec;border-radius:999px;padding:1px 8px}.chips{display:flex;flex-direction:column;gap:6px}.empty-place{color:var(--muted);font-size:13px;padding:6px 2px}.avatar{border-radius:50%;object-fit:cover;object-position:center 20%;flex:none;background:#e8ebf0}.avatar.initials{display:inline-flex;align-items:center;justify-content:center;font-weight:600;color:var(--area);background:var(--area-bg)}.chip{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid transparent;background:#f7f8fa;border-radius:12px;padding:6px 8px;min-height:48px}.chip:hover{border-color:var(--line)}.chip.boss{background:#fff1f1}.chip.selected{border-color:#e2b100;background:#fff8db;box-shadow:0 0 0 2px #f4d35e inset}.chip.faded{opacity:.3}.chip-text{display:flex;flex-direction:column;min-width:0;flex:1}.chip-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-role{font-size:12px;color:var(--muted)}.code-badge{font-size:12px;font-weight:600;border-radius:6px;padding:2px 7px;background:#eef0f4;flex:none}.code-badge.duty{background:var(--day)}.code-badge.cab{background:var(--cab-bg);color:var(--cab)}.code-badge.night{background:var(--night-ink);color:#fff}.chip.boss .code-badge{background:var(--consultant);color:#fff}.chip.compact{min-height:0;padding:3px 6px 3px 3px;gap:6px;border-radius:999px;width:auto}.chip.compact .chip-name{font-size:12px}.chip.compact .code-badge{font-size:10.5px;padding:1px 5px}.strip-wrap{display:flex;align-items:center;gap:4px}.strip-arrow{border-radius:10px;padding:8px 10px;font-size:18px;line-height:1}.day-strip{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1;padding:2px;scroll-snap-type:x proximity}.day-strip::-webkit-scrollbar{display:none}.strip-day{flex:none;width:44px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0;border-radius:10px;scroll-snap-align:center}.strip-day .wd{font-size:11px;color:var(--muted)}.strip-day .num{font-size:16px;font-weight:600}.strip-day.weekend{background:var(--weekend)}.strip-day.today{border-color:var(--accent)}.strip-day.active{background:var(--accent);border-color:var(--accent);color:#fff}.strip-day.active .wd{color:#dbe6ff}.day-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.day-title h2{font-size:17px;margin:0}.area-grid,.team-grid{display:grid;gap:10px}.area-card{border-top:4px solid var(--area)}.area-card header h3{color:var(--area)}.team-card.daytime{border-top:4px solid #e8a33c}.team-card.night{border-top:4px solid var(--night-ink)}.card-icon{font-size:16px}.team-places{display:grid;gap:8px}.place-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:3px}.off-card{gap:6px}.off-toggle{border:0;background:none;text-align:left;padding:0;font-weight:500;display:flex;justify-content:space-between}.off-lists{display:flex;flex-direction:column;gap:6px}.names-line{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;font-size:13px}.names-label{color:var(--muted);width:100%;font-size:12px}.name-link{border:0;background:#f2f4f7;border-radius:999px;padding:3px 10px}.name-link.selected{background:#fff3c4}.name-link.faded{opacity:.3}.week-nav{display:flex;align-items:center;justify-content:space-between}.week-nav h2{font-size:16px;margin:0}.week-scroll{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--line);background:var(--card)}.week-table{border-collapse:separate;border-spacing:0;min-width:760px;width:100%}.week-table th,.week-table td{border-bottom:1px solid var(--line);border-right:1px solid #eef0f4;vertical-align:top;padding:6px}.week-table thead th{position:sticky;top:0;background:var(--card);padding:4px}.week-table th.weekend,.week-table td.weekend{background:#f3f9ee}.week-day{border:0;background:none;display:flex;flex-direction:column;align-items:center;width:100%;padding:2px;border-radius:8px}.week-day span{font-size:11px;color:var(--muted)}.week-day b{font-size:15px}.row-head{position:sticky;left:0;background:var(--card);z-index:1;text-align:left;font-size:13px;white-space:nowrap;min-width:92px}.row-head .area-dot{margin-right:6px}.week-table tr[class^=area-] .row-head{color:var(--area);border-left:4px solid var(--area)}.row-day .row-head{border-left:4px solid #e8a33c}.row-night .row-head{border-left:4px solid var(--night-ink)}.row-night td{background:#f6f7fa}.week-cell{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.teams-view{display:grid;gap:10px}.team-members{display:flex;flex-direction:column;gap:6px}.team-member{display:flex;flex-direction:column;gap:2px}.member-stats{display:flex;gap:10px;font-size:12px;color:var(--muted);padding-left:54px}.member-stats .ok{color:var(--ok)}.member-stats .warn{color:var(--warn)}.month-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(26px,1fr));gap:3px}.ms-day{border:1px solid var(--line);background:#fafbfc;border-radius:6px;font-size:11px;padding:4px 0;color:var(--muted);display:inline-block;min-width:14px;text-align:center}.ms-day.weekend{background:#f3f9ee}.ms-day.lead{border-color:#9aa6ba;color:var(--text)}.ms-day.part{background:#cfe3ff;border-color:#8fb4ef;color:var(--text)}.ms-day.full{background:var(--accent);border-color:var(--accent);color:#fff}.legend-line{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted)}.legend-line i{display:inline-block;width:12px;height:12px;padding:0;margin-right:4px;vertical-align:-2px}.person-picker{display:flex;flex-direction:column;gap:10px}.profile{flex-direction:row!important;align-items:center;gap:14px!important}.profile-text{flex:1;min-width:0}.profile-text h2{font-size:18px;margin:0 0 6px}.profile-tags{display:flex;flex-wrap:wrap;gap:6px}.close-profile{align-self:flex-start;font-size:13px}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}.tile-value{font-size:20px;font-weight:700}.tile-label{font-size:12px;color:var(--muted)}.tile.ok .tile-value{color:var(--ok)}.tile.warn .tile-value{color:var(--warn)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-head{font-size:11px;color:var(--muted);text-align:center}.cal-day{position:relative;aspect-ratio:1 / 1.05;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:10px;padding:0;background:#fafbfc}.cal-day.weekend{background:#f3f9ee}.cal-num{font-size:11px;color:var(--muted)}.cal-code{font-size:14px;font-weight:600;min-height:1em}.cal-day.boss{background:#fde3e3;border-color:#f2b5b5}.cal-day.night{background:var(--night-ink);border-color:var(--night-ink);color:#fff}.cal-day.night .cal-num{color:#b8c3d6}.cal-day.duty{background:var(--day);border-color:#f1d49a}.cal-day.cab{background:var(--cab-bg);border-color:#f1c98a;color:var(--cab)}.cal-day.first{background:var(--area-bg);border-color:var(--area);color:var(--area)}.cal-day.leave{background:var(--leave);border-color:#9ccbee}.cal-wish{position:absolute;top:2px;right:5px;color:#d97706;font-size:14px}.with{display:flex;align-items:center;gap:6px}.person-view{display:flex;flex-direction:column;gap:10px}@media(min-width:720px){.board{padding:16px 20px 40px;gap:12px}.board-top{position:static}.board-tabs{max-width:460px}.area-grid,.team-grid,.teams-view{grid-template-columns:repeat(2,1fr)}.person-view{display:grid;grid-template-columns:1fr 1fr;align-items:start}.person-view .profile,.person-view .stat-tiles{grid-column:1 / -1}}@media(min-width:1100px){.area-grid{grid-template-columns:repeat(4,1fr)}}.day-view,.week-view{display:flex;flex-direction:column;gap:12px}.day-title{margin-top:2px}.screening-card .time-row{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:1px dashed #f0d9b0}.screening-card .time-row:first-of-type{border-top:0;padding-top:0}.time-label{font-size:12px;color:var(--cab)}.time-label span{color:var(--muted)}@media(min-width:1100px){.team-grid{grid-template-columns:repeat(3,1fr)}}.cal-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cal-day.picked{outline:3px solid var(--accent);outline-offset:-1px}.swap-panel h3{font-size:15px}.swap-panel h4{margin:4px 0 0;font-size:13px}.swap-hint{padding:0 4px}.swap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.swap-item{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:10px;background:#f7f8fa;flex-wrap:wrap}.swap-item.option-ok,.swap-item.option-info{background:#eefaf1}.swap-item.option-soft,.swap-item.option-medium{background:#fffbea}.swap-item.option-hard{background:#fdf0f0}.swap-detail{display:flex;flex-direction:column;gap:2px;font-size:12.5px;flex:1;min-width:180px}.in-return{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.pill.return-ok,.pill.return-info{background:#d7f3df;color:#1d6b3a}.pill.return-soft,.pill.return-medium{background:#fff1c9;color:#7a5a00}@media(min-width:720px){.person-view .swap-panel{grid-column:1 / -1}}.board{--c1: #2a78d6;--c2: #eb6834;--c3: #1baf7a;--c4: #eda100;--c5: #e87ba4;--c6: #008300;--c7: #6250d6;--c0: #a3a9b4}.teams-intro{grid-column:1 / -1;margin:0}.lead-card{gap:10px}.lead-head{display:flex}.lead-person{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;text-align:left;border-radius:12px}.lead-person.selected{box-shadow:0 0 0 3px #f4d35e}.lead-text{display:flex;flex-direction:column}.coworkers{display:flex;flex-wrap:wrap;gap:6px}.coworker{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px 3px 6px;font-size:13px;background:#f4f5f8;border:1px solid transparent}.coworker b{font-weight:600;color:var(--muted)}.coworker.selected{border-color:#e2b100;background:#fff8db}.coworker.faded{opacity:.35}.coworker.never{color:var(--muted);border:1px dashed #c3c9d4;background:none}.swatch{width:12px;height:12px;border-radius:4px;display:inline-block;flex:none}.swatch.s1,.lc-member.s1{--c: var(--c1)}.swatch.s2,.lc-member.s2{--c: var(--c2)}.swatch.s3,.lc-member.s3{--c: var(--c3)}.swatch.s4,.lc-member.s4{--c: var(--c4)}.swatch.s5,.lc-member.s5{--c: var(--c5)}.swatch.s6,.lc-member.s6{--c: var(--c6)}.swatch.s7,.lc-member.s7{--c: var(--c7)}.swatch.s0,.lc-member.s0{--c: var(--c0)}.swatch{background:var(--c)}.lead-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.lead-cal .cal-head{font-size:11px;color:var(--muted);text-align:center}.lc-day{display:flex;flex-direction:column;gap:2px;padding:3px;border-radius:8px;min-height:64px;text-align:left;background:#fafbfc}.lc-day.weekend{background:#f3f9ee}.lc-day.off{opacity:.55}.lc-day.daytime{border-color:#f0c98a}.lc-day.night{border-color:var(--night-ink);background:#eef1f6}.lc-top{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.lc-member{display:block;font-size:10.5px;font-weight:600;line-height:1.5;padding-left:5px;border-left:4px solid var(--c);background:color-mix(in srgb,var(--c) 16%,white);border-radius:3px;color:var(--text);white-space:nowrap;overflow:hidden}.lc-member.faded{opacity:.25}:root{--bg: #f6f7f9;--surface: #ffffff;--text: #1d2330;--muted: #6b7385;--line: #dde1e8;--accent: #2463eb;--accent-text: #ffffff;--weekend: #e3f2d6;--weekend-head: #92d050;--leave: #cfe8fb;--boss: #fde3e3;--night: #e3e3e3;--day: #fff0d4;--bad: #d92d2d;--ok: #1d8a4a;--warn: #b45309;--consultant: #c81e1e;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-feature-settings:"locl" 0;font-size:14px;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1{font-size:20px;margin:0}h2{font-size:15px;margin:0 0 8px}a{color:var(--accent)}button,.button,select,input{font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:5px 10px}button,.button{cursor:pointer;text-decoration:none;display:inline-block}button:hover:not(:disabled),.button:hover{border-color:#b8bfcc}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.danger{color:var(--bad)}button.link{border:0;background:none;padding:0;color:var(--accent);text-align:left}input[type=checkbox]{padding:0}input.num{width:56px}input.codes-input{width:96px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--bad)}.ok{color:var(--ok)}.warn{color:var(--warn)}.center{min-height:100vh;display:grid;place-items:center}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px}.topbar{display:flex;align-items:center;gap:20px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.topbar .brand{font-weight:600}.topbar nav{display:flex;gap:14px;flex:1}.topbar nav a{text-decoration:none;color:var(--muted);padding:4px 0}.topbar nav a.active{color:var(--text);border-bottom:2px solid var(--accent)}.page{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.page.narrow{max-width:760px}.login{width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:12px}.login label{display:flex;flex-direction:column;gap:4px}.list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.list li{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 14px}.list li a{font-weight:600;min-width:150px}.badge{font-size:12px;padding:2px 8px;border-radius:99px;background:#eceff4;color:var(--muted)}.badge.published{background:#dcf3e5;color:var(--ok)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.segmented button{border:0;border-radius:0;border-right:1px solid var(--line)}.segmented button:last-child{border-right:0}.segmented button.active{background:var(--accent);color:var(--accent-text)}.hint{margin:0;color:var(--muted)}.banner{margin:0;padding:8px 12px;border-radius:8px;background:#e8f0fe;cursor:pointer}.banner.error{background:#fde8e8}.report{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.report summary{cursor:pointer}.report>div{margin-top:6px}.month-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}@media(max-width:1100px){.month-body{grid-template-columns:1fr}}.grid-wrap{overflow:auto;max-height:calc(100vh - 210px);background:var(--surface);border:1px solid var(--line);border-radius:8px}.grid{border-collapse:separate;border-spacing:0;font-size:12.5px}.grid th,.grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.grid thead th{position:sticky;top:0;z-index:2;background:var(--surface);font-weight:600;padding:3px 0;min-width:34px;text-align:center}.grid thead th .wd{font-weight:400;color:var(--muted);font-size:11px}.grid thead th.weekend{background:var(--weekend-head)}.grid thead th.weekend .wd{color:#2d4a12}.grid th.name{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;padding:0 8px;white-space:nowrap;min-width:190px;font-weight:600;cursor:pointer}.grid thead th.name{z-index:3;cursor:default}.grid th.name.consultant{color:var(--consultant)}.grid th.name .tag{margin-left:6px;font-size:10px;font-weight:400;color:var(--muted)}.grid td{text-align:center;height:26px;min-width:34px;cursor:pointer;position:relative}.grid td.weekend{background:var(--weekend)}.grid td.leave{background:var(--leave)}.grid td.boss{background:var(--boss);font-weight:700;color:#c62828}.grid td.night{background:var(--night)}.grid td.day{background:var(--day)}.grid td.part{color:#475069}.grid td.cabinet{text-decoration:underline dotted;text-underline-offset:3px}.grid td.unknown{color:var(--warn);font-style:italic}.grid td.pinned:before{content:"";position:absolute;top:0;left:0;border-top:7px solid #6b7385;border-right:7px solid transparent}.grid td.request{background:#fff}.grid td.request .wish-dot{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:16px;color:#475069;pointer-events:none}.grid td.request.with-code .wish-dot{inset:auto 2px 0 auto;font-size:11px}.grid td.leave-start{box-shadow:inset 0 0 0 2px #2b8ad8;background:var(--leave)}.grid td.bad,.grid th.bad{box-shadow:inset 0 0 0 2px var(--bad)}.grid td.soft,.grid th.soft{box-shadow:inset 0 0 0 2px #f2c46d}.grid tr.absent-row th.name{color:var(--muted);font-weight:400}.grid td:hover{outline:2px solid var(--accent);outline-offset:-2px}.grid .stat{min-width:40px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;cursor:default;background:#fafbfc}.grid .flash{animation:flash 1.6s ease-out}@keyframes flash{0%,40%{background:#ffe58a}}.grid.mode-requests td:not(.stat):hover{outline-color:#f59e0b}.grid.mode-absences td:not(.stat):hover{outline-color:#2b8ad8}.violations{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px;max-height:calc(100vh - 210px);overflow:auto}.violations h2 span{font-weight:400;font-size:13px}.violations .rule{border-top:1px solid var(--line);padding:6px 0}.violations .rule-head{display:flex;gap:8px;align-items:baseline;width:100%;border:0;padding:2px 0;text-align:left;background:none}.violations .count{min-width:26px;text-align:center;border-radius:99px;font-size:12px;padding:0 6px;background:#eceff4}.violations .hard .count{background:#fde3e3;color:var(--bad)}.violations .medium .count{background:#fff0d4;color:var(--warn)}.violations ul{margin:4px 0 0;padding-left:34px;display:flex;flex-direction:column;gap:3px;font-size:12.5px}.popover{position:fixed;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #141e322e;padding:12px;display:flex;flex-direction:column;gap:10px}.popover label{display:flex;flex-direction:column;gap:4px}.popover label.row{flex-direction:row}.popover-title{font-weight:600}.cell-editor{display:flex;flex-direction:column;gap:10px}.code-group .codes{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.code{min-width:42px;padding:4px 6px}.settings summary{cursor:pointer}.settings .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px;margin-top:8px}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted)}.legend .sw{display:inline-block;width:14px;height:14px;border:1px solid var(--line);vertical-align:-3px;margin-right:4px;border-radius:3px}.sw.boss{background:var(--boss)}.sw.night{background:var(--night)}.sw.day{background:var(--day)}.sw.leave{background:var(--leave)}.sw.request{background:#fff;position:relative}.sw.request:after{content:"•";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px;line-height:1;color:#475069}.sw.pinned{background:linear-gradient(135deg,#6b7385 30%,transparent 30%)}.sw.bad{box-shadow:inset 0 0 0 2px var(--bad)}.sw.soft{box-shadow:inset 0 0 0 2px #f2c46d}.table-wrap{overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:8px}table.staff{border-collapse:collapse;width:100%;font-size:13px}table.staff th{text-align:left;font-weight:600;padding:8px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;background:var(--surface)}table.staff td{padding:4px 8px;border-bottom:1px solid var(--line);white-space:nowrap}table.staff td.consultant{color:var(--consultant);font-weight:600}table.staff td.partner{display:flex;gap:6px;align-items:center}table.staff td.partner select{max-width:190px}table.staff tr.inactive td{opacity:.5}table.staff select{padding:3px 6px}@media(max-width:640px){.grid th.name{max-width:104px;min-width:104px;font-size:12px;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid th.name .tag{display:none}.popover.sheet{box-shadow:0 -6px 24px #0000002e}.topbar{padding:8px 16px 0;gap:4px 14px;flex-wrap:wrap}.topbar .brand{margin-right:auto;font-size:15px}.topbar nav{order:2;flex:1 0 100%;overflow-x:auto;white-space:nowrap;scrollbar-width:none;padding-bottom:6px}.topbar nav::-webkit-scrollbar{display:none}.page{padding:14px 16px}}.steps{display:flex;flex-direction:column;gap:10px;padding:10px 14px}.step-tabs{display:flex;gap:6px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.step-tabs button{display:inline-flex;align-items:center;gap:6px;border-radius:99px}.step-tabs button.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.step-tabs .num{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:99px;background:#eceff4;color:var(--text);font-size:12px}.step-tabs button.active .num{background:#ffffff40;color:var(--accent-text)}.step-body{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.step-body p{margin:0;max-width:900px}.steps .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px;width:100%}.steps .checks label.consultant{color:var(--consultant)}.leave-table .num-col{text-align:center;width:44px;font-variant-numeric:tabular-nums}.leave-table td.has-leave{background:var(--leave);font-weight:600}.leave-table td.periods{white-space:normal}.chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:99px;padding:1px 8px;margin:2px 4px 2px 0;font-size:12px;background:#fafbfc}.chip button.link{color:var(--muted)}.ward-counts{display:flex;gap:18px}table.ward-pick{border-collapse:collapse;font-size:13px}table.ward-pick th{text-align:center;font-weight:600;padding:4px 14px;border-bottom:1px solid var(--line)}table.ward-pick th:first-child,table.ward-pick td:first-child{text-align:left;padding-left:0}table.ward-pick td{text-align:center;padding:2px 14px;border-bottom:1px solid #f0f2f5}table.ward-pick td.consultant{color:var(--consultant)}table.ward-pick tr.picked td:first-child{font-weight:600}.grid .stat.hours-ok{color:var(--ok);font-weight:600}.grid .stat.hours-near{color:var(--warn);font-weight:600}.grid .stat.hours-off{color:var(--bad);font-weight:700}.ped-weekends th{padding:4px 8px}.ped-weekends td{padding:2px 8px}.request-kinds{display:flex;flex-direction:column;gap:2px;padding-left:22px}.capacity{background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:2px}.first-shift-weeks select{padding:2px 4px}.first-shift-weeks th{vertical-align:bottom}.teams-editor{border:1px solid var(--line);border-radius:8px;padding:8px 12px;width:100%}.teams-editor summary{cursor:pointer}.teams-editor table{margin:8px 0}.grid th.name.draggable{cursor:grab}.grid tr.row-dragging{opacity:.4}.grid tr.row-drop>*{box-shadow:inset 0 2px #333}.weekday-picks{white-space:nowrap}.weekday-picks label{margin-right:4px;font-size:12px}.input-issues{background:#fffaf0;border:1px solid #f3dfb5;border-radius:8px;padding:8px 12px}.input-issues.has-errors{background:#fff5f5;border-color:#f4c7c7}.input-issues .rule-head{display:flex;gap:6px;align-items:baseline;width:100%;border:0;padding:0;text-align:left;background:none;flex-wrap:wrap}.input-issues .warn{color:var(--warn)}.input-issues ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px;font-size:12.5px}.input-issues li.error::marker{color:var(--bad)}.input-issues li.warning::marker{color:var(--warn)}.code.option-ok,.code.option-info{border-color:#9ad3a8;background:#eefaf1}.code.option-soft{border-color:#e6d49a;background:#fffbea}.code.option-medium{border-color:#f0c27a;background:#fff3df}.code.option-hard{border-color:#f0a8a8;background:#fdecec;color:#9b2c2c}.code.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.option-detail{border-radius:6px;padding:6px 8px;background:#f7f9fc;border:1px solid var(--line);max-width:320px}.option-detail ul{margin:4px 0 0;padding-left:16px}.option-detail.option-hard{background:#fdecec;border-color:#f0a8a8}.option-detail.option-medium,.option-detail.option-soft{background:#fffbea;border-color:#e6d49a}.team-fill{font-size:10px;line-height:1}.team-fill.full{color:#4f9a62}.team-fill.missing{color:var(--bad);font-weight:600}.day-teams{display:flex;flex-direction:column;gap:8px;max-width:460px}.team-row{display:flex;gap:6px;align-items:stretch}.team-name{width:32px;align-self:center}.place{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:4px 6px;font-size:12px;text-align:left}.place .place-code{font-weight:600}.place.empty{border-style:dashed;color:var(--bad)}.place.over{border-color:var(--warn)}.place.active{outline:2px solid var(--accent)}.candidates ul{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column;gap:3px}.candidate button{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;width:100%;text-align:left;font-size:12.5px;padding:3px 6px;border-radius:6px}.candidate.option-ok button,.candidate.option-info button{background:#eefaf1}.candidate.option-soft button,.candidate.option-medium button{background:#fffbea}.candidate.option-hard button{background:#fdecec;color:#9b2c2c}.cand-cells,.cand-hours{color:var(--muted);white-space:nowrap}.cand-reason{font-size:11px;color:var(--muted);padding-left:8px}.exchange{border-top:1px solid var(--line);padding-top:6px;max-width:460px}.staff-name{display:inline-flex;align-items:center;gap:8px}.photo-picker{display:inline-flex;align-items:center;gap:2px}.photo-picker label{cursor:pointer;display:inline-flex}.photo-picker img,.photo-initials{width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:center 20%}.photo-initials{display:inline-flex;align-items:center;justify-content:center;background:#eef0f4;color:var(--muted);font-size:11px;font-weight:600;border:1px dashed #c3c9d4}.photo-remove{font-size:11px;color:var(--muted);padding:0 2px}.login-as{display:flex}.login-as button{flex:1}.nav-badge{margin-left:5px;background:var(--bad);color:#fff;border-radius:999px;font-size:11px;padding:0 6px;vertical-align:1px}.me-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}.doctor-home{max-width:640px;margin:0 auto;width:100%}.cta{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--text);background:#eef4ff;border-color:#c6d8fb}.cta span{color:var(--accent)}.doctor-months{display:flex;flex-direction:column;gap:8px}.doctor-month{display:flex;align-items:center;justify-content:space-between;gap:10px}.prefs-page{max-width:720px;margin:0 auto;width:100%}.prefs-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.prefs-head h1{flex:1}.month-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.month-chips .fchip{white-space:nowrap}.fchip{border-radius:999px;padding:6px 12px}.fchip.on{background:#e8efff;border-color:var(--accent);color:var(--accent);font-weight:500}.deadline{border-radius:10px;padding:8px 12px;font-size:13px}.deadline.open{background:#eefaf1;border:1px solid #b9e3c5}.deadline.closed{background:#fdf0f0;border:1px solid #f2c4c4}.pref-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.pref-calendar .cal-head{font-size:11px;color:var(--muted);text-align:center}.pref-day{min-height:58px;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:4px;border-radius:10px;text-align:left}.pref-day.weekend{background:var(--weekend)}.pref-day .cal-num{font-size:12px;color:var(--muted)}.pref-tag{display:block;font-size:10.5px;line-height:1.3;border-radius:5px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:normal}.pref-tag.status-pending{background:#fff1c9;color:#7a5a00}.pref-tag.status-approved{background:#d7f3df;color:#1d6b3a}.pref-tag.status-rejected{background:#f6dede;color:#9b2c2c;text-decoration:line-through}.legend-line{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted)}.legend-line i{display:inline-block;width:14px;margin-right:4px}.prefs-list-card h2{font-size:15px}.pref-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pref{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 10px;border-radius:10px;background:#f7f8fa;border-left:4px solid #c3c9d4}.pref>span:first-child{flex:1;min-width:60%}.pref.status-pending{border-left-color:#e2b100}.pref.status-approved{border-left-color:var(--ok)}.pref.status-rejected{border-left-color:var(--bad)}.pref-status{font-size:12px;color:var(--muted)}.danger-link{color:var(--bad);font-size:13px}.pill.late{background:#fde7c4;color:#8a4b00;margin-left:6px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c2c59;display:flex;align-items:flex-end;justify-content:center;z-index:50}.sheet{background:var(--surface);width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:16px;display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow-y:auto;box-shadow:0 -8px 30px #141e3233}.sheet-head{display:flex;align-items:center}.sheet-head h3{flex:1;margin:0;font-size:18px}.kind-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kind-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px;border-radius:12px;text-align:left}.kind-option span{font-size:12px;color:var(--muted)}.kind-option.active{border-color:var(--accent);background:#eef4ff;box-shadow:0 0 0 1px var(--accent) inset}.shift-choices{display:flex;gap:8px}.shift-choice{flex:1;padding:10px 0;font-size:16px;font-weight:600;border-radius:10px}.shift-choice.on{background:var(--accent);color:#fff;border-color:var(--accent)}.sheet-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.sheet-field input{font-size:16px;padding:8px 10px}button.big{padding:12px;font-size:16px;border-radius:12px}@media(min-width:720px){.sheet-backdrop{align-items:center}.sheet{border-radius:18px}}.filters-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.busy-days{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#fff6e5;border:1px solid #f3dfb5;border-radius:10px;padding:8px 12px;font-size:13px}.request-groups{display:grid;gap:10px}.request-group header{display:flex;align-items:baseline;gap:10px}.request-group h2{flex:1;margin:0 0 6px;font-size:15px}.pref-actions{display:flex;gap:6px}.ok-button{border-color:#9ad3a8;color:var(--ok)}@media(min-width:1000px){.request-groups{grid-template-columns:1fr 1fr}}.grid.simple td{cursor:default}.grid.simple tr.me td{background-color:#fff8db}.grid.simple tr.me td.name{font-weight:600}.requests-page>button.primary{align-self:flex-start}.pill.new{background:var(--accent);color:#fff;margin-left:6px}.answers h2{font-size:15px}.generate-dialog{max-width:480px}.gen-option{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border-radius:12px;text-align:left}.gen-option b{font-size:15px}.gen-option span{color:var(--muted);font-size:13px}.gen-option:hover{border-color:var(--accent);background:#f2f6ff}.rules-page{max-width:980px}.priority-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.priority{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.priority.locked{background:#f7f8fa}.priority.off .prio-text{opacity:.45}.prio-rank{width:28px;height:28px;border-radius:50%;background:#e8efff;color:var(--accent);font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none}.priority.locked .prio-rank{background:#eef0f4;color:var(--muted)}.prio-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.prio-weight{width:110px;text-align:right;white-space:nowrap}.prio-number{width:130px;text-align:right}.prio-actions{display:flex;align-items:center;gap:4px}.prio-actions button{padding:3px 9px}.prio-lock{width:108px;text-align:center}.switch{position:relative;width:38px;height:22px;margin-left:6px;flex:none}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;background:#c3c9d4;border-radius:999px;transition:background .15s;cursor:pointer}.switch span:after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+span{background:var(--ok)}.switch input:checked+span:after{transform:translate(16px)}@media(max-width:640px){.priority{flex-wrap:wrap}.prio-weight{width:auto}}.prio-default{width:112px;text-align:center;flex:none}.custom-rules{margin-top:28px}.custom-rules h2{margin:0;font-size:18px}.custom-rules .prio-rank{width:auto;min-width:28px;padding:0 6px;border-radius:14px}.rule-form{display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px}.rule-form .field{display:flex;flex-direction:column;gap:6px}.rule-form .field.row{flex-direction:row;align-items:center;flex-wrap:wrap}.rule-form .row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-form .picks{display:flex;flex-wrap:wrap;gap:6px}.rule-form .picks.people{max-height:180px;overflow-y:auto}.rule-form .pick{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font-size:13px}.rule-form .pick.on{background:var(--accent);border-color:var(--accent);color:#fff}.sheet.variants-sheet{max-width:760px}.variants-actions{display:flex;gap:8px;flex-wrap:wrap}.variants-actions input{flex:1;min-width:200px}.variant-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.variant{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface)}.variant.current{background:#f2f6ff;border-color:#c9d8fb}.variant.best{border-color:#e2b100;background:#fffbea}.variant-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.variant-name{font-weight:600;color:var(--text)}.variant-buttons{display:flex;gap:4px;flex:none}.variant-buttons button,.variant-buttons .button{padding:3px 9px}.star{border:0;background:none;font-size:22px;line-height:1;color:#c7cbd3;padding:0 2px}.star.on{color:#e2a900}.vscores{display:flex;flex-wrap:wrap;gap:4px}.vscore{font-size:12px;border-radius:999px;padding:1px 8px;background:#eef0f4;color:var(--muted)}.vscore.zero{background:#eaf6ee;color:#2c7a45}.vscore.bad{background:#fde8e8;color:#b42318}.vscore.warn{background:#fff3dc;color:#9a5b00}.tag.good{margin-left:8px;font-size:11px;background:#eaf6ee;color:#2c7a45;border-radius:999px;padding:1px 7px}@media(max-width:640px){.variant{flex-wrap:wrap}.variant-buttons{width:100%;justify-content:flex-end}}.grid th.next-month{background:#eef3ff;border-left:2px solid var(--accent)}.grid th.next-month+th.next-month{border-left:none}.rule-group{border-radius:12px;padding:12px;margin:14px 0;border:1px solid var(--line);border-left-width:6px;background:var(--surface)}.rule-group.hard{border-left-color:#c81e1e}.rule-group.recommended{border-left-color:#d97706}.rule-group.goal{border-left-color:#1d8a4a}.rule-group-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap}.rule-group.hard .rule-group-head b{color:#c81e1e}.rule-group.recommended .rule-group-head b{color:#b45309}.rule-group.goal .rule-group-head b{color:#1d8a4a}.rule-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.rule-list.drop{min-height:44px;border-radius:10px}.rule-list.drop.over{outline:2px dashed var(--accent);outline-offset:2px}.rule-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid var(--line)}.rule-item[draggable]{cursor:grab}.rule-item.dragging{opacity:.4}.rule-item.over{box-shadow:0 -3px 0 var(--accent)}.rule-item.off .rule-text{opacity:.45}.rule-item.locked{background:#f7f8fa}.rule-grip{color:#a0a7b4;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.rule-lock{width:22px;text-align:center}.rule-rank{width:24px;height:24px;border-radius:50%;background:#eef0f4;color:var(--muted);font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none}.rule-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rule-strength{width:90px;text-align:right;white-space:nowrap}.rule-actions{display:flex;align-items:center;gap:4px;flex:none}.rule-actions button{padding:3px 8px}.rule-actions select{padding:2px 4px;font-size:12px}.rule-empty{padding:10px;text-align:center;border:1px dashed var(--line);border-radius:10px}.tag{display:inline-block;font-size:11px;background:#eef0f4;color:var(--muted);border-radius:6px;padding:0 5px;margin-right:4px}.core-rules{margin:8px 0;font-size:13px}.core-rules summary{cursor:pointer;color:var(--muted)}.core-rules ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}@media(max-width:640px){.rule-item{flex-wrap:wrap}.rule-strength{width:auto}.rule-actions{width:100%;justify-content:flex-end}}.sheet.leave-import{max-width:820px}.leave-import-table{width:100%;border-collapse:collapse;font-size:13px}.leave-import-table th,.leave-import-table td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:top}.leave-import-table td.num{text-align:right;width:48px}
