.document-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 18px}.document-filters .field{margin:0}.document-filters .hint{grid-column:1/-1;margin:0}.document-check{display:flex;align-items:center;gap:8px;font-size:15px}.document-check input{width:20px;height:20px;flex-shrink:0}.document-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.document-card{display:flex;flex-direction:column;gap:12px;min-width:0;line-height:1.5}.document-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.document-heading h4{font-size:19px;line-height:1.35;margin:0;min-width:0;overflow-wrap:break-word;hyphens:auto}.document-heading .pill{flex-shrink:0;font-size:14px}.document-person{font-size:16px;font-weight:600;margin:0;overflow-wrap:break-word}.document-name{font-size:15px;margin:0;color:#41566d;overflow-wrap:break-word}.document-card>.pill{align-self:flex-start}.document-details{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:0;padding-top:12px;border-top:1px solid var(--line)}.document-details dt{font-size:13px;color:#41566d;margin-bottom:4px}.document-details dd{font-size:16px;font-weight:600;margin:0;overflow-wrap:break-word}.document-reason{margin:0;font-size:14px;color:#a01822}.document-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.document-actions .btn{flex:1 1 160px;min-height:44px;max-width:100%;font-size:15px;white-space:normal;overflow-wrap:break-word}.document-filters select{width:100%}@media(max-width:700px){.document-grid{grid-template-columns:1fr}.document-filters{grid-template-columns:1fr}.document-card{padding:18px}.document-actions .btn{flex-basis:100%}}
.document-owner{margin:0 0 12px;color:var(--muted);font-size:14px}.document-compact{max-width:760px}.document-compact .document-grid{display:grid;grid-template-columns:1fr;gap:10px}.document-row{display:block;padding:13px 15px;line-height:1.4}.document-row .document-heading{align-items:center;gap:8px}.document-row .document-heading h4{margin:0;font-size:17px;line-height:1.3}.document-row .document-heading .pill{font-size:12px;flex-shrink:0}.document-row-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:5px}.document-row-info>div:first-child{min-width:0}.document-row-date,.document-row-verification{margin:3px 0;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.document-row-action{flex-shrink:0}.document-row-action .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:86px;padding:9px 12px;text-decoration:none;white-space:nowrap}.document-row-extra{margin-top:5px;font-size:12px;color:#41566d}.document-row-extra summary{cursor:pointer;color:var(--blue);width:fit-content;min-height:24px;display:list-item;list-style-position:inside}.document-row-extra p{margin:6px 0;overflow-wrap:anywhere}.document-row-extra[open]{padding-top:7px;border-top:1px solid var(--line)}@media(max-width:360px){.document-row{padding:11px}.document-row-action .btn{min-width:78px;padding:9px}.document-row-info{gap:6px}.document-row .document-heading h4{font-size:16px}}

.document-number{font-size:13px;color:#516a81;margin:6px 0;overflow-wrap:anywhere}.document-scanner{border:1px solid #cbdde9;border-radius:12px;padding:14px;margin:12px 0}.document-scanner fieldset{border:0;padding:0;margin:0;min-width:0}.scan-source-actions,.scan-actions,.scan-page-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.document-scanner .btn{min-height:44px}.scan-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.scan-source-actions label{display:inline-flex;align-items:center;cursor:pointer}.scan-source-actions label:focus-within{outline:3px solid #2785e3}.scan-pages{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.scan-page{border:1px solid #d7e3ed;border-radius:10px;padding:10px;min-width:0}.scan-page img{display:block;width:100%;height:160px;object-fit:contain;background:#edf2f6}.scan-crop canvas{display:block;max-width:100%;height:auto}.scan-crop-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.scan-crop-fields label{font-size:13px}.scan-crop-fields input{width:100%}.scan-status{font-size:14px;overflow-wrap:anywhere}.scan-page-actions .btn{font-size:13px;padding:8px}.document-scanner h4{margin:0 0 8px}
.document-scanner [hidden]{display:none!important}
.scan-source-actions label{position:relative;overflow:hidden}
.scan-source-actions input.scan-picker{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;opacity:.001;cursor:pointer;clip-path:none;z-index:1}

.scan-pdf-sheet{margin:10px 0;background:#fff;border:1px solid #bccdd9;padding:2%;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.scan-pdf-sheet img{max-width:100%;max-height:100%;object-fit:contain}.scan-pdf-preview{margin-top:14px}

.scan-review{margin:12px 0;border:2px solid #1687ef;border-radius:12px;padding:12px}.scan-review-pictures{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scan-review-pictures figure{margin:0;min-width:0}.scan-review-pictures img{width:100%;max-height:260px;object-fit:contain;background:#edf2f6}.scan-review-pictures figcaption{font-size:12px;font-weight:700;margin-bottom:6px}.scan-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.scan-confirm{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14px;padding:10px 0}.scan-confirm input{width:24px;height:24px;flex:0 0 24px}.scan-check-ok{color:#127244;font-size:14px}.scan-review h4{margin:0}

[data-scan-corners]{display:block;width:100%;height:auto;touch-action:none;background:#edf4fa;border-radius:8px}.scan-corner-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scan-corner-fields fieldset{display:flex;gap:6px;min-width:0}.scan-corner-fields input{width:100%;min-width:0}.scan-corner-fields label{min-width:0}

body{font-size:16px}a.btn{display:inline-block;text-decoration:none;text-align:center}.field label{font-size:14px}.field label input:not([type=checkbox]),.field label select,.field label textarea{display:block;width:100%;margin-top:7px}input,select,textarea{min-width:0;max-width:100%}select{padding:10px;border-radius:10px;border:1px solid var(--line);background:white}button,a{touch-action:manipulation}.full{display:block;width:100%;margin-top:12px}.top-title{display:flex;gap:10px;align-items:center;min-width:0}.topbar h2{font-size:21px;overflow-wrap:anywhere}.top-logo{height:48px;max-width:155px;object-fit:contain}.section-title{flex-wrap:wrap}.form-error{color:#b50e21;white-space:pre-wrap}.credential-result{padding:15px;background:#eaf4ff;overflow-wrap:anywhere}.report-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.settings-card{margin-top:20px}.password-box{min-height:100vh}.sidebar .nav{max-height:calc(100vh - 240px);overflow:auto}.side-user{font-size:14px}.side-user .btn{margin-top:10px}.table th{font-size:14px}.table td{white-space:normal;max-width:320px;overflow-wrap:anywhere}.table-wrap{max-width:100%}.project .grow{min-width:0}.project b,.project small{overflow-wrap:anywhere}.hint{font-size:14px;line-height:1.5}.modal{max-height:90dvh}.sidebar{height:100dvh}.toolbar label{display:flex;align-items:center;gap:8px}.toolbar input[type=checkbox]{width:20px;height:20px}.pill{font-size:13px}.metric span{font-size:14px}.content>*+*{margin-top:16px}.mobile-nav button{font-size:13px}.topbar .hamb{flex-shrink:0}@media(max-width:700px){.report-filters{grid-template-columns:1fr 1fr}.project{flex-wrap:wrap}.project .toolbar{width:100%}.top-logo{max-width:105px;height:38px}.topbar h2{font-size:18px}.topbar{gap:10px}.modal-back{padding:12px}.modal{padding:16px}.cards{gap:10px}.metric b{font-size:24px}.login-card{max-width:460px}.sidebar .nav{max-height:calc(100dvh - 240px)}}@media(max-width:380px){.report-filters{grid-template-columns:1fr}.top-logo{max-width:80px}.cards{grid-template-columns:1fr}.mobile-nav button{font-size:12px}}
.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;object-fit:cover;object-position:center;border-radius:50%;flex-shrink:0;border:2px solid #dfe8f1;background:#eaf3fb;color:#075ca8;font-size:28px;font-weight:800;vertical-align:middle}.profile-avatar.small{width:44px;height:44px;font-size:16px}.person-summary,.profile-summary{display:flex;align-items:center;gap:12px;min-width:0}.profile-summary{margin-bottom:18px;padding:14px;background:#f3f7fb;border-radius:12px}.profile-summary>div{min-width:0;overflow-wrap:anywhere}.profile-summary p{margin:6px 0}.profile-summary small{color:#6c7d90}.side-user>.profile-avatar{float:left;margin-right:10px}.side-user>.btn{clear:both}.avatar-initials{user-select:none}@media(max-width:380px){.profile-summary{padding:10px}.profile-avatar{width:72px;height:72px}}


.report-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:16px}.report-filters .field{margin:0;min-width:0}.report-filters input,.report-filters select{min-width:0;width:100%;max-width:100%;font-size:16px}.report-filters input[type=date]{appearance:none;-webkit-appearance:none;display:block;min-inline-size:0;inline-size:100%;box-sizing:border-box;min-height:48px}.report-filters input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.4em}.report-filters input[type=date]::-webkit-datetime-edit{padding:0}.report-total{display:flex;flex-wrap:wrap;gap:20px 36px;margin-bottom:16px}.report-total>div{display:flex;flex-direction:column;gap:5px}.report-total span{font-size:14px;color:#41566d}.report-total b{font-size:25px;color:var(--blue)}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.report-card{display:flex;flex-direction:column;gap:14px;min-width:0;line-height:1.5}.report-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.report-heading h4{font-size:19px;margin:0}.report-heading .pill{font-size:14px;white-space:nowrap}.report-person{font-size:16px;font-weight:600;margin:0;overflow-wrap:break-word}.report-project{min-width:0;overflow-wrap:break-word}.report-project>b{font-size:18px}.report-project p{font-size:15px;margin:4px 0 0;color:#41566d}.report-card>.pill{align-self:flex-start}.report-hours{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:0;padding-top:12px;border-top:1px solid var(--line)}.report-hours dt{font-size:14px;color:#41566d}.report-hours dd{font-size:22px;font-weight:700;margin:4px 0 0}.report-item-count{font-size:14px;color:#41566d;margin:0}.report-card>.btn{width:100%;min-height:48px;margin-top:auto;font-size:16px;white-space:normal;overflow-wrap:break-word}.report-work-list{display:grid;gap:12px}.report-work{padding:14px;border:1px solid var(--line);border-radius:12px;min-width:0}.report-work header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.report-work h4{margin:0;font-size:16px;overflow-wrap:break-word}.report-work header>b{white-space:nowrap;color:var(--blue)}.report-work dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 0}.report-work dt{font-size:13px;color:#41566d}.report-work dd{font-size:15px;margin:4px 0 0;overflow-wrap:break-word}@media(max-width:700px){.report-filters,.report-grid{grid-template-columns:1fr}.report-card{padding:18px}}@media(max-width:380px){.report-work dl{grid-template-columns:1fr}}

/* Compact report filters keep the date range and status on one row. */
.profile-work-fields{min-width:0;margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:12px}.profile-work-fields legend{padding:0 6px;font-size:17px;font-weight:700}.profile-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.profile-checks label{display:flex;align-items:flex-start;gap:10px;padding:10px;background:var(--bg,#f5f7fa);border-radius:8px;min-width:0;cursor:pointer}.profile-checks input[type=checkbox]{width:20px;min-width:20px;height:20px;margin:0;flex:none}.profile-checks span{line-height:1.45;overflow-wrap:anywhere}.license-checks{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-work-summary ul{padding-left:22px;line-height:1.8}.profile-work-notes{white-space:pre-wrap;overflow-wrap:anywhere}.profile-license-categories[hidden]{display:none}@media(max-width:560px){.profile-checks{grid-template-columns:1fr}.license-checks{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-work-fields{padding:12px}}
.report-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 12px}
.report-filters .field:has(#report-person){grid-column:1/-1}
.report-filters .field label{font-size:12px;line-height:1.25}
.report-filters .field input,.report-filters .field select{height:44px;min-height:44px;margin-top:4px;padding:8px 6px;border-radius:8px;font-size:16px;font-weight:400;line-height:1.25}
.report-filters .field input[type=date]{min-height:44px}
.report-filters input[type=date]::-webkit-calendar-picker-indicator{margin:0;padding:0;width:12px}
@media(min-width:701px){.report-filters:has(#report-person){grid-template-columns:repeat(4,minmax(0,1fr))}.report-filters .field:has(#report-person){grid-column:auto}}


/* Compact personal document list, approved variant B. */

.approved-hour-list{margin:0 0 14px}.approved-hour-list h4{margin:0 0 8px}.approved-hour-list>p:not(.hint){display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;margin:9px 0}.approved-hour-list span{color:var(--blue);font-weight:700}

.weekly-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.weekly-controls label{flex:1;min-width:160px;display:grid;gap:5px}.weekly-controls select,.weekly-controls input{width:100%;min-height:44px}.weekly-people p{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #dbe7f0}.weekly-generator h3{margin-top:0}#weekly-result{margin-top:16px}#weekly-result>[data-weekly-report]{display:block;margin:6px 0}

.timesheet-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,1fr) auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid #dae4ee}.timesheet-row small{display:block;color:#637c94;margin:5px 0}.timesheet-actions{display:flex;gap:8px;flex-wrap:wrap}.payroll-table{width:100%;border-collapse:collapse}.payroll-table th,.payroll-table td{padding:12px 8px;border-bottom:1px solid #dae4ee;text-align:left}.payroll-scroll{overflow:auto}.payroll-table th{background:#edf4fa}.payroll-notice{padding:12px;background:#edf4fa;border-radius:12px}.check-line{display:flex;gap:10px;align-items:flex-start;margin:14px 0}.check-line input{width:auto;margin-top:3px}@media(max-width:600px){.timesheet-row{grid-template-columns:1fr}.payroll-table{font-size:14px}.timesheet-actions>.btn{flex:1}}

.report-workflow-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.report-workflow-tabs .btn{flex:1;white-space:normal;min-width:130px;text-align:center;font-size:15px;padding:13px 16px}

/* One report per line; narrow screens scroll the list instead of tall cards. */
.report-list-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff;overscroll-behavior-x:contain}
.report-list-scroll:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.report-list-row{display:grid;grid-template-columns:minmax(140px,1fr) 80px 120px 155px 120px 76px;align-items:center;gap:10px;min-width:765px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.35;white-space:nowrap}
.report-list-row:last-child{border-bottom:0}
.report-row-person{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:15px;text-align:left}
.report-row-project{overflow:hidden;text-overflow:ellipsis;font-weight:600}
.report-list-row>.pill{justify-self:start;padding:5px 8px;font-size:12px}
.report-row-hours>span,.report-row-example{font-size:12px;color:#526a80}
.report-list-row>.btn{position:sticky;right:0;min-height:34px;width:auto;margin:0;padding:7px 9px;font-size:13px;box-shadow:-6px 0 8px #fff;background:#edf5fc;white-space:nowrap}

.payroll-own-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.payroll-own-summary dt{font-size:14px;color:#647b90;margin-bottom:6px}.payroll-own-summary dd{margin:0;font-size:21px;font-weight:700;overflow-wrap:anywhere}.payroll-own-summary small{display:block;color:#647b90}.payroll-table td small{display:block;color:#647b90}@media(max-width:600px){.payroll-own-summary dl{grid-template-columns:1fr}.payroll-own-summary dd{font-size:20px}}

.report-row-select{width:36px;display:flex;align-items:center;justify-content:center}.report-row-select input,.report-select-visible input{width:20px;height:20px;margin:0;accent-color:#0867b8;cursor:pointer}.report-row-select{min-height:44px}.report-selection-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.report-select-visible{display:flex;gap:8px;align-items:center;min-height:44px;cursor:pointer}.report-list-row.report-selected{background:#e9f5ff}.report-row-select:has(input:focus-visible){outline:2px solid #0867b8;outline-offset:2px}.report-person-list .report-list-row{grid-template-columns:36px minmax(150px,1.6fr) 100px 120px 170px minmax(70px,.7fr) 80px}

/* Personal earnings: native disclosures keep private values out of the visible and accessibility view until opened. */
.payroll-earned{margin:12px 0 18px}.payroll-earned>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;list-style:none;font-weight:700}.payroll-earned>summary::-webkit-details-marker{display:none}.payroll-privacy-eye{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid currentColor;border-radius:10px;flex:0 0 auto}.payroll-earned>strong{display:block;font-size:28px;overflow-wrap:anywhere}.payroll-earned:not([open])::after{content:'••••';display:block;font-size:28px;letter-spacing:4px}.payroll-private-details>summary{cursor:pointer;min-height:44px;padding:12px 0;box-sizing:border-box;font-weight:600}.payroll-private-details>.payroll-scroll{margin-top:16px}.payroll-private-details .payroll-when-open{display:none}.payroll-private-details[open]>summary .payroll-when-closed{display:none}.payroll-private-details[open]>summary .payroll-when-open{display:inline}.payroll-earned>summary:focus-visible,.payroll-private-details>summary:focus-visible{outline:3px solid currentColor;outline-offset:3px;border-radius:6px}

/* The amount is in the persistent summary; only hours/rates are disclosed by the eye. */
.payroll-income-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;padding:0;cursor:pointer;margin:12px 0 18px}.payroll-income-disclosure>summary::-webkit-details-marker{display:none}.payroll-earned-label{display:block;font-weight:700}.payroll-earned-label>strong{display:block;margin-top:12px;font-size:28px;overflow-wrap:anywhere}.payroll-income-disclosure .payroll-privacy-eye{flex:0 0 44px}
