@import "tailwindcss";
@import "tw-animate-css";
@import "../vendor/shadcn-tailwind-4.13.0.css";
.entry-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f4f7f9}.entry-card{width:min(100%,420px);padding:36px;background:white;border:1px solid #dae3e9;border-radius:14px;box-shadow:0 18px 55px rgba(16,44,68,.09);display:grid;gap:14px}.entry-card h1{margin:0;color:#102c44;font-size:28px}.entry-card p{margin:0;color:#526678}.entry-card label{font-weight:700}.entry-card input{padding:12px;border:1px solid #aebdc8;border-radius:8px}.entry-card button{background:#0d5368;color:white;border:0;border-radius:8px;padding:12px;font-weight:700}.entry-card button:disabled{opacity:.6}.entry-card .entry-error{color:#a72f35}
.entry-password-field{display:flex;align-items:center;border:1px solid #aebdc8;border-radius:8px}.entry-password-field:focus-within{outline:2px solid #0d5368;outline-offset:2px}.entry-password-field input{min-width:0;flex:1;border:0;outline:0}.entry-card .entry-visibility{display:grid;place-items:center;background:transparent;color:#375468;padding:10px;margin-right:3px;border-radius:6px}.entry-card .entry-visibility:hover{background:#edf3f5}.entry-card .entry-visibility:focus-visible{outline:2px solid #0d5368}
.password-field{display:flex;align-items:center;border:1px solid #d5e0e6;border-radius:8px;background:white;min-width:0}.password-field:focus-within{outline:2px solid #0d5368;outline-offset:2px}.form .password-field input{flex:1;min-width:0;border:0;outline:0;width:auto}.password-field .password-visibility{display:grid;place-items:center;flex:none;padding:8px;margin-right:3px;border:0;border-radius:6px;background:transparent;color:#375468}.password-field .password-visibility:hover{background:#edf3f5}.password-field .password-visibility:focus-visible{outline:2px solid #0d5368}
:root{--background:#f5f7fa;--foreground:#11253b;--card:#fff;--card-foreground:#11253b;--popover:#fff;--popover-foreground:#11253b;--primary:#0d5368;--primary-foreground:#fff;--secondary:#edf3f5;--secondary-foreground:#17364a;--muted:#f2f5f7;--muted-foreground:#637489;--accent:#e5f2f3;--accent-foreground:#0d5368;--destructive:#bd4645;--border:#dae3e9;--input:#d7e1e7;--ring:#37a99f;--radius:.7rem}
@theme inline{--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring)}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 Arial,Helvetica,sans-serif;color:#152b42;background:#f4f7f9}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:234px minmax(0,1fr)}.rail{background:#102c44;color:#d6e4ed;padding:28px 15px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 13px 38px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid #54bcb8;border-radius:11px;color:#fff;font-weight:800;letter-spacing:-4px;padding-right:4px}.brand-mark span{color:#59d0c5}.brand b,.brand small,.usertext b,.usertext small{display:block}.brand b{font-size:18px;line-height:1.2;color:white}.brand small{font-size:13px;color:#9ab1c4}.rail-label{padding:0 14px 13px;color:#7792a9;font-size:11px;font-weight:800;letter-spacing:.16em}.nav{width:100%;border:0;background:transparent;color:#bdd0dd;display:flex;align-items:center;gap:13px;padding:12px 14px;text-align:left;border-radius:9px;font-weight:600;margin:2px 0}.nav:hover,.nav.active{background:#1c455c;color:white}.nav.active{box-shadow:inset 3px 0 #65d6cd}.rail-bottom{margin-top:auto;border-top:1px solid #2f5065;padding:19px 8px 0;display:flex;align-items:center;gap:10px}.avatar,.initial{display:grid;place-items:center;background:#e4f1f3;color:#135c69;border-radius:10px;font-weight:800;flex:none}.avatar{height:34px;width:34px}.usertext b{font-size:14px;color:#e7f3f7}.usertext small{font-size:12px;color:#92afc1;text-transform:capitalize}.content{padding:36px clamp(24px,3.3vw,55px) 65px;min-width:0;max-width:1750px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:32px}.eyebrow{color:#338b90;font-size:12px;letter-spacing:.15em;font-weight:800}h1{margin:7px 0 2px;font-size:clamp(28px,2.5vw,38px);line-height:1.2;letter-spacing:-.035em;font-weight:700}.subtitle{margin:4px 0 0;color:#718296}.top-actions{display:flex;gap:16px;align-items:center;padding-top:12px;white-space:nowrap}.date-pill{display:flex;gap:8px;align-items:center;color:#5e7287;font-size:14px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat,.panel,.table-panel,.person-card{background:white;border:1px solid #e1e8ed;border-radius:13px;box-shadow:0 3px 14px rgba(22,50,75,.03)}.stat{padding:21px 22px}.stat span,.stat small{display:block}.stat span{color:#566a7d;font-weight:600;font-size:14px}.stat strong{display:block;font-size:37px;letter-spacing:-.05em;line-height:1.15;margin:12px 0 4px}.stat small{color:#8493a2;font-size:13px}.danger,.redtext{color:#bd4645!important}.two-col{display:grid;grid-template-columns:1.32fr 1fr;gap:20px}.panel{overflow:hidden}.panel-head{padding:21px 24px 17px;display:flex;justify-content:space-between;align-items:start;gap:15px;border-bottom:1px solid #edf1f3}.panel h2{margin:0;font-size:18px;letter-spacing:-.02em}.panel p{margin:2px 0 0;color:#8292a2;font-size:13px}.text-link{border:0;background:none;color:#137a83;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.text-link:hover{text-decoration:underline}.task-stack{padding:5px 10px}.task-line{border:0;border-bottom:1px solid #edf1f3;padding:13px 14px;background:white;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;width:100%}.task-line:last-child{border:0}.task-line:hover,.work-row:hover,.clickable:hover,.timeline-row:hover{background:#f5fafb}.task-main{min-width:0}.task-main b,.task-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-main b{font-size:14px;font-weight:650}.task-main small{font-size:12px;color:#8a99a7;margin-top:2px}.due{background:#edf4f5;border-radius:6px;padding:4px 8px;font-weight:700;color:#326877;font-size:12px;flex:none}.due.overdue{background:#fff0ed;color:#b74942}.workload-list{padding:8px 15px 18px}.work-row{width:100%;border:0;background:white;display:flex;align-items:center;gap:11px;padding:10px 5px;text-align:left}.initial{width:30px;height:30px;font-size:11px}.work-name{min-width:105px;font-size:13px;font-weight:600}.meter{height:7px;background:#eaf0f3;border-radius:5px;flex:1;overflow:hidden}.meter i{display:block;height:100%;background:#46aaa8;border-radius:5px}.work-row>b{width:25px;text-align:right;font-size:13px}.full{margin-top:20px}.horizontal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 15px}.horizontal .task-line{border-bottom:1px solid #edf1f3}.mutedpad{padding:18px!important;color:#8292a2}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:19px}.search{height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #dae4e9;background:white;border-radius:9px;min-width:260px;flex:1;color:#92a1ad}.search input{border:0;outline:0;width:100%;background:transparent;font-size:14px}.selectwrap{height:44px;border:1px solid #dae4e9;background:white;border-radius:9px;padding:0 10px 0 13px;display:flex;align-items:center;gap:7px;color:#67798a;font-size:13px}.selectwrap select{background:transparent;appearance:none;border:0;outline:0;font-weight:650;color:#234157;min-width:95px}.results-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:#718497;font-size:13px}.results-bar b{font-size:14px;color:#31475b}.table-panel{overflow:auto}table{font-size:14px}thead{background:#f9fbfc}th{color:#6f8190!important;font-weight:700!important;height:46px!important}td{height:58px!important;color:#455b6d}.clickable{cursor:pointer}.taskcell{max-width:490px;min-width:260px}.taskcell b,.taskcell small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.taskcell b{color:#1b3449;font-weight:650}.taskcell small{color:#95a3af;font-size:12px}.badge{border-radius:30px;padding:5px 9px;font-size:12px;font-weight:700;white-space:nowrap}.badge.overdue{background:#fff0ed;color:#ad453e}.badge.planned{background:#eef3f5;color:#627a89}.badge.in-progress{background:#e7f4f6;color:#177b89}.badge.completed{background:#e4f4ed;color:#248064}.more{border:0;background:white;color:#137a83;width:100%;padding:15px;font-weight:700}.no-results{text-align:center;color:#8595a5;padding:55px}.people-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;color:#36848a;font-size:12px;font-weight:800;letter-spacing:.13em}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:16px}.person-card{text-align:left;padding:23px}.person-card:hover{border-color:#79b9ba}.person-top{display:flex;gap:12px;align-items:center}.initial.large{width:44px;height:44px;font-size:15px}.person-top b,.person-top small{display:block}.person-top b{font-size:16px}.person-top small{font-size:12px;color:#8494a4}.person-stats{display:flex;justify-content:space-between;border-top:1px solid #ebf0f2;margin-top:22px;padding-top:16px}.person-stats span{text-align:center}.person-stats b,.person-stats small{display:block}.person-stats b{font-size:22px}.person-stats small{font-size:12px;color:#8b9ba8}.timeline-scroll{overflow:auto;background:white;border:1px solid #e1e8ed;border-radius:13px}.timeline-header,.timeline-row{display:grid;grid-template-columns:260px repeat(28,minmax(28px,1fr));align-items:center}.timeline-header{background:#f4f8fa;border-bottom:1px solid #dae3e9;height:48px;color:#6b8292;font-size:11px;font-weight:700}.timeline-header>span{padding-left:7px}.timeline-header .weekstart{color:#176c78}.timeline-row{border:0;border-bottom:1px solid #edf1f3;background:white;text-align:left;width:100%;height:57px}.timeline-label{padding:0 13px;overflow:hidden}.timeline-label b,.timeline-label small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-label b{font-size:13px}.timeline-label small{font-size:11px;color:#90a0aa}.track{grid-column:2/span 28;position:relative;height:100%;background:repeating-linear-gradient(90deg,transparent,transparent calc(100% / 28 - 1px),#edf1f3 calc(100% / 28 - 1px),#edf1f3 calc(100% / 28))}.bar{position:absolute;top:19px;height:17px;border-radius:5px;background:#4aadb1;min-width:4px}.bar.late{background:#d8786d}.track em{font-size:12px;color:#b5534d;position:absolute;top:17px;left:10px;font-style:normal}.notice,.empty{background:white;border:1px solid #e1e8ed;border-radius:13px;padding:50px;text-align:center}.notice.error{color:#b74e45}.empty{max-width:650px;margin:50px auto}.empty-icon{margin:auto;width:64px;height:64px;border-radius:16px;background:#e8f5f4;color:#16878c;display:grid;place-items:center}.empty h2{font-size:22px;margin:21px 0 7px}.empty p{color:#6e8294;margin:0 auto 23px;max-width:480px}.form{display:grid;gap:16px}.form label{display:grid;gap:6px;color:#425a6e;font-size:13px;font-weight:700}.form input,.form select,.form textarea{border:1px solid #d5e0e6;background:white;border-radius:8px;padding:9px 11px;width:100%;font-size:15px;color:#243d51}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.task-context{background:#f4f8fa;border-radius:8px;padding:13px}.task-context b,.task-context span{display:block}.task-context span{font-size:13px;color:#7b8b99}.form-hint{color:#758799;font-size:13px;margin:0}.members{max-height:120px;overflow:auto;border:1px solid #e5ebef;border-radius:8px}.members div{padding:8px 11px;border-bottom:1px solid #edf1f3;display:flex;justify-content:space-between;gap:10px;font-size:12px}.members span{color:#7c8b99}.edit-dialog{max-height:90vh;overflow:auto}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.people-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:750px){.app{display:block}.rail{min-height:0;padding:12px;display:flex;flex-direction:row;align-items:center;gap:4px;overflow:auto}.brand{padding:0 12px 0 0}.brand small,.rail-label,.rail-bottom{display:none}.nav{width:auto;white-space:nowrap;font-size:13px;padding:9px}.nav svg{width:16px}.content{padding:25px 16px 55px}.topbar{display:block}.top-actions{margin-top:17px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.horizontal{grid-template-columns:1fr 1fr}}@media(max-width:520px){.brand b{display:none}.brand{padding-right:4px}.nav{font-size:0;gap:0;padding:10px}.nav svg{width:20px;height:20px}.top-actions{justify-content:space-between}.stat-grid{gap:9px}.stat{padding:14px}.stat strong{font-size:29px}.stat small{font-size:11px}.people-grid,.horizontal{grid-template-columns:1fr}.date-pill{font-size:12px}.form-grid{grid-template-columns:1fr}}
.rail{position:relative;z-index:2}.nav{text-decoration:none}.nav:focus-visible{outline:2px solid #60d7cf;outline-offset:2px}
.timeline-controls{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:0 0 9px;color:#657c8d;font-size:13px}.timeline-controls span{margin-right:4px}.timeline-controls button{border:1px solid #d8e3e9;background:#fff;color:#166b78;width:36px;height:34px;display:grid;place-items:center;border-radius:7px}.timeline-controls button:hover{background:#e6f3f4}.timeline-scroll{overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:#58a4ae #e6edf1}.timeline-header,.timeline-row{grid-template-columns:260px repeat(84,30px)}.timeline-header>span:first-child,.timeline-label{position:sticky;left:0;z-index:2;background:#f4f8fa}.timeline-label{background:#fff;height:100%;display:flex;flex-direction:column;justify-content:center}.timeline-row:hover .timeline-label{background:#f5fafb}.track{grid-column:2/span 84;background:repeating-linear-gradient(90deg,transparent,transparent 29px,#edf1f3 29px,#edf1f3 30px)}.timeline-header{position:sticky;top:0;z-index:3}.admin-panel{margin-bottom:20px}.admin-form{padding:22px;max-width:520px}.admin-form button{justify-self:start}.directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px;padding:8px 24px 20px}.directory>div{padding:13px 2px;border-bottom:1px solid #edf1f3;display:flex;justify-content:space-between;gap:10px}.directory b{font-size:14px}.directory span{color:#778b99;font-size:13px;overflow-wrap:anywhere;text-align:right}.checkline{display:flex!important;align-items:flex-start;gap:10px!important;background:#eff7f7;padding:12px;border-radius:8px}.checkline input{width:17px!important;height:17px;margin-top:2px;flex:none}.checkline b,.checkline small{display:block}.checkline small{color:#69808e;font-weight:400;margin-top:2px}
@media(max-width:750px){.directory{grid-template-columns:1fr}.timeline-controls{justify-content:flex-start}}
.date-range{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:16px 18px;margin-bottom:16px;background:#fff;border:1px solid #e1e8ed;border-radius:12px}.date-range-title{display:flex;align-items:center;gap:8px;color:#206c78;margin:0 10px 9px 0;white-space:nowrap}.date-range label{display:grid;gap:4px;font-size:12px;font-weight:700;color:#637b8b}.date-range input{height:39px;padding:6px 9px;border:1px solid #d4e1e7;border-radius:7px;color:#233c50;background:#fff;font-size:14px}.date-range button{height:39px}.range-error,.save-error{color:#b64e47;font-size:13px}.range-error{flex-basis:100%}.save-error{margin:0;background:#fff2ef;border-radius:7px;padding:9px 11px}
@media(max-width:750px){.date-range{align-items:stretch}.date-range-title{flex-basis:100%}.date-range label{flex:1;min-width:145px}}
.timeline{position:relative}.calendar-shading{position:absolute;top:48px;bottom:0;pointer-events:none;z-index:0}.calendar-shading span{position:absolute;top:0;bottom:0}.weekend-shade{background:#fff0f0}.holiday-shade{background:#fbdada}.timeline-row{position:relative;z-index:1;background:transparent}.timeline-row:hover{background:rgba(245,250,251,.66)}.timeline-header>span{height:100%;display:flex;align-items:center}.timeline-header .weekend-date{background:#fff0f0}.timeline-header .holiday-date{background:#fbdada;color:#8f3d3d}.staff-heading{position:relative;z-index:1;background:#e7f1f5;border-top:1px solid #d1e0e7;border-bottom:1px solid #d1e0e7;min-height:37px;color:#174a5a;font-weight:800;font-size:14px}.staff-heading span{position:sticky;left:0;display:flex;align-items:center;width:260px;min-height:37px;padding:0 13px;background:#e7f1f5}.holiday-entry{padding:20px 24px;overflow-x:auto}.holiday-grid{display:grid;grid-template-columns:44px minmax(150px,190px) minmax(150px,190px) minmax(200px,1fr);align-items:center;gap:12px;min-width:660px;margin-bottom:8px}.holiday-grid>span{color:#72889a;font-size:13px}.holiday-grid-head{font-size:13px;font-weight:700;color:#4a6576;margin-bottom:10px}.holiday-grid input{height:39px;width:100%;border:1px solid #d6e1e7;border-radius:7px;padding:7px 9px;background:white;color:#233c50;font-size:14px}.holiday-entry>.save-error{margin:12px 0}.holiday-entry>button{margin-top:10px}.saved-holidays{border-top:1px solid #e2e9ed;padding:18px 24px 24px}.saved-holidays h3{font-size:16px;margin:0 0 8px}.saved-holidays>div{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #edf1f3;padding:9px 0;font-size:14px}.saved-holidays button{border:0;background:none;color:#b14c45;font-weight:700}.saved-holidays button:disabled{opacity:.5}
.timeline-scroll{max-height:clamp(320px,68vh,780px);overflow:auto;overscroll-behavior:contain;scroll-padding-top:48px}.timeline-header{position:sticky;top:0;z-index:5}
.timeline-content .topbar{margin-bottom:16px}.timeline-content .date-range{padding:9px 12px;gap:8px;margin-bottom:9px}.timeline-content .date-range-title{font-size:13px;margin:0 7px 5px 0}.timeline-content .date-range-title svg{width:15px;height:15px}.timeline-content .date-range label{font-size:12px;gap:2px}.timeline-content .date-range input,.timeline-content .date-range button{height:33px;font-size:13px}.timeline-content .date-range input{padding:4px 7px}.timeline-content .date-range button{padding:0 10px}.timeline-content .toolbar{gap:8px;margin-bottom:9px}.timeline-content .search,.timeline-content .selectwrap{height:35px}.timeline-content .search{min-width:210px;padding:0 10px}.timeline-content .search input,.timeline-content .selectwrap,.timeline-content .selectwrap select{font-size:13px}.timeline-content .results-bar{margin-bottom:4px;font-size:12px}.timeline-content .results-bar b{font-size:13px}.timeline-content .timeline-controls{font-size:12px;margin-bottom:5px;gap:6px}.timeline-content .timeline-controls button{width:29px;height:28px}.timeline-content .timeline-controls svg{width:15px;height:15px}.timeline-content .timeline-scroll{max-height:clamp(360px,76vh,860px)}.timeline-content .timeline-row{height:50px}.timeline-content .staff-heading,.timeline-content .staff-heading span{min-height:32px}.timeline-content .timeline-header{height:43px}.timeline-content .calendar-shading{top:43px}
@media(max-width:750px){.timeline-content .topbar{margin-bottom:15px}.timeline-content .date-range-title{flex-basis:100%}.timeline-content .date-range label{min-width:135px}.timeline-content .search{min-width:0}}
.draggable-bar{cursor:grab;touch-action:none}.dragging-bar{cursor:grabbing;box-shadow:0 0 0 2px #0d5368,0 3px 9px rgba(23,54,74,.27);z-index:2}.timeline-row:has(.dragging-bar){background:#f4fafb}
.task-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

.task-staff-heading{background:#e7f1f5;color:#174a5a;font-weight:800}.task-staff-heading td{padding:10px 14px;border-top:1px solid #d1e0e7;border-bottom:1px solid #d1e0e7;font-size:14px}
.overview-panel{overflow:hidden}.overview-scroll{overflow-x:auto}.overview-head,.overview-row{display:grid;grid-template-columns:minmax(230px,1fr) 110px minmax(165px,210px) minmax(135px,175px) minmax(155px,190px);align-items:center;gap:12px;min-width:850px;padding:10px 20px}.overview-head{background:#f4f8fa;color:#526c7e;font-weight:700;font-size:13px}.overview-staff{margin:0;padding:9px 20px;background:#e7f1f5;color:#174a5a;font-size:15px;border-top:1px solid #d1e0e7}.overview-row{border-bottom:1px solid #edf1f3;min-height:68px}.overview-task{border:0;background:none;text-align:left;padding:0;color:#18384d;min-width:0}.overview-task:hover{text-decoration:underline}.overview-task b,.overview-task small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-task b{font-size:15px}.overview-task small{font-size:12px;color:#8495a4}.overview-date{font-size:14px;font-weight:650}.overview-field span{display:none}.overview-field select{width:100%;max-width:110px;padding:7px 9px;border:1px solid #ccdce4;border-radius:7px;background:#fff;color:#213b50;font-size:14px}.overview-field select:disabled{opacity:.65}.overview-status{font-size:14px;font-weight:700;color:#5f7586}.overview-status.done{color:#258062}.overview-status.late{color:#b74942}.timeline-days-heading,.timeline-days{position:sticky;left:260px;z-index:2;width:88px;text-align:center;border-left:1px solid #dce6eb;border-right:1px solid #dce6eb}.timeline-days-heading{background:#f4f8fa;justify-content:center!important;padding:0!important;white-space:nowrap;font-size:12px}.timeline-days{height:100%;display:grid;place-items:center;background:#fff;color:#264c5a;font-size:14px;font-weight:700}.timeline-row:hover .timeline-days{background:#f5fafb}.track{grid-column:3/span 84}.staff-heading span{width:348px}
@media(max-width:900px){.overview-head,.overview-row{grid-template-columns:minmax(200px,1fr) 95px 170px 140px 160px;min-width:800px}}
.overview-row.overview-overdue{background:#fff9d9}.overview-row.overview-overdue .overview-task{background:transparent}.badge.task-due{background:#fff2ce;color:#85600f}.badge.ready-to-commence-task{background:#e7f4f6;color:#176f7b}.badge.pending{background:#eef3f5;color:#607689}.password-list{padding:8px 24px 22px}.password-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px;border-bottom:1px solid #edf1f3;font-size:15px}.password-list>div:last-child{border:0}.password-list span{color:#728698;font-size:14px}
.timeline-header,.timeline-row{grid-template-columns:260px 60px repeat(84,24px)}.timeline-days-heading,.timeline-days{width:60px}.timeline-header{font-size:11px}.timeline-header>span:not(:first-child):not(.timeline-days-heading){padding-left:0;justify-content:center;font-size:11px}.timeline-days{font-size:12px}.calendar-shading{left:320px}.staff-heading span{width:320px}.track{background:repeating-linear-gradient(90deg,transparent,transparent 23px,#edf1f3 23px,#edf1f3 24px)}
.holiday-dialog{max-height:85vh;overflow:auto}.holiday-dialog .saved-holidays{border-top:0;padding:0}.holiday-dialog .saved-holidays h3{margin-top:0}.holiday-dialog .saved-holidays p{color:#718497;font-size:14px}

.overview-head,.overview-row{grid-template-columns:minmax(230px,1fr) 60px 110px minmax(165px,210px) minmax(135px,175px) minmax(155px,190px);min-width:930px}.overview-days{font-size:14px;font-weight:700;color:#264c5a}.holiday-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.holiday-actions button{margin-top:0}.timeline-content .timeline-header{height:65px;grid-template-rows:28px 36px}.timeline-content .calendar-shading{top:65px}.timeline-scroll{scroll-padding-top:65px}.timeline-fixed-heading,.timeline-days-heading{grid-row:1 / span 2;align-self:stretch;display:flex;align-items:center}.timeline-month{align-self:stretch;display:flex;align-items:center;white-space:nowrap;overflow:hidden;border-bottom:1px solid #dce6eb;color:#24596c;font-size:12px!important;font-weight:800;padding-left:7px!important;justify-content:flex-start!important}.timeline-header>span:not(:first-child):not(.timeline-days-heading):not(.timeline-month){align-self:stretch;display:flex;align-items:center}
@media(max-width:900px){.overview-head,.overview-row{grid-template-columns:minmax(200px,1fr) 60px 95px 170px 140px 160px;min-width:825px}}

.table-panel{max-height:clamp(360px,75vh,850px);overflow:auto}.table-panel thead th{position:sticky;top:0;z-index:4;background:#f4f8fa;box-shadow:0 1px 0 #dce6eb}.staff-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.staff-actions button{justify-self:auto}.staff-delete-dialog>p{color:#63798a;font-size:14px;margin:0}.staff-delete-list{max-height:46vh;overflow:auto;border:1px solid #dce6eb;border-radius:8px}.staff-delete-list label{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #edf1f3;cursor:pointer}.staff-delete-list label:last-child{border-bottom:0}.staff-delete-list label:hover{background:#f5fafb}.staff-delete-list input{width:17px;height:17px;flex:none}.staff-delete-list b,.staff-delete-list small{display:block}.staff-delete-list small{color:#7b8e9b;font-size:12px}

.table-panel [data-slot="table-container"]{overflow:visible}.table-panel table{border-collapse:separate;border-spacing:0}.table-panel thead th{position:sticky;top:0;z-index:5;background:#f4f8fa;box-shadow:0 1px 0 #dce6eb}
.overview-scroll{max-height:clamp(360px,75vh,850px);overflow:auto;overscroll-behavior:contain}.overview-head{position:sticky;top:0;z-index:5;box-shadow:0 1px 0 #dce6eb}

@media(min-width:1201px){.table-panel{max-height:none;overflow:visible}}@media(max-width:1200px){.table-panel{max-height:clamp(360px,75vh,850px);overflow:auto}}

/* Approved leave sits in its own row above each staff member's tasks. */
.leave-row{background:#fff8ef}.leave-row .timeline-label,.leave-row .timeline-days{background:#fff8ef}.leave-row:hover,.leave-row:hover .timeline-label,.leave-row:hover .timeline-days{background:#fff2de}.leave-row .timeline-label b{color:#96561c}.leave-bar{position:absolute;top:13px;height:24px;border-radius:5px;background:#efb46f;border:1px solid #dd9850;box-shadow:inset 0 0 0 1px #fff5e8;min-width:4px}.leave-row .track{z-index:1}

/* Centered password / admin dialogs */
.modal-back{position:fixed;inset:0;z-index:80;background:rgba(16,44,68,.55);display:grid;place-items:center;padding:24px;}
.modal-center{width:min(100%,520px);}
.modal{width:100%;background:#fff;border-radius:14px;border:1px solid #dae3e9;padding:24px;display:grid;gap:12px;box-shadow:0 18px 55px rgba(16,44,68,.16);max-height:90vh;overflow:auto;}
.modal-head h2,.modal h2{margin:0;color:#102c44;font-size:22px;}
.modal-foot{display:flex;gap:10px;justify-content:flex-end;}
.overdue-date{color:#c62828;font-weight:700;}
.overview-row.overview-overdue{background:#fff9d9;}
.holiday-shade{background:#ef9a9a;}
.weekend-shade{background:#ffe4e4;}
.jobs-table{width:100%;table-layout:fixed;}
.jobs-table th:nth-child(1),.jobs-table td:nth-child(1){width:18%;}
.jobs-table th:nth-child(2),.jobs-table td:nth-child(2){width:28%;}
.jobs-table th:nth-child(3),.jobs-table td:nth-child(3){width:12%;}
.jobs-table th:nth-child(4),.jobs-table td:nth-child(4){width:12%;}
.jobs-table th:nth-child(5),.jobs-table td:nth-child(5){width:10%;}
.jobs-table th:nth-child(6),.jobs-table td:nth-child(6){width:10%;}
.jobs-table th:nth-child(7),.jobs-table td:nth-child(7){width:10%;}
.timeline-header,.timeline-row{grid-template-columns:260px 60px repeat(84,28px);}
.track{background:repeating-linear-gradient(90deg,transparent,transparent 27px,#edf1f3 27px,#edf1f3 28px);}

.add-task-btn,.top-actions .add-task-btn,button.add-task-btn{
  background:#0d5368!important;color:#fff!important;border:0!important;border-radius:8px;padding:10px 16px;font-weight:700;
}
.modal{position:relative;background:#fff;color:#102c44;}
.modal-close{position:absolute;top:12px;right:14px;width:36px;height:36px;border:0;background:transparent;color:#5a7384;font-size:28px;line-height:1;border-radius:8px;}
.modal-close:hover{background:#eef3f5;color:#102c44;}
.task-actions button,.modal .task-actions button:first-child{background:#0d5368;color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:700;}
.task-actions button[class*="outline"],.task-actions button:last-child{background:#fff;color:#c62828;border:1px solid #e3b4b6;border-radius:8px;}
.jobs-table,table{width:100%;}
.panel .jobs-table, .tasks-table{width:100%;table-layout:auto;}

.timeline-days-heading,.timeline-days{width:52px;}
.track{grid-column:3 / span 84;background:repeating-linear-gradient(90deg,transparent,transparent 27px,#edf1f3 27px,#edf1f3 28px);}


/* Final timeline alignment: match JS 260 + 60 + 24px days */
.timeline-header,.timeline-row{
  display:grid;
  grid-template-columns:260px 60px repeat(84,24px);
  align-items:stretch;
}
.timeline-days-heading,.timeline-days{width:60px !important;box-sizing:border-box;}
.timeline-label,.timeline-fixed-heading{width:260px;box-sizing:border-box;}
.track{background:repeating-linear-gradient(90deg,transparent,transparent 23px,#edf1f3 23px,#edf1f3 24px);}
.staff-heading{display:grid;grid-template-columns:260px 60px 1fr;width:max-content;min-width:100%;}
.staff-heading span{grid-column:1 / -1;padding:8px 13px;}
.calendar-shading{left:320px;}

.admin-form button,.admin-panel button,.panel .admin-form button,
button.add-task-btn,.modal button:not(.modal-close):not(.task-actions button:last-child):not([class*="outline"]){
  background:#0d5368;
  color:#fff;
  border:0;
  border-radius:8px;
  padding:10px 16px;
  font-weight:700;
}
.modal .form button, .modal > .form > button, .modal button[type="submit"]{
  background:#0d5368;color:#fff;border:0;border-radius:8px;padding:10px 16px;font-weight:700;
}

/* Lock header, leave and task rows to one grid */
.timeline-content .timeline-header,
.timeline-content .timeline-row,
button.timeline-row,
div.timeline-row.leave-row {
  display: grid;
  grid-template-columns: 260px 60px repeat(var(--timeline-days, 84), 24px);
  column-gap: 0;
  padding: 0;
  margin: 0;
  border-left: 0;
  border-right: 0;
  box-sizing: border-box;
  width: max-content;
  min-width: 100%;
}
button.timeline-row {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  font: inherit;
  color: inherit;
  border-top: 0;
  border-bottom: 1px solid #edf1f3;
}
.timeline-fixed-heading,
.timeline-label {
  width: 260px;
  min-width: 260px;
  max-width: 260px;
  box-sizing: border-box;
}
.timeline-days-heading,
.timeline-days {
  width: 60px !important;
  min-width: 60px !important;
  max-width: 60px !important;
  box-sizing: border-box;
  padding: 0 !important;
}
.timeline-header > span.timeline-month {
  padding-left: 4px !important;
}
.timeline-header > span:not(.timeline-fixed-heading):not(.timeline-days-heading):not(.timeline-month) {
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  padding: 0 !important;
  justify-content: center;
  box-sizing: border-box;
}
.staff-heading {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

.overview-search{min-width:280px;max-width:420px;}
.jobs-scroll{max-height:70vh;overflow:auto;width:100%;}
.jobs-scroll table{width:100%;border-collapse:separate;border-spacing:0;}
.jobs-scroll thead th,.jobs-scroll thead td,.jobs-scroll .task-staff-heading td{
  position:sticky;top:0;z-index:3;background:#f4f8fa;
}
.jobs-scroll .task-staff-heading td{top:36px;z-index:2;background:#e7eef2;font-weight:700;}
.ghost-btn,.ghost-btn.ghost-btn,button.ghost-btn,button.password-visibility,
.task-actions button.ghost-btn,.modal button.ghost-btn,.admin-form button.ghost-btn,
.admin-panel button.ghost-btn,.panel button.ghost-btn{
  background:#fff !important;
  color:#0d5368 !important;
  border:1px solid #c5d5de !important;
  font-weight:600;
  box-shadow:none;
}
button.password-visibility{
  border:0 !important;
  background:transparent !important;
  color:#375468 !important;
  padding:8px;
  min-width:36px;
}
.password-field{display:flex;align-items:center;gap:0;}
.col-center{text-align:center;}
.jobs-scroll th:nth-child(2),.jobs-scroll th:nth-child(3),.jobs-scroll th:nth-child(4),.jobs-scroll th:nth-child(5),
.jobs-scroll td:nth-child(2),.jobs-scroll td:nth-child(3),.jobs-scroll td:nth-child(4),.jobs-scroll td:nth-child(5){text-align:center;}
.overview-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.leave-bar{cursor:grab;}
.leave-bar.dragging-bar{cursor:grabbing;z-index:4;}

/* Keep staff name visible while scrolling the timeline, like Workload */
.timeline-content .staff-heading {
  position: sticky;
  top: 65px;
  z-index: 4;
  display: block;
  width: max-content;
  min-width: 100%;
  background: #e7f1f5;
}
.timeline-content .staff-heading span {
  position: sticky;
  left: 0;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: 260px;
  max-width: none;
  height: 37px;
  padding: 0 14px;
  background: #e7f1f5;
  box-shadow: 8px 0 0 #e7f1f5;
}

.overview-staff {
  position: sticky;
  top: 48px;
  z-index: 4;
  margin: 0;
  min-height: 40px;
  line-height: 40px;
  padding: 0 20px;
  background: #e7f1f5;
  box-shadow: 0 1px 0 #d1e0e7;
}
.overview-head { min-height: 48px; box-sizing: border-box; }
