@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#263c34;background:#f7f8f4;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid #dce2d9;background:#fff;border-radius:7px;padding:9px 13px;color:#30473e;transition:background .15s}button:hover{background:#edf1e9}button:disabled{cursor:default}button.primary{background:#214d3e;color:#fff;border-color:#214d3e;padding:12px 18px}button.primary:hover{background:#32624f}a{color:#245f4a}small{font-size:11px;color:#7b877f;display:block;line-height:1.6}h1,h2,h3{font-family:Manrope,sans-serif;color:#213c30}h1{font-size:34px;font-weight:600;letter-spacing:-1.4px;margin:12px 0}h2{font-size:23px}h3{font-size:17px}p{line-height:1.6;color:#738077}input,select,textarea{width:100%;background:#fff;border:1px solid #d9e0d5;border-radius:6px;padding:10px 11px;color:#34443b}textarea{resize:vertical}label{display:block;font-size:12px;color:#64736a;margin:14px 0}label input,label select,label textarea{display:block;margin-top:7px}label.check{display:flex;gap:9px;align-items:center}.check input{width:auto;margin:0}.app{display:flex;min-height:100vh}aside{width:230px;flex-shrink:0;background:#f1f3eb;border-right:1px solid #e0e4d9;padding:32px 18px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-family:Manrope,sans-serif;font-size:26px;font-weight:800;letter-spacing:-1.6px;color:#244634;padding:0 12px}.brand span{display:block;font-family:DM Sans,sans-serif;letter-spacing:1.8px;font-size:9px;text-transform:uppercase;font-weight:500;margin-top:5px;color:#809078}.workspace{margin:35px 9px 21px;font-size:12px;border-top:1px solid #dce3d5;padding-top:23px;color:#4f6b52}.workspace small{display:inline;float:right;font-size:8px}nav{display:flex;flex-direction:column;gap:7px}nav button{border:0;text-align:left;background:transparent;padding:12px;font-size:13px;display:flex;align-items:center;gap:12px}nav button span{font-size:18px;width:22px}nav button.selected{background:#244d3c;color:#fff}nav em{font-size:10px;font-style:normal;margin-left:auto;border-radius:5px;background:#dce4d5;color:#35513a;padding:2px 6px}.sidebar-bottom{margin-top:auto;padding:25px 13px}.sidebar-bottom p{font-family:Manrope,sans-serif;font-size:19px;color:#738269}.live{font-size:10px;color:#667b5c}.profile{display:flex;align-items:center;gap:10px;background:transparent;text-align:left;border:0;border-top:1px solid #dbe1d4;border-radius:0;padding-top:18px}.profile small{text-transform:capitalize}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;width:35px;height:35px;background:#e5eadb;color:#53694b;font-size:11px;flex-shrink:0}.avatar.TH{background:#eee4db;color:#967350}main{min-width:0;flex:1;padding:34px 36px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#8c988c}header p{font-size:12px;margin:0}.header-actions{display:flex;align-items:center;gap:22px}.date-today{font-size:12px;color:#7a887c}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px}.stats>div{padding:20px 22px;background:#fff;border:1px solid #e1e5dc;border-radius:10px}.stats span{font-size:9px;letter-spacing:1.4px;color:#7c8b7d}.stats strong{display:flex;align-items:baseline;gap:12px;font-size:30px;font-weight:500;margin-top:12px}.stats small{font-weight:400;font-size:10px}.green{color:#4c865c}.red{color:#b56a53}.calendar{background:#fff;border:1px solid #e0e5db;border-radius:10px;overflow:hidden}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;flex-wrap:wrap}.tabs{display:flex;background:#f3f5ef;padding:4px;border-radius:7px;gap:1px}.tabs button{border:0;background:transparent;padding:8px 10px;font-size:11px;color:#7d8b7d}.tabs button.active{background:#fff;color:#294d37;box-shadow:0 1px 4px #263b3115}.toolbar>button{font-size:11px}.filters{border-top:1px solid #edf0e8;padding:14px 18px}.filters>div{display:flex;gap:8px;align-items:center}.filters input,.filters select{width:auto;max-width:150px;font-size:10px;padding:8px}.date-nav{font-size:12px}.date-nav button{border:0;padding:5px 9px;background:#f6f7f3}.calendar-scroll{overflow:auto;max-height:650px}.grid{display:grid;min-width:100%}.grid-head{position:sticky;top:0;z-index:1;background:#fafbf7;padding:13px 12px;border-top:1px solid #e7ebe1;border-right:1px solid #e7ebe1;border-bottom:1px solid #e7ebe1;display:flex;flex-direction:column;gap:3px}.grid-head small{font-size:8px;letter-spacing:1.5px}.grid-head b{font-size:19px;font-weight:500}.grid-head.current{background:#edf1e4;color:#496b37}.resource-label{font-size:9px;letter-spacing:1px;justify-content:center;padding-left:20px}.resource{padding:20px 14px;display:flex;align-items:flex-start;gap:11px;border-bottom:1px solid #e9ede4;border-right:1px solid #e9ede4;background:#fff;min-height:139px}.resource b{font-size:11px;display:block;margin-bottom:4px}.resource small{font-size:9px}.cell{padding:8px;border-bottom:1px solid #e9ede4;border-right:1px solid #e9ede4;min-height:139px}.cell.off{background:repeating-linear-gradient(135deg,#fafbf8,#fafbf8 4px,#f5f7f0 4px 5px)}.cell.off>small{font-size:9px;color:#adb4a5}.booking{width:100%;display:block;text-align:left;padding:10px 9px;margin-bottom:6px;border-radius:5px;border:0;border-left:3px solid #82a3c5;background:#e8eef8;overflow:hidden}.booking small{font-size:8px;color:inherit;opacity:.7;white-space:nowrap}.booking b{font-size:10px;display:block;line-height:1.6;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking span{font-size:8px;display:block;margin-top:5px;opacity:.75}.color1{background:#e8eddf;border-color:#9aac79}.color2{background:#eee5ef;border-color:#b895bc}.color3{background:#f4eadf;border-color:#d1ae83}.kickoff{border:1px solid #819f64;border-left:3px solid #698c47}.add-cell{opacity:0;width:100%;padding:3px;border-style:dashed;background:transparent}.cell:hover .add-cell,.add-cell:focus{opacity:1}.leave{font-size:10px;border:1px dashed #c5bba2;background:#f7f1e4;padding:9px;margin:6px 0;border-radius:5px}.leave.approved{background:repeating-linear-gradient(135deg,#efeae1,#efeae1 4px,#e8e2d7 4px 5px);border:0}.leave small{font-size:8px}.legend{padding:16px 20px;display:flex;gap:18px;font-size:9px;color:#7b887d;align-items:center;flex-wrap:wrap}.legend small{margin-left:auto;font-size:9px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}article{background:#fff;border:1px solid #e0e5db;border-radius:10px;padding:24px;margin-bottom:18px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px}.tag{font-size:10px;padding:5px 8px;background:#edf1e8;border-radius:5px}.tag.approved{background:#e1eddc}.tag.pending{background:#f7ecd5}.project-line{height:5px;border-radius:4px;margin:23px 0}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:20px}.actions button,.actions select,.actions a{font-size:11px}.actions select{width:auto}.callout{background:#e9eddf;border-radius:10px;padding:28px;margin-bottom:22px}.callout p{max-width:720px}.plan{display:flex;align-items:center;justify-content:space-between}.table-wrap{overflow:auto;background:#fff;border:1px solid #e0e5db;border-radius:10px}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:10px;letter-spacing:.5px;font-weight:500;background:#f4f6f0;color:#788574}td,th{padding:18px;border-bottom:1px solid #e4e9df}td{font-size:12px}td .actions{margin:0}.big{font-size:42px;font-weight:500}progress{width:100%;height:7px;accent-color:#6b8a50}.muted{font-size:12px}.group-view{padding:0 22px}.group-view>div{border-top:1px solid #edf0e9;padding:16px 0}.group-tasks{display:flex;gap:15px;flex-wrap:wrap}.group-tasks>div{width:230px}.group-tasks small{margin-bottom:5px}.modal-backdrop{position:fixed;inset:0;background:#18372e66;z-index:10;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:#fafbf7;width:680px;max-width:100%;max-height:90vh;overflow:auto;border-radius:14px;padding:28px;box-shadow:0 20px 80px #14392e33}.modal-heading{display:flex;align-items:center;justify-content:space-between}.modal-heading h2{margin:0 0 15px}.modal-heading button{border:0;background:transparent;font-size:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.error,.notice{padding:12px 16px;border-radius:7px;font-size:12px;margin-bottom:16px}.error{background:#f7e5dd;color:#8d4533}.notice{background:#e5eddf;color:#426a3e}.error button,.notice button{float:right;padding:0 5px;background:transparent;border:0}.recommend{display:flex;justify-content:space-between;gap:15px;font-size:12px;border-top:1px solid #e2e6dc;padding:10px 0}.recommend span{font-size:10px;color:#7f877b}.danger{color:#a44837}fieldset{border:1px solid #d9e2d0;border-radius:8px;margin:18px 0}.login{min-height:100vh;display:grid;grid-template-columns:1.15fr 1fr}.login-art{padding:55px 65px;background:#e5e9d9;position:relative;overflow:hidden}.login-art .brand{padding:0}.login-art h1{font-size:65px;line-height:1.15;margin-top:100px;letter-spacing:-3px}.login-art p{font-size:17px}.orbit{position:absolute;font-family:serif;font-size:490px;color:#d2dbc1;bottom:-140px;right:15px;line-height:1}.orbit span{font-size:100px;color:#7c9567}.login-form{align-self:center;max-width:420px;width:100%;padding:35px;margin:auto}.login-form h2{font-size:34px;margin:15px 0}.login-form label{margin:25px 0}.login-form .primary{width:100%;margin:10px 0 24px}.login-form small{font-size:10px}@media(max-width:1100px){aside{width:195px}main{padding:24px 20px}.stats{gap:8px}.stats>div{padding:15px}.stats strong{display:block}.date-today{display:none}}@media(max-width:760px){aside{width:65px;padding:20px 6px}.brand{font-size:0;padding:0}.brand:before{content:"q";font-size:30px}.brand span,.workspace,.sidebar-bottom,.profile div,nav button em{display:none}nav{margin-top:35px}nav button{font-size:0;padding:12px}nav button span{font-size:20px}.profile{margin-top:auto;padding:10px 4px}main{padding:20px 12px}h1{font-size:26px}header{gap:8px}.header-actions button{font-size:10px;padding:9px}header p{font-size:10px}.stats{grid-template-columns:1fr 1fr}.toolbar{padding:12px}.tabs{overflow:auto;width:100%}.filters>div{flex-wrap:wrap}.form-grid,.login{grid-template-columns:1fr}.login-art{display:none}.modal{padding:20px}.legend small{margin-left:0}}@media print{body{background:#fff}.app>aside,.app>main,.no-print,.modal-heading,.modal .error{display:none!important}.modal-backdrop{position:static;display:block;background:#fff;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.modal.printable{width:100%;max-width:none;max-height:none;border:0;box-shadow:none;overflow:visible;padding:15mm}.modal.printable .brand{font-size:26px}.modal.printable .brand:before{content:none}@page{size:A4;margin:12mm}}.gantt-scroll{overflow:auto}.gantt{display:grid;min-width:950px;background:repeating-linear-gradient(90deg,transparent,transparent 94px,#f1f3ec 95px)}.gantt-label{grid-column:1;padding:14px 18px;background:#fff;border-bottom:1px solid #e7ebe1;font-size:11px}.gantt-bar{padding:12px 5px;align-self:center}.gantt-bar .booking{margin:0}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(140px,1fr));overflow:auto}.month-day{padding:12px;border:1px solid #edf0e9;min-height:170px}.month-day>b{font-size:11px;display:block;margin-bottom:15px}.month-day>div>small{font-size:9px}.logo-block{text-align:center;flex-shrink:0}.logo-window{position:relative;width:174px;height:134px;overflow:hidden;margin:0 auto;mix-blend-mode:multiply}.logo-window img{position:absolute;width:350px;max-width:none;height:auto;left:50%;top:50%;transform:translate(-50%,-50%)}.logo-block>small{font-size:8px;letter-spacing:1.8px;margin-top:6px}.workspace{margin-top:22px}aside{padding-top:18px}.login-art .logo-block{width:174px}.login-art h1{margin-top:65px}.printable .logo-window{width:174px;height:134px;margin:0}.printable .logo-block{text-align:left}@media(max-width:760px){aside .logo-window{width:52px;height:44px}aside .logo-window img{width:105px}aside .logo-block>small{display:none}}.month-scroll{overflow:auto;max-height:72vh}.month-grid{grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px;overflow:visible}.month-weekday{padding:12px;position:sticky;top:0;background:#edf1e8;z-index:2;text-align:center;font-size:12px;font-weight:700}.month-day{min-width:0;background:#fff}.month-day.outside-month{background:#f0f2ec;color:#8e978a}.month-day.is-today{box-shadow:inset 0 3px #315a40}.month-day .booking b{white-space:normal}.add-wip{font-size:10px;width:100%;padding:6px;margin-top:8px;border-style:dashed}.wip-card{display:block;width:100%;text-align:left;background:#fff1d7;border-left:3px solid #be8b2d;margin:7px 0;padding:9px}.wip-card b{font-size:11px}.wip-card small,.wip-card span{font-size:10px;display:block;color:#755c2f;line-height:1.5}.booking-role,.booking-supervisor{white-space:normal;line-height:1.5}.project-people{border-top:1px solid #e5e9e1;border-bottom:1px solid #e5e9e1;padding:10px 0;margin:16px 0}.project-people p{font-size:12px;margin:6px 0}.toolbar>.actions{margin:0}header{margin-bottom:16px}header h1{font-size:26px;margin:0}.calendar{margin-top:0}.booking{padding:6px 8px;margin-bottom:4px;cursor:pointer}.booking b{font-size:12.5px;line-height:1.35}.booking span{font-size:11px;margin-top:1px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking.kickoff{outline:2px solid #263c34;outline-offset:-2px}.grid-head small,.cell.off>small,.resource small{font-size:11px}.project-key{border-bottom:1px solid #e5e9e1;padding:8px 20px;display:grid;gap:4px}.key-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px;font-size:13px;padding:3px 0 3px 10px;border-left:4px solid #82a3c5;background:none!important}.key-row b{min-width:240px}.key-row .missing,.key-dates .missing{color:#a04a2a}.key-row button{font-size:12px;padding:3px 10px;margin-left:auto}.key-row.color1{border-left-color:#8fb193}.key-row.color2{border-left-color:#c9a3c9}.key-row.color3{border-left-color:#d9b36a}.month-day{position:relative;min-height:104px;padding:6px}.month-day>b{font-size:13px;display:block;margin-bottom:4px}.month-day.weekend{background:#f4f5f0}.month-day.is-today>b{color:#fff;background:#315a40;border-radius:10px;display:inline-block;padding:0 7px}.month-day .booking b,.month-day .booking span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-day .leave{font-size:11px;padding:3px 6px;margin-bottom:4px}.add-wip{position:absolute;top:4px;right:4px;width:22px;height:22px;padding:0;margin:0;font-size:13px;line-height:1;border-style:solid;border-radius:11px;opacity:0}.month-day:hover .add-wip,.add-wip:focus-visible{opacity:1}.wip-card{margin:0 0 4px;padding:5px 8px;border-radius:5px;border:0;border-left:3px solid #be8b2d;cursor:pointer}.wip-card b{font-size:12.5px;display:block}.wip-card span{font-size:11px}.wip-card.has-issue{background:#fde3d6;border-left-color:#b4532a}.gantt-wips{padding:4px;border-bottom:1px solid #e5e9e1}.key-dates{background:#fff;border:1px solid #e1e6dc;border-radius:10px;margin-top:18px;padding:16px 20px}.key-dates-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.key-dates h2{font-size:17px;margin:0}.empty-line{color:#6c7a6e;margin:6px 0}.key-date{display:grid;grid-template-columns:130px minmax(180px,1fr) minmax(220px,1.4fr);gap:16px;width:100%;text-align:left;background:none;border:0;border-top:1px solid #e5e9e1;border-radius:0;padding:10px 0;font-size:13px;cursor:pointer}.key-date:hover{background:#f7f8f4}.key-date b,.key-date em,.key-date i{display:block;font-style:normal}.key-date em{color:#6c7a6e}.key-who .free{color:#2f6b45}.key-who .busy{color:#a04a2a;font-weight:600}@media(max-width:800px){.key-date{grid-template-columns:1fr;gap:2px}.key-row b{min-width:0;width:100%}}.legend,.legend small{font-size:12px}aside{justify-content:flex-start}.gantt{background:none}.gantt-day{padding:6px 0;text-align:center}.gantt-day b{font-size:13px;display:block}.gantt-wips{border-left:1px solid #eef0ea;min-height:34px;padding:3px 1px}.gantt-wips.weekend{background:#f4f5f0}.gantt-wips .wip-card{padding:3px;text-align:center}.gantt-wips .wip-card b{font-size:0}.gantt-wips .wip-card b:first-letter{font-size:13px}.gantt-wips .wip-card span{display:none}.gantt-bar{padding:5px 2px}.gantt-label{font-size:12.5px;padding:8px 18px}.hint{color:#6c7a6e;font-size:12.5px;margin:6px 0}.phase-fields{border:1px solid #dfe5da;border-radius:8px;padding:10px 12px;margin:0 0 10px}.phase-fields legend{font-weight:700;padding:0 6px}.phase-dates{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}.phase-dates label{flex:1 1 160px}.phase-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:2px 12px;max-height:118px;overflow:auto;border-top:1px solid #edf0e8;padding-top:6px}.phase-people .check{margin:0;font-size:13px}.phase-people small{color:#7a887c}.schedule-summary p{font-size:13px;margin:5px 0}.schedule-summary b{display:inline-block;min-width:108px}.schedule-summary span{display:block;color:#57655a;padding-left:112px}.schedule-warning{color:#a04a2a}.key-actions{margin-left:auto;display:flex;gap:6px}.key-row .key-actions button{margin:0}.phase-band{font-size:11.5px;padding:2px 7px;margin-bottom:4px;border-left:3px solid #82a3c5;border-radius:3px;background:#f1f4f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phase-band.color1,.job-date.color1,.phase-bar.color1 button{border-left-color:#8fb193;background:#eef4ee}.phase-band.color2,.job-date.color2,.phase-bar.color2 button{border-left-color:#c9a3c9;background:#f6eef6}.phase-band.color3,.job-date.color3,.phase-bar.color3 button{border-left-color:#d9b36a;background:#faf3e3}.job-date{display:block;width:100%;text-align:left;border:0;border-left:3px solid #82a3c5;border-radius:4px;background:#f1f4f9;padding:4px 7px;margin-bottom:4px;cursor:pointer}.job-date b{font-size:12px;display:block}.job-date span{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-wips .job-date{padding:3px;text-align:center}.gantt-wips .job-date b{font-size:0}.gantt-wips .job-date b:first-letter{font-size:12px}.gantt-wips .job-date span{display:none}.phase-bar button{width:100%;text-align:left;border:0;border-left:3px solid #82a3c5;border-radius:4px;background:#e8eef8;padding:5px 8px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.phase-bar.job button{font-weight:700;background:#263c34;color:#fff;border-left-color:#263c34}.gantt-label.job{background:#f4f6f1}.calendar-scroll{max-height:none}.resource,.cell{min-height:84px}.resource{padding:12px 14px}.month-job{margin:0 -6px 4px;background:#f1f4f9;border-left:0}.month-job.color1{background:#eef4ee}.month-job.color2{background:#f6eef6}.month-job.color3{background:#faf3e3}.month-job-bar{display:block;width:100%;border:0;border-radius:0;text-align:left;padding:2px 6px;font-size:11.5px;font-weight:700;color:#fff;background:#6f8fb4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.month-job.color1 .month-job-bar{background:#6f9a75}.month-job.color2 .month-job-bar{background:#a97fa9}.month-job.color3 .month-job-bar{background:#b88f3e}.month-phase{font-size:11.5px;line-height:1.35;padding:2px 6px;border-top:1px solid rgba(255,255,255,.7)}.month-phase b{display:block}.loading,.crash{padding:60px 40px;text-align:center}.crash h2{margin-bottom:8px}.modal.wide{width:860px}.month-scroll{max-height:none}input[type=search]{min-width:200px}.tag{font-size:11.5px;text-transform:capitalize}.tag.changes-requested{background:#fde3d6}.tag.rejected,.tag.cancelled{background:#ececec;color:#666}.key-row .tag{margin-left:8px;font-weight:500}details.project-key>summary,details.completed>summary{cursor:pointer;font-size:12.5px;color:#57655a;padding:4px 0}details.completed{margin-top:22px}details.completed>summary{font-size:15px;font-weight:600;margin-bottom:12px}.cards.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}article h2+.empty-line,article h3+.empty-line{margin-top:0}article h2:not(:first-child){margin-top:22px}h2.section{font-size:17px;margin:26px 0 10px}.row-button{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid #e5e9e1;border-radius:0;padding:9px 0;cursor:pointer}.row-button:hover{background:#f7f8f4}.row-button b,.row-button span{display:block;font-size:13.5px}.row-button span{color:#57655a;font-size:12.5px}button.link{background:none;border:0;padding:0;color:#315a40;text-decoration:underline;cursor:pointer;font-size:12.5px}p.split{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-top:1px solid #e5e9e1;padding-top:8px;margin:8px 0 0;font-size:13.5px}p.log{font-size:13px;margin:4px 0}p.log small{color:#7a887c;margin-right:8px}.brief{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.actions.wrap{flex-wrap:wrap;gap:6px}article.inactive{opacity:.6}article small{display:block}.project-card .project-line{background:#9fb8e3}.project-card.color1 .project-line{background:#a9c7ad}.project-card.color2 .project-line{background:#d5b4d8}.project-card.color3 .project-line{background:#e3c98a}.project-card .card-top select{width:auto;padding:3px 6px;font-size:12px}.facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0 0 8px;font-size:14px}.facts dt{color:#6c7a6e}.facts dd{margin:0}.facts .line{display:block}.free{color:#2f6b45}.busy{color:#a04a2a}.free-list{margin-top:12px}.recommend{display:grid;grid-template-columns:1.1fr 2fr auto;gap:10px;align-items:center}.recommend button{font-size:12px;padding:4px 10px}label.inline{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap}label small.hint{display:block;font-weight:400}.resource.dates-row,.cell.dates-row{background:#fbfbf8;min-height:46px}.resource.dates-row small{display:block}.booking.done{opacity:.55}.leave small{display:inline;margin-left:6px}.date-today{white-space:nowrap}.modal .notice{margin:0 0 12px}.login-form small{font-size:12px;line-height:1.5}select:disabled,input:disabled{opacity:.6}@media print{.modal.printable table{width:100%}}.cards.two{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}.row-button b,.row-button span,p.split span{overflow-wrap:anywhere}article.project-card{background:#fff;border-color:#e1e6dc}.notice,.error{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal .error{display:block}.notice.todo{background:#fbf3dc;color:#6f5413}.notice ul{margin:6px 0 0;padding-left:18px}.notice li{margin:3px 0}.resource.me{box-shadow:inset 3px 0 #1f2a1c;background:#f4f6ef}.cell.me:not(.off){background:#fbfcf8}.day-link{background:transparent;border:0;padding:0 2px;font:inherit;font-weight:600;cursor:pointer;border-radius:4px}.day-link:hover,.day-link:focus-visible{background:#e5eddf}.day-count{display:block;width:100%;text-align:left;font-size:11px;padding:3px 6px;margin-top:3px;border:0;border-radius:4px;background:#eef1ea;color:#4b5644;cursor:pointer}.day-count:hover{background:#e0e6d8}.legend .sample{display:inline-block;width:auto;margin:0;padding:3px 8px;font-size:11px;line-height:1.4;cursor:default}.phase-band{background:transparent!important;border:1px dashed #9aa58f;border-left:3px dashed #82a3c5;color:#4b5644}.booking b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.gantt-day.weekend,.gantt-wips.weekend{background:#f5f7f0;color:#adb4a5}.who-runs{font-size:11px;opacity:.75}.move-job{margin-top:18px}.week-bars{margin-top:10px;display:grid;gap:4px}.week-bars div{display:grid;grid-template-columns:110px 1fr 44px;align-items:center;gap:8px;font-size:11px}.week-bars progress{width:100%;height:6px}.week-bars b{text-align:right;font-weight:600}.recommend{align-items:center}.recommend b{flex:0 0 34%}.recommend span{flex:1}@media(hover:none){.add-cell,.add-wip{opacity:1}}.recommend span{font-size:12px}main>.notice,main>.error{position:sticky;top:8px;z-index:5;box-shadow:0 2px 10px #1f2a1c14}.more-fields{margin-top:16px;border-top:1px solid #e2e6dc;padding-top:12px}.more-fields summary{cursor:pointer;font-weight:600;font-size:13px;margin-bottom:10px}.modal.printable{width:min(1180px,96vw);max-width:none}.client-month{margin-top:18px;border:1px solid #dfe4d8;border-radius:8px;padding:16px;background:#fff}.client-masthead{display:flex;align-items:center;gap:18px;margin-bottom:10px}.client-masthead .logo-block{flex:0 0 110px;margin:0}.client-masthead>div:nth-child(2){flex:1}.client-masthead h1{font-size:20px;margin:0 0 2px}.client-masthead p{margin:0;font-size:12px;color:#5d6657}.client-masthead h2{font-size:22px;margin:0;white-space:nowrap}.client-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #cfd6c7;border-left:1px solid #cfd6c7}.client-weekday{font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:4px 6px;background:#1f2a1c;color:#fff;border-right:1px solid #cfd6c7}.client-day{min-height:92px;padding:3px 0 4px;border-right:1px solid #cfd6c7;border-bottom:1px solid #cfd6c7;overflow:hidden}.client-day.weekend{background:#f4f6f0}.client-day.outside{background:#fafbf8}.client-date{display:block;font-size:12px;font-weight:600;padding:0 6px 2px;min-height:16px}.client-bar,.client-mark{font-size:10px;line-height:1.3;padding:2px 6px;margin-bottom:2px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-mark{margin:0 4px 2px;border-radius:3px;font-weight:600;white-space:normal;background:#fbf0cf;color:#5c4708}.client-bar.k-cgi{background:#d6e3f3;color:#1f3d5c}.client-bar.k-online{background:#dcebd3;color:#2c4a1f}.client-bar.k-offline{background:#eadcf0;color:#4a2a57}.client-bar.k-grade,.client-mark.k-grade{background:#f6dccb;color:#6b3413}.client-mark.k-start{background:#e3e7de;color:#1f2a1c}.client-mark.k-delivery{background:#1f2a1c;color:#fff}.client-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;font-size:10px;color:#5d6657}.client-legend{display:flex;gap:6px;flex-wrap:wrap}.client-legend i{margin:0;border-radius:3px}.client-list{margin-top:18px}@media print{@page{size:A4 landscape;margin:9mm}.modal.printable{padding:0;width:100%}.client-month{border:0;padding:0;margin:0;break-after:page;break-inside:avoid}.client-day{min-height:0;height:23mm}.client-masthead .logo-block{flex-basis:26mm}.client-masthead{margin-bottom:3mm}.modal.printable,.modal-backdrop{background:#fff!important}.client-month,.client-list{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.pickers{display:grid;gap:6px}.picker{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;border-top:1px solid #eef1ea}.picker-label{flex:0 0 150px;font-size:12.5px;font-weight:600}.picker select{width:auto;min-width:170px;padding:5px 8px;font-size:12px}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:#e5eddf;font-size:12px}.chip button{border:0;background:transparent;padding:0 6px;font-size:14px;line-height:1;cursor:pointer}.head-form{margin-top:16px;border-top:1px solid #e2e6dc;padding-top:12px}.booking.team{cursor:pointer}a.button{display:inline-block;padding:8px 14px;border:1px solid #d5dbcd;border-radius:7px;background:#fff;color:inherit;text-decoration:none;font-size:12.5px}.tag.pending{background:#fbf0cf;color:#6f5413;margin-left:6px}.invite-note{align-self:end}.booking.team span{white-space:normal}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}.calendar-scroll{max-height:calc(100vh - 150px);overflow:auto}.grid>.resource,.grid>.resource-label{position:sticky;left:0;z-index:2;background:#fafbf7}.grid>.resource.me{background:#f4f6ef}.grid>.grid-head{z-index:3}.grid>.resource-label{z-index:4}.resource,.cell{min-height:56px}.resource small.over{display:block;color:#a4502f;font-weight:600}.booking.team.hold{opacity:.55;border-left-style:dashed}.gantt-scroll{max-height:calc(100vh - 150px)}.chip button{min-width:26px;min-height:24px}.table-wrap{overflow-x:auto}article[hidden]{display:none}.client-masthead h1{overflow-wrap:anywhere}.client-list table{width:100%;table-layout:fixed}.client-list td{overflow-wrap:anywhere}@media print{.app{display:block}.modal-backdrop,.modal.printable{display:block;width:100%!important;max-width:none!important}.client-day{height:auto;min-height:21mm;overflow:visible}.client-mark{white-space:normal;overflow:visible}.client-list{break-before:page;margin-top:0}.client-list:before{content:none}}@media(max-width:760px){aside{width:70px;padding:14px 4px}nav button{font-size:9.5px;line-height:1.2;padding:9px 2px;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;white-space:normal}nav button span{font-size:17px}.profile:after{content:"Sign out";display:block;font-size:9.5px;text-align:center}.profile{flex-direction:column}.grid>.resource,.grid>.resource-label{max-width:120px}.table-wrap:before{content:"Swipe sideways to see the whole table";display:block;font-size:11px;color:#7b8474;padding:4px 0}}@media print{html,body,#root,.app,.client-list,.client-list table{background:#fff!important}}.calendar-scroll{max-height:78vh}.cell{min-width:0;overflow:hidden}.cell .booking,.cell .wip-card,.cell .leave,.cell .job-date{max-width:100%;min-width:0;overflow-wrap:anywhere}.cell .wip-card span{white-space:normal}@media(max-width:760px){.grid{width:max-content;min-width:100%}}.tag{text-transform:none;display:inline-block}.tag:first-letter{text-transform:uppercase}.month-phase{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media print{.client-month.six-weeks .client-day{min-height:17mm}}@media(max-width:760px){.grid>.resource,.grid>.resource-label{overflow:hidden;min-width:0;padding:8px 6px}.grid>.resource .avatar{display:none}.grid>.resource b,.grid>.resource small{overflow-wrap:anywhere;white-space:normal}}@media print{.client-month.six-weeks .client-day{min-height:13mm}.client-month.six-weeks .client-bar,.client-month.six-weeks .client-mark{font-size:8.5px;padding:1px 4px;margin-bottom:1px}}
