:root{
  --app-bg:#eef3f8;--panel:#fff;--line:#9aa8b5;--line-dark:#263442;
  --excel-cyan:#00e9f5;--excel-cyan-soft:#75f5fa;--blue:#185f96;--blue-dark:#0c466f;
  --text:#17212b;--muted:#64748b;--danger:#b42318;--shadow:0 16px 38px rgba(15,23,42,.16);
  --sticky-group-top:88px;
  --pluven-edit-cursor:url("/assets/pluven-edit-cursor.png?v=0.20.26") 15 15,crosshair;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:Inter,Segoe UI,Arial,Helvetica,sans-serif;color:var(--text);background:var(--app-bg)}
button,input,select{font:inherit}
body{overflow:hidden}.app{height:100vh;display:flex;flex-direction:column;min-width:780px}
.topbar{height:58px;background:linear-gradient(180deg,#173f68,#103453);color:#fff;display:flex;align-items:center;gap:10px;padding:0 14px;box-shadow:0 2px 10px rgba(0,0,0,.18);z-index:40}
.brand{display:flex;align-items:center;gap:9px;min-width:150px}.brand-badge{width:34px;height:34px;border-radius:9px;background:#00dff0;color:#082b45;font-weight:900;display:grid;place-items:center;box-shadow:inset 0 0 0 2px rgba(255,255,255,.45)}
.brand-title{font-weight:850;letter-spacing:.2px}.brand-sub{font-size:10px;color:#cce3f7;margin-top:1px}.small-label{font-size:9px;font-weight:900;letter-spacing:.8px;color:#b8d4e9}.small-label.dark{color:#5c7184}
.workspace-control{display:flex;align-items:center;gap:6px;padding-right:5px}.workspace-select,.year-picker{border:1px solid rgba(255,255,255,.25);background:#224f76;color:#fff;border-radius:7px;padding:7px 10px;min-width:150px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.workspace-select:hover{background:#2a628f}.chev{opacity:.8}
.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.spacer{flex:1}.save-state{font-size:11px;color:#cfe9ff;white-space:nowrap}
.btn{border:1px solid rgba(255,255,255,.18);background:#245d8f;color:#fff;border-radius:7px;padding:7px 9px;cursor:pointer;white-space:nowrap}.btn:hover{background:#3174aa}.btn.primary{background:#0b83c9}.btn.primary:hover{background:#0696ea}.btn.light{background:#fff;color:#12466f;border-color:#cbd9e5}.btn.light:hover{background:#edf6fd}.btn.danger{background:#a83b35}.btn.icon{padding:7px 9px;font-weight:800}.btn:disabled,.format-btn:disabled{opacity:.38;cursor:not-allowed}

.weekbar{height:49px;background:#dce7f0;border-bottom:1px solid #adbac6;display:flex;align-items:stretch;z-index:30;padding:0 8px;gap:8px}
.year-picker-wrap{width:132px;flex:0 0 132px;display:flex;align-items:center;gap:7px}.year-picker{min-width:0;width:82px;background:#f8fbfd;color:#244760;border-color:#a9b9c6;padding:7px 9px}.year-picker:hover{background:#fff}
.week-scroll-shell{display:flex;align-items:center;min-width:0;flex:1}.week-scroll-arrow{width:27px;height:34px;border:0;background:transparent;color:#547083;font-size:22px;cursor:pointer;border-radius:5px}.week-scroll-arrow:hover{background:#c9d8e5}.week-tabs{height:100%;display:flex;align-items:end;gap:5px;padding-top:7px;overflow-x:auto;overflow-y:hidden;min-width:0;flex:1;scroll-behavior:smooth;scrollbar-width:thin}.week-tab{height:36px;min-width:92px;flex:0 0 92px;padding:0 12px;border:1px solid #a6b4c1;border-bottom:none;background:#edf3f8;border-radius:7px 7px 0 0;cursor:pointer;font-weight:800;color:#395064;display:flex;align-items:center;justify-content:center;gap:6px}.week-tab .week-tab-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.week-tab:hover{background:#f8fbfd}.week-tab.active{background:#fff;color:#0d4f82;border-color:#7d97ac;box-shadow:0 -2px 8px rgba(15,23,42,.06)}.week-tab .week-year-mini{font-size:9px;font-weight:700;opacity:.58}.add-week{align-self:center;flex:0 0 auto;height:34px;border:1px solid #6e98b6;background:#f8fbfd;border-radius:7px;color:#174f7d;font-weight:800;cursor:pointer;padding:0 13px}.add-week:hover{background:#fff;box-shadow:0 1px 6px rgba(15,23,42,.08)}

.formatbar{height:41px;background:#f8fbfd;border-bottom:1px solid #c8d4df;display:flex;align-items:center;padding:0 10px;gap:8px;z-index:25}.format-group{display:flex;align-items:center;gap:4px}.format-spacer{flex:1}.format-btn,.zoom-readout{height:29px;border:1px solid #c3d1dc;background:#fff;color:#2a4c64;border-radius:6px;padding:0 9px;cursor:pointer}.format-btn:hover,.zoom-readout:hover{background:#eaf4fb}.format-btn.color-swatch,.format-btn.text-color-swatch{display:flex;gap:6px;align-items:center}.color-swatch>#formatColorDot{width:14px;height:14px;flex:0 0 14px;border-radius:4px;background:#fff59d;border:1px solid #8092a0}.text-color-swatch>#formatTextColorDot{width:16px;height:16px;flex:0 0 16px;display:grid;place-items:center;border-radius:4px;background:#fff;border:1px solid #8092a0;font-size:11px;font-weight:950;line-height:1;position:relative}.text-color-swatch>#formatTextColorDot[data-auto="1"]::after{content:"•";font-size:8px;position:absolute;margin:13px 0 0 12px;color:#0b83c9}.format-btn.color-swatch>[data-i18n],.format-btn.text-color-swatch>[data-i18n]{width:auto;height:auto;min-width:0;border:0;background:transparent;display:inline;position:static;font-size:inherit;font-weight:inherit;line-height:normal;white-space:nowrap}.format-select{height:29px;border:1px solid #c3d1dc;border-radius:6px;background:#fff;padding:0 5px}.font-size-label{font-size:10px;color:#64748b;display:flex;align-items:center;gap:5px}.zoom-readout{min-width:55px;font-weight:800}.zoom-group .format-btn{font-size:15px;font-weight:800}

.grid-wrap{flex:1;overflow:auto;background:#f8fafc;position:relative}.zoom-stage{transform-origin:top left;width:max-content;min-width:100%}.planning-table{border-collapse:separate;border-spacing:0;min-width:max-content;background:#fff;table-layout:fixed}.planning-table th,.planning-table td{border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);padding:0;position:relative}.planning-table th:first-child,.planning-table td:first-child{border-left:1px solid var(--line-dark)}.planning-table thead tr:first-child th{border-top:1px solid var(--line-dark)}
.planning-table thead{position:sticky;top:0;z-index:18}.top-head{height:29px;background:var(--excel-cyan);font-weight:850;text-align:center;font-size:12px}.top-head.soft{background:var(--excel-cyan-soft)}.day-head{height:28px;background:var(--excel-cyan);font-weight:850;text-align:center;text-transform:lowercase;font-size:12px}.col-head{height:31px;background:var(--excel-cyan);font-weight:850;text-align:center;font-size:11px}.col-head.soft{background:var(--excel-cyan-soft)}body:not(.plan-readonly) .editable-head{cursor:var(--pluven-edit-cursor)}.editable-head:hover{filter:brightness(.96)}
.col-resizer{position:absolute;right:-4px;top:0;width:8px;height:100%;cursor:col-resize;z-index:30}.col-resizer:hover{background:rgba(13,94,151,.18)}
.row-control{width:42px;min-width:42px;max-width:42px;background:#f0f4f7;text-align:center;color:#6b7280;position:sticky!important;left:0;z-index:8}.planning-table thead .row-control{z-index:22;background:#c7d6e3}.row-index{font-size:10px;user-select:none}.insert-mini{display:none;position:absolute;right:2px;top:50%;transform:translateY(-50%);border:none;background:#0b83c9;color:#fff;border-radius:4px;width:18px;height:18px;line-height:16px;cursor:pointer;font-weight:800}.employee-row:hover .insert-mini{display:block}
.employee-row td{height:30px;background:#fff}.group-row td{height:31px;background:#00eaf5;font-weight:850;position:sticky;top:var(--sticky-group-top);z-index:13;box-shadow:0 1px 0 rgba(0,0,0,.15)}.group-row .row-control{z-index:14;background:#7cebf0}.group-label{padding-left:9px!important;color:#0f2f45}.group-label-inner{height:30px;display:flex;align-items:center;gap:7px}.group-grip{width:20px;display:grid;place-items:center;color:#2b687a;cursor:grab;user-select:none;touch-action:none}.group-grip:active{cursor:grabbing}.group-name{flex:1}.group-actions{opacity:0;display:flex;gap:3px;padding-right:5px}.group-row:hover .group-actions{opacity:1}.group-mini{width:24px;height:22px;border:0;background:rgba(255,255,255,.52);border-radius:4px;cursor:pointer;color:#20586a;font-weight:900}
.cell-input{width:100%;height:29px;border:0;outline:0;padding:2px 6px;background:transparent;text-align:var(--cell-align,center);font-size:var(--cell-font-size,12px);font-weight:700;color:var(--cell-text-color,#111827);min-width:0;border-radius:0}
body:not(.plan-readonly) .planning-table .cell-input:not([readonly]){cursor:var(--pluven-edit-cursor)}.cell-input:focus{box-shadow:inset 0 0 0 2px #087fc4;background:var(--cell-focus-bg,rgba(255,255,255,.78))}.name-wrap{display:flex;align-items:center;height:29px}.drag-grip{width:22px;min-width:22px;height:100%;display:grid;place-items:center;color:#73808b;cursor:grab;user-select:none;touch-action:none}.drag-grip:active{cursor:grabbing}.name-wrap .cell-input{text-align:var(--cell-align,center);padding-left:2px}
.selected-cell{box-shadow:inset 0 0 0 2px #0b83c9!important}.selected-range{box-shadow:inset 0 0 0 9999px rgba(23,132,201,.08)}.selection-edge{outline:2px solid #0b83c9;outline-offset:-2px}.manual-dot{position:absolute;right:2px;top:2px;width:6px;height:6px;background:#7c3aed;border-radius:50%;pointer-events:none}.drop-before{box-shadow:inset 0 3px 0 #087fc4}.drop-after{box-shadow:inset 0 -3px 0 #087fc4}.drop-section-before td{box-shadow:inset 0 4px 0 #0a72b8}.drop-section-after td{box-shadow:inset 0 -4px 0 #0a72b8}
.planning-table tr.group-row.drop-employee-section>td{box-shadow:inset 0 0 0 3px #087fc4, inset 0 -4px 0 #087fc4}
.merged-cell{background-image:linear-gradient(135deg,transparent 0 94%,rgba(19,91,139,.15) 94% 100%)}

.statusbar{height:28px;background:#f7fafc;border-top:1px solid #c9d5df;color:#526273;display:flex;align-items:center;gap:15px;padding:0 11px;font-size:11px;white-space:nowrap}.statusbar .hint{margin-left:auto}.kbd{padding:1px 5px;border:1px solid #c7d0d9;background:#fff;border-radius:4px;font-size:10px}
.context-menu,.smart-dropdown,.floating-picker{position:fixed;z-index:1200;background:#fff;border:1px solid #c7d1db;border-radius:9px;box-shadow:var(--shadow);display:none}.context-menu{min-width:230px;padding:5px}.context-menu.show,.smart-dropdown.show,.floating-picker.show{display:block}.context-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:5px;cursor:pointer}.context-menu button:hover{background:#eaf3fb}.context-menu button.danger{color:var(--danger)}.context-menu .sep{height:1px;background:#e5e7eb;margin:4px}.context-menu .menu-label{padding:5px 9px;font-size:10px;color:#8292a0;font-weight:800;text-transform:uppercase;letter-spacing:.6px}
.smart-dropdown{min-width:170px;max-height:260px;overflow:auto;padding:5px}.smart-option{display:flex;align-items:center;gap:8px;width:100%;border:0;background:#fff;padding:7px 9px;border-radius:5px;cursor:pointer;text-align:left}.smart-option:hover,.smart-option.active{background:#eaf4fb}.smart-dot{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.15)}.smart-empty{padding:9px;color:#64748b;font-size:12px}
.floating-picker{padding:10px;width:245px}.picker-row{display:flex;gap:7px;align-items:center}.picker-row input[type=color]{width:48px;height:37px;border:0;background:transparent}.picker-row input[type=text]{flex:1;padding:8px;border:1px solid #cbd5e1;border-radius:6px;text-transform:uppercase}.picker-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}

.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.47);display:none;align-items:center;justify-content:center;z-index:1000}.modal-backdrop.show{display:flex}.modal-backdrop.modal-over-modal{z-index:1200}.modal{width:min(920px,94vw);max-height:90vh;background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.modal.small{width:min(540px,92vw)}.modal.medium{width:min(680px,92vw)}.modal.wide{width:min(1100px,96vw)}.modal-head{padding:13px 17px;background:#174f7d;color:#fff;display:flex;align-items:center}.modal-head h3{margin:0;font-size:17px}.modal-sub{font-size:10px;color:#cfe7f9;margin-top:2px}.modal-head>button{margin-left:auto;border:0;background:transparent;color:#fff;font-size:22px;cursor:pointer}.modal-body{padding:16px;overflow:auto}.modal-foot{padding:11px 15px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:8px;background:#f8fafc}.settings-layout{display:flex;min-height:470px;overflow:hidden}.settings-nav{width:185px;flex:0 0 185px;background:#f1f6fa;border-right:1px solid #d5e0e9;padding:10px}.settings-nav button{width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:6px;color:#3a566b;cursor:pointer;margin-bottom:3px}.settings-nav button:hover{background:#e4eef6}.settings-nav button.active{background:#174f7d;color:#fff;font-weight:800}.settings-content{flex:1;min-width:0}
.settings-table{width:100%;border-collapse:collapse}.settings-table th,.settings-table td{border:1px solid #cbd5e1;padding:5px}.settings-table th{background:#d9e1f2;font-size:11px}.settings-table input[type=text],.settings-table input[type=number]{width:100%;border:1px solid #cbd5e1;border-radius:4px;padding:6px}.settings-table input[type=color]{width:42px;height:30px;border:0;background:transparent}.setting-section{margin-bottom:22px}.setting-section h4{margin:0 0 8px;color:#174f7d}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field label{display:block;font-size:11px;font-weight:800;color:#475569;margin-bottom:4px}.field input,.field select{width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.note{font-size:11px;color:#64748b;line-height:1.5}.summary-pill{padding:7px 10px;background:#eaf4fb;border:1px solid #c7ddec;border-radius:999px;color:#28566f;font-size:11px;font-weight:800}.resource-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.resource-note{margin-bottom:10px}.table-scroll{max-height:58vh;overflow:auto}.resource-table th{position:sticky;top:0;z-index:2}.resource-table td:nth-child(1){width:120px}.resource-table td:nth-child(3){width:180px}.resource-input{width:100%;padding:6px 7px;border:1px solid #cbd5e1;border-radius:5px;text-transform:uppercase}.resource-missing{background:#fff2cc!important}.status-ok{color:#137333;font-weight:800;font-size:11px}.status-missing{color:#a45100;font-weight:800;font-size:11px}.color-combo{display:flex;align-items:center;gap:5px}.color-combo input[type=text]{width:88px!important;text-transform:uppercase}.template-card{border:1px solid #d4e0ea;border-radius:9px;background:#f8fbfd;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.template-name{font-weight:800;color:#244a64}.template-meta{font-size:10px;color:#6c7e8d;margin-top:3px}.csv-days{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:12px 0}.check-card{border:1px solid #cbd8e2;border-radius:7px;padding:8px;background:#fff;display:flex;align-items:center;gap:8px}.csv-actions-inline{display:flex;gap:6px;flex-wrap:wrap}.validation-box{margin-top:12px;padding:10px;border-radius:8px;border:1px solid #efc19d;background:#fff6ed;color:#7f3c0b;font-size:11px;max-height:190px;overflow:auto}.validation-box.ok{border-color:#b6dfc0;background:#f0fbf3;color:#176b2c}.validation-box ul{margin:5px 0 0 17px;padding:0}.date-preview{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px}.date-chip{border:1px solid #d3dee7;border-radius:7px;background:#f8fbfd;padding:6px;text-align:center;font-size:10px}.date-chip strong{display:block;color:#174f7d;font-size:11px;margin-bottom:2px}
.toast{position:fixed;right:18px;bottom:46px;background:#153d5e;color:#fff;padding:10px 13px;border-radius:8px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s;z-index:1400}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1050px){.brand-sub{display:none}.brand{min-width:auto}.workspace-control .small-label{display:none}.workspace-select{min-width:125px}.save-state{display:none}}


/* v0.2.1 refinements */
.week-empty{height:36px;display:flex;align-items:center;padding:0 12px;color:#6b7f91;font-size:11px;font-weight:700;white-space:nowrap}
.group-label-inner{position:relative;display:block;padding:0 62px 0 30px}
.group-grip{position:absolute;left:3px;top:0;height:30px}
.group-name{display:block;width:100%;height:30px;line-height:30px;text-align:var(--group-align,left);font-size:var(--group-font-size,12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.group-actions{position:absolute;right:4px;top:4px}
.group-selected .group-label{box-shadow:inset 0 0 0 2px #0b83c9,0 1px 0 rgba(0,0,0,.15)}
.selected-cell{box-shadow:none!important}.selected-range{box-shadow:none!important}
.selected-range::after{content:"";position:absolute;inset:0;background:rgba(11,131,201,.12);pointer-events:none;z-index:6;border:0 solid #087fc4}
.selected-range.sel-top::after{border-top-width:2px}.selected-range.sel-bottom::after{border-bottom-width:2px}.selected-range.sel-left::after{border-left-width:2px}.selected-range.sel-right::after{border-right-width:2px}
.range-selecting,.range-selecting *{user-select:none!important}.manual-dot{display:none!important}
.date-picker-control{position:relative}.date-display{width:100%;height:40px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#17212b;display:flex;align-items:center;justify-content:space-between;padding:0 10px;cursor:pointer;text-align:left}.date-display:hover{border-color:#91abc0;background:#fbfdff}.date-display-text{font-variant-numeric:tabular-nums;font-size:14px}.date-display-icon{font-size:15px;color:#174f7d}
.date-calendar-panel{display:none;position:absolute;left:0;top:44px;width:320px;background:#fff;border:1px solid #c8d5df;border-radius:10px;box-shadow:var(--shadow);padding:10px;z-index:1300}.date-calendar-panel.open{display:block}
.calendar-head{display:grid;grid-template-columns:32px 1fr 82px 32px;gap:5px;align-items:center;margin-bottom:7px}.calendar-nav{height:31px;border:1px solid #d0dbe4;background:#f8fbfd;border-radius:6px;color:#174f7d;font-size:20px;cursor:pointer}.calendar-nav:hover{background:#eaf4fb}.calendar-month,.calendar-year{height:31px;border:1px solid #d0dbe4;background:#fff;border-radius:6px;padding:0 6px;color:#244760;font-weight:700}
.calendar-grid{display:grid;grid-template-columns:32px repeat(7,1fr);gap:2px;align-items:center}.calendar-week-head,.calendar-dow{height:24px;display:grid;place-items:center;color:#738493;font-size:10px;font-weight:800}.calendar-week-head{color:#174f7d}.calendar-week-no{height:31px;display:grid;place-items:center;border-radius:5px;background:#eef5fa;color:#456779;font-size:10px;font-weight:850}.calendar-day{height:31px;border:0;border-radius:5px;background:transparent;color:#17212b;cursor:pointer;font-size:11px;position:relative}.calendar-day:hover{background:#e4f2fb}.calendar-day.outside{color:#aab4bd}.calendar-day.selected-week{background:#e4f3fc;color:#0c4f7e}.calendar-day.selected-monday{background:#0b83c9;color:#fff;font-weight:900}.present-days{grid-template-columns:repeat(2,1fr)}

/* v0.3.0 */
.btn.active-toggle{background:#dff3ff;border-color:#69a9d1;color:#0b5f91}
.select-all-head{cursor:pointer;font-size:16px}.select-all-head:hover{background:#b8d5e8}
.employee-row{height:auto}.employee-row td,.cell-input,.name-wrap{min-height:29px;height:100%}.cell-input{box-sizing:border-box}
.section-stats-row td{height:27px;background:#f3f7fa;border-bottom:1px solid #aebbc5;color:#465d6c;font-size:9px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.section-stats-row .stats-control{background:#e7eef3;color:#567184;font-weight:900}.section-stats-row .stats-day{text-align:center;background:#edf5fa}.section-stats-row .stats-static:first-of-type{font-weight:850}
.smart-section-label{position:sticky;top:-5px;z-index:2;background:#f2f6f9;color:#557083;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;padding:5px 8px;margin:2px -2px 4px;border-radius:4px}.smart-option small{margin-left:auto;color:#8a9aa6;font-size:9px}.smart-dropdown{max-height:320px}
.floating-picker{width:275px}.picker-label{font-size:9px;font-weight:900;color:#687d8d;text-transform:uppercase;letter-spacing:.5px;margin:2px 0 5px}.picker-label:not(:first-child){margin-top:9px}.picker-swatches{display:grid;grid-template-columns:repeat(8,26px);gap:5px}.picker-swatch{width:26px;height:26px;border-radius:5px;border:1px solid rgba(15,23,42,.22);cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}.picker-swatch:hover{outline:2px solid #0b83c9;outline-offset:1px}.picker-swatches.recent{grid-template-columns:repeat(10,20px)}.picker-swatches.recent .picker-swatch{width:20px;height:20px;border-radius:4px}
.date-calendar-panel{position:fixed;left:auto;top:auto;width:320px;max-width:calc(100vw - 16px);z-index:3000}.calendar-month{min-width:0;width:100%}.calendar-year{width:82px}
.col-head{cursor:pointer}.col-head .col-resizer{cursor:col-resize}

/* v0.3.3 — statystyki całego planu */
.global-stats-row td{background:#dceaf3;border-top:2px solid #4d7997;border-bottom:2px solid #4d7997;color:#183f59;padding:6px 7px;vertical-align:middle}.global-stats-row .global-stats-control{background:#285f85;color:#fff;font-weight:900;text-align:center}.global-stats-static{font-size:10px;font-weight:900;letter-spacing:.02em}.global-stats-static strong{display:block;font-size:11px}.global-stats-static span{display:block;font-size:8px;font-weight:700;color:#55778e;margin-top:1px}.global-stats-day{text-align:center;min-height:42px}.global-total{font-size:12px;font-weight:950;color:#123f5d;line-height:1.2}.global-detail{margin-top:3px;font-size:9px;font-weight:750;line-height:1.25;white-space:normal;overflow-wrap:anywhere;color:#3b6078}

/* v0.3.4 — czytelne statystyki całego dnia */
.global-stats-row td{vertical-align:top;padding:7px 8px}
.global-stats-day{text-align:left;min-height:90px;white-space:normal}
.global-summary{display:flex;flex-direction:column;gap:1px;padding-bottom:5px;margin-bottom:4px;border-bottom:1px solid rgba(24,63,89,.22)}
.global-total{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:9px;font-weight:850;line-height:1.25;color:#315b73}
.global-total span{white-space:nowrap}
.global-total strong{font-size:12px;color:#123f5d}
.global-total-people{font-weight:950}
.global-total-people strong{font-size:14px}
.global-stat-list{display:flex;flex-direction:column;gap:1px}
.global-stat-line{display:flex;align-items:baseline;justify-content:space-between;gap:5px;font-size:9px;line-height:1.25;color:#294f67}
.global-stat-line span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-stat-line strong{flex:0 0 auto;color:#123f5d;font-size:9px}
.global-stat-empty{font-size:8px;color:#6c8798;font-style:italic;line-height:1.3}
.global-status-block{margin-top:6px;padding-top:4px;border-top:1px dashed rgba(24,63,89,.3)}
.global-status-header{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:8px;font-weight:950;letter-spacing:.04em;color:#526d7e;margin-bottom:2px}
.global-status-header strong{font-size:10px;color:#304f61}


/* v0.3.5 — podsumowanie całego tygodnia w lewym bloku */
.global-plan-overview{padding:9px 11px!important;text-align:left!important;min-width:210px}
.global-plan-title{font-size:12px;font-weight:950;letter-spacing:.035em;color:#123f5d;line-height:1.15}
.global-plan-subtitle{font-size:8px;font-weight:750;color:#628095;margin:2px 0 7px}
.global-plan-list{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;max-width:310px}
.global-plan-line{display:contents}
.global-plan-line span{font-size:8.5px;font-weight:800;line-height:1.35;color:#3b6078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.global-plan-line strong{font-size:10px;font-weight:950;line-height:1.25;text-align:right;color:#123f5d;min-width:24px}
.global-plan-line.primary span,.global-plan-line.primary strong{font-size:10px;color:#0f3e5d}
.global-plan-line.primary strong{font-size:14px}
.global-plan-line.warning span,.global-plan-line.warning strong{color:#9a4a00}

/* v0.4.0 — workflow, walidacja i mobile */
.validation-button{display:flex;align-items:center;gap:5px}.validation-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(255,255,255,.18);font-size:10px;font-weight:900}.validation-button.has-problems{background:#9a5607;border-color:#e0a54c}.validation-button.has-problems .validation-count{background:#fff;color:#8b4b00}.validation-button.has-blocking{background:#a93c35;border-color:#d86a62}.validation-button.has-blocking .validation-count{background:#fff;color:#9d2f29}.validation-warning-cell{box-shadow:inset 0 0 0 2px rgba(230,126,34,.72)!important}.validation-warning-cell::before{content:"";position:absolute;right:0;top:0;border-top:8px solid #e67e22;border-left:8px solid transparent;z-index:7;pointer-events:none}.validation-blocking-cell{box-shadow:inset 0 0 0 2px rgba(196,55,48,.78)!important}.validation-blocking-cell::before{content:"";position:absolute;right:0;top:0;border-top:8px solid #c43730;border-left:8px solid transparent;z-index:8;pointer-events:none}.validation-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px}.validation-filter{border:1px solid #cbd8e2;border-radius:999px;background:#fff;color:#355269;padding:6px 9px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;cursor:pointer}.validation-filter strong{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#edf3f7;display:inline-grid;place-items:center;font-size:10px}.validation-filter:hover{background:#f4f8fb}.validation-filter.active{border-color:#5d8fb2;background:#eaf4fb;color:#174f7d}.validation-filter[data-validation-filter="blocking"].active{border-color:#d68a84;background:#fff0ee;color:#a5362f}.validation-filter[data-validation-filter="warnings"].active{border-color:#e1b66d;background:#fff8e9;color:#8b5500}.validation-filter[data-validation-filter="resolved"].active{border-color:#7fba91;background:#edf9f1;color:#23713c}.validation-export-row{display:flex;align-items:center;gap:8px;min-height:28px;margin:-1px 0 10px;padding:0 2px}.validation-export-label{font-size:10px;font-weight:900;color:#718493;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}.validation-export-chips{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.validation-export-chip{border:1px solid #d6e1e9;border-radius:7px;background:#f7fafc;color:#536b7c;padding:4px 7px;display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;line-height:1.15;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.validation-export-chip strong{min-width:16px;height:16px;padding:0 4px;border-radius:5px;background:#e8eff4;color:#607788;display:inline-grid;place-items:center;font-size:9px;font-weight:900}.validation-export-chip:hover{background:#edf4f8;border-color:#b9cbd8;color:#35556c}.validation-export-chip.active{background:#e7f2f9;border-color:#7da5c0;color:#174f7d}.validation-export-chip.active strong{background:#fff;color:#174f7d}.validation-explain{border:1px solid #d9e4ec;background:#f7fafc;color:#607484;border-radius:8px;padding:8px 10px;font-size:10.5px;line-height:1.4;margin-bottom:10px}.validation-list{display:flex;flex-direction:column;gap:7px}.validation-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid #d6e0e8;border-radius:9px;padding:8px 9px;background:#fff}.validation-item.error{border-color:#efb7b1;background:#fff8f7}.validation-item.warning{border-color:#efd4a7;background:#fffbf3}.validation-icon{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:#f4e5d1;color:#965300;font-weight:950}.validation-item.error .validation-icon{background:#fbe4e1;color:#b42318}.validation-message{font-size:11px;line-height:1.35;color:#334e62}.validation-item-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:3px}.validation-severity,.validation-targets{display:inline-flex;align-items:center;min-height:19px;padding:2px 6px;border-radius:999px;font-size:9px;font-weight:900;line-height:1}.validation-severity{background:#fff0d8;color:#8c5600}.validation-item.error .validation-severity{background:#fde7e4;color:#a92f28}.validation-targets{background:#eef3f7;color:#50697b}.validation-filter-empty{min-height:100px;display:grid;place-items:center;color:#718493;font-size:11px}.validation-go{padding:6px 8px}.validation-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.validation-resolve-once{white-space:nowrap}.validation-item.resolved{border-color:#afd8bd;background:#f6fcf8}.validation-item.resolved .validation-icon{background:#dff2e5;color:#23713c}.validation-item.resolved .validation-severity{background:#dff2e5;color:#23713c}.validation-resolved-csv{display:block;margin-top:4px;color:#667c8c;line-height:1.35}.validation-resolve-context{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid #d7e3eb;border-radius:9px;background:#f7fafc;margin-bottom:9px}.validation-resolve-context strong{font-size:13px;color:#173f5e}.validation-resolve-context span{font-size:11px;color:#607484}.validation-resolve-note{margin-bottom:12px}.validation-resolve-rule{margin-bottom:12px}.validation-resolve-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.validation-resolve-grid .field{margin:0}.validation-resolve-grid input,.validation-resolve-rule select{width:100%}.validation-empty{min-height:160px;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;color:#23713c}.validation-empty strong{font-size:16px}.validation-empty span{font-size:11px;color:#6c7d89}.csv-warning-block{margin-top:10px;padding-top:9px;border-top:1px solid rgba(127,60,11,.18)}.csv-ready-after-warning{margin-top:8px;font-weight:800}.day-target-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}.bulk-clear-time{margin-top:12px}.btn.danger{background:#a83b35;color:#fff;border-color:#8f312c}.btn.danger:hover{background:#bd443d}

@media (max-width: 900px){
  :root{--sticky-group-top:88px}
  body{overflow:hidden}.app{min-width:0;width:100%;height:100dvh}
  .topbar{height:auto;min-height:56px;flex-wrap:wrap;align-content:center;padding:7px 8px;gap:7px}
  .brand{min-width:42px}.brand-title{font-size:13px}.brand-sub{display:none}.brand-badge{width:31px;height:31px}
  .workspace-control{flex:1;min-width:160px;padding:0}.workspace-select{width:100%;min-width:0;height:36px;padding:6px 9px}.workspace-control .small-label{display:none}
  .topbar .spacer,.save-state{display:none}
  .toolbar{order:5;width:100%;padding:1px 0 2px;overflow-x:auto;overscroll-behavior-x:contain}.toolbar .btn{height:38px;padding:0 10px;flex:0 0 auto}
  .weekbar{height:47px;padding:0 5px;gap:4px}.year-picker-wrap{width:91px;flex-basis:91px}.year-picker-wrap .small-label{display:none}.year-picker{width:82px;height:34px}.week-scroll-arrow{display:none}.week-tab{min-width:72px;flex-basis:72px}.add-week{width:43px;padding:0;font-size:0}.add-week::after{content:"＋";font-size:20px}.week-tabs{gap:4px}
  .formatbar{height:43px;overflow-x:auto;overflow-y:hidden;padding:0 6px;gap:5px;flex:0 0 43px;scrollbar-width:none}.formatbar::-webkit-scrollbar{display:none}.format-group{flex:0 0 auto}.format-spacer{display:none}.zoom-group{margin-left:auto}.format-btn,.zoom-readout,.format-select{height:33px}.font-size-label{white-space:nowrap}
  .grid-wrap{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.planning-table{touch-action:pan-x pan-y}.cell-input{font-size:max(var(--cell-font-size,12px),12px);min-height:34px}.employee-row td,.name-wrap{min-height:34px}.row-control{width:38px;min-width:38px;max-width:38px}
  .mobile-sticky-name,.mobile-sticky-name-head{position:sticky!important;left:38px!important;z-index:10!important;box-shadow:2px 0 4px rgba(15,23,42,.12)}.planning-table thead .mobile-sticky-name-head{z-index:23!important}.mobile-sticky-name{background-clip:padding-box}.group-row td{top:var(--sticky-group-top)}
  .statusbar{height:25px;gap:8px;overflow-x:auto;padding:0 7px}.statusbar>span:not(:first-child){display:none}.statusbar #activeInfo{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  .modal-backdrop{align-items:flex-end;justify-content:center}.modal,.modal.small,.modal.medium,.modal.wide{width:100vw;max-width:none;max-height:92dvh;border-radius:14px 14px 0 0}.modal-head{padding:12px 14px}.modal-body{padding:12px}.modal-foot{padding:9px 10px;overflow-x:auto;justify-content:flex-end}.settings-layout{min-height:0;flex-direction:column;overflow:auto}.settings-nav{width:100%;flex:0 0 auto;display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid #d5e0e9;padding:7px}.settings-nav button{width:auto;flex:0 0 auto;margin:0 3px 0 0;white-space:nowrap}.settings-content{overflow:visible}.two-col,.field-row{grid-template-columns:1fr}.date-preview{grid-template-columns:repeat(4,1fr)}.day-target-grid{grid-template-columns:repeat(2,1fr)}
  .context-menu{left:8px!important;right:8px!important;bottom:8px!important;top:auto!important;width:auto;max-height:62dvh;overflow:auto;border-radius:14px;padding:8px}.context-menu button{min-height:42px;font-size:14px}.smart-dropdown{left:8px!important;right:8px!important;bottom:8px!important;top:auto!important;width:auto!important;max-height:52dvh;border-radius:14px;padding:8px}.smart-option{min-height:42px;font-size:14px}.floating-picker{left:8px!important;right:8px!important;bottom:8px!important;top:auto!important;width:auto;max-height:72dvh;overflow:auto;border-radius:14px;padding:14px}.picker-swatches{grid-template-columns:repeat(8,minmax(26px,1fr))}.picker-swatch{width:100%;height:32px}.picker-swatches.recent{grid-template-columns:repeat(5,1fr)}.picker-swatches.recent .picker-swatch{width:100%;height:28px}
  .date-calendar-panel{left:8px!important;right:8px!important;bottom:8px!important;top:auto!important;width:auto;max-width:none;border-radius:14px}.calendar-day,.calendar-week-no{height:36px}.calendar-head{grid-template-columns:36px 1fr 84px 36px}
  .resource-toolbar,.template-card{align-items:stretch;flex-direction:column}.table-scroll{max-height:52dvh}.csv-days{grid-template-columns:1fr 1fr}
}
@media (max-width: 480px){
  .brand-title{display:none}.brand{min-width:32px}.brand-badge{width:30px;height:30px}.workspace-control{min-width:140px}.toolbar .btn{height:40px}.weekbar{height:45px}.week-tab{min-width:64px;flex-basis:64px}.formatbar{height:42px;flex-basis:42px}.zoom-group #btnFit{display:none}.font-size-label{font-size:0}.font-size-label .format-select{font-size:12px}.day-target-grid,.csv-days{grid-template-columns:1fr 1fr}.date-preview{grid-template-columns:repeat(2,1fr)}.validation-item{grid-template-columns:26px minmax(0,1fr)}.validation-go{grid-column:2;justify-self:start}.validation-actions{grid-column:2;justify-self:start;justify-content:flex-start}.validation-resolve-grid{grid-template-columns:1fr}.global-plan-overview{min-width:185px}.global-plan-list{max-width:240px}
}
.mobile-only-btn{display:none}
@media(max-width:900px){.mobile-only-btn{display:inline-flex}.mobile-only-btn.active-toggle{background:#dff3ff!important;color:#0b5f91!important;border-color:#69a9d1!important}.app:has(#btnSelectMode.active-toggle) .grid-wrap{touch-action:none}.app:has(#btnSelectMode.active-toggle) .planning-table{touch-action:none}.app:has(#btnSelectMode.active-toggle) .cell-input{pointer-events:none}}


/* v0.4.1 — context menu, sticky name, keyboard/fill fixes */
.context-menu{max-height:calc(100dvh - 16px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.mobile-sticky-name,.mobile-sticky-name-head{position:sticky!important;left:42px!important;z-index:10!important;box-shadow:2px 0 5px rgba(15,23,42,.14);background-clip:padding-box}
.planning-table thead .mobile-sticky-name-head{z-index:24!important}
@media(max-width:900px){.mobile-sticky-name,.mobile-sticky-name-head{left:38px!important}}

/* v0.4.2 — compact top toolbar + context color picker */
.topbar{gap:8px;padding-left:12px;padding-right:10px}
.topbar>.spacer{flex:0 0 0;width:0}
.toolbar{flex:1 1 auto;min-width:0;gap:7px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.toolbar::-webkit-scrollbar{display:none}
.toolbar-group{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding-right:7px;border-right:1px solid rgba(255,255,255,.16)}
.toolbar-group:last-of-type{border-right:0;padding-right:0}
.toolbar-group-history{gap:3px}
.toolbar-menu-btn{display:inline-flex;align-items:center;gap:5px}
.toolbar-menu-chev{font-size:10px;opacity:.78}
.toolbar-action-proxies{display:none!important}
.save-state{flex:0 0 auto}

@media(max-width:1350px) and (min-width:901px){
  .brand{min-width:122px}.brand-sub{display:none}
  .workspace-select{min-width:132px}
  .toolbar{gap:5px}
  .toolbar-group{padding-right:5px}
  .toolbar .btn{padding-left:7px;padding-right:7px}
}

@media(max-width:900px){
  .toolbar{gap:6px;overflow-x:auto}
  .toolbar-group{border-right:0;padding-right:0;gap:5px}
  .toolbar-group+.toolbar-group{margin-left:2px}
}

/* v0.4.2 — calendar header: pełne nazwy miesięcy bez pionowego przycinania */
.calendar-head{
  grid-template-columns:36px minmax(132px,1fr) 92px 36px;
  gap:6px;
  align-items:center;
}
.calendar-nav{
  height:36px;
  min-height:36px;
}
.calendar-month,.calendar-year{
  -webkit-appearance:none;
  appearance:none;
  height:auto;
  min-height:36px;
  width:100%;
  min-width:0;
  padding:8px 30px 8px 10px;
  line-height:1.2;
  font-size:13px;
  font-weight:750;
  color:#244760;
  background-color:#fff;
  background-image:linear-gradient(45deg,transparent 50%,#315c78 50%),linear-gradient(135deg,#315c78 50%,transparent 50%);
  background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  text-overflow:ellipsis;
}
.calendar-year{width:100%;}
@media(max-width:480px){
  .calendar-head{grid-template-columns:36px minmax(118px,1fr) 88px 36px;gap:5px}
  .calendar-month,.calendar-year{min-height:38px;padding-top:9px;padding-bottom:9px;font-size:13px}
  .calendar-nav{height:38px;min-height:38px}
}


/* v0.4.3 — bezpieczny kalendarz + AutoFit tylko dla kolumn planu */
.date-calendar-panel{
  box-sizing:border-box;
  overflow:hidden;
  width:min(340px,calc(100vw - 16px));
}
.calendar-head{
  width:100%;
  grid-template-columns:36px minmax(0,1fr) minmax(84px,92px) 36px;
}
.calendar-head>*{min-width:0;max-width:100%;box-sizing:border-box}
.calendar-nav{width:36px;padding:0;display:grid;place-items:center;overflow:hidden}
.calendar-month,.calendar-year{max-width:100%}
.week-scroll-shell{overflow:hidden}
.week-scroll-arrow{flex:0 0 27px;position:relative;z-index:2}

/* Nazwa pracownika pozostaje widoczna przy poziomym scrollu na każdym desktopie. */
.mobile-sticky-name,.mobile-sticky-name-head{
  position:sticky!important;
  left:42px!important;
  z-index:14!important;
  background-clip:padding-box;
}
.planning-table thead .mobile-sticky-name-head{z-index:26!important}


/* v0.4.4 — sticky layering + AutoFit manual lock */
/* Kolejność warstw: nagłówki > sticky sekcja > sticky Naam > zwykłe komórki. */
.planning-table thead{z-index:30!important}
.mobile-sticky-name{z-index:15!important}
.group-row td{z-index:20!important}
.group-row .row-control{z-index:21!important}
.planning-table thead .mobile-sticky-name-head{z-index:34!important}

/* v0.5.0 — Aantallen, view manager, dynamic freeze, zoom 5–300 */
.frozen-col{position:sticky!important;z-index:15!important;box-shadow:2px 0 5px rgba(15,23,42,.10);background-clip:padding-box}
.planning-table thead .frozen-col-head{z-index:34!important}
.group-row td{z-index:24!important}.group-row .row-control{z-index:25!important}

.view-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.view-list{border:1px solid #d7e2ea;border-radius:8px;overflow:hidden;background:#fff}.view-list.compact{max-width:520px}.view-item{min-height:42px;padding:8px 10px;border-bottom:1px solid #e5edf3;display:flex;align-items:center;justify-content:space-between;gap:16px}.view-item:last-child{border-bottom:0}.view-item label{display:flex;align-items:center;gap:7px;font-size:12px}.view-freeze.disabled{opacity:.45}.view-modal .modal-body{overflow:auto}

.aantallen-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.aantallen-scroll{max-height:65vh}.aantallen-table{min-width:max-content}.aantallen-table th{text-align:center;white-space:nowrap}.aantallen-table th small,.aantallen-table td small{display:block;font-size:9px;color:#718397;font-weight:600;margin-top:2px}.aantallen-table .aant-group-cell{font-weight:900;color:#174f7d;vertical-align:top}.aant-plan{text-align:center;font-weight:900;background:#eef7fd}.aant-target-input{width:66px!important;min-width:66px;text-align:center;padding:5px!important}
body:not(.plan-readonly) .aant-target-input:not([readonly]){cursor:var(--pluven-edit-cursor)}.aant-diff{text-align:center;font-weight:900}.aant-ok{color:#137333;background:#edf8ef!important}.aant-shortage{color:#b42318;background:#fff0ee!important}.aant-excess{color:#9a5a00;background:#fff7e5!important}

.aant-preview-group td{height:30px;background:#d9eef9!important;border-top:2px solid #376b8d}.aant-preview-group-title{padding:0 9px!important;color:#174f7d}.aant-preview-group-title strong{font-size:11px;letter-spacing:.2px}.aant-open-mini{float:right;border:1px solid #9dbbd0;background:#f5fbff;color:#205f87;border-radius:4px;padding:3px 8px;font-size:9px;font-weight:800;cursor:pointer;margin:4px 4px 0 0}.aant-preview-row td{height:32px;background:#f8fbfd}.aant-preview-label{padding:3px 7px!important;text-align:left}.aant-preview-label strong{display:block;font-size:10px}.aant-preview-label small{display:block;font-size:8px;color:#718397}.aant-preview-plan{text-align:center;background:#edf7fd!important}.aant-preview-plan strong{font-size:12px}.aant-mini-label{display:block;font-size:7px;color:#6b8292;font-weight:800}.aant-mini-diff{font-size:8px;font-weight:900;margin-left:4px}.aant-preview-target{text-align:center;background:#fff8e7!important}.aant-preview-target input{width:100%;height:30px;border:0;background:transparent;text-align:center;font-weight:900;outline:0;min-width:0}.aant-preview-target input:focus{box-shadow:inset 0 0 0 2px #0b83c9;background:#fff}.aant-preview-total td{height:28px;background:#dce8ef!important;font-weight:900;text-align:center;border-top:1px solid #6f8796}.aant-preview-target-total{background:#f5edd8!important}.aant-control{font-size:9px;font-weight:900;color:#245b7a}

@media(max-width:900px){
  .aantallen-toolbar{align-items:stretch;flex-direction:column}.aantallen-scroll{max-height:62dvh}.view-item{min-height:48px}.aant-preview-label{min-width:120px}.aant-open-mini{min-height:28px}
}

/* v0.5.1 — Aantallen status colors, tabs, quick view controls */
.aant-tabs{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
.aant-tab{border:1px solid #aebfce;background:#f6f9fb;color:#27485f;border-radius:7px;padding:7px 14px;font-weight:800;cursor:pointer}
.aant-tab:hover{background:#eaf3f9}.aant-tab.active{background:#195b87;color:#fff;border-color:#195b87}
.aant-target-cell{padding:2px!important;transition:background .12s ease}.aant-target-cell .aant-target-input{background:transparent!important}
.aant-empty{background:#e5e7eb!important;color:#667085!important}
.aant-shortage{background:#f2a8a8!important;color:#7f1d1d!important}
.aant-ok{background:#a9d9b5!important;color:#14532d!important}
.aant-excess{background:#287a4b!important;color:#fff!important}
.aant-excess input{color:#fff!important}.aant-excess small{color:#eaffef!important}
.aant-preview-tabs-row td{height:36px!important}.aant-preview-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px}
.aant-preview-tabs{display:flex;gap:4px;align-items:center;min-width:0}.aant-preview-tab{border:1px solid #9dbbd0;background:#f5fbff;color:#205f87;border-radius:5px;padding:4px 10px;font-size:9px;font-weight:900;cursor:pointer}
.aant-preview-tab.active{background:#195b87;color:#fff;border-color:#195b87}
.aant-preview-actions{display:flex;gap:4px;margin-left:auto;flex:0 0 auto}.aant-hide-mini{border:1px solid #c4a9a9;background:#fff7f7;color:#8b2f2f;border-radius:4px;padding:3px 8px;font-size:9px;font-weight:800;cursor:pointer}
.aant-preview-target.aant-empty,.aant-preview-target-total.aant-empty{background:#e5e7eb!important}
.aant-preview-target.aant-shortage,.aant-preview-target-total.aant-shortage{background:#f2a8a8!important}
.aant-preview-target.aant-ok,.aant-preview-target-total.aant-ok{background:#a9d9b5!important}
.aant-preview-target.aant-excess,.aant-preview-target-total.aant-excess{background:#287a4b!important;color:#fff!important}
.aant-preview-target.aant-excess input{color:#fff!important}
.aant-preview-target-total small{display:block;font-size:8px;margin-top:1px}
@media(max-width:700px){.aant-preview-group-title{align-items:flex-start}.aant-preview-tabs{overflow-x:auto}.aant-preview-tab{white-space:nowrap}}


/* v0.5.2 — Aantallen preview stacked + reliable zoom menu */
.aantallen-toolbar-actions{display:flex;gap:6px;align-items:center;flex:0 0 auto}.danger-soft{border-color:#e4b6b6!important;background:#fff8f8!important;color:#8b2f2f!important}
.aant-preview-group-title>strong{font-size:10px;letter-spacing:.3px;text-transform:none}.aant-preview-target-wrap{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.aant-preview-target-wrap input{height:21px!important;line-height:21px!important}.aant-mini-diff-block{display:block!important;font-size:7px!important;font-weight:900!important;line-height:8px!important;margin-top:-2px!important;color:inherit!important}.aant-preview-target{height:34px!important}.aant-preview-target.aant-excess .aant-mini-diff-block{color:#fff!important}
@media(max-width:700px){.aantallen-toolbar-actions{width:100%;flex-wrap:wrap}.aantallen-toolbar-actions .btn{flex:1 1 auto}}


/* v0.5.3 — Aantallen preview: PLAN carries status/delta, Aanvraag stays neutral. */
.aant-preview-row td,
.aant-preview-total td{
  overflow:hidden;
}
.aant-preview-plan{
  padding:0!important;
  text-align:center!important;
}
.aant-preview-plan-wrap{
  width:100%;
  height:100%;
  min-height:30px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  line-height:1;
  overflow:hidden;
}
.aant-preview-plan-wrap strong{
  display:block;
  width:100%;
  text-align:center;
}
.aant-preview-plan .aant-mini-diff-block{
  display:block!important;
  width:100%;
  margin:2px 0 0!important;
  text-align:center!important;
  line-height:8px!important;
}
.aant-preview-target,
.aant-preview-target-total{
  background:#fff8e7!important;
  color:#172b3a!important;
  padding:0!important;
}
.aant-preview-target-wrap{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.aant-preview-target input{
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0 4px!important;
  box-sizing:border-box!important;
  text-align:center!important;
  appearance:textfield;
  -moz-appearance:textfield;
}
.aant-preview-target input::-webkit-outer-spin-button,
.aant-preview-target input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.aant-preview-plan.aant-empty{
  background:#e5e7eb!important;
  color:#667085!important;
}
.aant-preview-plan.aant-shortage{
  background:#f2a8a8!important;
  color:#7f1d1d!important;
}
.aant-preview-plan.aant-ok{
  background:#a9d9b5!important;
  color:#14532d!important;
}
.aant-preview-plan.aant-excess{
  background:#287a4b!important;
  color:#fff!important;
}
.aant-preview-plan.aant-excess .aant-mini-label,
.aant-preview-plan.aant-excess .aant-mini-diff-block{
  color:#effff3!important;
}


/* v0.5.4 — Aantallen: poprawiony lewy nagłówek i normalne zaznaczanie. */
.aant-preview-group-title{
  min-width:0;
  box-sizing:border-box;
  justify-content:flex-start!important;
}
.aant-preview-group-title .aant-open-mini{margin-left:auto}
.aant-preview-group-filler{
  background:#d9eef9!important;
  border-top:2px solid #376b8d!important;
  padding:0!important;
}
.aant-preview-label{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
[data-aant-row][data-aant-day]{
  cursor:cell;
  position:relative;
}
[data-aant-row][data-aant-day].aant-selected{
  box-shadow:inset 0 0 0 2px #0785d1!important;
  z-index:7;
}
.aant-target-cell.aant-selected input,
.aant-preview-target.aant-selected input{
  background:rgba(255,255,255,.38)!important;
}
.aant-plan.aant-selected,
.aant-preview-plan.aant-selected{
  outline:0!important;
}


/* v0.5.5 — Aantallen: poprawne colSpan, spójne zaznaczenie i edycja. */
.aant-preview-group-title{
  display:table-cell!important;
  padding:0!important;
  min-width:0!important;
  vertical-align:middle!important;
}
.aant-preview-group-inner{
  width:100%;height:100%;min-height:30px;
  display:flex;align-items:center;gap:10px;
  padding:0 8px;box-sizing:border-box;
}
.aant-preview-group-inner .aant-open-mini{margin-left:auto!important;float:none!important;flex:0 0 auto}
.aant-preview-group-filler{display:table-cell!important}

/* Jedna niebieska ramka wokół logicznego zakresu Aanvraag, zamiast ramki na każdej komórce. */
[data-aant-row][data-aant-day].aant-selected{box-shadow:none!important;z-index:7}
[data-aant-row][data-aant-day].aant-selected::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:rgba(11,131,201,.06);
  border-style:solid;border-color:#0785d1;border-width:0;
  box-sizing:border-box;z-index:8;
}
[data-aant-row][data-aant-day].aant-selected.aant-sel-top::after{border-top-width:2px}
[data-aant-row][data-aant-day].aant-selected.aant-sel-bottom::after{border-bottom-width:2px}
[data-aant-row][data-aant-day].aant-selected.aant-sel-left::after{border-left-width:2px}
[data-aant-row][data-aant-day].aant-selected.aant-sel-right::after{border-right-width:2px}
.aant-proxy-selected{box-shadow:inset 0 0 0 1px rgba(7,133,209,.22)!important}
.aant-target-input{position:relative;z-index:9}
.aant-target-cell,.aant-preview-target{position:relative!important}

/* v0.5.6 — Otwórz obok nazwy grupy Aantallen. */
.aant-preview-group-inner{
  justify-content:flex-start!important;
  width:max-content!important;
  max-width:100%!important;
}
.aant-preview-group-inner .aant-open-mini{
  margin:0!important;
  margin-left:6px!important;
  float:none!important;
}


/* v0.5.7 — nagłówki Ochtend/Middag są jedną ciągłą sekcją i obsługują formatowanie. */
.aant-preview-group-title{
  display:table-cell!important;
  padding:0!important;
  background:#d9eef9!important;
  border-top:2px solid #376b8d!important;
  border-left:0!important;
  border-right:0!important;
  vertical-align:middle!important;
}
.aant-preview-group-filler{display:none!important}
.aant-preview-group-inner{
  width:100%!important;
  max-width:none!important;
  min-height:30px;
  box-sizing:border-box;
  padding:0 8px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  justify-content:var(--aant-group-justify,flex-start)!important;
}
.aant-preview-group-inner strong{
  font-size:var(--aant-group-font-size,11px)!important;
}
.aant-preview-group-title[data-aant-group] .aant-preview-group-inner{
  justify-content:flex-start!important;
}
.aant-preview-group-title[data-aant-group] .aant-preview-group-inner[style*="--aant-group-align: center"]{
  justify-content:center!important;
}
.aant-preview-group-title[data-aant-group] .aant-preview-group-inner[style*="--aant-group-align: right"]{
  justify-content:flex-end!important;
}
.aant-preview-group-title[data-aant-group] .aant-open-mini{
  margin:0 0 0 6px!important;
  flex:0 0 auto!important;
}
.aant-preview-group.aant-group-selected .aant-preview-group-title{
  box-shadow:inset 0 0 0 2px #0785d1!important;
}

.aant-preview-group-title[data-align="left"] .aant-preview-group-inner{justify-content:flex-start!important}
.aant-preview-group-title[data-align="center"] .aant-preview-group-inner{justify-content:center!important}
.aant-preview-group-title[data-align="right"] .aant-preview-group-inner{justify-content:flex-end!important}


/* v0.6.0 — Aanvraag / dawny arkusz Aanvrag */
.aanvraag-modal{max-width:min(1120px,96vw)}
.aanvraag-toolbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:12px;
}
.aanvraag-toolbar .note{margin:0;flex:1}
.aanvraag-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.aanvraag-scroll{max-height:min(68vh,680px)}
.aanvraag-table{
  min-width:820px;
  table-layout:fixed;
}
.aanvraag-table th:first-child{width:210px}
.aanvraag-table thead th{
  text-align:center;
  position:sticky;
  top:0;
  z-index:4;
}
.aanvraag-table thead th:first-child{text-align:left}
.aanvraag-table thead small{
  display:block;
  font-size:9px;
  font-weight:500;
  opacity:.72;
  margin-top:2px;
}
.aanvraag-section-row th{
  background:#d9edf8!important;
  color:#174c72;
  text-align:left!important;
  font-weight:900!important;
  letter-spacing:.02em;
  border-top:2px solid #4d7da0!important;
}
.aanvraag-section-row.avond th{background:#e4def5!important;color:#4a3e78}
.aanvraag-section-row.flex th{background:#fff1c9!important;color:#735712}
.aanvraag-edit-row th{text-align:left;font-weight:750}
.aanvraag-edit-row.ochtend th{border-left:4px solid #5aa3d6}
.aanvraag-edit-row.avond th{border-left:4px solid #8d78c3}
.aanvraag-edit-row.flex th{border-left:4px solid #d8a32f}
.aanvraag-table td{
  padding:3px!important;
  height:36px;
  position:relative;
}
.aanvraag-input{
  width:100%;
  height:29px;
  min-width:0;
  box-sizing:border-box;
  border:1px solid #bdcedb;
  border-radius:5px;
  background:#fff;
  text-align:center;
  font-weight:800;
  color:#142c3d;
  outline:none;
}
body:not(.plan-readonly) .aanvraag-input:not([readonly]){cursor:var(--pluven-edit-cursor)}
.aanvraag-input:focus{
  border-color:#0785d1;
  box-shadow:0 0 0 2px rgba(7,133,209,.15);
}
.aanvraag-table td.aanvraag-selected{
  box-shadow:inset 0 0 0 2px #0785d1!important;
  z-index:2;
}
.aanvraag-table td.aanvraag-selected .aanvraag-input{
  background:#eef8ff;
}
.aanvraag-total-row th,
.aanvraag-total-row td{
  font-weight:900!important;
  text-align:center;
}
.aanvraag-total-row th{text-align:left!important}
.aanvraag-total-row.morning{background:#e9f5fb}
.aanvraag-total-row.evening{background:#f0ecfa}
.aanvraag-total-row.request{
  background:#d9e8f2;
  border-top:2px solid #315f7d;
}
.aanvraag-total-row.grand{
  background:#1f6e48;
  color:#fff;
  font-size:14px;
}
.aanvraag-total-row.grand th,.aanvraag-total-row.grand td{color:#fff!important}
.aanvraag-footnote{
  margin-top:10px;
  font-size:11px;
  color:#647785;
}
@media(max-width:768px){
  .aanvraag-toolbar{flex-direction:column}
  .aanvraag-toolbar-actions{width:100%}
  .aanvraag-toolbar-actions .btn{flex:1}
  .aanvraag-modal{width:98vw!important}
  .aanvraag-scroll{max-height:65vh}
}


/* v0.6.1 */
.setting-toggle-card{
  margin-top:14px;
  padding:10px 12px;
  border:1px solid #c7d7e3;
  border-radius:8px;
  background:#f7fbfe;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.switch-line{
  display:flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  font-weight:700;
}

/* Totaal incl. Flex — pełny kontrast na zielonym tle. */
.aanvraag-total-row.grand,
.aanvraag-total-row.grand th,
.aanvraag-total-row.grand td,
.aanvraag-total-row.grand strong{
  color:#fff!important;
}
.aanvraag-total-row.grand th,
.aanvraag-total-row.grand td{
  background:#1f6e48!important;
}


/* ==========================================================
   v0.7.0 — TRANSPORT
   ========================================================== */
.transport-modal{
  width:min(1480px,98vw)!important;
  max-width:1480px!important;
  height:min(94vh,980px);
  display:flex;
  flex-direction:column;
}
.transport-body{
  flex:1;
  min-height:0;
  overflow:auto;
  background:#f4f7f9;
}
.transport-toolbar{
  position:sticky;
  top:-16px;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 0 12px;
  margin-bottom:10px;
  background:#f4f7f9;
}
.transport-day-tabs{
  display:flex;
  gap:5px;
  overflow-x:auto;
  min-width:0;
  padding-bottom:2px;
}
.transport-day-tab{
  border:1px solid #b9cbd8;
  background:white;
  border-radius:8px;
  min-width:86px;
  padding:6px 8px;
  color:#29485c;
  cursor:pointer;
  flex:0 0 auto;
}
.transport-day-tab strong{display:block;text-transform:capitalize}
.transport-day-tab small{display:block;font-size:9px;margin-top:2px;color:#718492}
.transport-day-tab.active{
  border-color:#0785d1;
  background:#eaf7ff;
  box-shadow:inset 0 -2px 0 #0785d1;
  color:#05649b;
}
.transport-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}
.transport-source-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.transport-share-canvas{
  max-width:1360px;
  margin:0 auto;
}
.transport-share-title{
  display:none;
  margin:0 0 12px;
  padding:10px 12px;
  border-bottom:2px solid #1d4058;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
}
.transport-share-title strong{font-size:20px;color:#17364a}
.transport-share-title span{font-size:12px;color:#4e6574;font-weight:700}
.transport-cars-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  align-items:start;
}
.transport-special-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.transport-card,.transport-source-card{
  background:#fff;
  border:1px solid #b9cbd8;
  border-radius:10px;
  overflow:hidden;
  min-width:0;
  box-shadow:0 1px 2px rgba(17,49,70,.05);
}
.transport-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
  background:#e8f2f8;
  border-bottom:1px solid #c6d6e0;
}
.transport-card-head strong{
  display:block;
  color:#173a52;
  font-size:14px;
}
.transport-card-head small{
  display:block;
  color:#5d7484;
  margin-top:2px;
  font-size:10px;
}
.transport-card-title{min-width:0;flex:1}
.transport-card-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.transport-card-head-right{display:flex;align-items:flex-start;gap:5px;flex:0 0 auto}
.transport-temp-badge{display:inline-flex;align-items:center;margin-top:4px;border-radius:999px;padding:2px 6px;background:#e8ddff;color:#6745a6;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.transport-temp-note{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.transport-card.is-temp-vehicle{border-style:dashed;border-color:#a78bd1}
.transport-card.is-temp-vehicle .transport-card-head{background:#f4efff}
.transport-card-action{width:25px;height:25px;border:1px solid #c2d1dc;border-radius:6px;background:#fff;color:#536b7a;cursor:pointer;font-weight:900;line-height:1}
.transport-card-action:hover{background:#eef4f7}
.transport-card-action.danger{color:#a72d2d;border-color:#e0b4b4}
.transport-card-action.danger:hover{background:#fff0f0}
.transport-capacity{
  flex:0 0 auto;
  border-radius:999px;
  background:#fff;
  border:1px solid #c2d1dc;
  padding:3px 7px;
  font-size:10px;
  font-weight:900;
  color:#375468;
}
.transport-card.card-conflict{
  border-color:#d64040;
  box-shadow:0 0 0 1px rgba(214,64,64,.15);
}
.transport-card.card-conflict .transport-card-head{
  border-bottom-color:#e0a3a3;
}
.transport-card-warning{
  padding:5px 9px;
  background:#fff0f0;
  color:#a82424;
  border-bottom:1px solid #efb6b6;
  font-size:10px;
  font-weight:800;
}
.transport-person-list{padding:5px}
.transport-person{
  min-height:38px;
  display:flex;
  align-items:center;
  gap:5px;
  padding:4px 5px;
  border-radius:6px;
  border:1px solid transparent;
  background:#fff;
  cursor:grab;
}
.transport-person+.transport-person{margin-top:3px}
.transport-person:hover{background:#f5f9fc;border-color:#d7e3eb}
.transport-person.dragging{opacity:.45}
.transport-person.is-driver{
  background:#fff0a8!important;
  border-color:#e5c94f!important;
}
.transport-person.has-conflict{
  border-color:#d64040!important;
  background:#fff5f5;
}
.transport-driver-btn{
  width:24px;
  height:24px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:#8ba0ae;
  font-size:17px;
  cursor:pointer;
  flex:0 0 auto;
}
.transport-driver-btn:hover{background:#eef4f7}
.transport-driver-btn.active{color:#7b6200}
.transport-driver-btn.ghost{cursor:default}
.transport-person-main{
  flex:1;
  min-width:0;
}
.transport-person-main strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
  color:#1f3849;
}
.transport-person-main small{
  display:block;
  margin-top:1px;
  font-size:9px;
  color:#667e8e;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.transport-license{
  font-size:12px;
  flex:0 0 auto;
}
.transport-person-warning{
  width:18px;height:18px;border-radius:50%;
  background:#d64040;color:#fff;
  display:grid;place-items:center;
  font-weight:900;font-size:10px;
  flex:0 0 auto;
}
.transport-person-more{
  border:0;background:transparent;color:#768b99;
  width:23px;height:23px;border-radius:5px;cursor:pointer;
  flex:0 0 auto;font-weight:900;
}
.transport-person-more:hover{background:#edf3f7}
.transport-empty{
  color:#8495a1;
  padding:12px;
  text-align:center;
  font-size:10px;
}
.transport-drop-active{
  outline:3px solid rgba(7,133,209,.32)!important;
  outline-offset:-3px;
}
.transport-source-card{
  margin-top:14px;
  border-style:dashed;
}
.transport-source-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  background:#f0f4f7;
  border-bottom:1px dashed #bdcad2;
  font-weight:900;
  color:#3d596b;
  font-size:11px;
}
.transport-source-group{
  display:grid;
  grid-template-columns:150px repeat(3,minmax(0,1fr));
  align-items:start;
  gap:4px;
  padding:6px;
}
.transport-source-group>strong{
  padding:8px 5px;
  font-size:10px;
  color:#506a7a;
}
.transport-source-group .source-person{min-width:0}
.transport-special-grid .mode-private .transport-card-head{background:#f1f1f1}
.transport-special-grid .mode-waiting .transport-card-head{background:#fff3cd}
.transport-share-top{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}
.transport-share-top.hidden{display:none}
.transport-modal.share-mode .transport-modal-head,
.transport-modal.share-mode .share-hidden,
.transport-modal.share-mode .transport-edit-only{
  display:none!important;
}
.transport-modal.share-mode{
  height:auto;
  max-height:98vh;
}
.transport-modal.share-mode .transport-body{
  padding:12px!important;
  background:#fff;
}
.transport-modal.share-mode .transport-share-title{display:flex}
.transport-modal.share-mode .transport-card{
  box-shadow:none;
}
.transport-modal.share-mode .transport-person{
  cursor:default;
}
.transport-modal.share-mode .transport-person-more,
.transport-modal.share-mode .transport-driver-btn:not(.active),
.transport-modal.share-mode .transport-license{
  display:none!important;
}
.transport-modal.share-mode .transport-driver-btn.active{
  pointer-events:none;
}
.transport-share-canvas.large-text .transport-person-main strong{font-size:14px}
.transport-share-canvas.large-text .transport-person-main small{font-size:11px}
.transport-share-canvas.large-text .transport-card-head strong{font-size:17px}
.transport-share-canvas.large-text .transport-person{min-height:46px}
.section-config-table{min-width:860px}
.settings-row-highlight{outline:3px solid rgba(7,133,209,.35);outline-offset:-2px}

/* 1–2 auta nie rozciągają się w nieskończoność, 5–6 naturalnie układa się 3×2. */
.transport-cars-grid:has(> :only-child){grid-template-columns:minmax(320px,520px)}
.transport-cars-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(300px,1fr))}

@media(max-width:1050px){
  .transport-cars-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .transport-source-group{grid-template-columns:130px repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .transport-modal{width:100vw!important;height:100dvh!important;max-height:100dvh;border-radius:0!important}
  .transport-body{padding:10px!important}
  .transport-toolbar{align-items:stretch;flex-direction:column;top:-10px}
  .transport-toolbar-actions .btn{flex:1}
  .transport-cars-grid,.transport-special-grid{grid-template-columns:1fr!important}
  .transport-source-group{grid-template-columns:1fr}
  .transport-source-group>strong{padding:5px}
  .transport-share-title{align-items:flex-start;flex-direction:column}
}

/* Print/PDF — drukujemy wyłącznie czysty plan transportu. */
@media print{
  body *{visibility:hidden!important}
  #transportBackdrop,
  #transportBackdrop *,
  .transport-share-canvas,
  .transport-share-canvas *{visibility:visible!important}
  #transportBackdrop{
    position:absolute!important;inset:0!important;background:#fff!important;
    display:block!important;
  }
  #transportModal{
    position:absolute!important;left:0!important;top:0!important;width:100%!important;
    max-width:none!important;height:auto!important;max-height:none!important;
    border:0!important;box-shadow:none!important;
  }
  .transport-modal-head,.transport-toolbar,.transport-share-top,.transport-edit-only{display:none!important}
  .transport-body{overflow:visible!important;padding:0!important;background:#fff!important}
  .transport-share-title{display:flex!important}
  .transport-cars-grid{grid-template-columns:repeat(3,1fr)!important}
  .transport-card{break-inside:avoid;box-shadow:none!important}
  .transport-person-more,.transport-driver-btn:not(.active),.transport-license{display:none!important}
  .transport-driver-btn.active{pointer-events:none!important}
}



/* v0.7.2 — kolory zmian WYŁĄCZNIE w podglądzie do wysłania. */
.transport-modal.share-mode .transport-card.transport-shift-ochtend:not(.card-conflict){
  background:#fffbed!important;
  border-color:#e3d79b!important;
}
.transport-modal.share-mode .transport-card.transport-shift-ochtend:not(.card-conflict) .transport-card-head{
  background:#fff3b8!important;
  border-bottom-color:#e3d79b!important;
}
.transport-modal.share-mode .transport-card.transport-shift-middag:not(.card-conflict){
  background:#f3f8ff!important;
  border-color:#a9c9e8!important;
}
.transport-modal.share-mode .transport-card.transport-shift-middag:not(.card-conflict) .transport-card-head{
  background:#dceeff!important;
  border-bottom-color:#a9c9e8!important;
}

/* Kierowca ma pozostać widoczny również na żółtej karcie porannej. */
.transport-modal.share-mode .transport-card .transport-person.is-driver{
  background:#ffe27a!important;
  border-color:#d0aa19!important;
}

/* Konflikt ma zawsze pierwszeństwo nad kolorem zmiany. */
.transport-modal.share-mode .transport-card.card-conflict{
  background:#fff!important;
  border-color:#d64040!important;
}
.transport-modal.share-mode .transport-card.card-conflict .transport-card-head{
  background:#fff0f0!important;
  border-bottom-color:#e0a3a3!important;
}


/* v0.7.3 — kolor zmiany widoczny także w roboczym podglądzie Transport. */
.transport-card.transport-shift-ochtend:not(.card-conflict){
  background:#fffdf4;
  border-color:#e7dca7;
}
.transport-card.transport-shift-ochtend:not(.card-conflict) .transport-card-head{
  background:#fff3b8;
  border-bottom-color:#e3d79b;
}
.transport-card.transport-shift-middag:not(.card-conflict){
  background:#f5f9ff;
  border-color:#abcbe9;
}
.transport-card.transport-shift-middag:not(.card-conflict) .transport-card-head{
  background:#dceeff;
  border-bottom-color:#a9c9e8;
}

/* Konflikty nadal mają bezwzględne pierwszeństwo. */
.transport-card.card-conflict{
  background:#fff!important;
  border-color:#d64040!important;
}
.transport-card.card-conflict .transport-card-head{
  background:#fff0f0!important;
  border-bottom-color:#e0a3a3!important;
}

/* Share: bez drugiej linii z działem / godziną pracownika. */
.transport-modal.share-mode .transport-person-main strong{
  white-space:normal;
  line-height:1.18;
}
.transport-modal.share-mode .transport-person{
  min-height:32px;
}


/* v0.7.8 — czytelniejszy start pracy + eksport PNG z Widoku do wysłania */
.transport-card-head .transport-start-time{
  display:block;
  color:#4f6777;
  margin-top:3px;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.1px;
}
.transport-share-top{
  align-items:center;
}
.transport-share-top-left,
.transport-share-top-right{
  display:flex;
  align-items:center;
  gap:8px;
}
.transport-share-top-right{
  margin-left:auto;
}
.transport-modal.share-mode .transport-card-head .transport-start-time{
  font-size:12px;
}
.transport-share-canvas.large-text .transport-card-head .transport-start-time{
  font-size:13px;
}
.transport-modal.share-mode .transport-share-canvas.large-text .transport-card-head .transport-start-time{
  font-size:13.5px;
}
@media(max-width:700px){
  .transport-share-top{
    flex-direction:column;
    align-items:stretch;
  }
  .transport-share-top-left,
  .transport-share-top-right{
    width:100%;
  }
  .transport-share-top-left .btn,
  .transport-share-top-right .btn{
    flex:1;
  }
}


/* v0.7.14 — szybkie wyszukiwanie pracowników */
.employee-search-panel{position:fixed;z-index:120;top:58px;right:12px;width:min(430px,calc(100vw - 24px));max-height:min(620px,calc(100dvh - 74px));display:none;flex-direction:column;background:#fff;border:1px solid #cbd8e2;border-radius:12px;box-shadow:0 16px 42px rgba(15,23,42,.22);overflow:hidden}
.employee-search-panel.show{display:flex}
.employee-search-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 12px 7px}.employee-search-head>div{display:flex;flex-direction:column;gap:2px}.employee-search-head strong{font-size:13px;color:#173f5b}.employee-search-head #employeeSearchContext{font-size:10px;color:#718493}.employee-search-shortcut{font-size:9px;font-weight:850;color:#617789;background:#edf3f7;border:1px solid #d5e0e8;border-radius:5px;padding:3px 6px;white-space:nowrap}
.employee-search-input-wrap{display:grid;grid-template-columns:20px minmax(0,1fr) 28px;align-items:center;gap:4px;margin:0 10px 7px;border:1px solid #9db9cc;border-radius:8px;background:#fff;padding:0 5px}.employee-search-input-wrap>span{font-size:18px;color:#4f7188;text-align:center}.employee-search-input-wrap input{height:38px;min-width:0;border:0;outline:0;font:inherit;font-size:13px;background:transparent}.employee-search-input-wrap button{width:28px;height:28px;border:0;background:transparent;border-radius:6px;color:#667985;font-size:20px;line-height:1;cursor:pointer}.employee-search-input-wrap button:hover{background:#edf3f7;color:#284e68}
.employee-search-meta{padding:0 12px 7px;font-size:10px;color:#718493}.employee-search-results{overflow:auto;padding:0 7px 8px;overscroll-behavior:contain}.employee-search-result{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid transparent;border-radius:8px;background:transparent;padding:8px 9px;text-align:left;cursor:pointer}.employee-search-result:hover,.employee-search-result.active{background:#eef7fc;border-color:#c7deeb}.employee-search-result-main{min-width:0;display:flex;flex-direction:column;gap:2px}.employee-search-result-main strong{font-size:12px;color:#173f5b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.employee-search-result-main span{font-size:10px;color:#708391}.employee-search-section{flex:0 0 auto;max-width:38%;font-size:10px;font-weight:800;color:#547086;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.employee-search-empty{padding:18px 10px 22px;text-align:center;font-size:11px;color:#718493}.employee-row.search-jump-highlight td{box-shadow:inset 0 2px 0 #58a6cf,inset 0 -2px 0 #58a6cf}
@media(max-width:900px){.employee-search-panel{top:auto;right:0;left:0;bottom:0;width:100vw;max-height:72dvh;border-radius:14px 14px 0 0}.employee-search-input-wrap{grid-template-columns:24px minmax(0,1fr) 34px}.employee-search-input-wrap input{height:46px;font-size:16px}.employee-search-result{min-height:52px;padding:10px}.employee-search-result-main strong{font-size:14px}.employee-search-result-main span,.employee-search-section{font-size:11px}.employee-search-shortcut{display:none}}


/* v0.7.15 — stabilny topbar + dropdown, który nie zasłania aktywnej komórki */
@media (min-width:901px) and (max-width:2050px){
  /* Po dodaniu Search status zapisu nie może zabierać miejsca głównym akcjom. */
  .save-state{display:none}
  .topbar{gap:7px}
}
@media (min-width:901px) and (max-width:1700px){
  .brand{min-width:122px}.brand-sub{display:none}
  .workspace-control .small-label{display:none}
  .workspace-select{min-width:132px}
  .toolbar{gap:5px}
  .toolbar-group{padding-right:5px}
  .toolbar .btn{padding-left:7px;padding-right:7px;font-size:13px}
}


/* v0.7.20 — kontrast, font color i Aantallen UX */
.aant-preview-grand-total td{border-top:3px double #315f7d!important;font-weight:950!important}
.aant-preview-grand-total td:not(.row-control){font-size:10px}
body:not(.plan-readonly) .aant-target-cell,body:not(.plan-readonly) .aant-preview-target{cursor:var(--pluven-edit-cursor)}

/* v0.7.21 — Aantallen: jedna ramka fokusu + grand total używa zwykłych kolorów statusu. */
.aant-target-input:focus{outline:0!important}
.aant-target-cell.aant-selected .aant-target-input:focus,
.aant-preview-target.aant-selected .aant-target-input:focus{
  box-shadow:none!important;
}

/* v0.7.22 — Pending Changes / zmiany do przekazania. */
.pending-change-cell::after{
  content:"";
  position:absolute;
  inset:1px;
  border:2px solid #e53935;
  border-radius:2px;
  pointer-events:none;
  /* Keep the marker above the normal selection overlay, but below sticky/frozen cells.
     Otherwise a scrolled pending cell can paint its red frame over the sticky row-number/name columns. */
  z-index:7;
}
/* v0.9.1e — selection must stay readable on cells that also have Pending Changes.
   Both features historically used ::after, so the later pending rule replaced the
   blue selection overlay entirely. Merge both visuals explicitly: red pending frame
   stays visible inside the cell while the blue selection range/edge remains on top. */
.pending-change-cell.selected-range::after{
  inset:0;
  background:rgba(11,131,201,.12);
  border:0 solid #087fc4;
  border-radius:0;
  box-shadow:inset 0 0 0 2px #e53935;
  z-index:8;
}
.pending-change-cell.selected-range.sel-top::after{border-top-width:2px}
.pending-change-cell.selected-range.sel-bottom::after{border-bottom-width:2px}
.pending-change-cell.selected-range.sel-left::after{border-left-width:2px}
.pending-change-cell.selected-range.sel-right::after{border-right-width:2px}
html[data-theme="dark"] .pending-change-cell.selected-range::after{
  background:rgba(38,180,244,.16);
  border-color:#38bdf8;
  box-shadow:inset 0 0 0 2px #ff5b57;
}
.pending-host{position:relative;gap:4px}
.pending-toolbar-badge{
  position:static;
  flex:0 0 auto;
  min-width:15px;
  height:15px;
  padding:0 4px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#e53935;
  color:#fff;
  border:1px solid rgba(255,255,255,.82);
  font-size:9px;
  font-weight:950;
  line-height:13px;
  box-shadow:0 1px 2px rgba(0,0,0,.2);
  vertical-align:middle;
}
.pending-toolbar-badge[hidden]{display:none!important}
.pending-changes-body{background:#f7fafc}
.pending-note{
  margin-bottom:10px;
  padding:9px 11px;
  border:1px solid #d8e2ea;
  background:#fff;
  border-radius:8px;
  color:#5c7080;
  font-size:11px;
  line-height:1.4;
}
.pending-list{display:flex;flex-direction:column;gap:8px}
.pending-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:10px 11px;
  border:1px solid #d8e1e8;
  border-left:4px solid #e53935;
  border-radius:9px;
  background:#fff;
}
.pending-item-main{min-width:0}
.pending-person{display:flex;align-items:baseline;gap:8px;min-width:0}
.pending-person strong{font-size:12px;color:#243746;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pending-person span{font-size:10px;color:#6d8190;text-transform:lowercase}
.pending-change{display:flex;align-items:center;gap:6px;min-width:0;margin-top:5px;font-size:11px}
.pending-field{font-weight:850;color:#40586a;min-width:48px}
.pending-old,.pending-new{padding:3px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}
.pending-old{background:#f2f4f6;color:#667784;text-decoration:line-through;text-decoration-color:#9aa8b3}
.pending-new{background:#fff0ef;color:#a12820;font-weight:800}
.pending-arrow{color:#91a1ad;font-weight:900}
.pending-when{margin-top:5px;font-size:9px;color:#91a0ab}
.pending-actions{display:flex;gap:6px;flex-wrap:nowrap}
.pending-actions .btn{padding:6px 8px;font-size:10px}
.pending-empty{min-height:170px;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;color:#23713c}
.pending-empty strong{font-size:16px}.pending-empty span{font-size:11px;color:#6c7d89}
.pending-accept-all:disabled{opacity:.45}

@media(max-width:700px){
  .pending-item{grid-template-columns:1fr;gap:8px}
  .pending-actions{justify-content:flex-start}
  .pending-change{flex-wrap:wrap}
  .pending-old,.pending-new{max-width:100%}
}

/* v0.7.23 — Pending Changes badge stays inside the More button, so the topbar cannot clip it. */

/* v0.7.24 — D2 Filters: view-only employee filtering, kept out of the crowded topbar. */
.planner-filter-button{display:inline-flex;align-items:center;gap:6px;font-weight:800}
.planner-filter-button.active{background:#dff2ff;border-color:#6eb5df;color:#0f5f91}
.planner-filter-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:#1477b7;color:#fff;font-size:9px;font-weight:950;line-height:1}
.planner-filter-count[hidden]{display:none!important}
.planner-filter-preview{display:flex;align-items:baseline;gap:7px;padding:12px 14px;border:1px solid #c9ddea;border-radius:10px;background:#eff8fe;color:#36586f}
.planner-filter-preview strong{font-size:24px;line-height:1;color:#0f6da8}
.planner-filter-preview span{font-size:11px;font-weight:750}
.planner-filter-grid{margin-top:13px;align-items:stretch}
.planner-filter-check{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid #cbd8e2;border-radius:7px;background:#fff;cursor:pointer;min-height:58px}
.planner-filter-check input{width:17px;height:17px;flex:0 0 auto}
.planner-filter-check span{display:flex;flex-direction:column;gap:2px;min-width:0}
.planner-filter-check strong{font-size:11px;color:#344f62}
.planner-filter-check small{font-size:9px;color:#728491;line-height:1.35}
.planner-filter-note{margin-top:12px;padding:10px 11px;border-left:3px solid #6fa9cd;background:#f7fafc;color:#627482;font-size:10px;line-height:1.45}
.planner-filter-note strong{color:#34566d}
.planner-filter-empty-row td{height:78px!important;padding:14px!important;text-align:center;background:#f8fbfd!important;color:#667c8b!important;border-top:2px solid #b9d1e0!important;border-bottom:2px solid #b9d1e0!important}
.planner-filter-empty-row strong{display:block;font-size:12px;color:#405c70;margin-bottom:4px}
.planner-filter-empty-row span{font-size:10px}

/* ==========================================================
   v0.7.25 — D2 Filters multiselect
   ========================================================== */
.filter-modal{width:min(900px,94vw)!important}
.planner-filter-grid-multi{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:13px;
  align-items:start;
}
.planner-filter-multi{
  min-width:0;
  border:1px solid #cbd8e2;
  border-radius:9px;
  background:#fff;
  overflow:hidden;
}
.planner-filter-multi-head{
  min-height:38px;
  padding:8px 9px 7px 11px;
  border-bottom:1px solid #dce6ed;
  background:#f5f9fc;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.planner-filter-multi-head>label{
  margin:0;
  color:#35566d;
  font-size:11px;
  font-weight:900;
}
.planner-filter-multi-head>div{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}
.planner-filter-multi-count{
  white-space:nowrap;
  color:#60798a;
  font-size:9px;
  font-weight:800;
}
.planner-filter-clear-group{
  border:0;
  border-radius:5px;
  padding:4px 6px;
  background:transparent;
  color:#1477b7;
  font-size:9px;
  font-weight:850;
  cursor:pointer;
}
.planner-filter-clear-group:hover:not(:disabled){background:#e3f2fb}
.planner-filter-clear-group:disabled{opacity:.35;cursor:default}
.planner-filter-options{
  max-height:215px;
  overflow:auto;
  padding:5px;
  scrollbar-width:thin;
}
.planner-filter-option{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:31px;
  margin:0;
  padding:6px 7px;
  border-radius:6px;
  color:#314b5d;
  font-size:10px;
  font-weight:750;
  cursor:pointer;
  user-select:none;
}
.planner-filter-option:hover{background:#eef7fd}
.planner-filter-option:has(input:checked){background:#e3f3fd;color:#0f5f91;font-weight:850}
.planner-filter-option input{
  width:15px;
  height:15px;
  flex:0 0 auto;
  margin:0;
  accent-color:#1477b7;
}
.planner-filter-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planner-filter-no-options{padding:14px 8px;color:#8495a1;font-size:9px;text-align:center}
.planner-filter-grid-multi>.planner-filter-check{grid-column:1/-1;min-height:52px}
@media(max-width:820px){
  .planner-filter-grid-multi{grid-template-columns:1fr 1fr}
  .planner-filter-grid-multi>.planner-filter-check{grid-column:1/-1}
}
@media(max-width:620px){
  .planner-filter-grid-multi{grid-template-columns:1fr}
  .planner-filter-grid-multi>.planner-filter-check{grid-column:auto}
  .planner-filter-options{max-height:165px}
}

/* ==========================================================
   v0.7.26 — D3 Collapse Sections
   ========================================================== */
.section-collapse-button{display:inline-flex;align-items:center;gap:6px;font-weight:800}
.section-collapse-button.active{background:#eef6fb;border-color:#8eb8d2;color:#174f7d}
.section-collapse-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:#5b7f96;color:#fff;font-size:9px;font-weight:950;line-height:1}
.section-collapse-count[hidden]{display:none!important}
.group-label-inner{padding-right:142px}
.group-count{position:absolute;right:86px;top:6px;min-width:42px;height:18px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.42);display:grid;place-items:center;font-size:9px;font-weight:850;line-height:1;white-space:nowrap;opacity:.82;pointer-events:none}
.view-section-count{display:inline-block;margin-left:7px;color:#718493;font-size:9px;font-weight:800}
@media(max-width:700px){
  .group-label-inner{padding-right:88px}
  .group-count{display:none}
  .section-collapse-button{padding-left:7px;padding-right:7px}
}

/* v0.7.27 — D4 Column Manager */
.column-manager-button{display:inline-flex;align-items:center;gap:6px;font-weight:800}
.column-manager-button.active{background:#fff4da;border-color:#d7ae50;color:#76520a}
.hidden-column-count{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:#b47a13;color:#fff;font-size:9px;font-weight:950;line-height:1}
.hidden-column-count[hidden]{display:none!important}
.column-manager-section{scroll-margin-top:10px}
.column-manager-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.column-manager-title h4{margin-bottom:4px}
.column-manager-summary{flex:0 0 auto;min-width:76px;padding:8px 10px;border:1px solid #d6e2e9;border-radius:9px;background:#f7fafc;text-align:center;display:flex;flex-direction:column;gap:1px}
.column-manager-summary strong{font-size:19px;line-height:1;color:#315f7d}
.column-manager-summary span{font-size:9px;font-weight:800;color:#718493;text-transform:uppercase;letter-spacing:.3px}
.column-manager-toolbar{display:flex;align-items:center;gap:9px;justify-content:space-between;flex-wrap:wrap;margin:10px 0 12px}
.column-manager-search{flex:1 1 260px;max-width:440px;display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;border:1px solid #b9cbd7;border-radius:8px;background:#fff;padding:0 8px}
.column-manager-search span{font-size:17px;color:#678194;text-align:center}
.column-manager-search input{height:36px;border:0;outline:0;background:transparent;font:inherit;font-size:11px;min-width:0}
.column-manager-actions{margin:0}
.column-manager-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.column-manager-group{border:1px solid #d7e2ea;border-radius:9px;background:#f8fbfd;overflow:hidden}
.column-manager-group[hidden]{display:none!important}
.column-manager-group-head{min-height:48px;padding:8px 10px;background:#edf5fa;border-bottom:1px solid #d7e2ea;display:flex;align-items:center;justify-content:space-between;gap:10px}
.column-manager-group-head>label{display:flex;align-items:center;gap:8px;min-width:0;cursor:pointer}
.column-manager-group-head input{width:16px;height:16px;flex:0 0 auto}
.column-manager-group-head label>span{display:flex;flex-direction:column;gap:1px;min-width:0}
.column-manager-group-head strong{font-size:11px;color:#284e68;text-transform:capitalize}
.column-manager-group-head small{font-size:9px;color:#718493}
.column-manager-group-count{font-size:9px;font-weight:900;color:#547086;background:#fff;border:1px solid #d0dde6;border-radius:999px;padding:3px 7px;white-space:nowrap}
.column-manager-list{border:0;border-radius:0;background:#fff}
.column-manager-item{min-height:44px}
.column-manager-item[hidden]{display:none!important}
.column-visible-label{min-width:0;flex:1}
.column-visible-label>span{display:flex;flex-direction:column;gap:1px;min-width:0}
.column-visible-label strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.column-visible-label small{font-size:8px;color:#7b8d99;text-transform:none}
@media(max-width:850px){
  .column-manager-groups{grid-template-columns:1fr}
  .column-manager-title{align-items:center}
  .column-manager-search{max-width:none;flex-basis:100%}
}
@media(max-width:700px){
  .column-manager-button{padding-left:7px;padding-right:7px}
  .column-manager-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .column-manager-actions .btn:first-child{grid-column:1/-1}
}
.modal.view-modal{width:min(920px,94vw)}

/* v0.7.29 — drag selection whole rows / columns */
.row-control[data-select-row-id]{cursor:default;user-select:none}
.row-control[data-select-row-id].row-selection-active{background:#b8dcef!important;color:#0b5f91;font-weight:900;box-shadow:inset 0 0 0 2px #0b83c9}
.col-head.col-selection-active{background:#a9d4ec!important;color:#0b4f78;box-shadow:inset 0 -3px 0 #0b83c9}
.select-all-head.all-selection-active{background:#8fc5e2!important;color:#073f61;box-shadow:inset 0 0 0 2px #0b83c9}
.header-range-selecting .planning-table .row-control[data-select-row-id],.header-range-selecting .planning-table .col-head[data-col-id]{cursor:crosshair}

/* v0.7.33 — D5 arbitrary frozen columns */
:root{--row-control-width:42px}
.frozen-col{
  position:sticky!important;
  z-index:15!important;
  background-clip:padding-box;
  box-shadow:none!important;
}
.frozen-col.frozen-col-last{box-shadow:3px 0 7px rgba(15,23,42,.16)!important}
.planning-table thead .frozen-col-head{z-index:34!important}
.planning-table thead .frozen-day-group{z-index:33!important}
.column-manager-summary-wrap{display:flex;align-items:stretch;gap:7px;flex:0 0 auto}
.column-manager-summary.frozen-summary strong{color:#6d4f8f}
.view-freeze{flex:0 0 auto;padding:5px 7px;border:1px solid #d7e2ea;border-radius:7px;background:#f7fafc;color:#587083;font-weight:750;white-space:nowrap}
.view-freeze:has(input:checked){background:#f2ebfb;border-color:#c8b5df;color:#5e417c}
.view-freeze input{width:15px;height:15px}
@media(max-width:900px){
  :root{--row-control-width:38px}
  .column-manager-summary-wrap{width:100%;justify-content:flex-end}
}

/* v0.7.34 — sticky day context + performance pass 1 */
.frozen-day-companion{cursor:default!important}

/* v0.7.36 — user theme layer. Light keeps the existing custom palette intact. */
html[data-theme="dark"]{
  --app-bg:#0d1621;
  --panel:#162330;
  --line:#536474;
  --line-dark:#71808e;
  --text:#e7eef5;
  --muted:#9db0c0;
  --danger:#ff8b82;
  --shadow:0 18px 44px rgba(0,0,0,.46);
  --excel-cyan:#176d78;
  --excel-cyan-soft:#315d66;
  --blue:#2c78aa;
  --blue-dark:#19577f;
}
html[data-theme="dark"] body{background:var(--app-bg);color:var(--text)}
html[data-theme="dark"] .topbar{background:linear-gradient(180deg,#102d47,#0a2236)}
html[data-theme="dark"] .weekbar{background:#172533;border-color:#46596a}
html[data-theme="dark"] .year-picker{background:#1d3040;color:#dce9f4;border-color:#566979}
html[data-theme="dark"] .year-picker:hover{background:#263b4d}
html[data-theme="dark"] .week-scroll-arrow{color:#9eb4c5}
html[data-theme="dark"] .week-scroll-arrow:hover{background:#243646}
html[data-theme="dark"] .week-tab{background:#1a2a39;color:#b9c9d6;border-color:#506274}
html[data-theme="dark"] .week-tab:hover{background:#243747}
html[data-theme="dark"] .week-tab.active{background:#223546;color:#8bd7ff;border-color:#6b8497}
html[data-theme="dark"] .add-week{background:#1d3040;color:#bce5ff;border-color:#557084}
html[data-theme="dark"] .add-week:hover{background:#263b4d}
html[data-theme="dark"] .formatbar{background:#142230;border-color:#425565}
html[data-theme="dark"] .format-btn,
html[data-theme="dark"] .zoom-readout,
html[data-theme="dark"] .format-select{background:#1d3040;color:#dce8f2;border-color:#536879}
html[data-theme="dark"] .format-btn:hover,
html[data-theme="dark"] .zoom-readout:hover{background:#284052}
html[data-theme="dark"] .font-size-label{color:#a9bbc8}
html[data-theme="dark"] .grid-wrap{background:#101b26}
html[data-theme="dark"] .planning-table{background:#172331}
html[data-theme="dark"] .employee-row td{background:#172331}
html[data-theme="dark"] .row-control{background:#172431;color:#9fb0bf}
html[data-theme="dark"] .planning-table thead .row-control{background:#29404f}
html[data-theme="dark"] .top-head,
html[data-theme="dark"] .day-head,
html[data-theme="dark"] .col-head{color:#f0fbff}
html[data-theme="dark"] .group-row td{background:#176d78;color:#f2fbff}
html[data-theme="dark"] .group-row .row-control{background:#245e66}
html[data-theme="dark"] .group-label{color:#f2fbff}
html[data-theme="dark"] .group-grip{color:#c8eef1}
html[data-theme="dark"] .group-mini{background:rgba(255,255,255,.11);color:#e9fbff}
html[data-theme="dark"] .statusbar{background:#13202c;border-color:#435665;color:#aebdca}
html[data-theme="dark"] .kbd{background:#1e3040;border-color:#506272;color:#dce8f2}
html[data-theme="dark"] .context-menu,
html[data-theme="dark"] .smart-dropdown,
html[data-theme="dark"] .floating-picker{background:#182633;color:#e6edf3;border-color:#526575}
html[data-theme="dark"] .context-menu button{color:#e6edf3}
html[data-theme="dark"] .context-menu button:hover{background:#263c4e}
html[data-theme="dark"] .context-menu .sep{background:#405160}
html[data-theme="dark"] .context-menu .menu-label{color:#9dafbd}
html[data-theme="dark"] .smart-dropdown button,
html[data-theme="dark"] .smart-dropdown .dropdown-option{color:#e6edf3}
html[data-theme="dark"] .smart-dropdown button:hover,
html[data-theme="dark"] .smart-dropdown .dropdown-option:hover,
html[data-theme="dark"] .smart-dropdown .active{background:#29475d!important}
html[data-theme="dark"] .modal{background:#172431;color:#e6edf3}
html[data-theme="dark"] .modal-head{background:#123f62}
html[data-theme="dark"] .modal-foot{background:#13202c;border-color:#405261}
html[data-theme="dark"] .settings-nav{background:#13212e;border-color:#405261}
html[data-theme="dark"] .settings-nav button{color:#b6c8d6}
html[data-theme="dark"] .settings-nav button:hover{background:#223747}
html[data-theme="dark"] .settings-nav button.active{background:#1c608d;color:#fff}
html[data-theme="dark"] .settings-content,
html[data-theme="dark"] .modal-body{background:#172431;color:#e6edf3}
html[data-theme="dark"] .btn.light{background:#223646;color:#dceaf4;border-color:#536879}
html[data-theme="dark"] .btn.light:hover{background:#2c4558}
html[data-theme="dark"] input:not([type="color"]):not([type="checkbox"]):not([type="radio"]),
html[data-theme="dark"] select,
html[data-theme="dark"] textarea{background:#12202c;color:#e7eef5;border-color:#526575}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:#8196a6}
html[data-theme="dark"] .settings-table{color:#e5edf4}
html[data-theme="dark"] .settings-table th{background:#203544;color:#dce8f2;border-color:#526575}
html[data-theme="dark"] .settings-table td{background:#172633;border-color:#526575}
html[data-theme="dark"] .note,
html[data-theme="dark"] .template-card,
html[data-theme="dark"] .setting-toggle-card,
html[data-theme="dark"] .check-card,
html[data-theme="dark"] .view-list,
html[data-theme="dark"] .view-item,
html[data-theme="dark"] .filter-group,
html[data-theme="dark"] .filter-option,
html[data-theme="dark"] .pending-item,
html[data-theme="dark"] .validation-box{background:#1b2b39;color:#dce8f1;border-color:#455a6b}
html[data-theme="dark"] .pending-changes-body{background:#111d28}
html[data-theme="dark"] .template-meta,
html[data-theme="dark"] .modal-sub,
html[data-theme="dark"] .note{color:#a8bac7}
html[data-theme="dark"] .employee-search-panel{background:#172633;color:#e7eef5;border-color:#526575}
html[data-theme="dark"] .employee-search-head,
html[data-theme="dark"] .employee-search-meta{border-color:#425565;color:#b1c1cd}
html[data-theme="dark"] .employee-search-result{color:#e6edf3;border-color:#3f5363}
html[data-theme="dark"] .employee-search-result:hover,
html[data-theme="dark"] .employee-search-result.active{background:#263f52}
html[data-theme="dark"] .selected-range{box-shadow:inset 0 0 0 9999px rgba(49,160,226,.12)}
html[data-theme="dark"] .interface-settings-card{margin-bottom:16px;padding:12px;border:1px solid #455a6b;border-radius:9px;background:#142431}


/* v0.7.37 — localization fit + Dark Mode 2.0 (dark shell, colorful planner). */
/* Menus and translated controls size to their content instead of assuming Polish-length labels. */
.context-menu{
  min-width:250px;
  width:max-content;
  max-width:min(430px,calc(100vw - 16px));
}
.context-menu button{
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.25;
}
.settings-nav{
  width:clamp(195px,14vw,235px);
  flex-basis:clamp(195px,14vw,235px);
}
.settings-nav button{white-space:normal;line-height:1.2;overflow-wrap:anywhere}
.modal-foot{flex-wrap:wrap}
.toolbar .btn,.format-btn{line-height:1.15}
.formatbar{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.formatbar::-webkit-scrollbar{display:none}
.format-group{flex:0 0 auto}
.format-btn,.format-select,.zoom-readout{flex:0 0 auto;white-space:nowrap}
@media (min-width:901px) and (max-width:2000px){
  .topbar{gap:6px}
  .toolbar{gap:4px}
  .toolbar-group{gap:3px;padding-right:4px}
  .toolbar .btn{padding-left:7px;padding-right:7px;font-size:12.5px}
  .workspace-select{min-width:138px}
}
@media (min-width:901px) and (max-width:1550px){
  .brand{min-width:108px}
  .workspace-select{min-width:124px}
  .toolbar .btn{padding-left:6px;padding-right:6px;font-size:12px}
  .toolbar-menu-btn{gap:3px}
}
@media(max-width:900px){
  .context-menu{width:auto;max-width:none}
  .settings-nav{width:100%;flex-basis:auto}
}

/* Dark Mode 2.0: keep navigation dark, but restore the planner's visual hierarchy and semantic colors. */
html[data-theme="dark"]{
  --app-bg:#0b141d;
  --panel:#152635;
  --line:#466173;
  --line-dark:#527184;
  --text:#edf5fa;
  --muted:#a9bdca;
  --excel-cyan:#00c9d6;
  --excel-cyan-soft:#69b8c0;
  --blue:#2588bf;
  --blue-dark:#17608b;
}
html[data-theme="dark"] .topbar{background:linear-gradient(180deg,#153f63,#0d2d48)}
html[data-theme="dark"] .weekbar{background:#142737;border-color:#486478}
html[data-theme="dark"] .week-tab{background:#193041;color:#c7d9e5;border-color:#4c687a}
html[data-theme="dark"] .week-tab:hover{background:#23465d}
html[data-theme="dark"] .week-tab.active{background:#20617d;color:#f3fbff;border-color:#5cb4ce;box-shadow:inset 0 -3px 0 #00d5e3}
html[data-theme="dark"] .year-picker,
html[data-theme="dark"] .add-week{background:#1a3548;color:#e0f2fb;border-color:#527286}
html[data-theme="dark"] .formatbar{background:#102431;border-color:#496778}
html[data-theme="dark"] .format-btn,
html[data-theme="dark"] .zoom-readout,
html[data-theme="dark"] .format-select{background:#1b394c;color:#edf6fb;border-color:#55788c}
html[data-theme="dark"] .format-btn:hover,
html[data-theme="dark"] .zoom-readout:hover{background:#275069;border-color:#69a0bb}
html[data-theme="dark"] .grid-wrap{background:#0d1a24}
html[data-theme="dark"] .planning-table{background:#142633}
html[data-theme="dark"] .employee-row td{background:#142633}
html[data-theme="dark"] .row-control{background:#132838;color:#a9bfcd}
html[data-theme="dark"] .planning-table thead .row-control{background:#28566a;color:#f1fbff}
html[data-theme="dark"] .top-head,
html[data-theme="dark"] .day-head,
html[data-theme="dark"] .col-head{color:#062d34;text-shadow:0 1px 0 rgba(255,255,255,.18)}
html[data-theme="dark"] .top-head.soft,
html[data-theme="dark"] .col-head.soft{color:#0b3439}
html[data-theme="dark"] .group-row td{background:#087f8a;color:#f5ffff}
html[data-theme="dark"] .group-row .row-control{background:#126875}
html[data-theme="dark"] .group-mini{background:rgba(255,255,255,.18);color:#fff}
html[data-theme="dark"] .frozen-col.frozen-col-last{box-shadow:4px 0 9px rgba(0,0,0,.42)!important}
html[data-theme="dark"] .statusbar{background:#102330;border-color:#456171;color:#b9cad5}
html[data-theme="dark"] .context-menu,
html[data-theme="dark"] .smart-dropdown,
html[data-theme="dark"] .floating-picker{background:#172c3b;color:#edf5fa;border-color:#5a7789;box-shadow:0 18px 44px rgba(0,0,0,.55)}
html[data-theme="dark"] .context-menu button:hover{background:#28516a}
html[data-theme="dark"] .context-menu .sep{background:#496576}
html[data-theme="dark"] .context-menu .menu-label{color:#aabfcd}
html[data-theme="dark"] .modal{background:#152b3a;color:#edf5fa}
html[data-theme="dark"] .modal-head{background:#155777}
html[data-theme="dark"] .modal-foot{background:#102532;border-color:#496575}
html[data-theme="dark"] .settings-nav{background:#102633;border-color:#486575}
html[data-theme="dark"] .settings-nav button{color:#c1d3de}
html[data-theme="dark"] .settings-nav button:hover{background:#21475d}
html[data-theme="dark"] .settings-nav button.active{background:#16789e;color:#fff}
html[data-theme="dark"] .settings-content,
html[data-theme="dark"] .modal-body{background:#152b3a;color:#edf5fa}
html[data-theme="dark"] .template-card,
html[data-theme="dark"] .setting-toggle-card,
html[data-theme="dark"] .check-card,
html[data-theme="dark"] .view-list,
html[data-theme="dark"] .view-item,
html[data-theme="dark"] .filter-group,
html[data-theme="dark"] .filter-option,
html[data-theme="dark"] .pending-item{background:#1a3445;color:#eaf4f9;border-color:#4d6a7b}
html[data-theme="dark"] .interface-settings-card{background:#102a39;border-color:#527184}
html[data-theme="dark"] .employee-search-panel{background:#152d3d;color:#eef6fb;border-color:#527184}
html[data-theme="dark"] .employee-search-result:hover,
html[data-theme="dark"] .employee-search-result.active{background:#244e65}
html[data-theme="dark"] .selected-range{box-shadow:inset 0 0 0 9999px rgba(38,180,244,.16)}
html[data-theme="dark"] .validation-item.error{background:#3b2025;border-color:#9e525c}
html[data-theme="dark"] .validation-item.warning{background:#3a301c;border-color:#9a7a3f}
html[data-theme="dark"] .validation-item.error .validation-icon{background:#662d35;color:#ffd9dd}
html[data-theme="dark"] .validation-item.warning .validation-icon{background:#5e491f;color:#ffe5a6}html[data-theme="dark"] .validation-item.resolved{background:#173529;border-color:#3d7955}html[data-theme="dark"] .validation-item.resolved .validation-icon,html[data-theme="dark"] .validation-item.resolved .validation-severity{background:#24543a;color:#d8ffe4}html[data-theme="dark"] .validation-resolved-csv{color:#a8bdc9}html[data-theme="dark"] .validation-resolve-context{background:#162936;border-color:#355064}html[data-theme="dark"] .validation-resolve-context strong{color:#e5f3ff}html[data-theme="dark"] .validation-resolve-context span{color:#a9becb}
html[data-theme="dark"] .validation-filter{background:#223344;border-color:#4b6172;color:#d8e5ef}
html[data-theme="dark"] .validation-filter strong{background:#314759;color:#e8f1f7}
html[data-theme="dark"] .validation-filter:hover{background:#2b4052}
html[data-theme="dark"] .validation-filter.active{background:#24465e;border-color:#5f90af;color:#d9eefc}
html[data-theme="dark"] .validation-filter[data-validation-filter="blocking"].active{background:#51272b;border-color:#9e525c;color:#ffd9dd}
html[data-theme="dark"] .validation-filter[data-validation-filter="warnings"].active{background:#4d3e1d;border-color:#9a7a3f;color:#ffe5a6}
html[data-theme="dark"] .validation-filter[data-validation-filter="resolved"].active{background:#244b34;border-color:#4f8a63;color:#d8ffe4}html[data-theme="dark"] .validation-export-label{color:#94a9b8}html[data-theme="dark"] .validation-export-chip{background:#1e2e3b;border-color:#3c5263;color:#b9cad6}html[data-theme="dark"] .validation-export-chip strong{background:#2d4252;color:#d6e3ec}html[data-theme="dark"] .validation-export-chip:hover{background:#263b4b;border-color:#567084;color:#e0edf5}html[data-theme="dark"] .validation-export-chip.active{background:#24465e;border-color:#5f90af;color:#d9eefc}html[data-theme="dark"] .validation-export-chip.active strong{background:#d9eefc;color:#174f7d}
html[data-theme="dark"] .validation-explain{background:#202f3e;border-color:#405566;color:#bbcad5}
html[data-theme="dark"] .validation-severity{background:#5e491f;color:#ffe5a6}
html[data-theme="dark"] .validation-item.error .validation-severity{background:#662d35;color:#ffd9dd}
html[data-theme="dark"] .validation-targets{background:#304557;color:#dce8f1}
html[data-theme="dark"] .validation-filter-empty{color:#9eb1bf}
html[data-theme="dark"] .validation-message{color:#e8f0f5}
html[data-theme="dark"] .validation-box{background:#273445;color:#e6eef4;border-color:#566f80}
html[data-theme="dark"] .validation-box.ok{background:#143523;color:#bff2ce;border-color:#3f8758}
html[data-theme="dark"] .status-ok{color:#72dda0}
html[data-theme="dark"] .status-missing{color:#ffbe70}
html[data-theme="dark"] .resource-missing{background:#5a4720!important;color:#ffe7ae!important}
/* Keep Aantallen traffic-light semantics vivid in dark mode. */
html[data-theme="dark"] .aant-empty{background:#4b5662!important;color:#e8eef3!important}
html[data-theme="dark"] .aant-shortage{background:#a94c55!important;color:#fff!important}
html[data-theme="dark"] .aant-ok{background:#4a9b69!important;color:#fff!important}
html[data-theme="dark"] .aant-excess{background:#17653c!important;color:#fff!important}

/* v0.7.38 — Adaptive Dark Colors + dark control/readability polish. */
/* Keep the shell dark, but let semantic planner colors retain their identity through JS-derived dark HEX values. */
html[data-theme="dark"] .smart-option{
  background:#193141!important;
  color:#edf6fb!important;
}
html[data-theme="dark"] .smart-option:hover,
html[data-theme="dark"] .smart-option.active{background:#28516a!important;color:#fff!important}
html[data-theme="dark"] .smart-option small{color:#a9c0cf!important}
html[data-theme="dark"] .smart-section-label{background:#102735;color:#b9cedb;border:1px solid #405e70}
html[data-theme="dark"] .smart-empty{color:#afc1ce}
html[data-theme="dark"] .smart-dot{border-color:rgba(255,255,255,.28)}

/* Native selects/options and settings controls must never fall back to white-on-white OS styling. */
html[data-theme="dark"] select,
html[data-theme="dark"] select option,
html[data-theme="dark"] select optgroup{background:#173042!important;color:#edf6fb!important}
html[data-theme="dark"] select option:checked{background:#24617f!important;color:#fff!important}
html[data-theme="dark"] .field label{color:#c2d4df}
html[data-theme="dark"] .setting-section h4{color:#81d7ff}
html[data-theme="dark"] .template-name{color:#dcecf5}
html[data-theme="dark"] .summary-pill{background:#1b4054;border-color:#487184;color:#cfeeff}
html[data-theme="dark"] .date-chip{background:#183142;border-color:#496778;color:#d9e8f1}
html[data-theme="dark"] .date-chip strong{color:#8edcff}
html[data-theme="dark"] .check-card{background:#183142;color:#e7f1f7;border-color:#496778}
html[data-theme="dark"] .color-combo input[type="text"],
html[data-theme="dark"] .resource-input{background:#122838!important;color:#eef6fb!important;border-color:#557386!important}
html[data-theme="dark"] .btn.light{background:#21465b!important;color:#f1f8fc!important;border-color:#5a7e91!important}
html[data-theme="dark"] .btn.light:hover{background:#2b5b74!important;color:#fff!important}

/* Aantallen structural cells: dark surfaces with clear hierarchy; traffic-light colors remain semantic. */
html[data-theme="dark"] .aantallen-table th{background:#1b3d51;color:#eaf6fc;border-color:#58778a}
html[data-theme="dark"] .aantallen-table td{border-color:#526f81}
html[data-theme="dark"] .aantallen-table .aant-group-cell{background:#173244!important;color:#8edcff!important}
html[data-theme="dark"] .aant-plan{background:#1b3a4d!important;color:#eff8fc!important}
html[data-theme="dark"] .aantallen-table th small,
html[data-theme="dark"] .aantallen-table td small{color:#a8bfcd}
html[data-theme="dark"] .aant-tab{background:#193548;color:#dbeaf3;border-color:#527487}
html[data-theme="dark"] .aant-tab:hover{background:#24516a}
html[data-theme="dark"] .aant-tab.active{background:#167ca2;color:#fff;border-color:#58b4cf}

html[data-theme="dark"] .aant-preview-group td{background:#17495c!important;border-color:#52798b!important}
html[data-theme="dark"] .aant-preview-group-title{color:#f0fbff!important}
html[data-theme="dark"] .aant-preview-row td{background:#152b3a!important;color:#e9f3f8!important}
html[data-theme="dark"] .aant-preview-label{background:#193647!important;color:#eaf5fa!important}
html[data-theme="dark"] .aant-preview-label small,
html[data-theme="dark"] .aant-mini-label{color:#9eb7c7!important}
html[data-theme="dark"] .aant-preview-target{background:#1d3340!important;color:#eef6fa!important}
html[data-theme="dark"] .aant-preview-target input{color:#eef6fa!important}
html[data-theme="dark"] .aant-preview-target input:focus{background:rgba(57,111,140,.35)!important;color:#fff!important}
html[data-theme="dark"] .aant-preview-total td{background:#203b4a!important;color:#edf6fa!important;border-color:#678396!important}
html[data-theme="dark"] .aant-preview-target-total{background:#29404a!important;color:#f5fbfd!important}
html[data-theme="dark"] .aant-open-mini,
html[data-theme="dark"] .aant-preview-tab{background:#214b61;color:#eaf8ff;border-color:#5c8498}
html[data-theme="dark"] .aant-open-mini:hover,
html[data-theme="dark"] .aant-preview-tab:hover{background:#2c647f}
html[data-theme="dark"] .aant-preview-tab.active{background:#1680a7;color:#fff;border-color:#61bdd6}
html[data-theme="dark"] .aant-hide-mini{background:#4b292e;color:#ffd9dd;border-color:#89535b}

/* Adaptive traffic-light variants are derived at runtime from the exact light palette. */
html[data-theme="dark"] .aant-empty{background:var(--aant-empty-theme,#343d45)!important;color:#edf3f7!important}
html[data-theme="dark"] .aant-shortage{background:var(--aant-shortage-theme,#743b40)!important;color:#fff!important}
html[data-theme="dark"] .aant-ok{background:var(--aant-ok-theme,#356946)!important;color:#fff!important}
html[data-theme="dark"] .aant-excess{background:var(--aant-excess-theme,#20593a)!important;color:#fff!important}
html[data-theme="dark"] .aant-preview-target.aant-empty,
html[data-theme="dark"] .aant-preview-target-total.aant-empty{background:var(--aant-empty-theme,#343d45)!important}
html[data-theme="dark"] .aant-preview-target.aant-shortage,
html[data-theme="dark"] .aant-preview-target-total.aant-shortage,
html[data-theme="dark"] .aant-preview-plan.aant-shortage{background:var(--aant-shortage-theme,#743b40)!important}
html[data-theme="dark"] .aant-preview-target.aant-ok,
html[data-theme="dark"] .aant-preview-target-total.aant-ok,
html[data-theme="dark"] .aant-preview-plan.aant-ok{background:var(--aant-ok-theme,#356946)!important}
html[data-theme="dark"] .aant-preview-target.aant-excess,
html[data-theme="dark"] .aant-preview-target-total.aant-excess,
html[data-theme="dark"] .aant-preview-plan.aant-excess{background:var(--aant-excess-theme,#20593a)!important;color:#fff!important}

/* v0.7.39 — format color buttons: keep swatch styling on icon only, never on translated label. */

/* v0.7.40 — dark planner cells: the input must reveal the adaptive color painted on the TD. */
html[data-theme="dark"] .planning-table .cell-input{
  background:transparent!important;
  color:var(--cell-text-color,#edf6fb)!important;
}
html[data-theme="dark"] .planning-table .cell-input:focus{
  background:var(--cell-focus-bg,rgba(255,255,255,.07))!important;
  color:var(--cell-text-color,#fff)!important;
}

/* v0.7.41 — Copy Day 2.0 */
.day-tool-section{display:flex;flex-direction:column;gap:7px}.day-copy-options{align-items:start}.day-tool-section .check-card{min-height:38px}.day-target-grid .check-card span{display:flex;flex-direction:column;gap:1px;min-width:0}.day-target-grid .check-card strong{font-size:11px}.day-target-grid .check-card small{font-size:9px;color:#7a8c99}.check-card.is-disabled{opacity:.46;cursor:not-allowed}.day-tool-summary{margin:10px 0 7px;padding:8px 10px;border-radius:8px;background:#eaf4fb;border:1px solid #c7ddec;color:#244f69;font-size:11px;font-weight:900;text-align:center}
html[data-theme="dark"] .day-target-grid .check-card small{color:#9fb6c5}html[data-theme="dark"] .day-tool-summary{background:#183142;border-color:#496778;color:#e7f1f7}

/* v0.7.46 — keyboard navigation for all custom menus (PPM, Paste Special, Columns, Sections, topbar menus). */
.context-menu button.menu-keyboard-active,
.context-menu button:focus-visible{
  background:#dcecf8;
  outline:2px solid #2389c4;
  outline-offset:-2px;
}
html[data-theme="dark"] .context-menu button.menu-keyboard-active,
html[data-theme="dark"] .context-menu button:focus-visible{
  background:#28516a;
  outline-color:#69b8e6;
}

/* v0.7.51 — Smart Afdeling dropdown polish */
.smart-department-row{display:grid;grid-template-columns:minmax(0,1fr) 116px;align-items:center;gap:7px;padding:2px 1px;border-radius:6px}
.smart-department-row .smart-option-main{min-width:0;padding:7px 8px}
.smart-department-row .smart-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.smart-department-row .smart-dot{flex:0 0 11px;width:11px;height:11px}
.smart-time-chips{display:grid;grid-template-columns:repeat(2,minmax(0,54px));align-items:center;gap:4px;justify-content:end;width:112px;padding-right:3px}
.smart-option.smart-time-chip{width:100%;min-width:0;justify-content:center;padding:6px 5px;border:1px solid rgba(15,23,42,.16);border-radius:999px;background:var(--smart-chip-bg,#eef3f7)!important;color:var(--smart-chip-fg,#111827)!important;font-size:10px;font-weight:850;line-height:1;white-space:nowrap;box-shadow:none}
.smart-option.smart-time-chip:hover,.smart-option.smart-time-chip.active{background:var(--smart-chip-bg,#eef3f7)!important;color:var(--smart-chip-fg,#111827)!important;box-shadow:0 0 0 2px rgba(14,116,144,.34);outline:none}
html[data-theme="dark"] .smart-department-row{background:rgba(255,255,255,.015)}
html[data-theme="dark"] .smart-option.smart-time-chip{border-color:rgba(255,255,255,.18)}
@media(max-width:760px){.smart-department-row{grid-template-columns:minmax(0,1fr)}.smart-time-chips{display:flex;width:auto;justify-content:flex-start;padding:0 8px 5px 28px}.smart-option.smart-time-chip{width:auto;min-width:54px;min-height:34px;font-size:12px;padding:7px 9px}}

/* v0.8.0 — Employee Center */
.modal.employee-center-modal{width:min(1180px,97vw)}
.employee-center-body{display:flex;flex-direction:column;gap:10px;min-height:520px}
.employee-center-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:10px}
.employee-center-search{height:39px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;border:1px solid #b9cbd8;border-radius:8px;background:#fff;padding:0 8px}
.employee-center-search>span{font-size:18px;color:#577488;text-align:center}.employee-center-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:12px;color:#16384f}
.employee-center-filters{display:flex;gap:5px;flex-wrap:wrap}.employee-center-filters .btn.active{background:#174f7d;color:#fff;border-color:#174f7d}
.employee-center-sort{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;color:#61788a;white-space:nowrap}.employee-center-sort select{height:38px;min-width:165px}
.employee-center-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.employee-summary-card{border:1px solid #d5e1e9;border-radius:9px;background:#f7fafc;padding:9px 11px;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.employee-summary-card strong{font-size:20px;color:#183f59}.employee-summary-card span{font-size:9px;text-transform:uppercase;letter-spacing:.04em;font-weight:900;color:#6d8190}.employee-summary-card.active{border-color:#b9d9c2;background:#f1faf4}.employee-summary-card.active strong{color:#237340}.employee-summary-card.inactive{background:#f7f7f8}.employee-summary-card.inactive strong{color:#6d747b}.employee-summary-card.warning{border-color:#ebd2a0;background:#fff9ec}.employee-summary-card.warning strong{color:#a56800}
.employee-center-note{margin:0}.employee-center-scroll{flex:1;min-height:290px;max-height:56vh;border:1px solid #dbe4ea;border-radius:9px}.employee-center-table{min-width:850px}.employee-center-table thead th{position:sticky;top:0;z-index:2}.employee-center-table td{vertical-align:middle}.employee-center-person,.employee-center-week{display:flex;flex-direction:column;gap:2px}.employee-center-person strong{font-size:12px}.employee-center-person small,.employee-center-week small{font-size:9px;color:#758896}.employee-center-week strong{font-size:11px}.employee-weeks-count{text-align:center;font-weight:900}.employee-r-number{font-weight:900;color:#194d6f}.employee-status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:66px;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900;border:1px solid transparent}.employee-status-pill.active{background:#e6f5ea;color:#277441;border-color:#b8dec2}.employee-status-pill.inactive{background:#edf0f2;color:#68747c;border-color:#d5dce1}.employee-identity-warning{color:#b56b00!important}.employee-center-empty{padding:30px;text-align:center;color:#758895;font-size:11px}
.employee-profile-status{display:flex;justify-content:flex-end;margin-bottom:8px}.employee-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.employee-profile-grid>div{border:1px solid #d9e4eb;background:#f8fafc;border-radius:8px;padding:9px 10px;display:flex;flex-direction:column;gap:3px}.employee-profile-grid span{font-size:9px;color:#718493;font-weight:800;text-transform:uppercase}.employee-profile-grid strong{font-size:12px;color:#183f59}.employee-profile-aliases{margin-top:10px;border:1px solid #e2e8ee;background:#fbfcfd;border-radius:8px;padding:9px 10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.employee-profile-aliases strong{font-size:10px}.employee-profile-aliases span{font-size:10px;color:#657b8a}.employee-profile-history{margin-top:14px}.employee-profile-history h4{margin:0 0 8px;font-size:12px}.employee-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e3eaf0;padding:8px 0}.employee-history-row>div{display:flex;flex-direction:column;gap:2px}.employee-history-row strong{font-size:11px}.employee-history-row span{font-size:9px;color:#708493}
html[data-theme="dark"] .employee-center-search{background:#163044;border-color:#4f6b7d}html[data-theme="dark"] .employee-center-search input{color:#eef6fb}html[data-theme="dark"] .employee-center-sort{color:#aec2cf}html[data-theme="dark"] .employee-center-sort select{background:#173246;color:#eef6fb;border-color:#4e6a7c}html[data-theme="dark"] .employee-summary-card{background:#172f40;border-color:#456173}html[data-theme="dark"] .employee-summary-card strong{color:#edf7fb}html[data-theme="dark"] .employee-summary-card span{color:#a9bdc9}html[data-theme="dark"] .employee-summary-card.active{background:#183a2b;border-color:#406c50}html[data-theme="dark"] .employee-summary-card.active strong{color:#9fe1b1}html[data-theme="dark"] .employee-summary-card.inactive{background:#26333c;border-color:#4c5d69}html[data-theme="dark"] .employee-summary-card.inactive strong{color:#c0cbd2}html[data-theme="dark"] .employee-summary-card.warning{background:#41331a;border-color:#725d31}html[data-theme="dark"] .employee-summary-card.warning strong{color:#ffd47a}html[data-theme="dark"] .employee-center-scroll{border-color:#405b6d}html[data-theme="dark"] .employee-r-number{color:#9fd2ef}html[data-theme="dark"] .employee-status-pill.active{background:#204d33;color:#a9ebba;border-color:#46755a}html[data-theme="dark"] .employee-status-pill.inactive{background:#33414a;color:#c3ced4;border-color:#566873}html[data-theme="dark"] .employee-profile-grid>div{background:#173044;border-color:#466274}html[data-theme="dark"] .employee-profile-grid span{color:#abc0cd}html[data-theme="dark"] .employee-profile-grid strong{color:#eef7fb}html[data-theme="dark"] .employee-profile-aliases{background:#183143;border-color:#456173}html[data-theme="dark"] .employee-profile-aliases span,html[data-theme="dark"] .employee-history-row span{color:#a9bdc9}html[data-theme="dark"] .employee-history-row{border-color:#3e586a}
@media(max-width:900px){.employee-center-body{min-height:0}.employee-center-toolbar{grid-template-columns:1fr}.employee-center-sort{justify-content:space-between}.employee-center-sort select{min-width:0;flex:1}.employee-center-summary{grid-template-columns:repeat(2,1fr)}.employee-profile-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.employee-center-summary{grid-template-columns:1fr 1fr}.employee-summary-card{padding:8px}.employee-profile-grid{grid-template-columns:1fr}.employee-history-row{align-items:flex-start;flex-direction:column}.employee-history-row .btn{width:100%}}

/* v0.8.1 — Employee Center F2: Status Analytics */
.employee-center-tabs{display:flex;gap:6px;align-items:center;border-bottom:1px solid #d9e4eb;padding-bottom:8px}
.employee-center-tabs .btn{min-width:150px}.employee-center-tabs .btn.active{background:#174f7d;color:#fff;border-color:#174f7d}
.employee-center-view{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}
.employee-status-toolbar{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:8px;align-items:end}
.employee-status-toolbar label{display:flex;flex-direction:column;gap:4px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:#6b8190}
.employee-status-toolbar select{height:38px;min-width:0}
.employee-status-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}
.employee-status-summary .employee-summary-card{position:relative}.employee-summary-card.status-accent{padding-left:30px}.employee-summary-card.status-accent>.employee-status-dot{position:absolute;left:10px;top:50%;transform:translateY(-50%)}
.employee-status-scroll{flex:1;min-height:310px;max-height:58vh;border:1px solid #dbe4ea;border-radius:9px}
.employee-status-table{min-width:720px}.employee-status-table thead th{position:sticky;top:0;z-index:2}.employee-status-table td{vertical-align:middle}.employee-status-table th:first-child,.employee-status-table td:first-child{width:44px;text-align:center}.employee-rank-number{font-weight:900;color:#718592}.employee-status-number{text-align:center;font-size:13px;font-weight:900;color:#183f59}
.employee-status-dot{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--status-color,#8b99a5);border:1px solid color-mix(in srgb,var(--status-color,#8b99a5) 70%,#000 30%);vertical-align:-1px;margin-right:6px;flex:0 0 auto}
.employee-center-person strong>.employee-status-dot{margin-right:7px}
.employee-profile-status-section{margin-top:14px}.employee-profile-status-section h4,.employee-status-history h4{margin:0 0 8px;font-size:12px}
.employee-profile-status-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.employee-profile-status-card{border:1px solid #dbe5eb;border-radius:9px;background:#f7fafc;padding:9px 10px;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:2px;align-items:start}
.employee-profile-status-card>.employee-status-dot{grid-row:1 / span 2;margin-top:4px}.employee-profile-status-card>div{display:flex;flex-direction:column;gap:2px;min-width:0}.employee-profile-status-card strong{font-size:11px;color:#173d56}.employee-profile-status-card span{font-size:10px;font-weight:800;color:#536e80}.employee-profile-status-card small{grid-column:2;font-size:8px;color:#82939f;margin-top:3px}
.employee-status-history{margin-top:14px}.employee-status-episode-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e3eaf0;padding:8px 0}.employee-status-episode-main{display:flex;flex-direction:column;gap:2px;min-width:0}.employee-status-episode-main>span{font-size:10px;color:#496577}.employee-status-episode-main>small{font-size:9px;color:#758896}.employee-status-key{display:flex!important;align-items:center;color:#183f59!important}.employee-status-key strong{font-size:11px}
html[data-theme="dark"] .employee-center-tabs{border-color:#3f596a}html[data-theme="dark"] .employee-center-tabs .btn.active{background:#2274a9;border-color:#438db9;color:#fff}
html[data-theme="dark"] .employee-status-toolbar label{color:#aec2cf}html[data-theme="dark"] .employee-status-toolbar select{background:#173246;color:#eef6fb;border-color:#4e6a7c}
html[data-theme="dark"] .employee-status-scroll{border-color:#405b6d}html[data-theme="dark"] .employee-status-number{color:#eef7fb}html[data-theme="dark"] .employee-rank-number{color:#a7bac6}
html[data-theme="dark"] .employee-profile-status-card{background:#173044;border-color:#466274}html[data-theme="dark"] .employee-profile-status-card strong,html[data-theme="dark"] .employee-status-key{color:#eef7fb!important}html[data-theme="dark"] .employee-profile-status-card span{color:#bed0db}html[data-theme="dark"] .employee-profile-status-card small,html[data-theme="dark"] .employee-status-episode-main>small{color:#a4b9c6}html[data-theme="dark"] .employee-status-episode-row{border-color:#3e586a}html[data-theme="dark"] .employee-status-episode-main>span{color:#c4d5df}
@media(max-width:900px){.employee-status-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-profile-status-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.employee-center-tabs{overflow-x:auto}.employee-center-tabs .btn{min-width:max-content}.employee-status-toolbar{grid-template-columns:1fr}.employee-status-summary{grid-template-columns:1fr 1fr}.employee-profile-status-cards{grid-template-columns:1fr}.employee-status-episode-row{align-items:flex-start;flex-direction:column}.employee-status-episode-row .btn{width:100%}}
.employee-center-view[hidden]{display:none!important}
/* v0.8.2 — F3 Employee Profile / lifecycle */
.modal.employee-profile-modal{width:min(820px,95vw)}
.employee-profile-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;min-height:26px}
.employee-profile-topline .employee-profile-status{margin:0;justify-content:flex-start}
.employee-status-stack{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.employee-lifecycle-mini{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#e7eef4;color:#526b7d;border:1px solid #cbd8e1;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.employee-exclude-mini{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;background:#fff2d9;color:#9d6200;border:1px solid #e8c77f;font-size:13px;font-weight:900}
.employee-exclude-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#fff4df;color:#8f5a00;border:1px solid #e8ca8b;font-size:9px;font-weight:900}
.employee-profile-compact>h4,.employee-profile-lifecycle>h4{margin:0 0 8px;font-size:12px}
.employee-profile-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.employee-profile-grid>div{padding:7px 8px;min-height:50px}
.employee-profile-grid span{font-size:8px}.employee-profile-grid strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.employee-profile-aliases{margin-top:7px;padding:7px 8px}
.employee-profile-lifecycle{margin-top:12px;border:1px solid #d9e4eb;background:#fbfcfd;border-radius:10px;padding:10px}
.employee-lifecycle-controls{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(260px,1.15fr);gap:8px;align-items:stretch}
.employee-lifecycle-controls>label:first-child{display:flex;flex-direction:column;gap:4px;font-size:9px;font-weight:900;text-transform:uppercase;color:#6d8190}
.employee-lifecycle-controls select{height:38px;min-width:0}
.employee-lifecycle-toggle{display:flex;align-items:flex-start;gap:8px;border:1px solid #dbe4ea;border-radius:8px;background:#fff;padding:7px 9px;cursor:pointer}
.employee-lifecycle-toggle input{margin-top:2px}.employee-lifecycle-toggle>span{display:flex;flex-direction:column;gap:2px}.employee-lifecycle-toggle strong{font-size:10px;color:#263f51}.employee-lifecycle-toggle small{font-size:8px;line-height:1.3;color:#718493;font-weight:600}
.employee-lifecycle-note{margin:7px 0 0}
.employee-note-field{display:flex;flex-direction:column;gap:4px;margin-top:8px}.employee-note-field>span{font-size:9px;font-weight:900;text-transform:uppercase;color:#6d8190}.employee-note-field textarea{width:100%;resize:vertical;min-height:54px;max-height:150px;border:1px solid #c9d7e1;border-radius:8px;padding:8px 9px;font:inherit;font-size:10px;color:#173a52;background:#fff;box-sizing:border-box}
.employee-profile-status-section{margin-top:12px}.employee-profile-status-cards{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:6px}.employee-profile-status-card{padding:7px 8px;min-height:48px}.employee-profile-status-card strong{font-size:10px}.employee-profile-status-card span{font-size:9px}.employee-profile-status-card small{font-size:8px}
.employee-profile-fold{margin-top:12px;border:1px solid #dbe4ea;border-radius:9px;background:#fff;overflow:hidden}
.employee-profile-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;background:#f4f8fa;font-size:11px;font-weight:900;color:#29485c;user-select:none}
.employee-profile-fold>summary::-webkit-details-marker{display:none}.employee-profile-fold>summary:before{content:'▸';font-size:11px;color:#6f8594;margin-right:2px}.employee-profile-fold[open]>summary:before{content:'▾'}
.employee-profile-fold>summary>span{display:flex;align-items:center;gap:6px;flex:1}.employee-profile-fold>summary>strong{font-size:9px;min-width:28px;text-align:center;padding:3px 6px;border-radius:999px;background:#dce9f1;color:#42657a}
.employee-profile-fold-body{padding:0 10px 9px}.employee-history-years{display:flex;flex-direction:column;gap:9px;padding-top:8px}
.employee-history-year-group{border:1px solid #e2e9ee;border-radius:8px;overflow:hidden;background:#fbfcfd}.employee-history-year-head{display:flex;align-items:center;justify-content:space-between;padding:6px 9px;background:#f5f8fa;border-bottom:1px solid #e4eaef}.employee-history-year-head strong{font-size:11px;color:#23465e}.employee-history-year-head span{font-size:8px;color:#788b98;font-weight:900;text-transform:uppercase}
.employee-history-year-group .employee-history-row{padding:6px 8px;margin:0;border-top:1px solid #edf1f4}.employee-history-year-group [data-history-year-list]>.employee-history-row:first-child{border-top:0}.employee-history-year-group .employee-history-row strong{font-size:10px}.employee-history-year-group .employee-history-row span{font-size:8px}.employee-history-year-group .employee-history-row .btn,.employee-status-history .employee-status-episode-row .btn{padding:5px 8px;font-size:9px}
.employee-history-more{display:block;margin:7px auto 0;padding:5px 12px;font-size:9px}.employee-history-year-group>.employee-history-more{margin:5px auto 7px}
.employee-status-history .employee-profile-fold-body{padding-top:1px}.employee-status-history .employee-status-episode-row{padding:7px 1px}.employee-status-history .employee-status-episode-row:first-child{border-top:0}
html[data-theme="dark"] .employee-lifecycle-mini{background:#283d4b;color:#c5d4dc;border-color:#4d6573}html[data-theme="dark"] .employee-exclude-mini,html[data-theme="dark"] .employee-exclude-badge{background:#463719;color:#ffd88a;border-color:#755c2a}
html[data-theme="dark"] .employee-profile-lifecycle{background:#152c3c;border-color:#456173}html[data-theme="dark"] .employee-lifecycle-controls>label:first-child,html[data-theme="dark"] .employee-note-field>span{color:#abc0cd}html[data-theme="dark"] .employee-lifecycle-controls select,html[data-theme="dark"] .employee-note-field textarea{background:#173246;color:#eef6fb;border-color:#4e6a7c}html[data-theme="dark"] .employee-lifecycle-toggle{background:#183244;border-color:#456173}html[data-theme="dark"] .employee-lifecycle-toggle strong{color:#eff7fb}html[data-theme="dark"] .employee-lifecycle-toggle small{color:#a8bdca}
html[data-theme="dark"] .employee-profile-fold{background:#162f41;border-color:#456173}html[data-theme="dark"] .employee-profile-fold>summary{background:#1c3a4e;color:#edf7fb}html[data-theme="dark"] .employee-profile-fold>summary>strong{background:#2b536b;color:#dceef7}html[data-theme="dark"] .employee-history-year-group{background:#173044;border-color:#3f5a6c}html[data-theme="dark"] .employee-history-year-head{background:#1c394d;border-color:#3d596a}html[data-theme="dark"] .employee-history-year-head strong{color:#eef7fb}html[data-theme="dark"] .employee-history-year-head span{color:#a9bdc9}html[data-theme="dark"] .employee-history-year-group .employee-history-row{border-color:#304b5e}
@media(max-width:900px){.employee-profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.employee-lifecycle-controls{grid-template-columns:1fr}}
@media(max-width:560px){.employee-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-profile-topline{align-items:flex-start;flex-direction:column}.employee-history-year-group .employee-history-row{align-items:flex-start}.employee-profile-fold-body{padding-left:7px;padding-right:7px}}


/* v0.8.4 — Employee Center F4: workflow / quick actions */
.employee-center-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}.employee-center-actions .employee-profile-open{min-width:64px}.employee-action-more{width:34px;min-width:34px;padding-left:0!important;padding-right:0!important;font-size:17px;line-height:1}
.employee-profile-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 6px}.employee-profile-actions .btn{min-height:32px}.employee-profile-action-meta{margin-left:auto;display:inline-flex;align-items:center;min-height:28px;padding:4px 8px;border-radius:999px;background:#eef4f8;border:1px solid #d4e0e7;color:#4e697a;font-size:9px;font-weight:900}.employee-profile-action-meta.muted{background:#f5f6f7;color:#7b8992}.employee-profile-move-hint{margin:0 0 10px;padding:6px 8px;font-size:9px}
html[data-theme="dark"] .employee-profile-action-meta{background:#1c3a4e;border-color:#456173;color:#c6d9e4}html[data-theme="dark"] .employee-profile-action-meta.muted{background:#263843;color:#9fb2bd}
@media(max-width:560px){.employee-center-actions{gap:4px}.employee-profile-actions{align-items:stretch}.employee-profile-actions .btn{flex:1 1 auto}.employee-profile-action-meta{width:100%;margin-left:0;justify-content:center;box-sizing:border-box}}

/* v0.8.6 — inline R-number editing in Employee Profile */
.employee-profile-resource-view{display:flex;align-items:center;gap:5px;min-width:0}.employee-profile-resource-view strong{min-width:0;flex:1}.employee-resource-edit-btn,.employee-resource-icon-btn{border:1px solid #c8d7e0;background:#fff;color:#42667c;border-radius:6px;min-width:24px;height:24px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:900;line-height:1}.employee-resource-edit-btn:hover,.employee-resource-icon-btn:hover{background:#edf5fa;border-color:#9fbdce}.employee-profile-resource-editor{display:flex;align-items:center;gap:4px;margin-top:2px;min-width:0}.employee-profile-resource-editor input{width:100%;min-width:0;height:28px;box-sizing:border-box;border:1px solid #a9becb;border-radius:6px;padding:4px 6px;font-size:11px;font-weight:800;text-transform:uppercase}.employee-profile-resource-editor-actions{display:flex;gap:3px;flex:0 0 auto}.employee-resource-icon-btn.save{color:#18743a}.employee-profile-resource-card:has(.employee-profile-resource-editor:not([hidden])){grid-column:span 2}.employee-profile-resource-editor[hidden],.employee-profile-resource-view[hidden]{display:none!important}html[data-theme="dark"] .employee-resource-edit-btn,html[data-theme="dark"] .employee-resource-icon-btn{background:#203747;color:#dcebf4;border-color:#536f81}html[data-theme="dark"] .employee-resource-edit-btn:hover,html[data-theme="dark"] .employee-resource-icon-btn:hover{background:#2b4659;border-color:#6f8c9e}html[data-theme="dark"] .employee-resource-icon-btn.save{color:#a7e4b7}
@media(max-width:560px){.employee-profile-resource-card:has(.employee-profile-resource-editor:not([hidden])){grid-column:1/-1}}


/* v0.8.7 — Employee Center F4 polish: summary cards as quick filters */
.employee-summary-filter{appearance:none;width:100%;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.employee-summary-filter:hover{border-color:#9db5c5;box-shadow:0 2px 7px rgba(32,68,91,.10);transform:translateY(-1px)}.employee-summary-filter:focus-visible{outline:2px solid #477b9b;outline-offset:2px}.employee-summary-filter.selected{box-shadow:0 0 0 2px rgba(46,105,140,.20);border-color:#7fa5bb}.employee-summary-filter.active.selected{border-color:#68a67a;box-shadow:0 0 0 2px rgba(55,132,78,.18)}.employee-summary-filter.inactive.selected{border-color:#919aa2;box-shadow:0 0 0 2px rgba(103,113,122,.16)}.employee-summary-filter.warning.selected{border-color:#d3a34c;box-shadow:0 0 0 2px rgba(185,124,15,.17)}
html[data-theme="dark"] .employee-summary-filter:hover{border-color:#66879a;box-shadow:0 2px 8px rgba(0,0,0,.22)}html[data-theme="dark"] .employee-summary-filter:focus-visible{outline-color:#8fc5e4}html[data-theme="dark"] .employee-summary-filter.selected{border-color:#6d97ad;box-shadow:0 0 0 2px rgba(125,183,215,.18)}html[data-theme="dark"] .employee-summary-filter.active.selected{border-color:#5e9b70}html[data-theme="dark"] .employee-summary-filter.inactive.selected{border-color:#73818a}html[data-theme="dark"] .employee-summary-filter.warning.selected{border-color:#9d7b3d}


/* v0.8.9 — G2 History UI */
.history-modal{width:min(1180px,96vw)}
.history-toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px;padding:10px 14px;border-bottom:1px solid #dce5ec;background:#f7fafc;align-items:end}
.history-toolbar[hidden]{display:none!important}
.history-toolbar label{display:flex;flex-direction:column;gap:4px;min-width:0}
.history-toolbar label>span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#6b7f8e}
.history-toolbar select,.history-toolbar input{width:100%;min-width:0;padding:7px 8px;border:1px solid #cbd8e2;border-radius:6px;background:#fff;color:#243746;font-size:11px}
.history-clear-filters{height:32px;white-space:nowrap}
.history-body{background:#f6f9fb;padding:12px 14px}
.history-started-note,.history-trimmed-note{font-size:10px;line-height:1.45;border-radius:7px;padding:7px 9px;margin-bottom:8px}
.history-started-note{background:#edf5fb;border:1px solid #d3e4f0;color:#526e82}
.history-trimmed-note{background:#fff7e8;border:1px solid #ecd4a1;color:#8b6113}
.history-batch-list,.history-cell-list{display:flex;flex-direction:column;gap:9px}
.history-batch{border:1px solid #d6e1e9;border-radius:10px;background:#fff;overflow:hidden}
.history-batch-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;border-bottom:1px solid #e4ebf0;background:#fafcfd}
.history-op-icon{width:28px;height:28px;border-radius:7px;background:#e7f1f8;color:#174f7d;display:grid;place-items:center;font-weight:950;font-size:13px}
.history-batch-title{min-width:0;display:flex;flex-direction:column;gap:2px}
.history-batch-title strong{font-size:11px;color:#283f50}
.history-batch-title span{font-size:9px;color:#8494a0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.history-batch-count{font-size:9px;font-weight:900;color:#667c8c;background:#eef3f6;border-radius:999px;padding:4px 7px;white-space:nowrap}
.history-batch-changes{display:flex;flex-direction:column}
.history-change-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid #edf1f4}
.history-change-row:last-child{border-bottom:0}
.history-change-row.compact{padding:8px 9px;border:0}
.history-change-main{min-width:0}
.history-change-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.history-change-meta strong{font-size:11px;color:#2e4657;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.history-change-meta>span:not(.history-field-chip){font-size:9px;color:#7e909e}
.history-field-chip,.history-week-chip{font-size:9px;font-weight:850;border-radius:999px;padding:2px 6px}.history-field-chip{color:#365f78;background:#eaf3f8}.history-week-chip{color:#5e567d;background:#f1eef9}
.history-value-change{display:flex;align-items:center;gap:6px;margin-top:5px;min-width:0;font-size:11px}
.history-old,.history-new{padding:3px 6px;border-radius:5px;max-width:min(360px,38vw);white-space:pre-wrap;overflow-wrap:anywhere}
.history-old{background:#f0f3f5;color:#687b89;text-decoration:line-through;text-decoration-color:#9daab3}
.history-new{background:#eef8f0;color:#246b37;font-weight:800}
.history-arrow{color:#91a1ad;font-weight:900}
.history-go{padding:6px 8px;font-size:10px;white-space:nowrap}
.history-more-batch,.history-more-operations{margin:8px 10px 10px}
.history-more-operations{margin-left:0}
.history-cell-entry{border:1px solid #d6e1e9;border-radius:9px;background:#fff;overflow:hidden}
.history-cell-entry-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;background:#fafcfd;border-bottom:1px solid #e7edf1}
.history-cell-entry-head span{font-size:10px;font-weight:900;color:#36566d}.history-cell-entry-head time{font-size:9px;color:#82929e}
.history-empty{min-height:190px;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;color:#456579;padding:20px}
.history-empty strong{font-size:16px}.history-empty span{max-width:560px;font-size:11px;color:#728691;line-height:1.5}
@media(max-width:900px){.history-toolbar{grid-template-columns:1fr 1fr}.history-clear-filters{width:100%}.history-change-meta strong{max-width:180px}}
@media(max-width:560px){.history-toolbar{grid-template-columns:1fr}.history-batch-head{grid-template-columns:28px minmax(0,1fr)}.history-batch-count{grid-column:2;justify-self:start}.history-change-row{grid-template-columns:1fr}.history-go{justify-self:start}.history-old,.history-new{max-width:100%}}
html[data-theme="dark"] .history-toolbar{background:#173042;border-color:#40596a}
html[data-theme="dark"] .history-toolbar label>span{color:#9eb3c0}
html[data-theme="dark"] .history-toolbar select,html[data-theme="dark"] .history-toolbar input{background:#1b3546;border-color:#496274;color:#e8f1f6}
html[data-theme="dark"] .history-body{background:#10202c}
html[data-theme="dark"] .history-started-note{background:#18384d;border-color:#355d74;color:#c2d7e4}
html[data-theme="dark"] .history-trimmed-note{background:#3b321e;border-color:#7b6537;color:#f3d99d}
html[data-theme="dark"] .history-batch,html[data-theme="dark"] .history-cell-entry{background:#183244;border-color:#496274}
html[data-theme="dark"] .history-batch-head,html[data-theme="dark"] .history-cell-entry-head{background:#1b394b;border-color:#40596a}
html[data-theme="dark"] .history-op-icon{background:#214a63;color:#bfe2f6}
html[data-theme="dark"] .history-batch-title strong,html[data-theme="dark"] .history-change-meta strong{color:#edf5fa}
html[data-theme="dark"] .history-batch-title span,html[data-theme="dark"] .history-change-meta>span:not(.history-field-chip),html[data-theme="dark"] .history-cell-entry-head time{color:#a3b6c2}
html[data-theme="dark"] .history-batch-count{background:#284659;color:#d3e3ec}
html[data-theme="dark"] .history-change-row{border-color:#2b4658}
html[data-theme="dark"] .history-field-chip{background:#234b62;color:#cce8f6}html[data-theme="dark"] .history-week-chip{background:#3d3856;color:#ddd6fa}
html[data-theme="dark"] .history-old{background:#273946;color:#aebcc5}.history-new{}
html[data-theme="dark"] .history-new{background:#1d4930;color:#c8f1d4}
html[data-theme="dark"] .history-empty{color:#d9e8f0}html[data-theme="dark"] .history-empty span{color:#9fb2be}

/* v0.8.12–v0.8.14 — G4 History restore */
.history-batch-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.history-restore-batch,.history-restore-cell,.history-restore-week-point{white-space:nowrap;padding:4px 7px;font-size:9px}
.history-cell-entry-actions{display:flex;align-items:center;gap:7px;justify-content:flex-end}
@media(max-width:560px){.history-batch-actions{grid-column:2;justify-content:flex-start}.history-cell-entry-head{align-items:flex-start}.history-cell-entry-actions{flex-direction:column;align-items:flex-end;gap:4px}}

/* v0.8.16 — H1 native archive */
.archive-body{display:flex;flex-direction:column;gap:12px}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.archive-grid .field{margin:0}.archive-summary{border:1px solid #d8e4eb;border-radius:10px;padding:11px;background:#f8fbfd}.archive-summary>strong{display:block;margin-bottom:8px}.archive-summary-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.archive-summary-cards>div{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid #dce7ed;border-radius:8px;background:#fff}.archive-summary-cards span{font-size:10px;color:#648092;font-weight:700}.archive-summary-cards b{font-size:19px;line-height:1.1}.archive-summary-cards small{font-size:9px;color:#7c909e}.archive-note{margin:0}.archive-note.subtle{opacity:.82}.archive-foot{flex-wrap:wrap}.archive-foot .btn.primary{margin-left:auto}html[data-theme="dark"] .archive-summary{background:#172f40;border-color:#405d70}html[data-theme="dark"] .archive-summary-cards>div{background:#20394a;border-color:#496678}html[data-theme="dark"] .archive-summary-cards span,html[data-theme="dark"] .archive-summary-cards small{color:#a9becb}@media(max-width:760px){.archive-grid,.archive-summary-cards{grid-template-columns:1fr}.archive-foot .btn.primary{margin-left:0}}

/* v0.8.24 — I1 Mobile UX 2.0: day-by-day phone view */
.mobile-daybar{display:none;flex:0 0 auto;align-items:center;gap:5px;padding:6px 7px;background:#edf5fa;border-bottom:1px solid #bccdd9;box-shadow:0 1px 4px rgba(15,23,42,.08);z-index:24}
.mobile-daybar.show{display:none}
.mobile-day-tabs{display:flex;align-items:stretch;gap:4px;min-width:0;flex:1;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.mobile-day-tabs::-webkit-scrollbar{display:none}
.mobile-day-tab,.mobile-day-arrow{border:1px solid #b8cbd8;background:#fff;color:#244760;border-radius:8px;cursor:pointer;min-height:38px}
.mobile-day-tab{flex:1 0 48px;min-width:48px;padding:4px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-weight:850;line-height:1.05}
.mobile-day-tab span{font-size:12px;text-transform:capitalize}
.mobile-day-tab small{font-size:9px;color:#6a8191;font-weight:750;white-space:nowrap}
.mobile-day-tab.active{background:#dff3ff;border-color:#4a9ac9;color:#0b5f91;box-shadow:inset 0 0 0 1px #79b9dd}
.mobile-day-tab.active small{color:#356f91}
.mobile-day-tab:disabled{opacity:.34;cursor:not-allowed}
.mobile-day-arrow{flex:0 0 38px;width:38px;padding:0;font-size:23px;font-weight:850}
.mobile-day-arrow:disabled{opacity:.32;cursor:not-allowed}
html[data-theme="dark"] .mobile-daybar{background:#132b3b;border-color:#405b6d;box-shadow:0 1px 5px rgba(0,0,0,.28)}
html[data-theme="dark"] .mobile-day-tab,html[data-theme="dark"] .mobile-day-arrow{background:#20394a;border-color:#4c697b;color:#dcecf5}
html[data-theme="dark"] .mobile-day-tab small{color:#a8bdc9}
html[data-theme="dark"] .mobile-day-tab.active{background:#174e70;border-color:#56a7d3;color:#fff;box-shadow:inset 0 0 0 1px #4e91b8}
html[data-theme="dark"] .mobile-day-tab.active small{color:#d6edf8}
@media(max-width:700px){
  .mobile-daybar.show{display:flex}
  .app.mobile-day-view .cell-input{min-height:42px;height:42px;font-size:max(var(--cell-font-size,12px),13px);padding-top:4px;padding-bottom:4px}
  .app.mobile-day-view .employee-row td,.app.mobile-day-view .name-wrap{height:42px;min-height:42px}
  .app.mobile-day-view .drag-grip{width:26px;min-width:26px;font-size:17px}
  .app.mobile-day-view .group-row td{height:37px}
  .app.mobile-day-view .group-label-inner{height:36px}
  .app.mobile-day-view .group-mini{width:30px;height:28px}
  .app.mobile-day-view .row-control{min-width:40px;width:40px;max-width:40px}
  .app.mobile-day-view{--row-control-width:40px}
  .app.mobile-day-view .planning-table th,.app.mobile-day-view .planning-table td{touch-action:manipulation}
}
@media(max-width:460px){
  .mobile-daybar{padding-left:5px;padding-right:5px;gap:4px}
  .mobile-day-tabs{gap:3px}
  .mobile-day-tab{flex-basis:44px;min-width:44px;padding-left:3px;padding-right:3px}
  .mobile-day-arrow{flex-basis:34px;width:34px}
}

/* v0.8.25 — I2 Mobile UX polish: stable menus, responsive day view, rotation */
@media(max-width:900px){
  .topbar{padding:7px 8px 6px;row-gap:6px}
  .toolbar{gap:5px;padding:2px 0 1px;scroll-padding-inline:6px}
  .toolbar-group{gap:5px}
  .toolbar .btn{
    min-height:40px;height:40px;padding:0 11px;border-radius:10px;
    border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.10);
    font-size:12px;font-weight:800;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)
  }
  .toolbar .btn:hover,.toolbar .btn:active{background:rgba(255,255,255,.18)}
  .toolbar .btn.primary{background:#0b83c9;border-color:#36a6e1}
  .toolbar-menu-btn{gap:7px;padding-left:13px!important;padding-right:12px!important}
  .toolbar-menu-chev{font-size:11px;opacity:.9}
  .mobile-only-btn.active-toggle{box-shadow:inset 0 0 0 1px rgba(11,95,145,.12)}

  /* Toolbar/year/workspace menus are stable top popovers on mobile.
     Long-press/PPM context menus keep the existing bottom-sheet behavior. */
  .context-menu.anchored-menu{
    top:var(--anchored-menu-top,64px)!important;bottom:auto!important;width:auto!important;max-width:none!important;
    border-radius:12px!important;padding:7px!important;
    box-shadow:0 14px 34px rgba(15,23,42,.24)!important;
    overscroll-behavior:contain
  }
  .context-menu.anchored-menu button{
    min-height:46px;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:750;
    display:flex;align-items:center
  }
  .context-menu.anchored-menu .sep{margin:5px 4px}
  .context-menu.anchored-menu .menu-label{padding:7px 10px 5px;font-size:10px}

  .mobile-daybar.show{display:flex}
  .mobile-daybar{
    min-height:50px;padding:6px 7px;gap:6px;background:#eaf4fa;
    border-bottom-color:#aebfcb;box-shadow:0 2px 7px rgba(15,23,42,.10)
  }
  .mobile-day-tabs{gap:4px;padding:0 1px}
  .mobile-day-tab,.mobile-day-arrow{min-height:40px;border-radius:10px}
  .mobile-day-tab{flex:1 0 50px;min-width:50px;padding:4px 5px}
  .mobile-day-tab span{font-size:12px}
  .mobile-day-tab small{font-size:9px}
  .mobile-day-arrow{
    display:grid;place-items:center;flex:0 0 42px;width:42px;padding:0;
    font-size:27px;line-height:1;background:#fff;border-color:#9fb8c8;
    box-shadow:0 1px 3px rgba(15,23,42,.08)
  }
  .mobile-day-arrow:not(:disabled):active{transform:translateY(1px);background:#e7f4fb}

  .app.mobile-day-view .grid-wrap{background:#eef3f7;scroll-padding-left:40px}
  .app.mobile-day-view .planning-table{min-width:max-content}
  .app.mobile-day-view .planning-table th,.app.mobile-day-view .planning-table td{vertical-align:middle}
  .app.mobile-day-view .cell-input{padding-left:4px;padding-right:4px}
  .app.mobile-day-view .col-resizer{display:none}
  .app.mobile-day-view .zoom-stage{transform-origin:top left}
}

@media(max-width:900px) and (orientation:portrait){
  .app.mobile-day-view{--row-control-width:36px}
  .app.mobile-day-view .row-control{width:36px;min-width:36px;max-width:36px}
  .app.mobile-day-view .mobile-sticky-name,.app.mobile-day-view .mobile-sticky-name-head,
  .app.mobile-day-view .frozen-col,.app.mobile-day-view .frozen-col-head{left:36px!important}
  .app.mobile-day-view .cell-input{min-height:40px;height:40px;font-size:max(var(--cell-font-size,12px),12px)}
  .app.mobile-day-view .employee-row td,.app.mobile-day-view .name-wrap{height:40px;min-height:40px}
}

@media(max-width:900px) and (orientation:landscape){
  .topbar{height:50px;min-height:50px;flex-wrap:nowrap;align-content:center;padding:5px 7px;gap:6px}
  .brand{min-width:32px;flex:0 0 32px}.brand-title,.brand-sub{display:none}.brand-badge{width:30px;height:30px}
  .workspace-control{flex:0 1 190px;min-width:125px;max-width:210px}.workspace-select{height:36px}
  .toolbar{order:0;width:auto;flex:1 1 auto;padding:0;gap:4px}
  .toolbar-group{gap:4px}.toolbar .btn{height:36px;min-height:36px;padding-left:9px;padding-right:9px}
  .weekbar{height:40px;min-height:40px}.week-tabs{padding-top:5px}.week-tab{height:31px}.year-picker{height:31px}.add-week{height:31px}
  .formatbar{height:38px;flex-basis:38px}.format-btn,.zoom-readout,.format-select{height:30px}
  .mobile-daybar{min-height:44px;padding:4px 6px}.mobile-day-tab,.mobile-day-arrow{min-height:35px;height:35px}.mobile-day-arrow{flex-basis:38px;width:38px}
  .mobile-day-tab{flex-basis:54px;min-width:54px}.mobile-day-tab span{font-size:11px}.mobile-day-tab small{font-size:8px}
  .statusbar{height:22px;min-height:22px}
  .app.mobile-day-view{--row-control-width:36px}
  .app.mobile-day-view .row-control{width:36px;min-width:36px;max-width:36px}
  .app.mobile-day-view .mobile-sticky-name,.app.mobile-day-view .mobile-sticky-name-head,
  .app.mobile-day-view .frozen-col,.app.mobile-day-view .frozen-col-head{left:36px!important}
  .app.mobile-day-view .cell-input{min-height:37px;height:37px;font-size:max(var(--cell-font-size,12px),12px)}
  .app.mobile-day-view .employee-row td,.app.mobile-day-view .name-wrap{height:37px;min-height:37px}
}

html[data-theme="dark"] .context-menu.anchored-menu{box-shadow:0 16px 38px rgba(0,0,0,.42)!important}


/* v0.8.26 — I3 Mobile sidebar + touch/keyboard polish */
.mobile-nav-toggle,.mobile-nav-backdrop{display:none}
@media(max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .topbar{height:54px!important;min-height:54px!important;flex-wrap:nowrap!important;align-content:center!important;padding:6px 8px!important;gap:7px!important}
  .brand{flex:0 0 32px!important;min-width:32px!important}.brand-title,.brand-sub{display:none!important}.brand-badge{width:31px;height:31px}
  .workspace-control{flex:1 1 auto!important;min-width:0!important;max-width:none!important}.workspace-select{height:38px!important;min-width:0!important;padding:0 10px!important;display:flex;align-items:center}
  .toolbar{display:none!important}
  .mobile-nav-toggle{display:inline-flex;flex:0 0 auto;height:38px;min-width:72px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.11);color:#fff;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:850;line-height:1;cursor:pointer;position:relative}
  .mobile-nav-toggle:active,.mobile-nav-toggle[aria-expanded="true"]{background:rgba(255,255,255,.22)}
  .mobile-nav-toggle-icon{font-size:19px;line-height:1;transform:translateY(-.5px)}
  .mobile-nav-badge{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#dc2626;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:900;border:2px solid #153d61}

  .mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:1900;background:rgba(7,20,31,.48);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
  .mobile-nav-backdrop.show{opacity:1;visibility:visible;pointer-events:auto}
  .mobile-nav-panel{position:absolute;top:0;right:0;width:min(86vw,360px);height:100dvh;background:#f7fafc;border-left:1px solid #c4d2dc;box-shadow:-16px 0 40px rgba(15,23,42,.28);transform:translateX(102%);transition:transform .2s ease;display:flex;flex-direction:column;overflow:hidden;padding-top:env(safe-area-inset-top)}
  .mobile-nav-backdrop.show .mobile-nav-panel{transform:translateX(0)}
  .mobile-nav-head{height:58px;flex:0 0 58px;padding:8px 10px 8px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#143b5d;color:#fff;border-bottom:1px solid rgba(255,255,255,.14)}
  .mobile-nav-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}.mobile-nav-head strong{font-size:16px}.mobile-nav-head small{font-size:10px;color:#cce3f7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-nav-close{width:38px;height:38px;flex:0 0 38px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:24px;display:grid;place-items:center;padding:0;line-height:1;cursor:pointer}
  .mobile-nav-body{flex:1;min-height:0;overflow:auto;padding:10px 10px calc(14px + env(safe-area-inset-bottom));overscroll-behavior:contain}
  .mobile-nav-section{margin:0 0 12px}.mobile-nav-section-title{padding:0 4px 6px;font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#658096}
  .mobile-nav-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .mobile-nav-item{min-height:46px;border:1px solid #cddae3;border-radius:9px;background:#fff;color:#244760;padding:6px 9px;display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:7px;text-align:left;cursor:pointer;line-height:1.15;box-shadow:0 1px 2px rgba(15,23,42,.035)}
  .mobile-nav-item:active{background:#e8f3fa}.mobile-nav-item.active{background:#dff3ff;border-color:#6cadd2;color:#0b5f91}.mobile-nav-item:disabled{opacity:.38;cursor:not-allowed}
  .mobile-nav-item-icon{width:27px;height:27px;border-radius:7px;background:#eaf2f7;display:grid;place-items:center;font-weight:900;font-size:14px;line-height:1}.mobile-nav-item.active .mobile-nav-item-icon{background:#c7e9fb}
  .mobile-nav-item-label{font-size:11px;font-weight:820;min-width:0;white-space:normal}.mobile-nav-item-badge{min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#e8eef3;color:#38596d;display:grid;place-items:center;font-size:9px;font-weight:900}.mobile-nav-item.active .mobile-nav-item-badge{background:#fff;color:#0b5f91}

  /* Keep smart choices compact on a phone; context menus stay larger for touch. */
  .smart-dropdown{left:10px!important;right:10px!important;bottom:10px!important;top:auto!important;width:auto!important;max-height:min(44dvh,330px)!important;border-radius:12px!important;padding:6px!important}
  .smart-option{min-height:36px!important;padding:6px 8px!important;font-size:12px!important;gap:7px!important}.smart-option small{font-size:8px}.smart-section-label{padding:4px 7px;font-size:8px}

  .grid-wrap{width:100%;min-width:0}.zoom-stage{max-width:none}
  .app.mobile-landscape .grid-wrap{background:#f8fafc}.app.mobile-landscape .zoom-stage{min-width:100%}
}
@media(max-width:900px) and (orientation:landscape){
  .topbar{height:46px!important;min-height:46px!important;padding:4px 7px!important}.brand-badge{width:29px;height:29px}.workspace-select,.mobile-nav-toggle{height:34px!important}.mobile-nav-toggle{min-width:64px;padding:0 8px}
  .mobile-nav-panel{width:min(58vw,390px)}
  .weekbar{height:38px!important;min-height:38px!important}.formatbar{height:36px!important;flex-basis:36px!important}.format-btn,.zoom-readout,.format-select{height:28px!important}
  .statusbar{height:20px!important;min-height:20px!important}
}
html[data-theme="dark"] .mobile-nav-panel{background:#142431;border-color:#405666}html[data-theme="dark"] .mobile-nav-item{background:#1d3444;border-color:#486173;color:#e2eef5}html[data-theme="dark"] .mobile-nav-item-icon{background:#29475a}html[data-theme="dark"] .mobile-nav-section-title{color:#9db3c1}html[data-theme="dark"] .mobile-nav-item.active{background:#174e70;border-color:#57a5cf;color:#fff}html[data-theme="dark"] .mobile-nav-item.active .mobile-nav-item-icon{background:#23688f}

/* v0.8.27 — I4 Mobile chrome: week/format drawers, compact context menu, landscape phone mode */
.mobile-top-actions,.mobile-quick-toggle{display:none}
@media(max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .mobile-top-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}
  .mobile-quick-toggle{display:inline-flex;align-items:center;justify-content:center;height:38px;min-width:43px;padding:0 8px;border:1px solid rgba(255,255,255,.26);border-radius:9px;background:rgba(255,255,255,.1);color:#fff;font-size:12px;font-weight:900;line-height:1;cursor:pointer}
  .mobile-quick-toggle:active,.mobile-quick-toggle[aria-expanded="true"]{background:rgba(255,255,255,.23)}
  .mobile-format-toggle{min-width:38px;font-family:Georgia,serif;font-size:14px}
  .mobile-nav-toggle{min-width:64px!important;padding-left:8px!important;padding-right:8px!important}

  /* Weeks + formatting live in drawers now; keep the planner canvas clean. */
  .weekbar,.formatbar{display:none!important}

  .mobile-week-years{display:flex;gap:6px;overflow-x:auto;padding:1px 1px 5px;scrollbar-width:none}.mobile-week-years::-webkit-scrollbar{display:none}
  .mobile-week-year{flex:0 0 auto;min-width:64px;height:36px;border:1px solid #cbd8e2;border-radius:9px;background:#fff;color:#38586d;font-weight:850;cursor:pointer}.mobile-week-year.active{background:#dff3ff;border-color:#6aaed3;color:#0b5f91}
  .mobile-week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .mobile-week-card{min-height:58px;border:1px solid #cbd8e2;border-radius:10px;background:#fff;color:#244760;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}.mobile-week-card strong{font-size:14px}.mobile-week-card small{font-size:8px;color:#738795}.mobile-week-card.active{background:#dff3ff;border-color:#58a7d2;box-shadow:inset 0 0 0 1px #58a7d2;color:#0b5f91}.mobile-week-card.active small{color:#397898}
  .mobile-nav-single{margin-top:5px}.mobile-nav-single .mobile-nav-item{width:100%}
  .mobile-format-row{display:flex;gap:7px}.mobile-format-select{width:100%;height:42px;border:1px solid #cbd8e2;border-radius:9px;background:#fff;color:#244760;padding:0 10px;font-weight:850}
  .mobile-zoom-row{display:grid;grid-template-columns:42px 1fr 42px minmax(84px,1.2fr);gap:6px;align-items:center}.mobile-zoom-row button,.mobile-zoom-row strong{height:40px;border:1px solid #cbd8e2;border-radius:9px;background:#fff;color:#244760;display:grid;place-items:center;font-weight:900}.mobile-zoom-row button{cursor:pointer}.mobile-zoom-row strong{background:#edf4f8}

  /* Long-press context actions stay visible without becoming a full-screen sheet. */
  .context-menu:not(.anchored-menu){left:auto!important;right:6px!important;top:auto!important;bottom:7px!important;width:min(82vw,318px)!important;max-width:318px!important;max-height:min(72dvh,560px)!important;border-radius:13px!important;padding:6px!important;box-shadow:-12px 8px 30px rgba(15,23,42,.24)!important}
  .context-menu:not(.anchored-menu) button{min-height:35px!important;padding:7px 9px!important;font-size:11px!important;line-height:1.18!important}
  .context-menu:not(.anchored-menu) .menu-label{position:sticky;top:-6px;z-index:2;margin:-2px -2px 4px;padding:7px 8px!important;background:#f3f7fa;border-radius:7px;font-size:8px!important}
  .context-menu:not(.anchored-menu) .sep{margin:3px 2px!important}

  /* Department + its suggested times share one compact row. */
  .smart-department-row{grid-template-columns:minmax(82px,1fr) auto!important;align-items:center!important;gap:5px!important;padding:2px!important}
  .smart-department-row .smart-option-main{min-height:34px!important;padding:5px 6px!important}
  .smart-department-row .smart-option-label{font-size:11px!important}
  .smart-time-chips{display:flex!important;width:auto!important;justify-content:flex-end!important;align-items:center!important;gap:4px!important;padding:0!important}
  .smart-option.smart-time-chip{width:auto!important;min-width:49px!important;min-height:31px!important;padding:6px 7px!important;font-size:10px!important}
  .smart-dropdown{max-height:min(42dvh,292px)!important}
}

/* Some real phones exceed 900 CSS px after rotation. Keep mobile UX based on short landscape viewport too. */
@media (orientation:landscape) and (max-height:600px) and (max-width:1200px){
  body{overflow:hidden}.app{min-width:0!important;width:100%!important;height:100dvh!important}
  .topbar{height:46px!important;min-height:46px!important;flex-wrap:nowrap!important;align-content:center!important;padding:4px 7px!important;gap:6px!important}
  .brand{flex:0 0 30px!important;min-width:30px!important}.brand-title,.brand-sub{display:none!important}.brand-badge{width:29px!important;height:29px!important}
  .workspace-control{flex:1 1 auto!important;min-width:0!important;max-width:none!important;padding:0!important}.workspace-control .small-label{display:none!important}.workspace-select{height:34px!important;min-width:0!important;width:100%!important;padding:0 8px!important}
  .toolbar,.weekbar,.formatbar,.save-state,.topbar>.spacer{display:none!important}
  .mobile-top-actions{display:flex!important;align-items:center;gap:4px;flex:0 0 auto}.mobile-quick-toggle{display:inline-flex!important;height:34px!important;min-width:40px!important;padding:0 7px!important;border:1px solid rgba(255,255,255,.26);border-radius:8px;background:rgba(255,255,255,.1);color:#fff;align-items:center;justify-content:center;font-weight:900}.mobile-format-toggle{min-width:35px!important}.mobile-nav-toggle{display:inline-flex!important;height:34px!important;min-width:60px!important;padding:0 7px!important}
  .mobile-nav-backdrop{display:block!important}.mobile-nav-panel{width:min(58vw,390px)!important}
  .mobile-daybar.show{display:flex!important}.mobile-daybar{min-height:39px!important;padding:3px 5px!important}.mobile-day-tab,.mobile-day-arrow{min-height:32px!important;height:32px!important}.mobile-day-tab{flex-basis:49px!important;min-width:49px!important}.mobile-day-tab span{font-size:10px!important}.mobile-day-tab small{font-size:8px!important}.mobile-day-arrow{flex-basis:36px!important;width:36px!important}
  .grid-wrap{width:100%!important;min-width:0!important;background:#f8fafc!important}.zoom-stage{min-width:100%!important;max-width:none!important}.planning-table{touch-action:pan-x pan-y}
  .statusbar{height:20px!important;min-height:20px!important;overflow:hidden!important}.statusbar>span:not(:first-child){display:none!important}
  .mobile-sticky-name,.mobile-sticky-name-head{left:36px!important}.row-control{width:36px!important;min-width:36px!important;max-width:36px!important}

  .context-menu:not(.anchored-menu){left:auto!important;right:5px!important;top:auto!important;bottom:5px!important;width:min(44vw,310px)!important;max-width:310px!important;max-height:78dvh!important}
  .context-menu:not(.anchored-menu) button{min-height:31px!important;padding:5px 8px!important;font-size:10px!important}
  .smart-dropdown{left:auto!important;right:6px!important;bottom:6px!important;top:51px!important;width:min(52vw,380px)!important;max-height:calc(100dvh - 58px)!important}
  .smart-department-row{grid-template-columns:minmax(90px,1fr) auto!important}.smart-time-chips{display:flex!important;width:auto!important;padding:0!important}
}

@media(max-width:365px){
  .brand{display:none!important}.mobile-top-actions{gap:3px}.mobile-quick-toggle{min-width:39px;padding:0 6px}.mobile-nav-toggle{min-width:58px!important}.workspace-control{min-width:0!important}
  .mobile-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

html[data-theme="dark"] .mobile-week-year,html[data-theme="dark"] .mobile-week-card,html[data-theme="dark"] .mobile-format-select,html[data-theme="dark"] .mobile-zoom-row button{background:#1d3444;border-color:#486173;color:#e2eef5}
html[data-theme="dark"] .mobile-week-year.active,html[data-theme="dark"] .mobile-week-card.active{background:#174e70;border-color:#57a5cf;color:#fff}
html[data-theme="dark"] .mobile-week-card small{color:#9db3c1}html[data-theme="dark"] .mobile-zoom-row strong{background:#29475a;border-color:#486173;color:#fff}
html[data-theme="dark"] .context-menu:not(.anchored-menu) .menu-label{background:#203746}

/* v0.8.28 — I5 Mobile stability: week list, safe Fit, fixed overlays */
@media(max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .topbar{position:relative;isolation:isolate}
  .mobile-top-actions{position:relative;z-index:2;touch-action:manipulation}
  .mobile-quick-toggle,.mobile-nav-toggle{touch-action:manipulation;-webkit-tap-highlight-color:transparent}

  /* 52 weeks scale much better as a compact scrollable list than as tiles. */
  .mobile-week-list{display:flex;flex-direction:column;gap:4px}
  .mobile-week-list-item{width:100%;min-height:43px;border:1px solid #cbd8e2;border-radius:8px;background:#fff;color:#244760;padding:5px 9px;display:grid;grid-template-columns:52px minmax(0,1fr) 20px;align-items:center;gap:8px;text-align:left;cursor:pointer;touch-action:manipulation}
  .mobile-week-list-item strong{font-size:13px;line-height:1;font-weight:900;color:#174f7d}
  .mobile-week-list-item span{min-width:0;font-size:9px;color:#718697;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-week-list-item .mobile-week-list-chevron{font-size:20px;line-height:1;text-align:right;color:#8298a8;overflow:visible}
  .mobile-week-list-item.active{background:#dff3ff;border-color:#58a7d2;box-shadow:inset 3px 0 0 #0b83c9}
  .mobile-week-list-item.active strong{color:#0b5f91}.mobile-week-list-item.active span{color:#3d7798}
  .mobile-week-grid{display:none!important}

  /* Smart dropdown is a true fixed overlay. It must never participate in planner flow. */
  .smart-dropdown.mobile-smart-overlay{position:fixed!important;margin:0!important;min-width:0!important;box-sizing:border-box!important;contain:layout paint;overscroll-behavior:contain;z-index:1850!important;box-shadow:0 14px 34px rgba(15,23,42,.28)!important}
  .smart-dropdown.mobile-smart-overlay .smart-department-row{width:100%;min-width:0}
  .smart-dropdown.mobile-smart-overlay .smart-option-main{min-width:0}
  .smart-dropdown.mobile-smart-overlay .smart-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .smart-dropdown.mobile-smart-overlay .smart-time-chips{flex:0 0 auto;white-space:nowrap}

  /* Avoid any old desktop/mobile fit residue stretching the stage after Fit. */
  .app.mobile-day-view .zoom-stage{max-width:none!important;transform:none!important}
}
@media (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .mobile-week-list-item{min-height:38px;padding-top:3px;padding-bottom:3px}
  .mobile-nav-body{padding-top:7px}
  .mobile-nav-section{margin-bottom:8px}
}
html[data-theme="dark"] .mobile-week-list-item{background:#1d3444;border-color:#486173;color:#e2eef5}
html[data-theme="dark"] .mobile-week-list-item strong{color:#cce8f6}
html[data-theme="dark"] .mobile-week-list-item span{color:#9db3c1}
html[data-theme="dark"] .mobile-week-list-item.active{background:#174e70;border-color:#57a5cf;box-shadow:inset 3px 0 0 #5ec2f2}


/* v0.8.29 — I6 landscape drawer + anchored smart overlay regression fixes */
@media(max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  /* A hidden badge must stay hidden even though the badge itself uses display:grid. */
  .mobile-nav-badge[hidden]{display:none!important}
  .mobile-nav-toggle,.mobile-quick-toggle{box-sizing:border-box;white-space:nowrap}
  .mobile-nav-toggle{background:rgba(255,255,255,.11)!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;border-radius:9px!important;font:inherit;font-size:12px!important;font-weight:850!important;line-height:1!important}
  .mobile-nav-toggle-icon{display:inline-block!important;font-size:18px!important;line-height:1!important}
  .mobile-nav-backdrop{position:fixed!important;inset:0!important;z-index:1900!important;background:rgba(7,20,31,.48)!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
  .mobile-nav-backdrop.show{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .mobile-nav-panel{position:absolute!important;top:0!important;right:0!important;height:100dvh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;background:#f7fafc!important;border-left:1px solid #c4d2dc!important;box-shadow:-16px 0 40px rgba(15,23,42,.28)!important;transform:translateX(102%);transition:transform .2s ease;padding-top:env(safe-area-inset-top)}
  .mobile-nav-backdrop.show .mobile-nav-panel{transform:translateX(0)!important}
  .mobile-nav-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;background:#143b5d!important;color:#fff!important}
  .mobile-nav-body{flex:1!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain!important}

  /* The dropdown is viewport-owned: never let it contribute to document width. */
  .smart-dropdown.mobile-smart-overlay{position:fixed!important;right:auto!important;bottom:auto!important;max-width:calc(100vw - 16px)!important;overflow-x:hidden!important;overscroll-behavior:contain!important}
  .smart-dropdown.mobile-smart-overlay .smart-department-row{max-width:100%!important;overflow:hidden!important}
  .smart-dropdown.mobile-smart-overlay .smart-time-chips{max-width:58%;overflow:hidden!important;justify-content:flex-end!important}
}
@media (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .mobile-nav-toggle{height:34px!important;min-width:64px!important;padding:0 8px!important}
  .mobile-nav-badge{position:absolute!important;right:-4px!important;top:-5px!important;min-width:17px!important;height:17px!important;padding:0 4px!important;border-radius:999px!important;background:#dc2626!important;color:#fff!important;display:grid!important;place-items:center!important;font-size:9px!important;font-weight:900!important;border:2px solid #153d61!important}
  .mobile-nav-badge[hidden]{display:none!important}
  .mobile-nav-panel{width:min(58vw,390px)!important}
}
html[data-theme="dark"] .mobile-nav-panel{background:#142431!important;border-color:#405666!important}

/* v0.8.30 — I7 smart dropdown row geometry fix */
@media(max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  /* Keep the popup viewport-owned, but do not clip the first time chip. */
  .smart-dropdown.mobile-smart-overlay{
    contain:layout!important;
    overflow-x:hidden!important;
  }
  .smart-dropdown.mobile-smart-overlay .smart-department-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) max-content!important;
    align-items:center!important;
    gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
  .smart-dropdown.mobile-smart-overlay .smart-option-main{
    min-width:0!important;
    width:100%!important;
    overflow:hidden!important;
  }
  .smart-dropdown.mobile-smart-overlay .smart-option-label{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .smart-dropdown.mobile-smart-overlay .smart-time-chips{
    display:flex!important;
    flex:0 0 auto!important;
    flex-wrap:nowrap!important;
    width:max-content!important;
    max-width:none!important;
    min-width:0!important;
    padding:0!important;
    gap:4px!important;
    overflow:visible!important;
    justify-content:flex-end!important;
    align-items:center!important;
  }
  .smart-dropdown.mobile-smart-overlay .smart-option.smart-time-chip{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:48px!important;
    max-width:none!important;
    min-height:31px!important;
    padding:6px 7px!important;
    box-sizing:border-box!important;
  }
}


/* v0.8.31 — I8 mobile quick actions */
.mobile-quick-actions{display:none}
@media (max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .mobile-quick-actions:not([hidden]){
    position:fixed;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));z-index:1780;
    min-height:50px;padding:5px 6px;display:flex;align-items:center;gap:5px;border:1px solid #b9cad6;border-radius:12px;background:rgba(247,250,252,.97);box-shadow:0 10px 30px rgba(15,23,42,.24);backdrop-filter:blur(8px)
  }
  .mobile-quick-summary{flex:0 0 auto;max-width:72px;padding:0 6px;font-size:10px;font-weight:900;color:#496579;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-quick-actions button{flex:1 1 0;min-width:0;height:38px;padding:0 7px;border:1px solid #c6d5df;border-radius:9px;background:#fff;color:#183f5d;font:inherit;font-size:11px;font-weight:850;line-height:1;display:flex;align-items:center;justify-content:center;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .mobile-quick-actions button:active{background:#dff3ff;border-color:#65acd2}
  .mobile-quick-actions button[hidden]{display:none!important}
  body.mobile-quick-actions-visible .grid-wrap{padding-bottom:62px}
}
@media (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  .mobile-quick-actions:not([hidden]){left:auto;width:min(520px,calc(100vw - 16px));min-height:44px;padding:4px 5px}
  .mobile-quick-actions button{height:34px;font-size:10px}
  .mobile-quick-summary{max-width:62px;font-size:9px}
  body.mobile-quick-actions-visible .grid-wrap{padding-bottom:54px}
}
html[data-theme="dark"] .mobile-quick-actions{background:rgba(20,36,49,.97);border-color:#425c6e}
html[data-theme="dark"] .mobile-quick-summary{color:#aac0ce}
html[data-theme="dark"] .mobile-quick-actions button{background:#1d3444;border-color:#486173;color:#e7f2f8}
@media (max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  body.mobile-quick-actions-visible .context-menu:not(.anchored-menu){bottom:66px!important;z-index:1860!important;max-height:min(calc(72dvh - 58px),500px)!important}
}

/* v0.8.32 — I9 mobile selection / quick action stability */
@media (max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  /* The bottom quick-action bar must stay usable while Smart suggestions are open. */
  .smart-dropdown.mobile-smart-overlay{z-index:1760!important}
  .mobile-quick-actions:not([hidden]){z-index:1780!important}
  .mobile-quick-actions .mobile-quick-icon{
    flex:0 0 34px!important;width:34px!important;min-width:34px!important;padding:0!important;
    font-size:18px!important;font-weight:950!important
  }
  .mobile-quick-actions button:disabled{opacity:.34!important;cursor:default!important}
  /* Spreadsheet-style touch handle. Swipe the sheet to scroll; drag this handle to extend selection. */
  td.selected-cell.selected-range::before{
    content:"";position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;border-radius:50%;
    background:#0b83c9;border:2px solid #fff;box-shadow:0 1px 4px rgba(15,23,42,.35);
    pointer-events:none;z-index:9
  }
}
@media (max-width:470px) and (orientation:portrait){
  .mobile-quick-summary{display:none!important}
  .mobile-quick-actions:not([hidden]){gap:4px!important;padding-left:5px!important;padding-right:5px!important}
  .mobile-quick-actions button{padding-left:5px!important;padding-right:5px!important;font-size:10px!important}
}
html[data-theme="dark"] td.selected-cell.selected-range::before{border-color:#142431}

/* v0.8.32 — I9 mobile sidebar compositing cleanup */
@media (max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  body.mobile-nav-open .mobile-nav-backdrop{
    z-index:4000!important;
    isolation:isolate;
    overflow:hidden;
  }
  body.mobile-nav-open .mobile-nav-panel{
    z-index:2!important;
    outline:0!important;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }
  /* Selection / pending markers below the translucent backdrop can otherwise read
     as bright seams along the drawer edge on some mobile compositors. */
  body.mobile-nav-open .planning-table .selection-edge{outline-color:transparent!important}
  body.mobile-nav-open .planning-table td.selected-cell{box-shadow:none!important}
  body.mobile-nav-open .planning-table .pending-change-cell::after{opacity:0!important}
}


/* v0.8.33 — I10 touch direction handle, idle dropdowns, sidebar seam masking */
@media (max-width:900px), (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  /* Put the drag handle on the outer corner of the selection endpoint. */
  td.selected-cell.selected-range::before{right:auto!important;bottom:auto!important;left:auto!important;top:auto!important}
  td.selected-cell.selected-range.selection-handle-br::before{right:-6px!important;bottom:-6px!important}
  td.selected-cell.selected-range.selection-handle-bl::before{left:-6px!important;bottom:-6px!important}
  td.selected-cell.selected-range.selection-handle-tr::before{right:-6px!important;top:-6px!important}
  td.selected-cell.selected-range.selection-handle-tl::before{left:-6px!important;top:-6px!important}

  /* Some mobile compositors reveal a 1px slice of brightly coloured cells around a
     transformed drawer. Give the drawer its own opaque seam so planner colours cannot bleed through. */
  body.mobile-nav-open .mobile-nav-panel{
    background-clip:padding-box!important;
    transform:translate3d(0,0,0)!important;
    box-shadow:0 0 0 2px rgba(7,20,31,.94),-16px 0 40px rgba(15,23,42,.30)!important;
  }
}


/* v0.8.33 final — keep landscape row header and dynamic frozen offsets perfectly aligned */
@media (orientation:landscape) and (max-height:640px) and (max-width:1280px){
  /* Dynamic Freeze offsets are calculated from --row-control-width in JS.
     Keep it identical to the 36px landscape row-number column to avoid a visible seam/gap. */
  .app{--row-control-width:36px!important}
}


/* v0.8.35 — Export filename templates */
.filename-settings{max-width:1100px}
.filename-template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.filename-template-card{position:relative;border:1px solid var(--line,#d7e0e6);border-radius:12px;padding:12px;background:var(--panel,#fff);min-width:0}
.filename-template-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.filename-extension{font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;padding:4px 7px;border-radius:999px;background:rgba(15,23,42,.06);color:var(--muted,#617383)}
.filename-template-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.filename-preview{display:grid;gap:4px;margin-top:8px;min-width:0}
.filename-preview>span{font-size:11px;font-weight:700;color:var(--muted,#617383)}
.filename-preview code{display:block;overflow-wrap:anywhere;white-space:normal;padding:8px 9px;border-radius:8px;background:rgba(15,23,42,.045);font-size:12px;line-height:1.35}
.filename-template-warning{margin-top:7px;color:#b45309;font-size:11px;font-weight:700}
.filename-reset{margin-top:9px}
.filename-variable-help{margin-top:16px;border-top:1px solid var(--line,#d7e0e6);padding-top:12px}
.filename-variable-help summary{cursor:pointer;font-weight:800;user-select:none;margin-bottom:9px}
.filename-variable-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
.filename-variable-chip{display:flex;align-items:flex-start;gap:7px;text-align:left;border:1px solid var(--line,#d7e0e6);background:var(--panel,#fff);border-radius:9px;padding:8px;cursor:pointer;color:inherit;min-width:0}
.filename-variable-chip:hover{border-color:#4ea4d2;background:rgba(14,165,233,.05)}
.filename-variable-chip code{flex:0 0 auto;font-weight:800;color:#0877b8}
.filename-variable-chip span{min-width:0;font-size:11px;line-height:1.3;color:var(--muted,#617383)}
html[data-theme="dark"] .filename-template-card,html[data-theme="dark"] .filename-variable-chip{background:#162936;border-color:#365063}
html[data-theme="dark"] .filename-extension,html[data-theme="dark"] .filename-preview code{background:rgba(255,255,255,.06)}
html[data-theme="dark"] .filename-variable-chip:hover{background:rgba(56,189,248,.08);border-color:#4b829f}
@media (max-width:900px){.filename-template-list{grid-template-columns:1fr}.filename-variable-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.filename-variable-grid{grid-template-columns:1fr}}

/* v0.8.36 — desktop spreadsheet selection handle */
@media (hover:hover) and (pointer:fine){
  td.selected-cell.selected-range::before{
    content:"";position:absolute;width:13px;height:13px;border-radius:50%;
    background:#0b83c9;border:2px solid #fff;box-shadow:0 1px 4px rgba(15,23,42,.35);
    pointer-events:auto;z-index:9;cursor:crosshair;
    right:auto;bottom:auto;left:auto;top:auto;
  }
  td.selected-cell.selected-range.selection-handle-br::before{right:-6px;bottom:-6px}
  td.selected-cell.selected-range.selection-handle-bl::before{left:-6px;bottom:-6px}
  td.selected-cell.selected-range.selection-handle-tr::before{right:-6px;top:-6px}
  td.selected-cell.selected-range.selection-handle-tl::before{left:-6px;top:-6px}
  body.selection-handle-dragging,body.selection-handle-dragging *{cursor:crosshair!important;user-select:none!important}
}


/* v0.8.45 — Plan Manager */
.plan-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plan-create-grid .field small{display:block;margin-top:5px;color:#6b7f90;font-size:10px;line-height:1.35}.plan-create-note{margin-top:12px}.plan-first-week-label{margin-top:16px}.plan-manager-note{margin-bottom:12px}.plan-manager-list{display:flex;flex-direction:column;gap:8px}.plan-manager-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:12px;border:1px solid #d7e2ea;border-radius:9px;padding:10px 11px;background:#fff}.plan-manager-row.is-archived{opacity:.7;background:#f8fafc}.plan-manager-main{display:flex;flex-direction:column;min-width:0}.plan-manager-main strong{font-size:13px;color:#163f5e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-manager-main span{font-size:10px;color:#6b7f90;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-manager-status{font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px;background:#e8f3fb;color:#225d86}.plan-manager-row.is-archived .plan-manager-status{background:#eef1f4;color:#667686}.plan-manager-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.plan-manager-actions .btn{padding:6px 8px;font-size:11px}
html[data-theme="dark"] .plan-create-grid .field small,html[data-theme="dark"] .plan-manager-main span{color:#9eb2c1}html[data-theme="dark"] .plan-manager-row{background:#183342;border-color:#496575}html[data-theme="dark"] .plan-manager-row.is-archived{background:#132a37}html[data-theme="dark"] .plan-manager-main strong{color:#edf5fa}html[data-theme="dark"] .plan-manager-status{background:#214c64;color:#d8efff}html[data-theme="dark"] .plan-manager-row.is-archived .plan-manager-status{background:#31424d;color:#c1cbd2}
@media(max-width:680px){.plan-create-grid{grid-template-columns:1fr}.plan-manager-row{grid-template-columns:1fr auto}.plan-manager-actions{grid-column:1/-1;justify-content:flex-start}.plan-manager-actions .btn{flex:1}}

/* v0.8.47 — K3 / feature configuration per plan */
.feature-settings-section{margin-top:16px;padding-top:14px;border-top:1px solid #d8e3ea}
.feature-settings-head{margin-bottom:8px}.feature-settings-head h4{margin:0 0 5px}
.feature-toggle-card{margin-top:8px}.feature-toggle-copy{min-width:0;flex:1}.feature-toggle-copy>strong{display:block;margin-bottom:2px}
.feature-toggle-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.feature-configure-btn{padding:6px 9px;font-size:10px}
.feature-local-toggle{display:inline-flex;align-items:center;gap:7px;line-height:1.25;vertical-align:top;margin:0 0 12px;padding:8px 10px;border:1px solid #d5e1e8;border-radius:7px;background:#f8fbfd;width:max-content;max-width:100%}.feature-local-toggle input{margin:0;flex:0 0 auto}
.plan-create-features{margin-top:14px;padding:12px;border:1px solid #d4e1e9;border-radius:9px;background:#f8fbfd}.plan-create-features .picker-label{margin-top:0}.plan-create-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin-top:9px}.plan-create-feature-grid label{display:flex;align-items:center;gap:7px;padding:7px 8px;border:1px solid #e0e8ed;border-radius:7px;background:#fff;font-weight:800;font-size:11px;cursor:pointer}
html[data-theme="dark"] .feature-settings-section{border-color:#455a6b}html[data-theme="dark"] .feature-local-toggle,html[data-theme="dark"] .plan-create-features{background:#162b3a;border-color:#455a6b}html[data-theme="dark"] .plan-create-feature-grid label{background:#1b3141;border-color:#455a6b;color:#e4edf4}
@media(max-width:620px){.feature-toggle-card{align-items:flex-start;flex-direction:column;gap:9px}.feature-toggle-actions{width:100%;justify-content:space-between}.plan-create-feature-grid{grid-template-columns:1fr}}

/* v0.8.48 — native planner drag stability */
body.planner-native-dragging{user-select:none}
body.planner-native-dragging .drag-grip,body.planner-native-dragging .group-grip{cursor:grabbing}

/* v0.8.49 — custom pointer drag; native HTML5 DnD disabled for planner/transport */
.transport-pointer-ghost{position:fixed;z-index:100000;pointer-events:none;max-width:260px;padding:7px 11px;border:1px solid #9eb5c5;border-radius:8px;background:#fff;color:#173a52;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(24,49,66,.22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.transport-pointer-dragging{user-select:none;cursor:grabbing}
body.transport-pointer-dragging .transport-person{cursor:grabbing}
html[data-theme="dark"] .transport-pointer-ghost{background:#1d2c36;color:#e8f3f8;border-color:#4b6778;box-shadow:0 8px 24px rgba(0,0,0,.42)}

/* v0.8.50 — planner pointer-drag visual feedback */
.planner-pointer-ghost{position:fixed;z-index:100000;pointer-events:none;display:flex;align-items:center;gap:8px;max-width:300px;padding:7px 11px;border:1px solid #9eb5c5;border-radius:8px;background:#fff;color:#173a52;font-size:12px;font-weight:800;box-shadow:0 8px 24px rgba(24,49,66,.22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.94;transform:translate3d(0,0,0)}
.planner-pointer-ghost>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planner-pointer-ghost-icon{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:5px;background:#e7f2f7;color:#2b718f;font-size:12px;line-height:1}
.planner-pointer-ghost.section-ghost .planner-pointer-ghost-icon{background:#eef0f7;color:#56627c}
tr.planner-drag-source>td{opacity:.48}
tr.planner-drag-source>td:first-child{opacity:1}
body.planner-native-dragging{cursor:grabbing}
html[data-theme="dark"] .planner-pointer-ghost{background:#1d2c36;color:#e8f3f8;border-color:#4b6778;box-shadow:0 8px 24px rgba(0,0,0,.42)}
html[data-theme="dark"] .planner-pointer-ghost-icon{background:#244557;color:#9ed6ed}
html[data-theme="dark"] .planner-pointer-ghost.section-ghost .planner-pointer-ghost-icon{background:#333e54;color:#c0c9df}


/* v0.8.51 — full-row planner drop indicator */
/* The pointer target class lives on the <tr>. Draw the insertion marker on every
   cell so it stays continuous across the whole visible planner row, including
   frozen/sticky cells, without replacing selection/pending box-shadows. */
.planning-table tr.employee-row.drop-before>td::before,
.planning-table tr.employee-row.drop-after>td::after{
  content:"";position:absolute;left:-1px;right:-1px;height:3px;background:#087fc4;z-index:60;pointer-events:none
}
.planning-table tr.employee-row.drop-before>td::before{top:-2px}
.planning-table tr.employee-row.drop-after>td::after{bottom:-2px}
html[data-theme="dark"] .planning-table tr.employee-row.drop-before>td::before,
html[data-theme="dark"] .planning-table tr.employee-row.drop-after>td::after{background:#54b7e8}
.planning-table tr.employee-row.drop-before,.planning-table tr.employee-row.drop-after{box-shadow:none}

/* v0.8.52 — K4 / generic Presentielijst template mapping engine */
.present-mapping-card{margin-top:12px}
.present-designer-settings-note{margin-top:7px}
.present-designer-intro{margin-bottom:10px}
.present-designer-sheet-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:9px 10px;border:1px solid #d8e3ea;border-radius:9px;background:#f8fbfd;font-size:11px}
.present-designer-sheet-strip span{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#fff;border:1px solid #d7e2ea;font-weight:800;color:#31566f}
.present-designer-section{margin-top:12px;padding:12px;border:1px solid #d8e3ea;border-radius:10px;background:#fbfdfe}
.present-designer-section:first-of-type{margin-top:0}
.present-designer-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px}
.present-designer-section-head h4{margin:0 0 4px}
.present-designer-table td:first-child,.present-designer-table th:first-child{min-width:180px}
.present-designer-table td:nth-child(2),.present-designer-table th:nth-child(2){width:115px}
.present-list-card{margin-top:10px;padding:12px;border:1px solid #cfdce5;border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(21,56,78,.04)}
.present-list-card:first-child{margin-top:0}
.present-list-card-head{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:10px}
.present-list-name{font-size:13px;font-weight:900;color:#173f5c;max-width:360px}
.present-list-grid{display:grid;grid-template-columns:minmax(180px,1.3fr) repeat(3,minmax(120px,.7fr));gap:9px;margin-bottom:10px}
.present-subsection-title{font-size:11px;font-weight:900;color:#345f78;margin:12px 0 6px;text-transform:uppercase;letter-spacing:.02em}
.present-designer-fields td:first-child,.present-designer-fields th:first-child{width:125px}
.present-designer-filters td:first-child,.present-designer-filters th:first-child{min-width:190px}
.present-designer-filters td:nth-child(2),.present-designer-filters th:nth-child(2){min-width:165px}
.present-inline-add{margin-top:7px}
.present-preview-section{background:#f6fafc}
.present-preview-day{min-width:210px;margin:0}
.present-preview-card{margin-top:8px;border:1px solid #d7e2ea;border-radius:9px;background:#fff;overflow:hidden}
.present-preview-card:first-child{margin-top:0}
.present-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:#f1f6f9;border-bottom:1px solid #dce6ec;font-size:11px}
.present-preview-head span{font-weight:800;color:#5f7584}
.present-preview-card .table-scroll{border:0;border-radius:0}
.present-preview-card .settings-table{margin:0}
html[data-theme="dark"] .present-designer-sheet-strip,html[data-theme="dark"] .present-designer-section,html[data-theme="dark"] .present-preview-section{background:#142a38;border-color:#425b6b}
html[data-theme="dark"] .present-designer-sheet-strip span,html[data-theme="dark"] .present-list-card,html[data-theme="dark"] .present-preview-card{background:#1a3241;border-color:#455f70;color:#e7f1f7}
html[data-theme="dark"] .present-list-name{color:#e7f1f7}
html[data-theme="dark"] .present-subsection-title{color:#a7c9db}
html[data-theme="dark"] .present-preview-head{background:#17303f;border-color:#425b6b}
html[data-theme="dark"] .present-preview-head span{color:#a9bfcc}
@media(max-width:800px){.present-list-grid{grid-template-columns:1fr 1fr}.present-designer-section-head{flex-direction:column}.present-designer-section-head>.btn{width:100%}.present-preview-day{width:100%}}
@media(max-width:520px){.present-list-grid{grid-template-columns:1fr}.present-list-card-head{align-items:stretch;flex-direction:column}.present-list-name{max-width:none;width:100%}.present-designer-section{padding:9px}}

/* v0.8.53 — Dedemsvaart Presentielijst revisions / snapshots */
.present-revision-setting{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--border,#dfe3e8);
}
.present-revision-setting .note{margin-top:6px;}
.present-revision-card{
  margin-top:12px;
  padding:12px 14px;
  border:1px solid var(--border,#dfe3e8);
  border-radius:10px;
  background:var(--panel,#fff);
}
.present-revision-main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.present-revision-main strong{display:block;margin-bottom:3px;}
.present-revision-count{
  flex:0 0 auto;
  padding:4px 8px;
  border-radius:7px;
  font-size:12px;
  font-weight:700;
  background:rgba(127,127,127,.10);
  border:1px solid rgba(127,127,127,.18);
}
.present-revision-count.has-changes{
  background:rgba(255,221,87,.20);
  border-color:rgba(206,157,0,.34);
}
.present-revision-sub{
  margin-top:9px;
  font-size:12px;
  color:var(--muted,#667085);
}
.present-revision-reset{margin-top:10px;}
.present-revision-off{margin-top:12px;}
@media (max-width:700px){
  .present-revision-main{align-items:flex-start;flex-direction:column;}
}

/* v0.8.57 — K5.1 Unified Visual Presentielijst Designer */
.present-visual-designer-modal{width:min(1540px,98vw)!important;max-height:96vh!important;height:min(940px,96vh)}
.present-visual-designer-modal .modal-body{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.present-visual-designer-modal .modal-foot{flex:0 0 auto}
.present-visual-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #dbe5ec;background:#f7fafc;flex:0 0 auto}
.present-test-source{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border-bottom:1px solid #d5e3ec;background:#eef8ff;flex:0 0 auto}
.present-test-source-title{display:flex;flex-direction:column;gap:2px;min-width:220px}.present-test-source-title strong{font-size:11px;color:#24475d}.present-test-source-title span{font-size:9px;line-height:1.3;color:#637d8d}
.present-test-source-controls{display:flex;align-items:end;justify-content:flex-end;gap:7px;flex-wrap:wrap}.present-test-source-controls label{display:flex;flex-direction:column;gap:2px;font-size:9px;font-weight:800;color:#60798a;text-transform:uppercase;letter-spacing:.35px}.present-test-source-controls select{height:32px;min-width:145px;max-width:220px;border:1px solid #c2d6e3;border-radius:6px;background:#fff;padding:0 8px;color:#233f52}.present-test-source-controls .btn{height:32px;padding:0 10px}.present-test-source-meta{font-size:10px;font-weight:800;color:#637d8d;white-space:nowrap}
.present-sheet-tabs{display:flex;gap:5px;overflow-x:auto;min-width:0;padding-bottom:1px}
.present-sheet-tabs button{border:1px solid #cbd8e2;background:#fff;color:#36566d;border-radius:7px;padding:7px 10px;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}
.present-sheet-tabs button:hover{background:#edf6fb;border-color:#9ec2d8}
.present-sheet-tabs button.active{background:#174f7d;color:#fff;border-color:#174f7d}
.present-visual-tools{display:flex;align-items:end;gap:7px;flex:0 0 auto}
.present-visual-tools label{display:flex;flex-direction:column;gap:2px;font-size:9px;font-weight:800;color:#60798a;text-transform:uppercase;letter-spacing:.35px}
.present-visual-tools select{height:32px;min-width:180px;border:1px solid #cbd8e2;border-radius:6px;background:#fff;padding:0 8px;color:#233f52}
.present-visual-tools .btn{height:32px;padding:0 10px}
.present-visual-intro{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:7px 12px;border-bottom:1px solid #e4ebf0;background:#fff;color:#526b7c;font-size:10px;line-height:1.35;flex:0 0 auto}
.present-visual-intro span{font-weight:800;color:#6a8190;white-space:nowrap}
.present-visual-layout{display:grid;grid-template-columns:minmax(0,1fr) 410px;min-height:0;flex:1;overflow:hidden}
.present-visual-sheet-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:#e9eef2;border-right:1px solid #cfdae2}
.present-visual-grid-wrap{flex:1;min-height:0;overflow:auto;background:#fff}
.present-visual-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;font-size:11px;color:#182d3c;background:#fff}
.present-visual-grid th,.present-visual-grid td{border-right:1px solid #d9e0e5;border-bottom:1px solid #d9e0e5;box-sizing:border-box}
.present-visual-grid thead th{height:26px;position:sticky;top:0;z-index:8;background:#e8edf1;color:#4a6171;text-align:center;font-size:10px;font-weight:850;border-top:0}
.present-row-index-col{width:42px}
.present-grid-corner{left:0;z-index:10!important;width:42px;min-width:42px;max-width:42px;border-right:1px solid #c6d1d9!important}
.present-row-index{position:sticky;left:0;z-index:7;width:42px;min-width:42px;max-width:42px;background:#eef2f5;color:#627481;text-align:center;font-size:10px;font-weight:800;border-right:1px solid #c6d1d9!important}
.present-visual-cell{position:relative;padding:3px 6px;min-width:42px;vertical-align:middle;cursor:cell;background-clip:padding-box;overflow:hidden}
.present-visual-cell:hover{box-shadow:inset 0 0 0 2px rgba(8,127,196,.42);z-index:2}
.present-visual-cell.selected{box-shadow:inset 0 0 0 3px #087fc4!important;z-index:4}
.present-visual-cell.mapped-single{box-shadow:inset 0 0 0 2px #1681c4}
.present-visual-cell.mapped-list-start{box-shadow:inset 0 0 0 2px #2e9a62}
.present-visual-cell.mapped-list-range:not(.mapped-list-start){box-shadow:inset 3px 0 0 rgba(46,154,98,.28),inset -3px 0 0 rgba(46,154,98,.18)}
.present-cell-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:16px;line-height:16px}
.present-cell-value.preview-value{font-weight:800;color:#0b6494}
.present-map-badge{position:absolute;right:2px;top:2px;padding:1px 4px;border-radius:4px;font-size:7px;line-height:12px;font-weight:900;letter-spacing:.2px;color:#fff;pointer-events:none;box-shadow:0 1px 2px rgba(0,0,0,.16)}
.present-map-badge.single{background:#1681c4}.present-map-badge.list{background:#278756}
.present-visual-sheet-note{padding:5px 10px;background:#f5f8fa;border-top:1px solid #d9e2e8;color:#728693;font-size:9px;flex:0 0 auto}
.present-visual-sidebar{min-height:0;overflow:auto;background:#f7fafc;padding:10px;display:flex;flex-direction:column;gap:9px}
.present-side-card{background:#fff;border:1px solid #d4e0e8;border-radius:10px;padding:11px;box-shadow:0 1px 2px rgba(20,53,73,.035)}
.present-side-kicker{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:#718696;margin-bottom:4px}
.present-selected-address{font-size:21px;font-weight:900;color:#174f7d;letter-spacing:.3px;margin-bottom:8px}
.present-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:#edf3f7;border-radius:8px;margin-bottom:8px}
.present-mode-switch button{border:0;border-radius:6px;background:transparent;padding:7px 5px;color:#526b7c;font-size:10px;font-weight:850;cursor:pointer}
.present-mode-switch button.active{background:#fff;color:#174f7d;box-shadow:0 1px 3px rgba(31,68,91,.14)}
.present-side-hint{margin-bottom:9px}
.present-side-card .field{margin-top:8px}.present-side-card .field:first-of-type{margin-top:0}
.present-side-card .field select,.present-side-card .field input{height:34px;padding:6px 8px}
.present-side-two{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.present-side-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.present-side-actions .btn{flex:1;min-width:110px}
.present-mapping-list{padding-bottom:8px}
.present-mapping-jump{display:block;width:100%;border:0;border-top:1px solid #edf1f4;background:transparent;text-align:left;padding:7px 2px;color:#3f5d70;font-size:9px;line-height:1.35;cursor:pointer}
.present-mapping-jump:first-of-type{border-top:0}.present-mapping-jump:hover{color:#087fc4;background:#f3f9fd}
.present-advanced-btn{width:100%;margin-top:auto}

/* Dedemsvaart revision color control */
.present-color-control{display:flex;align-items:center;gap:8px}
.present-color-swatch{position:relative;width:44px;height:36px;flex:0 0 44px;border:1px solid #b9cad5;border-radius:8px;background:#fff;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(26,57,76,.06)}
.present-color-swatch span{position:absolute;inset:5px;border-radius:5px;background:var(--present-color,#FFFF00);box-shadow:inset 0 0 0 1px rgba(15,23,42,.14);pointer-events:none}
.present-color-swatch input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.present-color-swatch:hover{border-color:#6fa8c9;box-shadow:0 0 0 2px rgba(8,127,196,.1)}
.present-color-hex{width:92px!important;height:36px!important;text-transform:uppercase;font-variant-numeric:tabular-nums;font-weight:700}

html[data-theme="dark"] .present-visual-toolbar,html[data-theme="dark"] .present-visual-sidebar{background:#132a39;border-color:#405968}
html[data-theme="dark"] .present-test-source{background:#102f41;border-color:#405968}html[data-theme="dark"] .present-test-source-title strong{color:#d9edf8}html[data-theme="dark"] .present-test-source-title span,html[data-theme="dark"] .present-test-source-meta{color:#a9beca}html[data-theme="dark"] .present-test-source-controls label{color:#a9beca}html[data-theme="dark"] .present-test-source-controls select{background:#173445;border-color:#4f7081;color:#eff8fc}
html[data-theme="dark"] .present-visual-intro{background:#172f3e;border-color:#405968;color:#b8cad5}
html[data-theme="dark"] .present-visual-intro span{color:#9cb3c1}
html[data-theme="dark"] .present-sheet-tabs button{background:#183747;border-color:#486879;color:#dcebf3}
html[data-theme="dark"] .present-sheet-tabs button.active{background:#167ba8;border-color:#45a5c9;color:#fff}
html[data-theme="dark"] .present-visual-tools label{color:#a9beca}
html[data-theme="dark"] .present-visual-tools select{background:#173445;border-color:#4f7081;color:#eff8fc}
html[data-theme="dark"] .present-visual-grid-wrap,html[data-theme="dark"] .present-visual-grid{background:#122532;color:#e6f0f5}
html[data-theme="dark"] .present-visual-grid th,html[data-theme="dark"] .present-visual-grid td{border-color:#405463}
html[data-theme="dark"] .present-visual-grid thead th,html[data-theme="dark"] .present-row-index{background:#1d3949;color:#bed0da;border-color:#536b79!important}
html[data-theme="dark"] .present-visual-cell{background-color:#142a37}
html[data-theme="dark"] .present-cell-value.preview-value{color:#8edcff}
html[data-theme="dark"] .present-visual-sheet-note{background:#17303f;border-color:#415a69;color:#9eb3bf}
html[data-theme="dark"] .present-side-card{background:#183544;border-color:#486473;color:#e7f1f7}
html[data-theme="dark"] .present-selected-address{color:#8bdcff}
html[data-theme="dark"] .present-mode-switch{background:#102936}
html[data-theme="dark"] .present-mode-switch button{color:#adc1cc}
html[data-theme="dark"] .present-mode-switch button.active{background:#24506a;color:#fff}
html[data-theme="dark"] .present-mapping-jump{border-color:#38505f;color:#c3d5de}
html[data-theme="dark"] .present-mapping-jump:hover{background:#1f4559;color:#8edcff}
html[data-theme="dark"] .present-color-swatch{background:#173445;border-color:#527183}

@media(max-width:900px){
  .present-visual-designer-modal{height:94dvh!important;max-height:94dvh!important}
  .present-visual-toolbar{align-items:stretch;flex-direction:column}.present-visual-tools{justify-content:space-between}.present-visual-tools label{flex:1}.present-visual-tools select{width:100%;min-width:0}
  .present-visual-intro{display:block}.present-visual-intro span{display:block;margin-top:3px;white-space:normal}
  .present-visual-layout{grid-template-columns:1fr;grid-template-rows:minmax(300px,1fr) auto;overflow:auto}.present-visual-sheet-panel{min-height:48vh;border-right:0;border-bottom:1px solid #cfdbe3}.present-visual-sidebar{max-height:none;overflow:visible}.present-side-two{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){.present-side-two{grid-template-columns:1fr}.present-visual-tools{align-items:stretch;flex-direction:column}.present-visual-tools .btn{width:100%}}


/* v0.8.57 — one-list / whole-row configuration inside visual designer */
.present-list-config-card{padding:12px}
.present-side-three{display:grid;grid-template-columns:82px 100px minmax(0,1fr);gap:7px;align-items:end}
.present-capacity-hint{margin-top:5px;line-height:1.35}
.present-list-subhead{margin-top:12px;padding-top:10px;border-top:1px solid #e6edf2}
.present-list-subhead>div{display:flex;flex-direction:column;gap:2px}
.present-list-subhead strong{font-size:10px;color:#274b63}
.present-list-subhead span{font-size:8.5px;color:#748995;line-height:1.35}
.present-list-field-row{display:grid;grid-template-columns:55px minmax(0,1fr) 28px;gap:5px;align-items:center;margin-top:5px}
.present-list-filter-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,.9fr) 28px;gap:5px;align-items:center;margin-top:5px}
.present-list-field-row input,.present-list-field-row select,.present-list-filter-row input,.present-list-filter-row select{height:31px!important;min-width:0;padding:4px 6px!important;font-size:10px}
.present-list-col-input{text-transform:uppercase;text-align:center;font-weight:850}
.present-mini-icon{width:28px;height:28px;padding:0;border:1px solid #d4dfe6;border-radius:6px;background:#fff;color:#6a7e8a;font-size:17px;line-height:1;cursor:pointer}
.present-mini-icon:hover{border-color:#d88d8d;background:#fff5f5;color:#b22d2d}
.present-inline-button-row{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px}
.present-inline-button-row .btn{font-size:9px;padding:6px 7px;min-width:0}
.present-quick-map{margin-top:9px;padding:8px;border-radius:8px;background:#f4f9fc;border:1px solid #dce8ef}
.present-quick-map>label{display:block;font-size:8.5px;font-weight:850;color:#627b8b;margin-bottom:4px;text-transform:uppercase;letter-spacing:.25px}
.present-quick-map>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px}
.present-quick-map select{height:32px!important;min-width:0}
.present-quick-map .btn{height:32px;padding:0 10px}
.present-full-btn{width:100%;margin-top:7px}
.btn.danger-soft{background:#fff7f7;border-color:#efcaca;color:#a83737}
.btn.danger-soft:hover{background:#ffeded;border-color:#e4a8a8}
html[data-theme="dark"] .present-list-subhead{border-color:#38515f}
html[data-theme="dark"] .present-list-subhead strong{color:#d7e8f1}
html[data-theme="dark"] .present-list-subhead span{color:#9db4c0}
html[data-theme="dark"] .present-mini-icon{background:#173445;border-color:#4f6c7b;color:#bed1dc}
html[data-theme="dark"] .present-mini-icon:hover{background:#4a272b;border-color:#7e464d;color:#ffd6d6}
html[data-theme="dark"] .present-quick-map{background:#112d3b;border-color:#3c5969}
html[data-theme="dark"] .present-quick-map>label{color:#aac0cc}
html[data-theme="dark"] .btn.danger-soft{background:#3d2529;border-color:#70444b;color:#ffd4d8}
@media(max-width:1180px){.present-visual-layout{grid-template-columns:minmax(0,1fr) 360px}.present-side-three{grid-template-columns:1fr 1fr}.present-side-three .field:last-child{grid-column:1/-1}.present-list-filter-row{grid-template-columns:1fr 1fr 28px}.present-list-filter-row input[data-filter-k="value"]{grid-column:1/3}}
@media(max-width:900px){.present-side-three{grid-template-columns:1fr 1fr 1fr}.present-side-three .field:last-child{grid-column:auto}.present-list-filter-row{grid-template-columns:1fr 1fr 1fr 28px}.present-list-filter-row input[data-filter-k="value"]{grid-column:auto}}
@media(max-width:560px){.present-side-three{grid-template-columns:1fr}.present-inline-button-row{grid-template-columns:1fr}.present-list-filter-row{grid-template-columns:1fr 1fr 28px}.present-list-filter-row input[data-filter-k="value"]{grid-column:1/3}.present-list-filter-row .present-mini-icon{grid-column:3;grid-row:1/3}}


/* v0.8.58 — K5.2 final visual selection + parked generic module */
.present-visual-cell.range-selected{background-image:linear-gradient(rgba(8,127,196,.08),rgba(8,127,196,.08));box-shadow:inset 0 0 0 1px rgba(8,127,196,.34);z-index:2}
.present-visual-cell.range-selected.selected{box-shadow:inset 0 0 0 3px #087fc4!important}
.present-simple-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:end;margin-top:8px}
.present-simple-field-row{display:grid;grid-template-columns:38px minmax(0,1fr) 28px;gap:5px;align-items:center;margin-top:5px}
.present-simple-field-row>strong{height:31px;display:flex;align-items:center;justify-content:center;border:1px solid #d5e0e7;border-radius:6px;background:#f4f8fa;color:#31546a;font-size:10px}
.present-simple-field-row select{height:31px!important;min-width:0;font-size:10px;padding:4px 6px!important}
.present-auto-map{margin-top:10px;padding:9px;border:1px solid #dbe7ee;border-radius:8px;background:#f6fafc}
.present-auto-map>strong{font-size:10px;color:#294d64}.present-auto-map>span{display:block;font-size:8px;color:#80929d;margin:1px 0 5px}
.present-auto-map>div:not(.note){display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1.2fr);gap:5px;padding:4px 0;border-top:1px solid #e7eef2;font-size:9px;align-items:center}.present-auto-map>div:first-of-type{border-top:0}.present-auto-map b{color:#174f7d}.present-auto-map em{font-style:normal;color:#27794f;font-weight:800}
.present-dynamic-note{margin-top:7px;line-height:1.4}
.present-simple-preview{margin-top:10px;padding-top:8px;border-top:1px solid #e4edf2}.present-simple-preview>strong{font-size:9px;text-transform:uppercase;letter-spacing:.3px;color:#607888}.present-simple-preview>div{font-size:9px;padding:3px 0;border-top:1px solid #edf2f5;display:flex;gap:6px}.present-simple-preview>div span{margin-left:auto;color:#597282;font-weight:800}
.feature-disabled-card{opacity:.72}.feature-toggle-card.feature-disabled-card{background:#f5f7f8}.feature-disabled-card input:disabled{cursor:not-allowed}
html[data-theme="dark"] .present-visual-cell.range-selected{background-image:linear-gradient(rgba(55,178,230,.12),rgba(55,178,230,.12));box-shadow:inset 0 0 0 1px rgba(83,196,240,.38)}
html[data-theme="dark"] .present-simple-field-row>strong{background:#173445;border-color:#4d6877;color:#d9eaf2}
html[data-theme="dark"] .present-auto-map{background:#112d3b;border-color:#3c5969}.present-auto-map>div:not(.note){border-color:#38515f}html[data-theme="dark"] .present-auto-map>strong{color:#d9eaf2}html[data-theme="dark"] .present-auto-map b{color:#8edcff}html[data-theme="dark"] .present-auto-map em{color:#8fe0b4}
html[data-theme="dark"] .present-simple-preview{border-color:#38515f}html[data-theme="dark"] .feature-toggle-card.feature-disabled-card{background:#162b38}
@media(max-width:560px){.present-simple-grid{grid-template-columns:1fr}}

/* v0.8.59 — opt-in QA switch for parked generic Presentielijst Designer */
.present-test-mode-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:12px 14px;border:1px solid #d9e5ec;border-radius:10px;background:#f7fbfd}
.present-test-mode-card>div:first-child{min-width:0}.present-test-mode-card strong{display:block;font-size:11px;color:#244b62;margin-bottom:3px}.present-test-mode-card .template-meta{line-height:1.45}
.present-test-mode-card.active{border-color:#b8dfca;background:#f4fbf7}.present-test-mode-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.present-test-mode-actions .status-ok{white-space:nowrap}
html[data-theme="dark"] .present-test-mode-card{background:#17303d;border-color:#405d6b}.present-test-mode-card.active{background:#173b2d;border-color:#3e7158}html[data-theme="dark"] .present-test-mode-card strong{color:#dbeaf2}
@media(max-width:620px){.present-test-mode-card{align-items:stretch;flex-direction:column}.present-test-mode-card .btn{width:100%}.present-test-mode-actions{justify-content:space-between}}

/* v0.8.105 / K7.1 — portable plan template library */
.plan-template-library{margin-top:18px;padding-top:14px;border-top:1px solid #d7e2ea}.plan-template-library-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.plan-template-library-head strong{font-size:13px;color:#163f5e}.plan-template-library-head .note{margin-top:3px;max-width:760px}.plan-template-list{display:flex;flex-direction:column;gap:8px}.plan-template-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:12px;border:1px dashed #c8d8e3;border-radius:9px;padding:10px 11px;background:#fbfdff}.plan-template-main{display:flex;flex-direction:column;min-width:0}.plan-template-main strong{font-size:12px;color:#163f5e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-template-main span{font-size:10px;color:#6b7f90;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-template-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.plan-template-actions .btn{padding:6px 8px;font-size:11px}.plan-template-empty{padding:10px 0}.plan-manager-actions .plan-manager-template{border-style:dashed}
html[data-theme="dark"] .plan-template-library{border-top-color:#496575}html[data-theme="dark"] .plan-template-library-head strong,html[data-theme="dark"] .plan-template-main strong{color:#edf5fa}html[data-theme="dark"] .plan-template-row{background:#132a37;border-color:#496575}html[data-theme="dark"] .plan-template-main span{color:#9eb2c1}
@media(max-width:680px){.plan-template-row{grid-template-columns:1fr}.plan-template-actions{justify-content:flex-start}.plan-template-actions .btn{flex:1}}


/* v0.8.106 — K7.2 selective template copy */
.template-copy-source{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid #cfe0eb;border-radius:9px;background:#f7fbfe;color:#174969}.template-copy-source span{font-size:13px;font-weight:900}.template-copy-source small{font-size:10px;color:#6b7f90}.template-copy-target{margin-top:12px}.template-copy-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;margin-bottom:8px}.template-copy-section-head strong{font-size:12px;color:#163f5e}.template-copy-all{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:#47677d;cursor:pointer}.template-copy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.template-copy-card{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #d8e4ec;border-radius:9px;background:#fff;cursor:pointer;min-width:0}.template-copy-card:hover{border-color:#9fc5dc;background:#f8fcff}.template-copy-card input{margin-top:2px;flex:0 0 auto}.template-copy-card span{display:flex;flex-direction:column;min-width:0}.template-copy-card strong{font-size:11px;color:#173f5d}.template-copy-card small{font-size:9px;line-height:1.35;color:#6b7f90;margin-top:3px}.template-copy-preview{margin-top:13px;padding:11px;border:1px solid #d5e3ec;border-radius:9px;background:#f8fbfd}.template-copy-preview-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.template-copy-preview-head strong{font-size:11px;color:#173f5d}.template-copy-preview-head span{font-size:10px;font-weight:800;color:#547288}.template-copy-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.template-copy-chip{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e7f3fb;color:#1d5b83;font-size:9px;font-weight:900}.template-copy-structure-note{margin-top:8px}.btn.primary-soft{background:#e8f4fb;border-color:#a9cfe5;color:#145b86}.btn.primary-soft:hover{background:#d9edf8}
html[data-theme="dark"] .template-copy-source,html[data-theme="dark"] .template-copy-preview{background:#142c3a;border-color:#476475;color:#e7f2f8}html[data-theme="dark"] .template-copy-source small,html[data-theme="dark"] .template-copy-card small,html[data-theme="dark"] .template-copy-all{color:#9db4c3}html[data-theme="dark"] .template-copy-section-head strong,html[data-theme="dark"] .template-copy-card strong,html[data-theme="dark"] .template-copy-preview-head strong{color:#edf6fb}html[data-theme="dark"] .template-copy-card{background:#183442;border-color:#496777}html[data-theme="dark"] .template-copy-card:hover{background:#1d3b4a;border-color:#6c93aa}html[data-theme="dark"] .template-copy-chip{background:#214c64;color:#d9effb}html[data-theme="dark"] .template-copy-preview-head span{color:#a8c0cf}html[data-theme="dark"] .btn.primary-soft{background:#214c64;border-color:#517c94;color:#e1f2fb}
@media(max-width:680px){.template-copy-grid{grid-template-columns:1fr}.template-copy-section-head{align-items:flex-start;flex-direction:column}.template-copy-preview-head{align-items:flex-start;flex-direction:column}}


/* v0.8.107 / K8.1 — fixed P4F output mapping */
.csv-mapping-section{margin-top:14px}
.csv-mapping-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.csv-mapping-head h4{margin-bottom:4px}
.csv-mapping-table th:first-child,.csv-mapping-table td:first-child{width:128px;white-space:nowrap}
.csv-mapping-table th:last-child,.csv-mapping-table td:last-child{width:150px}
.csv-mapping-select{width:100%;min-width:250px}
.csv-mapping-constant{margin-top:7px;width:100%}
.csv-mapping-path{margin-top:5px;word-break:break-word}
.csv-mapping-preview{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff)}
.csv-mapping-preview-row{display:grid;grid-template-columns:110px 18px minmax(0,1fr) auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.csv-mapping-preview-row:last-of-type{border-bottom:0}
.csv-mapping-preview-row>span:nth-child(3){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csv-mapping-preview-note{margin-top:10px}
@media(max-width:760px){.csv-mapping-head{display:block}.csv-mapping-head .btn{margin-top:10px}.csv-mapping-select{min-width:210px}.csv-mapping-preview-row{grid-template-columns:88px 14px minmax(0,1fr) auto}}
.csv-mapping-config-summary{margin:10px 0 12px}
.csv-mapping-config-summary ul{margin:8px 0 0 18px}
.csv-mapping-live{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff)}
.csv-mapping-live-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.csv-mapping-day-picker{min-width:220px;margin:0}
.csv-mapping-day-picker select{width:100%}
.csv-live-table-wrap{max-width:100%;overflow:auto}
.csv-live-table{min-width:930px}
.csv-live-table th,.csv-live-table td{white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis}
.csv-live-table .csv-live-employee-col{position:sticky;left:0;z-index:1;min-width:160px;max-width:210px;background:var(--panel,#fff);box-shadow:1px 0 0 var(--line)}
.csv-live-table thead .csv-live-employee-col{z-index:2}
.csv-live-cell.empty{opacity:.62;font-style:italic}
.csv-live-cell.issue{background:color-mix(in srgb,#d33 10%,transparent);color:var(--danger,#b42318);font-weight:600}
.csv-live-empty{text-align:center;padding:18px!important;opacity:.72}
.csv-live-fallback{margin:0 0 8px}
@media(max-width:760px){.csv-mapping-live-head{display:block}.csv-mapping-day-picker{min-width:0;margin-top:10px}.csv-live-table{min-width:860px}}


/* v0.9.1 — ApiAdapter parity pilot (read parity remains active) */
.backend-pilot-card{margin-top:16px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff)}
.backend-pilot-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.backend-pilot-head h4{margin:0 0 4px}.backend-pilot-actions{display:flex;gap:7px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.backend-pilot-status{margin-top:11px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--line) 35%,transparent);font-size:11px;font-weight:800}.backend-pilot-status.online{background:color-mix(in srgb,#22a06b 12%,transparent);color:#18794e}.backend-pilot-status.error{background:color-mix(in srgb,#d33 11%,transparent);color:var(--danger,#b42318)}.backend-pilot-status.loading{opacity:.75}
.backend-pilot-warning{margin-top:8px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#d99000 13%,transparent);color:#8a5a00;font-size:10px;font-weight:800}
.backend-parity{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:9px}.backend-parity>strong{font-size:11px}.backend-parity.ok{border-color:color-mix(in srgb,#22a06b 45%,var(--line));background:color-mix(in srgb,#22a06b 6%,transparent)}.backend-parity.fail{border-color:color-mix(in srgb,#d33 45%,var(--line));background:color-mix(in srgb,#d33 5%,transparent)}
.backend-parity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:9px 0}.backend-parity-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel,#fff)}.backend-parity-item span{font-size:10px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backend-parity-item b{font-size:12px}.backend-parity-item small{grid-column:1/-1;font-size:9px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backend-parity-item.ok b{color:#18885a}.backend-parity-item.fail b{color:var(--danger,#b42318)}
@media(max-width:760px){.backend-pilot-head{flex-direction:column}.backend-pilot-actions{justify-content:flex-start;width:100%}.backend-pilot-actions .btn{flex:1}.backend-parity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.9.1e — opt-in incremental ApiAdapter write/reconciliation pilots */
.backend-write-pilot{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.backend-write-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.backend-write-head>div{min-width:0}.backend-write-head>.btn{flex:0 0 auto}.backend-write-head strong{font-size:11px}
.backend-write-badge{display:inline-flex;align-items:center;margin-left:5px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,#d99000 15%,transparent);color:#8a5a00;font-size:8px;font-weight:900;letter-spacing:.04em;vertical-align:1px}
.backend-write-target{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--line) 18%,transparent);font-size:10px}.backend-write-target strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backend-write-target code{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}.backend-write-target.missing{display:block;color:#8a5a00;background:color-mix(in srgb,#d99000 8%,transparent)}
.backend-write-status{margin-top:8px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--line) 28%,transparent);font-size:10px;font-weight:750}.backend-write-status small{display:block;margin-top:4px;font-size:9px;font-weight:700;opacity:.85}.backend-write-status.loading{opacity:.75}.backend-write-status.success{background:color-mix(in srgb,#22a06b 12%,transparent);color:#18794e}.backend-write-status.noop{background:color-mix(in srgb,#d99000 10%,transparent);color:#8a5a00}.backend-write-status.conflict,.backend-write-status.error{background:color-mix(in srgb,#d33 11%,transparent);color:var(--danger,#b42318)}
@media(max-width:760px){.backend-write-head{flex-direction:column}.backend-write-head>.btn{width:100%}.backend-write-target{align-items:flex-start;flex-direction:column}.backend-write-target code{max-width:100%}}
.backend-entity-pilot{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.backend-entity-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.backend-entity-card{padding:10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--line) 10%,transparent)}
.backend-entity-title{font-size:10px;font-weight:900;margin-bottom:7px}.backend-entity-card .backend-write-target{margin-top:0}.backend-entity-btn{width:100%;margin-top:8px}
@media(max-width:760px){.backend-entity-grid{grid-template-columns:1fr}}
.backend-reconcile-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:9px}.backend-reconcile-actions .backend-write-status{margin-top:0;flex:1 1 260px}.backend-reconcile-actions .btn{flex:0 0 auto}

/* v0.9.1f — diagnostic view of automatic single-cell background writes. */
.backend-background-sync{margin-top:12px;padding:10px;border:1px solid color-mix(in srgb,#087fc4 30%,var(--line));border-radius:9px;background:color-mix(in srgb,#087fc4 4%,transparent)}
.backend-background-sync .backend-pilot-section-title>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.backend-background-sync .backend-pilot-section-title strong{font-size:11px}.backend-background-sync .backend-pilot-section-title small{display:block;margin-top:3px;font-size:9px;line-height:1.35;opacity:.76}.backend-pilot-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,#087fc4 12%,transparent);color:#087fc4;font-size:8px;font-weight:900;letter-spacing:.05em}

/* v0.9.1t — selection focus visual must follow the actual Planner selection.
   A focused input can temporarily remain focused while a new drag selection starts
   elsewhere. Do not let that stale browser focus ring look like a second selected cell. */
.planning-table td:not(.selected-cell) > .cell-input:focus,
.planning-table td:not(.selected-cell) .name-wrap > .cell-input:focus{
  box-shadow:none!important;
}
.planning-table td.selected-cell > .cell-input:focus,
.planning-table td.selected-cell .name-wrap > .cell-input:focus{
  box-shadow:inset 0 0 0 2px #087fc4!important;
}
html[data-theme="dark"] .planning-table td.selected-cell > .cell-input:focus,
html[data-theme="dark"] .planning-table td.selected-cell .name-wrap > .cell-input:focus{
  box-shadow:inset 0 0 0 2px #38bdf8!important;
}

/* v0.11.2 — Passwordless OTP auth + compact user/access manager + account block/delete */
.auth-overlay{
  position:fixed;inset:0;z-index:100000;background:linear-gradient(135deg,#eef6ff,#f8fafc 55%,#edfdf8);
  display:grid;place-items:center;padding:24px
}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid #dbe4ef;border-radius:22px;box-shadow:0 24px 80px rgba(15,23,42,.16);padding:28px}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.auth-brand-badge{width:42px;height:42px;border-radius:13px;background:#0f5f91;color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px}
.auth-brand strong{display:block;font-size:17px}.auth-brand small{display:block;color:#64748b;margin-top:2px}
.auth-card h1{font-size:26px;margin:0 0 8px}.auth-copy{color:#64748b;line-height:1.5;margin:0 0 22px}
.auth-form{display:grid;gap:10px}.auth-form[hidden],.auth-dev-code[hidden]{display:none!important}
.auth-form label{font-size:12px;font-weight:700;color:#334155}
.auth-form input{height:48px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:11px;padding:0 13px;font:inherit;background:#fff;color:#0f172a;outline:none}
.auth-form input:focus{border-color:#0f5f91;box-shadow:0 0 0 3px rgba(15,95,145,.12)}
.auth-primary{width:100%;justify-content:center;margin-top:4px}.auth-secondary{width:100%;justify-content:center}
.auth-code-head{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}.auth-code-head strong{color:#0f172a}
.auth-code-input{text-align:center;font-size:26px!important;letter-spacing:8px;font-weight:700}
.auth-dev-code{border:1px dashed #60a5fa;background:#eff6ff;color:#1e3a8a;border-radius:10px;padding:10px 12px;font-size:13px}
.auth-dev-code span{font-size:10px;font-weight:800;background:#dbeafe;border-radius:6px;padding:2px 5px;margin-right:4px}
.auth-status{height:38px;box-sizing:border-box;overflow:hidden;margin-top:12px;font-size:13px;line-height:18px;color:#64748b;display:flex;align-items:flex-start}
.auth-status.ok{color:#047857}.auth-status.error{color:#b91c1c}
.auth-foot{border-top:1px solid #edf2f7;margin-top:12px;padding-top:14px;color:#94a3b8;font-size:11px;line-height:1.45}

.auth-account-button{border:1px solid #cbd5e1;background:#fff;border-radius:999px;display:flex;align-items:center;gap:8px;padding:4px 9px 4px 5px;cursor:pointer;color:#0f172a;max-width:210px}
.auth-account-button:hover{background:#f8fafc}.auth-avatar{width:28px;height:28px;border-radius:50%;background:#e0f2fe;color:#075985;display:inline-grid;place-items:center;font-size:11px;font-weight:800;flex:0 0 auto}
.auth-avatar.large{width:38px;height:38px;font-size:13px}.auth-account-name{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-account-menu{position:fixed;z-index:10050;width:280px;background:#fff;border:1px solid #dbe4ef;border-radius:14px;box-shadow:0 18px 50px rgba(15,23,42,.18);padding:8px}
.auth-account-summary{display:flex;align-items:center;gap:10px;padding:8px 8px 12px;border-bottom:1px solid #edf2f7;margin-bottom:5px}.auth-account-summary strong,.auth-account-summary small{display:block}
.auth-account-summary small{color:#64748b;margin-top:2px;word-break:break-all}.auth-admin-badge{display:inline-block;margin-top:5px;font-size:9px;font-weight:800;letter-spacing:.08em;background:#e0f2fe;color:#0369a1;border-radius:999px;padding:2px 6px}
.auth-account-menu button{width:100%;border:0;background:transparent;border-radius:8px;text-align:left;padding:9px 10px;cursor:pointer;color:#0f172a}.auth-account-menu button:hover{background:#f1f5f9}

.auth-access-backdrop{position:fixed;inset:0;z-index:10060;background:rgba(15,23,42,.42);display:grid;place-items:center;padding:18px}
.auth-access-modal{width:min(1080px,96vw);max-height:92vh;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.24);display:flex;flex-direction:column;overflow:hidden}
.auth-access-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 22px;border-bottom:1px solid #e2e8f0}
.auth-access-head h2{margin:0 0 5px;font-size:20px}.auth-access-head p{margin:0;color:#64748b;font-size:13px}.auth-access-head>button,.auth-user-editor-head>button{border:0;background:transparent;font-size:27px;line-height:1;cursor:pointer;color:#64748b}
.auth-access-body{padding:18px 22px 24px;overflow:auto}.auth-access-loading,.auth-access-error{padding:28px;text-align:center;color:#64748b}.auth-access-error{color:#b91c1c}

.auth-add-user{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(480px,1.7fr);gap:8px 22px;align-items:center;padding:15px;border:1px solid #dbe4ef;border-radius:13px;background:#f8fafc;margin-bottom:18px}
.auth-add-user-copy h3{margin:0 0 3px;font-size:14px}.auth-add-user-copy p{margin:0;color:#64748b;font-size:12px}
.auth-add-user form{display:grid;grid-template-columns:1fr 1.25fr auto;gap:8px;align-items:center}
.auth-add-user input,.auth-user-editor input,.auth-user-editor select,.auth-plan-access-row select{height:40px;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;padding:0 10px;background:#fff;color:#0f172a;font:inherit;min-width:0}
.auth-add-user input:focus,.auth-user-editor input:focus,.auth-user-editor select:focus,.auth-plan-access-row select:focus{outline:none;border-color:#0f5f91;box-shadow:0 0 0 3px rgba(15,95,145,.10)}
.auth-access-inline-status{grid-column:2;height:18px;overflow:hidden;font-size:12px;line-height:18px;color:#64748b}.auth-access-inline-status.error{color:#b91c1c}

.auth-users-section-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 8px}.auth-users-section-head h3{margin:0;font-size:14px}.auth-users-section-head p{margin:2px 0 0;color:#94a3b8;font-size:11px}
.auth-user-list{display:grid;gap:7px}
.auth-user-row{display:grid;grid-template-columns:auto minmax(190px,1.2fr) minmax(190px,.9fr) minmax(150px,.65fr) auto;align-items:center;gap:12px;min-height:68px;padding:10px 12px;border:1px solid #dbe4ef;border-radius:12px;background:#fff}
.auth-user-row:hover{border-color:#b8c7d9;background:#fbfdff}
.auth-user-row-identity,.auth-user-row-access{min-width:0}.auth-user-row-identity strong,.auth-user-row-identity small,.auth-user-row-access strong,.auth-user-row-access small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-user-row-identity strong{font-size:13px}.auth-user-row-identity small{font-size:11px;color:#64748b;margin-top:3px}.auth-user-row-access strong{font-size:12px}.auth-user-row-access small{font-size:10px;color:#94a3b8;margin-top:3px}
.auth-user-row-meta{display:flex;align-items:center;gap:6px;min-width:0}.auth-user-type-badge,.auth-user-status-badge{display:inline-flex;align-items:center;height:24px;box-sizing:border-box;border-radius:999px;padding:0 8px;font-size:10px;font-weight:750;white-space:nowrap}
.auth-user-type-badge.admin{background:#e0f2fe;color:#0369a1}.auth-user-type-badge.user{background:#f1f5f9;color:#475569}.auth-user-status-badge.active{background:#dcfce7;color:#166534}.auth-user-status-badge.inactive{background:#fee2e2;color:#991b1b}
.auth-manage-user-button{white-space:nowrap;height:36px}

.auth-user-editor-backdrop{position:fixed;inset:0;z-index:10070;background:rgba(15,23,42,.48);display:grid;place-items:center;padding:20px}
.auth-user-editor{width:min(880px,96vw);max-height:90vh;background:#fff;border-radius:18px;box-shadow:0 26px 90px rgba(15,23,42,.28);display:flex;flex-direction:column;overflow:hidden}
.auth-user-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #e2e8f0}.auth-user-editor-title{display:flex;align-items:center;gap:11px;min-width:0}.auth-user-editor-title h3{margin:0;font-size:18px}.auth-user-editor-title p{margin:3px 0 0;color:#64748b;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auth-user-editor-body{padding:18px 20px;overflow:auto;display:grid;gap:16px}.auth-user-editor-section{border:1px solid #e2e8f0;border-radius:13px;overflow:hidden}.auth-user-editor-section-head{padding:12px 14px;border-bottom:1px solid #edf2f7;background:#f8fafc}.auth-user-editor-section-head h4{margin:0 0 3px;font-size:13px}.auth-user-editor-section-head p{margin:0;color:#64748b;font-size:11px;line-height:1.4}
.auth-user-account-grid{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(160px,.8fr) minmax(160px,.8fr);gap:12px;padding:14px}.auth-user-account-grid.compact{grid-template-columns:minmax(260px,1.4fr) minmax(190px,.7fr)}
.auth-control-field{display:grid;grid-template-rows:14px 40px 16px;gap:4px;min-width:0}.auth-control-label{font-size:10px;font-weight:750;color:#64748b}.auth-control-help{height:16px;overflow:hidden;font-size:9px;line-height:16px;color:#94a3b8;white-space:nowrap;text-overflow:ellipsis}
.auth-user-security-body{padding:14px;display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px 16px;align-items:center}.auth-user-security-status{display:flex;align-items:center;gap:9px}.auth-user-security-status>span{font-size:11px;color:#64748b}.auth-user-security-actions{display:flex;gap:8px;justify-content:flex-end}.auth-user-security-help{grid-column:1/-1;height:18px;overflow:hidden;font-size:10px;line-height:18px;color:#94a3b8;white-space:nowrap;text-overflow:ellipsis}.auth-block-user-button{border-color:#f59e0b!important;color:#92400e!important;background:#fffbeb!important}.auth-delete-user-button{border:1px solid #fecaca!important;background:#fff1f2!important;color:#b91c1c!important}.auth-delete-user-button:hover{background:#ffe4e6!important}.auth-user-security-actions button:disabled{opacity:.45;cursor:not-allowed}
.auth-plan-access-grid{padding:8px 14px;background:#fbfdff;display:grid;gap:3px}.auth-plan-access-row{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:10px;min-height:46px;padding:3px 5px;border-radius:8px}.auth-plan-access-row:hover{background:#f1f5f9}.auth-plan-access-row.archived{opacity:.62}.auth-plan-access-row label{font-size:12px;display:flex;gap:7px;align-items:center;min-width:0}.auth-plan-access-row label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-plan-access-row small{color:#94a3b8}
.auth-user-editor-foot{border-top:1px solid #e2e8f0;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:62px;box-sizing:border-box}.auth-user-editor-foot>div{display:flex;gap:8px}.auth-user-save-status{height:18px;overflow:hidden;font-size:12px;line-height:18px;color:#64748b}.auth-user-save-status.ok{color:#047857}.auth-user-save-status.error{color:#b91c1c}

@media(max-width:900px){
  .auth-user-row{grid-template-columns:auto minmax(180px,1fr) auto}.auth-user-row-meta{grid-column:2}.auth-user-row-access{display:none}.auth-manage-user-button{grid-column:3;grid-row:1 / span 2}
  .auth-user-account-grid{grid-template-columns:1fr 1fr}.auth-user-account-grid.compact{grid-template-columns:1fr 1fr}.auth-user-account-grid .auth-control-field:first-child{grid-column:1/-1}
}
@media(max-width:760px){
  .auth-account-name{display:none}.auth-account-button{padding-right:6px}.auth-access-backdrop{padding:0}.auth-access-modal{width:100vw;height:100vh;max-height:none;border-radius:0}
  .auth-add-user{grid-template-columns:1fr}.auth-add-user form{grid-template-columns:1fr}.auth-access-inline-status{grid-column:1}.auth-user-row{grid-template-columns:auto 1fr;gap:8px}.auth-user-row-meta{grid-column:2}.auth-manage-user-button{grid-column:1/-1;grid-row:auto;width:100%}
  .auth-user-editor-backdrop{padding:0}.auth-user-editor{width:100vw;height:100vh;max-height:none;border-radius:0}.auth-user-account-grid,.auth-user-account-grid.compact{grid-template-columns:1fr}.auth-user-account-grid .auth-control-field:first-child{grid-column:auto}.auth-user-security-body{grid-template-columns:1fr}.auth-user-security-actions{justify-content:stretch;flex-direction:column}.auth-user-security-actions button{width:100%}.auth-user-security-help{grid-column:1}.auth-plan-access-row{grid-template-columns:1fr 120px}.auth-user-editor-foot{align-items:flex-start;flex-direction:column}.auth-user-editor-foot>div{width:100%}.auth-user-editor-foot button{flex:1}
}
[data-theme="dark"] .auth-card,[data-theme="dark"] .auth-account-menu,[data-theme="dark"] .auth-access-modal,[data-theme="dark"] .auth-user-row,[data-theme="dark"] .auth-user-editor{background:#111827;color:#e5e7eb;border-color:#334155}
[data-theme="dark"] .auth-overlay{background:#0f172a}
[data-theme="dark"] .auth-form input,[data-theme="dark"] .auth-account-button,[data-theme="dark"] .auth-add-user input,[data-theme="dark"] .auth-user-editor input,[data-theme="dark"] .auth-user-editor select,[data-theme="dark"] .auth-plan-access-row select{background:#0f172a;color:#e5e7eb;border-color:#475569}
[data-theme="dark"] .auth-account-button{background:#111827;color:#e5e7eb}[data-theme="dark"] .auth-account-menu button{color:#e5e7eb}
[data-theme="dark"] .auth-account-menu button:hover,[data-theme="dark"] .auth-plan-access-row:hover,[data-theme="dark"] .auth-user-row:hover{background:#1e293b}
[data-theme="dark"] .auth-add-user,[data-theme="dark"] .auth-plan-access-grid,[data-theme="dark"] .auth-user-editor-section-head{background:#0f172a;border-color:#334155}
[data-theme="dark"] .auth-block-user-button{background:#422006!important;border-color:#92400e!important;color:#fde68a!important}[data-theme="dark"] .auth-delete-user-button{background:#450a0a!important;border-color:#7f1d1d!important;color:#fecaca!important}
[data-theme="dark"] .auth-user-editor-section,[data-theme="dark"] .auth-user-editor-head,[data-theme="dark"] .auth-user-editor-foot{border-color:#334155}

/* v0.12.1 — plan-level read-only UX. Backend remains the authorization boundary;
   these rules remove edit affordances for viewer memberships. */
.plan-write-hidden{display:none!important}
body.plan-readonly .cell-input[readonly],
body.plan-readonly .aant-target-input[readonly],
body.plan-readonly .aanvraag-input[readonly]{cursor:default;background:transparent}
body.plan-readonly .cell-input[readonly]:focus{caret-color:transparent}
body.plan-readonly .drag-grip,
body.plan-readonly .group-grip,
body.plan-readonly .insert-mini,
body.plan-readonly .col-resizer{display:none!important}
body.plan-readonly .transport-readonly-item{cursor:default!important}
body.plan-readonly .transport-person{cursor:default}

/* v0.12.1 — authenticated plan presence */
.plan-presence{display:flex;align-items:center;gap:0;margin-left:auto;margin-right:8px;min-width:0}
.plan-presence[hidden]{display:none!important}
.presence-avatar,.presence-more{width:32px;height:32px;border-radius:999px;border:2px solid var(--presence-color,#64748b);background:#fff;color:#0f172a;display:grid;place-items:center;font:800 11px/1 Segoe UI,Arial,sans-serif;padding:0;cursor:pointer;box-shadow:0 0 0 2px rgba(255,255,255,.72);overflow:hidden}
.presence-avatar+ .presence-avatar{margin-left:-7px}
.presence-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.presence-more{margin-left:-7px;border-color:#94a3b8;background:#f8fafc;font-size:10px}
.presence-popover{position:fixed;z-index:10060;width:280px;max-height:min(420px,70vh);overflow:auto;background:#fff;border:1px solid #d7e1ed;border-radius:12px;padding:10px;box-shadow:0 16px 44px rgba(15,23,42,.2);color:#0f172a}
.presence-popover>strong{display:block;padding:2px 4px 8px;font-size:12px}
.presence-popover-row{display:flex;align-items:center;gap:9px;padding:7px 5px;border-radius:9px}
.presence-popover-row:hover{background:#f8fafc}
.presence-popover-row .presence-avatar{flex:0 0 30px;width:30px;height:30px;cursor:default}
.presence-popover-row>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.presence-popover-row b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.presence-popover-row small{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.presence-jump-btn{align-self:flex-start;margin-top:5px;min-height:27px;padding:4px 9px;border:1px solid #b8c9da;border-radius:7px;background:#fff;color:#0b5f91;font:700 10px/1.2 Segoe UI,Arial,sans-serif;cursor:pointer}.presence-jump-btn:hover{background:#eef7fd;border-color:#7bb3d6}.presence-jump-btn:focus-visible{outline:2px solid #0b83c9;outline-offset:1px}
.history-batch-subline{display:flex!important;align-items:center;gap:8px;flex-wrap:wrap}
.history-actor{display:inline-flex;align-items:center;gap:5px;max-width:220px;color:#475569;font-size:10px;font-weight:600}
.history-actor-avatar{width:19px;height:19px;border-radius:999px;background:#e0f2fe;color:#075985;display:grid;place-items:center;font-size:8px;font-weight:900;flex:0 0 19px}
.history-cell-entry-head>span .history-actor{margin-left:8px;vertical-align:middle}
@media(max-width:900px){.plan-presence{display:none!important}}
html[data-theme="dark"] .presence-avatar,html[data-theme="dark"] .presence-more{background:#172033;color:#e5edf7;box-shadow:0 0 0 2px rgba(15,23,42,.75)}
html[data-theme="dark"] .presence-popover{background:#111827;border-color:#334155;color:#e5edf7}
html[data-theme="dark"] .presence-popover-row:hover{background:#1e293b}
html[data-theme="dark"] .presence-popover-row small,html[data-theme="dark"] .history-actor{color:#94a3b8}
html[data-theme="dark"] .presence-jump-btn{background:#172033;border-color:#475569;color:#d7ecfb}html[data-theme="dark"] .presence-jump-btn:hover{background:#1e293b;border-color:#64748b}
html[data-theme="dark"] .history-actor-avatar{background:#0c4a6e;color:#e0f2fe}

/* v0.13.2 — live view presence: remote selection/editing stays ephemeral and respects sticky/frozen Planner layers. */
.presence-remote-range.presence-remote-rect{position:fixed;z-index:7;border:0;border-radius:4px;pointer-events:none;box-shadow:inset 0 0 0 9999px color-mix(in srgb,var(--presence-color,#64748b) 5%,transparent);will-change:left,top,width,height}
.presence-remote-range.presence-remote-contour{position:fixed;z-index:26;border:2px solid var(--presence-color,#64748b);border-radius:4px;pointer-events:none;background:transparent;will-change:left,top,width,height;box-sizing:border-box}
.presence-remote-editing{z-index:2}
.presence-editing-tag{position:fixed;z-index:28;max-width:190px;height:18px;padding:0 6px;border-radius:5px 5px 5px 0;background:var(--presence-color,#64748b);color:#fff;font:700 10px/18px Segoe UI,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:0 2px 7px rgba(15,23,42,.22);box-sizing:border-box}
.presence-jump-highlight{animation:presence-jump-pulse .8s ease-in-out 2}
@keyframes presence-jump-pulse{0%,100%{filter:none}50%{filter:brightness(.82) saturate(1.35)}}
.presence-popover-row[role="button"]{cursor:pointer;outline:none}
.presence-popover-row[role="button"]:focus-visible{box-shadow:inset 0 0 0 2px #0b83c9}
html[data-theme="dark"] .presence-editing-tag{box-shadow:0 2px 8px rgba(0,0,0,.45)}
@media(max-width:900px){.presence-editing-tag{display:none}}

/* v0.15.0 — explicit collaborative conflict resolution. */
.conflict-backdrop{z-index:1800;background:rgba(15,23,42,.62);backdrop-filter:blur(2px)}
.conflict-modal{border:1px solid color-mix(in srgb,var(--danger,#b42318) 28%,#cbd5e1);box-shadow:0 22px 70px rgba(15,23,42,.28)}
.conflict-modal-head{background:#8f2d20}
.conflict-body{display:grid;gap:12px}
.conflict-alert{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid color-mix(in srgb,var(--danger,#b42318) 28%,#e2e8f0);background:color-mix(in srgb,var(--danger,#b42318) 7%,#fff);border-radius:10px}
.conflict-alert-icon{font-size:20px;line-height:1}
.conflict-alert strong{display:block;margin-bottom:3px}
.conflict-alert p{margin:0;color:#526173;font-size:12px;line-height:1.45}
.conflict-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.conflict-context-card{padding:9px 10px;border:1px solid #dbe3ec;border-radius:9px;background:#f8fafc;min-width:0}
.conflict-context-card span{display:block;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.conflict-context-card strong{display:block;overflow-wrap:anywhere;font-size:12px}
.conflict-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.conflict-value{border:1px solid #dbe3ec;border-radius:10px;padding:10px;background:#fff;min-width:0}
.conflict-value.server{border-color:color-mix(in srgb,#2563eb 30%,#dbe3ec)}
.conflict-value.local{border-color:color-mix(in srgb,#d97706 34%,#dbe3ec)}
.conflict-value label{display:block;font-size:10px;font-weight:850;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.conflict-value code{display:block;padding:8px;border-radius:7px;background:#f1f5f9;white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;overflow:auto;font:600 12px/1.35 Consolas,monospace}
.conflict-note{font-size:11px;line-height:1.5;color:#64748b}
.conflict-foot{justify-content:space-between;align-items:center}
.conflict-foot .conflict-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.conflict-busy{opacity:.72;pointer-events:none}
html[data-theme="dark"] .conflict-modal{border-color:#76453f}
html[data-theme="dark"] .conflict-modal-head{background:#6f271f}
html[data-theme="dark"] .conflict-alert{background:#2e2020;border-color:#76453f}
html[data-theme="dark"] .conflict-alert p,html[data-theme="dark"] .conflict-note{color:#aebdca}
html[data-theme="dark"] .conflict-context-card,html[data-theme="dark"] .conflict-value{background:#12202b;border-color:#405261}
html[data-theme="dark"] .conflict-value code{background:#0d1821;color:#e7eef5}
@media(max-width:640px){.conflict-context,.conflict-values{grid-template-columns:1fr}.conflict-foot{align-items:stretch}.conflict-foot .conflict-actions{width:100%}.conflict-foot .conflict-actions .btn{flex:1 1 145px}}

/* v0.15.2 — readable PostgreSQL vs local conflict diff preview. */
.conflict-modal{width:min(900px,94vw)}
.conflict-diff-section{border:1px solid #dbe3ec;border-radius:10px;overflow:hidden;background:#fff}
.conflict-diff-title{padding:10px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;display:flex;flex-direction:column;gap:2px}
.conflict-diff-title strong{font-size:12px;color:#27364a}
.conflict-diff-title span{font-size:11px;line-height:1.4;color:#64748b}
.conflict-diff-list{max-height:250px;overflow:auto}
.conflict-diff-head,.conflict-diff-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(145px,1fr) minmax(145px,1fr);align-items:stretch}
.conflict-diff-head{position:sticky;top:0;z-index:2;background:#eef3f8;border-bottom:1px solid #dbe3ec;color:#64748b;font-size:9px;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.conflict-diff-head span{padding:6px 10px}
.conflict-diff-row{border-bottom:1px solid #edf1f5}
.conflict-diff-row:last-child{border-bottom:0}
.conflict-diff-element{display:flex;align-items:center;padding:9px 10px;min-width:0;background:#fbfcfd}
.conflict-diff-element strong{font-size:11px;line-height:1.35;overflow-wrap:anywhere;color:#27364a}
.conflict-diff-value{min-width:0;padding:7px 9px;border-left:1px solid #edf1f5}
.conflict-diff-value>span{display:none;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:4px}
.conflict-diff-value code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;max-height:82px;overflow:auto;padding:5px 6px;border-radius:6px;background:#f1f5f9;font:650 11px/1.35 Consolas,monospace;color:#27364a}
.conflict-diff-value.server code{box-shadow:inset 3px 0 0 #2563eb}
.conflict-diff-value.local code{box-shadow:inset 3px 0 0 #d97706}
.conflict-diff-state,.conflict-diff-more{padding:10px 12px;font-size:11px;line-height:1.45;color:#64748b}
.conflict-diff-state.compact{padding-top:6px;border-top:1px dashed #e2e8f0;font-style:italic}
.conflict-diff-state.warning{color:#9a5b10;background:#fff9ed;border-top:1px solid #f3dfbd}
.conflict-diff-more{border-top:1px solid #edf1f5;font-weight:700}
html[data-theme="dark"] .conflict-diff-section{background:#12202b;border-color:#405261}
html[data-theme="dark"] .conflict-diff-title,html[data-theme="dark"] .conflict-diff-head,html[data-theme="dark"] .conflict-diff-element{background:#172a38;border-color:#405261}
html[data-theme="dark"] .conflict-diff-title strong,html[data-theme="dark"] .conflict-diff-element strong{color:#edf5fa}
html[data-theme="dark"] .conflict-diff-title span,html[data-theme="dark"] .conflict-diff-head,html[data-theme="dark"] .conflict-diff-state,html[data-theme="dark"] .conflict-diff-more{color:#aebdca}
html[data-theme="dark"] .conflict-diff-row,html[data-theme="dark"] .conflict-diff-value,html[data-theme="dark"] .conflict-diff-more{border-color:#304554}
html[data-theme="dark"] .conflict-diff-value code{background:#0d1821;color:#edf5fa}
html[data-theme="dark"] .conflict-diff-state.warning{background:#332b1c;color:#e7c98e;border-color:#6c5632}
@media(max-width:700px){
  .conflict-diff-head{display:none}
  .conflict-diff-row{grid-template-columns:1fr;padding:8px 10px;gap:6px}
  .conflict-diff-element{padding:2px 0 4px;background:transparent}
  .conflict-diff-value{padding:0;border-left:0}
  .conflict-diff-value>span{display:block}
  .conflict-diff-list{max-height:310px}
}

/* v0.20.24 — compact pre-auth language selector */
.auth-language-switch{display:flex;justify-content:flex-end;gap:4px;margin:0 0 14px;min-height:28px}
.auth-language-switch button{min-width:36px;height:28px;border:1px solid #d8e0e9;border-radius:8px;background:#fff;color:#64748b;font:700 10px/1 inherit;letter-spacing:.06em;cursor:pointer;transition:border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}
.auth-language-switch button:hover{border-color:#aebdca;color:#111827;background:#f8fafc}
.auth-language-switch button.active{border-color:#ed1c2b;background:#fff4f5;color:#b51220;box-shadow:0 0 0 2px rgba(237,28,43,.08)}
.auth-language-switch button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
@media(max-width:620px){.auth-language-switch{margin-bottom:10px}}

/* v0.20.26 — expired/used password-reset link state */
.auth-reset-checking{min-height:230px;display:flex;align-items:center;justify-content:center;gap:11px;color:#64748b;font-size:13px;font-weight:700;text-align:center}
.auth-reset-spinner{width:20px;height:20px;border:2px solid #e2e8f0;border-top-color:#e21d2a;border-radius:50%;animation:auth-reset-spin .8s linear infinite;flex:0 0 auto}
@keyframes auth-reset-spin{to{transform:rotate(360deg)}}
.auth-reset-invalid-state{display:grid;gap:18px;text-align:center;padding-top:4px}
.auth-reset-invalid-state .auth-stage-head{margin:0}.auth-reset-invalid-state .auth-stage-head p{max-width:360px;margin-left:auto;margin-right:auto}
.auth-reset-invalid-icon{width:52px;height:52px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:#fff1f2;border:1px solid #fecdd3;color:#be123c;font-size:25px;font-weight:850;line-height:1}
.auth-reset-invalid-icon.neutral{background:#f8fafc;border-color:#e2e8f0;color:#64748b;font-size:20px;letter-spacing:2px;padding-left:2px}
.auth-reset-invalid-actions{display:grid;gap:9px}.auth-reset-invalid-actions .auth-primary,.auth-reset-invalid-actions .auth-secondary{margin-top:0}
[data-theme="dark"] .auth-reset-invalid-icon{background:#3f1118;border-color:#7f1d2d;color:#fecdd3}
[data-theme="dark"] .auth-reset-invalid-icon.neutral{background:#172033;border-color:#334155;color:#cbd5e1}
[data-theme="dark"] .auth-reset-spinner{border-color:#334155;border-top-color:#e21d2a}
