:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#183147;background:#f3f6f8;font-size:16px;--navy:#132d46;--teal:#147d75;--line:#dfe6ec;--muted:#637588}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button,.button{border:1px solid var(--line);border-radius:7px;background:white;padding:9px 13px;color:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.button:hover{background:#edf4f6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #28b7a5;outline-offset:2px}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#106b65}.danger{color:#b2373a}.shell{min-height:100vh;display:grid;grid-template-columns:215px minmax(0,1fr)}aside{background:var(--navy);color:#d8e4ef;padding:29px 18px;display:flex;flex-direction:column;gap:30px;position:sticky;top:0;height:100vh}.brand{font-size:1.65rem;letter-spacing:2px;font-weight:800;color:inherit;line-height:1.15}.brand span{color:#59d1bb;font-size:1.25rem}.brand small{display:block;font-size:.7rem;font-weight:500;letter-spacing:3px;margin-top:9px;color:#8caabc}nav{display:grid;gap:7px}nav button{justify-content:start;border:0;background:transparent;color:#b5c8d8;padding:12px 14px;font-size:.94rem}nav button.active{background:#28445d;color:white;box-shadow:inset 3px 0 #58d5bd}nav button:hover{background:#213e57}.nav-icon{font-size:1.15rem;width:22px}.aside-bottom{margin-top:auto;font-size:.875rem;color:#bed0de;line-height:1.7}.aside-bottom .tag{background:#29475e;color:#d8e9f5}.content{min-width:0;padding:28px 32px 40px}.topline,.section-head,.toolbar,.filters,.actions,.row{display:flex;align-items:center;gap:10px}.topline{justify-content:space-between;margin-bottom:28px}.eyebrow{color:var(--muted);font-size:.875rem}h1{font-size:1.65rem;margin:5px 0 0;letter-spacing:-.7px}h2{font-size:1.12rem;margin:0}h3{font-size:1rem;margin:0 0 12px}p{line-height:1.5}.subtle{color:var(--muted);font-size:.875rem}.tag{display:inline-flex;align-items:center;border-radius:4px;padding:3px 7px;font-size:.78rem;font-weight:600;background:#edf2f6;color:#4a6177;white-space:nowrap}.demo-banner{background:#fff4d9;color:#74570a;padding:9px 15px;font-size:.875rem;border-radius:7px;margin-bottom:20px;display:flex;justify-content:space-between;gap:10px}.demo-banner select{padding:3px 8px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 22px}.stat{background:white;border:1px solid var(--line);border-radius:9px;padding:16px 19px}.stat span{font-size:.875rem;color:var(--muted)}.stat strong{display:block;font-size:1.8rem;letter-spacing:-1px;margin-top:7px}.stat small{font-size:.8rem;font-weight:400;letter-spacing:0;color:var(--muted)}.panel{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.toolbar{justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.filters{padding:13px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}input,select,textarea{border:1px solid #cdd8e1;border-radius:6px;padding:9px 10px;background:white;color:#183147;min-width:0;font-size:.875rem}textarea{min-height:70px;resize:vertical}.filters input{min-width:190px}.table-scroll{overflow:auto;max-height:68vh;isolation:isolate}table{border-collapse:separate;border-spacing:0;width:100%;font-size:.875rem}th{text-align:left;color:#566e82;background:#f7f9fb;font-weight:600}th,td{padding:12px 14px;border-bottom:1px solid #e7edf2}thead th{position:sticky;top:0;z-index:3}tr:last-child td{border-bottom:0}.planning{table-layout:fixed;width:max-content;min-width:100%}.planning th.person,.planning td.person{width:214px;min-width:214px;position:sticky;left:0;background:white;z-index:2;border-right:1px solid var(--line)}.planning th.person{z-index:5;background:#f7f9fb}.planning th.day{width:200px;text-align:center;font-size:.875rem;border-right:1px solid var(--line)}.planning .today{background:#e6f5f1}.planning td.slots{padding:6px;border-right:1px solid var(--line);vertical-align:top;height:78px}.halves{display:grid;grid-template-columns:1fr 1fr;gap:4px;height:100%}.slot{min-height:62px;background:#fafcfd;border-radius:5px;position:relative;padding:2px;display:flex;flex-direction:column;gap:3px}.slot.free{background:#f6faf9}.slot.closed{background:repeating-linear-gradient(135deg,#f4f5f7,#f4f5f7 4px,#eaeef2 4px,#eaeef2 5px)}.slot.dragover{outline:2px solid var(--teal);background:#ddf6ef}.slot-label{font-size:.7rem;color:#8c9aa6;text-align:center;margin-top:auto;padding:4px 0}.add-slot{border:0;background:transparent;color:#95b7ad;width:100%;height:100%;padding:8px;font-weight:400;font-size:.78rem;min-height:52px}.booking{display:block;width:100%;font-size:.75rem;text-align:left;font-weight:500;padding:7px 6px;border-radius:4px;border:0;border-left:3px solid var(--tone,#298c83);background:var(--tint,#e2f3ee);color:#163f46;overflow:hidden;line-height:1.4;min-height:52px;word-break:break-word}.booking strong{display:block;font-size:.77rem}.booking:hover{filter:brightness(.97);background:var(--tint,#e2f3ee)}.booking.conflict{box-shadow:inset 0 0 0 1px #de8d27}.person strong{display:block;font-size:.875rem}.person small{display:block;color:var(--muted);margin-top:5px;font-size:.75rem}.person button{padding:0;border:0;text-align:left;background:none}.legend{display:flex;flex-wrap:wrap;gap:18px;padding:12px 18px;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.legend i{width:9px;height:9px;display:inline-block;background:#c4e8dc;border-radius:2px;margin-right:5px}.legend .grey{background:#dfe5eb}.legend .orange{background:#f2cd8c}.section-head{justify-content:space-between;margin:0 0 17px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}.project-card{padding:20px;background:white;border:1px solid var(--line);border-radius:10px;border-top:4px solid var(--tone)}.project-card h2{margin:8px 0}.project-card p{margin:7px 0}.project-card .actions{margin-top:18px}.progress{height:6px;background:#e7edf2;border-radius:10px;overflow:hidden;margin:8px 0}.progress i{display:block;height:100%;background:var(--teal)}.progress.over i{background:#cf8231}.phase-title{font-weight:600}.phase-caption{font-size:.75rem;color:var(--muted);margin-top:5px}.phase-day{min-width:190px;vertical-align:top;border-right:1px solid var(--line)}.phase-day .booking{margin-bottom:4px;min-height:0}.empty{padding:45px 22px;text-align:center;color:var(--muted)}.empty h2{color:#183147}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid .panel{padding:20px}.list-item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border:0}.list-item small{display:block;color:var(--muted);margin-top:4px}.warn{color:#925806;background:#fff5df;border:1px solid #efd298;border-radius:6px;padding:12px;font-size:.875rem;line-height:1.5}.warn ul{padding-left:18px;margin:8px 0}.error{color:#a72934;background:#fff0f0;padding:12px;border-radius:6px;font-size:.875rem}.login{max-width:450px;margin:15vh auto;padding:35px;background:white;border:1px solid var(--line);border-radius:12px}.login h1{margin:32px 0 15px}.login .button{margin-top:15px;width:100%;padding:13px}dialog{border:0;border-radius:12px;padding:0;width:min(610px,calc(100vw - 24px));max-height:90vh;box-shadow:0 25px 100px #10253b50;color:#183147}dialog::backdrop{background:#10253b65;backdrop-filter:blur(2px)}.modal-head{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head button{border:0;font-size:1.2rem;padding:3px 9px}.modal-body{padding:22px 24px;display:grid;gap:17px}.modal-foot{padding:17px 24px;background:#f7f9fb;display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line)}label.field{display:grid;gap:7px;font-size:.875rem;font-weight:600}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checks{display:flex;gap:12px;flex-wrap:wrap}.checks label{font-size:.875rem;display:flex;align-items:center;gap:5px}.roster{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;font-size:.875rem;align-items:center}.roster label{text-align:center}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#132d46;color:white;padding:12px 20px;border-radius:8px;z-index:50;display:none;max-width:90vw;font-size:.875rem}.budget-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);gap:8px}.notice{padding:10px 18px;color:var(--muted);font-size:.8rem}.mobile-only{display:none}@media(max-width:1000px){.shell{grid-template-columns:175px minmax(0,1fr)}aside{padding:23px 12px}.content{padding:23px 18px}.stats{gap:9px}.stat{padding:13px}.topline{align-items:flex-start}.settings-grid{grid-template-columns:1fr}}@media(max-width:720px){.shell{display:block}aside{position:static;height:auto;padding:15px;gap:14px}.brand{font-size:1.25rem}.brand small{display:inline;margin-left:10px}.aside-bottom{display:none}nav{display:flex;overflow:auto;gap:3px}nav button{white-space:nowrap;padding:9px 11px;font-size:.8rem}.nav-icon{display:none}.content{padding:18px 12px}.topline{margin-bottom:18px;gap:10px}h1{font-size:1.4rem}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:1.5rem}.filters>*{flex:1;max-width:100%}.planning th.person,.planning td.person{width:148px;min-width:148px}.planning th.day{width:184px}.topline .actions{flex-wrap:wrap;justify-content:flex-end}.fields{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr}.demo-banner{flex-wrap:wrap}.toolbar{padding:12px}.toolbar .row{flex-wrap:wrap}.table-scroll{max-height:65vh}.settings-grid{grid-template-columns:1fr}.modal-body{padding:18px}.modal-foot{padding:14px}.section-head{flex-wrap:wrap}}
.slot>.booking~.add-slot{min-height:18px;height:18px;padding:0;font-size:.8rem}
/* Catael website palette: #007480, white and #f5f5f5. Original logo in catael-logo.svg. */
:root{font-family:"proxima-nova","Segoe UI",Arial,sans-serif;color:#292d30;background:#f5f5f5;--navy:#007480;--teal:#007480;--line:#e0e4e4;--muted:#69777a}
aside{background:#fff;color:#333;border-right:1px solid #e4e7e7;padding:26px 16px}.brand{letter-spacing:0;line-height:1}.brand img{display:block;width:172px;max-width:100%;height:auto}.brand small{color:#007480;letter-spacing:4px;font-size:.72rem;margin:13px 0 0 8px}nav button{color:#555;border-radius:0;font-weight:600}nav button.active{background:#e8f2f3;color:#007480;box-shadow:inset 3px 0 #007480}nav button:hover{background:#f0f6f6}.aside-bottom{color:#647276}.aside-bottom .tag{background:#e7f1f2;color:#007480}.content{padding-top:28px}.eyebrow{color:#007480}h1{color:#25292b;font-weight:650;letter-spacing:-.6px}.primary{background:#007480;border-color:#007480}.primary:hover{background:#005d67}.panel,.stat,.project-card{border-radius:2px;border-color:#e1e5e5;box-shadow:0 4px 18px #223c3d06}.stat strong{color:#007480}.stat:first-child{border-top:3px solid #007480}.stat:not(:first-child){border-top:3px solid #d5e2e3}button,.button,input,select,textarea{border-radius:3px}button:hover,.button:hover{background:#edf4f4}.primary:hover{color:#fff;background:#005d67}.tag{border-radius:2px}.login{border-radius:2px;border-top:4px solid #007480}.login .brand img{width:220px}.today{background:#e5f1f2!important}.selection-help{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 18px;font-size:.875rem;color:#65767a;border-bottom:1px solid var(--line);background:#fcfdfd}.selection-help strong{color:#007480;font-weight:600}.selection-help label{display:flex;align-items:center;gap:8px;white-space:nowrap}.selection-help select{padding:6px 8px}.employee-grid{width:100%;min-width:calc(210px + var(--days)*190px)}.employee-grid-head,.employee-grid-row{display:grid;grid-template-columns:210px minmax(0,1fr)}.employee-grid-head{position:sticky;top:0;z-index:8;background:#f5f7f7;border-bottom:1px solid #dce3e3}.grid-person{position:sticky;left:0;z-index:6;display:flex;align-items:center;background:#fff;border-right:1px solid #dce3e3;padding:13px 15px;font-size:.875rem;gap:7px}.employee-grid-head .grid-person{background:#f5f7f7;z-index:9;font-weight:600}.grid-person button{border:0;padding:0;background:transparent;text-align:left;display:block;width:100%;color:#263235}.grid-person strong{font-size:.875rem;display:block;font-weight:600}.grid-person small{font-size:.78rem;color:#7c898c;display:block;margin-top:5px}.grid-days{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr))}.grid-day{text-align:center;border-right:1px solid #dce3e3;padding:11px 0 0;font-size:.875rem}.grid-day>div{display:grid;grid-template-columns:1fr 1fr;font-size:.72rem;color:#809195;margin-top:9px;padding-bottom:7px}.employee-grid-row{border-bottom:1px solid #e3e9e9}.employee-grid-row:last-child{border-bottom:0}.employee-grid-row:hover .grid-person{background:#f8fbfb}.schedule{position:relative;min-width:0;background:#fff}.schedule-cells{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr))}.range-cell{border:0;border-right:1px dashed #e1e7e7;background:#fff;display:flex;align-items:end;justify-content:center;border-radius:0;padding:0 1px 5px;color:#829b9c;font-size:.72rem;font-weight:400;overflow:hidden;user-select:none}.range-cell.end-day{border-right:1px solid #dce3e3}.range-cell.free:hover{background:#ecf7f6}.range-cell.closed{background:repeating-linear-gradient(135deg,#f3f5f5,#f3f5f5 4px,#ecefef 4px,#ecefef 5px);color:#99a4a4}.range-cell:disabled{opacity:1}.range-cell.selecting,.phase-day.selecting{background:#c2e5e7!important;box-shadow:inset 0 2px #007480,inset 0 -2px #007480}.range-selecting{user-select:none}.schedule-bars{position:absolute;left:0;right:0;top:7px;display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr));grid-auto-rows:36px;pointer-events:none;gap:0}.plan-block{pointer-events:auto;min-width:0;display:flex;align-items:center;justify-content:start;gap:6px;border:1px solid color-mix(in srgb,var(--tone) 30%,white);border-left:3px solid var(--tone);background:var(--tint);color:#254146;margin:0 2px 5px;padding:5px 7px;border-radius:3px;font-size:.875rem;overflow:hidden;text-align:left;cursor:grab;height:31px;box-shadow:0 1px 2px #1d363710}.plan-block:hover{background:var(--tint);filter:brightness(.96)}.plan-block:active{cursor:grabbing}.plan-block strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600}.block-grip{font-size:1rem;opacity:.6;flex-shrink:0}.block-size{font-size:.75rem;white-space:nowrap;margin-left:auto;opacity:.8;flex-shrink:0}.plan-block.conflict{border:1px solid #bf7925;border-left:3px solid #bf7925}.schedule.dragover,.phase-day.dragover{outline:2px solid #007480;outline-offset:-2px}.block-summary{background:#edf5f5;border-left:3px solid #007480;padding:13px 15px;display:grid;gap:5px;font-size:.875rem}.block-summary span{color:#64797b}.modal-head h2{color:#007480}.modal-foot{background:#f5f7f7}#toast{background:#007480}.progress i{background:#007480}
@media(max-width:720px){aside{padding:13px}.brand{display:flex;align-items:center;gap:15px}.brand img{width:130px}.brand small{margin:0}.selection-help{align-items:flex-start;flex-direction:column;gap:10px;padding:11px 13px;font-size:.8rem}.employee-grid{min-width:calc(150px + var(--days)*180px)}.employee-grid-head,.employee-grid-row{grid-template-columns:150px minmax(0,1fr)}.grid-person{padding:10px}.content{padding:18px 12px}.login .brand{display:block}.login .brand small{margin-top:10px}}
.employee-grid{min-width:calc(210px + var(--days)*160px)}.filters input[type=checkbox]{min-width:0;width:auto}
@media(max-width:720px){.employee-grid{min-width:calc(150px + var(--days)*160px)}}

.block-moving{user-select:none;cursor:grabbing}.plan-block.moving{opacity:.55}.range-cell.drop-target,.phase-day.drop-target{background:#b9dfe2!important;box-shadow:inset 0 0 0 2px #007480}

.import-panel{padding:24px;max-width:1250px}.import-panel>p{line-height:1.5}.import-panel .field{margin:18px 0}.import-panel td{vertical-align:top;max-width:480px;overflow-wrap:anywhere}.import-panel .actions{margin:20px 0}.project-controls{flex-wrap:wrap}.project-controls label{display:grid;gap:4px;color:#52666a;font-size:.8rem}.project-controls select{max-width:260px}.project-controls input{min-width:260px}.import-panel input[type=file]{max-width:100%}#import-feedback{margin:12px 0;color:#007480;font-weight:600}
aside .brand small{display:block;width:172px;max-width:100%;margin:13px 0 0;text-align:center}.project-controls{align-items:flex-end}.project-controls>label{display:grid;gap:6px;font-size:.8rem;color:var(--muted)}.project-controls>label>*{min-height:39px}.project-controls>button{min-height:39px}.project-picker,.quick-project-picker{position:relative}.quick-project-picker{min-width:310px}.quick-project-picker>input{width:100%}.project-suggestions{position:absolute;z-index:30;top:100%;left:0;right:0;min-width:340px;max-height:320px;overflow:auto;background:#fff;border:1px solid #cdd8e1;box-shadow:0 10px 30px #17333b22}.project-suggestions button{display:grid;width:100%;grid-template-columns:auto 1fr;text-align:left;border:0;border-bottom:1px solid #edf0f1;border-radius:0;justify-content:start}.project-suggestions button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-suggestions button small{grid-column:1/-1;color:var(--muted)}.empty-option{display:block;padding:12px;color:var(--muted)}.plan-block,.booking{position:relative}.resize-handle{position:absolute;top:0;bottom:0;width:9px;z-index:4;cursor:ew-resize}.resize-handle.start{left:0}.resize-handle.end{right:0}.resize-handle:hover{background:#ffffff75}.jump-link{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:auto;flex:0 0 auto;border-radius:2px;background:#ffffff85;color:var(--tone,#007480);font-weight:800;cursor:pointer}.booking .jump-link{float:right;margin:-2px 0 0 5px}.grid-day>small,.planning th.day small{display:block;color:#7b8b8d;font-size:.68rem;font-weight:500;margin-bottom:3px}.phase-settings form{padding:0 20px 20px}.phase-settings input[type=color]{min-width:55px;padding:3px}.zoom-controls button{font-size:1.05rem;min-width:38px}
.project-timeline-grid{width:100%;min-width:calc(210px + var(--days)*190px)}.project-plan{display:grid;grid-template-columns:210px minmax(0,1fr);border-bottom:2px solid #cfdadb}.project-plan-head{position:sticky;left:0;z-index:6;background:#edf4f4;border-right:1px solid #dce3e3;padding:10px 12px;display:flex;align-items:flex-start;gap:5px}.project-plan-head>button:last-child{border:0;background:transparent;padding:1px;text-align:left;display:block;min-width:0}.project-plan-head strong,.project-plan-head small{display:block}.project-plan-head small{margin-top:4px;color:var(--muted);font-weight:400}.project-collapse{border:0;background:transparent;padding:1px 5px;color:#007480;font-size:1.1rem}.project-plan-summary{position:relative;min-height:52px;background:#edf4f4;border-bottom:1px solid #d8e1e1;padding:10px 0}.project-summary-bars{display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr));grid-auto-rows:10px;gap:3px 0}.project-summary-bars span{height:9px;margin:0 2px;border-left:3px solid var(--tone);background:var(--tint);border-radius:2px}.project-phase-row{grid-column:1/-1;display:grid;grid-template-columns:210px minmax(0,1fr);border-bottom:1px solid #e3e9e9}.project-phase-row:last-child{border-bottom:0}.project-phase-row .grid-person{min-height:78px}.project-phase-row .progress{width:100%;margin-bottom:0}.project-plan.collapsed .project-plan-summary{min-height:52px}.block-moving .plan-block.moving{opacity:.7;box-shadow:0 5px 14px #17333b45}.range-cell.drop-target,.schedule.drop-target{outline:2px solid #007480;outline-offset:-2px;background:#dff2f0}

/* Compact phone layout: reserve the screen for the planning itself. */
@media(max-width:720px){
 .shell>aside{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;position:relative;z-index:15;border-bottom:1px solid var(--line)}
 aside .brand{display:block;flex:0 0 104px}
 aside .brand img{width:104px}
 aside .brand small{width:104px;font-size:9px;letter-spacing:3px;margin:4px 0 0}
 .mobile-fold{background:white;border-bottom:1px solid var(--line);min-width:0}
 .mobile-fold>summary{cursor:pointer;padding:10px 12px;color:#007480;font-size:13px;font-weight:600;min-height:38px}
 aside .mobile-fold{border:0}
 aside .mobile-fold[open]{position:absolute;right:8px;top:8px;width:min(300px,calc(100vw - 16px));border:1px solid var(--line);box-shadow:0 8px 24px #17333b25}
 aside .mobile-fold nav{display:grid;padding:6px}
 aside .mobile-fold .aside-bottom{display:block;padding:10px 16px;margin:0}
 .content{padding:8px 6px 16px}
 .topline{margin-bottom:8px;gap:6px;align-items:center}
 .eyebrow{display:none}
 h1{font-size:17px;letter-spacing:-.3px;margin:0}
 .topline .actions{gap:4px}
 .topline button{font-size:12px;padding:8px 6px;min-height:36px}
 .toolbar{padding:7px;gap:6px}
 .toolbar>.row{gap:5px}
 .toolbar>.row>strong{font-size:12px}
 .zoom-controls{width:100%;flex-wrap:nowrap!important}
 .zoom-controls input{flex:1;min-width:0;width:100px}
 .zoom-controls select{width:88px}
 .zoom-controls button{min-width:34px;padding:6px}
 .filters{display:grid;grid-template-columns:1fr 1fr;padding:8px;gap:8px}
 .filters>*{width:100%;min-width:0!important;max-width:100%}
 .filters input,.filters select,.project-controls input{width:100%;min-width:0;max-width:100%}
 .quick-project-picker{grid-column:1/-1}
 .project-suggestions{min-width:0;width:100%}
 input,select,textarea{font-size:16px}
 .stats{margin:0;padding:8px;gap:6px}
 .stat{padding:8px}.stat strong{font-size:20px}
 .selection-help{padding:8px;font-size:12px}
 .block-planning{max-height:calc(100dvh - 280px);min-height:220px;overscroll-behavior-x:contain}
 .employee-grid,.project-timeline-grid{min-width:calc(108px + var(--days)*88px)}
 .employee-grid-head,.employee-grid-row,.project-plan,.project-phase-row{grid-template-columns:108px minmax(0,1fr)}
 .grid-person{padding:7px 6px;overflow-wrap:anywhere}
 .grid-person strong{font-size:12px}.grid-person small{font-size:10px;margin-top:3px}
 .grid-day{padding-top:6px;font-size:11px}
 .grid-day>div{margin-top:4px;padding-bottom:4px;font-size:10px}
 .project-plan-head{padding:7px 4px;font-size:12px;overflow-wrap:anywhere}
 .project-plan-head small{font-size:10px}
 .project-plan-head .project-collapse{padding:2px}
 .plan-block{gap:3px;padding:4px 8px;font-size:12px}
 .plan-block strong{font-size:12px}
 .block-grip,.block-size{display:none}
 .legend{padding:8px;gap:8px;font-size:11px}
 .modal-head,.modal-body,.modal-foot{padding:12px}
 .modal-foot{flex-wrap:wrap}
 .import-panel{padding:12px}
 .login{margin:8vh 12px;padding:24px}
}

.help-chat{margin-top:16px}.guide-article{border-bottom:1px solid var(--line);padding:12px 0}.guide-article summary{cursor:pointer;font-weight:600;color:var(--teal)}.guide-article p{line-height:1.65;max-width:85ch}.outlook-block{cursor:pointer}

.meeting-panel{padding:20px}.meeting-card{padding:20px 0;border-top:1px solid #dce3e7;display:flex;justify-content:space-between;gap:20px;align-items:center}.meeting-card h2{margin:10px 0;font-size:19px}.meeting-card .actions{flex-wrap:wrap;max-width:400px}.availability-result{display:grid;gap:8px;padding:16px 0;border-bottom:1px solid #dce3e7}.meeting-panel .filters{padding:12px 0;align-items:end}.meeting-panel .field{flex:1}.meeting-card p{margin:8px 0}@media(max-width:700px){.meeting-card{display:block}.meeting-card .actions{margin-top:14px;max-width:none}.meeting-panel{padding:12px}.meeting-panel .filters{display:flex;flex-wrap:wrap}.meeting-card .actions button{flex:1}}

.test-banner{background:#fff0bc;color:#654400;border:2px solid #d49d15;padding:12px 16px;margin-bottom:16px;border-radius:6px}.feedback-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.feedback-filters .field{flex:1;min-width:180px}.feedback-card{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #dde5e7;padding:18px 0}.feedback-card h3{margin:10px 0}.feedback-description{white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0}.feedback-images{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.feedback-images img{max-width:100%;max-height:240px;object-fit:contain;border:1px solid #dde5e7}.feedback-images figure,.feedback-images a{margin:0;max-width:260px;display:grid;gap:8px}.feedback-images a:focus{outline:2px solid #007480}@media(max-width:700px){.feedback-card{display:block}.feedback-card button{margin-top:10px}.test-banner{font-size:13px}.feedback-images figure,.feedback-images a{max-width:100%}}
/* Consolidated planning workspace */
.team-scope{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:0 0 18px;padding:12px 16px;background:#eef5f5;border:1px solid #d5e3e5;border-radius:5px}.team-scope label{display:flex;gap:8px;align-items:center}.cockpit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cockpit-grid section{min-width:0}.cockpit-grid dt{color:#687f88;margin-top:10px}.cockpit-grid dd{margin:3px 0;overflow-wrap:anywhere}.inline-check{display:inline-flex;gap:6px;margin:8px}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.milestone-strip{display:flex;gap:10px;align-items:center;overflow-x:auto;padding:12px 0}.milestone-strip button{white-space:nowrap}.milestone-list{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0}.audit-list details{padding:10px 0;border-bottom:1px solid #dce5e7}.audit-values{display:grid;grid-template-columns:1fr 1fr;gap:12px}.audit-values pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:12px;padding:10px;background:#f4f7f8}.backlog-toggle{position:fixed;right:22px;bottom:20px;z-index:25;background:#007480;color:white;box-shadow:0 3px 15px #0002}.backlog-drawer{position:fixed;right:12px;top:90px;bottom:76px;width:min(420px,calc(100vw - 24px));z-index:24;background:white;border:1px solid #cbdadd;box-shadow:0 8px 35px #0003;padding:18px;overflow:auto;border-radius:8px}.backlog-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.backlog-filters select,.backlog-filters input{min-width:0;width:100%}.backlog-card{border-top:1px solid #dce5e7;padding:15px 0}.backlog-card[draggable=true]{cursor:grab}.backlog-card p{margin:7px 0}.backlog-card .actions{margin-top:10px;flex-wrap:wrap}.booking-backlog{padding:12px;background:#eef5f5;border-radius:5px}.booking-backlog #booking-backlog-list{max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:6px;margin-top:8px}.booking-backlog button[hidden]{display:none}.booking-backlog input{margin-top:10px;width:100%}@media(max-width:700px){.cockpit-grid,.audit-values{grid-template-columns:1fr}.team-scope{padding:8px;font-size:12px;gap:7px}.team-scope select{max-width:155px}.backlog-drawer{top:72px}.backlog-toggle{right:12px;bottom:12px}.milestone-strip{font-size:12px}.cockpit-grid .panel{padding:12px}}
/* v1.11: compact planbord, één kolom per dag. */
.brand{position:relative}.brand .test-stamp{position:absolute;right:-5px;top:-8px;z-index:2;transform:rotate(12deg);border:2px solid #ad7400;border-radius:3px;background:#fff2cddd;color:#805500;font-size:12px;letter-spacing:2px;padding:3px 6px;line-height:1.1}.login .test-stamp{right:0;top:0}
.planning-content{padding:12px 18px 24px}.planning-content .topline{margin-bottom:8px}.planning-content .eyebrow{display:none}.planning-content h1{font-size:1.25rem;margin:0}.planning-content .stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 8px;padding:6px 10px;background:white;border:1px solid var(--line)}.planning-content .stat{display:flex;align-items:baseline;gap:7px;padding:0;border:0;border-radius:0}.planning-content .stat strong{font-size:1rem;margin:0;letter-spacing:0}.planning-content .stat span{font-size:.75rem}
.planning-content .toolbar,.planning-content .filters{padding:7px 10px;gap:7px}.planning-content .toolbar button,.planning-content .filters input,.planning-content .filters select,.planning-content .filters button{padding:6px 8px;min-height:32px}.planning-content .team-scope{padding:0;margin:0;border:0;background:transparent;gap:6px}.planning-content .team-scope>label{font-size:0;gap:0}.planning-content .team-scope select{font-size:.875rem}.planning-content .team-scope>.subtle{max-width:210px;font-size:.75rem}.planning-content .team-scope .checks{gap:6px}.planning-content .team-scope input[type=checkbox]{min-width:0;min-height:0}.planning-content .filters input[type=checkbox]{min-width:0;min-height:0}.project-controls>label{gap:3px}.project-controls>label>span{min-height:0;line-height:1.2}.planning-content .project-controls>label>*{min-height:0}.planning-content .project-controls>label>input,.planning-content .project-controls>label>select{min-height:32px}.planning-content .selection-help{padding:5px 10px;font-size:.75rem}.planning-content .legend{padding:6px 10px;font-size:.75rem}.planning-content .milestone-strip{padding:3px 0;gap:6px}.planning-content .milestone-strip:empty{display:none}.planning-content .milestone-strip button{padding:4px 7px;font-size:.75rem}
.planning-content .block-planning{max-height:calc(100dvh - 265px);min-height:280px}.grid-day{padding:6px 0}.grid-day>small{margin-bottom:1px}.range-cell{border-right-style:solid}.employee-grid,.project-timeline-grid{min-width:calc(190px + var(--days)*100px)}.employee-grid-head,.employee-grid-row,.project-phase-row{grid-template-columns:190px minmax(0,1fr)}.grid-person{padding:8px 10px}.roster{grid-template-columns:1fr 1fr}.planning-task{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:7px 10px;background:#e4f2f1;font-size:.85rem}.planning-task button{margin-left:auto;padding:4px 8px}
.meeting-panel{padding:10px 14px}.meeting-panel .section-head p{margin:4px 0}.meeting-panel .filters{padding:6px 0}.meeting-card{padding:9px 0;gap:12px}.meeting-card .meeting-data{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;min-width:0;flex:1}.meeting-card h2{font-size:.94rem;margin:0}.meeting-card p{font-size:.8rem;margin:0}.meeting-card .actions{flex-shrink:0;gap:5px;max-width:340px}.meeting-card button{padding:5px 8px;font-size:.8rem}.meeting-description{flex-basis:100%;font-size:.8rem}.meeting-description summary{cursor:pointer;color:var(--muted)}.meeting-description p{white-space:pre-wrap;margin-top:5px}.backlog-card{padding:8px 0;font-size:.85rem}.backlog-card p{margin:3px 0;font-size:.78rem}.backlog-card .actions{margin-top:5px;gap:5px}.backlog-card button{padding:4px 7px;font-size:.78rem}.backlog-filters{gap:6px}.backlog-filters .field{gap:3px}.backlog-drawer{padding:12px}
@media(max-width:720px){.planning-content{padding:8px 6px}.planning-content .block-planning{max-height:calc(100dvh - 225px);min-height:260px}.employee-grid,.project-timeline-grid{min-width:calc(130px + var(--days)*90px)}.employee-grid-head,.employee-grid-row,.project-phase-row{grid-template-columns:130px minmax(0,1fr)}.planning-content .filters .team-scope{width:100%}.planning-content .team-scope>label{flex:1}.planning-content .team-scope select{max-width:none}.meeting-card{display:block}.meeting-card .actions{margin-top:6px;max-width:none}.meeting-card .actions button{flex:0 1 auto}.brand .test-stamp{font-size:9px;right:-8px;top:-3px}.planning-task span{flex-basis:100%}.planning-content .stats{margin:0}.planning-content .topline button{font-size:.72rem}}
.project-plan{grid-template-columns:190px minmax(0,1fr)}
@media(max-width:720px){.project-plan{grid-template-columns:130px minmax(0,1fr)}}
/* 1.12: weekgroepen en planningbijlagen */
.calendar-heading{min-width:0}.week-bands{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr));background:#e4eeee}.week-band{display:flex;align-items:center;justify-content:center;gap:12px;padding:7px 4px;border-left:2px solid #6f999c;border-bottom:1px solid #adc5c7;color:#164c53;font-size:.85rem;white-space:nowrap;overflow:hidden}.week-band.alternate{background:#cfE3e4}.week-band span{font-size:.75rem}.grid-day.week-start,.range-cell.week-start{border-left:2px solid #7aa1a4}.grid-day.week-end,.range-cell.week-end{border-right:1px solid #7aa1a4}.block-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0;padding:10px;background:#eef5f5}.block-tools small{color:var(--muted)}.booking-files{margin:14px 0}.file-drop{display:grid;gap:6px;padding:14px;border:2px dashed #81afb3;border-radius:5px;background:#f2f8f8;cursor:pointer}.file-drop span{font-size:.8rem;color:var(--muted)}.file-drop input{width:100%;border:0;padding:3px;background:transparent}.file-drop.dragover{background:#d6eded}.planning-file-list{display:grid;gap:8px}.planning-file{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:8px;border:1px solid var(--line);border-radius:4px}.planning-file a{display:flex;align-items:center;gap:10px;min-width:0;overflow-wrap:anywhere;color:#006d79}.planning-file img{width:68px;height:54px;object-fit:cover;border-radius:3px}.planning-file button{flex-shrink:0}.planning-file span{min-width:0}#planning-file-status{font-size:.85rem;margin:8px 0}
.help-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}.guide-toc{position:sticky;top:12px;display:grid;gap:4px;padding:12px;background:#edf5f5;border:1px solid var(--line);max-height:70vh;overflow:auto}.guide-toc h3{margin:12px 0 3px;font-size:.82rem}.guide-toc a{padding:5px;color:#006d79;text-decoration:none;font-size:.82rem}.guide-article{scroll-margin-top:20px;margin-bottom:12px;border:1px solid var(--line);border-radius:5px;background:#fff}.guide-article>summary{font-size:1rem;font-weight:650;padding:14px;cursor:pointer;background:#f3f8f8}.guide-body{padding:0 16px 16px;line-height:1.65}.guide-body p{margin:12px 0}.guide-body li{margin:7px 0}.guide-body figure{margin:16px 0}.guide-body img{width:100%;height:auto;border:1px solid var(--line);border-radius:4px}.guide-body figcaption{font-size:.8rem;color:var(--muted)}.guide-tip{border-left:3px solid #007480;background:#eef6f6;padding:10px 12px}.help-search{margin:10px 0 18px}.help-search input{width:100%}.guide-category{margin:18px 0 8px;font-size:1.1rem;color:#006d79}
@media(max-width:720px){.help-layout{grid-template-columns:1fr}.guide-toc{position:static;max-height:170px}.guide-body{padding:0 10px 10px}.week-band{gap:6px}.week-band span{font-size:.68rem}.planning-file{align-items:flex-start}.planning-file a{flex-direction:column;align-items:start}.guide-article>summary{padding:11px}}

/* v1.13: centered login brand, release identification, intraday Outlook positions */
.login .brand{display:block;width:220px;max-width:100%}.login .brand img{width:100%}.login .brand small{display:block;width:100%;margin:13px 0 0;text-align:center}.app-version{display:block;font-size:.75rem;color:#65787c;margin-top:12px}.outlook-block{min-width:0;margin-right:0;padding:3px 1px;cursor:pointer;border-left-width:2px}.outlook-block strong{font-size:.7rem}.grid-day .day-clock{display:flex;justify-content:space-between;font-size:8px;color:#748b90;margin:4px 2px 3px}.login #retry-service{width:100%;padding:12px}

/* Outlook-style employee week: fixed 60px per hour, full 24h coverage. */
.agenda-hint{margin:8px 16px;color:#607d85;font-size:.85rem}
.agenda-scroll{max-height:72vh;overflow:auto;position:relative}
.agenda-calendar{min-width:800px}
.agenda-heading,.agenda-body{display:grid;grid-template-columns:64px repeat(var(--agenda-days),minmax(0,1fr))}
.agenda-heading{position:sticky;top:0;z-index:3;background:#fff;box-shadow:0 2px 3px #203b4320}
.agenda-heading>div{padding:8px;border-right:1px solid #dbe4e7;min-width:0}
.agenda-heading button{display:block;width:100%;margin-top:4px;padding:4px;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.agenda-own{background:#deeeee;border-left:3px solid #00838f}.agenda-all-day{background:#e6edf7}
.agenda-body{height:1440px}.agenda-hours,.agenda-day{position:relative}
.agenda-hours span{position:absolute;right:8px;font-size:.75rem;color:#607d85}
.agenda-day{border-right:1px solid #dbe4e7;background:repeating-linear-gradient(to bottom,#dbe4e7 0,#dbe4e7 1px,transparent 1px,transparent 30px,#edf1f3 30px,#edf1f3 31px,transparent 31px,transparent 60px)}
.agenda-event{position:absolute;min-height:0;padding:2px 4px;text-align:left;overflow:hidden;border:1px solid #fff;border-left:3px solid #416fa6;background:#e6edf7;color:#233d48;border-radius:4px;box-sizing:border-box;font-size:.75rem}
.agenda-event strong,.agenda-event span{display:block;overflow:hidden;text-overflow:ellipsis}.agenda-event:focus{z-index:2;outline:2px solid #00838f}

/* Vertical Outlook appointments in the employee overview. */
.employee-day-content{min-width:0}.employee-outlook-hours,.employee-outlook-all{display:grid;grid-template-columns:repeat(var(--days),minmax(0,1fr))}
.employee-outlook-day{position:relative;border-right:1px solid #cfdce2;background:repeating-linear-gradient(to bottom,#d8e2e8 0,#d8e2e8 1px,#fff 1px,#fff 24px,#edf2f5 24px,#edf2f5 25px,#fff 25px,#fff 48px)}
.employee-hour{position:absolute;left:2px;font-size:9px;color:#72868e;line-height:14px;pointer-events:none}.employee-outlook-events{position:absolute;left:31px;right:3px;top:0;bottom:0}
.employee-outlook-event{position:absolute;border:1px solid white;border-left:3px solid #2076bb;border-radius:5px;box-sizing:border-box;padding:3px 5px;background:#c5def1;color:#223c4e;text-align:left;min-height:0;overflow:hidden;font-size:12px;line-height:1.3;cursor:pointer;overflow-wrap:anywhere}
.employee-outlook-event strong,.employee-outlook-event span{display:block}.employee-outlook-event strong{font-size:10px}.employee-outlook-event:hover{background:#afd0ea}.employee-outlook-event:focus{outline:2px solid #007987;z-index:2}
.employee-outlook-all>div{padding:3px;border-right:1px solid #cfdce2;background:#f5f8fa}.employee-all-event{display:block;width:100%;text-align:left;background:#c5def1;font-size:11px;padding:4px;margin:2px 0;overflow-wrap:anywhere}
.employee-grid:has(.employee-outlook-grid){min-width:calc(190px + var(--days)*220px)}
@media(max-width:720px){.employee-grid:has(.employee-outlook-grid){min-width:calc(130px + var(--days)*220px)}}

.employee-agenda-toggle{font-size:12px;margin-top:6px;color:var(--teal,#007987)}
.employee-agenda-empty{padding:8px 12px;margin:0}

.booking-notification{padding:12px;background:#edf7f7;border:1px solid #cce1e4;border-radius:6px;margin:12px 0}.booking-notification label{font-weight:600}.booking-notification p{margin:6px 0 0}

/* Keep the explicit mail choice visible next to the save action. */
#edit-form:has(.booking-notification){display:flex;flex-direction:column;max-height:85vh;max-height:85dvh}
#edit-form:has(.booking-notification) .modal-body{overflow-y:auto;min-height:0}
#edit-form:has(.booking-notification) .modal-head,#edit-form:has(.booking-notification) .modal-foot{flex-shrink:0}
#edit-form:has(.booking-notification) .modal-foot{flex-wrap:wrap}
.modal-foot .booking-notification{flex:0 0 100%;margin:0}
.booking-notification label{display:flex;align-items:flex-start;gap:10px;line-height:1.4}
.booking-notification input[type=checkbox]{appearance:auto;display:inline-block;flex:0 0 20px;width:20px;height:20px;margin:0;accent-color:#007987}

.employee-grid-row .schedule-bars{grid-auto-rows:54px}
.employee-grid-row .plan-block{height:49px}
.project-block-label{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.block-heading{display:flex;align-items:baseline;gap:8px;min-width:0}
.plan-block .block-heading strong{flex-shrink:0}
.block-heading small{font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.block-project-name{display:block;font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-heading-name{display:block;font-size:.85rem;margin-top:3px}
.project-phase-row .grid-person strong{font-size:.76rem}
.project-create-row{padding:6px 12px}
.team-chips{display:flex;flex-wrap:wrap;gap:6px}.team-chips label{display:flex;align-items:center;gap:6px;border:1px solid #cadde0;border-radius:5px;padding:7px 10px;background:white}.team-chips label:has(input:checked){background:#dff0f0;border-color:#007987}
.my-planning{max-width:850px;margin:auto}.my-planning-tools{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.my-week{margin-bottom:20px}.my-week h2{font-size:1rem;margin:0 0 8px}.my-week h2 small{font-weight:400;color:#647b83}.my-plan-card{display:block;width:100%;text-align:left;padding:14px;margin:7px 0;border-left:4px solid #007987;background:white;white-space:normal}.my-plan-card>*{display:block}.my-plan-card strong{font-size:1rem;overflow-wrap:anywhere}.my-plan-card small{color:#5b737c;margin:4px 0}.my-plan-card .my-days{font-size:.9rem;color:#006773;margin-top:7px}.my-plan-card.is-today{background:#e9f6f4}.my-plan-card .today-badge{display:inline-block;background:#007987;color:white;font-size:.72rem;padding:2px 5px;margin-bottom:6px;border-radius:3px}.my-week-empty{font-size:.85rem;color:#73848a;padding:8px 0}.my-description{white-space:pre-wrap;overflow-wrap:anywhere}.my-links a{display:block;margin:8px 0;overflow-wrap:anywhere}
@media(max-width:720px){.my-planning{width:100%;min-width:0}.my-plan-card{padding:12px}.my-planning-tools select{max-width:145px}.my-week h2 small{display:block;margin-top:3px}}

/* v1.20: integrated app lockup and milestones on the calendar grid */
.brand img{display:block;height:auto}.brand small{display:none!important}
.project-milestone-row{grid-column:1/-1;display:grid;grid-template-columns:190px minmax(0,1fr);border-bottom:1px solid #dce3e3;background:#fafcfc}
.project-milestone-row .grid-person{font-size:.78rem;color:#52676e}
.milestone-track{display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr));gap:4px 0;padding:6px 0;align-items:start}
.milestone-marker{min-width:0;margin:0 3px;padding:5px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid #b7ced1;background:#eef7f7;color:#006f7b;white-space:normal;overflow-wrap:anywhere}
.milestone-marker strong{font-size:.73rem}.milestone-marker small{font-size:.64rem}.milestone-marker.achieved{background:#e7f4eb;color:#276440}.milestone-marker.postponed{background:#fff1de;color:#825411}
.weekend-milestone{grid-column:1/-1;justify-self:start;margin:2px 8px;font-size:.75rem}
@media(max-width:720px){.project-milestone-row{grid-template-columns:130px minmax(0,1fr)}.my-planning-tools label{max-width:100%}.my-planning-tools select{max-width:100%}}
