:root{--bg:#f4f7fb;--card:#fff;--ink:#182230;--muted:#667085;--line:#d9e0ea;--primary:#174ea6;--primary2:#0b6e4f;--danger:#b42318;--warn:#b54708;--shadow:0 6px 22px rgba(20,30,55,.07)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--primary);text-decoration:none}.topbar{height:64px;background:#0f2747;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar nav{display:flex;gap:18px;align-items:center}.topbar a,.link-button{color:#e7edf8}.demo-pill{font-size:11px;margin-left:10px;padding:3px 7px;border:1px solid #7ea0cf;border-radius:999px}.user-chip{font-size:12px;padding:7px 10px;background:rgba(255,255,255,.1);border-radius:8px}.container{max-width:1240px;margin:28px auto;padding:0 20px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.page-head h1{margin:0 0 6px;font-size:30px}.page-head p{margin:0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.cards .card{margin:0}.big{font-size:21px;font-weight:700;margin:12px 0}.button,button{display:inline-block;border:0;border-radius:8px;padding:10px 14px;background:#e7eef8;color:#163a69;font-weight:650;cursor:pointer}.primary{background:var(--primary);color:white}.danger{background:#fee4e2;color:var(--danger)}.small{padding:6px 9px;font-size:12px}.inline{display:inline}.link-button{padding:0;background:none}.flash{padding:12px 14px;border-radius:9px;margin-bottom:16px}.flash.success{background:#e7f6ef;color:#05603a}.flash.error{background:#fee4e2;color:#912018}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.summary-strip>div{background:#fff;border:1px solid var(--line);padding:14px;border-radius:12px}.summary-strip span{display:block;color:var(--muted);font-size:12px}.summary-strip strong{display:block;margin-top:5px}.status{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:750;font-size:12px;letter-spacing:.03em}.status.draft{background:#eef2f6;color:#344054}.status.submitted{background:#fff2cc;color:#7a4c00}.status.approved{background:#dcfae6;color:#067647}.status.returned{background:#fee4e2;color:#b42318}.section-head{display:flex;justify-content:space-between;align-items:start}.muted{color:var(--muted);font-size:12px}.tag{font-size:11px;background:#eef2f6;padding:2px 5px;border-radius:5px}table{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:14px}th,td{text-align:left;padding:10px;border-bottom:1px solid #e8edf3;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#475467;background:#f8fafc}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:14px;padding-top:8px}.form-grid label,.toolbar label,.login-card label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650;color:#475467}.wide{grid-column:span 2}.actions{display:flex;align-items:end}input,select,textarea{width:100%;border:1px solid #cfd8e3;background:white;border-radius:8px;padding:9px 10px;font:inherit;color:var(--ink)}.checkbox{display:flex;gap:10px;align-items:flex-start;margin:15px 0}.checkbox input{width:auto;margin-top:3px}.callout{border-left:5px solid var(--primary)}.approval{border-left:5px solid var(--primary2)}.approval-actions{display:flex;gap:15px;align-items:center}.return-form{display:flex;gap:8px;min-width:420px}.warning-text{color:var(--warn);font-size:12px;margin-top:5px}.login-card{max-width:500px;margin:70px auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow)}.login-card form{display:grid;gap:14px}.demo-accounts{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:7px}.demo-accounts code{background:#f2f4f7;padding:6px 8px;border-radius:6px}.toolbar{display:flex;gap:12px;align-items:end}footer{max-width:1240px;margin:40px auto;padding:18px 20px;color:#667085;font-size:12px;border-top:1px solid #d9e0ea}@media(max-width:800px){.topbar{height:auto;padding:14px;display:block}.topbar nav{margin-top:10px;flex-wrap:wrap}.summary-strip{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}table{display:block;overflow-x:auto}.approval-actions,.return-form{display:block;min-width:0}.return-form input{margin:8px 0}}

/* Employee-friendly timesheet UI */
.simple-head{align-items:center}.status-box{text-align:right}.employee-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.employee-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.employee-summary span{display:block;color:var(--muted);font-size:12px}.employee-summary strong{display:block;margin-top:5px}.friendly-section-head p{margin:5px 0 0;color:var(--muted)}.history-link{font-size:13px}.week-tabs{display:flex;gap:8px;margin:18px 0 10px}.week-tab{min-width:170px;border:1px solid var(--line);background:#f8fafc;color:#344054}.week-tab span{font-size:11px;font-weight:500;color:#667085}.week-tab.active{background:#174ea6;color:#fff;border-color:#174ea6}.week-tab.active span{color:#dce8ff}.week-panel{display:none}.week-panel.active{display:block}.grid-scroll{overflow-x:auto}.time-grid{min-width:890px;margin-top:8px}.time-grid th,.time-grid td{text-align:center;vertical-align:middle}.time-grid .charge-col,.time-grid .charge-name{text-align:left;min-width:205px;position:sticky;left:0;background:#fff;z-index:2}.time-grid thead .charge-col{background:#f8fafc;z-index:3}.charge-name strong,.charge-name span{display:block}.charge-name span{font-size:12px;color:#667085;margin-top:2px}.day-col{min-width:78px}.day-col span,.day-col strong{display:block}.day-col strong{font-size:14px;margin-top:2px}.today-col{box-shadow:inset 0 -3px 0 #174ea6}.hour-input{width:68px;text-align:center;font-weight:700;font-size:16px;padding:9px 4px}.hour-input:focus{outline:3px solid rgba(23,78,166,.15);border-color:#174ea6}.hour-input:disabled{background:#f2f4f7;color:#98a2b3;cursor:not-allowed}.saved-cell{background:#e7f6ef}.saving-cell{opacity:.6}.readonly-hours{font-weight:700}.future-cell{background:#fafafa}.row-total,.daily-total-row td{font-weight:750}.daily-total-row td{background:#f8fafc}.add-code-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:14px}.add-code-form{display:flex;gap:8px;max-width:520px;flex:1}.autosave-note{font-size:12px;color:#667085}.saving{color:#b54708}.saved{color:#067647}.save-error{color:#b42318}.lock-card,.approved-card{display:flex;gap:15px;align-items:center}.lock-card{border-left:5px solid #f0b429}.approved-card{border-left:5px solid #12b76a}.lock-card h2,.approved-card h2{margin:0 0 5px}.lock-card p,.approved-card p{margin:0;color:#667085}.lock-icon{font-size:28px}.reminder-card{background:#fffbeb;border-color:#fedf89}.reminder-card h3{margin-top:0}.expense-card{padding:0;overflow:hidden}.expense-card summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:18px 20px;list-style:none}.expense-card summary::-webkit-details-marker{display:none}.expense-card summary span{color:#667085;font-size:13px}.details-body{padding:0 20px 20px;border-top:1px solid var(--line)}.submit-card{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center;border-left:5px solid #174ea6}.submit-card h2{margin-top:0}.submit-form{display:grid;gap:12px}.certification{margin:0}.big-submit{font-size:16px;padding:13px 18px}.manager-review{border-left:5px solid #0b6e4f}.correction-card{border-left:5px solid #b42318;background:#fff8f7}
@media(max-width:800px){.employee-summary{grid-template-columns:1fr 1fr}.week-tabs{display:grid;grid-template-columns:1fr 1fr}.week-tab{min-width:0}.submit-card{grid-template-columns:1fr}.add-code-bar{display:block}.autosave-note{display:block;margin-top:9px}.time-grid .charge-col,.time-grid .charge-name{position:static}.simple-head{align-items:flex-start}}

/* Admin project-code controls */
.admin-search{max-width:280px}.assignment-list,.code-admin-list{display:grid;gap:10px;margin-top:16px}.assignment-card,.code-admin-card{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.assignment-card summary,.code-admin-card summary{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:13px 15px;cursor:pointer;background:#f8fafc}.assignment-card summary span:first-child{display:grid;gap:2px}.assignment-card summary small{font-size:12px;color:var(--muted);font-weight:500}.assignment-count{font-size:12px;color:#475467;background:#eef2f6;padding:5px 8px;border-radius:999px;white-space:nowrap}.assignment-form{padding:15px}.code-check-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:9px}.code-check{display:flex;align-items:flex-start;gap:9px;border:1px solid #e2e8f0;border-radius:9px;padding:10px;cursor:pointer}.code-check:hover{background:#f8fafc}.code-check input{width:auto;margin-top:3px}.code-check span{display:grid;gap:2px}.code-check small{color:var(--muted)}.code-check em{font-size:10px;font-style:normal;color:#475467;background:#eef2f6;border-radius:4px;padding:2px 5px;width:max-content}.assignment-actions{margin-top:14px}.code-admin-card>form{padding:14px 15px}.compact-grid{border-top:1px solid var(--line)}.toggle-form{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line)}.code-status{font-size:11px;font-weight:750;padding:4px 8px;border-radius:999px}.code-status.active{background:#dcfae6;color:#067647}.code-status.inactive{background:#eef2f6;color:#667085}.code-admin-card[data-inactive="true"]{opacity:.72}.manager-form{display:flex;gap:7px;align-items:center}.manager-form select{min-width:190px}.retired-code-note{display:inline-block;margin-top:4px;font-size:10px;color:#b54708;background:#fffaeb;border-radius:4px;padding:2px 5px}
@media(max-width:900px){.code-check-grid{grid-template-columns:1fr}.admin-search{max-width:none}.assignment-card summary,.code-admin-card summary{align-items:flex-start}.manager-form{display:grid}.manager-form select{min-width:0}}

/* Full configurable pay-period calendar */
.week-tabs{display:none!important}.week-panel{display:block!important;margin:20px 0 30px}.calendar-week-heading{font-size:14px;font-weight:750;margin:18px 0 8px;padding:8px 12px;background:#f8fafc;border-left:4px solid #174ea6;border-radius:6px}.outside-period{background:#f4f4f5!important;color:#98a2b3!important}.outside-mark{color:#c2c7cf}.period-settings-note{margin-top:10px}
/* Period navigation and mobile refinements */
.period-nav{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:-6px 0 18px}.period-nav .button{min-width:132px;text-align:center}.site-footer{display:grid;gap:12px}.watermark{display:flex;align-items:center;justify-content:center;gap:10px;opacity:.68;font-size:11px}.watermark img{width:38px;height:38px;object-fit:contain;border-radius:6px}.watermark a{color:inherit;text-decoration:underline}.report-filters{align-items:end;flex-wrap:wrap}.report-filters label{min-width:180px;flex:1}
@media(max-width:600px){body{font-size:14px}.topbar{padding:12px 14px}.topbar>div strong{font-size:14px}.topbar nav{gap:9px;font-size:12px}.user-chip{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container{margin:16px auto;padding:0 10px}.page-head{display:block}.page-head h1{font-size:24px}.status-box{text-align:left;margin-top:10px}.card{padding:14px;border-radius:10px}.employee-summary{gap:8px}.employee-summary>div{padding:10px}.employee-summary strong{font-size:13px}.period-nav{justify-content:stretch}.period-nav .button{flex:1;min-width:0;padding:9px 7px;font-size:12px}.section-head{display:block}.history-link{display:inline-block;margin-top:10px}.grid-scroll{margin:0 -4px}.time-grid{min-width:740px}.time-grid .charge-col,.time-grid .charge-name{min-width:150px}.hour-input{width:56px;font-size:14px;padding:8px 2px}.form-grid{gap:10px}.toolbar{display:grid;grid-template-columns:1fr}.report-filters label{min-width:0}.report-filters button{width:100%}.approval-actions{display:grid;gap:10px}.return-form{min-width:0}.watermark{align-items:flex-start;text-align:left}.watermark img{width:32px;height:32px}}
.employment-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.employment-form input[type="date"]{width:155px}.compact-checkbox{margin:0;white-space:nowrap}.upload-panel{margin-top:18px;padding:16px;border:1px dashed #b8c6d8;border-radius:10px;background:#f8fafc}.upload-panel h3{margin:0 0 6px}.upload-panel p{margin:0 0 12px}.upload-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.upload-form input[type="file"]{max-width:100%;background:#fff}.audit-timeline{display:grid;gap:0}.audit-item{display:grid;grid-template-columns:18px 1fr;gap:12px;position:relative;padding-bottom:18px}.audit-item:not(:last-child)::after{content:"";position:absolute;left:8px;top:18px;bottom:0;width:2px;background:#d9e0ea}.audit-marker{width:16px;height:16px;margin-top:3px;border:4px solid #dce8ff;background:#174ea6;border-radius:50%;z-index:1}.audit-content{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fbfcfe}.audit-content p{margin:7px 0}.audit-meta{display:flex;justify-content:space-between;gap:15px;align-items:baseline}.audit-meta span{font-size:12px;color:var(--muted)}.audit-content details{margin-top:8px}.audit-details{margin:8px 0 0;padding:10px 10px 10px 26px;background:#f2f4f7;border-radius:6px;color:#475467;font-size:13px}.audit-details li{margin:4px 0}.audit-content summary{cursor:pointer;color:#174ea6;font-size:13px}.late-entry-note{margin:8px 0;padding:9px 11px;border-left:4px solid #b54708;background:#fff7ed;color:#7c2d12;border-radius:6px}@media(max-width:600px){.employment-form{display:grid;grid-template-columns:1fr}.employment-form input[type="date"]{width:100%}.upload-form{display:grid}.upload-form button{width:100%}.audit-meta{display:block}.audit-meta span{display:block;margin-top:4px}}
