.loading-panel,.empty-state{padding:34px 20px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:12px;color:#7b8798;font-size:12px}
.privacy-shell{min-height:100svh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#07142f,#102b4f)}
.privacy-screen{width:min(100%,760px);max-height:calc(100svh - 44px);overflow:auto;padding:30px;background:#fff;border:1px solid #e3e8ef;border-radius:18px;box-shadow:0 24px 70px #020b1d66}
.privacy-screen h1{margin:8px 0 14px;color:#122b4b;font-size:26px}
.privacy-screen .eyebrow{color:#a16b25}
.privacy-screen .language-picker{justify-content:flex-end;margin:0 0 10px}
.privacy-draft{padding:12px 14px;border:1px solid #f1d39c;border-radius:10px;background:#fff8e9;color:#78541e;font-size:14px}
.privacy-draft p{margin:5px 0 0;font-size:14px}
.privacy-notice-text{max-height:min(48vh,430px);overflow:auto;white-space:pre-wrap;padding:16px;border:1px solid #e2e7ee;border-radius:10px;background:#f8fafc;color:#394b62;font-size:14px;line-height:1.65}
.privacy-check{display:flex;align-items:flex-start;gap:11px;margin:18px 0 12px;color:#263b57;font-size:14px;line-height:1.5;cursor:pointer}
.privacy-check input{width:19px;height:19px;flex:0 0 19px;margin:1px 0 0;accent-color:#d99530}
.privacy-screen>.submit-button{width:100%;justify-content:center;margin-top:8px;font-size:14px}
.privacy-decline{display:block;margin:10px auto 0}
.privacy-error,.privacy-blocked{padding:12px;border-radius:9px;background:#fff1ef;color:#a33c34;font-size:14px;line-height:1.5}
.privacy-version{color:#68788e;font-size:14px}
@media(max-width:650px){.privacy-shell{padding:12px;align-items:start}.privacy-screen{max-height:calc(100svh - 24px);padding:20px 16px;border-radius:14px}.privacy-screen h1{font-size:22px}.privacy-notice-text{max-height:44vh;padding:13px;font-size:14px}}
.loading-panel{display:flex;justify-content:center;align-items:center;gap:12px;min-height:140px}
.data-panel{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:24px;box-shadow:0 6px 22px #14264808}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.section-heading h1{font-size:21px;color:var(--navy);margin:6px 0}
.section-heading p{font-size:11px;color:var(--muted);margin:7px 0}
.section-heading .eyebrow{color:#a16b25}
.data-panel label{display:block;margin:14px 0 6px;font-size:11px;font-weight:700;color:#374862}
.data-panel label span{font-weight:400;color:#8290a1}
.data-panel select,.data-panel input,.data-panel textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid #dfe5ec;border-radius:8px;background:#fff;color:#243650;font:inherit;font-size:12px}
.data-panel select[multiple]{height:auto}
.data-panel textarea{min-height:70px;resize:vertical}
.form-row{display:flex;align-items:end;gap:10px}
.form-row>*{flex:1}
.form-note{font-size:10px;color:#7c8999;line-height:1.5}
.secondary-button,.danger-button,.text-button{border:1px solid #dce3ec;border-radius:8px;background:#fff;color:#243b5b;padding:10px 13px;font-size:10px;font-weight:700}
.secondary-button:hover{border-color:#dba24d;background:#fffaf2}
.danger-button{color:#a43d35;border-color:#f0ceca}
.text-button{padding:7px 9px;color:#7e5a2b}
.punch-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.punch-actions .submit-button{justify-content:center;gap:9px;margin:0}
.punch-actions .secondary{background:#142d4b;border-color:#142d4b;color:#fff}
.submit-button:disabled{opacity:.45;cursor:not-allowed}
.form-message.success{color:#177746;background:#e8f8ef;padding:11px;border-radius:8px}
.data-list{display:grid;gap:8px}
.data-row{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid #edf0f4;border-radius:9px}
.data-row>div{min-width:0;flex:1}
.data-row b,.data-row small{display:block}
.data-row b{font-size:11px;color:#263752}
.data-row small{font-size:9px;color:#8792a2;line-height:1.6;margin-top:4px}
.worker-shift-list{display:grid;gap:8px;margin:12px 0}
.worker-shift-row{display:grid;grid-template-columns:minmax(150px,1fr) repeat(2,minmax(120px,180px));align-items:center;gap:10px;padding:10px;border:1px solid #e8edf3;border-radius:9px;background:#fff}
.worker-shift-row label{display:grid;gap:4px;color:#586981;font-size:12px;font-weight:700}
.worker-shift-row input{width:100%;min-height:38px;padding:6px;border:1px solid #dfe5ec;border-radius:7px}
.report-period{display:flex;align-items:end;gap:10px;margin:14px 0}
.report-period label{display:grid;gap:5px;color:#41536b;font-size:13px;font-weight:700}
.report-period input{min-height:40px;padding:8px;border:1px solid #dfe5ec;border-radius:8px;font:inherit}
.report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:14px 0}
.report-actions .form-note{flex:1 1 100%;margin:0}
.report-table-wrap{overflow:auto;border:1px solid #e8edf3;border-radius:10px}
.report-table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}
.report-table th,.report-table td{padding:11px 10px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:top;white-space:nowrap}
.report-table th{background:#f5f7fa;color:#465970;font-size:12px}
.report-table td small{display:block;white-space:normal}
.report-panel>.form-note{margin-top:14px}
.report-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:650px){.worker-shift-row{grid-template-columns:1fr 1fr}.worker-shift-row>b{grid-column:1/-1}.report-period{align-items:stretch;flex-direction:column}.report-period>*{width:100%}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body{background:#fff!important}.portal-sidebar,.portal-header,.report-period,.report-actions,.toast,.report-panel>.form-note{display:none!important}.portal-layout,.portal-main,.portal-content{display:block!important;width:100%!important;margin:0!important;padding:0!important}.report-panel{border:0!important;box-shadow:none!important;padding:0!important}.report-table-wrap{overflow:visible!important}.report-table th,.report-table td{white-space:normal!important;padding:6px!important;font-size:10pt}.report-metrics{grid-template-columns:repeat(3,1fr)!important}.status-pill{border:1px solid #bbb!important;background:#fff!important;color:#111!important}}
.data-panel h2{font-size:14px;color:#1b2d49;margin:24px 0 12px}
.empty-state{margin:6px 0}
.empty-state .module-icon{margin:0 auto 12px}
.empty-state>b{display:block;color:#324761}
.empty-state p{font-size:10px;line-height:1.5;margin:6px 0 0}
.status-pill{padding:5px 8px;border-radius:14px;white-space:nowrap;font-size:8px;font-weight:800;background:#f0f3f7;color:#607084}
.status-pill.confirmed,.status-pill.active,.status-pill.completed,.status-pill.approved{background:#e7f7ed;color:#168247}
.status-pill.pending_review,.status-pill.pending,.status-pill.planned{background:#fff3df;color:#a76919}
.status-pill.rejected,.status-pill.cancelled{background:#fdecea;color:#a43d35}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}
.metric-card{padding:16px;background:#fff;border:1px solid var(--line);border-radius:10px}
.metric-card small,.metric-card b{display:block}
.metric-card small{font-size:9px;color:#7d899a}
.metric-card b{font-size:24px;color:#142a49;margin-top:6px}
.create-panel{margin:12px 0 22px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}
.create-panel summary{cursor:pointer;font-size:11px;font-weight:800;color:#193252}
.service-form{padding-top:7px}
.service-form .submit-button{max-width:360px}
.review-row{flex-wrap:wrap}
.review-row>div{min-width:220px}
.data-note{line-height:1.5}
@media(max-width:650px){.data-panel{padding:16px 12px}.section-heading h1{font-size:18px}.form-row{display:grid;grid-template-columns:1fr}.punch-actions{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{padding:12px}.metric-card b{font-size:20px}.data-row{align-items:flex-start;flex-wrap:wrap}.data-row>div{flex:1 1 70%}.review-row .secondary-button,.review-row .danger-button{flex:1}.status-pill{margin-left:auto}}
.setup-shell{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;background:linear-gradient(145deg,#07142f,#102b4f)}.setup-shell .mobile-brand{display:flex;margin:0 0 18px;color:#fff}.setup-card{width:min(100%,520px);margin:0;padding:30px}.setup-card h1{font-size:23px;color:var(--navy);margin:7px 0}.setup-card>p{font-size:11px;line-height:1.6;color:#778599}.setup-card .back-home{display:inline-flex;text-decoration:none}.invite-result{margin-top:14px;padding:13px;border-radius:8px;background:#e8f8ef;color:#195a39;overflow-wrap:anywhere;font-size:11px}.invite-result a{display:block;margin-top:7px;color:#173b66;font-weight:700}
.language-picker{display:inline-flex;align-items:center;gap:9px;color:#596a80;font-size:14px;font-weight:700;margin:0 0 12px}.language-picker select{min-width:142px;min-height:40px;padding:7px 32px 7px 11px;border:1px solid #d6dde7;border-radius:8px;background:#fff;color:#162a49;font:inherit;cursor:pointer}.portal-header .language-picker{margin:0 16px 0 auto;white-space:nowrap}.portal-header .language-picker select{min-width:128px}.login-side>.language-picker{width:min(100%,430px);justify-content:flex-end}#app :is(p,label,button,a,small,.side-link,.logout-button,.eyebrow,.secure-pill,.form-note,.data-note,.module-copy,.metric-card,.empty-state,.phase-note,.login-footer,.help-line,.user-menu,.role-option span,.data-row,.text-button){font-size:max(1em,14px)}#app p{line-height:1.55}#app input,#app select,#app textarea{font-size:15px;line-height:1.45}#app .eyebrow{font-size:max(1em,12px);letter-spacing:.08em}#app .secure-pill{letter-spacing:.02em;line-height:1.2}@media(max-width:650px){.portal-header .language-picker{gap:4px;margin-right:5px}.portal-header .language-picker span{display:none}.portal-header .language-picker select{min-width:96px;min-height:36px;padding:5px 7px;font-size:13px}.login-side>.language-picker{justify-content:center}.login-side>.language-picker select{min-height:42px}}
/* Compact language selector */
#app .portal-header .language-picker,#app .login-side>.language-picker{font-size:12px;gap:6px}
#app .language-picker select{min-width:104px;min-height:34px;padding:5px 24px 5px 9px;border-color:#e5eaf1;background:#fbfcfe;font-size:12px}
#app .portal-header .language-picker{margin-right:10px}
#app .portal-header .language-picker select{min-width:100px}
.setup-card .language-picker{font-size:12px;gap:6px}
.setup-card .language-picker select{min-width:104px;min-height:34px;padding:5px 24px 5px 9px;border-color:#e5eaf1;background:#fbfcfe;font-size:12px}
@media(max-width:650px){#app .portal-header .language-picker{gap:4px;margin-right:5px}#app .portal-header .language-picker select{min-width:88px;min-height:32px;padding:4px 18px 4px 7px;font-size:12px}.setup-card .language-picker select{min-height:36px}}
.admin-alert-button{position:relative;display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;margin:0 10px 0 auto;padding:0;border:1px solid #e6eaf0;border-radius:50%;background:#fff;color:#173154;cursor:pointer}
.admin-alert-button:hover{border-color:#e6a545;background:#fffaf2}
.admin-alert-button svg{width:19px;height:19px}
.alert-count,.nav-badge{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border:2px solid #fff;border-radius:12px;background:#d5443d;color:#fff;font-size:10px!important;font-weight:800;line-height:1}
.alert-count{position:absolute;top:-5px;right:-5px}
.nav-badge{margin-left:auto}
.portal-sidebar .side-link{position:relative}
.side-link .nav-badge[hidden],.alert-count[hidden]{display:none}
.push-alert-button{min-height:36px;margin:0 12px 0 0;padding:7px 11px;border:1px solid #e6a545;border-radius:8px;background:#fffaf2;color:#694819;font-weight:700;white-space:nowrap;cursor:pointer}
.push-alert-button:disabled{border-color:#e6eaf0;background:#f6f7f9;color:#8290a1;cursor:not-allowed}
@media(max-width:650px){.admin-alert-button{flex-basis:36px;width:36px;height:36px;margin-left:auto;margin-right:8px}.admin-alert-button svg{width:17px;height:17px}.portal-sidebar .side-link .nav-badge{display:grid;position:absolute;top:1px;right:1px;min-width:16px;height:16px;padding:0 3px;font-size:9px!important}.portal-sidebar .side-link .nav-badge[hidden]{display:none}}
@media(max-width:650px){.push-alert-button{width:37px;min-height:36px;margin-right:6px;padding:0;overflow:hidden;font-size:0!important}.push-alert-button:before{content:"🔔";font-size:14px}.push-alert-button:disabled:before{content:"!"}}
