:root{color:#17322f;background:#f2f3ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.login-shell{display:grid;height:100vh;grid-template-rows:auto 1fr auto;overflow:hidden;background:linear-gradient(rgba(20,59,54,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(20,59,54,.045) 1px,transparent 1px),#f2f3ed;background-size:42px 42px}.login-nav{display:flex;width:100%;align-items:center;justify-content:space-between;padding:16px clamp(24px,5vw,76px)}.login-footer{display:flex;flex-direction:column;gap:6px;width:100%;padding:10px clamp(24px,5vw,76px) 14px}.login-footer-row{display:flex;width:100%;align-items:center;justify-content:space-between}.powered-by{margin:0;color:#97a19c;font-size:10px;font-weight:700;letter-spacing:.6px;text-align:center}.brand-header,.topbar-brand{display:flex;align-items:center;gap:14px}.brand-mark{display:grid;width:50px;height:50px;flex:0 0 auto;place-items:center;padding:4px;border-radius:6px;border:1px solid #e1e6df;background:#fff;box-shadow:5px 5px #e4b94f}.brand-mark img{width:100%;height:100%;object-fit:contain}.brand-name{margin:0;color:#17322f;font-size:21px;font-weight:850}.brand-subtitle{margin:3px 0 0;color:#6b7771;font-size:10px;font-weight:800;letter-spacing:1.8px}.nav-security{display:flex;align-items:center;gap:7px;margin:0;color:#547068;font-size:13px;font-weight:700}.login-content{display:grid;width:min(760px,100%);margin:auto;grid-template-columns:1fr;place-items:center;padding:10px clamp(24px,7vw,110px) 14px}.login-intro{max-width:680px}.eyebrow{margin:0 0 12px;color:#d65f45;font-size:13px;font-weight:850;letter-spacing:2.6px}.login-intro h1{margin:0;color:#17322f;font-family:Georgia,Times New Roman,serif;font-size:clamp(32px,4vw,54px);font-weight:700;line-height:1.05;letter-spacing:0}.login-intro h1 span{color:#d65f45}.login-intro>p:not(.eyebrow){max-width:610px;margin:12px 0 0;color:#5d6d68;font-size:15px;line-height:1.5}.week-preview{width:min(100%,570px);margin-top:16px;border:1px solid #ced7d0;border-radius:8px;padding:16px 18px 14px;background:#ffffffdb;box-shadow:10px 10px #e4b94f4d}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.preview-heading div{display:flex;align-items:baseline;gap:12px}.preview-heading span{color:#677770;font-size:13px;font-weight:750}.preview-heading strong{color:#17322f;font-size:21px}.preview-heading p{display:flex;align-items:center;gap:6px;margin:0;color:#237668;font-size:12px;font-weight:800}.day-grid{display:grid;height:100px;grid-template-columns:repeat(5,1fr);align-items:end;gap:10px;margin:12px 0}.day-column{display:grid;height:100%;grid-template-rows:18px 1fr 18px;align-items:end;gap:5px;text-align:center}.day-column span,.day-column small{color:#78847f;font-size:10px;font-weight:800}.day-bar{width:100%;align-self:end;border-radius:3px 3px 0 0;background:#2a766b}.day-bar-1,.day-bar-3{height:58px}.day-bar-2{height:51px;background:#e4b94f}.day-bar-4{height:42px;background:#d65f45}.day-bar-5{height:23px;background:#88a9a0}.preview-project{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px;border-top:1px solid #e0e5df;padding-top:10px}.project-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:5px;color:#fff;background:#d65f45}.preview-project strong,.preview-project small{display:block}.preview-project strong{color:#2d433e;font-size:13px}.preview-project small{margin-top:2px;color:#83908a;font-size:11px}.preview-project b{color:#17322f;font-size:14px}.login-action-panel{display:grid;width:100%;place-items:center}.sign-in-card{position:relative;width:min(100%,500px);border:1px solid #cad4cd;border-radius:8px;padding:clamp(20px,2.8vw,32px);background:#fffdfa;box-shadow:0 25px 70px #223f3921;text-align:center}.card-accent{position:absolute;top:0;left:0;width:92px;height:6px;background:#d65f45}.secure-label{margin:0 0 10px;color:#237668;font-size:12px;font-weight:850;letter-spacing:2px}.sign-in-card h2{margin:0 0 8px;color:#17322f;font-family:Georgia,Times New Roman,serif;font-size:clamp(24px,2.8vw,34px);line-height:1.1}.sign-in-card>p:not(.secure-label):not(.error-text):not(.access-note){margin:0 0 18px;color:#6a7772;font-size:14px;line-height:1.45}.microsoft-button{display:grid;width:100%;min-height:50px;grid-template-columns:24px 1fr 20px;align-items:center;gap:13px;border:0;border-radius:6px;padding:0 20px;color:#fff;background:#174f47;box-shadow:0 8px 18px #174f4733;cursor:pointer;font-size:16px;font-weight:800;text-align:left;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.microsoft-button:hover{background:#0f4039;box-shadow:0 12px 24px #174f4742;transform:translateY(-1px)}.microsoft-mark{display:grid;width:22px;height:22px;grid-template:1fr 1fr / 1fr 1fr;gap:2px}.microsoft-mark span:nth-child(1){background:#f25022}.microsoft-mark span:nth-child(2){background:#7fba00}.microsoft-mark span:nth-child(3){background:#00a4ef}.microsoft-mark span:nth-child(4){background:#ffb900}.secondary-wide-button{display:inline-flex;width:100%;min-height:46px;align-items:center;justify-content:center;gap:10px;border:1px solid #bdcac3;border-radius:6px;margin-top:12px;color:#174f47;background:#fffdfa;cursor:pointer;font-weight:850}.access-note{display:flex;align-items:center;justify-content:center;gap:7px;margin:12px 0 0;color:#82908b;font-size:11px;font-weight:700}.error-text,.dashboard-error{margin:18px 0 0;color:#a13a2c;font-weight:700}.login-footer{border-top:1px solid rgba(58,84,78,.13);color:#74807b;font-size:11px;font-weight:700;letter-spacing:.7px}.role-choice-shell{min-height:100vh;background:#f2f3ed}.role-choice-content{display:grid;min-height:calc(100vh - 82px);place-items:center;padding:40px 22px}.role-choice-card{width:min(100%,820px);border:1px solid #ccd6cf;border-top:5px solid #d65f45;border-radius:8px;padding:clamp(26px,4vw,44px);background:#fffdfa;box-shadow:0 22px 60px #223f391f}.role-choice-card h1{margin:0;color:#17322f;font-family:Georgia,Times New Roman,serif;font-size:clamp(28px,4vw,42px);line-height:1.12}.role-choice-card>p:not(.eyebrow){margin:12px 0 0;color:#65756f;line-height:1.5}.role-choice-card>p strong{color:#29443e;overflow-wrap:anywhere}.role-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}.role-choice-grid button{display:grid;min-height:180px;grid-template-columns:44px 1fr 20px;grid-template-rows:auto auto;align-content:center;align-items:center;gap:7px 13px;border:1px solid #bdcac3;border-radius:8px;padding:22px;color:#17322f;background:#fff;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.role-choice-grid button:hover{border-color:#237668;box-shadow:0 10px 24px #2376681f;transform:translateY(-2px)}.role-choice-grid button>span{display:grid;width:44px;height:44px;grid-row:1 / 3;place-items:center;border-radius:6px;color:#fff;background:#174f47}.role-choice-grid button:nth-child(2)>span{color:#604c16;background:#f4d878}.role-choice-grid strong{align-self:end;font-size:18px}.role-choice-grid small{align-self:start;color:#6d7a75;font-size:12px;line-height:1.45}.role-choice-grid button>svg{grid-column:3;grid-row:1 / 3;color:#4c6d64}.dashboard-shell{min-height:100vh;background:#f2f3ed}.topbar{display:flex;min-height:82px;align-items:center;justify-content:space-between;border-bottom:1px solid #d8ded8;padding:0 clamp(22px,5vw,72px);background:#fffdfa}.topbar .brand-mark{width:46px;height:46px;box-shadow:4px 4px #e4b94f}.topbar-brand p,.user-chip p{margin:0;color:#17322f;font-weight:800}.topbar-brand span,.user-chip small{color:#71807a}.icon-text-button{display:inline-flex;min-height:42px;align-items:center;gap:9px;border:1px solid #bdcac3;border-radius:6px;padding:0 15px;color:#174f47;background:transparent;cursor:pointer;font-weight:800}.topbar-actions{display:flex;align-items:center;gap:14px}.user-chip{display:flex;width:min(100%,350px);align-items:center;gap:13px;border-left:4px solid #d65f45;padding:13px 15px;background:#fffdfa}.user-chip>span{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:5px;color:#fff;background:#174f47;font-weight:900}.user-chip small{display:block;max-width:240px;overflow-wrap:anywhere}.topbar .user-chip{width:auto;border-left:0;padding:3px 0;background:transparent}.topbar .user-chip>span{width:36px;height:36px;font-size:13px}.topbar .user-chip p{font-size:13px}.topbar .user-chip small{max-width:220px;font-size:11px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:34px clamp(22px,5vw,72px)}.summary-card{min-height:150px;border:1px solid #d7ddd7;border-top:5px solid #237668;border-radius:6px;padding:24px;background:#fffdfa;box-shadow:0 8px 24px #2a413b0f}.summary-card:nth-child(2){border-top-color:#e4b94f}.summary-card:nth-child(3){border-top-color:#d65f45}.summary-card svg{color:#237668}.summary-card p{margin:18px 0 6px;color:#697871;font-weight:800}.summary-card strong{color:#17322f;font-size:28px}.segmented-control{display:inline-grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:4px;border:1px solid #bdcac3;border-radius:7px;margin-top:22px;padding:4px;background:#fffdfa}.segmented-control button{min-height:38px;border:0;border-radius:5px;color:#5d6d68;background:transparent;cursor:pointer;font-weight:850}.segmented-control button.active{color:#fffdfa;background:#174f47}.workspace-grid,.admin-panel{padding:30px clamp(18px,5vw,72px) 54px}.tool-panel,.admin-panel,.consultant-workspace{width:min(100%,1420px);margin:0 auto}.workspace-tabs{display:flex;gap:4px;border-bottom:1px solid #cdd6cf;margin-bottom:16px}.workspace-tabs button{display:inline-flex;min-height:46px;align-items:center;gap:9px;border:0;border-bottom:3px solid transparent;padding:0 18px;color:#64736d;background:transparent;cursor:pointer;font-weight:850}.workspace-tabs button:hover{color:#174f47;background:#fffdfa99}.workspace-tabs button.active{border-bottom-color:#d65f45;color:#17322f;background:#fffdfa}.tool-panel,.admin-panel>.panel-heading,.admin-stats,.filter-grid,.submissions-table-wrap{border:1px solid #d7ddd7;border-radius:8px;background:#fffdfa}.tool-panel{padding:clamp(20px,3vw,32px);box-shadow:0 8px 24px #2a413b0f}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-heading h2,.manual-heading h3{margin:0;color:#17322f;font-size:22px;font-weight:750;line-height:1.18}.panel-heading-actions{display:inline-flex;align-items:center;gap:10px}.file-upload-button{position:relative;color:#fffdfa;background:#174f47}.file-upload-button:hover{background:#0f4039}.file-upload-button:focus-within{outline:2px solid #237668;outline-offset:2px}.file-upload-button:has(input:disabled){opacity:.62;cursor:wait}.file-upload-button input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-button input:disabled{cursor:wait}.submission-period,.history-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 18px;margin-bottom:24px}.submission-period>div:first-child{display:flex;align-items:center;gap:12px}.control-label{color:#60716b;font-size:11px;font-weight:850;letter-spacing:.6px;text-transform:uppercase}.submission-period .segmented-control,.history-toolbar .segmented-control{margin:0}.period-navigation{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:4px;border:1px solid #d7ddd7;border-radius:7px;padding:4px;background:#fbfbf8}.period-navigation>strong{min-width:190px;color:#29443e;font-size:13px;font-weight:700;text-align:center}.period-today-button{min-height:30px;border:0;border-left:1px solid #dce3dd;padding:0 10px 0 12px;margin-left:4px;color:#237668;background:transparent;cursor:pointer;font-weight:850;font-size:12px}.history-panel{min-height:420px}.history-toolbar{border-top:1px solid #dce3dd;border-bottom:1px solid #dce3dd;padding:14px 4px}.history-summary-line{display:flex;gap:28px;border-bottom:1px solid #dce3dd;padding:0 4px 16px}.history-summary-line span{display:inline-flex;align-items:center;gap:7px;color:#64736d;font-size:12px}.history-summary-line svg{color:#237668}.history-summary-line strong{color:#17322f;font-size:16px}.consultant-history{margin-top:18px}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}.history-heading h3{margin:0;color:#17322f;font-size:18px}.history-heading p{margin:3px 0 0;color:#6b7771;font-size:12px}.history-heading svg{color:#237668}.history-empty{margin:12px 0 0;color:#74807b;font-size:13px}.history-item{border-top:1px solid #e4e8e2}.history-item>button{display:grid;width:100%;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) 22px;align-items:center;gap:16px;border:0;padding:13px 4px;color:#17322f;background:transparent;cursor:pointer;text-align:left}.history-item>button:hover{background:#f7f8f4}.history-item>button span,.history-item>button strong,.history-item>button small{display:block;min-width:0}.history-item>button strong{font-size:13px}.history-item>button small{margin-top:3px;color:#71807a;font-size:11px}.history-entry-wrap{overflow-x:auto;padding:0 4px 12px}.history-entry-table{width:100%;min-width:620px;border-collapse:collapse;background:#f7f8f4}.history-entry-table th,.history-entry-table td{border-bottom:1px solid #dfe5df;padding:8px 10px;font-size:12px;text-align:left}.history-entry-table th{color:#60716b;font-size:10px;letter-spacing:.5px;text-transform:uppercase}.manual-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.manual-heading p{margin:4px 0 0;color:#6b7771;font-size:13px;font-weight:600}.entry-table-wrap,.submissions-table-wrap{width:100%;overflow-x:auto;border:1px solid #e4e8e2;border-radius:8px}.entry-table,.submissions-table{width:100%;border-collapse:collapse;min-width:980px}.entry-table th,.submissions-table th{border-bottom:1px solid #e4e8e2;padding:11px 12px;color:#5d6d68;font-size:11px;font-weight:800;letter-spacing:.5px;text-align:left;text-transform:uppercase;background:#f5f7f2}.entry-table td,.submissions-table td{padding:8px 10px;border-bottom:1px solid #edf0ea;text-align:left;vertical-align:middle}.entry-table tbody tr:last-child td,.submissions-table tbody tr:last-child td{border-bottom:0}.entry-table tbody tr:hover,.submissions-table tbody tr:hover{background:#fafbf8}.entry-table col.col-date{width:148px}.entry-table col.col-tier,.entry-table col.col-activity{width:150px}.entry-table col.col-hours{width:96px}.entry-table col.col-actions{width:46px}.entry-table input,.entry-table select,.field input,.field select{width:100%;min-height:38px;border:1px solid transparent;border-radius:5px;padding:0 9px;color:#17322f;background:transparent;font-size:13px;transition:border-color .15s ease,background .15s ease}.entry-table input:hover,.entry-table select:hover{background:#fff;border-color:#dbe2dc}.entry-table input:focus,.entry-table select:focus,.field input:focus,.field select:focus{background:#fff;border-color:#237668;outline:none}.field input,.field select{border-color:#c7d2cb;background:#fff}.entry-table td:nth-child(5) input{min-width:220px}.entry-table td:nth-child(6) input{min-width:84px}.icon-only-button{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid #c7d2cb;border-radius:5px;color:#174f47;background:#fffdfa;cursor:pointer}.period-navigation .icon-only-button{border:0;background:transparent}.period-navigation .icon-only-button:hover{background:#eef1ea}.warning-list{display:grid;gap:6px;border-left:4px solid #e4b94f;margin-top:14px;padding:10px 12px;background:#fff7d7}.warning-list p,.status-message{margin:0;color:#5e5140;font-weight:750}.status-message{margin-top:14px;color:#174f47}.submit-row{display:flex;justify-content:flex-end;margin-top:18px}.primary-action{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:9px;border:0;border-radius:6px;padding:0 16px;color:#fffdfa;background:#174f47;cursor:pointer;font-weight:850;text-decoration:none}.primary-action:disabled{opacity:.62;cursor:wait}.primary-action.compact{min-height:40px}.dialog-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0f231f94}.conflict-dialog{display:grid;width:min(100%,610px);grid-template-columns:48px 1fr;gap:16px;border:1px solid #c9d3cc;border-radius:8px;padding:24px;background:#fffdfa;box-shadow:0 28px 80px #0a1e1a4d}.dialog-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:6px;color:#8c5510;background:#f7dc86}.conflict-dialog .eyebrow{margin-bottom:7px}.conflict-dialog h3{margin:0;color:#17322f;font-size:22px}.conflict-dialog p:not(.eyebrow){margin:10px 0 0;color:#5f6e69;line-height:1.5}.conflict-dialog .conflict-dates{color:#7d382c;font-weight:850}.dialog-actions{display:flex;grid-column:1 / -1;justify-content:flex-end;gap:10px;margin-top:4px}.admin-panel{border:0;background:transparent}.admin-panel>.panel-heading,.admin-stats,.filter-grid,.submissions-table-wrap{padding:18px;box-shadow:0 8px 24px #2a413b0d}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.admin-stats article{display:grid;grid-template-columns:30px 1fr;gap:4px 10px;align-items:center;border-left:4px solid #237668;padding:12px;background:#f7f8f4}.admin-stats article:nth-child(2){border-left-color:#e4b94f}.admin-stats article:nth-child(3){border-left-color:#d65f45}.admin-stats article span{color:#63736d;font-size:12px;font-weight:800}.admin-stats article strong{grid-column:2;color:#17322f;font-size:22px}.filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.field{display:grid;gap:6px}.field span{color:#60716b;font-size:12px;font-weight:850;letter-spacing:.5px;text-transform:uppercase}.submissions-table td strong,.submissions-table td span{display:block}.submissions-table td span{margin-top:2px;color:#74807b;font-size:12px}.empty-cell{height:86px;color:#74807b;text-align:center!important}.empty-cell svg{margin-right:8px;vertical-align:middle}@media(max-width:900px){.login-shell{overflow:auto}.login-content{padding-top:58px}.login-intro{max-width:none}.summary-grid{grid-template-columns:1fr}.admin-stats,.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-heading,.manual-heading{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.submission-period,.history-toolbar{align-items:stretch;flex-direction:column}.period-navigation{justify-content:space-between}}@media(max-width:560px){.login-nav{align-items:flex-start}.nav-security{display:none}.login-content{padding-top:36px}.login-intro h1{font-size:44px}.week-preview{padding:18px}.preview-heading div{align-items:flex-start;flex-direction:column;gap:2px}.sign-in-card{padding:32px 24px}.login-footer span:last-child{display:none}.topbar{min-height:126px;align-items:flex-start;flex-direction:column;justify-content:center;gap:14px}.topbar-actions{width:100%;justify-content:space-between}.role-choice-content{min-height:calc(100vh - 126px);padding:24px 16px}.role-choice-card{padding:26px 20px}.role-choice-grid{grid-template-columns:1fr}.role-choice-grid button{min-height:132px}.workspace-tabs button{flex:1;justify-content:center;padding:0 8px}.segmented-control{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.submission-period>div:first-child{align-items:stretch;flex-direction:column}.panel-heading-actions{width:100%}.panel-heading-actions .icon-text-button{flex:1;justify-content:center}.period-navigation{flex-wrap:wrap}.period-navigation>strong{min-width:calc(100% - 88px);order:0}.period-today-button{width:100%;border-left:0;border-top:1px solid #dce3dd;margin:4px 0 0;padding:8px 0 0;text-align:center}.history-summary-line{align-items:flex-start;flex-direction:column;gap:10px}.history-item>button{grid-template-columns:1fr 22px}.history-item>button span:nth-child(2){grid-column:1}.history-item>button>svg{grid-column:2;grid-row:1 / 3}.conflict-dialog{grid-template-columns:1fr;padding:20px}.dialog-actions{grid-column:1;align-items:stretch;flex-direction:column-reverse}.admin-stats,.filter-grid{grid-template-columns:1fr}.submit-row{justify-content:stretch}.primary-action{width:100%}}
