.supplier-public{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}.service-header,.service-shell,.service-footer{max-width:1180px;margin:auto;padding:24px 32px}.service-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.service-brand{display:flex;gap:16px;align-items:center;color:var(--text);text-decoration:none}.service-brand img{width:64px;height:64px;object-fit:contain}.service-brand strong{display:block;font-size:24px;letter-spacing:1px}.service-brand small{display:block;margin-top:5px;color:var(--text-muted);letter-spacing:2px;font-size:10px}.service-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:35px;align-items:center;padding:20px 0 30px}.service-intro h1{font-size:clamp(30px,3.4vw,44px);line-height:1.15;margin:10px 0 18px;letter-spacing:-1px}.service-intro p,.service-panel>p,.service-section-title p{color:var(--text-muted);line-height:1.6}.service-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.service-pills span{padding:6px 12px;border:1px solid var(--border);border-radius:20px;font-size:11px;color:var(--text-muted)}.service-weather .dashboard-widgets{display:grid;grid-template-columns:1fr .85fr;gap:12px}.service-weather .resource-card{display:none}.service-weather .live-card{min-height:142px;border-radius:20px}.service-weather .clock-card time{font-size:27px}.service-panel{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:28px;box-shadow:0 12px 35px #0000000a;margin-top:20px}.service-panel h2{font-size:25px;margin:10px 0 14px}.supplier-public .eyebrow,.service-admin .eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;color:var(--accent)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.service-grid label,.service-dialog label,.service-filter label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600}.service-grid .full{grid-column:1/-1}.service-grid input,.service-grid textarea,.service-dialog textarea,.service-filter input,.service-filter select,.timesheet-select select{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg,var(--bg));color:var(--text);font:inherit}.service-grid small{font-size:11px;color:var(--text-muted);font-weight:400;line-height:1.5}.service-grid textarea{min-height:70px}.service-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}.service-actions .btn,.service-panel .btn,.service-admin .btn{font-family:inherit;font-size:13px;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;min-height:42px;box-sizing:border-box;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.service-actions .btn.primary,.service-panel .btn.primary,.service-admin .btn.primary{background:var(--accent);color:white;border-color:var(--accent)}.service-actions .btn:disabled{opacity:.5;cursor:wait}.service-steps{display:flex;list-style:none;gap:16px;padding:0;margin:12px 0}.service-steps li{flex:1;padding:16px;border-bottom:2px solid var(--border);color:var(--text-muted);font-size:13px}.service-steps li.active{border-color:var(--accent);color:var(--accent);font-weight:700}.service-steps span{margin-left:8px}.service-note,.test-banner{padding:14px 18px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-radius:10px;font-size:12px;line-height:1.6}.test-banner{border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border))}.service-panel hr{border:0;border-top:1px solid var(--border);margin:28px 0}.service-section-title{display:flex;justify-content:space-between;align-items:center;gap:16px}.service-section-title h3{margin-bottom:4px}.service-section-title p{margin:6px 0;font-size:12px}.timesheet-select{display:flex;gap:10px;align-items:center;margin:10px 0}.timesheet-select select{flex:1;min-width:0}.timesheet-select button{flex:none}.upload-box{padding:20px;background:var(--bg);border:1px dashed var(--border);border-radius:14px}.service-success{text-align:center;padding:45px}.success-mark{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;width:60px;height:60px;background:#20b67b20;color:#20b67b;font-size:34px}.service-success strong{display:block;font-size:24px;letter-spacing:2px;margin:20px}.service-footer{display:flex;justify-content:space-between;gap:20px;color:var(--text-muted);font-size:11px}.service-footer span{max-width:380px}.service-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px}.service-summary div{padding:15px;background:var(--bg);border-radius:10px;overflow-wrap:anywhere}.service-summary dt{font-size:11px;color:var(--text-muted);margin-bottom:6px}.service-summary dd{margin:0;font-weight:600}.service-dialog{max-width:1150px;width:calc(100% - 70px);max-height:90vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:24px;box-sizing:border-box}.service-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.service-filter{display:flex;align-items:end;gap:16px;margin:20px 0}.service-filter input{min-width:240px}.service-admin table{width:100%;border-collapse:collapse}.service-admin td,.service-admin th{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}.service-admin th{font-size:12px;color:var(--text-muted)}.service-badge{display:inline-block;padding:5px 9px;border-radius:7px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:11px;font-weight:700}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.review-documents a{display:inline-block;margin:5px 10px 8px 0}.review-documents iframe{width:100%;height:510px;border:1px solid var(--border);border-radius:10px;background:white}.review-sheet{display:flex!important;flex-direction:row!important;align-items:center;margin:10px 0;padding:10px;background:var(--bg);border-radius:8px}.review-sheet input{width:auto!important}.review-change{width:100%;border-collapse:collapse}.review-change th,.review-change td{padding:12px;border:1px solid var(--border);text-align:left;overflow-wrap:anywhere}.review-change td{max-width:250px}.review-change small{display:block;color:var(--text-muted);margin-top:5px}.notification-wrap{position:relative}.notification-badge{position:absolute;right:-3px;top:-4px;min-width:18px;height:18px;padding:0 4px;box-sizing:border-box;border-radius:12px;background:#ec526a;color:white;font:700 10px/18px sans-serif;text-align:center}.notification-menu{position:absolute;right:0;top:52px;width:320px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #0004;z-index:1000}.notification-menu a{display:block;padding:12px;color:var(--text);font-size:13px;text-decoration:none;border-radius:8px}.notification-menu a:hover{background:var(--bg)}.notification-menu p{padding:10px;font-size:12px;color:var(--text-muted)}.user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.photo-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.photo-controls img{width:52px;height:52px;border-radius:50%;object-fit:cover}.supplier-public [hidden],.service-admin [hidden],.service-dialog [hidden],.notification-wrap [hidden]{display:none!important}#serviceStatus,#reviewStatus,#decisionStatus{line-height:1.6;color:var(--accent);font-size:13px}.service-admin #decisionControls textarea{min-height:75px;margin-top:10px}
@media(max-width:760px){.service-header,.service-shell,.service-footer{padding:20px}.service-intro,.service-grid,.review-grid,.service-summary{grid-template-columns:1fr}.service-panel{padding:20px}.service-brand strong{font-size:18px}.service-brand img{width:48px;height:48px}.service-weather .live-card{min-height:130px}.service-steps{gap:4px}.service-steps li{font-size:11px;padding:12px 4px}.service-section-title,.service-footer{align-items:flex-start;flex-direction:column}.service-dialog{width:calc(100% - 24px);padding:18px}.service-filter{flex-wrap:wrap}.notification-menu{position:fixed;right:16px;top:80px;width:min(320px,calc(100vw - 32px))}}

.service-logo{display:block;width:64px;height:64px;overflow:hidden;flex:none}.service-logo img{transform:scale(2);width:64px;height:64px}.supplier-public .service-actions .btn.primary{background:var(--btn);border-color:var(--btn)}.supplier-public .service-header .theme-toggle{font-family:var(--font-body)}

.service-brand .service-name{display:block;width:280px;height:auto;max-width:100%;transform:none}.service-logo{background:#ffffffec;border-radius:12px}:root[data-theme="light"] .service-brand .service-name{filter:brightness(.12)}@media(max-width:760px){.service-brand .service-name{width:210px}.service-logo{width:52px;height:52px}.service-logo img{width:52px;height:52px}}

.service-name-frame{display:block;overflow:hidden;width:280px;height:60px}.service-brand .service-name{width:280px;height:280px;max-width:none;margin-top:-88px}.service-brand small{margin-top:0}@media(max-width:760px){.service-name-frame{width:210px;height:46px}.service-brand .service-name{width:210px;height:210px;margin-top:-66px}}
/* 4.4.1: quieter supplier landing page and correctly sized image slots. */
.supplier-public .service-header{padding-top:18px;padding-bottom:18px}.supplier-public .service-logo{background:transparent;border:0;border-radius:0;box-shadow:none;width:64px;height:64px}.supplier-public .service-logo img{width:64px;height:64px;transform:scale(2)}.supplier-public .service-name-frame{width:280px;height:52px;display:flex;align-items:center;overflow:visible}.supplier-public .service-brand .service-name{width:100%;height:100%;max-width:100%;margin:0;object-fit:contain;object-position:left center;transform:none;filter:none}.service-brand-label{font-size:20px;font-weight:650;letter-spacing:.2px;color:var(--text)}.supplier-public .service-intro{padding:26px 0 32px;gap:32px}.supplier-public .service-intro h1{font-size:clamp(24px,2.4vw,32px);font-weight:600;line-height:1.25;letter-spacing:-.5px;margin:14px 0}.supplier-public .service-intro>div>p:not(.eyebrow){max-width:440px;font-size:14px;line-height:1.7}.service-checklist{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:22px}.service-checklist>span{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.service-checklist svg{width:20px;height:20px;stroke:var(--accent);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.supplier-public .service-steps{margin-bottom:26px}.supplier-public #identifyPanel{border-top:2px solid color-mix(in srgb,var(--accent) 50%,var(--border));padding:26px 28px}.supplier-public #identifyPanel h2{font-size:24px;font-weight:600;margin:8px 0}.supplier-public #identifyPanel .service-grid{margin-top:24px}.supplier-public .service-step-number{font-size:40px;font-weight:700;color:color-mix(in srgb,var(--accent) 26%,var(--surface));line-height:1}.service-help{font-size:12px;color:var(--text-muted);margin-right:auto}.supplier-public #identifyPanel .service-actions{margin-top:4px}.portal-topbar .user-avatar:has(img){width:46px;height:46px;flex:0 0 46px;overflow:hidden}.portal-topbar .user-avatar img{width:100%;height:100%;object-fit:cover}.supplier-public .service-panel [hidden]{display:none!important}@media(max-width:760px){.supplier-public .service-name-frame{width:210px;height:44px}.service-brand-label{font-size:16px}.supplier-public .service-intro{gap:22px;padding-top:20px}.supplier-public #identifyPanel{padding:22px}.service-help{width:100%;margin-bottom:8px}.service-checklist{gap:12px}.service-checklist>span{font-size:11px}}
/* Supplier timesheet amounts and on-demand attachment previews. */
.supplier-public .timesheet-select{display:grid;grid-template-columns:minmax(0,1fr) 210px auto;gap:14px;align-items:end;padding:15px;background:var(--bg);border:1px solid var(--border);border-radius:12px}.supplier-public .timesheet-choice{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600;min-width:0}.supplier-public .timesheet-choice select{min-height:44px;width:100%}.supplier-public .timesheet-amount{display:flex;flex-direction:column;gap:8px}.supplier-public .timesheet-amount small{font-size:11px;color:var(--text-muted)}.supplier-public .timesheet-amount output{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:9px;border:1px solid var(--border);background:var(--surface);font-size:15px;font-weight:650;box-sizing:border-box}.supplier-public #addTimesheet:disabled{opacity:.45;cursor:not-allowed}.supplier-public #noTimesheets{font-size:13px;color:var(--text-muted);line-height:1.7}.selected-attachment{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;margin:12px 0;background:var(--bg)}.selected-attachment strong{font-size:13px;overflow-wrap:anywhere}.selected-attachment small{display:block;font-size:11px;color:var(--text-muted);margin-top:5px}.review-attachments{margin-top:24px}.invoice-review-image{display:block;width:100%;max-width:700px;margin:20px auto 0;border:1px solid var(--border);background:white;border-radius:8px}.local-pdf-dialog{max-width:960px}.local-pdf-dialog img{display:block;width:100%;height:auto;background:white}.local-pdf-dialog .pdf-page-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin:15px 0}.local-pdf-dialog .btn{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);padding:9px 14px;border-radius:8px;cursor:pointer}.local-pdf-dialog .btn:disabled{opacity:.4;cursor:default}.local-pdf-dialog h2{font-size:19px;overflow-wrap:anywhere}.local-pdf-dialog #previewPdfStatus{color:var(--accent);font-size:13px}@media(max-width:760px){.supplier-public .timesheet-select{grid-template-columns:minmax(0,1fr) 100px}.supplier-public .timesheet-choice{grid-column:1/-1}.supplier-public .timesheet-amount{grid-column:1}.selected-attachment{align-items:flex-start;flex-direction:column}}

.review-invoice-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-invoice-fields label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;min-width:0}.review-invoice-fields input{width:100%;box-sizing:border-box;min-height:42px}.review-help{font-size:12px;color:var(--text-muted);line-height:1.6}.review-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;background:color-mix(in srgb,var(--success) 12%,var(--surface));border:1px solid var(--success);border-radius:12px;margin:16px 0}.review-comparison small{display:block;color:var(--text-muted);font-size:11px;margin-bottom:8px}.review-comparison strong{font-size:16px;overflow-wrap:anywhere}.review-comparison p{grid-column:1/-1;margin:0;font-size:12px}.review-comparison.has-variance{background:color-mix(in srgb,var(--warning) 14%,var(--surface));border-color:var(--warning)}.review-comparison.has-variance strong{color:var(--warning)}.review-original-file{padding:10px 0;border-bottom:1px solid var(--border)}.review-original-file small{display:block;color:var(--text-muted);margin-bottom:8px}.review-documents .btn{overflow-wrap:anywhere;white-space:normal}.review-originals h4{font-size:12px;overflow-wrap:anywhere;margin:22px 0 10px}.review-grid>div{min-width:0}.review-sheet[hidden]{display:none!important}@media(max-width:700px){.review-invoice-fields{grid-template-columns:1fr}.review-comparison{grid-template-columns:1fr}.review-comparison p{grid-column:1}}

.supplier-public .service-steps[hidden],.supplier-public section[hidden]{display:none!important}.supplier-hub-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.supplier-hub-tile{padding:24px 20px;border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 13%,var(--surface)),var(--surface));box-shadow:inset 0 1px #fff3,0 8px 24px #0001;min-width:0}.supplier-hub-tile:nth-child(2){border-top-color:#37bd9f}.supplier-hub-tile:nth-child(3){border-top-color:#e3ae4c}.supplier-hub-tile:nth-child(4){border-top-color:#a98cf1}.supplier-hub-tile small{display:block;color:var(--text-muted);margin-bottom:16px;font-size:12px}.supplier-hub-tile strong{font-size:22px;overflow-wrap:anywhere}.supplier-hub-actions{display:flex;flex-wrap:wrap;gap:12px}.supplier-invoice-table{overflow:auto;max-width:100%}.supplier-invoice-table table{border-collapse:collapse;width:100%;min-width:1100px;font-size:12px}.supplier-invoice-table td,.supplier-invoice-table th{padding:16px 12px;border-bottom:1px solid var(--border);text-align:left}.supplier-invoice-table th{color:var(--text-muted);background:var(--bg)}.supplier-invoice-table tr:hover{background:var(--bg)}.supplier-public .service-help{line-height:1.7}.supplier-activity-card{padding:20px;border:1px solid var(--border);border-radius:12px;margin:16px 0;background:var(--surface)}.supplier-activity-card p{white-space:pre-wrap;overflow-wrap:anywhere}.supplier-activity-card small{color:var(--text-muted)}@media(max-width:760px){.supplier-hub-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.supplier-hub-tile{padding:18px 14px}.supplier-hub-tile strong{font-size:18px}}

.supplier-public .btn{display:inline-flex;justify-content:center;align-items:center;min-height:42px;padding:10px 18px;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:600 12px var(--font-body);text-decoration:none;cursor:pointer;transition:background .15s,box-shadow .15s}.supplier-public .btn:hover{box-shadow:0 4px 14px #0002;background:var(--surface-raised)}.supplier-public .btn.primary{background:var(--btn);color:var(--button-text);border-color:var(--btn);box-shadow:0 4px 14px color-mix(in srgb,var(--btn) 20%,transparent)}.supplier-public .btn:disabled{opacity:.5;cursor:wait}.supplier-invoice-table td:nth-child(3),.supplier-invoice-table td:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.supplier-status{display:inline-block;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}.supplier-status.recorded,.supplier-status.paid{background:#2bae901b;color:#219779}.supplier-status.pending,.supplier-status.due{background:#d7a23520;color:#a07822}.supplier-status.overdue,.supplier-status.rejected{background:#e2637f20;color:#c94664}
