/* OpsDesk: shared type roles and material treatments for the working desk. */
:root{
  --font-ui:'IBM Plex Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-display:'Barlow Condensed','Arial Narrow',sans-serif;
  --paper:#f7f5e8;--cream:#dfe5ce;--sage:#627359;--forest:#1b342d;
  --deep:#122720;--ink:#233b30;--muted:#526550;--line:#bdc8ab;
  --on-dark:#f6f5e5;--muted-dark:#cbd6bb;--row-line:#e5e8d9;
  --ease:cubic-bezier(.22,1,.36,1);--pixel:var(--font-ui);
  font-family:var(--font-body);background:var(--sage);color:var(--ink);
}
body{font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--sage);font-synthesis:none}
button,a,input,select{touch-action:manipulation}
button,.primary,.quiet,.selection-bar .primary,.log-actions .primary,.mode-button,.nav-day,.workspace-home,
.app-nav button,.workspace-command .quiet,.book-tabs button{
  font:500 12px/1.4 var(--font-ui);letter-spacing:.045em;text-transform:uppercase;
}
button,.primary,.quiet{border-radius:3px}
button:not(:disabled),.mode-button{
  transition:background-color 140ms ease,border-color 140ms ease,box-shadow 180ms var(--ease),transform 180ms var(--ease);
}
button:not(:disabled):active,.mode-button:active{transform:translateY(1px)}
button:disabled{opacity:1;cursor:default}
.primary{background:linear-gradient(#456740,#2d4e31);color:var(--on-dark);border:1px solid #698153;box-shadow:inset 0 1px #75945c88,0 2px 0 #253e23;padding:11px 17px}
.primary:hover:not(:disabled){background:linear-gradient(#527949,#355c38);box-shadow:inset 0 1px #75945c88,0 2px 0 #253e23,0 4px 8px #253e2318}
.primary:disabled{background:#d1d9bd;color:#59684f;border-color:#b8c3a1;box-shadow:none}
.quiet{background:transparent;color:var(--muted);border:1px solid transparent;box-shadow:none;padding:9px 10px}
.quiet:hover:not(:disabled){background:#e7ebd7;color:var(--deep);box-shadow:none}
.quiet:disabled{color:#7d8b73}
.icon-btn{flex:none;background:#f3e4da;color:#8c3e31;border:1px solid #c49a88;box-shadow:0 1px 0 #ddc3b7;font:400 24px/1 var(--font-body)}
.icon-btn:hover{background:#8c3e31;color:#fff4e9;border-color:#8c3e31}
:is(button,a,input,select,summary):focus-visible{outline:2px solid #ad7d29;outline-offset:3px}
:is(.app-header,.selection-bar,.tutorial-guide) :is(button,a):focus-visible{outline-color:#efd891}
.eyebrow,.screen-kicker,.home-eyebrow,.document-stamp,.context span,.snapshot,
.group-number,.count,.source-controls select,.source-foot,.reviewed-tag,.save-status,
.comparison-decision>span,.investigation-badge,.status-pill,.mode-meta,.mode-scope{
  font:400 11px/1.5 var(--font-ui);letter-spacing:.05em;text-transform:uppercase;
}
.workspace-heading h2,.panel-title h3,.document-heading h3,.evidence-fact h4,
.decision-choices legend,.dialog-heading h2,.log-row h3{
  font:500 13px/1.5 var(--font-ui);letter-spacing:.045em;text-transform:uppercase;
}
.panel-title h3{font-size:12px}.dialog-heading h2{font-size:16px;overflow-wrap:anywhere}
.log-row h3{font-size:14px;letter-spacing:0;overflow-wrap:anywhere}
.app-header{background:#1b342d;color:var(--on-dark);border-bottom:1px solid #879b6d;box-shadow:0 3px 10px #0b22182b;gap:10px 24px}
.app-brand,.home-brand{font:500 26px/1 var(--font-display);letter-spacing:.01em;color:var(--on-dark)}
.app-mark,.home-mark{font:500 12px var(--font-ui);background:#cbd6aa;color:#203b2b;border:1px solid #e0e8c3;border-radius:2px;box-shadow:inset 0 1px #fcffe0}
.app-mark>span{background:#536b46}
.app-nav button{color:var(--muted-dark)}
.app-nav .quiet:hover,.nav-day:hover{background:#304d3a;color:var(--on-dark)}
.app-nav .nav-day{border-color:#637a55;background:#263f30}
.workspace-command{padding-block:10px;border-color:#d4dfb522}
.workspace-home{color:var(--muted-dark);font-size:11px;text-decoration:none}
.workspace-home:hover{color:var(--on-dark)}
.command-controls{gap:7px;padding:5px;background:#0d231b;border:1px solid #4f6945;border-radius:4px;box-shadow:inset 0 2px 5px #0004,0 1px #6f805444}
.clock-block{gap:12px;padding:8px 14px;min-height:54px;border:1px solid #263d2b;background:#172f24;box-shadow:inset 0 2px 5px #03170f66;border-radius:2px}
.clock-label{font:400 11px/1.5 var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--muted-dark)}
.clock-block .workspace-clock{font:500 27px/1.1 var(--font-ui);letter-spacing:0;color:#e8d796;min-width:100px;font-variant-numeric:tabular-nums}
.workspace-command #submitAttempt,.workspace-command #showResults{
  min-height:54px;min-width:150px;padding:13px 20px;font:500 12px/1.4 var(--font-ui);letter-spacing:.045em;
  background:linear-gradient(#e1e8bc,#becf92);color:#203b2b;border:1px solid #d2e0af;
  box-shadow:inset 0 1px #fcffe5,0 2px 0 #728852,0 4px 7px #0004;
}
.workspace-command #submitAttempt:hover,.workspace-command #showResults:hover{background:linear-gradient(#eef0cf,#d2dfa9)}
.workspace-command #submitAttempt:active{box-shadow:inset 0 2px 4px #30472430,0 1px 0 #728852}
.workspace-command .workspace-actions{gap:7px}
.screen-window{background:var(--sage)}
.screen-window>main{max-width:1880px;padding-top:24px}
.intro{background:linear-gradient(115deg,#284335,#19352a);border:1px solid #415a40;border-bottom:0;box-shadow:inset 0 1px #afc28b33;color:var(--on-dark);padding:24px}
.intro h1{font:600 36px/1.08 var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--on-dark);margin:6px 0 0}
.intro .eyebrow,.intro .snapshot{color:var(--muted-dark)}
.context{background:#dfe5ce;border:1px solid #afbd98;border-top:1px solid #eef0d9;box-shadow:0 3px 0 #4d6243,0 6px 12px #172f2214;padding:15px 24px}
.context strong{font:500 13px/1.5 var(--font-ui);color:var(--ink)}
.context span{color:var(--muted);font-size:10px}
.workspace-heading{margin-top:25px;margin-bottom:12px;color:var(--on-dark)}
.workspace-heading h2{font-size:13px;color:var(--on-dark)}
.workspace-heading p,.workspace-heading small{font:400 11px/1.5 var(--font-ui);color:var(--on-dark)}
.section-number{border:1px solid #b2bda0;background:#526948;color:#fafae8;border-radius:2px;font-family:var(--font-ui)}
.grids{gap:16px;padding:9px;background:#dae1c8;border:1px solid #3b543b;border-radius:4px;box-shadow:inset 0 1px #faffed,0 3px 0 #4c6242,0 10px 22px #1c342632}
.grids:before{display:none}
.grids .panel{min-width:0;border:1px solid #adbaa0;border-radius:2px;background:var(--paper);box-shadow:none;overflow:hidden}
.panel-title{min-height:63px;background:#dce5c5;border-top:3px solid #456742;border-bottom:1px solid #afbca0;padding:12px 14px;gap:10px;box-shadow:inset 0 1px #f8f9e8}
.panel:nth-child(2) .panel-title{background:#e8ddbf;border-top-color:#988043;border-bottom-color:#c3b38d}
.source-controls{gap:8px}.source-controls select{font-size:11px;letter-spacing:0;text-transform:none;background:#fafbed;color:var(--ink);min-height:32px}
.source-foot{background:#eaeedb;color:var(--muted);font-size:10px;letter-spacing:0;border-top:1px solid #bcc8aa;padding:9px 12px}
.grids .table-wrap{max-height:min(58dvh,660px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:#a4b294 #edf0df}
.table-wrap{scrollbar-color:#a4b294 #edf0df;overscroll-behavior:contain}
table{font-variant-numeric:tabular-nums;color:var(--ink);background:var(--paper)}
.grids table{min-width:650px}
th,th button{font:500 11px/1.4 var(--font-ui);letter-spacing:0;text-transform:uppercase;color:#485e43}
th{padding:11px 10px;background:#e9ecd9;border-bottom:1px solid #cbd3bc}
.grids th{padding:0 10px;height:40px}
.grids th button{min-height:40px;padding:8px 0;width:100%;text-align:inherit}
td{padding:14px 10px;border-bottom:1px solid var(--row-line);font-size:15px;line-height:1.45;color:var(--ink)}
.grids td{padding:13px 10px;border-color:var(--row-line)}
.grids .check{width:30px;padding-left:10px;padding-right:1px}
.idcell{min-width:142px}
.idcell strong,.source-record-id{font:500 15px/1.45 var(--font-ui);letter-spacing:0;color:var(--deep)}
.idcell small,.ledger-table .idcell small{font:400 11px/1.5 var(--font-ui);color:var(--muted);margin-top:3px}
.num{font:400 15px/1.45 var(--font-ui);letter-spacing:0;text-align:right;white-space:nowrap}
.record-detail,.ledger-detail,.settlement-detail,.quantity-detail{font:400 12px/1.5 var(--font-body)!important;color:var(--muted)}
.cash-line{font-size:13px}.cash-line strong,strong.cash-line{font-weight:500}
.reviewed-tag{font-size:10px;letter-spacing:.01em}
.side{font:500 10px/1.4 var(--font-ui);border:1px solid #bac9a1;background:#e4ecd3;color:#3b5734;padding:2px 5px;border-radius:1px}
.grids tr:not(.grouped):hover{background:#edf0da}
.grids tr.selected,.grids tr.selected:hover{background:#dce7c4;box-shadow:inset 3px 0 #426b3c}
.grids tr.grouped{background:#eff0e1;color:var(--muted)}
.grids tr.grouped .idcell strong{color:#354f3d}
input[type=checkbox],input[type=radio]{accent-color:#416240;width:16px;height:16px;flex:none}
.selection-bar{position:sticky;bottom:12px;z-index:12;background:linear-gradient(#2e4a36,#243e2e);color:var(--on-dark);border:1px solid #9dac7e;border-radius:3px;padding:13px 15px;gap:16px;margin-top:17px;box-shadow:inset 0 1px #afc38755,0 3px 0 #435d3e,0 8px 16px #122b2430;isolation:isolate}
.selection-bar>div:first-child{min-width:0;flex:1}
#selectionCount{font:500 12px/1.45 var(--font-ui);letter-spacing:.045em;text-transform:uppercase;color:var(--on-dark)}
#selectionHint{font:400 11px/1.5 var(--font-ui);color:var(--muted-dark)}
.selection-bar .quiet{color:var(--muted-dark)}
.selection-bar .quiet:hover{background:#3b5740;color:var(--on-dark)}
.selection-bar .quiet:disabled{color:#94a58b}
.selection-bar .primary:not(:disabled){background:linear-gradient(#e3e9c5,#c8d7a4);border-color:#d7e2b9;color:#203b2b;box-shadow:inset 0 1px #ffffe2,0 2px 0 #8b9c69}
.selection-records{display:flex;gap:6px;flex-wrap:wrap;max-height:66px;overflow:auto;margin-top:8px}
.selection-records:empty{display:none}
.selection-record{display:inline-flex;gap:7px;align-items:center;padding:3px 7px;background:#34513a;border:1px solid #859b6b;border-radius:2px;font:400 12px/1.4 var(--font-ui);color:var(--on-dark);white-space:nowrap}
.selection-record[data-source=B]{background:#424c31;border-color:#a29160}
.selection-record b{font:400 11px var(--font-body);color:#d6e0c0}
.selection-record.is-new{animation:chip-in 180ms var(--ease) both}
.selection-bar:has(.selection-record){border-top-color:#cfddaa}
.book-tabs button{border-color:#a3b58a;background:#dfe6ce;color:#334e34;box-shadow:inset 0 1px #f4f7e4;min-height:42px}
.book-tabs button[aria-pressed=true]{background:var(--forest);color:var(--on-dark);border-color:#c6d3af;box-shadow:inset 0 -3px #d3dba8}
.book-tabs button span{font:400 11px var(--font-ui)}
.log-row{background:var(--paper);border:1px solid #b1bea0;border-radius:3px;box-shadow:0 2px 0 #526647;gap:18px;padding:17px 18px}
.log-row p{line-height:1.5}.log-row .content{min-width:0}.log-row small{font:400 11px/1.6 var(--font-ui)}
.log-actions{align-items:center;gap:6px}
.log-actions .primary{background:#e9eddb;color:#314b34;border:1px solid #a9ba94;box-shadow:0 1px 0 #d2d9c1}
.log-actions .primary:hover{background:#dfe7ca;box-shadow:none}
.log-row.returned-to{animation:decision-return 600ms ease-out}
.investigation-badge,.status-pill{font-size:10px;letter-spacing:.035em;border-radius:2px}
dialog{background:var(--paper);color:var(--ink);border:1px solid #97a886;border-radius:5px;box-shadow:0 3px 0 #233d2b,0 24px 75px #0d241c66;padding:24px;scrollbar-color:#9eae8f var(--paper);overscroll-behavior:contain}
dialog::backdrop{background:#102b25a8;backdrop-filter:blur(3px)}
dialog[open]{animation:desk-dialog-in 180ms var(--ease) both}
.dialog-heading{padding-bottom:17px;border-bottom:1px solid #c7d0b6;margin-bottom:17px;gap:20px}
.dialog-heading h2{color:var(--deep)}
.dialog-actions,.investigation-end{background:#e4e9d1;border-top:1px solid #bcc8a8;padding:14px 16px;border-radius:0 0 3px 3px}
.dialog-actions .primary,.investigation-end .primary{min-height:44px;padding-inline:22px}
.comparison-decision{background:#e6ecd6;color:var(--ink);border:1px solid #b9c7a3;padding:10px 13px}
.comparison-decision strong{font:500 13px/1.45 var(--font-ui)}
#groupDialog{width:min(1180px,calc(100vw - 32px))}
#comparison{max-height:48dvh;overflow:auto;min-width:0}
#comparison table,.investigation-trades table{min-width:740px}
#comparison td,.investigation-trades td{padding:11px 13px}
.source-name{font:500 11px/1.5 var(--font-ui)!important;text-transform:uppercase;letter-spacing:.025em}
.source-record-id{display:block;margin-top:4px}
.field-difference{background:#f4e4b0;color:#72501c}
.source-totals{font:400 12px/1.6 var(--font-ui);padding:12px;gap:16px;flex-wrap:wrap}
#investigationDialog:not(.library-only){height:min(1020px,calc(100dvh - 32px));width:min(1580px,calc(100vw - 32px));padding:22px 24px 0}
#investigationDialog .dialog-heading{flex:none}
.investigation-trades{flex:none;max-height:30dvh;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--paper);border:1px solid #b9c6a7;border-radius:2px}
.investigation-trades .table-wrap{overflow:visible}
.trade-strip-title{font:400 11px/1.5 var(--font-ui);background:#e6ecd6;color:var(--muted)}
#investigationDialog:not(.library-only) .investigation-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:0;border-top:1px solid #c7d0b6;margin-top:18px;min-height:80px}
#investigationDialog:not(.library-only) .evidence-pane{padding:16px 18px 16px 0;border-right:1px solid #c7d0b6;scrollbar-gutter:stable}
#investigationForm{padding:16px 0 16px 22px;scrollbar-gutter:stable}
.evidence-picker{font:500 11px/1.5 var(--font-ui);text-transform:uppercase;letter-spacing:.045em;margin-bottom:14px}
.evidence-picker select{font:400 12px/1.5 var(--font-ui);min-height:36px;max-width:100%;margin-top:6px;color:var(--ink);background:#fcfbed}
.evidence-document{background:#edf0df;border:1px solid #bcc6aa;border-radius:2px;box-shadow:2px 3px 0 #e1e2ce}
.document-heading{background:#e3e8d2;border-bottom:1px solid #c7d0b6;padding:13px 16px}
.document-heading h3{font-size:12px;margin-top:5px}
.document-stamp{font-size:10px;color:var(--muted)}
.evidence-fact{padding:14px 0;border-bottom:1px solid #d0d7c1}
.evidence-fact h4{font-size:11px;color:#506344;margin-bottom:7px}
.evidence-fact p{font:400 16px/1.6 var(--font-body);color:var(--ink);overflow-wrap:anywhere}
.decision-choices legend{font-size:12px;margin-bottom:12px;color:var(--ink)}
.decision-option{font:400 16px/1.5 var(--font-body);letter-spacing:0;background:#fcfbed;border:1px solid #b7c4a3;border-radius:3px;box-shadow:none;padding:13px 14px;min-height:48px}
.decision-option:hover{background:#f1f2de;border-color:#778e5f}
.decision-option:has(input:checked){background:#e3ebd0;border-color:#6e8b54;box-shadow:inset 3px 0 #64834a}
#investigationDialog>.investigation-end{flex:none;margin:0 -24px;padding:13px 24px;min-height:72px;border-radius:0 0 4px 4px;box-shadow:0 -3px 8px #5463440e}
.procedure-note{font:400 13px/1.6 var(--font-body);color:var(--muted)}
.ledger-comparison-line>strong{font:400 14px/1.5 var(--font-ui)}
.ledger-comparison-line>span{font:400 12px/1.5 var(--font-body)}
.ledger-comparison th,.settlement-comparison th{position:sticky;top:0;z-index:1}
.settlement-comparison tbody th{font:500 12px/1.5 var(--font-ui)}
.comparison-note,.followup-panel #followupStatus,.followup-request,.campaign-finish p{font-family:var(--font-body)}
.ledger-comparison caption,.settlement-comparison caption{font:500 11px/1.5 var(--font-ui);text-transform:uppercase;letter-spacing:.035em;padding:10px 12px}
.campaign-stats strong,.result-score{font:500 36px/1 var(--font-display)}
.campaign-stats span,.calendar-progress,.calendar-cell{font-family:var(--font-ui)}
.tutorial-guide{background:var(--forest);color:var(--on-dark);box-shadow:inset 0 1px #b9cb9444,0 3px 0 #435a3a}
.tutorial-guide :is(h2,p,strong,.screen-kicker){color:var(--on-dark)}
.tutorial-guide .quiet{color:var(--muted-dark)}
.tutorial-guide .quiet:hover{background:#38573d}
.workspace-heading,.log-row,.correction-navigation,#workspaceMain{scroll-margin-top:190px}
@keyframes chip-in{from{opacity:.45;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@keyframes desk-dialog-in{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes decision-return{from{box-shadow:inset 3px 0 #b5923e,0 0 0 2px #ddc780}to{box-shadow:inset 3px 0 transparent,0 0 0 2px transparent}}
@media(min-width:1600px){.grids table{min-width:700px}}
@media(max-width:1100px){.grids{grid-template-columns:minmax(0,1fr);gap:14px}.grids .table-wrap{max-height:440px}.log-actions{flex-direction:row}}
@media(max-width:850px){
  #investigationDialog:not(.library-only) .investigation-layout{display:block;overflow-y:auto}
  #investigationDialog:not(.library-only) .evidence-pane{border-right:0;border-bottom:1px solid #c7d0b6;padding:14px 0!important}
  #investigationForm{padding:18px 0!important;margin:0;overflow:visible}
  .investigation-trades{max-height:26dvh}.intro h1{font-size:32px}.log-row{gap:12px}
}
@media(max-width:680px){
  .app-header{grid-template-columns:1fr auto;padding:12px 14px 0;gap:10px}
  .app-brand{font-size:24px}.app-nav{width:auto;justify-content:flex-end;gap:4px;flex-wrap:wrap}
  .app-nav button{font-size:11px;padding:8px}.workspace-command{flex-wrap:wrap;gap:8px}
  .workspace-home{padding-block:6px}.command-controls{flex:1;justify-content:flex-end;gap:5px;min-width:0}
  .clock-block{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 9px;min-height:54px}
  .clock-label{font-size:10px;margin:0}.clock-block .workspace-clock{font-size:22px;min-width:84px}
  .workspace-command #submitAttempt,.workspace-command #showResults{min-width:115px;padding:10px 12px;font-size:11px}
  .workspace-command .workspace-actions{gap:5px;flex-wrap:wrap}.workspace-command .quiet{font-size:10px}
  .intro{padding:20px 17px}.intro h1{font-size:30px}.context{padding:14px 17px;gap:14px 18px}
  .grids{padding:6px;gap:12px}.panel-title{padding:12px 10px;flex-wrap:wrap}.panel-title h3{font-size:12px}
  .workspace-heading{align-items:flex-start;flex-wrap:wrap}.workspace-heading p{font-size:10px}
  .selection-bar{bottom:6px;flex-wrap:wrap;padding:12px;gap:10px}.selection-bar>div:first-child{flex-basis:100%}
  .selection-bar>div:last-child{width:100%;justify-content:flex-end}.selection-records{max-height:58px}
  .log-actions{width:100%;justify-content:flex-end}.log-row{padding:14px;flex-wrap:wrap}
  dialog,#groupDialog{padding:17px;width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  #investigationDialog:not(.library-only){padding:17px 17px 0;width:calc(100vw - 20px);height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}
  #investigationDialog>.investigation-end{margin-inline:-17px;padding:11px 17px;gap:8px;min-height:65px}
  .investigation-end .primary{margin-left:auto}.dialog-heading h2{font-size:14px}.dialog-heading{padding-bottom:12px;margin-bottom:12px}

}
@media(max-width:430px){.app-header{grid-template-columns:1fr}.app-nav{justify-content:flex-start}.workspace-command{display:block}.command-controls{margin-top:5px;justify-content:space-between}.workspace-heading,.log-row,.correction-navigation,#workspaceMain{scroll-margin-top:230px}}
@media(pointer:coarse){.app-nav button,.source-controls select,.quiet,.icon-btn{min-height:44px}.grids input[type=checkbox]{width:20px;height:20px}.grids .check{min-width:36px}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
