
:root{--navy:#091957;--blue:#007bff;--blue2:#0062ed;--orange:#ff850b;--muted:#5d7095;--line:#e0ebf7;--bg:#f6faff;--green:#02ac76;--greenbg:#ddf9eb;--amber:#efa700;--amberbg:#fff4d7;--red:#fa4053;--redbg:#ffe5ea;--shadow:0 5px 24px #193e7610;--sidebar:218px;--radius:11px}
*{box-sizing:border-box}body{margin:0;color:var(--navy);font:13px/1.4 Arial,Helvetica,sans-serif;background:linear-gradient(135deg,#fbfdff,#f5faff)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}a{color:var(--blue)}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible{outline:3px solid #79b5ff}input:focus,select:focus,textarea:focus{outline:2px solid #badbff;border-color:var(--blue)}button{color:inherit}button:active:not(:disabled){transform:translateY(1px)}h1,h2,h3,h4,p{margin:0}h1{font-size:27px;letter-spacing:-.7px;line-height:1.25}h2{font-size:18px;letter-spacing:-.3px}h3{font-size:15px}h4{font-size:13px}small{font-size:11px;color:var(--muted)}.muted{color:var(--muted)}.blue{color:var(--blue)}.green{color:var(--green)}.orange{color:#df8100}.red{color:var(--red)}.flex{display:flex;align-items:center;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1}.wrap{flex-wrap:wrap}.right{text-align:right}.center{text-align:center}.gap4{gap:4px}.gap6{gap:6px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb12{margin-bottom:12px}.mb20{margin-bottom:20px}.hidden{display:none!important}.ico{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}.ico.sm{width:15px;height:15px}.ico.lg{width:24px;height:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 13px;font-weight:500;white-space:nowrap;transition:background .16s,box-shadow .16s,border-color .16s}.btn:hover{background:#f1f7ff;border-color:#a8cdfd}.btn.primary{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 4px 10px #007bff10}.btn.primary:hover{background:#006be0}.btn.orange{background:var(--orange);border-color:var(--orange);color:white}.btn.danger{background:var(--redbg);color:#dc2942;border-color:#ffbac5}.btn.soft{background:#eaf4ff;border-color:#eaf4ff;color:var(--blue)}.btn.small{font-size:11px;padding:5px 8px;min-height:28px}.btn.wide{width:100%;justify-content:flex-start}.btn .ico{width:17px;height:17px}.iconbtn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px;width:32px;height:32px;position:relative;flex:none}.iconbtn:hover{background:#eaf4ff}.iconbtn.small{width:23px;height:23px}.linkbtn{border:0;background:transparent;padding:0;color:var(--blue);font-size:12px;cursor:pointer}.linkbtn:hover{text-decoration:underline}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:5px;background:#eef4fc;color:var(--muted);font-size:10px;line-height:1.5;font-weight:600;white-space:nowrap}.tag.green{background:var(--greenbg);color:#087654}.tag.amber{background:var(--amberbg);color:#946800}.tag.red{background:var(--redbg);color:#d62641}.tag.blue{background:#e6f1ff;color:#0966d0}.tag.purple{background:#f1eaff;color:#8954c5}.tag.orange{background:#fff0df;color:#bd6300}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none;background:var(--muted)}.dot.green{background:var(--green)}.dot.blue{background:#1592ef}.dot.purple{background:#a54edd}.dot.orange{background:var(--orange)}.dot.red{background:var(--red)}.dot.amber{background:var(--amber)}.avatar{width:23px;height:23px;object-fit:cover;border-radius:50%;background:#e8eff8;border:1px solid #fff;flex:none}.avatar.large{width:56px;height:56px}.avatar.mid{width:35px;height:35px}.initials{display:inline-flex;align-items:center;justify-content:center;color:#27518e;font-weight:600;font-size:10px;background:#e3effe}.profile-circle{background:#254d91;color:white;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;font-size:13px}
.sidebar{position:fixed;z-index:30;left:0;top:0;bottom:0;width:var(--sidebar);background:linear-gradient(120deg,#f3faff,#fafdff);border-right:1px solid #eaf1fa;display:flex;flex-direction:column;padding:14px 8px 16px}.logo{width:181px;height:auto;display:block;margin:0 9px 21px}.navitems{display:flex;flex-direction:column;gap:3px}.navitem{display:flex;align-items:center;gap:16px;border:0;background:transparent;border-radius:7px;padding:11px 17px;text-align:left;font-size:13px;min-height:41px;color:#19367c}.navitem .ico{width:21px;height:21px}.navitem:hover{background:#e9f4ff}.navitem.active{background:linear-gradient(105deg,#cae5ff,#c0e0ff);color:#0071ee;font-weight:600}.navbottom{margin-top:auto;display:flex;flex-direction:column;gap:3px}.count{min-width:17px;height:17px;background:#ff2535;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:9px;padding:0 4px}.navitem .count{margin-left:auto}.workspace{display:flex;align-items:center;gap:10px;background:#ffffff91;border:1px solid #e2eefb;border-radius:12px;padding:10px;margin:22px 8px 0;text-align:left}.workspace-icon{width:41px;height:41px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#2063ba;background:#dcefff}.workspace-profile{width:calc(100% - 16px);font-size:11px}.workspace-profile-copy{min-width:0;line-height:1.25}.workspace-profile-copy strong{white-space:nowrap}.workspace-profile>.ico{width:14px;height:14px;margin-left:auto}.topbar{position:fixed;z-index:25;top:0;left:var(--sidebar);right:0;height:59px;border-bottom:1px solid #e5eef9;background:#ffffffee;backdrop-filter:blur(12px);display:flex;align-items:center;padding:9px 18px;gap:13px;box-shadow:0 2px 6px #0b398b03}.work-select{padding:8px 11px;background:#f4f8ff;border:1px solid #edf3fd;font-weight:600;min-height:34px}.top-tabs{display:flex;gap:3px;align-items:center}.top-tab{background:#f3f7fd;border:0;padding:11px 14px;border-radius:5px;font-size:11px;white-space:nowrap}.top-tab.active{background:var(--blue);color:#fff}.top-tab:hover:not(.active){background:#e1efff}.top-actions{margin-left:auto;display:flex;align-items:center;gap:11px}.profile{border:0;background:transparent;display:flex;align-items:center;gap:10px;text-align:left;font-size:11px}.proto-tag{padding:7px 13px;border:1px solid #ffd596;border-radius:6px;background:#fff2df;color:#985700;font-size:12px;line-height:1;font-weight:800;letter-spacing:1px;box-shadow:0 2px 7px #a8670514}.bellcount{position:absolute;right:0;top:-2px}.main{margin-left:var(--sidebar);padding:76px 20px 24px;min-height:100vh}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:17px}.page-heading p{margin-top:4px;font-size:15px;color:#1f3977}.page-tools{display:flex;align-items:center;gap:12px}.formlabel{display:block;font-size:11px;color:#29457a;margin-bottom:4px}.input,.select{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--navy);min-height:35px;padding:8px 10px}.input.wide,.select.wide{width:100%}.select{padding-right:28px}.date-nav{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:#fff;padding:3px}.date-nav input{border:0;background:transparent;color:var(--navy);width:125px;padding:5px;font-size:12px}.date-nav .iconbtn{width:24px;height:28px}.page-caption{font-size:11px;color:var(--muted)}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px;box-shadow:0 2px 7px #1c519803}.card.flat{box-shadow:none}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.card-head h3{font-size:14px}.plan-layout{display:grid;grid-template-columns:minmax(660px,1fr) 309px;gap:16px;align-items:start}.plan-main{min-width:0}.roster-head,.line-row,.maintenance-row{display:grid;grid-template-columns:156px repeat(3,minmax(0,1fr));gap:5px}.roster-head{border-radius:7px 7px 0 0;overflow:hidden;background:#e6eff7;gap:1px;margin-bottom:4px;min-height:45px}.roster-head>div{display:flex;align-items:center;justify-content:center;background:#e6eff7;gap:13px;padding:7px 8px;font-size:12px}.roster-head>div:first-child{justify-content:flex-start;font-weight:600}.roster-head .ico{width:25px;height:25px}.roster-head small{color:#36538c;font-size:11px}.line-row{margin-bottom:5px;min-height:124px}.line-label{padding:9px 12px;border:1px solid #eaf1fa;border-radius:6px;min-width:0;background:linear-gradient(125deg,#fff,#fbfdff);cursor:pointer;transition:background .2s;text-align:left;align-self:stretch}.line-label:hover{background:#edf6ff;border-color:#b7d9ff}.line-label h3{font-size:17px;line-height:1.2}.line-label .area{font-size:13px;margin:2px 0 6px}.line-label .operating{font-size:10px;display:flex;align-items:center;gap:6px;color:#375995}.line-label .output{font-size:10px;line-height:1.35;margin-top:5px}.line-label .output strong{font-size:11px}.progressbar{height:6px;background:#e6eef8;border-radius:5px;overflow:hidden;margin-top:7px;width:100%}.progressbar span{height:100%;display:block;background:linear-gradient(90deg,#08b980,#87ce82);border-radius:5px}.progressbar.amber span{background:#f5b823}.shift-cell{border:1px solid #e5eef9;border-radius:6px;padding:3px 5px 5px;background:#fff;min-width:0;transition:border-color .15s}.shift-cell:hover{border-color:#b8d9ff}.shift-cell .cell-status{display:flex;align-items:center;justify-content:space-between;gap:5px;background:var(--greenbg);color:#095945;border-radius:4px;font-size:11px;font-weight:600;height:23px;padding:0 7px;margin-bottom:3px}.cell-status .ico{width:13px;height:13px}.cell-status.amber{background:var(--amberbg);color:#7b5700}.cell-status.red{background:var(--redbg);color:#a92b42}.status-lock{opacity:.24;width:20px;height:21px}.shift-cell:hover .status-lock,.status-lock:focus-visible{opacity:1}.staff-row{display:grid;grid-template-columns:22px minmax(61px,.8fr) minmax(66px,1fr) 15px;align-items:center;gap:4px;min-height:23px;width:100%;border:0;background:transparent;border-radius:4px;text-align:left;padding:1px 2px;font-size:10px}.staff-row:hover{background:#eaf3ff}.staff-row .avatar{width:20px;height:20px}.staff-role{display:flex;gap:4px;align-items:center;white-space:nowrap;font-size:10px;overflow:hidden;text-overflow:ellipsis}.staff-role .dot{width:6px;height:6px}.staff-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#385694;font-size:10px}.staff-row .dots{font-size:15px;color:#7f98bd;line-height:1}.staff-row.vacant .staff-name{color:#ff354b}.staff-row.vacant .avatar{background:#f0f3f8}.staff-row.vacant .ico{color:#ffb700;width:15px}.shift-cell.closed{background:repeating-linear-gradient(135deg,#f7f9fc,#f7f9fc 8px,#f1f5fa 8px,#f1f5fa 9px);border:1px dashed #c9d5e6;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;color:#7486a2;padding:12px;text-align:center;min-height:124px}.shift-cell.closed strong{font-size:12px;color:#526582}.shift-cell.closed small{font-size:10px}.add-line{margin:0 0 5px}.maintenance-row{min-height:88px;margin-top:0}.maintenance-label{padding:10px 9px;background:#e8f3ff;border-radius:6px;font-size:10px}.maintenance-label strong{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.maintenance-label .ico{width:20px}.maintenance-label p{font-size:9px;line-height:1.4;color:#4a6598;margin-top:5px}.maintenance-row .shift-cell{min-height:88px}.maintenance-row .staff-row{grid-template-columns:22px minmax(0,1fr) auto;min-height:20px}.maintenance-row .staff-row .avatar{width:18px;height:18px}.maintenance-row .staff-role{font-size:9px;color:#5f78a0}.plan-aside{display:flex;flex-direction:column;gap:9px}.plan-aside .card{padding:12px 13px;border-radius:8px}.plan-aside h3{font-size:14px}.coverage-card{display:flex;align-items:center;gap:16px;margin-top:8px}.donut{width:112px;height:112px;border-radius:50%;background:conic-gradient(var(--green) 0deg var(--angle),#ffbb15 var(--angle) 360deg);position:relative;display:flex;align-items:center;justify-content:center;flex:none}.donut:before{content:'';position:absolute;inset:12px;background:#fff;border-radius:50%}.donut strong{position:relative;font-size:27px;letter-spacing:-1px}.coverage-stats{flex:1;min-width:0;font-size:11px}.coverage-stats .total{font-size:17px;font-weight:700;line-height:1.6;margin-bottom:4px}.legend-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.legend-row span{display:flex;align-items:center;gap:7px}.vacancy-list{display:flex;flex-direction:column;gap:5px}.vacancy{border:1px solid #edf3fb;border-radius:6px;padding:9px;display:flex;gap:8px;font-size:11px;align-items:flex-start}.vacancy>.ico{width:16px;height:16px;color:var(--amber);margin-top:2px}.vacancy strong{font-size:11px}.vacancy .btn{align-self:center;font-size:10px;min-height:29px;padding:5px 7px;margin-left:auto}.vacancy small{font-size:10px}.quick-actions{display:flex;flex-direction:column;gap:6px}.quick-actions .btn{font-size:11px;min-height:29px;padding:5px 10px;justify-content:flex-start;gap:13px}.line-status-list{display:flex;flex-direction:column;gap:2px}.line-status-item{display:grid;grid-template-columns:54px 1fr 35px;align-items:center;gap:5px;border:0;background:transparent;border-radius:5px;text-align:left;padding:4px 0;font-size:11px}.line-status-item:hover{background:#eaf4ff}.line-status-item span:nth-child(2){font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-status-item b{text-align:right;font-size:10px}.support-card{background:#eaf4ff!important;border-color:#eaf4ff!important;font-size:10px}.support-card .support-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px;font-size:9px;color:#385b93}.demo-footnote{margin-top:10px;font-size:10px;color:#778cab;display:flex;align-items:center;gap:6px}.toast-stack{position:fixed;right:24px;bottom:24px;z-index:300;display:flex;flex-direction:column;gap:8px;max-width:440px}.toast{display:flex;align-items:flex-start;gap:10px;background:#122c60;color:white;padding:14px 18px;border-radius:9px;box-shadow:0 8px 30px #14244f30;font-size:12px;animation:slideup .25s}.toast .ico{color:#71e7b6}.toast.warn .ico{color:#ffd17d}@keyframes slideup{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
/* Dashboard and tables */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.kpi{padding:17px 20px}.kpi-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.kpi-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#eaf4ff;color:var(--blue)}.kpi-icon.orange{background:#fff2e3;color:#f38710}.kpi-icon.green{background:var(--greenbg);color:var(--green)}.kpi-value{font-size:32px;font-weight:700;letter-spacing:-1px;line-height:1.3;margin:5px 0}.kpi-value small{font-size:14px;font-weight:400;letter-spacing:0}.kpi-foot{font-size:11px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(550px,1.7fr) minmax(300px,1fr);gap:18px}.dash-line{display:grid;grid-template-columns:145px 1fr 1fr 1fr 26px;gap:15px;align-items:center;border-bottom:1px solid #eff4fa;padding:14px 0}.dash-line:last-child{border:0}.dash-line button{border:0;background:transparent;text-align:left}.dash-coverage{font-size:11px}.dash-coverage .progressbar{height:5px;margin-top:5px}.dash-coverage strong{font-size:12px}.week-chart{display:flex;gap:18px;align-items:flex-end;height:169px;padding-top:12px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;height:100%;border:0;background:transparent;color:var(--muted);font-size:10px}.bar-track{height:110px;width:100%;max-width:44px;background:#edf3fb;border-radius:5px 5px 0 0;display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;background:linear-gradient(180deg,#67b4ff,#0b7ffc);border-radius:5px 5px 0 0;min-height:2px}.bar-col.selected .bar-fill{background:linear-gradient(180deg,#ffb464,#ff8a12)}.bar-col b{font-size:11px}.activity-item{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #edf3fa}.activity-item:last-child{border:0}.activity-icon{border-radius:8px;padding:7px;background:#edf5ff;color:var(--blue)}.activity-item p{font-size:11px;color:var(--muted);margin:4px 0}.team-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #edf3fa}.hero-strip{padding:19px 21px;background:linear-gradient(105deg,#e9f4ff,#f4f9ff);border:1px solid #d8e9ff;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.hero-strip h3{font-size:16px}.hero-strip p{color:#516d96;font-size:12px;margin-top:5px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.data-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.data-table th{font-size:10px;font-weight:600;letter-spacing:.25px;color:#5a739a;background:#f2f7fd;padding:12px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}.data-table td{padding:13px 14px;border-bottom:1px solid #edf2f9;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfdff}.data-table .namebtn{border:0;background:transparent;padding:0;text-align:left;color:var(--navy);font-weight:600}.data-table .namebtn:hover{color:var(--blue)}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}.searchfield{position:relative;display:flex;align-items:center}.searchfield .ico{position:absolute;left:10px;color:#6d86ae;width:16px;height:16px}.searchfield input{padding-left:33px;min-width:235px}.dept-tabs{display:flex;background:#edf4fc;border-radius:7px;padding:3px;gap:3px}.dept-tab{border:0;border-radius:5px;background:transparent;padding:7px 12px;color:#587298;font-size:12px}.dept-tab.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px #19418412}.filters-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.line-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.line-card .line-art{height:89px;display:flex;align-items:center;justify-content:space-between;border-radius:8px;background:linear-gradient(120deg,#eaf5ff,#f6faff);padding:16px;color:#2e84cd;margin-bottom:14px}.line-art .ico{width:49px;height:49px;stroke-width:1.2}.line-card .shift-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0}.shift-total{padding:9px 7px;border-radius:6px;text-align:center;background:#f3f7fc;font-size:11px}.shift-total b{display:block;font-size:16px}.empty-state{padding:42px 25px;text-align:center;color:var(--muted)}.empty-state .ico{width:34px;height:34px;margin-bottom:10px;color:#a3bad9}.empty-state h3{color:var(--navy);margin-bottom:6px}.empty-state p{font-size:12px}.empty-state .btn{margin-top:14px}.weekly-table{width:100%;min-width:860px;border-collapse:separate;border-spacing:4px;table-layout:fixed}.weekly-table th{font-size:12px;background:#e9f1fa;padding:11px 7px;border-radius:5px}.weekly-table th:first-child{width:153px;text-align:left}.weekly-table th.today{background:#ddecff;color:var(--blue)}.weekly-table th.weekend{background:#fff3e4}.weekly-table td{vertical-align:top;padding:7px;background:#fff;border:1px solid #e8f0fa;border-radius:6px}.weekly-table td:first-child{background:#f9fcff}.weekly-table .week-shift{width:100%;border:0;border-radius:4px;display:flex;align-items:center;justify-content:space-between;gap:3px;background:#e7f8ee;color:#166c51;font-size:10px;padding:7px 6px;margin:3px 0}.week-shift.warning{background:#fff4d7!important;color:#937010!important}.week-shift.blocked{background:#eff1f5!important;color:#8a97ad!important}.weekly-table .daybtn{border:0;background:transparent;font-weight:600;color:inherit}.staff-roster{min-width:960px;border-collapse:separate;border-spacing:0;font-size:10px;width:100%}.staff-roster th,.staff-roster td{border-right:1px solid #edf2f9;border-bottom:1px solid #edf2f9;padding:8px 4px;text-align:center;min-width:55px}.staff-roster th{background:#f0f6fe;padding:10px 4px;color:#496a9c;font-weight:500}.staff-roster th:first-child,.staff-roster td:first-child{position:sticky;left:0;z-index:2;background:#fff;min-width:205px;text-align:left;padding:8px 12px;border-right:1px solid #dfebfb}.staff-roster th:first-child{background:#eef5ff}.staff-roster .weekend{background:#fff8ef}.roster-chip{border:0;border-radius:4px;background:#e4f0ff;color:#2869b5;padding:6px 5px;font-size:10px;white-space:nowrap;width:100%}.roster-chip.S{background:#fff0dc;color:#b56e12}.roster-chip.N{background:#ece6ff;color:#6950ae}.roster-chip:hover{outline:1px solid #7ab6ff}.roster-free{font-size:9px;color:#a3afc0}.roster-absent{font-size:9px;color:#c46e34;background:#fff0dd;border-radius:4px;padding:5px}.month-roster .staff-roster{width:auto;min-width:2100px}.month-roster .staff-roster th,.month-roster .staff-roster td{min-width:58px}.inbox-layout{display:grid;grid-template-columns:250px 1fr;gap:18px}.inbox-filters{display:flex;flex-direction:column;gap:6px}.inbox-filter{border:0;background:transparent;padding:11px 12px;text-align:left;border-radius:6px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.inbox-filter.active{background:#e4f1ff;color:var(--blue)}.message{display:flex;align-items:flex-start;gap:13px;padding:17px 0;border-bottom:1px solid #edf2f9}.message.unread h4{color:var(--blue)}.message p{margin-top:5px;font-size:12px;line-height:1.6;color:#566e91}.message small{font-size:10px}.request-card{margin-bottom:13px}.request-body{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:14px}.request-impact{background:#fff7e9;padding:12px;border-radius:7px;color:#8d630f;font-size:12px}.info-box{background:#eef6ff;border:1px solid #dfeeff;padding:12px 14px;border-radius:8px;display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#3a608f}.info-box p{line-height:1.6}.info-box.warning{background:#fff8ec;border-color:#ffdfad;color:#916313}.info-box.success{background:#ecfcf4;border-color:#c9f0dd;color:#177456}.info-box.danger{background:#fff0f2;border-color:#ffd1da;color:#c13851}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.result-stat{padding:16px;border:1px solid var(--line);border-radius:8px;text-align:center;background:#fbfdff}.result-stat b{display:block;font-size:26px;margin-bottom:3px}.result-stat span{font-size:11px;color:var(--muted)}.audit-row{padding:10px 0;border-bottom:1px solid #edf3fa;font-size:12px}
/* Dialogs: visible workflows, not links to static screenshots. */
.modal-backdrop{position:fixed;inset:0;background:#10254a48;backdrop-filter:blur(3px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadein .15s}.modal{width:690px;max-width:96vw;max-height:92vh;background:#fff;border:1px solid #e2ebf7;border-radius:15px;box-shadow:0 24px 90px #08255135;overflow:hidden;display:flex;flex-direction:column}.modal.wide{width:930px}.modal.small{width:475px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 24px 17px;border-bottom:1px solid #e9f0f8}.modal-header h2{font-size:20px}.modal-header p{font-size:12px;color:var(--muted);margin-top:4px}.modal-body{padding:20px 24px;overflow:auto}.modal-footer{padding:16px 24px;border-top:1px solid #e9f0f8;display:flex;justify-content:flex-end;align-items:center;gap:9px;background:#fbfdff}.modal-footer .left{margin-right:auto}.modal label:not(.checklabel){display:block;font-size:12px;font-weight:600;margin-bottom:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid.three{grid-template-columns:1fr 1fr 1fr}.field{min-width:0}.field input,.field select,.field textarea{width:100%}.field small{display:block;margin-top:4px;line-height:1.5}.modal textarea{min-height:74px;resize:vertical}.checklabel{display:flex;align-items:flex-start;gap:9px;font-size:12px;cursor:pointer;line-height:1.5}.checklabel input{accent-color:var(--blue);margin-top:3px;flex:none}.checks{display:flex;flex-wrap:wrap;gap:10px}.checks .checklabel{padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#f9fbff}.modal-tabs{display:flex;gap:5px;padding:4px;background:#f0f5fb;border-radius:8px;margin-bottom:18px}.modal-tab{flex:1;display:flex;justify-content:center;align-items:center;gap:6px;border:0;border-radius:6px;padding:9px 7px;background:transparent;color:var(--muted);font-size:11px}.modal-tab.active{background:white;color:var(--blue);box-shadow:0 1px 5px #12396b12}.closure-preview{padding:15px;border-radius:9px;background:#fff6e8;border:1px solid #ffe2b3;color:#825b10;margin-top:17px}.closure-preview strong{font-size:13px}.closure-preview p{font-size:12px;line-height:1.6;margin-top:7px}.closure-impact{display:flex;gap:12px;margin-top:12px;font-size:12px}.closure-impact b{font-size:19px}.closure-list-item{border:1px solid var(--line);border-radius:7px;padding:13px;margin-top:10px;font-size:12px}.closure-list-item p{color:var(--muted);font-size:11px;margin-top:4px}.replacement-list{display:flex;flex-direction:column;gap:7px;margin-top:12px;max-height:330px;overflow:auto;padding-right:3px}.candidate{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;gap:11px;align-items:center;cursor:pointer;font-size:12px;background:#fff}.candidate:hover{border-color:#9cc8ff;background:#f6fbff}.candidate.selected{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:#f1f7ff}.candidate.disabled{opacity:.65;cursor:default}.candidate.disabled:hover{background:#fff;border-color:var(--line)}.candidate .candidate-details{flex:1;min-width:0}.candidate .candidate-details small{display:block;line-height:1.5;font-size:10px}.candidate .selection{height:17px;width:17px;border:1px solid #b8cce8;border-radius:50%;flex:none}.candidate.selected .selection{border:5px solid var(--blue)}.service-detail{display:flex;align-items:center;gap:12px;padding:13px;background:#f2f7fd;border-radius:9px;margin-bottom:16px}.service-detail strong{font-size:13px}.service-detail p{color:#6b83a6;font-size:11px;margin-top:3px}.rule-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.rule-chips .tag{font-size:10px;padding:5px 7px}.planning-progress{height:7px;background:#e5effa;border-radius:6px;overflow:hidden;margin-top:22px}.planning-progress div{height:100%;background:linear-gradient(90deg,#168bff,#ff941b);border-radius:6px;transition:width .15s}.planning-orb{display:flex;align-items:center;justify-content:center;margin:20px auto;width:72px;height:72px;border-radius:18px;background:#e8f4ff;color:var(--blue)}.planning-orb .ico{width:36px;height:36px;animation:pulse 1.2s infinite}.welcome .modal-body{padding:29px 30px}.welcome .welcome-logo{width:158px;margin-bottom:22px}.welcome h2{font-size:26px;letter-spacing:-.6px}.welcome p{font-size:13px;line-height:1.7;color:#647c9d;margin-top:8px}.welcome-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:23px 0}.welcome-step{padding:13px 9px;background:#f2f7ff;border-radius:8px;font-size:11px}.welcome-step .ico{color:var(--blue);display:block;margin-bottom:8px}.welcome-step b{font-size:12px;display:block;margin-bottom:4px}.welcome .checklabel{padding:14px 0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid #edf3fa}.settings-row p{font-size:11px;color:var(--muted);margin-top:3px}.settings-row input[type=number]{width:75px}.saving-status{position:fixed;bottom:7px;left:12px;color:#8da2bf;z-index:40;font-size:9px}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}.detail-stat{border:1px solid var(--line);border-radius:7px;padding:12px;background:#f8fbff;text-align:center}.detail-stat b{font-size:22px;display:block}.detail-stat small{font-size:10px}.notification-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex:none}.split-fields{display:flex;gap:10px}.split-fields>*{flex:1}.demand-grid{width:100%;border-collapse:collapse;margin-top:10px}.demand-grid th,.demand-grid td{padding:11px 8px;border-bottom:1px solid #eaf1fb;text-align:center}.demand-grid th{font-size:11px;color:#5e7699}.demand-grid th:first-child,.demand-grid td:first-child{text-align:left}.demand-grid input{width:70px;min-height:34px;padding:7px;text-align:center;border:1px solid var(--line);border-radius:5px}.line-meta{display:flex;gap:20px;padding:13px 0;color:#657f9f;font-size:12px}.line-meta span{display:flex;gap:7px;align-items:center}.employee-schedule{max-height:205px;overflow:auto}.employee-schedule .row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf2f9;font-size:11px}.mobile-menu{display:none}.global-results button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;padding:11px;border-radius:7px}.global-results button:hover{background:#edf6ff}.global-results small{display:block}.muted-panel{padding:14px;border:1px dashed #cfdfef;background:#f8fbff;border-radius:8px;font-size:12px;color:#66809f}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes pulse{50%{opacity:.4;transform:scale(.92)}}
@media(min-width:1650px){.staff-row{font-size:11px;min-height:25px}.staff-name,.staff-role{font-size:11px}.line-row{min-height:135px}.shift-cell.closed{min-height:135px}.main{padding-left:24px;padding-right:24px}.plan-layout{grid-template-columns:minmax(700px,1fr) 326px}.plan-aside .card{padding:15px}.roster-head,.line-row,.maintenance-row{grid-template-columns:160px repeat(3,minmax(0,1fr))}.maintenance-row .staff-role{font-size:10px}}
@media(max-width:1360px){:root{--sidebar:184px}.sidebar .logo{width:158px;margin-left:4px}.topbar{padding-left:13px;padding-right:12px;gap:8px}.top-tab{padding:10px 9px;font-size:10px}.profile .profile-name{display:none}.top-actions{gap:6px}.main{padding:74px 14px 20px}.plan-layout{grid-template-columns:minmax(620px,1fr) 270px;gap:12px}.roster-head,.line-row,.maintenance-row{grid-template-columns:137px repeat(3,minmax(0,1fr))}.line-label{padding:9px}.staff-row{grid-template-columns:19px minmax(55px,.75fr) minmax(54px,1fr) 10px;gap:3px}.staff-role,.staff-name{font-size:9px}.staff-row .avatar{width:18px;height:18px}.maintenance-label strong{font-size:10px}.maintenance-label p{font-size:8px}.donut{width:91px;height:91px}.donut:before{inset:10px}.donut strong{font-size:25px}.page-tools{gap:8px}.page-heading p{font-size:13px}.page-heading h1{font-size:24px}.model-select{display:none}.line-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1140px){:root{--sidebar:74px}.sidebar .logo{width:58px;object-fit:cover;object-position:left;height:33px;margin:0 0 26px}.navitem{padding:11px 15px;gap:0;justify-content:center}.navitem .navtext,.navitem .count,.workspace,.saving-status{display:none}.navbottom{padding-bottom:15px}.topbar{left:74px}.topbar .work-select{font-size:11px}.topbar .work-select .ico{display:none}.plan-layout{grid-template-columns:minmax(0,1fr) 250px;gap:10px}.roster-head,.line-row,.maintenance-row{grid-template-columns:123px repeat(3,minmax(0,1fr))}.staff-role{font-size:8px}.staff-row{grid-template-columns:17px 52px minmax(40px,1fr);gap:2px}.staff-row .dots{display:none}.staff-row .avatar{width:16px;height:16px}.staff-name{font-size:9px}.line-label h3{font-size:15px}.line-label .area{font-size:11px}.maintenance-label p{font-size:8px}.maintenance-label strong .ico{display:none}.top-tabs{gap:1px}.top-tab{padding:10px 7px}.top-actions{gap:3px}.proto-tag{display:none}.dashboard-grid{grid-template-columns:1fr}.kpi-grid{gap:9px}.kpi{padding:14px}.kpi-value{font-size:28px}}
@media(max-width:900px){.plan-layout{display:block}.plan-aside{display:grid;grid-template-columns:1fr 1fr;margin-top:15px}.plan-aside .support-card{display:none}.roster-head,.line-row,.maintenance-row{grid-template-columns:135px repeat(3,minmax(0,1fr))}.staff-row{grid-template-columns:21px minmax(58px,.8fr) minmax(50px,1fr) 9px}.staff-row .dots{display:block}.staff-role,.staff-name{font-size:10px}.staff-row .avatar{width:19px;height:19px}.top-tabs{overflow-x:auto;max-width:510px}.top-actions .help-button,.profile{display:none}.topbar .work-select{display:none}.page-tools .filter-button{display:none}.kpi-grid{grid-template-columns:1fr 1fr}.line-cards{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.inbox-layout{grid-template-columns:1fr}.inbox-filters{flex-direction:row;flex-wrap:wrap}.inbox-filters .inbox-filter{padding:7px}.detail-stats{grid-template-columns:1fr 1fr}}
@media(max-width:640px){:root{--sidebar:0px}.sidebar{transform:translateX(-100%);width:218px}.sidebar.open{transform:none;box-shadow:5px 0 50px #09295420;z-index:90}.sidebar.open .navtext,.sidebar.open .navitem .count,.sidebar.open .workspace{display:flex}.sidebar.open .logo{width:175px;height:auto;margin:0 8px 20px}.sidebar.open .navitem{justify-content:flex-start;gap:14px}.mobile-menu{display:inline-flex}.topbar{left:0;padding:8px;gap:4px}.top-tab{font-size:10px;padding:10px 9px}.top-tabs{max-width:calc(100vw - 104px)}.top-actions .iconbtn:not(.notification-button){display:none}.main{padding:75px 12px 20px}.page-heading{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:15px}.page-tools{width:100%;justify-content:space-between}.page-heading h1{font-size:25px}.plan-main{overflow-x:auto;padding-bottom:5px}.roster-head,.line-row,.maintenance-row{min-width:725px;grid-template-columns:137px repeat(3,minmax(0,1fr))}.plan-aside{grid-template-columns:1fr 1fr;gap:8px}.plan-aside .card{padding:11px}.coverage-card{gap:9px;flex-wrap:wrap}.donut{width:79px;height:79px}.coverage-stats{font-size:10px}.coverage-stats .total{font-size:15px}.vacancy{padding:6px;flex-wrap:wrap}.vacancy .btn{margin-left:23px}.line-status-item{grid-template-columns:46px 1fr 28px;font-size:10px}.line-status-item span:nth-child(2){font-size:9px}.plan-aside h3{font-size:12px}.quick-actions .btn{font-size:10px;gap:6px}.hero-strip{align-items:flex-start;flex-direction:column}.hero-strip p{font-size:11px}.kpi-value{font-size:25px}.kpi-icon{width:29px;height:29px}.kpi-top{font-size:11px}.dashboard-grid{display:block}.dashboard-grid>.card{margin-bottom:13px}.dash-line{grid-template-columns:105px 1fr 1fr 1fr 20px;gap:8px;font-size:11px}.dash-line small{font-size:9px}.dash-line .dash-coverage{font-size:9px}.line-cards{grid-template-columns:1fr}.modal-backdrop{padding:10px}.modal{max-width:100%;max-height:96vh;border-radius:11px}.modal-header{padding:17px}.modal-body{padding:17px}.modal-footer{padding:13px 17px;flex-wrap:wrap}.modal-footer .btn{font-size:12px}.form-grid,.form-grid.three{grid-template-columns:1fr}.modal-tabs{flex-wrap:wrap}.modal-tab{flex:none;width:calc(50% - 3px)}.welcome-steps{grid-template-columns:1fr}.welcome-step{display:none}.welcome-step:first-child{display:block}.welcome .modal-body{padding:22px}.result-stat{padding:10px}.result-stat b{font-size:23px}.replacement-list{max-height:250px}.toast-stack{right:12px;bottom:15px;left:12px}.table-toolbar{align-items:stretch}.searchfield input{width:100%;min-width:0}.filters-row{width:100%}.dept-tabs{overflow:auto}.dept-tab{white-space:nowrap;font-size:11px;padding:7px 9px}.request-body{grid-template-columns:1fr}.main>.page-caption{font-size:10px}.table-wrap{max-width:100%}.line-meta{flex-wrap:wrap;gap:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.page-tools,.modal-backdrop,.toast-stack,.demo-footnote,.saving-status{display:none!important}.main{margin:0;padding:0}.card{break-inside:avoid}.plan-layout{grid-template-columns:1fr}.plan-aside{display:none}body{background:white}button{border:0}}
/* Keep the approved desktop plan compact, including its support team. */
@media(min-width:901px){
 .main{padding-top:72px}.page-heading{margin-bottom:12px}
 .plan-aside{gap:8px}.plan-aside .card{padding:10px 12px}
 .plan-aside .card-head{margin-bottom:8px}.plan-aside h3{line-height:1.3}
 .plan-aside .coverage-card{margin-top:6px;gap:14px}
 .plan-aside .donut{width:100px;height:100px}.plan-aside .donut:before{inset:11px}
 .plan-aside .legend-row{margin-top:3px}
 .plan-aside .vacancy{padding:6px 7px;gap:7px;line-height:1.3}
 .plan-aside .vacancy strong{font-size:10.5px}.plan-aside .vacancy>.ico{width:14px;height:14px}
 .plan-aside .vacancy .btn{font-size:10px;min-height:27px;padding:4px 6px}
 .plan-aside .vacancy-list{gap:4px}
 .plan-aside .quick-actions{gap:5px}.plan-aside .quick-actions .btn{min-height:27px;padding:4px 9px}
 .plan-aside .line-status-item{padding:2px 0;line-height:1.3}
 .staff-name,.staff-role{font-size:10.5px}.maintenance-row .staff-role{font-size:9px}
}
@media(max-width:640px){.week-chart{gap:9px}.bar-col{padding:0;min-width:0}}
.date-input-wrap{position:relative;width:156px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;white-space:nowrap}.date-input-wrap span{pointer-events:none}.date-nav .date-input-wrap input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.date-input-wrap:focus-within{outline:2px solid #badbff;border-radius:4px}
.page-tools>.model-select{position:relative;align-self:center}.page-tools>.model-select .formlabel{position:absolute;left:0;bottom:calc(100% + 4px);margin:0;white-space:nowrap}
@media(max-width:640px){.date-input-wrap{width:133px;font-size:11px}}

/* V2: supplied identity, explicit plan lifecycle, accessible local actions. */
:root{--orange:#f0a017}
.brand-link{display:flex;align-items:center;justify-content:center;width:100%;height:65px;margin:0 0 15px;padding:0 6px;border:0;background:transparent;border-radius:8px;flex:none}
.brand-link:hover{background:#eaf4ff}
.sidebar .brand-link .logo{display:block;width:100%;height:auto;object-fit:contain;margin:0;mix-blend-mode:multiply}
.logo-compact{display:none}
.welcome .welcome-logo{width:240px;max-width:75%;height:auto;mix-blend-mode:multiply;margin-bottom:12px}
.btn.clear-trigger{border-color:#dbe4ef;color:#61708d;background:#fff}
.btn.clear-trigger:hover{border-color:#f4bbc5;background:#fff5f6;color:#b72b42}
.btn.ghost{border-color:transparent;background:transparent;box-shadow:none}
.btn.ghost:hover{background:#e6f1ff;border-color:#cfe4ff}
.page-tools{flex-shrink:0}
.plan-context{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 1px 10px;min-height:36px;font-size:11px}
.context-main,.context-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.context-muted{display:inline-flex;align-items:center;gap:5px;color:#6a7e9e}
.local-save{display:inline-flex;align-items:center;gap:5px;color:#617998;font-size:10px;white-space:nowrap}
.local-save .ico{color:#0b9a6d;width:13px;height:13px}
.plan-context .tag{font-size:10px}
.plan-context .btn{min-height:27px}
.empty-plan-note{border:1px solid #b7d7ff;background:linear-gradient(115deg,#eaf4ff,#f7fbff);border-radius:9px;display:flex;align-items:center;gap:12px;padding:13px 15px;margin-bottom:12px}
.empty-plan-note strong{font-size:14px}.empty-plan-note p{font-size:11px;color:#526e97;margin-top:3px}
.empty-plan-note .btn{margin-left:auto;flex:none}.empty-plan-icon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--blue);background:#d9ebff;flex:none}
.shift-cell.unplanned{background:#fbfdff;border-color:#dce9f9}
.cell-status.pending{color:#496c9b;background:#e9f2ff}
.shift-cell.unplanned .staff-row.vacant{color:#6c84a7}
.shift-cell.unplanned .staff-row.vacant .staff-name{color:#3d7dcc}
.shift-cell.unplanned .staff-row.vacant .dots .ico{color:#78a2d6}
.staff-row:hover{background:#edf5ff;box-shadow:inset 3px 0 #007bff}
.line-row:hover .line-label{background:#f0f7ff;border-color:#c6ddf8}
.line-label:focus-visible,.staff-row:focus-visible{outline:2px solid #007bff;outline-offset:-2px}
.status-lock{opacity:.6!important}.status-lock:hover,.status-lock:focus-visible{opacity:1!important;background:#fff}
.roster-head{position:sticky;top:64px;z-index:12;box-shadow:0 1px 3px #153c6910}
.preserved-data{padding:12px 14px;border:1px solid #cbe9de;border-radius:8px;background:#f2fbf7}
.preserved-data strong{display:flex;align-items:center;gap:6px;color:#167458;font-size:12px}
.preserved-data p{font-size:11px;color:#4d7265;line-height:1.65;margin-top:5px}
.clear-impact{border:1px solid #f2ccd4;background:#fff8f8;border-radius:9px;padding:15px}
.clear-impact-title{display:flex;align-items:center;gap:9px;color:#ad3246;font-size:14px}
.clear-impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0 11px}
.clear-impact-grid span{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#7c6070}
.clear-impact-grid b{font-size:24px;line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums}
.clear-ack{align-items:flex-start}.clear-ack input{margin-top:3px;flex:none}
.micro-note{font-size:11px;color:#6d7d98;line-height:1.5}
.generation-summary{display:grid;grid-template-columns:repeat(4,1fr);background:#f3f8ff;border:1px solid #d8e8fc;border-radius:8px;padding:13px 8px;gap:7px}
.generation-summary>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.generation-summary b{font-size:24px;color:#176cce;font-variant-numeric:tabular-nums}
.generation-summary span{font-size:10px;color:#667c9b}
.input:disabled,.select:disabled{color:#697c99;background:#f4f7fb;cursor:not-allowed}
.modal .info-box{line-height:1.6}.modal .checklabel{line-height:1.5}
.modal-footer{position:sticky;bottom:0;background:#fff;z-index:2}
@media(min-width:1141px) and (max-width:1450px){.plan-context .context-wide{display:none}.page-tools{gap:7px}.page-tools .btn{padding-left:9px;padding-right:9px}.page-heading{gap:10px}}
@media(max-width:1140px) and (min-width:641px){.brand-link{height:49px;padding:1px;margin-bottom:27px}.sidebar .brand-link .logo{display:none}.brand-link .logo-compact{display:block;width:52px;height:52px;object-fit:contain;mix-blend-mode:multiply}.page-tools .clear-trigger{font-size:11px}.page-tools{flex-shrink:1;flex-wrap:wrap;justify-content:flex-end}.context-wide{display:none}.plan-context{gap:6px}.context-main{gap:7px}.local-save{display:none}}
@media(max-width:900px){.page-tools .clear-trigger .ico{display:none}.page-tools .clear-trigger{padding:8px}.plan-context{flex-wrap:wrap}.empty-plan-note{flex-wrap:wrap}.roster-head{top:64px}}
@media(max-width:640px){.sidebar .brand-link .logo{display:block;width:100%;height:auto}.brand-link{height:65px;margin:0 0 14px;padding:0 6px}.brand-link .logo-compact{display:none}.sidebar.open [data-action="mobile-close"]{display:inline-flex!important;position:absolute;right:5px;top:4px;width:25px;height:25px;background:white;z-index:3}.sidebar .brand-link{margin-top:16px}.page-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;justify-content:stretch}.page-tools>.date-nav{grid-column:1/-1;justify-content:center;width:100%}.page-tools>.btn.primary{grid-column:1;grid-row:2;font-size:12px;min-height:38px}.page-tools>.clear-trigger{grid-column:2;grid-row:2;font-size:11px}.page-tools>.model-select,.page-tools>.filter-button{display:none}.plan-context{align-items:flex-start;padding-bottom:10px;gap:4px}.context-main{gap:7px}.context-actions{margin-left:auto;gap:5px}.context-main .context-muted{font-size:10px}.context-wide,.local-save{display:none}.empty-plan-note{gap:8px;padding:11px}.empty-plan-note>div{flex:1;min-width:210px}.empty-plan-note .btn{margin-left:43px}.roster-head{position:static}.clear-impact-grid{gap:6px}.clear-impact-grid b{font-size:22px}.generation-summary{grid-template-columns:1fr 1fr;row-gap:12px}.welcome .welcome-logo{max-width:75%;width:230px}.plan-context .tag{font-size:9px}.modal-footer .btn{flex-grow:1}}
@media print{.plan-context,.empty-plan-note .btn{display:none!important}.roster-head{position:static}}

.readonly-date{padding:9px 11px;border:1px solid #e0e9f4;border-radius:6px;background:#f4f7fb;color:#5d7698;min-height:36px;font-size:12px}
@media(max-width:640px){.plan-aside{grid-template-columns:1fr;align-items:start}.plan-aside .coverage-card{flex-wrap:nowrap;justify-content:space-between;max-width:330px}.plan-aside .coverage-stats{flex:1}.plan-aside .vacancy{flex-wrap:nowrap}.plan-aside .vacancy .btn{margin-left:auto}.plan-aside h3{font-size:13px}}

/* Non-interactive live notices must never block modal actions, especially on mobile. */
.toast-stack,.toast-stack .toast{pointer-events:none}

/* V4: one shared shift leader, four production lines, two standalone support rows. */
.leadership-row{min-height:68px!important;margin:5px 0 9px;gap:6px}
.leadership-label{background:linear-gradient(110deg,#fff3e2,#f5f9ff)!important;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:9px 10px}
.leadership-label strong{display:flex;align-items:center;gap:5px;font-size:12px;color:#102d65}
.leadership-label small{font-size:9px;line-height:1.45;color:#516d96}
.leader-person{display:flex;align-items:center;gap:10px;border:1px solid #dce9fa;border-top:3px solid #ff9a24;border-radius:7px;background:#fff;text-align:left;padding:12px 10px;min-width:0;cursor:pointer}
.leader-person strong{font-size:11px;display:block;color:#123e82}.leader-person small{display:block;font-size:9px;color:#6c7f9f;margin-top:4px}.leader-person .leader-menu{margin-left:auto;color:#4775b2}
.leader-person:hover{background:#f0f7ff;box-shadow:inset 3px 0 #1687ff}.leader-person.vacant{background:#fff7e9}
.shared-row{margin-top:8px}.shared-row .maintenance-label{border:1px solid #e3edf9;border-radius:7px;text-align:left;cursor:pointer}.quality-row .maintenance-label{background:#f1edff}
.shared-row .maintenance-label strong{font-size:11px;display:flex;gap:4px;align-items:center}.shared-row .maintenance-label small{font-size:9px;color:#5578a2}.shared-row .maintenance-label p{font-size:9px;line-height:1.35}
.shared-management{margin-top:22px}.shared-management-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:12px}.shared-management .card{padding:17px}.shared-management p{font-size:12px;color:#627a9e;margin:12px 0}
.clear-impact-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.dept-tabs{flex-wrap:wrap}
@media(min-width:901px){.line-row:not(.leadership-row){min-height:115px}.line-row .shift-cell.closed{min-height:115px}.line-row .staff-row{min-height:25px}.line-label .output{font-size:10px}}
@media(max-width:640px){.shared-management-grid{grid-template-columns:1fr}.clear-impact-grid{grid-template-columns:repeat(3,1fr)}.leader-person{padding:10px;gap:7px}.leader-person strong{font-size:10px}}

.roster-head,.leadership-row{column-gap:5px}
/* V5 — reason and absence controls in the existing replacement workflow. */
.change-current .grow>small{display:block;font-size:10px;margin-bottom:3px}.change-current .grow>strong{display:block}
.change-reason-panel{border:1px solid #dce8fa;background:#f7faff;border-radius:11px;padding:16px;margin-bottom:19px}.change-reason-panel.is-absence{background:#fffaf4;border-color:#ffddb6}
.staff-change-dialog .change-reason-panel>label{display:block;margin-bottom:8px;font-size:12px}.staff-change-dialog .change-reason-panel>.select{display:block;width:100%}
.change-reason-panel h3,.change-candidates h3{display:flex;align-items:center;gap:8px;font-size:14px}.step-number{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;background:#e3eeff;border-radius:50%;font-size:12px;color:#056ef8}
.change-shortcuts{display:flex;gap:5px}.change-shortcuts .btn{font-size:11px}.change-shortcuts .sick-active{background:#fff0df;border-color:#ffad50;color:#a95600}.change-full{grid-column:1/-1}.change-privacy{display:flex;gap:8px;align-items:center;font-size:11px;color:#647895;padding-top:13px}.change-privacy .ico{flex-shrink:0;color:#1680ef}
.change-effect{font-size:12px;line-height:1.55;margin-top:12px}.change-effect p{margin-top:3px;color:#4c6382}.change-effect>small{display:block;font-size:10.5px;color:#6f7e90;margin-top:8px}.change-protected{padding:11px;background:#fff1e7;border:1px solid #ffcf9f;border-radius:7px;margin-top:12px;color:#87470c}
.change-affected{border-top:1px solid #e6e7e8;padding-top:9px;margin-top:9px;font-size:11px}.change-affected>summary{cursor:pointer;color:#1e619f;font-weight:600}.change-affected>div{max-height:125px;overflow:auto}.change-impact-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #e8e8e8;font-size:10px}
.change-search{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:12px}.change-search .searchfield{flex:1}.change-search .searchfield input{width:100%;min-width:0}.change-search .checklabel{font-size:11px;white-space:nowrap}.staff-change-dialog .replacement-list{max-height:265px}.change-save-summary{display:flex;gap:9px;background:#edf6ff;border:1px solid #dbeafa;border-radius:8px;padding:12px;margin-top:15px;font-size:12px;line-height:1.5}.change-save-summary .ico{flex-shrink:0;color:#1477ec}.change-footnote{font-size:10px;color:#617793;line-height:1.5;margin-top:9px}
.staff-change-dialog .modal-footer{gap:8px}.staff-change-dialog .modal-footer>.btn:first-child{margin-right:auto}.staff-change-dialog .modal-footer>.btn{font-size:12px;white-space:normal}
.change-result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.change-result-stats>div{background:#f3f8ff;border:1px solid #e1ecfb;padding:15px;border-radius:8px;display:flex;flex-direction:column;text-align:center;gap:5px}.change-result-stats b{font-size:26px;color:#0973ff}.change-result-stats span{font-size:11px;color:#5c7598}.change-result-list{margin-top:14px;max-height:300px;overflow:auto}.change-result-list .service-detail{margin:5px 0}.staff-change-history{font-size:11px;max-height:170px;overflow:auto;margin-top:8px}.staff-change-history>div{padding:9px 0;border-bottom:1px solid #e4edf8}.staff-change-history small{display:block;color:#607897;line-height:1.7}
@media(max-width:640px){.staff-change-dialog .modal-header h2{font-size:18px}.staff-change-dialog .modal-body{padding:13px}.change-reason-panel{padding:12px}.change-reason-panel>.between{align-items:flex-start;flex-direction:column;gap:9px}.change-search{align-items:stretch;flex-direction:column;gap:8px}.change-privacy{padding-top:0}.change-impact-row{flex-direction:column;gap:1px}.staff-change-dialog .modal-footer>.btn{flex:1 1 100%;min-height:39px}.staff-change-dialog .modal-footer>.btn:first-child{order:3;flex:1}.staff-change-dialog .modal-footer{padding:10px 13px;gap:6px}.staff-change-dialog .candidate{padding:10px 8px;gap:7px}.change-result-stats>div{padding:12px 5px}.change-result-stats span{font-size:10px}.change-current{flex-wrap:wrap}}

.staff-change-dialog .candidate{text-align:left}.staff-change-dialog .candidate-details{min-width:0}.staff-change-dialog .candidate-details strong{display:block}

/* Do not fade the entire dialog again when filtering or selecting a replacement. */
.modal-backdrop:has(.staff-change-dialog){animation:none}

/* V5.1: stationary generation dialog; update only status/progress, no remounts. */
html{scrollbar-gutter:stable}
.modal-backdrop.generation-backdrop{animation:none}
.generation-dialog .modal-header,.generation-dialog .modal-footer{flex-shrink:0}
.generation-dialog .modal-body{flex:1 1 auto;min-height:0;scrollbar-gutter:stable;overscroll-behavior:contain}
.generation-progress-dialog .modal-body{display:flex;flex-direction:column;justify-content:center}
.generation-progress-content{width:100%;max-width:540px;margin:0 auto;padding:8px 0}
.generation-progress-dialog .planning-orb .ico{animation:none;transform:none;opacity:1}
.generation-phase{min-height:3em;line-height:1.5;display:flex;justify-content:center;align-items:center;overflow-wrap:anywhere}
.generation-period{min-height:1.5em;font-variant-numeric:tabular-nums}
.generation-percent{min-height:1.5em;font-variant-numeric:tabular-nums}
.generation-progress-dialog .planning-progress div{width:100%;transform-origin:left center;transition:transform .18s linear;will-change:transform}
@media(prefers-reduced-motion:reduce){.generation-progress-dialog .planning-progress div{transition:none}}

/* V3: analytics layout based on the user's reference. Scoped to the Dashboard. */
.analytics-root{max-width:1800px;margin:auto;color:#0c245a}
.analytics-root .page-heading{margin-bottom:17px}
.analytics-root .page-heading h1{font-size:28px;letter-spacing:-.7px;line-height:1.2}
.analytics-root .page-heading p{font-size:14px;color:#506c98}
.analytics-root .page-tools{gap:10px}
.analytics-root .btn{font-size:12px;min-height:35px}
.analytics-root .btn.small{font-size:11px;min-height:29px}
.analytics-root .dash-period-button{padding:9px 15px}
.analytics-topbar .dash-month-nav{margin-left:auto;display:flex;align-items:center;border:1px solid #d7e5f7;border-radius:7px;min-height:35px;background:white;margin-right:13px}
.dash-month-nav .btn{font-size:12px;min-height:32px;gap:10px;padding:5px 10px;color:#122c62}
.dash-month-nav .iconbtn{width:29px;height:31px}
.dash-control-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.dash-tabs{display:flex;overflow-x:auto;max-width:100%;border:1px solid #e0eafa;background:white;border-radius:7px;min-height:37px;padding:0}
.dash-tab{color:#243b6b;background:transparent;border:0;border-right:1px solid #eef3fa;padding:10px 21px;font-size:12px;white-space:nowrap;font-weight:500}
.dash-tab:last-child{border:0}.dash-tab:hover{background:#edf5ff}.dash-tab.active{background:#087fff;color:white;border-color:transparent;font-weight:600}
.dash-mini-actions{display:flex;gap:5px}.dash-mini-actions .iconbtn{border:1px solid #e1ebf7;background:white;width:35px;height:35px}
.dash-context{display:flex;align-items:center;justify-content:space-between;color:#7186a4;font-size:11px;margin:0 2px 14px;gap:10px;min-height:21px}
.dash-context>span{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.dash-context strong{font-weight:500;color:#4d6b93}.dash-separator{color:#acbdd1;margin:0 2px}.live-dot{width:6px;height:6px;background:#1488ff;border-radius:50%;display:inline-block}.dash-context .btn{min-height:22px}
.dash-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:0 0 15px}
.dash-kpi{display:flex;flex-direction:column;min-width:0;text-align:left;background:linear-gradient(155deg,#fff 65%,#f9fcff);border:1px solid #dfeafa;border-radius:9px;padding:16px 14px 13px;min-height:166px;box-shadow:0 2px 8px #1a457902;color:#112450;transition:border-color .12s,box-shadow .12s}
.dash-kpi:hover{border-color:#89bfff;box-shadow:0 5px 16px #1873c913}.dash-kpi.chosen{border-color:#55a6ff;box-shadow:inset 0 3px #087fff}
.dash-kpi-top{display:flex;align-items:center;gap:10px;width:100%;margin-bottom:9px;min-height:31px}
.dash-kpi-title{font-size:12px;font-weight:700;line-height:1.25;flex:1}
.dash-kpi-arrow{color:#9fb4d0;width:13px;height:13px;opacity:0;flex:none}.dash-kpi:hover .dash-kpi-arrow{opacity:1}
.dash-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;flex:none;background:#ecf5ff;color:#087fff}.dash-icon .ico{width:23px;height:23px}
.dash-icon.orange{background:#fff2df;color:#f3a019}.dash-icon.purple{background:#f3e8ff;color:#a44bed}.dash-icon.red{background:#ffe9ed;color:#f44255}.dash-icon.green{background:#e4f8ef;color:#00a870}
.dash-kpi-body{display:flex;flex-direction:column;flex:1;min-height:65px;justify-content:center;margin:0 0 9px}
.dash-kpi-value{font-size:29px;font-weight:700;line-height:1.2;letter-spacing:-.55px;color:#0c2156;font-variant-numeric:tabular-nums}
.dash-kpi-description{font-size:10.5px;color:#587296;margin-top:4px;line-height:1.4;white-space:normal}
.dash-kpi:first-child .dash-kpi-body{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;margin-top:-3px;margin-bottom:4px}
.dash-mini-ring{position:relative;width:69px;height:69px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#04b980 var(--pct),#e5f2ed 0)}
.dash-mini-ring:before{content:'';position:absolute;inset:8px;border-radius:50%;background:white}.dash-mini-ring b{z-index:1;font-size:16px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.dash-kpi-ring-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.dash-kpi-ring-copy strong{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}.dash-kpi-ring-copy small{font-size:10px;color:#6680a0;line-height:1.4}
.dash-trend{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.25;min-height:16px;margin-top:2px;flex-wrap:wrap}.dash-trend small{font-size:9px;color:#7286a1;font-weight:400}.dash-trend .ico{width:12px;height:12px}
.dash-trend.neutral{color:#8192aa;font-size:10px}.dash-trend.good{color:#00986b}.dash-trend.notice{color:#da8b00}
.dash-viz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.analytics-root .card{border:1px solid #dfeafa;border-radius:9px;box-shadow:none;padding:16px;min-width:0;background:#fff}
.dash-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}
.dash-panel-head h3{font-size:16px;letter-spacing:-.25px;line-height:1.3;color:#102451}.dash-panel-head p{font-size:10.5px;margin-top:5px;color:#7a8daa;line-height:1.4}
.dash-segment{display:flex;align-items:center;border:1px solid #e1eaf6;border-radius:6px;flex:none;overflow:hidden;min-height:31px}
.dash-segment button{font-size:10px;padding:8px 10px;color:#294773;border:0;background:transparent;white-space:nowrap}.dash-segment button.active{color:white;background:#087fff}.dash-segment button:hover:not(.active){background:#eff6ff}
.dash-legend{display:flex;gap:10px;flex:none;font-size:10px;margin-top:4px;color:#466691}.dash-legend span{display:flex;align-items:center;gap:4px}
.legend-dot{display:inline-block;width:9px;height:9px;border-radius:3px;flex:none;background:#9cacbf}.legend-dot.blue{background:#1687ff}.legend-dot.green{background:#0aba80}
.dash-trend-svg,.dash-bars-svg{display:block;width:100%;height:auto;overflow:visible;min-height:200px}
.chart-label{font-family:Arial,Helvetica,sans-serif;font-size:10px;fill:#42648e}.chart-sublabel{font-family:Arial,Helvetica,sans-serif;font-size:9px;fill:#8296b2}.chart-value{font-size:11px;fill:#123368;font-family:Arial,Helvetica,sans-serif;font-weight:600}
.dash-chart-point{cursor:pointer;outline:none}.dash-chart-point:focus-visible{outline:none}.dash-chart-point:focus-visible>rect:first-of-type,.dash-chart-point:hover>rect:first-of-type{fill:#0b7fff08;stroke:#8dc5ff;stroke-width:.7}.dash-chart-point .point-halo{opacity:0}.dash-chart-point:hover .point-halo,.dash-chart-point:focus-visible .point-halo{opacity:1}
.dash-chart-footer{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-top:5px;font-size:10px;color:#899bb3}
.dash-chart-footer>span:first-child{color:#5a779d;display:flex;align-items:center;gap:5px}
.dash-comparison{font-size:12px}.dash-comparison th,.dash-comparison td{padding:10px 9px!important;white-space:nowrap}.dash-comparison th{color:#4b688f!important;font-size:10px}.dash-comparison td{font-size:11px}
.dash-comparison th:first-child{border-radius:5px 0 0 5px}.dash-comparison th:last-child{border-radius:0 5px 5px 0}
.dash-table-link{padding:0;border:0;background:none;color:#234778;font-size:inherit;display:inline-flex;gap:7px;align-items:center;text-align:left;line-height:1.4}.dash-table-link:hover{color:#007bff;text-decoration:underline}.dash-table-link .ico{color:#1687ff;flex:none}
.dash-table-note{font-size:10px;color:#8293ab;line-height:1.5;margin-top:13px}
.dash-absence-body{display:flex;align-items:center;gap:28px;padding:4px 5px 5px;min-height:188px}
.dash-absence-ring{width:167px;height:167px;display:grid;place-items:center;border:0;border-radius:50%;flex:none;position:relative}.dash-absence-ring:before{content:'';position:absolute;inset:27px;border-radius:50%;background:white}.dash-absence-ring>span{z-index:1;display:flex;align-items:center;flex-direction:column;gap:1px}.dash-absence-ring b{font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}.dash-absence-ring small{font-size:11px;color:#557096}.dash-absence-ring em{font-style:normal;font-size:11px;color:#7288a7;margin-top:3px}
.dash-absence-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.dash-absence-legend button{padding:6px 2px;background:transparent;border:0;display:grid;grid-template-columns:minmax(0,1fr) 27px 51px;align-items:center;gap:6px;color:#42628e;text-align:left;font-size:12px;border-radius:5px;min-height:32px}.dash-absence-legend button:hover{background:#edf6ff}.dash-absence-legend b{font-weight:500;color:#1f4172;text-align:right}.dash-absence-legend button>span:last-child{text-align:right;font-size:11px;color:#7490b0}.dash-reason-label{display:flex;align-items:center;gap:9px}.dash-reason-label .legend-dot{width:12px;height:12px;border-radius:50%}
.dash-zero{display:flex;flex-direction:column;align-items:flex-start;gap:7px;color:#526f94}.dash-zero strong{font-size:13px}.dash-zero small{font-size:11px}.dash-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e2ecf7;margin-top:17px;padding:10px 0 1px;font-size:10px;color:#8494ae}.dash-bottom>span{display:flex;gap:7px;align-items:center;line-height:1.5}.dash-bottom .btn{min-height:26px;font-size:10px;flex:none}
.dash-detail-card .data-table{font-size:12px}.dash-detail-card .data-table td{padding:12px 11px}.dash-detail-card>.dash-chart-card{border:0;padding:3px 0 12px;width:100%;max-width:none}
.dash-absence-detail{grid-template-columns:minmax(0,1fr)}.dash-absence-detail .dash-absence-body{justify-content:center}.dash-absence-detail .dash-absence-legend{flex:0 1 600px}
.employee-directory-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.employee-week-picker{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;color:#506c98}.employee-week-nav{min-width:215px;justify-content:space-between}.employee-week-current{min-width:145px;text-align:center;color:#122c62;font-size:12px}.employee-week-nav .iconbtn:disabled{opacity:.35;cursor:not-allowed}
.dash-detail-note{display:flex;align-items:flex-start;gap:9px;color:#5676a0;font-size:11px;background:#f3f8ff;border:1px solid #e0edfe;border-radius:7px;padding:11px 13px;margin:0 0 15px;line-height:1.55}.dash-detail-note .ico{flex:none;color:#2d8af0}.dash-search{margin-bottom:13px}.dash-search input{min-width:250px}
.dash-person{padding:0;display:flex;align-items:center;gap:8px;background:transparent;border:0;color:#284b7a;text-align:left}.dash-person:hover{color:#007bff}.dash-person strong{font-size:12px;font-weight:600}.dash-person .avatar{width:27px;height:27px}
.dash-util{display:flex;align-items:center;gap:9px}.dash-util>span{width:72px;height:5px;border-radius:10px;background:linear-gradient(to right,#138aff var(--width),#e9f1fb var(--width));flex:none}.dash-util b{font-size:11px;font-weight:500}
.dash-more{display:flex;justify-content:center;gap:13px;align-items:center;margin-top:17px;color:#8499b3;font-size:11px}
.dash-reason-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 12px}.dash-large-empty{padding:40px 20px 48px;display:flex;align-items:center;text-align:center;flex-direction:column;gap:12px;color:#526d95}.dash-large-empty .dash-icon{width:56px;height:56px;border-radius:50%}.dash-large-empty .dash-icon .ico{width:28px;height:28px}.dash-large-empty h3{font-size:18px;color:#1c3d71}.dash-large-empty p{font-size:12px;max-width:510px;line-height:1.65;margin-bottom:5px}
.dash-export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.dash-export-tile{border:1px solid #e2ebf7;background:#fbfdff;padding:20px;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.dash-export-tile h3{font-size:15px}.dash-export-tile p{font-size:12px;color:#7a8fab;line-height:1.6;flex:1}.dash-export-tile .btn{margin-top:7px}
.dash-filter-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dash-filter-checks .checklabel{border:1px solid #e2ecf8;padding:10px;border-radius:6px;font-size:12px}.dash-filter-checks small{display:block;color:#7891ae;font-size:10px;margin-top:3px}.dash-definitions{display:flex;flex-direction:column;gap:15px}.dash-definitions h3{font-size:14px;color:#123569}.dash-definitions p{font-size:12px;color:#637d9e;margin-top:4px;line-height:1.7}
@media(min-width:1650px){.dash-kpi-title{font-size:14px}.dash-kpi-value{font-size:31px}.dash-kpi-description{font-size:11px}.dash-kpi{padding:17px 18px}.dash-kpi-ring-copy strong{font-size:18px}.dash-absence-body{gap:40px}.dash-absence-ring{width:180px;height:180px}.dash-viz-grid{gap:17px}}
@media(max-width:1380px){.dash-tab{padding:10px 14px;font-size:11px}.dash-kpis{gap:10px}.dash-kpi{padding:13px 11px;min-height:163px}.dash-kpi-top{gap:7px}.dash-kpi-title{font-size:11px}.dash-kpi-arrow{display:none}.dash-kpi-ring-copy strong{font-size:13px}.dash-kpi:first-child .dash-kpi-body{gap:8px}.dash-mini-ring{width:61px;height:61px}.dash-mini-ring b{font-size:14px}.dash-panel-head h3{font-size:15px}.dash-absence-body{gap:20px;padding-left:0;padding-right:0}.dash-absence-ring{width:144px;height:144px}.dash-absence-ring:before{inset:24px}.dash-absence-legend button{font-size:11px;grid-template-columns:minmax(0,1fr) 23px 44px}.dash-comparison th,.dash-comparison td{padding:10px 6px!important}.dash-comparison td{font-size:10px}.dash-table-link{gap:5px}.dash-segment button{padding:8px}.dash-panel-head{gap:8px}}
@media(max-width:1100px){.dash-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-kpi{min-height:150px}.dash-kpi-title{font-size:13px}.dash-kpi:first-child .dash-kpi-body{justify-content:flex-start}.dash-context{font-size:10px}.dash-kpi-arrow{display:block}.dash-viz-grid{gap:12px}.analytics-root .card{padding:13px}.dash-panel-head{flex-wrap:wrap}.dash-panel-head h3{font-size:14px}.dash-comparison{min-width:440px}.dash-absence-body{gap:12px}.dash-absence-legend{gap:5px}.dash-absence-legend button{grid-template-columns:minmax(0,1fr) 22px 43px}.dash-export-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.dash-viz-grid{grid-template-columns:1fr}.dash-kpis{gap:9px}.dash-panel-head{flex-wrap:nowrap}.dash-kpi-title{font-size:11px}.dash-kpi-top{gap:6px}.dash-kpi-value{font-size:25px}.dash-icon{width:28px;height:28px}.dash-icon .ico{width:20px;height:20px}.dash-kpi-arrow{display:none}.dash-absence-body{gap:35px;max-width:570px}.dash-absence-ring{width:165px;height:165px}.dash-absence-legend{gap:10px}.dash-control-row{align-items:stretch}.dash-mini-actions{display:none}.dash-tabs{width:100%}.analytics-topbar .work-select{display:flex;font-size:11px}.analytics-topbar .dash-month-nav{margin-left:auto;margin-right:2px}.dash-month-nav .btn{font-size:11px}.analytics-root .page-heading{align-items:flex-start}.analytics-root .page-heading h1{font-size:26px}.analytics-root .page-heading p{font-size:12px}}
@media(max-width:640px){.analytics-topbar .work-select{display:none}.analytics-topbar .dash-month-nav{margin-left:5px;margin-right:auto}.analytics-topbar .profile,.analytics-topbar .proto-tag{display:none}.analytics-root .page-heading{gap:14px;margin-bottom:14px}.analytics-root .page-tools{display:flex;flex-wrap:nowrap;gap:7px;justify-content:space-between}.analytics-root .page-tools .btn{font-size:11px;min-height:36px;padding:8px 10px}.analytics-root .dash-period-button{flex:1}.analytics-root .dash-period-button .ico{width:16px;height:16px}.dash-context{align-items:flex-start;flex-direction:column;gap:4px;font-size:10px}.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dash-kpi{min-height:153px}.dash-kpi:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;min-height:107px;align-items:center}.dash-kpi:last-child .dash-kpi-body{grid-row:1/3;grid-column:2;text-align:right;margin:0;min-height:0}.dash-kpi:last-child .dash-trend{grid-row:2;grid-column:1}.dash-kpi-value{font-size:29px}.dash-kpi-title{font-size:12px}.dash-icon{width:30px;height:30px}.dash-mini-ring{width:60px;height:60px}.dash-mini-ring b{font-size:13px}.dash-kpi-ring-copy strong{font-size:12px}.dash-kpi-ring-copy small{font-size:9px}.dash-kpi:first-child .dash-kpi-body{gap:7px}.dash-kpi-description{font-size:10px}.dash-trend.neutral{font-size:9px}.dash-panel-head{flex-wrap:wrap;gap:9px}.dash-panel-head h3{font-size:15px}.dash-trend-svg,.dash-bars-svg{min-height:0}.dash-panel-head p{font-size:10px}.dash-chart-footer{font-size:9px;align-items:flex-start}.dash-chart-footer>span:last-child{text-align:right}.dash-absence-body{gap:15px;padding-top:10px;min-height:161px}.dash-absence-ring{width:138px;height:138px}.dash-absence-ring:before{inset:22px}.dash-absence-ring b{font-size:25px}.dash-absence-legend button{grid-template-columns:minmax(0,1fr) 20px;gap:4px;font-size:11px}.dash-absence-legend button>span:last-child{grid-column:2;font-size:10px}.dash-absence-legend .legend-dot{width:9px;height:9px}.dash-reason-label{gap:5px}.dash-bottom{flex-direction:column;align-items:flex-start;font-size:10px}.dash-export-grid{grid-template-columns:1fr}.dash-filter-checks{grid-template-columns:1fr}.dash-filter-checks .checklabel{padding:10px}.dash-detail-card .data-table{min-width:640px}.dash-search input{min-width:0;width:100%}.dash-absence-detail .mt16 .btn{margin-top:6px}.dash-detail-note{font-size:11px}.dash-large-empty{padding:27px 10px}.dash-tabs{scrollbar-width:thin}.dash-tab{padding:10px 15px}}
@media print{.dash-mini-actions,.dash-bottom .btn,.dash-control-row,.dash-month-nav{display:none!important}.dash-kpis{grid-template-columns:repeat(5,1fr)}.dash-viz-grid{grid-template-columns:1fr 1fr}.dash-kpi,.dash-chart-card,.dash-compare-card,.dash-absence-card{break-inside:avoid}.dash-bottom{font-size:10px}.dash-context{display:flex}}
/* Keep plot labels readable at the reduced SVG scale on mobile. */
@media(max-width:640px){
 .analytics-root .chart-label{font-size:16px}
 .analytics-root .chart-sublabel{font-size:14px}
 .analytics-root .chart-value{font-size:16px}
 .dash-absence-legend button{grid-template-columns:minmax(0,1fr) 18px 43px;gap:4px}
 .dash-absence-legend button>span:last-child{grid-column:auto;white-space:nowrap;font-size:10px}
}


/* V5.4 Monatsansicht + schichtbezogene Mitarbeiter-Popups */
.month-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}
.month-kpi{display:flex;align-items:center;gap:12px;min-height:94px;padding:15px}
.month-kpi-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;background:#eef6ff;color:#1d78df}
.month-kpi-icon.orange{background:#fff4e3;color:#e3911a}.month-kpi-icon.green{background:#eaf9f1;color:#1caa6e}.month-kpi-icon.purple{background:#f1ecff;color:#7956c8}.month-kpi-icon.gray{background:#eef2f7;color:#66768c}
.month-kpi small{display:block;color:#687b98;font-size:10px}.month-kpi strong{display:block;color:var(--navy);font-size:22px;line-height:1.15;margin:2px 0}.month-kpi p{font-size:10px;color:#71829d}
.month-calendar-card{padding:0;overflow:hidden}.month-calendar-head{padding:16px 18px 14px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-bottom:1px solid #dfe8f5}.month-calendar-head h2{font-size:18px;color:var(--navy);margin:0 0 4px}.month-calendar-head p{font-size:10.5px;color:#687d9b;line-height:1.45;max-width:780px}.month-legend{display:flex;gap:12px;white-space:nowrap;font-size:10px;color:#637997}.month-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-dot.F{background:#bcefd1}.legend-dot.S{background:#cde5ff}.legend-dot.N{background:#ddd1ff}
.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays{background:#f2f7fd;border-bottom:1px solid #dce6f4}.month-weekdays>div{padding:9px 10px;text-align:center;font-size:10px;font-weight:700;color:#38577f;border-right:1px solid #e2eaf5}.month-weekdays>div:last-child{border-right:0}.month-grid{background:#fff}.month-day{appearance:none;border:0;border-right:1px solid #e4ebf5;border-bottom:1px solid #e4ebf5;background:#fff;min-height:132px;padding:9px;text-align:left;color:inherit;cursor:pointer;transition:.15s ease;display:flex;flex-direction:column;gap:7px}.month-day:nth-child(7n){border-right:0}.month-day:hover{background:#f7fbff;box-shadow:inset 0 0 0 2px #8fc4ff;position:relative;z-index:1}.month-day.weekend{background:#fbfcfe}.month-day-empty{background:#f8fafc;cursor:default}.month-day-empty:hover{box-shadow:none;background:#f8fafc}.month-day-head{display:flex;align-items:center;justify-content:space-between}.month-day-head>span:first-child{display:flex;align-items:baseline;gap:5px}.month-day-head strong{font-size:14px;color:#173c71}.month-day-head small{font-size:9px;color:#8a99ae}.month-rate{font-size:9px;font-weight:800;border-radius:12px;padding:3px 6px;background:#eef3f9;color:#708098}.month-rate.good{background:#e8f8ef;color:#16895a}.month-rate.warn{background:#fff3d9;color:#a36900}.month-rate.bad{background:#ffe9e9;color:#c94141}.month-shifts{display:grid;gap:4px}.month-shift{width:100%;border:0;appearance:none;display:flex;align-items:center;justify-content:space-between;border-radius:5px;padding:4px 6px;font-size:9px;font-weight:700;cursor:pointer;text-align:left;transition:.14s ease}.month-shift:hover,.month-shift:focus-visible{outline:2px solid #80b9ff;outline-offset:1px;filter:saturate(1.08);box-shadow:0 2px 7px #2264ac18}.month-shift.F{background:#e7f8ef;color:#197954}.month-shift.S{background:#e9f3ff;color:#2369b5}.month-shift.N{background:#f0ebff;color:#6b4fb4}.month-shift-code{width:19px;height:19px;border-radius:4px;display:grid;place-items:center;background:rgba(255,255,255,.75);font-weight:800}.month-day-open{border:0;background:transparent;padding:0;color:inherit;cursor:pointer;display:flex;align-items:baseline;gap:5px;font:inherit}.month-day-open:hover strong,.month-day-open:focus-visible strong{color:var(--blue)}.month-day-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:8.5px;color:#8090a7}.month-open{color:#c67514;font-weight:700}.month-complete{color:#16895a;font-weight:700}.shift-overview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;background:#eef6ff;margin-bottom:12px}.shift-overview-head.F{background:#eaf9f1;color:#167653}.shift-overview-head.S{background:#eaf4ff;color:#1f68b4}.shift-overview-head.N{background:#f1edff;color:#6749ae}.shift-overview-head strong{display:flex;align-items:center;gap:8px}.shift-overview-count{font-size:11px;font-weight:700}.shift-overview-group{border:1px solid #e3ebf6;border-radius:9px;overflow:hidden;margin-top:10px}.shift-overview-group>header{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;background:#f6f9fd;color:#38577f;font-size:11px;font-weight:700}.shift-overview-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 11px;border-top:1px solid #edf2f8}.shift-overview-row:first-of-type{border-top:0}.shift-overview-row p{font-size:10px;color:#71829d;margin-top:2px}.shift-overview-empty{color:#b36a14;background:#fff7e7;border:1px dashed #efc980;border-radius:7px;padding:8px 10px;font-size:10px;margin:8px 10px}.shift-overview-note{font-size:10px;color:#6f819d;margin-top:10px}
.month-calendar-controls{display:flex;align-items:flex-end;flex-direction:column;gap:10px;flex:none}.month-view-switcher{display:flex;gap:3px;padding:3px;border:1px solid #dce7f4;border-radius:8px;background:#f1f6fc}.month-view-switcher button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:31px;padding:6px 10px;border:0;border-radius:6px;background:transparent;color:#567092;font-size:10px;font-weight:700;white-space:nowrap}.month-view-switcher button:hover{background:#e4effb;color:#24588f}.month-view-switcher button.active{background:#fff;color:var(--blue);box-shadow:0 1px 5px #1d4d891c}.month-view-switcher .ico{width:14px;height:14px}.month-employee-card{overflow:hidden}.month-employee-wrap{overflow:auto;max-height:calc(100vh - 250px);background:#fff}.month-employee-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:10px}.month-employee-table th,.month-employee-table td{height:42px;min-width:43px;padding:5px;text-align:center;border-right:1px solid #e5ecf5;border-bottom:1px solid #e5ecf5;background:#fff}.month-employee-table thead th{position:sticky;top:0;z-index:4;height:48px;background:#f1f6fc;color:#456386;font-size:9px}.month-employee-table thead th span,.month-employee-table thead th strong{display:block}.month-employee-table thead th strong{margin-top:2px;color:#173c71;font-size:12px}.month-employee-table th:first-child{position:sticky;left:0;z-index:3;width:235px;min-width:235px;padding:6px 12px;text-align:left;background:#fff}.month-employee-table thead th:first-child{z-index:6;background:#edf4fc;font-size:10px}.month-employee-table .weekend{background:#fff8ee}.month-employee-table tbody tr:hover td,.month-employee-table tbody tr:hover th[scope="row"]{background:#f8fbff}.month-employee-group th{position:sticky!important;left:0!important;z-index:5!important;width:auto!important;padding:8px 12px!important;background:#e8f2ff!important;color:#1c5ca4;text-align:left!important;font-size:11px}.month-employee-group th span{font-weight:800}.month-employee-group th small{margin-left:9px;color:#6681a4;font-size:9px;font-weight:500}.month-employee-name{display:flex;align-items:center;gap:9px;width:100%;padding:0;border:0;background:transparent;text-align:left;color:var(--navy)}.month-employee-name .avatar{width:27px;height:27px}.month-employee-name span{min-width:0}.month-employee-name strong,.month-employee-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-employee-name strong{font-size:10.5px}.month-employee-name small{font-size:8.5px}.month-roster-shifts{display:flex;align-items:center;justify-content:center;gap:2px}.month-roster-chip{display:inline-grid;width:25px;height:25px;padding:0;border:0;border-radius:5px;place-items:center;font-size:10px;font-weight:800}.month-roster-chip.F{background:#e1f7eb;color:#167652}.month-roster-chip.S{background:#e5f1ff;color:#1e68b5}.month-roster-chip.N{background:#eee8ff;color:#674cac}.month-roster-chip:hover,.month-roster-chip:focus-visible{outline:2px solid #76b6ff;outline-offset:1px}.month-roster-free{color:#b1bdcc}.month-employee-note{display:flex;justify-content:space-between;gap:15px;padding:10px 15px;background:#f8fbff;color:#6e829e;font-size:9.5px;border-top:1px solid #e2eaf4}.month-employee-note b{color:#244e82}.month-employee-empty{min-height:270px;display:flex;align-items:center;justify-content:center;flex-direction:column}.month-employee-empty p{max-width:480px}
.month-roster-shifts{flex-wrap:nowrap}.month-roster-chip{display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;width:30px;min-width:30px;font-size:9px;line-height:1;white-space:nowrap}
.month-absence-chip{display:inline-grid;min-width:25px;height:25px;padding:0 3px;border-radius:5px;place-items:center;font-size:9px;font-weight:800;background:#ffe8e8;color:#a73e4c;border:1px solid #f3cbd0}.month-absence-chip.K{background:#ffe1e3;color:#a32f42}.month-absence-chip.AB{background:#fceadf;color:#9a5636}.month-absence-chip.FB{background:#e9e6fb;color:#6758a9}.month-absence-chip.W{background:#fff0df;color:#97642b}.month-absence-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:5px}.month-absence-legend span{white-space:nowrap}
.month-absence-chip.ZA{background:#e5f0ff;color:#235e9e}.month-absence-chip.A{background:#f0eaf7;color:#74508e}
.month-employee-table thead th.holiday,.month-employee-table tbody td.holiday{background:#e7ebf1;color:#66758b}.month-employee-table tbody tr:hover td.holiday{background:#e0e5ec}.month-employee-table thead th.holiday strong{color:#4b5b71}.month-employee-table thead th.holiday em{display:block;font-size:7px;font-style:normal;font-weight:800;color:#586a82;letter-spacing:.04em}.month-employee-table .holiday .month-roster-free{color:#7b899b}.month-day.holiday,.month-day.holiday:hover{background:#e9edf2;box-shadow:none}.month-day.holiday .month-rate{background:#d8dfe8;color:#59697d}.month-day.holiday .month-shifts{display:none}.month-holiday-message{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-align:center;font-size:10px;font-weight:800;color:#52647c}.month-holiday-message small{font-size:9px;font-weight:500}
.month-view-toolbar{display:flex;align-items:center;gap:12px;padding:9px 18px;background:#f8fbff;border-bottom:1px solid #dfe8f5}.month-view-toolbar>span{font-size:10px;font-weight:800;color:#456386;text-transform:uppercase;letter-spacing:.05em}.month-view-toolbar .month-view-switcher button{min-height:36px;padding:7px 14px;font-size:11px}.month-calendar-card{margin-bottom:14px}.month-calendar-head p{white-space:nowrap;max-width:none}
@media(max-width:1350px){.month-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.month-day{min-height:122px;padding:7px}.month-calendar-head p{max-width:600px}}
@media(max-width:900px){.month-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.month-calendar-card{overflow:auto}.month-weekdays,.month-grid{min-width:900px}.month-calendar-head{min-width:900px;align-items:flex-start}.month-legend{display:none}}
@media(max-width:640px){.month-kpis{grid-template-columns:1fr}.month-kpi{min-height:76px}.month-weekdays,.month-grid,.month-calendar-head{min-width:820px}}
.sidebar .saving-status{position:static;display:block;flex:none;margin:8px 11px 0;line-height:1.35}.sidebar .workspace-profile{margin-top:14px}
.main.roster-viewport,.main.staff-viewport,.main.employees-viewport{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:12px}
.main.roster-viewport>.page-heading,.main.roster-viewport>.plan-context,.main.roster-viewport>.month-kpis,.main.staff-viewport>.page-heading,.main.staff-viewport>.plan-context,.main.staff-viewport>.table-toolbar,.main.employees-viewport>.page-heading,.main.employees-viewport>.table-toolbar{flex:none}
.main.roster-viewport>.month-calendar-card{flex:1;min-height:0;margin-bottom:0;display:flex;flex-direction:column;overflow:hidden}.main.roster-viewport .month-calendar-head,.main.roster-viewport .month-view-toolbar,.main.roster-viewport .month-employee-note{flex:none}.main.roster-viewport .month-employee-wrap{flex:1;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.main.staff-viewport>.table-wrap,.main.employees-viewport>.table-wrap{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.main.staff-viewport>.flex.wrap.mt12,.main.employees-viewport>.between.mt12{flex:none;margin-top:8px}.main.staff-viewport .staff-roster thead th,.main.employees-viewport .data-table thead th{position:sticky;top:0;z-index:3}
.main.roster-viewport>.demo-footnote,.main.staff-viewport>.demo-footnote,.main.employees-viewport>.demo-footnote{flex:none;margin-top:8px;line-height:1.3}
@media(max-width:1140px){.sidebar .saving-status{display:none}}
@media(max-width:640px){.sidebar.open .saving-status{display:block}}
@media(max-width:900px),(max-height:760px){.main.roster-viewport .month-kpis{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.main.roster-viewport .month-kpi{flex:1 0 180px;min-height:70px;padding:8px}.main.roster-viewport .month-kpi-icon{width:30px;height:30px}.main.roster-viewport .month-kpi strong{font-size:18px}}
@media(max-width:900px){.main.roster-viewport .month-calendar-head{min-width:0}.main.roster-viewport .month-calendar-head p{min-width:0;overflow:hidden;text-overflow:ellipsis}.main.roster-viewport .month-employee-note{flex-wrap:wrap}}
@media(max-width:640px){.main.roster-viewport .month-view-toolbar{gap:6px;padding:7px 10px}.main.roster-viewport .month-view-switcher button{padding:5px 8px;font-size:10px}}
@media(max-width:380px){.main.roster-viewport .month-view-switcher button{padding:5px 6px}.main.roster-viewport .month-view-switcher .ico{display:none}}
@media print{.main.roster-viewport,.main.staff-viewport,.main.employees-viewport{height:auto;display:block;overflow:visible}.main.roster-viewport .month-employee-wrap,.main.staff-viewport>.table-wrap,.main.employees-viewport>.table-wrap{overflow:visible;max-height:none}}



/* V5.4 Navigation groups, redesigned line overview and reports */
.top-tabs{align-items:center}
.top-tab-group{display:flex;align-items:center;gap:4px;white-space:nowrap}
.top-tab-group.with-separator{margin-left:12px;padding-left:12px;border-left:1px solid #d9e5f4}

.line-overview-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.line-overview-kpi{padding:15px 16px;display:flex;align-items:center;gap:12px;min-height:86px}
.line-overview-kpi .lo-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eaf4ff;color:#1879e8;flex:none}
.line-overview-kpi.green .lo-icon{background:#e7f8ef;color:#12a86f}.line-overview-kpi.orange .lo-icon{background:#fff1df;color:#f08c18}.line-overview-kpi.purple .lo-icon{background:#f1ecff;color:#7555cb}
.line-overview-kpi small{display:block;color:#71819b;font-size:10px}.line-overview-kpi strong{display:block;color:var(--navy);font-size:23px;line-height:1.15;margin:2px 0}.line-overview-kpi p{font-size:10px;color:#71819b}
.line-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.line-overview-card{padding:0;overflow:hidden;border:1px solid #dce8f6;display:flex;flex-direction:column;min-width:0}
.line-overview-card-head{display:flex;justify-content:space-between;gap:12px;padding:15px 16px 12px;background:linear-gradient(135deg,#f9fcff,#eef6ff);border-bottom:1px solid #e2ebf6}
.line-overview-title{display:flex;gap:11px;align-items:center}.line-overview-title .lo-machine{width:41px;height:41px;border-radius:11px;display:grid;place-items:center;background:#fff;color:#237edb;box-shadow:0 1px 5px rgba(33,90,150,.08)}
.line-overview-title h3{font-size:16px;margin:0;color:var(--navy)}.line-overview-title p{font-size:10px;color:#6c809e;margin-top:3px}
.line-overview-body{padding:14px 16px}
.line-week-summary{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;padding-bottom:13px;border-bottom:1px solid #eef3f9}
.line-week-summary strong{font-size:20px;color:var(--navy)}.line-week-summary small{font-size:10px;color:#71819a}
.line-week-progress{height:7px;background:#e8eff8;border-radius:99px;overflow:hidden;margin-top:6px}.line-week-progress span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#17b97d,#65d6a7)}
.line-week-progress.warn span{background:linear-gradient(90deg,#f7b536,#f28a24)}.line-week-progress.bad span{background:linear-gradient(90deg,#ff7c7c,#ef4561)}
.line-shift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0}
.line-shift-box{border:1px solid #e6eef8;border-radius:9px;padding:9px;background:#fbfdff;min-width:0}
.line-shift-box .shift-name{display:flex;align-items:center;gap:6px;font-weight:600;font-size:10px;color:#425d86}.line-shift-box b{display:block;font-size:15px;color:var(--navy);margin-top:5px}.line-shift-box small{font-size:9px;color:#7b8aa1}
.line-shift-box.F{background:#f2fcf6;border-color:#d7f2e3}.line-shift-box.S{background:#f2f8ff;border-color:#d9eaff}.line-shift-box.N{background:#f7f3ff;border-color:#e7dcff}
.line-overview-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.line-meta{background:#f6f9fd;border-radius:8px;padding:8px 10px}.line-meta small{display:block;font-size:9px;color:#7a8aa2}.line-meta strong{font-size:11px;color:#334f7b}
.line-overview-meta.month-only{grid-template-columns:1fr}.line-position-summary{display:grid;gap:6px;min-width:115px}.line-position-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.line-position-summary span{font-size:10px;color:#7286a2}.line-position-summary strong{font-size:14px;color:var(--navy);white-space:nowrap}.line-position-summary strong.open{color:#b66e1a}.line-position-summary>div+div{padding-top:5px;border-top:1px solid #e5edf8}
.line-overview-card-head{min-height:76px;padding:11px 10px 9px}.line-overview-title{gap:8px;min-width:0}.line-overview-title>div{min-width:0}.line-overview-title .lo-machine{width:32px;height:32px;flex:none}.line-overview-title h3{font-size:15px;line-height:1.2}.line-overview-title p{font-size:9px;line-height:1.3}
.line-overview-body{display:flex;flex-direction:column;flex:1;padding:10px}.line-week-summary{grid-template-columns:1fr;gap:8px;align-items:stretch;padding-bottom:9px}.line-week-summary>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:3px}.line-week-summary strong{font-size:18px}.line-week-progress{grid-column:1/-1;margin-top:2px;height:6px}.line-position-summary{gap:3px;min-width:0}.line-position-summary>div{gap:5px}.line-position-summary strong{font-size:12px}.line-position-summary>div+div{padding-top:3px}
.line-overview-card .line-shift-grid{grid-template-columns:1fr;gap:5px;margin:9px 0}.line-overview-card .line-shift-box{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1px 5px;padding:5px 7px}.line-overview-card .line-shift-box .shift-name{font-size:9px;gap:4px}.line-overview-card .line-shift-box .shift-name .ico{width:13px;height:13px}.line-overview-card .line-shift-box b{font-size:12px;margin:0}.line-overview-card .line-shift-box small{grid-column:1/-1;font-size:8px}.line-overview-card .line-overview-meta{margin-bottom:8px}.line-overview-card .line-meta{padding:6px 7px;display:flex;justify-content:space-between;gap:5px;align-items:baseline}.line-overview-card .line-overview-actions{margin-top:auto}.line-overview-card .line-overview-actions .btn{font-size:10px;padding:6px 8px}
.line-overview-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.shared-overview{margin-top:16px}.shared-overview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.shared-overview-head h3{font-size:15px;color:var(--navy)}.shared-overview-head p{font-size:10px;color:#72839d}
.shared-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.shared-overview-card{padding:14px}.shared-overview-card .shared-title{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.shared-overview-card .shared-title>div{display:flex;gap:8px;align-items:center}.shared-overview-card .shared-title .ico{color:#287fd9}.shared-overview-card h4{font-size:13px}.shared-overview-card p{font-size:9.5px;color:#72839c;margin-top:3px}.shared-shifts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:11px 0}.shared-shift{background:#f3f7fc;border-radius:7px;padding:7px;text-align:center;font-size:9px}.shared-shift b{display:block;font-size:12px;color:var(--navy);margin-top:2px}

.report-hero{padding:17px 18px;margin-bottom:14px;background:linear-gradient(115deg,#0c63c9,#0b84ff 56%,#4d9cff);color:#fff;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:18px;box-shadow:0 8px 24px rgba(18,105,205,.13)}
.report-hero h3{font-size:17px;margin:0 0 4px}.report-hero p{font-size:10.5px;opacity:.9}.report-hero .btn{background:#fff;color:#1168c9;border-color:#fff}
.report-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-bottom:14px}.report-kpi{padding:14px 15px;min-height:100px;position:relative;overflow:hidden}.report-kpi:after{content:"";position:absolute;right:-20px;top:-28px;width:86px;height:86px;border-radius:50%;background:rgba(52,137,236,.08)}
.report-kpi.green:after{background:rgba(21,181,119,.10)}.report-kpi.orange:after{background:rgba(242,143,27,.11)}.report-kpi.red:after{background:rgba(239,78,100,.09)}.report-kpi.purple:after{background:rgba(120,88,210,.09)}
.report-kpi .rk-label{display:flex;gap:6px;align-items:center;color:#637795;font-size:10px;font-weight:600}.report-kpi .rk-label .ico{width:17px;height:17px;color:#1c7fe8}.report-kpi.green .rk-label .ico{color:#10aa70}.report-kpi.orange .rk-label .ico{color:#e9901e}.report-kpi.red .rk-label .ico{color:#e54b62}.report-kpi.purple .rk-label .ico{color:#7759c9}
.report-kpi strong{display:block;font-size:25px;color:var(--navy);margin:8px 0 3px;letter-spacing:-.5px}.report-kpi small{font-size:9.5px;color:#74849d}
.report-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:14px;margin-bottom:14px}.report-card{padding:16px;min-width:0}.report-card h3{font-size:14px;color:var(--navy)}.report-card .subtitle{font-size:9.5px;color:#74859f;margin-top:3px}
.report-trend{width:100%;height:220px;display:block;margin-top:8px}.report-trend text{font-size:10px;fill:#72839c}.report-trend .grid{stroke:#e9eff7;stroke-width:1}.report-trend .area{fill:url(#reportArea)}.report-trend .line{fill:none;stroke:#1681f2;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.report-trend .point{fill:#fff;stroke:#1681f2;stroke-width:3}
.report-line-list{margin-top:10px}.report-line-item{display:grid;grid-template-columns:118px 1fr 46px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #eef3f9}.report-line-item:last-child{border-bottom:0}.report-line-name strong{display:block;font-size:10.5px;color:#27466f}.report-line-name small{font-size:9px;color:#8190a5}.report-bar{height:9px;border-radius:99px;background:#eaf0f7;overflow:hidden}.report-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#1a84f1,#5ca9ff)}.report-line-item.warning .report-bar span{background:linear-gradient(90deg,#f2a228,#ffca6a)}.report-line-item.bad .report-bar span{background:linear-gradient(90deg,#ed5067,#ff8b9b)}.report-line-pct{text-align:right;font-size:11px;font-weight:700;color:var(--navy)}
.report-secondary{display:grid;grid-template-columns:1.15fr 1.15fr .85fr;gap:14px;margin-bottom:14px}.page-tools:has(.report-month-nav){align-items:flex-start}.report-month-nav{gap:4px;align-self:flex-start}.report-month-nav span{font-size:12px;font-weight:600;color:var(--navy);white-space:nowrap;padding:0 4px}.report-month-nav .iconbtn:disabled{opacity:.5;cursor:not-allowed}.report-actions{display:flex;flex-direction:column;gap:6px}.report-actions .btn{justify-content:center}.report-overtime-legend{gap:3px}.report-overtime-row{display:grid;grid-template-columns:minmax(0,1fr) 40px 34px;gap:5px;align-items:center;min-height:23px;color:#42628e;font-size:10px}.report-overtime-row .dash-reason-label{gap:5px;min-width:0}.report-overtime-row .dash-reason-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-overtime-row .legend-dot{width:9px;height:9px;flex:none}.report-overtime-row b,.report-overtime-row>span:last-child{text-align:right;font-variant-numeric:tabular-nums}.report-overtime-row>span:last-child{color:#7490b0}
.report-open-bars{margin-top:12px;max-height:260px;overflow:auto;padding-right:4px}.report-open-row{display:grid;grid-template-columns:72px 1fr 28px;gap:8px;align-items:center;padding:6px 0;font-size:9.5px;color:#667b9a}.report-open-track{height:8px;background:#edf2f8;border-radius:99px;overflow:hidden}.report-open-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffb33d,#ff8d2f)}
.report-audit{max-height:240px;overflow:auto;padding-right:3px}.report-audit .audit-row{padding:9px 0}.report-audit .audit-row strong{font-size:10.5px}.report-audit .audit-row p,.report-audit .audit-row small{font-size:9px}
.report-validation{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border-radius:10px;margin-bottom:14px;background:#effaf5;border:1px solid #ccefdc;color:#1d6b52}.report-validation.warning{background:#fff7e8;border-color:#f5dfb3;color:#7c5a12}.report-validation .ico{width:21px;height:21px;flex:none}.report-validation strong{font-size:11px}.report-validation p{font-size:9.5px;margin-top:3px;line-height:1.45}

@media(max-width:1180px){.line-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.line-overview-kpis,.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.shared-overview-grid{grid-template-columns:1fr}.report-grid,.report-secondary{grid-template-columns:1fr}.top-tab-group.with-separator{margin-left:6px;padding-left:6px}}
@media(max-width:860px){.top-tabs{overflow-x:auto}.top-tab-group.with-separator{border-left:0;margin-left:4px;padding-left:4px}.line-overview-kpis,.report-kpis{grid-template-columns:1fr 1fr}.line-shift-grid{grid-template-columns:1fr}.report-secondary{grid-template-columns:1fr}.report-donut-wrap{justify-content:center}}
@media(max-width:700px){.line-overview-grid{grid-template-columns:1fr}}
@media(max-width:640px){.page-tools:has(.report-month-nav){display:flex;flex-wrap:wrap;justify-content:flex-end}.page-tools .report-actions{flex-direction:row;width:100%}.page-tools .report-actions .btn{flex:1}}
.report-secondary{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.report-overtime-row{grid-template-columns:minmax(0,1fr) 47px 43px;min-height:29px;font-size:11px}.report-overtime-row .legend-dot{width:12px;height:12px}.report-kpi .rk-label{font-size:11px}.report-kpi.comparison strong{font-size:20px;white-space:nowrap}
.report-trend .planned-line{fill:none;stroke:#087fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.report-trend .actual-line{fill:none;stroke:#0aba80;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.report-trend .actual-point{fill:#fff;stroke:#0aba80;stroke-width:2.5}.report-chart-legend{display:flex;gap:16px;align-items:center;margin-top:8px;color:#577092;font-size:10px}.report-chart-legend i{display:inline-block;width:17px;height:3px;vertical-align:middle;margin-right:5px;border-radius:4px}.report-chart-legend .planned{background:#1681f2}.report-chart-legend .actual{background:#0aba80}
.report-pair-chart{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:17px}.report-pair-group{text-align:center;min-width:0}.report-pair-group strong{font-size:10px;color:#25416b;display:block;margin-top:10px}.report-pair-group small{font-size:9px;color:#7086a4}.report-pair-bars{height:174px;display:flex;align-items:flex-end;justify-content:center;gap:8px;border-bottom:1px solid #dbe6f3;background:repeating-linear-gradient(to top,#fff 0,#fff 42px,#ecf2f9 43px,#fff 44px)}.report-pair-bar{width:35px;min-height:2px;border-radius:5px 5px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;color:#fff;font-size:9px;font-weight:700;font-variant-numeric:tabular-nums}.report-pair-bar.planned{background:#1687ff}.report-pair-bar.actual{background:#0aba80}.report-pair-unavailable{align-self:flex-end;width:35px;min-height:34px;border:1px dashed #c7d3e5;border-radius:5px 5px 0 0;color:#8ca0bb;font-size:14px;display:grid;place-items:center}
.report-pair-group small{display:block;line-height:1.35}
.report-secondary>.card{height:340px;min-width:0;min-height:0;overflow:hidden}.report-secondary .dash-absence-body{gap:8px;min-height:0;padding:12px 0 4px;align-items:center}.report-secondary .dash-absence-ring{width:108px;height:108px}.report-secondary .dash-absence-ring:before{inset:19px}.report-secondary .dash-absence-ring b{font-size:21px}.report-secondary .dash-absence-ring small,.report-secondary .dash-absence-ring em{font-size:9px}.report-secondary .dash-absence-legend{min-width:0;flex:1}.report-secondary .report-absence-row{min-height:27px;font-size:10px;grid-template-columns:minmax(0,1fr) 23px 41px;gap:3px}.report-secondary .report-absence-row>span:last-child{font-size:9px}.report-secondary .report-absence-row .dash-reason-label{gap:4px}.report-secondary .report-overtime-row{grid-template-columns:minmax(0,1fr) 38px 35px;min-height:24px;font-size:9px;gap:3px}.report-secondary .report-overtime-row .legend-dot,.report-secondary .report-absence-row .legend-dot{width:9px;height:9px}.report-secondary .dash-table-note{margin-top:8px;font-size:9px}
.report-swaps-card{margin-bottom:0;display:flex;flex-direction:column}.report-swaps-list{display:flex;flex-direction:column;gap:8px;margin-top:12px;overflow-y:auto;min-height:0;flex:1;padding-right:4px}.report-swap-item{border:1px solid #e9f0f8;border-radius:9px;padding:9px;background:#fbfdff}.report-swap-meta{display:flex;justify-content:space-between;gap:5px;margin-bottom:7px}.report-swap-item time{font-size:10px;font-weight:700;color:#5b7495;white-space:nowrap}.report-swap-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-swap-people{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:4px;align-items:center}.report-swap-item strong{display:block;font-size:10px;color:#234469;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-swap-item small{display:block;font-size:9px;color:#6d83a0;margin-top:3px}.report-swap-item .swap-icon{color:#1687ff;text-align:center;font-size:15px}
.report-absence-row{display:grid;grid-template-columns:minmax(0,1fr) 27px 51px;align-items:center;gap:6px;min-height:32px;color:#42628e;font-size:12px}.report-absence-row b{font-weight:500;color:#1f4172;text-align:right}.report-absence-row>span:last-child{text-align:right;font-size:11px;color:#7490b0}.report-absence-row .dash-reason-label{gap:9px}.report-absence-row .legend-dot{width:12px;height:12px}
@media(max-width:1180px){.report-secondary{grid-template-columns:1fr}.report-secondary .dash-absence-body{justify-content:flex-start;gap:25px}.report-secondary .dash-absence-legend{max-width:450px}}
@media(max-width:800px){.report-pair-chart{gap:5px}.report-pair-bar{width:24px;font-size:8px}.report-pair-bars{gap:4px}}
.report-secondary .dash-panel-head{height:44px;min-height:44px;margin-bottom:6px}.report-secondary .dash-absence-body{height:190px;min-height:190px}.report-secondary .dash-absence-legend{gap:2px}.report-secondary .dash-absence-legend button{min-height:24px;padding:2px 1px;font-size:10px;grid-template-columns:minmax(0,1fr) 22px 38px;gap:3px}.report-secondary .dash-absence-legend button>span:last-child{font-size:9px}.report-swap-people{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);column-gap:8px}.report-swap-people>div:first-child{text-align:right}.report-swap-item strong{font-size:12px}.report-swap-item small{font-size:11px}.report-swap-item .swap-icon{font-size:22px;line-height:1;justify-self:center}
@media(min-width:1000px) and (min-height:710px){.main:has(.report-kpis){height:100dvh;min-height:0;overflow:hidden;padding:68px 14px 4px;display:flex;flex-direction:column}.main:has(.report-kpis)>.page-heading{height:60px;min-height:60px;margin-bottom:8px}.main:has(.report-kpis) .report-actions{gap:3px}.main:has(.report-kpis) .report-actions .btn{min-height:27px;padding:4px 9px;font-size:10px}.report-kpis{height:78px;min-height:78px;margin-bottom:8px}.report-kpi{min-height:0;padding:9px 12px}.report-kpi strong,.report-kpi.comparison strong{font-size:23px;margin:4px 0 1px}.report-kpi small{font-size:9px}.report-grid{height:230px;min-height:230px;margin-bottom:8px}.report-card{padding:12px}.report-grid .dash-panel-head{margin-bottom:6px}.report-trend{height:140px;margin-top:0}.report-pair-chart{margin-top:6px}.report-pair-bars{height:100px}.report-pair-group strong{margin-top:4px}.report-chart-legend{margin-top:4px}.report-secondary{height:220px;min-height:220px;margin-bottom:8px}.report-secondary>.card{height:220px;padding:11px}.report-secondary .dash-panel-head{height:37px;min-height:37px;margin-bottom:5px}.report-secondary .dash-absence-body{height:132px;min-height:132px;padding:0;gap:8px}.report-secondary .dash-absence-legend{gap:1px}.report-secondary .report-absence-row{min-height:22px}.report-secondary .report-overtime-row{min-height:21px}.report-secondary .dash-absence-legend button{min-height:21px;height:21px;padding:0 1px}.report-secondary .dash-table-note{margin-top:1px;font-size:8.5px;line-height:1.25}.report-swaps-list{margin-top:4px;gap:6px}.report-swap-item{padding:7px}.report-swap-meta{margin-bottom:4px}}
@media(min-width:1000px) and (min-height:800px){.report-grid{height:clamp(230px,calc(50vh - 130px),450px);min-height:clamp(230px,calc(50vh - 130px),450px)}.report-trend{height:clamp(140px,calc(50vh - 220px),360px)}.report-pair-bars{height:clamp(100px,calc(50vh - 260px),320px)}.report-secondary{height:clamp(220px,calc(50vh - 148px),440px);min-height:clamp(220px,calc(50vh - 148px),440px)}.report-secondary>.card{height:100%}.report-secondary .dash-absence-body{height:clamp(132px,calc(45vh - 192px),330px);min-height:clamp(132px,calc(45vh - 192px),330px);gap:18px}.report-secondary .dash-absence-ring{width:clamp(108px,calc(16vh - 7px),170px);height:clamp(108px,calc(16vh - 7px),170px)}.report-secondary .dash-absence-ring:before{inset:18%}.report-secondary .report-absence-row{min-height:clamp(22px,3vh,30px)}.report-secondary .report-overtime-row{min-height:clamp(21px,calc(3vh - 1px),29px)}.report-secondary .dash-absence-legend button{min-height:clamp(21px,calc(3vh - 1px),29px);height:auto}.report-secondary .dash-table-note{font-size:9px}}
@media(min-width:1000px) and (max-width:1180px) and (min-height:710px){.report-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.report-grid{grid-template-columns:1.35fr 1fr}.report-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}.report-secondary .dash-absence-body{justify-content:flex-start;gap:8px}.report-secondary .dash-absence-legend{max-width:none}.report-secondary .dash-absence-ring{width:90px;height:90px}.report-secondary .dash-absence-ring:before{inset:17%}.report-secondary .report-absence-row{font-size:9px;grid-template-columns:minmax(0,1fr) 19px 32px}.report-secondary .report-overtime-row{grid-template-columns:minmax(0,1fr) 34px 30px;font-size:8px}.report-secondary .dash-panel-head h3{font-size:12px}.report-secondary .dash-table-note{font-size:8px}}
@media(min-width:1000px) and (min-height:710px){.report-kpi strong,.report-kpi.comparison strong{font-size:22px;margin:2px 0 0}.report-kpi small{display:block;line-height:1.1}}
@media(min-width:1000px) and (max-width:1180px) and (min-height:710px){.report-secondary .dash-table-note{margin-top:0;line-height:1.15}}

.swap-request-card .request-impact{background:#eef6ff;color:#315f96}.swap-request-card .request-impact p{line-height:1.5}
.swap-request-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:9px;color:#335b89;font-size:11px;font-weight:700}.swap-request-summary .ico{width:16px;height:16px;color:var(--blue)}
.swap-request-people{display:grid;grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);gap:12px;align-items:stretch}.swap-request-person{min-width:0;padding:17px;border:1px solid #dce9fa;border-radius:11px;background:#f7fbff}.swap-request-person-head{display:flex;align-items:center;gap:11px}.swap-request-person .avatar{width:43px;height:43px;flex:none}.swap-request-person strong{display:block;font-size:15px}.swap-request-person small{display:block;margin-top:3px;color:#607b9d;font-size:11px}.swap-request-duty{margin-top:14px;padding:10px 12px;border-radius:8px;background:#e9f2ff;color:#235d9e}.swap-request-duty span{display:block;font-size:10px;font-weight:700}.swap-request-duty b{display:block;margin-top:3px;font-size:16px}.swap-request-arrow{display:grid;place-items:center;color:var(--blue)}.swap-request-arrow .ico{width:30px;height:30px;stroke-width:1.7}.swap-request-date{margin-bottom:14px;color:#4d6c90;font-size:12px;font-weight:700}.swap-request-dialog .modal-footer .btn{white-space:nowrap}
@media(max-width:640px){.swap-request-people{grid-template-columns:1fr;gap:5px}.swap-request-arrow .ico{width:25px;height:25px;transform:rotate(90deg)}.swap-request-person{padding:12px}.swap-request-dialog .modal-footer .btn{flex:1 1 100%;white-space:normal}}

/* V6.3 guided introduction: a measured spotlight keeps only the current target interactive. */
#tutorial-root{position:fixed;inset:0;z-index:160;pointer-events:none}
.tutorial-shade{position:fixed;background:rgba(6,24,52,.68);pointer-events:auto}
.tutorial-focus{position:fixed;border:3px solid #68b5ff;border-radius:11px;box-shadow:0 0 0 3px #ffffffb8,0 0 30px #1d88ffad;pointer-events:none}
.tutorial-bubble{position:fixed;box-sizing:border-box;width:min(345px,calc(100vw - 24px));padding:18px 19px;border:1px solid #9bcfff;border-radius:12px;background:#eaf6ff;color:#133b6d;box-shadow:0 16px 45px #041d45a0;pointer-events:auto}
.tutorial-bubble small{display:block;margin-bottom:7px;color:#4b78a7;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tutorial-bubble h3{margin:0 0 8px;color:#0d3d75;font-size:17px;line-height:1.25}
.tutorial-bubble p{margin:0;color:#315b87;font-size:12px;line-height:1.55}
.tutorial-bubble .tutorial-hint{margin-top:9px;padding-top:8px;border-top:1px solid #bedcfa;font-size:10px}
.tutorial-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:15px}
.tutorial-actions .btn{min-height:33px;padding:7px 10px;font-size:11px}
.tutorial-cancel{border:0;background:transparent;color:#285c95;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.tutorial-profile-role,.tutorial-profile-qualifications{border:2px solid #68b5ff;border-radius:10px;background:#edf7ff;box-shadow:0 0 0 3px #d5ecff}
.tutorial-profile-role{padding:8px 11px}
.tutorial-profile-qualifications{margin-top:16px;padding:11px 13px}
.tutorial-profile-qualifications .checks{margin-top:8px}
.tutorial-profile-bubble{width:260px;z-index:161}
.tutorial-profile-bubble .tutorial-hint{margin-top:9px}
.tutorial-full-shade{inset:0}
.tutorial-finish-bubble{left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 24px));padding:24px;text-align:center}
.tutorial-finish-bubble h3{font-size:21px}.tutorial-finish-bubble p{font-size:13px}
.tutorial-finish-bubble .tutorial-actions{justify-content:center;margin-top:20px}
.tutorial-finish-bubble .btn{min-height:40px;font-size:12px}
.tutorial-modal-stacked .modal-backdrop{align-items:flex-start;padding-top:10px;padding-bottom:10px}
.tutorial-modal-stacked .modal{max-height:calc(100dvh - var(--tutorial-note-height,190px) - 34px)}
@media(max-width:640px){.tutorial-modal-stacked .detail-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:10px 0}.tutorial-modal-stacked .detail-stat{padding:8px 3px}.tutorial-modal-stacked .detail-stat b{font-size:18px}.tutorial-modal-stacked .detail-stat small{font-size:8px;line-height:1.15}.tutorial-modal-stacked .tutorial-profile-qualifications{margin-top:10px}}
.tutorial-generation .generation-backdrop{align-items:flex-start;padding-top:clamp(20px,7vh,60px)}
@media(max-width:640px){.tutorial-bubble{padding:14px 15px}.tutorial-bubble h3{font-size:15px}.tutorial-bubble p{font-size:11px}.tutorial-actions{margin-top:11px}}
@media(max-width:640px) and (min-height:650px){.tutorial-generation .generation-backdrop{padding-top:10px}.tutorial-generation .generation-dialog{max-height:calc(100dvh - 225px)}}

/* V6.3: healthcare-style fictional-data acknowledgement shown on every start. */
.demo-warning-overlay{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;overflow:auto;padding:24px;background:#102c4fe8;backdrop-filter:blur(8px)}
.demo-warning-card{width:min(620px,100%);padding:34px;border:1px solid #f0ad2d99;border-radius:16px;background:#fff;box-shadow:0 28px 90px #061a2f80;text-align:left}
.demo-warning-mark{display:grid;width:48px;height:48px;margin-bottom:22px;border-radius:50%;background:#fff2d9;color:#8a5a05;font-size:28px;font-weight:800;place-items:center}
.demo-warning-card .demo-warning-eyebrow{margin:0 0 8px;color:#56708f;font-size:11px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase}
.demo-warning-card h2{margin:0 0 14px;color:#102c4f;font-size:28px}
.demo-warning-card p:not(.demo-warning-eyebrow){margin:0;color:#627895;font-size:16px;line-height:1.65}
.demo-warning-card p strong{color:#152c48}
.demo-warning-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px}
.demo-warning-card .btn{min-width:160px}
.demo-warning-privacy{color:#087fe9;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.demo-warning-privacy:hover{color:#0568c5}
.demo-mobile-recommendation{display:none}
.demo-warning-card :is(.btn,.demo-warning-privacy):focus-visible{outline:3px solid #102c4f;outline-offset:3px}
@media(max-width:700px){.demo-warning-overlay{padding:16px}.demo-warning-card{padding:26px 22px}.demo-warning-card h2{font-size:24px}.demo-mobile-recommendation{display:block;margin:0 0 18px;padding:12px 14px;border:1px solid #b9dcff;border-radius:9px;background:#edf7ff;color:#174d82;font-size:13px;line-height:1.5}.demo-warning-actions{align-items:stretch;flex-direction:column}.demo-warning-card .btn{width:100%}.demo-warning-privacy{align-self:center}}
.topbar .proto-tag{display:inline-flex!important}
.message{display:block;padding:0}
.message.unread{margin:8px 0;border-left:4px solid var(--blue);border-radius:8px;background:#edf6ff}
.message-open{display:flex;align-items:flex-start;gap:13px;width:100%;padding:17px 8px;border:0;border-radius:7px;background:transparent;text-align:left;color:inherit;cursor:pointer;font:inherit}
.message-open:hover{background:#f4f9ff}
.message-open:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.message-open .grow{min-width:0}
.message-title{display:block;font-size:13px;font-weight:700;color:var(--navy)}
.message.unread .message-title{color:var(--blue)}
.message-preview{display:block;margin-top:5px;font-size:12px;line-height:1.6;color:#566e91}
.message>.linkbtn{margin:0 0 12px 56px}
.message-detail-meta{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.message-detail-meta small{display:block;margin-top:3px;color:var(--muted)}
.message-detail-body{min-height:130px;padding:22px 0;white-space:pre-wrap;line-height:1.7}
.message-reply{padding-top:18px;border-top:1px solid var(--line)}
.message-reply textarea{display:block;width:100%;min-height:135px;margin-top:8px;resize:vertical}
.message-reply-note{display:block;margin-top:8px;color:var(--muted);font-size:11px;line-height:1.5}
.message-detail-dialog .modal-footer .btn:disabled{opacity:.55;cursor:not-allowed}
.compose-dialog .modal-body textarea{display:block;width:100%;min-height:180px;resize:vertical}
.compose-dialog .modal-footer .btn:disabled{opacity:.55;cursor:not-allowed}
.notification-item{border-bottom:1px solid #edf2f9}
.notification-item.unread{margin:8px 0;border:1px solid #bbdcff;border-left:4px solid var(--blue);border-radius:8px;background:#edf6ff}
.notification-item.unread .message-title{color:var(--blue)}
.notification-new{display:inline-flex;align-items:center;border-radius:999px;background:var(--blue);color:#fff;padding:3px 8px;font-size:10px;font-weight:700;white-space:nowrap}
.notification-item.unread .message-open:hover{background:#e2f0ff}
.sidebar-toggle{position:absolute;top:0;bottom:0;right:-11px;z-index:4;display:flex;align-items:center;justify-content:center;width:22px;padding:0;border:0;border-left:1px solid #dae7f6;border-radius:0;background:#f8fbff;color:#1d57a5;cursor:pointer;transition:background .16s,border-color .16s}
.sidebar-toggle:hover,.sidebar-toggle:focus-visible{background:#deedff;border-left-color:#8abff4}
.sidebar-toggle:focus-visible{outline:2px solid #007bff;outline-offset:-2px}
.sidebar-toggle-knob{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;border:1px solid #c9dff7;border-radius:50%;background:#fff;box-shadow:0 2px 9px #173e7526;transition:background .16s,border-color .16s}
.sidebar-toggle:hover .sidebar-toggle-knob,.sidebar-toggle:focus-visible .sidebar-toggle-knob{background:#eaf4ff;border-color:#8abff4}
.sidebar-toggle .ico{width:12px;height:12px}
.sidebar .workspace-profile .profile-circle{flex:none}
@media(min-width:641px){
 body.sidebar-collapsed{--sidebar:74px}
 body.sidebar-expanded{--sidebar:var(--sidebar-wide)}
 body:is(.sidebar-collapsed,.sidebar-expanded) .topbar{left:var(--sidebar)}
 body.sidebar-collapsed .sidebar .brand-link{height:49px;padding:1px;margin-bottom:27px}
 body.sidebar-collapsed .sidebar .brand-link .logo{display:none}
 body.sidebar-collapsed .sidebar .brand-link .logo-compact{display:block;width:52px;height:52px;object-fit:contain;mix-blend-mode:multiply}
 body.sidebar-collapsed .navitem{position:relative;justify-content:center;gap:0;padding:11px 8px}
 body.sidebar-collapsed .navitem .navtext{display:none}
 body.sidebar-collapsed .navitem .count{display:flex;position:absolute;top:2px;right:2px;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 3px;font-size:9px}
 body.sidebar-collapsed .sidebar .workspace-profile{display:flex;justify-content:center;width:46px;height:46px;margin:12px auto 0;padding:5px}
 body.sidebar-collapsed .workspace-profile-copy,body.sidebar-collapsed .workspace-profile>.ico{display:none}
 body.sidebar-collapsed .sidebar .saving-status{display:none}
 body.sidebar-expanded .sidebar .brand-link{height:65px;margin:0 0 15px;padding:0 6px}
 body.sidebar-expanded .sidebar .brand-link .logo{display:block;width:100%;height:auto;object-fit:contain;margin:0}
 body.sidebar-expanded .sidebar .brand-link .logo-compact{display:none}
 body.sidebar-expanded .navitem{justify-content:flex-start;gap:16px;padding:11px 17px}
 body.sidebar-expanded .navitem .navtext{display:inline}
 body.sidebar-expanded .navitem .count{display:flex}
 body.sidebar-expanded .sidebar .workspace-profile{display:flex;justify-content:flex-start;width:calc(100% - 16px);height:auto;margin:14px 8px 0;padding:10px}
 body.sidebar-expanded .workspace-profile-copy{display:block}
 body.sidebar-expanded .workspace-profile>.ico{display:block}
 body.sidebar-expanded .sidebar .saving-status{display:block}
}
@media(max-width:1360px){:root{--sidebar-wide:184px}body.sidebar-expanded .workspace-profile>.ico{display:none}}
@media(min-width:1361px){:root{--sidebar-wide:218px}}
@media(max-width:640px){.sidebar-toggle{display:none}}
/* Keep the day header above the sticky role-group rows while the roster scrolls. */
.month-employee-table thead th{z-index:10}
.month-employee-table thead th:first-child{z-index:11}
.month-employee-table .month-employee-group th{z-index:2!important}

.demo-site-link{display:inline-flex;align-items:center;min-height:30px;color:#176cc2;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.demo-site-link:hover{color:#0b4a94}.demo-site-link:focus-visible{outline:2px solid #176cc2;outline-offset:2px}@media(max-width:900px){.demo-site-link{font-size:11px;max-width:118px;white-space:normal;line-height:1.15;text-align:center}}
.demo-entry-intro{box-sizing:border-box;min-height:100vh;max-width:760px;margin:0 auto;padding:clamp(28px,6vw,68px);display:flex;flex-direction:column;justify-content:center;gap:16px;color:#091957}.demo-entry-intro h1{font-size:clamp(27px,4vw,40px);line-height:1.2}.demo-entry-intro p{font-size:16px;line-height:1.55}.demo-entry-intro a{font-weight:700;font-size:15px}

/* Phone monthly plans: reserve a usable roster and let supporting notes scroll in the page. */
@media screen and (max-width:640px){
 .tutorial-bubble:not(.tutorial-finish-bubble):not(.tutorial-finish){max-height:28vh;max-height:28dvh;overflow:auto;overscroll-behavior:contain}
 .tutorial-bubble .tutorial-actions{position:sticky;bottom:0;background:#eaf6ff;padding-top:8px}
}

@media screen and (max-width:640px){
 .main.roster-viewport{height:auto;min-height:100vh;min-height:100dvh;display:block;overflow:visible}
 .main.roster-viewport>.month-calendar-card{height:auto;display:flex;flex-direction:column;overflow:hidden}
 .main.roster-viewport .month-employee-wrap{flex:none;height:45vh;height:45dvh;min-height:35vh;min-height:35dvh;max-height:none;overflow:auto;overscroll-behavior:contain;scroll-margin-top:76px;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
 .main.roster-viewport .month-employee-note{position:static;flex:none}
}

@media screen and (max-width:640px){.mobile-plan-tutorial .main.roster-viewport{padding-bottom:32vh;padding-bottom:32dvh}}
