:root{font-family:Arial,Helvetica,sans-serif;color:#21382f;background:#f6f8f7;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button{min-height:46px;border:1px solid #bcc9c1;border-radius:7px;background:white;color:#254136;padding:10px 16px}button:hover{background:#edf3ed}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #659328;outline-offset:3px}[hidden]{display:none!important}header{min-height:94px;display:flex;align-items:center;justify-content:space-between;padding:20px 5%;gap:20px;background:white;border-bottom:1px solid #dce4de}.brand{display:flex;gap:16px;align-items:center;text-decoration:none;color:inherit}.brand strong{font-size:34px;letter-spacing:-2px}.brand strong span{color:#7ba834}.brand>span{font-size:14px;max-width:180px;line-height:1.4}select{padding:10px;border:1px solid #c6d1cb;background:white;border-radius:6px;color:inherit}#login{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 150px)}.intro{background:#254136;color:white;padding:clamp(40px,7vw,110px);display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:14px;letter-spacing:2px;font-weight:700;margin:0 0 22px}.intro .eyebrow{color:#bddb83}h1{font-size:clamp(36px,4.2vw,64px);line-height:1.1;letter-spacing:-2px;margin:0 0 28px;font-weight:600}.lede{font-size:20px;line-height:1.65;color:#e0e9e2;max-width:360px}.rule{width:65px;height:4px;background:#b0d557;margin:34px 0}.intro-bottom{line-height:1.8;color:#dbe5dc;margin:0}.access{padding:48px 32px;display:flex;align-items:center;justify-content:center;background:#fff}.form-wrap{width:100%;max-width:410px}.access .eyebrow{color:#608033;margin-bottom:12px}h2{font-size:30px;letter-spacing:-.7px;margin:0 0 12px}.muted{color:#5f6e65;line-height:1.6;margin:0 0 30px}label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}input{width:100%;height:50px;border:1px solid #b7c6bd;border-radius:6px;padding:12px;background:#fcfdfc;color:#21382f}.password-label{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.password-label label{margin:0}.text-button{border:0;font-size:14px;padding:6px;min-height:40px;background:transparent}.primary{width:100%;margin-top:26px;background:#254136;color:white;border-color:#254136;font-weight:600}.primary:hover{background:#365a45}#auth-message{padding:12px;background:#f3f5df;line-height:1.5;font-size:14px}.demo{border-top:1px solid #dce4de;margin-top:32px;padding-top:23px}.badge{font-size:12px;letter-spacing:1px;font-weight:bold;color:#536a42}.demo p{font-size:14px;line-height:1.6;color:#5f6e65;margin:10px 0 16px}.demo-actions{display:flex;gap:10px}.demo-actions button{flex:1;font-size:14px}footer{min-height:56px;padding:18px 5%;display:flex;justify-content:space-between;gap:16px;font-size:12px;color:#607067;border-top:1px solid #dce4de}#workspace{padding:50px 6%;min-height:calc(100vh - 150px);max-width:1400px;margin:auto}.workspace-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.workspace-top h1{font-size:42px;margin:0}.workspace-top .eyebrow{margin-bottom:12px}.notice{background:#eaf0df;padding:16px;border-radius:7px;line-height:1.5;margin:30px 0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:white;border:1px solid #dce4de;padding:25px;border-radius:10px}.card h2{font-size:21px}.card p{font-size:16px;line-height:1.6;color:#5f6e65}.card span{font-size:13px;color:#5f6e65}.next{margin-top:35px;max-width:650px}.next h2{font-size:24px}.next p{line-height:1.7;color:#5f6e65}@media(max-width:850px){.intro{padding:40px}h1{font-size:42px}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){header{padding:16px 20px;min-height:78px}.brand{gap:10px}.brand strong{font-size:28px}.brand>span{font-size:12px;max-width:130px}#login{grid-template-columns:1fr}.intro{padding:28px 24px}.intro h1{font-size:32px;margin:0;letter-spacing:-1px}.intro .eyebrow{margin-bottom:14px;font-size:12px}.lede,.rule,.intro-bottom{display:none}.access{padding:32px 24px}.cards{grid-template-columns:1fr}.workspace-top{align-items:flex-start}.workspace-top h1{font-size:32px}footer{flex-wrap:wrap}.demo-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s ease}}
.schedule-panel{max-width:1300px;margin:auto;padding:40px 5%;min-height:calc(100vh - 150px)}.schedule-panel h1{font-size:42px}.schedule-panel .muted{margin-bottom:0}.schedule-primary{background:#254136;color:white;border-color:#254136}.schedule-primary:hover{background:#365a45}.schedule-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:18px;background:white;padding:24px;border:1px solid #dce4de;border-radius:10px}.schedule-field{display:flex;flex-direction:column;gap:10px;flex:1;margin:0;min-width:0}.schedule-field select{width:100%;min-height:50px}.schedule-toolbar .schedule-field{min-width:210px}.copy-hint{font-size:14px;color:#5f6e65;line-height:1.6}.shift-section{margin:32px 0}.shift-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.shift-heading h2{font-size:26px;margin:0}.job-editor{padding:24px;background:white;border:1px solid #cedbd2;border-radius:10px;margin:16px 0}.job-top{display:flex;align-items:flex-end;gap:20px}.remove-job{font-size:14px;color:#943b30}.project-data{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:18px;background:#f1f5ef;border-radius:6px}.project-data dt{font-size:13px;color:#576958;margin-bottom:8px}.project-data dd{margin:0;line-height:1.5;overflow-wrap:anywhere}.worker-picker{border:0;padding:0;margin:24px 0;display:flex;flex-wrap:wrap;gap:12px}.worker-picker legend{font-size:14px;font-weight:bold;margin-bottom:12px}.worker-picker label{display:flex;align-items:center;gap:8px;border:1px solid #cedbd2;border-radius:6px;padding:12px;font-size:14px;margin:0;cursor:pointer}.worker-picker input{width:20px;height:20px;accent-color:#426533}.schedule-field textarea{font:inherit;width:100%;padding:12px;border:1px solid #b7c6bd;border-radius:6px;resize:vertical}.schedule-actions{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #dce4de;padding:22px 0}.schedule-status:not(:empty){background:#eaf0df;padding:16px;border-left:4px solid #668d36;line-height:1.6}.schedule-summary{background:white;border:1px solid #dce4de;border-radius:8px;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:18px;margin:18px 0}.schedule-summary h2{font-size:21px}.schedule-summary p{color:#5f6e65;margin-bottom:0}.empty-schedules{padding:40px 0;color:#5f6e65;line-height:1.6}.schedule-dialog{border:1px solid #c5d1c9;border-radius:12px;padding:28px;width:min(700px,94vw);max-height:85vh;color:#21382f}.schedule-dialog::backdrop{background:#13271eb3}.detail-job{padding:18px 0;border-bottom:1px solid #dce4de}.detail-job p{line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.schedule-dialog>button{margin-top:24px}@media(max-width:600px){.schedule-panel{padding:28px 20px}.schedule-panel h1{font-size:32px}.schedule-panel .workspace-top{flex-wrap:wrap}.schedule-toolbar{padding:18px}.job-top{flex-wrap:wrap}.job-top .schedule-field{flex-basis:100%}.job-editor{padding:18px}.project-data{grid-template-columns:1fr}.worker-picker label{flex:1 1 42%}.schedule-summary{flex-wrap:wrap}.schedule-actions button{flex:1}}
.workers-dialog>p{line-height:1.6}.worker-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.worker-form>button,.worker-form>p{grid-column:1/-1}.worker-form>p{margin:0;line-height:1.5}.roster-list,.worker-options{margin:18px 0;max-height:340px;overflow:auto}.roster-item{display:flex;flex-direction:column;gap:5px;border-bottom:1px solid #dce4de;padding:15px 0}.roster-item span{font-size:14px;color:#5f6e65}.worker-option{display:flex;align-items:center;gap:14px;padding:16px 10px;border-bottom:1px solid #dce4de;cursor:pointer;font-size:16px;margin:0}.worker-option input{width:22px;height:22px;flex-shrink:0;accent-color:#426533}.worker-option small{display:block;font-size:13px;line-height:1.5;color:#80533a;margin-top:5px}.assigned-workers{margin:24px 0}.assigned-workers h3{font-size:14px}.assigned-workers p{line-height:1.6;overflow-wrap:anywhere}@media(max-width:600px){.worker-form{grid-template-columns:1fr}.workers-dialog{padding:22px}.worker-options{max-height:38vh}}
.roster-actions{display:flex;gap:10px;margin-top:8px}.roster-actions button{font-size:14px}.roster-actions button:last-child{color:#943b30}.worker-form>button{justify-self:start}.workers-dialog{width:min(900px,94vw)}
.clickup-lookup{padding:18px;background:#edf3e8;border-radius:8px;margin:18px 0}.clickup-lookup label{max-width:420px}.clickup-lookup input{margin-top:10px}.clickup-lookup p{line-height:1.5}.clickup-lookup a{display:inline-block;margin:8px 0;color:#254136}#connect-form{max-width:600px}#connect-form button{margin-top:16px}.schedule-panel ol{line-height:1.8}
.project-results{width:min(850px,94vw)}.project-results>p{line-height:1.5}.project-result{border:1px solid #cedbd2;border-radius:8px;padding:18px;margin:16px 0;overflow-wrap:anywhere}.project-result h3{margin:0 0 14px}.project-result p{line-height:1.5;margin:8px 0}.project-missing{color:#943b30}.project-result button:disabled{opacity:.55;cursor:not-allowed}

.worker-time{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border:1px solid #cbd7cf;border-radius:12px;padding:16px;margin:16px 0;min-width:0}
.worker-time legend{font-weight:700;padding:0 8px}.worker-time input{width:100%;min-width:0}.time-modified{color:#b42318!important;border:2px solid #b42318!important}.time-change-note{color:#a12b20;background:#fff0ec;padding:16px;border-radius:10px}.timecard-totals{font-weight:700;font-size:1.2rem}.timecard-panel input[type=checkbox]{width:22px;height:22px;display:inline-block;margin:10px}.timecard-panel>button{margin:12px 0}.timecard-panel form>label{margin:20px 0}.timecard-panel textarea{width:100%}
@media(max-width:700px){.worker-time{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:10px}.timecard-panel .schedule-summary{align-items:flex-start;flex-direction:column}}
.hours-exception{color:#b42318}.timecard-panel .timecard-check{display:flex;align-items:flex-start;gap:12px;line-height:1.5;cursor:pointer}.timecard-panel .timecard-check input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:2px 0 0}.timecard-check span{flex:1;min-width:0}
@media(max-width:500px){.worker-time{grid-template-columns:1fr}}
.review-workers{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0;padding:20px;border:1px solid #cad8cf;border-radius:12px}.review-card{border:1px solid #cad8cf;border-radius:14px;padding:20px;margin:16px 0}.review-card button,.review-panel>button{margin:6px}.review-panel .timecard-check{display:flex;align-items:center;gap:10px}.review-panel input[type=checkbox]{width:22px;height:22px;flex:0 0 22px}.review-panel textarea{width:100%}.review-card h2{font-size:1.2rem}.review-panel .schedule-toolbar{margin-top:20px}
.account-access .demo{display:none!important}#local-account-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:24px}#local-account-actions p{margin:0}
.worker-admin-panel>input[type=search]{margin:22px 0 6px;width:100%}.worker-admin-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1fr);gap:20px;padding:24px;margin:14px 0;border:1px solid #cbd7cf;border-radius:14px;background:#fff}.worker-admin-row h2{font-size:1.25rem;margin:0 0 10px}.worker-admin-row p{margin:8px 0}.worker-admin-actions{display:flex;flex-wrap:wrap;gap:10px;align-content:center}.worker-admin-actions button{flex:1 1 190px}.worker-admin-panel>button{margin-top:10px}@media(max-width:650px){.worker-admin-row{grid-template-columns:1fr;padding:16px}}
.worker-password{display:block;font-family:ui-monospace,monospace;font-size:1.1rem;overflow-wrap:anywhere;user-select:all}.worker-password:not(:empty){padding:12px;background:#eef4e9;border-radius:8px}.worker-admin-panel .timecard-check{display:flex;align-items:center;gap:10px}dialog .timecard-check{display:flex;align-items:center;gap:10px}dialog .timecard-check input[type=checkbox]{width:22px;height:22px;flex:0 0 22px}

/* Schedule details: original assignments, review notices and saved highlights. */
.detail-project-field { font-weight: 700; margin: .4rem 0; }
.detail-worker { margin: 1.3rem 0; }
.detail-worker .detail-worker-name { font-size: 1.25em; font-weight: 700; margin-bottom: .35rem; }
.detail-worker p { margin-top: .35rem; }
.detail-modification-note { color: #a52b24; font-size: .88em; }
.detail-highlight { background: #fff19b; color: #203b32; border-radius: .2rem; }
.detail-markable { cursor: pointer; outline: 1px dashed #8a7840; padding: .2rem; }
.detail-markable:focus-visible { outline: 3px solid #315d85; }
.detail-highlight-help { font-size: .85em; }

/* Clear project-to-worker hierarchy; word highlights retain the field typography. */
.schedule-dialog .detail-project-id { font-size: 1.75rem; line-height: 1.25; }
.schedule-dialog .detail-project-name { font-size: 1.4rem; line-height: 1.35; }
.schedule-dialog .detail-project-contractor,
.schedule-dialog .detail-project-address { font-size: 1.2rem; line-height: 1.45; }
.schedule-dialog .detail-worker-name { font-size: 1.1rem; line-height: 1.4; }
.schedule-dialog .detail-worker-time,
.schedule-dialog .detail-job-notes,
.schedule-dialog .detail-modification-note { font-size: 1rem; line-height: 1.6; }
.detail-job { overflow-wrap: anywhere; }
.detail-job span.detail-markable { padding: .08em 0; border-radius: .15em; }

.schedule-details { width: min(1440px,96vw); padding: clamp(16px,3vw,40px); }
.schedule-details .detail-caption { font-size: .9rem; margin: 0; }
.schedule-details .detail-date { font-size: clamp(2rem,4vw,3.5rem); margin: .4rem 0 1.5rem; }
.detail-shift { text-transform: uppercase; font-size: 1.6rem; margin: 1.5rem 0; }
.detail-entry { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 24px; }
.schedule-details .detail-job { display: grid; grid-template-columns: 1.1fr 1.1fr 1fr; border: 1px solid #87978d; padding: 0; flex: 1; min-width: 0; }
.detail-column { min-width: 0; padding: clamp(14px,2vw,28px); }
.detail-column + .detail-column { border-left: 1px solid #87978d; }
.detail-column h4 { font-size: 1.3rem; margin: 0 0 1.5rem; }
.detail-tools { display: flex; flex-direction: column; gap: 10px; }
.detail-tools .detail-tool { width: 44px; height: 44px; padding: 8px; border-radius: 6px; background: white; color: #203b32; }
.detail-tool svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
.detail-tools .detail-tool[aria-pressed=true] { background: #254136; color: white; }
.detail-tools .detail-tool:focus-visible { outline: 3px solid #315d85; outline-offset: 2px; }
.schedule-details .detail-markable { outline: none; cursor: pointer; }
.schedule-details .detail-markable:hover { box-shadow: 0 2px #b49412; }
.schedule-details .detail-markable:focus-visible { outline: 2px solid #315d85; }
@media(max-width:850px) {
 .detail-entry { flex-direction: column; }
 .detail-tools { flex-direction: row; }
 .schedule-details .detail-job { grid-template-columns: 1fr; width: 100%; }
 .detail-column + .detail-column { border-left: 0; border-top: 1px solid #87978d; }
}
/* Drag a continuous word range, including wrapped lines, with the active tool. */
.schedule-details .detail-markable { touch-action: none; user-select: none; -webkit-user-select: none; }
/* Apply gesture ownership to the block as well as inline words on touch browsers. */
.schedule-details .detail-touch-field { touch-action: none; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.schedule-details .detail-touch-field .detail-markable { display: inline-block; -webkit-touch-callout: none; }
