:root{--primary:#0078d4;--primary-hover:#106ebe;--text:#323130;--muted:#605e5c;--surface:#fff;--alt:#f3f2f1;--border:#edebe9;--selection:#deecf9;--success:#107c10;--warning:#ffb900;--error:#d13438;font-family:"Segoe UI",-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text);font-size:14px}
*{box-sizing:border-box}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}body{margin:0;background:#f7f7f7;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;color:#a19f9d}.env-banner{height:26px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border-bottom:1px solid #e1dfdd}.env-banner.sandbox{background:#fff4ce}.env-banner.production{position:sticky;top:0;z-index:100;background:#fde7e9;color:#a4262c}.login-shell{min-height:calc(100vh - 26px);display:grid;place-items:center;background:#f3f2f1;padding:28px}.login-card{width:min(440px,100%);background:#fff;border:1px solid #e1dfdd;padding:40px 44px}.product-mark{display:flex;align-items:center;gap:10px;font-weight:600;color:#243a5e}.product-mark i{width:36px;height:2px;background:var(--primary);position:relative}.product-mark i:after{content:"";position:absolute;right:-1px;top:-3px;border:4px solid transparent;border-left-color:var(--primary)}.login-card h1{font-size:24px;font-weight:600;margin:28px 0 8px}.login-card p{color:var(--muted);line-height:1.5}.login-card label{display:block;font-weight:600;margin:18px 0 6px}.login-card input{width:100%;height:36px;border:1px solid #8a8886;padding:0 10px}.login-card input:focus,.search-box input:focus,select:focus{outline:2px solid var(--primary);outline-offset:-1px}.primary{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.primary:hover{background:var(--primary-hover)!important}.full{width:100%;height:36px;margin-top:24px}.field-error{min-height:20px;color:var(--error)!important;margin:10px 0 0!important}.app-shell{padding:0 20px 24px;max-width:1800px;margin:auto}.page-header{height:78px;display:flex;align-items:center;justify-content:space-between}.page-header h1{margin:0;font-size:24px;font-weight:600}.page-header p{margin:4px 0;color:var(--muted)}.user-menu{display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center}.user-menu small{color:var(--muted);text-transform:capitalize}.user-menu .quiet{grid-column:1/3;justify-self:end}.quiet{border:0;background:transparent;color:var(--primary);padding:2px}.action-pane{height:48px;background:#fff;border:1px solid var(--border);display:flex;align-items:center;padding:0 8px;overflow:auto}.action-pane button{height:34px;border:0;background:#fff;padding:0 11px;color:var(--primary);font-weight:600;white-space:nowrap}.action-pane button:hover:not(:disabled){background:var(--alt)}.action-pane button:before{content:"";display:inline-block;width:14px;height:14px;margin-right:7px;vertical-align:-2px;background:currentColor;mask:center/contain no-repeat var(--icon);-webkit-mask:center/contain no-repeat var(--icon)}.action-pane [data-icon=sync]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13 3v4H9l1.6-1.6A4 4 0 104 11l-1 1A5.5 5.5 0 1112 4.1z'/%3E%3C/svg%3E")}.action-pane [data-icon=add]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7 1h2v6h6v2H9v6H7V9H1V7h6z'/%3E%3C/svg%3E")}.action-pane [data-icon=resume]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 2l10 6-10 6z'/%3E%3C/svg%3E")}.action-pane [data-icon=reconcile],.action-pane [data-icon=refresh]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2a6 6 0 015.2 3H11v1.5h4V2.5h-1.5v1.3A7.5 7.5 0 1015 9h-1.5A6 6 0 118 2z'/%3E%3C/svg%3E")}.action-pane [data-icon=external]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M9 2h5v5h-1.5V4.6L7 10 6 9l5.4-5.5H9zM3 4h4v1.5H4.5v7h7V10H13v4H3z'/%3E%3C/svg%3E")}.action-pane [data-icon=users]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6 8a3 3 0 110-6 3 3 0 010 6zm5-1a2.5 2.5 0 110-5 2.5 2.5 0 010 5zM1 14c0-3 2-5 5-5s5 2 5 5zm10-5c2.4.1 4 1.8 4 4h-3c-.2-1.6-.8-2.8-1.8-3.6z'/%3E%3C/svg%3E")}.action-pane>i{height:24px;width:1px;background:var(--border);margin:0 3px}.action-spacer{flex:1}.job-strip{margin-top:10px;padding:10px 14px;background:#fff;border-left:4px solid var(--primary)}.job-strip div{display:flex;justify-content:space-between}.job-strip progress{width:100%;height:4px;margin-top:8px;accent-color:var(--primary)}.message-bar{margin-top:10px;min-height:42px;background:#cfe0f4;border-left:4px solid var(--primary);padding:9px 10px 9px 14px;display:flex;align-items:center;justify-content:space-between}.message-bar.success{background:#dff6dd;border-color:var(--success)}.message-bar.warning{background:#fff4ce;border-color:#797775}.message-bar.error{background:#fde7e9;border-color:var(--error)}.message-bar button{border:0;background:transparent;font-size:20px}.filters{display:grid;grid-template-columns:repeat(5,minmax(125px,170px)) 1fr;gap:8px;margin:12px 0}.status-tile{height:66px;background:#fff;border:1px solid var(--border);border-left:4px solid var(--warning);padding:8px 12px;text-align:left;display:grid;grid-template-columns:1fr auto;align-items:center}.status-tile strong{font-size:24px;font-weight:600}.status-tile.draft{border-left-color:var(--primary)}.status-tile.posted{border-left-color:var(--success)}.status-tile.error{border-left-color:var(--error)}.status-tile.active{outline:2px solid var(--primary);outline-offset:-2px}.search-box{display:flex;align-items:center;justify-content:flex-end}.search-box input{width:min(330px,100%);height:34px;border:1px solid #8a8886;padding:0 10px}.filter-chip{display:inline-block;background:var(--selection);padding:5px 10px;margin:-3px 0 8px;border:1px solid #c7e0f4}.work-area{display:grid;grid-template-columns:minmax(0,1fr) 300px;background:#fff;border:1px solid var(--border);min-height:510px}.grid-surface{min-width:0}.surface-title{height:44px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.surface-title h2{font-size:16px;margin:0}.surface-title span{font-size:12px;color:var(--muted)}.table-wrap{overflow:auto;max-height:650px}table{border-collapse:collapse;width:100%;min-width:1260px}th{position:sticky;top:0;z-index:2;height:38px;background:var(--alt);font-size:12px;text-align:left;font-weight:600;padding:0 10px;border-bottom:1px solid #d2d0ce;white-space:nowrap}td{height:38px;padding:0 10px;border-bottom:1px solid var(--border);white-space:nowrap;font-size:13px}tbody tr:nth-child(even){background:#faf9f8}tbody tr:hover{background:#f3f9fd}tbody tr.selected{background:var(--selection);outline:1px solid #71afe5;outline-offset:-1px}tbody tr:focus{outline:2px solid var(--primary);outline-offset:-2px}.money{font-variant-numeric:tabular-nums;text-align:right}.batch-link,.fact-links button{border:0;background:transparent;color:var(--primary);padding:0;text-decoration:none}.batch-link:hover,.fact-links button:hover{text-decoration:underline}.status{display:inline-flex;align-items:center;gap:6px}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:#8a8886}.status.synced:before{background:var(--warning)}.status.drafting:before,.status.drafted:before{background:var(--primary)}.status.posted:before{background:var(--success)}.status.error:before{background:var(--error)}.warning-count{color:#8a5700}.factbox{border-left:1px solid var(--border);min-width:0}.factbox-empty{height:100%;display:grid;place-content:center;text-align:center;padding:25px;color:var(--muted);gap:6px}.factbox header{padding:14px 16px;background:var(--alt);border-bottom:1px solid var(--border)}.factbox header span{font-size:11px;color:var(--muted)}.factbox h2{font-size:18px;margin:3px 0 0}.lifecycle{display:grid;grid-template-columns:repeat(4,1fr);padding:20px 12px 14px}.life-step{position:relative;text-align:center;font-size:10px;color:var(--muted);padding-top:20px}.life-step:before{content:"";position:absolute;top:5px;left:50%;width:10px;height:10px;border:2px solid #8a8886;background:#fff;border-radius:50%;transform:translateX(-50%);z-index:1}.life-step:not(:last-child):after{content:"";position:absolute;top:10px;left:50%;width:100%;height:2px;background:#c8c6c4}.life-step.done:before{border-color:var(--success);background:var(--success)}.life-step.active:before{border-color:var(--primary);background:var(--primary)}.life-step.done:not(:last-child):after{background:var(--success)}.factbox dl,.confirm-facts{margin:0;padding:8px 16px}.factbox dl div,.confirm-facts div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}dt{color:var(--muted)}dd{margin:0;text-align:right;font-weight:600}.fact-error{margin:10px 16px;padding:9px;background:#fde7e9;color:#a4262c}.fact-links{display:grid;gap:10px;padding:14px 16px}.fact-links button{text-align:left}.empty-state{display:grid;place-content:center;text-align:center;min-height:300px;color:var(--muted);gap:6px}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:30}.side-panel{position:fixed;left:0;top:calc(26px + var(--message-bar-height,0px));bottom:0;width:min(760px,94vw);z-index:40;background:#fff;box-shadow:5px 0 18px rgba(0,0,0,.2);overflow:auto;transition:top .15s ease}.side-panel>header{height:68px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;background:var(--alt);border-bottom:1px solid var(--border)}.side-panel h2{margin:2px 0;font-size:20px}.side-panel header small{color:var(--muted)}.side-panel header button,dialog header button{border:0;background:transparent;font-size:24px}.panel-body{padding:16px 18px}.detail-table{width:100%;min-width:650px}.detail-table th{position:static}.audit-item,.warning-item{padding:12px 4px;border-bottom:1px solid var(--border)}.audit-item small{color:var(--muted)}.audit-item p{margin:5px 0;overflow-wrap:anywhere}.warning-item{border-left:3px solid var(--warning);padding-left:10px}.user-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.user-form label{display:grid;gap:5px}.user-form input,.user-form select{height:34px;border:1px solid #8a8886;padding:0 8px}.user-form button{align-self:end;height:34px;border:1px solid var(--primary)}dialog{width:min(560px,92vw);border:1px solid #8a8886;padding:0;box-shadow:0 8px 30px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(0,0,0,.3)}dialog header{height:54px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;background:var(--alt);border-bottom:1px solid var(--border)}dialog h2{font-size:18px;margin:0}dialog form>p{margin:18px}dialog footer{padding:14px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}dialog footer button,.user-form button{min-height:34px;padding:0 14px;background:#fff;border:1px solid #8a8886}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 18px 20px}.form-row label{display:grid;gap:5px}.form-row input,.form-row select{height:34px;border:1px solid #8a8886;padding:0 8px}.warning-note{background:#fff4ce;padding:10px!important}.confirm-facts{padding-bottom:18px}button:focus-visible,input:focus-visible,select:focus-visible,tr:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
@media(max-width:1180px){.filters{grid-template-columns:repeat(5,1fr)}.search-box{grid-column:1/-1}.search-box input{width:100%}.work-area{grid-template-columns:1fr}.factbox{display:none}.factbox.mobile-open{display:block;position:fixed;z-index:40;inset:26px 0 0 auto;width:min(360px,94vw);background:#fff;box-shadow:-5px 0 18px rgba(0,0,0,.2);overflow:auto}}
@media(max-width:760px){.app-shell{padding:0 8px 16px}.page-header{height:auto;padding:14px 0}.page-header p{display:none}.filters{grid-template-columns:repeat(2,1fr)}.search-box{grid-column:1/-1}.action-pane{margin:0 -8px}.status-tile{height:56px}.user-menu small{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.message-bar{margin:0 -20px;justify-content:flex-start;gap:14px;padding:9px 20px 9px 16px}.message-bar #messageText{flex:1}.message-bar button{font-size:inherit}.message-bar .message-action{color:var(--primary);font-weight:600;font-size:13px}.message-bar #dismissMessage{font-size:20px}

/* Environment and notifications share the fixed top status region. */
.env-banner{position:sticky;top:0;z-index:101}
.env-banner.production{position:sticky;top:0;z-index:101}
.message-bar{position:fixed;z-index:100;top:26px;left:0;right:0;margin:0;justify-content:flex-start;gap:14px;padding:9px 20px 9px 16px;box-shadow:0 2px 5px rgba(0,0,0,.12)}
.edit-user{border:0;background:transparent;color:var(--primary);font-weight:600;padding:4px 8px}.edit-user:hover{text-decoration:underline}.user-form input[readonly]{background:var(--alt);color:var(--muted);cursor:not-allowed}
.status.failed:before{background:var(--error)}.status.passed:before{background:var(--success)}#reconciliationDialog .form-row{grid-template-columns:1fr}
/* Payroll close trail: Jisr close completeness remains visible through the accounting flow. */
.status-tile.partial{border-left-color:#ca5010}.status.partially_confirmed:before{background:#ca5010}.status.confirmed:before{background:#107c10}.status.not_confirmed:before{background:#8a8886}.status.check_failed:before{background:#a4262c}.status.not_prepared:before{background:#8a8886}.close-meter{height:5px;margin:16px 16px 0;background:#edebe9;overflow:hidden}.close-meter span{display:block;height:100%;width:0;background:#107c10;transition:width .25s ease}.payment-fields{grid-template-columns:1fr 1fr}.payment-fields label:last-child{grid-column:1/3}@media(max-width:720px){.payment-fields{grid-template-columns:1fr}.payment-fields label:last-child{grid-column:auto}}

/* Spec 001: view navigation shell */
.view-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px}
.view-tab{height:38px;padding:0 16px;border:0;background:transparent;font-weight:600;color:var(--muted);border-bottom:3px solid transparent}
.view-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.view-tab:hover:not(.active){background:var(--alt)}
.view-panel{min-height:0}
.hint{color:var(--muted);font-size:12px;margin:6px 0 12px}
.panel-subhead{font-size:13px;margin:14px 16px 4px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.paygroup-counts{margin:0;padding:0 16px}
.paygroup-counts div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--border);font-size:13px}

/* Settings (US1) */
.settings-tabs{display:flex;gap:4px;margin-bottom:10px}
.settings-tab{height:36px;padding:0 14px;border:1px solid var(--border);background:#fff;font-weight:600;color:var(--muted)}
.settings-tab.active{color:var(--primary);border-color:var(--primary);background:var(--selection)}
.settings-section{background:#fff;border:1px solid var(--border);padding:16px}
.settings-footer{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
#headerTemplate,#lineTemplate{width:100%;font-family:"Cascadia Code",Consolas,monospace;font-size:13px;padding:8px;border:1px solid #8a8886;margin:6px 0 10px;resize:vertical}
#headerTemplate[readonly],#lineTemplate[readonly]{background:var(--alt);color:var(--muted)}

/* Mapping (US2) */
.mapping-section{margin-bottom:22px}
.mapping-section h3{font-size:14px;margin:0 0 6px;display:flex;align-items:center;gap:8px}
.mapping-section h3 small{color:var(--muted);font-weight:400}
.mapping-table td{white-space:normal}
tr.row-invalid td{background:#fde7e9}
tr.row-reason td{padding:2px 10px 8px;border-bottom:1px solid var(--border)}
.change-account{border:0;background:transparent;color:var(--primary);font-weight:600}
.acct-picker td{padding:10px;background:var(--alt)}
.acct-picker input{width:100%;max-width:420px;height:32px;border:1px solid #8a8886;padding:0 8px;margin-bottom:6px}
.acct-results{max-height:220px;overflow:auto;border:1px solid var(--border);background:#fff}
.acct-option{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:#fff;padding:8px 10px;border-bottom:1px solid var(--border)}
.acct-option:hover{background:var(--selection)}
.project-mapping-actions{display:flex;justify-content:flex-end;margin:8px 0}
.project-mapping-table select{width:100%;min-width:150px;height:34px;border:1px solid #8a8886;background:#fff;padding:0 8px}
.project-mapping-table .unmapped{color:var(--error);font-weight:600}
.project-mapping-table .mapped{color:var(--success);font-weight:600}

/* Description templates & preview (US3) */
.variable-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}
.chip{border:1px solid var(--border);background:var(--alt);padding:4px 8px;font-size:12px;font-family:monospace}
.chip:hover{background:var(--selection)}
.preview-box{border:1px solid var(--border);padding:10px 12px;margin-bottom:10px}
.preview-box.over-limit{border-color:var(--error);background:#fde7e9}
.preview-label{font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.03em}
.preview-text{font-family:monospace;padding:8px 0;overflow-wrap:anywhere}
.preview-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}

/* Preview-before-write dialog (US5) */
.preview-groups{padding:0 18px 8px}
.preview-groups h3{font-size:13px;margin:10px 0 4px}
.preview-groups ul{margin:0;padding-left:18px;font-size:13px}
.preview-warnings{padding:0 18px 10px;display:grid;gap:6px}
.warning-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.warning-item.severity-blocking{border-left-color:var(--error);background:#fde7e9}
.warning-item.severity-approvable_exception{border-left-color:#ca5010;background:#fff4ce}
#draftDialog{width:min(680px,94vw)}

/* Line review (US6) */
.lines-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:10px}
.lines-filters label{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.lines-filters label.checkbox{flex-direction:row;align-items:center;display:flex;gap:6px}
.lines-filters input,.lines-filters select{height:32px;border:1px solid #8a8886;padding:0 8px;font:inherit}
tr.conflict-row td{background:#fff4ce}
.conflict-panel{margin-top:12px;border:1px solid var(--border);padding:12px;background:#fff}
.conflict-detail{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.conflict-detail pre{background:var(--alt);padding:8px;overflow:auto;font-size:12px}
.reconciled-ok{background:#dff6dd;color:#0b6a0b}
.change-summary{flex:1;font-size:12px;color:var(--muted)}
.change-summary ul{margin:4px 0 0;padding-left:18px}
.change-summary strong{color:var(--text)}
.settings-footer{align-items:flex-start;justify-content:space-between}
.action-pane button.no-icon:before{display:none}
.settlement-summary{grid-template-columns:repeat(7,minmax(105px,150px)) minmax(180px,1fr)}
.settlement-filterbar{display:flex;align-items:end;gap:12px;margin:-4px 0 12px;padding:10px 12px;background:#fff;border:1px solid var(--border);border-top:0}
.settlement-filterbar label{display:grid;gap:4px;color:var(--muted);font-size:12px;font-weight:600}
.settlement-filterbar input,.settlement-filterbar select{height:32px;min-width:140px;border:1px solid #8a8886;background:#fff;padding:0 8px;color:var(--text)}
.settlement-work-area{min-height:540px}
.settlement-table{min-width:1180px}
.settlement-table td:first-child{font-weight:600}
.settlement-preview{max-height:250px;overflow:auto;padding:0 16px 14px;color:var(--muted);font-size:12px}
.settlement-preview>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}
.settlement-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settlement-preview strong{color:var(--text);font-variant-numeric:tabular-nums}
#settlementEvidence dt,#settlementEvidence dd{padding:2px 0;font-size:12px}
#settlementDetail .panel-subhead{margin-top:16px}
@media(max-width:1180px){.settlement-summary{grid-template-columns:repeat(4,1fr)}.settlement-summary .search-box{grid-column:1/-1}.settlement-filterbar{flex-wrap:wrap}.settlement-filterbar label{flex:1 1 150px}.settlement-filterbar input,.settlement-filterbar select{width:100%;min-width:0}}
@media(max-width:760px){.settlement-summary{grid-template-columns:repeat(2,1fr)}.settlement-filterbar{margin:-4px -8px 12px}.settlement-filterbar label{flex:1 1 145px}}
.journal-option{display:grid;gap:7px;max-width:760px;font-weight:600;margin:18px 0}
.journal-option select{height:38px;border:1px solid #8a8886;padding:0 10px;background:#fff}
#journalOptionsSection .warning-note{margin:16px 0!important;max-width:760px}
.journal-options-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:18px;max-width:1120px}
.journal-options-grid .journal-option{margin:18px 0 6px;max-width:none}
.journal-strategy{display:grid;grid-template-columns:minmax(220px,auto) 1fr;gap:18px;align-items:center;max-width:1120px;margin:16px 0;padding:13px 15px;border-left:4px solid var(--primary);background:var(--selection)}
.journal-strategy span{color:var(--muted)}
.description-guide{margin:12px 0 18px;padding:14px 16px;border:1px solid #c7e0f4;background:#f5faff;max-width:1120px}
.description-guide h3{font-size:14px;margin:0 0 8px}.description-guide ol{margin:0 0 9px;padding-left:20px;line-height:1.6}.description-guide p{margin:6px 0;line-height:1.5}.description-guide code{font-family:"Cascadia Code",Consolas,monospace;background:#fff;padding:1px 4px;border:1px solid var(--border)}
@media(max-width:760px){.journal-options-grid{grid-template-columns:1fr}.journal-strategy{grid-template-columns:1fr;gap:5px}}

/* A journal thread makes repeated months read as one accounting period with several D365 records. */
.journal-period{display:flex;align-items:stretch;gap:9px;min-height:38px}
.journal-period>i{position:relative;width:8px;flex:0 0 8px}
.journal-thread .journal-period>i:before{content:"";position:absolute;left:3px;top:-1px;bottom:-1px;width:1px;background:#8bb8df}
.journal-thread .journal-period>i:after{content:"";position:absolute;left:0;top:16px;width:7px;height:7px;border:2px solid var(--primary);border-radius:50%;background:#fff}
.selected.journal-thread .journal-period>i:after{background:var(--primary)}
.journal-period>span{display:grid;align-content:center;gap:1px}
.journal-period small,.journal-batch-cell small,.journal-secondary{display:block;color:var(--muted);font-size:11px;font-weight:400}
.journal-batch-cell{line-height:1.25}

.user-actions{grid-column:1/3;display:flex;justify-content:flex-end;gap:12px}
.user-actions .quiet{grid-column:auto}
.password-fields{grid-template-columns:1fr}
.password-fields input{width:100%}
.dialog-error{margin:0 18px 12px!important}
@media(max-width:760px){.page-header{align-items:flex-start;gap:10px;flex-wrap:wrap}.user-menu{margin-left:auto}}

/* The environment warning banner was removed; fixed UI now starts at the viewport edge. */
.login-shell{min-height:100vh}
.message-bar{top:0}
.side-panel{top:var(--message-bar-height,0px)}
@media(max-width:1180px){.factbox.mobile-open{inset:0 0 0 auto}}

/* Environment banners are retired in every environment, including mixed cached assets. */
.env-banner,#envBanner{display:none!important}
.project-mapping-table input.project-select{width:100%;min-width:180px;height:34px;border:1px solid #8a8886;background:#fff;padding:0 8px}
.lines-filters>button{height:32px;padding:0 10px;border:1px solid var(--primary);background:#fff;color:var(--primary);font-weight:600}
.busy-overlay{position:fixed;inset:0;z-index:250;background:rgba(255,255,255,.58);cursor:wait}
.busy-box{position:absolute;top:72px;left:50%;transform:translateX(-50%);width:min(312px,calc(100vw - 24px));min-height:64px;display:grid;place-items:center;padding:14px 20px;background:#fff;border:1px solid var(--primary);border-radius:2px;box-shadow:0 2px 8px rgba(0,0,0,.16);color:var(--text);font-size:14px;text-align:center}
@media(max-width:760px){.busy-box{top:54px}.lines-filters{align-items:stretch}.lines-filters label{flex:1 1 180px}.lines-filters>button{flex:1 1 140px}}
