:root {
  --ink:#293e32;
  --muted:#667561;
  --green:#4c7e30;
  --green-dark:#355d20;
  --green-light:#edf4e6;
  --line:#dfe5d8;
  --canvas:#f7f8f3;
  --purple:#75548f;
  --radius:16px;
  font-family:'Nunito',ui-rounded,system-ui,sans-serif;
  color:var(--ink);
  font-synthesis:none
}
* {
  box-sizing:border-box
}
body {
  margin:0;
  background:var(--canvas);
  font-size:15px;
  line-height:1.5
}
button,input,select {
  font:inherit
}
button {
  color:inherit;
  cursor:pointer;
  background:none;
  border:0;
  transition:background .15s,box-shadow .15s,transform .15s
}
a {
  color:inherit;
  text-decoration:none
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #6c95df;
  outline-offset:3px
}
button:disabled {
  opacity:.45;
  cursor:not-allowed
}
h1,h2,h3,p {
  margin:0
}
svg.icon {
  width:20px;
  height:20px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0;
  vertical-align:middle
}
[data-icon] {
  display:inline-flex;
  align-items:center;
  justify-content:center
}
[hidden] {
  display:none!important
}
.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  transform:translateY(-150%);
  z-index:100;
  background:#fff;
  padding:10px 16px;
  border:2px solid var(--green);
  border-radius:8px
}
.skip-link:focus {
  transform:none
}
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:208px;
  padding:28px 15px 0;
  background:#fff;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  height:100vh;
  height:100dvh;
  overflow:hidden;
  z-index:15
}
.brand {
  display:flex;
  gap:9px;
  align-items:center;
  padding:0 3px;
  font-weight:900;
  font-size:18px;
  letter-spacing:-.7px;
  line-height:1.12
}
.brand-name {
  display:block;
  font-size:20px;
  color:var(--green)
}
.brand-mark {
  height:43px;
  width:40px;
  border-radius:12px;
  background:transparent;
  color:var(--green);
  flex-shrink:0
}
.brand-mark .icon {
  height:28px;
  width:28px;
  stroke-width:2.4
}
.nav-label {
  font-size:10px;
  letter-spacing:1.2px;
  color:#7b8772;
  font-weight:800;
  margin:42px 10px 16px
}
.nav-item {
  width:100%;
  display:flex;
  align-items:center;
  text-align:left;
  gap:10px;
  margin-bottom:9px;
  padding:13px 10px;
  border:1.5px solid transparent;
  border-radius:11px;
  font-weight:800;
  font-size:13px;
  color:#667460;
  white-space:nowrap
}
.nav-item > span:last-child {
  font-family: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.nav-item:hover {
  background:#f4f7ee
}
.nav-item.active {
  background:#eaf3df;
  color:#3d6929;
  border-color:#d0e2bd;
  box-shadow:0 2px 0 #dbe8cb
}
.nav-item .icon {
  width:20px
}
.sidebar > .brand,
.sidebar > .nav-label {
  flex-shrink: 0;
}
.sidebar nav {
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  padding-bottom: 3px;
}
.sidebar-bottom {
  margin-top: auto;
  flex-shrink: 0;
}
.profile {
  display:flex;
  gap:9px;
  align-items:center;
  text-align:left;
  border-top:1px solid var(--line);
  padding:20px 0;
  width:100%
}
.profile-avatar {
  height:34px;
  width:34px;
  flex-shrink:0;
  background:#eee9df;
  color:#7b6953;
  border:2px solid #fff;
  outline:1px solid #ded9cd;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-weight:800
}
.profile strong {
  display:block;
  font-size:11px
}
.profile small {
  font-size:10px;
  color:var(--muted)
}
.app-shell {
  margin-left:208px
}
.topbar {
  height:64px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:#fff;
  padding:0 32px
}
.workplace {
  display:flex;
  align-items:center;
  gap:12px
}
.workplace img {
  object-fit:contain
}
.workplace strong {
  display:block;
  font-size:16px;
  font-weight:800
}
.workplace div>span {
  display:block;
  color:var(--muted);
  font-size:12px
}
.top-actions {
  display:flex;
  gap:16px;
  align-items:center
}
.preview-badge {
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:11px;
  color:#65725c;
  background:#f9faf6;
  min-height:36px
}
.preview-badge:hover {
  background:#edf3e5
}
.preview-badge>span {
  width:6px;
  height:6px;
  background:#95ac74;
  border-radius:100%
}
.icon-button {
  width:36px;
  height:36px;
  display:inline-grid;
  place-items:center;
  border-radius:8px;
  color:#6b795f;
  flex-shrink:0
}
.icon-button:hover {
  background:#edf2e5
}
.help-button {
  border:1px solid var(--line);
  border-radius:50%;
  width:30px;
  height:30px;
  font-weight:800
}
main {
  max-width:1440px;
  padding:20px 32px 20px;
  margin:auto
}
.task-meta {
  display:flex;
  gap:12px;
  align-items:center;
  color:#718066;
  font-size:12px
}
.task-meta>#task-progress {
  font-size:11px;
  font-weight:900;
  letter-spacing:1px;
  color:#597c41
}
.meta-divider {
  color:#bbc5af
}
.time {
  display:flex;
  align-items:center;
  gap:5px
}
.time .icon {
  width:14px;
  height:14px
}
.title-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:6px
}
h1 {
  font-size:28px;
  font-weight:900;
  letter-spacing:-.8px;
  line-height:1.25
}
.task-heading>p {
  font-size:14px;
  color:#62725a;
  margin-top:5px
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:10px 15px;
  border:1px solid;
  border-radius:10px;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
  line-height:1.3
}
.button .icon {
  width:18px;
  height:18px
}
.button-secondary {
  background:#fff;
  border-color:#dce4d3;
  box-shadow:0 3px 0 #e3e9db;
  color:#546849
}
.button-secondary:hover {
  background:#f2f7eb
}
.button:active {
  transform:translateY(2px);
  box-shadow:none
}
.task-count {
  height:21px;
  min-width:21px;
  display:grid;
  place-items:center;
  border-radius:6px;
  background:#edf2e6;
  font-size:11px;
  color:#647951
}
.workspace-grid {
  display:grid;
  grid-template-columns:minmax(285px,.85fr) minmax(0,1.7fr);
  gap:22px;
  align-items:start;
  margin-top:24px
}
.card {
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 3px 0 #e9eee1;
  overflow:hidden
}
.reference-tabs {
  display:flex;
  gap:20px;
  border-bottom:1px solid var(--line);
  padding:0 20px;
  background:#fafbf7
}
.reference-tabs button {
  position:relative;
  min-height:54px;
  padding:0 1px;
  display:flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:800;
  color:#68785e
}
.reference-tabs button.active {
  color:var(--green-dark)
}
.reference-tabs button.active:after {
  content:'';
  position:absolute;
  height:3px;
  background:#78a14d;
  bottom:-1px;
  left:0;
  right:0;
  border-radius:4px 4px 0 0
}
.reference-tabs .icon {
  width:16px;
  height:16px
}
.document-count {
  font-size:10px;
  min-width:16px;
  height:17px;
  background:#eaf0e2;
  display:grid;
  place-items:center;
  border-radius:5px
}
.reference-pane [role=tabpanel] {
  padding:22px 20px
}
.message-header {
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:19px
}
.person-avatar {
  position: relative;
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #efe5d5;
  border: 3px solid #f8f2e9;
  box-shadow: 0 0 0 1px #e5dfd2;
  color: #806345;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 800;
}
.person-avatar .person-initials {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
.person-avatar img {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
  transform: scale(1.65);
  transform-origin: 50% 25%;
}
.message-header strong {
  display:block;
  font-size:13px;
  font-weight:800
}
.message-header div>span {
  display:block;
  font-size:11px;
  color:#6e7c63
}
#task-message {
  font-size:14px;
  line-height:1.8;
  color:#5f7055
}
#task-message p+p {
  margin-top:15px
}
#task-message strong {
  color:#354e2b;
  font-weight:800
}
.task-objective {
  display:flex;
  gap:10px;
  padding:15px 13px;
  background:#f1f6e9;
  border:1px solid #e0e9d4;
  border-radius:10px;
  margin-top:20px;
  color:#668c44
}
.task-objective>[data-icon] {
  align-self:flex-start;
  padding-top:2px
}
.task-objective .icon {
  width:17px;
  height:17px
}
.task-objective strong {
  font-size:12px;
  font-weight:800;
  color:#4f6a3c
}
.task-objective p {
  font-size:13px;
  color:#5e7550;
  line-height:1.6;
  margin-top:3px
}
.attachment {
  display:flex;
  align-items:center;
  gap:9px;
  width:100%;
  text-align:left;
  padding:13px 10px;
  border:1px solid #dce4d3;
  border-radius:10px;
  margin-top:18px;
  box-shadow:0 2px 0 #eef1e9
}
.attachment:hover {
  background:#f5f8f0
}
.document-icon {
  background:#f1ecdf;
  color:#8b7851;
  padding:8px;
  border-radius:7px
}
.attachment strong {
  display:block;
  font-size:12px;
  line-height:1.4
}
.attachment small {
  display:block;
  font-size:11px;
  color:#6a7b5b;
  margin-top:4px
}
.attachment>[data-icon]:last-child {
  margin-left:auto;
  color:#779261
}
.attachment .icon {
  width:17px;
  height:17px
}
.signoff {
  font-size:12px;
  color:#75836a;
  margin-top:22px;
  line-height:1.8
}
.signoff strong {
  font-weight:700
}
.reference-footer {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  padding:15px 20px;
  border-top:1px solid #e7ebdf;
  background:#fafbf7;
  color:#6d7e5e
}
.reference-footer .icon {
  width:15px;
  height:15px
}
.entry-header {
  padding:20px 22px 15px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px
}
.eyebrow {
  font-size:9px;
  font-weight:900;
  letter-spacing:1.3px;
  color:#708162
}
.entry-header h2 {
  font-size:21px;
  font-weight:800;
  letter-spacing:-.5px;
  line-height:1.3;
  margin-top:4px
}
.button-hint {
  background:#f7f3fc;
  border-color:#dfd1eb;
  box-shadow:0 3px 0 #e6dbf0;
  color:#76548f;
  font-size:12px;
  min-height:39px;
  padding:9px 12px
}
.button-hint:hover {
  background:#eee5f7
}
.entry-content {
  padding:0 22px 20px
}
.entry-instruction {
  font-size:14px;
  line-height:1.65;
  color:#65765a;
  max-width:none
}
.entry-instruction strong {
  font-weight:800;
  color:#465f39
}
.entry-details {
  margin-top:18px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fbfcf8
}
.entry-details summary {
  list-style:none;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  cursor:pointer;
  font-size:12px;
  color:#526747;
  min-height:42px
}
.entry-details summary::-webkit-details-marker {
  display:none
}
.entry-details summary>span:first-child {
  display:flex;
  align-items:center;
  gap:6px
}
.entry-details summary small {
  font-size:10px;
  color:#6e7d62;
  margin-left:3px
}
.entry-details summary .icon {
  width:14px;
  height:14px
}
.details-value {
  margin-left:auto;
  font-size:11px;
  color:#6e7d62
}
.entry-details summary>[data-icon] {
  transform:rotate(90deg)
}
.entry-details[open] summary>[data-icon] {
  transform:rotate(-90deg)
}
.detail-fields {
  display:flex;
  gap:12px;
  padding:4px 12px 14px
}
.detail-fields label {
  font-size:12px;
  font-weight:700;
  width:50%
}
.detail-fields input {
  margin-top:5px
}
input,select {
  border:1.5px solid #d9e1d0;
  background:#fff;
  border-radius:8px;
  color:#344f2c;
  min-width:0;
  max-width:100%;
  font-size:14px;
  width:100%;
  height:44px;
  padding:10px
}
input::placeholder {
  color:#738168;
  font-weight:400
}
select {
  padding:9px 8px
}
.journal-tools {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:14px 0 8px;
  gap:10px
}
.text-button {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#587842;
  font-size:12px;
  font-weight:800;
  padding:6px 0;
  min-height:32px
}
.text-button:hover {
  color:#36551f;
  text-decoration:underline
}
.text-button .icon {
  height:16px;
  width:16px
}
.journal-table {
  border:1px solid #dce4d3;
  border-radius:11px;
  overflow:hidden
}
.journal-table-head,.journal-row,.journal-totals {
  display:grid;
  grid-template-columns:minmax(130px,1fr) 94px 94px 24px;
  gap:8px;
  align-items:center;
  padding:11px
}
.journal-table-head {
  background:#f1f5e9;
  font-size:11px;
  font-weight:800;
  color:#5b714b
}
.journal-table-head>span:nth-child(2),.journal-table-head>span:nth-child(3) {
  text-align:right;
  padding-right:7px
}
.journal-row {
  border-top:1px solid #e7ecdf;
  padding-top:12px;
  padding-bottom:12px
}
.journal-row input {
  text-align:right;
  font-variant-numeric:tabular-nums;
  padding:8px;
  font-size:14px
}
.journal-row input::-webkit-inner-spin-button {
  appearance:none
}
.journal-row select {
  font-size:13px
}
.journal-row label {
  min-width:0
}
.field-caption {
  display:none
}
.remove-row {
  padding:0;
  width:24px;
  min-height:36px;
  display:grid;
  place-items:center;
  color:#77896a
}
.remove-row:hover:not(:disabled) {
  background:#f7eee5;
  color:#9b6546;
  border-radius:5px
}
.remove-row .icon {
  width:15px;
  height:15px
}
.journal-totals {
  background:#fafcf6;
  border-top:1px solid #e3ead8;
  font-size:13px;
  color:#4c653b
}
.journal-totals>strong:nth-child(2),.journal-totals>strong:nth-child(3) {
  text-align:right;
  font-variant-numeric:tabular-nums;
  padding-right:7px
}
.mobile-total-label {
  display:none
}
.entry-tools {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:7px 1px 6px
}
.entry-tools>span {
  font-size:11px;
  color:#718064
}
.balance-box {
  display:flex;
  flex-direction:column;
  gap:3px;
  border-radius:8px;
  background:#f7f9f2;
  border:1px solid #e7ecde;
  padding:10px 12px;
  margin:3px 0 15px
}
.balance-status {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:800;
  color:#647954
}
.balance-status .icon {
  width:15px;
  height:15px
}
.balance-explanation {
  font-size:11px;
  color:#6a795e
}
.balance-status.balanced {
  color:#406b2b
}
.balance-status.unbalanced {
  color:#936624
}
.description-label {
  display:flex;
  gap:8px;
  align-items:center;
  font-size:12px;
  font-weight:800;
  margin-bottom:6px;
  color:#536a44
}
.description-label>span {
  font-size:11px;
  font-weight:500;
  color:#748367
}
.submit-area {
  border-top:1px solid #e4eadb;
  background:#fbfcf8;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:17px 22px 20px
}
.submit-area>span {
  display:flex;
  gap:6px;
  align-items:center;
  font-size:11px;
  color:#687b5a
}
.submit-area>span .icon {
  height:15px;
  width:15px
}
.button-primary {
  background:#548333;
  border-color:#548333;
  box-shadow:0 4px 0 #375e20;
  color:#fff;
  min-height:46px;
  padding:12px 19px
}
.button-primary:hover {
  background:#48752a
}
.mentor-panel {
  background:#f5effa;
  border:1px solid #e1d4ed;
  border-radius:11px;
  padding:12px 14px;
  margin-top:16px;
  color:#715289
}
.mentor-heading {
  display:flex;
  align-items:center;
  gap:7px
}
.mentor-heading strong {
  font-size:12px
}
.mentor-heading .icon {
  height:18px;
  width:18px
}
.mentor-heading>.icon-button {
  margin-left:auto;
  width:30px;
  height:30px
}
.mentor-panel p {
  font-size:14px;
  line-height:1.7;
  margin:8px 0 5px;
  color:#6c527f
}
.mentor-panel .text-button {
  color:#75538e
}
.page-footer {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  margin-top:17px;
  font-size:11px;
  color:#738268
}
.page-footer .text-button {
  font-size:11px;
  color:#718065
}
.mobile-switch,.mobile-return {
  display:none
}
.invoice-brand {
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 0 20px;
  border-bottom:1px solid #e4e7df;
  font-size:16px;
  font-weight:900;
  color:#3c5731
}
.invoice-brand>[data-icon] {
  padding:9px;
  background:#edf3e4;
  border-radius:9px;
  color:#7b9b57
}
.document-title {
  font-size:17px;
  font-weight:800;
  line-height:1.4;
  margin:18px 0
}
.invoice-detail {
  display:flex;
  justify-content:space-between;
  gap:14px;
  font-size:12px;
  padding:7px 0;
  color:#6f7c64
}
.invoice-detail strong {
  text-align:right;
  color:#4d6241;
  font-weight:700
}
.invoice-item {
  border-top:1px dashed #d8dfce;
  margin-top:15px;
  padding-top:20px;
  font-size:13px;
  color:#5f7053;
  line-height:1.6
}
.invoice-total {
  display:flex;
  justify-content:space-between;
  margin:15px 0;
  padding:15px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:21px;
  font-weight:800;
  color:#456137
}
.invoice-status {
  display:inline-flex;
  gap:6px;
  align-items:center;
  font-size:11px;
  font-weight:800;
  background:#edf5e4;
  padding:6px 8px;
  border-radius:6px;
  color:#52733b
}
.invoice-status .icon {
  height:14px;
  width:14px
}
.document-note {
  font-size:11px;
  color:#718062;
  line-height:1.65;
  margin-top:15px
}
.back-brief {
  margin-top:12px
}
.feedback {
  margin-top:18px;
  padding:16px;
  border:1px solid #d6e3ed;
  border-radius:11px;
  background:#f1f7fa;
  color:#375d70
}
.feedback.warning {
  background:#fff8eb;
  border-color:#ead6ad;
  color:#8a6028
}
.feedback.success {
  background:#eef6e7;
  border-color:#ccdfb8;
  color:#3e6728
}
.feedback.guidance {
  background:#f6f0fa;
  border-color:#e0cfed;
  color:#71518a
}
.feedback h3 {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:16px;
  font-weight:800;
  margin:7px 0
}
.feedback p {
  font-size:13px;
  line-height:1.7
}
.feedback .example-label {
  font-size:10px;
  font-weight:900;
  letter-spacing:.5px
}
.feedback .text-button {
  margin-top:8px
}
.feedback .feedback-dismiss {
  float:right;
  padding:1px 5px;
  min-height:25px;
  color:inherit;
  font-size:12px
}
.field-invalid {
  border-color:#b97730!important;
  background:#fffaf1!important
}
.feedback:focus {
  outline:2px solid #8da878;
  outline-offset:3px
}
dialog {
  border:1px solid #dce4d2;
  border-radius:18px;
  width:min(560px,calc(100% - 32px));
  max-height:85vh;
  padding:25px;
  color:var(--ink);
  box-shadow:0 24px 100px #263a3040
}
dialog::backdrop {
  background:#263a3255;
  backdrop-filter:blur(3px)
}
.dialog-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:15px
}
.dialog-title {
  font-size:25px;
  font-weight:900;
  letter-spacing:-.5px;
  line-height:1.25;
  margin-bottom:13px
}
.dialog-copy {
  font-size:14px;
  line-height:1.8;
  color:#617156
}
.dialog-copy+.dialog-copy {
  margin-top:12px
}
.library-card,.state-option {
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  text-align:left;
  padding:14px;
  margin-top:10px;
  border:1px solid #dfe6d5;
  border-radius:10px;
  background:#fafcf7
}
.library-card:hover,.state-option:hover {
  background:#edf4e4
}
.library-card.active {
  border-color:#92b170;
  background:#edf4e4
}
.library-card strong,.state-option strong {
  display:block;
  font-size:14px
}
.library-card small,.state-option small {
  display:block;
  font-size:12px;
  color:#6d7b61;
  margin-top:3px
}
.library-card>[data-icon],.state-option>[data-icon] {
  margin-left:auto;
  flex-shrink:0
}
.task-number {
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  flex-shrink:0;
  background:#e4edda;
  border-radius:8px;
  color:#5b7b41;
  font-size:12px;
  font-weight:800
}
.account-line {
  display:flex;
  align-items:center;
  gap:11px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
  font-size:13px
}
.account-code {
  color:#78856e;
  font-size:12px
}
.account-line>span:last-child {
  margin-left:auto;
  padding:4px 7px;
  border-radius:5px;
  background:#f0f5e8;
  font-size:11px;
  color:#5c7744
}
.progress-preview {
  background:#f0f5e7;
  border-radius:12px;
  padding:20px;
  margin:18px 0;
  font-size:14px
}
.progress-preview strong {
  display:block;
  font-size:30px;
  color:#527737
}
.progress-track {
  height:8px;
  background:#dde6d0;
  border-radius:5px;
  overflow:hidden;
  margin:12px 0
}
.progress-track span {
  display:block;
  height:100%;
  background:#87ab5a;
  border-radius:5px
}
.achievement-preview {
  display:flex;
  gap:15px;
  align-items:center;
  padding:16px;
  background:#faf5e7;
  border-radius:12px;
  margin-top:15px
}
.achievement-preview>[data-icon] {
  color:#a78c4c
}
.achievement-preview .icon {
  width:35px;
  height:35px
}
.achievement-preview strong {
  display:block;
  font-size:14px
}
.achievement-preview small {
  color:#7d7050;
  font-size:12px
}
.column-explanation {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:18px 0
}
.column-explanation>div {
  padding:16px;
  border:1px solid var(--line);
  background:#f6f9ef;
  border-radius:10px
}
.column-explanation strong {
  display:block;
  margin-bottom:7px
}
.column-explanation p {
  font-size:13px;
  line-height:1.7;
  color:#647258
}
#toast {
  position:fixed;
  bottom:24px;
  left:calc(50% + 104px);
  transform:translate(-50%,20px);
  background:#334d37;
  color:#fff;
  padding:13px 20px;
  border-radius:12px;
  font-size:13px;
  box-shadow:0 5px 20px #24352230;
  z-index:30;
  opacity:0;
  pointer-events:none;
  transition:.2s;
  max-width:calc(100vw - 40px)
}
#toast.visible {
  opacity:1;
  transform:translate(-50%,0)
}
@media(min-width:1600px) {
  .workspace-grid {
    grid-template-columns:370px minmax(0,1fr)
  }
  main {
    padding-top:32px
  }
  .entry-content {
    padding-left:28px;
    padding-right:28px
  }
  .entry-header {
    padding-left:28px;
    padding-right:28px
  }
  .reference-pane [role=tabpanel] {
    padding:25px
  }
  .entry-instruction,#task-message {
    font-size:15px
  }
  .journal-row {
    padding-top:17px;
    padding-bottom:17px
  }
  .journal-table-head,.journal-row,.journal-totals {
    grid-template-columns:minmax(140px,1fr) 120px 120px 26px
  }
}
@media(max-width:1200px) {
  .sidebar {
    width:184px;
    padding-left:12px;
    padding-right:12px
  }
  .brand {
    font-size:15px
  }
  .brand-name {
    font-size:17px
  }
  .brand-mark {
    width:34px;
    height:38px
  }
  .nav-item {
    font-size:12px;
    padding-left:8px;
    gap:8px
  }
  .app-shell {
    margin-left:184px
  }
  .topbar {
    padding:0 24px
  }
  main {
    padding:24px
  }
  .workspace-grid {
    grid-template-columns:285px minmax(0,1fr);
    gap:17px
  }
  .entry-header {
    padding:18px 16px 14px
  }
  .entry-header h2 {
    font-size:19px
  }
  .entry-content {
    padding:0 16px 18px
  }
  .journal-table-head,.journal-row,.journal-totals {
    grid-template-columns:minmax(105px,1fr) 76px 76px 20px;
    gap:6px;
    padding-left:8px;
    padding-right:8px
  }
  .journal-row select {
    font-size:12px
  }
  .details-value {
    display:none
  }
  .submit-area {
    padding:16px
  }
  .submit-area>span {
    font-size:10px
  }
  .button-primary {
    padding:12px 15px
  }
  .entry-instruction {
    font-size:13px
  }
  .reference-pane [role=tabpanel] {
    padding:20px 17px
  }
  .reference-tabs {
    padding:0 17px;
    gap:17px
  }
  .task-switcher {
    font-size:12px
  }
  .title-row h1 {
    font-size:25px
  }
  .entry-tools>span {
    font-size:10px
  }
  .balance-explanation {
    font-size:10px
  }
  .reference-footer {
    font-size:10px;
    padding:13px 17px
  }
  #toast {
    left:calc(50% + 92px)
  }
}
@media(max-width:1050px) {
  .sidebar {
    width:76px;
    padding:24px 10px
  }
  .brand {
    justify-content:center
  }
  .brand>span:last-child,.nav-label,.sidebar-bottom,.nav-item>span:last-child {
    display:none
  }
  .brand-mark {
    width:40px;
    height:42px
  }
  .sidebar nav {
    margin-top:35px
  }
  .nav-item {
    justify-content:center;
    padding:13px 0
  }
  .nav-item .icon {
    width:23px;
    height:23px
  }
  .app-shell {
    margin-left:76px
  }
  #toast {
    left:calc(50% + 38px)
  }
}
@media(max-width:900px) {
  .workspace-grid {
    grid-template-columns:265px minmax(0,1fr);
    gap:14px
  }
  main {
    padding:22px 18px
  }
  .topbar {
    padding:0 18px
  }
  .title-row h1 {
    font-size:23px
  }
  .entry-header {
    align-items:flex-start;
    gap:8px
  }
  .entry-header h2 {
    font-size:18px;
    max-width:180px
  }
  .button-hint {
    padding:9px;
    font-size:11px
  }
  .entry-header .eyebrow {
    font-size:8px
  }
  .journal-table-head,.journal-row,.journal-totals {
    grid-template-columns:minmax(95px,1fr) 66px 66px 18px;
    gap:5px;
    padding-left:6px;
    padding-right:6px
  }
  .journal-row select {
    font-size:11px;
    padding:8px 5px
  }
  .journal-row input {
    padding:5px;
    font-size:13px
  }
  .journal-table-head {
    font-size:10px
  }
  .journal-tools .text-button {
    font-size:11px
  }
  .entry-tools>span {
    font-size:9px
  }
  .submit-area {
    flex-wrap:wrap;
    gap:12px
  }
  .submit-area>span {
    order:2;
    width:100%;
    justify-content:center
  }
  .submit-area>.button {
    width:100%
  }
  .entry-content {
    padding-left:14px;
    padding-right:14px
  }
  .reference-tabs {
    gap:15px
  }
  .reference-tabs button {
    font-size:12px
  }
  #task-message {
    font-size:13px
  }
  .reference-pane [role=tabpanel] {
    padding:18px 15px
  }
  .attachment strong {
    font-size:11px
  }
  .attachment small {
    font-size:10px
  }
  .reference-footer {
    padding:14px;
    font-size:10px
  }
  .task-heading>p {
    font-size:13px
  }
  .page-footer {
    font-size:10px
  }
  .page-footer>.text-button {
    font-size:10px
  }
}
@media(max-width:760px) {
  .sidebar {
    inset:auto 0 0;
    width:100%;
    height:calc(64px + env(safe-area-inset-bottom, 0px));
    padding:5px 8px calc(5px + env(safe-area-inset-bottom, 0px));
    border-top:1px solid var(--line);
    border-right:0;
    background:#fff;
    box-shadow:0 -2px 12px #283c3206
  }
  .sidebar .brand {
    display:none
  }
  .sidebar nav {
    display:flex;
    flex: 0 0 auto;
    overflow: visible;
    padding: 0;
    margin:0;
    justify-content:space-around;
    gap:5px
  }
  .nav-item {
    flex:1;
    flex-direction:column;
    padding:5px 1px;
    gap:3px;
    margin:0;
    border:0;
    font-size:10px;
    line-height:1.3
  }
  .nav-item>span:last-child {
    display:block
  }
  .nav-item .icon {
    width:19px;
    height:19px
  }
  .nav-item.active {
    box-shadow:none
  }
  .app-shell {
    margin:0;
    padding-bottom:calc(64px + env(safe-area-inset-bottom, 0px))
  }
  .topbar {
    height:65px;
    padding:0 18px
  }
  .workplace img {
    width:40px;
    height:38px
  }
  .workplace {
    gap:9px
  }
  .workplace strong {
    font-size:14px
  }
  .workplace div>span {
    font-size:10px
  }
  .top-actions {
    gap:9px
  }
  .preview-badge {
    font-size:10px;
    padding:7px;
    min-height:32px
  }
  .help-button {
    height:28px;
    width:28px
  }
  .task-meta {
    font-size:11px;
    gap:9px
  }
  .task-meta>#task-progress {
    font-size:10px
  }
  .task-meta .time {
    margin-left:auto
  }
  .task-heading {
    position:relative;
    padding-right:0
  }
  .title-row {
    gap:8px;
    margin-top:10px;
    align-items:flex-start
  }
  .title-row h1 {
    font-size:26px;
    max-width:470px
  }
  .task-switcher {
    min-height:32px;
    height:32px;
    font-size:0;
    padding:6px 8px;
    gap:5px
  }
  .task-switcher .icon {
    width:17px;
    height:17px
  }
  .task-count {
    font-size:10px;
    width:18px;
    height:18px;
    min-width:18px
  }
  .task-heading>p {
    font-size:13px;
    line-height:1.6;
    margin-top:8px
  }
  .mobile-switch {
    display:flex;
    border:1px solid #dce5d2;
    border-radius:11px;
    background:#edf2e6;
    padding:4px;
    gap:4px;
    margin:18px 0
  }
  .mobile-switch button {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:7px;
    min-height:41px;
    flex:1;
    font-size:13px;
    font-weight:800;
    color:#627951;
    border-radius:7px
  }
  .mobile-switch button[aria-selected=true] {
    background:#fff;
    box-shadow:0 1px 3px #314a2520;
    color:#385c25
  }
  .mobile-switch .icon {
    height:17px;
    width:17px
  }
  .workspace-grid {
    display:block;
    margin-top:0
  }
  .workspace-grid[data-mobile-view=entry]>.reference-pane {
    display:none
  }
  .workspace-grid[data-mobile-view=reference]>.entry-pane {
    display:none
  }
  .mobile-return {
    display:flex;
    margin:15px auto 20px;
    min-width:220px
  }
  .entry-header {
    padding:18px 18px 13px;
    align-items:center
  }
  .entry-header h2 {
    font-size:20px;
    max-width:none
  }
  .entry-header .eyebrow {
    display:none
  }
  .button-hint {
    font-size:12px;
    padding:10px 11px
  }
  .entry-content {
    padding:0 18px 18px
  }
  .entry-instruction {
    font-size:14px
  }
  .journal-table-head,.journal-row,.journal-totals {
    grid-template-columns:minmax(125px,1fr) 92px 92px 25px;
    padding:12px;
    gap:8px
  }
  .journal-row select,.journal-row input {
    font-size:14px
  }
  .journal-table-head {
    font-size:12px
  }
  .journal-tools .text-button {
    font-size:12px
  }
  .entry-tools>span {
    font-size:11px
  }
  .balance-explanation {
    font-size:11px
  }
  .submit-area {
    padding:18px;
    flex-wrap:nowrap
  }
  .submit-area>span {
    order:0;
    width:auto;
    font-size:11px
  }
  .submit-area>.button {
    width:auto
  }
  .details-value {
    display:inline;
    font-size:10px
  }
  .reference-tabs button {
    font-size:14px;
    min-height:54px
  }
  .reference-tabs {
    gap:25px;
    padding:0 22px
  }
  .reference-pane [role=tabpanel] {
    padding:22px
  }
  #task-message {
    font-size:15px
  }
  .attachment strong {
    font-size:13px
  }
  .attachment small {
    font-size:12px
  }
  .reference-footer {
    font-size:12px;
    padding:16px 22px
  }
  .page-footer {
    justify-content:center;
    flex-direction:column;
    gap:2px;
    text-align:center;
    font-size:11px;
    margin:17px 0
  }
  .page-footer>.text-button {
    font-size:11px
  }
  #toast {
    left:50%;
    bottom:80px
  }
  .invoice-detail {
    font-size:14px
  }
  .document-title {
    font-size:20px
  }
  .document-note {
    font-size:12px
  }
}
@media(max-width:480px) {
  main {
    padding:21px 14px 16px
  }
  .topbar {
    padding:0 14px
  }
  .title-row h1 {
    font-size:25px;
    letter-spacing:-.65px
  }
  .title-row {
    position:relative;
    padding-right:36px
  }
  .task-switcher {
    position:absolute;
    right:0;
    top:0;
    padding:6px
  }
  .task-switcher .task-count {
    display:none
  }
  .entry-header {
    padding:17px 14px 12px;
    gap:6px
  }
  .entry-header h2 {
    font-size:18px;
    letter-spacing:-.4px
  }
  .button-hint {
    font-size:11px;
    min-height:38px;
    padding:8px
  }
  .button-hint .icon {
    width:16px;
    height:16px
  }
  .entry-content {
    padding:0 14px 17px
  }
  .entry-instruction {
    font-size:13px
  }
  .entry-details summary {
    padding:10px;
    font-size:11px
  }
  .entry-details summary small {
    font-size:9px
  }
  .details-value {
    display:none
  }
  .detail-fields {
    flex-direction:column
  }
  .detail-fields label {
    width:100%
  }
  .journal-tools {
    gap:8px
  }
  .journal-tools .text-button {
    font-size:11px;
    min-height:40px
  }
  .journal-table-head {
    display:none
  }
  .journal-row {
    position:relative;
    grid-template-columns:1fr 1fr;
    gap:10px 12px;
    padding:13px;
    border-top:1px solid #e1e8d7
  }
  .journal-row:first-child {
    border-top:0
  }
  .account-field {
    grid-column:1/-1;
    padding-right:27px
  }
  .field-caption {
    display:block;
    font-size:11px;
    color:#597049;
    font-weight:800;
    margin-bottom:5px
  }
  .journal-row select {
    font-size:15px;
    height:46px
  }
  .journal-row input {
    font-size:16px;
    padding:10px;
    height:44px
  }
  .remove-row {
    position:absolute;
    right:9px;
    top:36px;
    width:30px;
    height:36px
  }
  .remove-row .icon {
    width:16px;
    height:16px
  }
  .journal-totals {
    grid-template-columns:1fr 1fr;
    padding:12px 14px;
    gap:12px;
    font-size:13px
  }
  .journal-totals>strong:first-child {
    grid-column:1/-1;
    font-size:11px
  }
  .journal-totals>strong:nth-child(2),.journal-totals>strong:nth-child(3) {
    text-align:left;
    padding:0
  }
  .journal-totals>span:last-child {
    display:none
  }
  .mobile-total-label {
    display:block;
    font-size:10px;
    font-weight:600;
    color:#647957;
    margin-bottom:2px
  }
  .entry-tools>span {
    font-size:10px
  }
  .entry-tools .text-button {
    font-size:11px;
    min-height:40px
  }
  .balance-box {
    padding:10px;
    margin:0 0 15px
  }
  .balance-status {
    font-size:12px
  }
  .balance-explanation {
    font-size:10px;
    line-height:1.5
  }
  .description-label {
    font-size:12px
  }
  #entry-description {
    font-size:16px;
    height:45px
  }
  .submit-area {
    flex-direction:column-reverse;
    padding:17px 14px 15px;
    gap:16px
  }
  .submit-area>.button {
    width:100%;
    min-height:48px;
    font-size:14px
  }
  .submit-area>span {
    font-size:11px
  }
  .preview-badge {
    font-size:9px
  }
  .top-actions {
    gap:7px
  }
  .help-button {
    display:none
  }
  .workplace strong {
    font-size:13px
  }
  .workplace div>span {
    font-size:9px
  }
  .mobile-switch button {
    font-size:12px
  }
  .nav-item {
    font-size:9px
  }
  .mentor-panel {
    padding:10px
  }
  .mentor-heading strong {
    font-size:11px
  }
  .mentor-panel p {
    font-size:13px
  }
  .column-explanation {
    grid-template-columns:1fr
  }
  .dialog-title {
    font-size:23px
  }
  dialog {
    padding:20px
  }
  .account-line {
    font-size:12px;
    gap:8px
  }
  .account-code {
    font-size:10px
  }
  .account-line>span:last-child {
    font-size:10px;
    padding:4px
  }
  .feedback {
    padding:13px
  }
  .feedback h3 {
    font-size:15px
  }
  .feedback p {
    font-size:12px
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    transition:none!important;
    scroll-behavior:auto!important
  }
}
.optional-note {
  padding:0 12px 14px
}
.balance-box {
  margin-bottom:0
}

/* Microsoft Fluent Emoji Flat. Source and MIT notice: assets/icons/. */
.illustrated-icon {
  display: inline-block;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  object-fit: contain;
  vertical-align: middle;
}
.nav-item {
  min-height: 59px;
  gap: 11px;
}
.nav-item .illustrated-icon {
  width: 34px;
  height: 34px;
  transition: transform .18s ease;
}
.nav-item:hover .illustrated-icon {
  transform: translateY(-2px) rotate(-4deg);
}
.nav-item.active .illustrated-icon {
  filter: drop-shadow(0 2px 0 #3b542b12);
}
.entry-header h2 {
  display: flex;
  align-items: center;
  gap: 9px;
}
.journal-heading-art .illustrated-icon {
  width: 31px;
  height: 31px;
}
.button-hint .illustrated-icon {
  width: 24px;
  height: 24px;
}
.document-icon {
  background: #f1f3f8;
  padding: 7px;
}
.document-icon .illustrated-icon {
  width: 30px;
  height: 30px;
}
.reference-tabs .illustrated-icon {
  width: 21px;
  height: 21px;
}
.entry-details summary .illustrated-icon {
  width: 16px;
  height: 16px;
}
.mentor-heading .illustrated-icon {
  width: 25px;
  height: 25px;
}
.invoice-brand .illustrated-icon {
  width: 36px;
  height: 36px;
}
.achievement-preview .illustrated-icon {
  width: 54px;
  height: 54px;
}
.progress-art {
  float: right;
  margin: 5px 8px;
}
.progress-art .illustrated-icon {
  width: 64px;
  height: 64px;
}
.feedback h3 .illustrated-icon {
  width: 33px;
  height: 33px;
}
.task-art {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  border-radius: 10px;
  background: #f0f3e9;
}
.task-art .illustrated-icon {
  width: 34px;
  height: 34px;
}
.icon-credits-link {
  margin-left: 7px;
  color: #617952;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 1200px) {
  .nav-item {
    gap: 8px;
    font-size: 11px;
  }
  .nav-item .illustrated-icon {
    width: 30px;
    height: 30px;
  }
  .journal-heading-art {
    display: none;
  }
}
@media (max-width: 1050px) {
  .nav-item {
    min-height: 58px;
  }
  .nav-item .illustrated-icon {
    width: 33px;
    height: 33px;
  }
}
@media (max-width: 760px) {
  .nav-item {
    min-height: 0;
    height: 53px;
    gap: 2px;
    padding: 1px;
    font-size: 9px;
  }
  .nav-item .illustrated-icon {
    width: 27px;
    height: 27px;
  }
  .mobile-switch .illustrated-icon {
    width: 24px;
    height: 24px;
  }
  .button-hint .illustrated-icon {
    width: 22px;
    height: 22px;
  }
  .icon-credits-link {
    display: inline-block;
  }
}
@media (prefers-reduced-motion: reduce) {
  .nav-item:hover .illustrated-icon {
    transform: none;
  }
}

/* Share content and footer heights while the workspace cards sit side by side. */
@media (min-width:761px) {
  .workspace-grid {
    align-items:stretch;
    row-gap:0;
  }
  .workspace-grid > .card {
    display:flex;
    flex-direction:column;
  }
  .reference-body,.entry-body {
    flex:1;
    min-width:0;
  }
  @supports (grid-template-rows:subgrid) {
    .workspace-grid > .card {
      display:grid;
      grid-row:1 / span 2;
      grid-template-rows:subgrid;
      row-gap:0;
    }
    .reference-pane { grid-column:1; }
    .entry-pane { grid-column:2; }
  }
}

.feedback-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:16px;
}
.feedback-actions .text-button { margin-top:0; }
.answer-recap {
  margin:16px 0;
  padding:12px;
  background:#fff;
  border:1px solid #ccdfb8;
  border-radius:9px;
  font-size:13px;
}
.answer-recap > div { display:flex;justify-content:space-between;gap:12px; }
.answer-recap > div + div { margin-top:8px; }
.answer-recap dd { margin:0;font-weight:800;white-space:nowrap; }
.feedback .completion-note { margin-top:12px;font-size:12px; }
@media (max-width:480px) {
  .feedback-actions > .button { width:100%;white-space:normal; }
  #task-progress { max-width:100%; }
}

/* Session progress: clear achievements, learning outcomes, and one next step. */
dialog.progress-dialog {
  width:min(650px,calc(100% - 32px));
  max-height:90vh;
  max-height:90dvh;
  padding:0;
  overflow-y:auto;
  scrollbar-width:thin;
}
.progress-dialog .dialog-top {
  position:sticky;
  top:0;
  z-index:1;
  padding:16px 24px 10px;
  margin:0;
  background:#fff;
}
.progress-dialog .dialog-top .icon-button { min-width:40px;min-height:40px; }
.progress-content { padding:0 26px 22px; }
.progress-hero { display:flex;align-items:center;gap:22px;margin:6px 0 20px; }
.progress-hero > div { flex:1;min-width:0; }
.progress-kicker { font-size:10px;font-weight:900;letter-spacing:1.2px;color:var(--green); }
.progress-hero .dialog-title { margin:6px 0 8px;font-size:28px;max-width:330px; }
.progress-hero p { font-size:14px;line-height:1.6;color:var(--muted); }
.progress-hero-art {
  display:grid;
  place-items:center;
  width:94px;
  height:94px;
  flex-shrink:0;
  border-radius:28px;
  background:#f6f0db;
  transform:rotate(6deg);
}
.progress-hero-art .illustrated-icon { width:72px;height:72px;transform:rotate(-6deg); }
.session-stats { display:flex;align-items:center;gap:20px;padding:17px 20px;border:1px solid #dbe8cd;border-radius:14px;background:#f0f6e9; }
.session-count { display:flex;align-items:center;gap:14px;flex:1; }
.session-count > strong { font-size:44px;font-weight:900;line-height:1;color:var(--green); }
.session-count > span { font-size:14px;font-weight:800; }
.session-count small { display:block;font-size:12px;font-weight:600;color:var(--muted);margin-top:2px; }
.session-skill-count { padding-left:20px;border-left:1px solid #d6e2c9;font-size:12px;color:#5f7251; }
.session-skill-count strong { display:block;font-size:24px;line-height:1.2;font-weight:900;color:var(--green-dark); }
.progress-section { margin-top:22px; }
.progress-section-heading { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px; }
.progress-section-heading h3 { font-size:15px;font-weight:900; }
.progress-section-heading > span { font-size:9px;letter-spacing:1px;font-weight:800;color:var(--muted); }
.skill-list,.activity-list { list-style:none;padding:0;margin:0; }
.skill-list li { display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0e8; }
.skill-list li > div { flex:1;min-width:0; }
.skill-list strong { display:block;font-size:13px;font-weight:800; }
.skill-list p { font-size:12px;color:var(--muted);margin-top:2px;line-height:1.5; }
.skill-status-icon { display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#f1f3ee;color:#77816f; }
.skill-status-icon .icon { width:17px;height:17px; }
.skill-status-icon.is-practised { background:#e9f2de;color:var(--green); }
.skill-status { color:#6e7964;background:#f4f5f1;font-size:10px;font-weight:800;border-radius:6px;padding:4px 8px;white-space:nowrap; }
.skill-status.is-practised { background:#eaf3df;color:var(--green-dark); }
.progress-caption { margin-top:9px;font-size:12px;color:var(--muted); }
.activity-list li { display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px; }
.activity-list li + li { margin-top:8px; }
.activity-list li > div { flex:1;min-width:0; }
.activity-list strong,.activity-empty strong { display:block;font-size:13px;font-weight:800; }
.activity-list small { display:flex;align-items:center;gap:4px;font-size:11px;color:#526f3e;margin-top:5px; }
.activity-list small .icon { width:13px;height:13px; }
.activity-art .illustrated-icon { width:32px;height:32px; }
.activity-list .text-button { font-size:12px;min-height:40px;flex-shrink:0; }
.activity-list .text-button .icon { width:15px; }
.activity-empty { display:flex;gap:12px;align-items:center;padding:16px;border:1px dashed #d8dfce;background:#fafbf8;border-radius:12px; }
.activity-empty .illustrated-icon { width:32px;height:32px; }
.activity-empty p { font-size:12px;color:var(--muted);margin-top:4px; }
.progress-next { margin-top:22px;padding-top:18px;border-top:1px solid var(--line); }
.progress-next strong { font-size:14px;font-weight:900; }
.progress-next p { font-size:12px;color:var(--muted);margin-top:4px; }
.progress-actions { display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:14px; }
.progress-actions .text-button { font-size:12px;min-height:40px; }
.progress-storage { display:flex;align-items:flex-start;gap:7px;margin-top:20px;color:var(--muted);font-size:11px;line-height:1.6; }
.progress-storage .icon { width:14px;height:14px;margin-top:2px; }
.review-details { display:flex;flex-wrap:wrap;gap:16px 30px;margin:20px 0;font-size:13px; }
.review-details dt { font-size:11px;color:var(--muted); }
.review-details dd { margin:3px 0 0;font-weight:800;overflow-wrap:anywhere; }
.completed-entry-table { width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px; }
.completed-entry-table caption { text-align:left;font-weight:800;margin-bottom:10px; }
.completed-entry-table th,.completed-entry-table td { padding:12px 8px;border-bottom:1px solid var(--line);text-align:right; }
.completed-entry-table th:first-child { text-align:left;width:45%; }
.completed-entry-table thead { background:var(--green-light);font-size:12px; }
.completed-entry-table tbody th { font-weight:700; }
.review-description { margin-top:18px;font-size:13px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere; }
.review-description strong { display:block;margin-bottom:4px;color:var(--ink); }
.review-actions { margin-top:24px; }
@media (max-width:480px) {
  dialog.progress-dialog { width:calc(100% - 24px);max-height:92dvh; }
  .progress-dialog .dialog-top { padding:10px 16px 6px; }
  .progress-content { padding:0 16px 18px; }
  .progress-hero { gap:12px;margin-bottom:16px; }
  .progress-hero .dialog-title { font-size:23px; }
  .progress-hero p { font-size:13px; }
  .progress-hero-art { width:58px;height:64px;border-radius:18px; }
  .progress-hero-art .illustrated-icon { width:48px;height:48px; }
  .session-stats { padding:14px 12px;gap:12px; }
  .session-count { gap:9px; }
  .session-count > strong { font-size:34px; }
  .session-count > span { font-size:12px; }
  .session-skill-count { padding-left:12px;font-size:10px;max-width:84px; }
  .progress-section-heading > span { display:none; }
  .skill-list li { display:grid;grid-template-columns:28px 1fr;gap:4px 9px; }
  .skill-status-icon { width:28px;height:28px;grid-row:1 / span 2;align-self:start;margin-top:2px; }
  .skill-status { grid-column:2;justify-self:start; }
  .activity-list li { flex-wrap:wrap;gap:9px; }
  .activity-list li > div { flex-basis:calc(100% - 45px); }
  .activity-list .text-button { margin-left:41px; }
  .progress-actions { flex-direction:column;align-items:stretch;gap:6px; }
  .progress-actions .button { white-space:normal; }
  .completed-entry-table { font-size:12px; }
  .completed-entry-table th,.completed-entry-table td { padding:10px 5px; }
  .completed-entry-table thead { font-size:10px; }
}

.save-status { display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:7px;color:var(--muted);font-size:11px; }
.save-status .text-button { font-size:11px;min-height:30px;padding:2px 0; }
.save-status.save-warning { color:#8a6028; }
.activity-list small { flex-wrap:wrap; }

/* Chapter overview uses the same surfaces and spacing as saved progress. */
.task-chapter-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px; }
.task-chapter-heading h3 { font-size:15px;line-height:1.5; }
.task-chapter-heading p { margin-top:4px;font-size:12px;color:var(--muted); }
.task-chapter-heading .text-button { flex-shrink:0;font-size:12px;min-height:44px; }
.chapter-count { display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--green-light,#f1f6e9);font-size:14px; }
.chapter-count > span { flex-basis:100%;color:var(--muted);font-size:12px;margin-left:36px; }
.chapter-activity p { margin-top:7px;font-size:12px;line-height:1.6;color:var(--muted); }
.library-card > span:nth-child(2) { flex:1;min-width:0; }
.library-card > .icon { flex-shrink:0;width:18px; }
.feedback-actions > .button { white-space:normal;text-align:center; }
@media (max-width:480px) {
 .task-chapter-heading { flex-wrap:wrap;gap:4px; }
 .chapter-count { padding:12px;font-size:13px; }
 .chapter-count > span { margin-left:0; }
}

/* Contextual mentor: a focused dialog with room for the entry to remain visible. */
dialog.mentor-dialog { width:min(540px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:20px;margin:16px 16px 16px auto;overflow:auto;box-shadow:0 18px 80px #263e2833; }
.mentor-dialog::backdrop { background:#20332940;backdrop-filter:blur(2px); }
.mentor-dialog-header { display:flex;align-items:center;gap:12px;padding:20px 22px;background:white;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line); }
.mentor-dialog-header > div { flex:1;min-width:0; }
.mentor-dialog-header h2 { font-size:19px;line-height:1.3; }
.mentor-dialog-header p { font-size:11px;color:var(--muted);margin-top:5px; }
.mentor-avatar { display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#f0eafa;flex-shrink:0; }
.mentor-avatar .illustrated-icon { width:32px;height:32px; }
.mentor-task-context { display:flex;flex-direction:column;gap:5px;padding:16px 22px;background:#f7f9f3;border-bottom:1px solid var(--line); }
.mentor-task-context > span { font-size:9px;font-weight:900;letter-spacing:1.2px;color:var(--green); }
.mentor-task-context strong { font-size:14px; }
.mentor-task-context small { font-size:11px;color:var(--muted); }
.mentor-conversation { padding:18px 22px; }
#mentor-log { max-height:300px;min-height:100px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable; }
.mentor-welcome { padding:18px;border:1px solid #dfd4ed;border-radius:14px;background:#faf7ff;font-size:14px;line-height:1.7; }
.mentor-message { margin:0 8px 14px 0;border-radius:14px;padding:14px 16px;background:#f3f6ef;overflow-wrap:anywhere; }
.mentor-message.user { margin-left:40px;background:#edf2f9; }
.mentor-message strong { font-size:10px;letter-spacing:.3px;color:var(--muted); }
.mentor-message p { font-size:14px;line-height:1.75;white-space:pre-wrap;margin-top:5px; }
#mentor-busy,#mentor-error { font-size:13px;line-height:1.6;padding:10px 0;color:var(--muted); }
#mentor-error { color:#8b411c; }
.mentor-controls { padding:0 22px 18px; }
.mentor-prompts { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px; }
.mentor-prompts button { border:1px solid #cddbbf;border-bottom-width:3px;border-radius:10px;padding:9px 12px;font:800 12px 'Nunito',sans-serif;background:white;color:#4a6b36;min-height:40px; }
.mentor-prompts button:hover { background:#f3f7ed; }
.mentor-prompts button:disabled { opacity:.55;cursor:default; }
#mentor-form label { display:block;font-size:13px;font-weight:800;margin-bottom:7px; }
#mentor-question { display:block;width:100%;resize:vertical;min-height:78px;max-height:180px;border:2px solid var(--line);border-radius:12px;padding:12px;font:14px/1.6 'Nunito',sans-serif;color:var(--text);background:white; }
#mentor-question:disabled { background:#f7f8f5; }
.mentor-compose-actions { display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:10px; }
.mentor-compose-actions .button { min-height:44px;padding:10px 18px;font-size:12px; }
.mentor-status-note,.mentor-session-note { font-size:11px;line-height:1.7;color:var(--muted);margin-top:12px; }
.mentor-bottom-actions { display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;padding-top:12px;margin-top:12px;border-top:1px solid var(--line); }
.mentor-bottom-actions .text-button { font-size:12px;min-height:40px; }
.mentor-bottom-actions #mentor-return { margin-left:auto; }
@media(max-width:600px) {
 dialog.mentor-dialog { width:calc(100% - 16px);max-height:calc(100dvh - 16px);margin:8px;border-radius:16px; }
 .mentor-dialog-header { padding:16px;gap:8px; }.mentor-dialog-header h2 { font-size:16px; }
 .mentor-task-context { padding:14px 16px; }.mentor-conversation { padding:14px 16px; }.mentor-controls { padding:0 16px 16px; }
 #mentor-log { max-height:260px; }.mentor-message.user { margin-left:20px; }.mentor-message p { font-size:13px; }
 .mentor-bottom-actions #mentor-return { margin-left:0; }
}

/* Penny: original illustrated mentor, kept distinct from workplace stock portraits. */
.penny-button-portrait { width:38px;height:38px;object-fit:contain;flex-shrink:0; }
.button-hint:has(.penny-button-portrait) { padding:7px 14px;gap:7px; }
.mentor-avatar.penny-avatar { width:76px;height:76px;border-radius:22px;background:#f0eafa;overflow:hidden; }
.penny-avatar img { width:76px;height:76px;object-fit:contain; }
.penny-role { display:block;font-size:9px;letter-spacing:1px;font-weight:900;color:var(--green);margin-bottom:3px; }
.mentor-dialog-header:has(.penny-avatar) h2 { font-size:24px; }
.penny-welcome { display:flex;align-items:center;gap:12px;padding:14px 12px; }
.penny-welcome > img { flex-shrink:0;width:100px;height:112px;object-fit:contain; }
.penny-welcome h3 { font-size:18px;margin-bottom:6px; }
.penny-welcome p { font-size:13px;line-height:1.7; }
.progress-hero-art:has(.penny-celebrate) { width:124px;height:130px;background:#f0eafa; }
.penny-celebrate { width:124px;height:124px;object-fit:contain; }
.penny-chapter-note { margin:0 0 16px;padding:14px 16px;background:#faf7ff;border:1px solid #e7ddf0;border-radius:12px;font-size:13px;line-height:1.7;color:var(--muted); }
.penny-chapter-note strong { display:block;font-size:11px;color:#665179;margin-bottom:3px; }
@media(max-width:600px) {
 .mentor-avatar.penny-avatar,.penny-avatar img { width:60px;height:60px; }
 .mentor-dialog-header:has(.penny-avatar) h2 { font-size:22px; }
 .penny-role { font-size:8px;letter-spacing:.7px; }
 .penny-welcome { gap:8px;padding:12px 8px; }.penny-welcome > img { width:72px;height:96px; }
 .penny-welcome h3 { font-size:17px; }.penny-welcome p { font-size:12px; }
 .progress-hero-art:has(.penny-celebrate) { width:76px;height:90px; }.penny-celebrate { width:76px;height:90px; }
}
/* A growing practice catalogue, using the existing workspace palette. */
dialog.library-dialog { width:min(880px,calc(100% - 32px)); }
.library-filters { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px;padding:18px;background:#f7f9f3;border:1px solid #e0e6d8;border-radius:14px; }
.library-filters label,.library-toolbar label { display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:var(--ink);min-width:0; }
.library-filters .library-search { grid-column:1/-1; }
.library-filters input,.library-filters select,.library-toolbar select { width:100%;min-width:0;min-height:44px;border:1px solid #cbd7c1;border-radius:9px;background:white;padding:9px 12px;font:inherit;font-size:13px;color:var(--ink); }
.library-filters input { font-size:14px;font-weight:500; }
.library-toolbar { display:flex;align-items:center;gap:12px;margin:18px 0 8px;flex-wrap:wrap; }
.library-toolbar>p { font-size:12px;font-weight:800;color:var(--muted); }
.library-toolbar>label { flex-direction:row;align-items:center;margin-left:auto;white-space:nowrap; }
.library-toolbar select { width:auto; }
.library-toolbar .text-button { font-size:12px; }
.library-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.library-grid .practice-card { margin:0;align-items:flex-start;background:white;border-radius:14px;padding:16px;box-shadow:0 3px 0 #e7ecdf; }
.library-grid .practice-card:hover,.library-grid .practice-card.active { background:#f0f5e9; }
.practice-card .task-art { width:40px;height:40px;flex-shrink:0; }
.practice-card .library-card-meta { display:block;font-size:10px;font-weight:800;color:#66765b;margin-bottom:6px; }
.practice-card .library-description { display:block;font-size:12px;line-height:1.6;color:var(--muted);margin:7px 0; }
.practice-card small { line-height:1.6; }
.library-chapter { margin:26px 0; }
.library-chapter .task-chapter-heading { margin:0 0 12px; }
.library-empty { text-align:center;padding:35px 15px;border:1px dashed #cbd7c1;border-radius:14px;margin-top:16px; }
.library-empty>span .illustrated-icon { width:56px;height:56px; }
.library-empty h3 { font-size:18px;margin:12px 0 5px; }
.library-empty p { font-size:13px;color:var(--muted);margin-bottom:18px; }
.supporting-entry { margin-top:22px;padding-top:18px;border-top:1px solid #dde4d6; }
.supporting-entry h4 { font-size:14px;line-height:1.6; }
.supporting-entry p { font-size:12px;line-height:1.7;margin-top:10px;color:var(--muted); }
.supporting-entry .completed-entry-table { font-size:12px; }
@media(max-width:600px){
 .library-grid { grid-template-columns:1fr; }
 .library-filters { grid-template-columns:1fr;gap:10px;padding:12px; }
 .library-toolbar>label { margin-left:0; }
 dialog.library-dialog { padding:18px; }
 .library-chapter .task-chapter-heading h3 { font-size:14px; }
}
.library-filter-options { grid-column:1/-1; }
.library-filter-options summary { cursor:pointer;font-size:13px;font-weight:800;color:var(--green);padding:4px 0; }
.library-filter-fields { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
@media(min-width:601px){.library-filter-options summary { display:none; }}
@media(max-width:600px){
 .library-filter-fields { grid-template-columns:1fr;margin-top:12px; }
 .library-filters input,.library-filters select { font-size:16px; }
}
/* Detailed documents share the workspace typography, colours and rounded surfaces. */
.document-toolbar { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px;font-size:11px;color:var(--muted); }
.document-toolbar .text-button { font-size:11px;min-height:40px; }
.document-toolbar .icon { width:15px;height:15px; }
.document-reading { container-type:inline-size; }
.source-document { --doc-accent:var(--green);font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-top:4px solid var(--doc-accent);border-radius:var(--radius);padding:20px;box-shadow:0 3px 0 #e9eee1;font-size:13px;line-height:1.65;overflow-wrap:anywhere; }
.doc-masthead { display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:18px; }
.doc-masthead strong { font-size:17px;font-weight:900;letter-spacing:-.2px; }
.doc-brand-mark { background:var(--green-light);color:var(--green-dark);font-weight:900;font-size:14px;width:40px;height:40px;flex-shrink:0;border-radius:12px;display:grid;place-items:center; }
.source-document address { font-style:normal;color:var(--muted);font-size:12px;margin-top:4px; }
.doc-heading { padding-top:20px; }
.doc-type { font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--doc-accent); }
.doc-heading h3 { margin:5px 0 12px;font-size:23px;line-height:1.3;font-weight:900; }
.doc-status { display:inline-block;background:var(--green-light);color:var(--green-dark);font-size:11px;font-weight:800;padding:6px 10px;border-radius:8px; }
.doc-status.is-unpaid { background:#fcf3df;color:#795b24; }
.doc-identifiers { display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line); }
.doc-identifiers dt,.doc-parties h4 { color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.6px;font-weight:600; }
.doc-identifiers dd { margin-top:3px;font-weight:700;font-variant-numeric:tabular-nums; }
.doc-parties { padding:17px 0; }.doc-parties h4 { margin-bottom:5px; }
.doc-fields { padding:12px;background:var(--canvas);border:1px solid var(--line);border-radius:12px; }
.doc-fields>div { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:12px;padding:4px 0; }
.doc-fields dt { font-size:10px;color:var(--muted); }.doc-fields dd { font-size:12px;text-align:right; }
.doc-lines { position:relative;width:100%;border-collapse:collapse;margin-top:22px;font-size:12px; }
.doc-lines caption { text-align:left;font-size:10px;font-weight:700;color:var(--muted);padding-bottom:9px; }
.doc-lines thead { background:var(--green-light); }
.doc-lines th,.doc-lines td { padding:10px 6px;border-bottom:1px solid var(--line);text-align:right;vertical-align:top; }
.doc-lines th:first-child { text-align:left; }.doc-lines tbody th { font-weight:400; }.doc-lines td { white-space:nowrap;font-variant-numeric:tabular-nums; }
.doc-cell-label { display:none; }.doc-unit { font-size:11px;color:var(--muted); }
.doc-totals { margin:14px 0 0 auto;max-width:290px;font-variant-numeric:tabular-nums; }
.doc-totals>div { display:flex;justify-content:space-between;gap:18px;padding:6px 0; }.doc-totals dd { text-align:right; }
.doc-totals .doc-grand-total { border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:19px;font-weight:900;margin:5px 0;color:var(--doc-accent); }
.doc-balance { font-weight:700; }
.doc-transfer { padding:22px 16px;background:var(--green-light);border:1px solid var(--line);border-radius:12px;margin-top:20px; }
.doc-transfer>span { display:block;font-size:11px;color:var(--muted); }.doc-transfer>strong { display:block;font-size:32px;font-weight:900;letter-spacing:-1px;color:var(--doc-accent);margin:4px 0 12px; }.doc-transfer p { font-size:12px; }.doc-transfer small { display:block;margin-top:12px;font-size:10px;color:var(--muted); }
.doc-terms { margin-top:20px;border-top:1px solid var(--line);padding-top:15px; }.doc-terms h4 { font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px; }.doc-terms p { font-size:12px;color:var(--muted); }
.doc-footer { display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:24px;padding-top:12px;color:var(--muted);font-size:9px; }
.doc-practice-note { font-size:11px;color:var(--muted);line-height:1.7;margin-top:16px; }
.doc-reading-tip { margin-top:14px;border:1px solid #e2d9ec;background:#faf7fd;border-radius:9px;padding:12px; }.doc-reading-tip summary { cursor:pointer;font-size:12px;font-weight:800;color:#6a4e83; }.doc-reading-tip p { font-size:12px;line-height:1.7;margin-top:10px; }
.document-review { padding:18px;background:var(--canvas);border:1px solid var(--line);border-radius:12px; }.doc-review-label { font-size:10px;color:var(--muted);font-weight:800;letter-spacing:.6px;margin-bottom:8px; }
.document-dialog { width:min(790px,calc(100% - 24px));background:var(--canvas); }.document-dialog .source-document { padding:34px; }.document-dialog .doc-masthead strong { font-size:21px; }
@container(max-width:400px){
 .source-document { padding:14px; }.doc-heading h3 { font-size:20px; }.doc-brand-mark { width:32px;height:32px;font-size:11px; }
 .doc-lines thead { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
 .doc-lines tbody tr { display:grid;grid-template-columns:1fr 1fr;gap:0 10px;border-bottom:1px solid var(--line);padding:8px 0; }
 .doc-lines tbody th { grid-column:1/-1;padding:0 0 8px; }.doc-lines th,.doc-lines td { border:0; }.doc-lines td { padding:3px 0;text-align:left;white-space:normal; }.doc-lines td:last-child { grid-column:1/-1;text-align:right; }
 .doc-cell-label { display:inline;font-size:9px;color:var(--muted);margin-right:4px; }.doc-totals { max-width:none; }
 .doc-footer { flex-direction:column;gap:3px; }.document-dialog .source-document { padding:14px; }.document-dialog .doc-masthead strong { font-size:17px; }
}
.source-document dd { margin-inline-start:0; }
.document-dialog .doc-fields dt,.document-dialog .doc-fields dd,.document-dialog .doc-lines,.document-dialog .source-document address { font-size:12px; }
.document-dialog .dialog-top { position:sticky;top:0;z-index:2;background:var(--canvas);padding:8px 0; }
/* Original fictional-company marks share one rounded illustration family. */
.company-mark { position:relative;display:inline-grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:12px;background:var(--green-light);color:var(--green-dark);font-weight:900;font-size:12px;vertical-align:middle; }
.company-mark>span { position:absolute;inset:0;display:grid;place-items:center; }
.company-mark.has-artwork>span { visibility:hidden; }
.company-mark>img { position:relative;display:block;width:100%;height:100%;border-radius:inherit; }
.company-mark>img[hidden] { display:none; }
#workplace-brand { display:flex;flex-shrink:0; }
#workplace-brand .company-mark { width:48px;height:48px;border-radius:14px; }
.doc-masthead>.company-mark { width:48px;height:48px; }
.doc-masthead>div,.doc-party-identity>div { min-width:0; }
.doc-party-identity { display:flex;align-items:flex-start;gap:10px; }
.doc-party-identity .company-mark { width:32px;height:32px;border-radius:9px;font-size:10px; }
.doc-company-value { display:inline-flex;align-items:center;justify-content:flex-end;gap:7px; }
.doc-company-value .company-mark { width:24px;height:24px;border-radius:7px;font-size:9px; }
.doc-review-label { display:flex;align-items:center;gap:9px; }
.doc-review-label .company-mark { width:28px;height:28px;border-radius:8px; }
.chapter-company-heading { display:flex;align-items:center;gap:12px;min-width:0; }
.chapter-company-heading>div { min-width:0; }
.progress-hero-art>.company-mark { width:80px;height:80px;border-radius:22px; }
.company-gallery { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px; }
.company-gallery>div { display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-size:12px; }
@media(max-width:600px){
 .company-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .chapter-company-heading { gap:9px; }.chapter-company-heading>.company-mark { width:32px;height:32px; }
 .progress-hero-art>.company-mark { width:56px;height:56px;border-radius:16px; }
}
@container(max-width:400px){.doc-masthead>.company-mark { width:40px;height:40px; }}

/* Keep reference tabs the same height: documents scroll within the brief's space. */
.reference-body {
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  min-height:0;
}
.reference-body > [role=tabpanel] { grid-area:2 / 1; min-width:0; }
/* Retain the brief's intrinsic height without exposing its hidden controls. */
#panel-brief[hidden] { display:block !important; visibility:hidden; }
#panel-document:not([hidden]) {
  display:flex;
  flex-direction:column;
  min-height:0;
  contain:size;
  overflow:hidden;
}
#panel-document .document-toolbar,
#panel-document .back-brief { flex-shrink:0; }
#document-content {
  flex:1;
  min-height:0;
  overflow-y:auto;
  scrollbar-gutter:stable;
  overscroll-behavior-y:contain;
  padding:3px 4px 6px 0;
}
#document-content:focus-visible { outline:3px solid #6c95df; outline-offset:2px; }
#panel-brief:focus-visible { outline:3px solid #6c95df; outline-offset:-4px; }
@media (max-width:760px) {
  #panel-brief {
    max-height:clamp(360px,65dvh,640px);
    overflow-y:auto;
    overscroll-behavior-y:contain;
  }
}

/* Guided bank reconciliation: one task, three revisitable steps. */
.recon-steps { display:flex;gap:8px;margin:0 0 24px; }
.recon-steps button { flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 8px;border:1px solid var(--line);border-bottom-width:3px;border-radius:12px;font-weight:800;color:var(--muted);font-size:13px; }
.recon-steps button span { display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--canvas); }
.recon-steps button[aria-current] { background:var(--green-light);color:var(--green-dark);border-color:#a8c68f; }
.recon-steps button[aria-current] span { background:var(--green);color:white; }
#recon-matching h3,#recon-adjust-heading,#recon-balances h3 { font-size:20px;margin-bottom:10px; }
.recon-intro { color:var(--muted);font-size:14px;line-height:1.75;margin-bottom:18px; }
.recon-book-reference { border:1px solid var(--line);border-radius:12px;background:var(--canvas);margin-bottom:18px;padding:12px; }
.recon-book-reference summary { cursor:pointer;font-weight:800;font-size:13px; }
.recon-matches { display:grid;gap:12px; }
.recon-match { display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px; }
.recon-match strong { display:block;font-size:14px; }
.recon-match small { display:block;color:var(--muted);font-size:12px;margin-top:3px; }
.recon-match select,.recon-field select,.recon-field input { width:100%;min-width:0;min-height:46px;border:2px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:13px;padding:10px; }
.recon-field { display:grid;gap:8px;font-size:14px;font-weight:800;margin-top:20px; }
.recon-caption { color:var(--muted);font-size:12px;line-height:1.7;margin-top:10px; }
.recon-balance-card { display:flex;flex-direction:column;background:var(--canvas);border:1px solid var(--line);border-radius:14px;padding:20px;margin-top:16px; }
.recon-balance-card .recon-field { margin-top:auto;padding-top:20px; }
.recon-balance-card h4 { margin:0 0 8px;font-size:16px; }
.recon-balance-card p { color:var(--muted);font-size:14px;line-height:1.7; }
.recon-balance-card p+p { margin-top:8px; }
#recon-navigation { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:24px; }
#recon-step-note { color:var(--muted);font-size:12px; }
.recon-documents { display:grid;gap:20px; }
.recon-ledger { list-style:none;margin:18px 0;padding:0; }
.recon-ledger li { display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px; }
.recon-ledger li>div { min-width:0; }
.recon-ledger li>div:last-child { text-align:right; }
.recon-ledger strong,.recon-ledger small { display:block;overflow-wrap:anywhere; }
.recon-ledger small { color:var(--muted);font-size:11px;margin-top:3px; }
.recon-document-note { font-size:12px;color:var(--muted);line-height:1.7;margin-top:14px; }
.recon-review { margin:20px 0; }.recon-review .review-details { display:block; }.recon-review .review-details>div { margin:10px 0; }.recon-review dd { overflow-wrap:anywhere; }
@media(max-width:760px){.recon-steps { gap:5px; }.recon-steps button { font-size:11px;padding:9px 5px;gap:5px; }.recon-steps button span { width:20px;height:20px; }.recon-match { padding:12px; }.recon-balance-card { padding:15px; }}

@media(min-width:1201px){
 .recon-match { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:14px; }
 #recon-balances:not([hidden]) { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
 #recon-balances>h3,#recon-balances>.recon-intro,#recon-balances>.recon-caption { grid-column:1 / -1;margin:0; }
 #recon-balances>.recon-balance-card { margin:0; }
}

/* Evidence-led review of authored automated drafts. */
.automation-intro { margin-bottom:20px; }
.automation-tag { display:inline-block;color:var(--green-dark);background:var(--green-light);border-radius:8px;padding:5px 9px;font-size:11px;font-weight:900;letter-spacing:.05em; }
.automation-intro p { margin:10px 0;color:var(--muted);font-size:14px;line-height:1.7; }
.automation-draft { border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--canvas); }
.automation-draft-header { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.automation-draft-header h3 { font-size:18px; }
.automation-draft-header span { font-size:12px;color:var(--muted);white-space:nowrap; }
.automation-draft-meta { font-size:12px;color:var(--muted);margin-top:6px; }
.automation-draft .completed-entry-table { margin:14px 0;table-layout:fixed; }
.automation-draft th:first-child { width:50%; }
.automation-draft th,.automation-draft td { overflow-wrap:anywhere; }
.automation-explanation { border-top:1px solid var(--line);padding-top:14px;font-size:13px;line-height:1.7; }
.automation-explanation p { margin:5px 0;color:var(--muted); }
.automation-explanation small { color:var(--muted); }
.automation-decisions,.automation-reasons { border:0;padding:0;margin:24px 0 0;min-width:0; }
.automation-decisions legend,.automation-reasons legend { font-size:16px;font-weight:900;margin-bottom:12px; }
.automation-decisions label,.automation-reasons label { display:flex;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:8px;cursor:pointer;font-size:14px;line-height:1.5; }
.automation-decisions label:has(:checked),.automation-reasons label:has(:checked) { background:var(--green-light);border-color:var(--green); }
.automation-decisions label:focus-within,.automation-reasons label:focus-within { outline:2px solid var(--green);outline-offset:2px; }
.automation-decisions input,.automation-reasons input { flex:0 0 auto;width:18px;height:18px;accent-color:var(--green);margin-top:2px; }
.automation-decisions strong,.automation-decisions small { display:block; }
.automation-decisions small { font-size:12px;color:var(--muted);margin-top:3px; }
#automation-correction-heading { font-size:18px;margin:24px 0 10px; }
.automation-evidence { margin:20px 0; }
.automation-evidence .review-details { display:block; }
.automation-evidence .review-details>div { margin:12px 0; }
.automation-evidence dd { overflow-wrap:anywhere; }
@media(max-width:760px){.automation-draft { padding:14px; }.automation-draft .completed-entry-table th,.automation-draft .completed-entry-table td { padding:10px 5px;font-size:12px; }}

@media(min-width:1201px){.automation-decision-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }.automation-decision-options label { margin:0;padding:12px;gap:8px; }}

/* Learner home: one next step, with optional practice and progress nearby. */
#dashboard-view { max-width:1220px;margin:0 auto; }
.dashboard-topbar { display:flex;align-items:center;gap:12px; }
.dashboard-topbar>.icon { color:var(--green);width:32px;height:32px; }
.dashboard-topbar strong,.dashboard-topbar small { display:block; }
.dashboard-topbar strong { font-weight:900; }.dashboard-topbar small { color:var(--muted);font-size:12px; }
.topbar-xp { display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:10px;background:var(--green-light);color:var(--green-dark);padding:7px 12px;font-weight:900;font-size:13px;white-space:nowrap; }
.dashboard-heading { display:flex;align-items:center;justify-content:space-between;gap:24px;margin:6px 0 28px; }
.dashboard-heading h1 { margin:8px 0;font-size:30px;line-height:1.25;font-weight:900;letter-spacing:-.6px; }
.dashboard-heading p { color:var(--muted);font-size:15px; }
.dashboard-heading>.button { flex-shrink:0; }
.dashboard-card { border:1px solid var(--line);border-radius:20px;padding:26px;background:white;box-shadow:0 3px 0 #e6ebdf;min-width:0; }
.dashboard-card h2 { font-size:21px;line-height:1.3;font-weight:900; }
.dashboard-main-grid { display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:22px; }
.dashboard-continue { display:flex;flex-direction:column;align-items:stretch;position:relative;background:#edf4e6;gap:20px; }
.dashboard-continue-copy { flex:1;min-width:0;position:relative;z-index:1; }
.dashboard-kicker,.dashboard-section-label { font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--green-dark); }
.dashboard-company { display:flex;align-items:center;gap:10px;margin:24px 0 16px; }
.dashboard-company .company-mark { width:44px;height:44px;flex:0 0 44px; }
.dashboard-company>span { font-size:12px;font-weight:800; }.dashboard-company small { display:block;color:var(--muted);font-weight:600;margin-top:3px; }
.dashboard-continue h2 { font-size:26px;max-width:420px; }
.dashboard-continue-copy>p { margin:12px 0;color:var(--muted);font-size:14px;line-height:1.75;max-width:390px; }
.dashboard-task-meta { display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted);margin:12px 0 20px; }
.dashboard-task-meta .icon { width:16px;height:16px; }
.dashboard-mentor { display:flex;align-items:center;justify-content:flex-end;gap:16px; }
.dashboard-mentor-message { position:relative;background:#fff;border:1px solid #d5e3c9;border-radius:16px;padding:12px 16px;color:var(--ink);font-size:14px;line-height:1.5;max-width:260px; }
.dashboard-mentor-message::after { content:"";position:absolute;right:-6px;top:50%;width:10px;height:10px;background:#fff;border-top:1px solid #d5e3c9;border-right:1px solid #d5e3c9;transform:translateY(-50%) rotate(45deg); }
.dashboard-mentor-message span { display:block;font-size:11px;font-weight:800;color:var(--green);margin-bottom:4px; }
.dashboard-penny { flex:0 0 96px;width:96px;height:96px;object-fit:contain; }
.dashboard-section-label { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px; }
.dashboard-section-label .illustrated-icon { width:36px;height:36px; }
.dashboard-career h2 { font-size:23px; }
.dashboard-rank-label { color:var(--muted);font-size:12px;margin-top:4px; }
.dashboard-xp { display:flex;align-items:baseline;gap:8px;margin:16px 0 10px; }.dashboard-xp strong { font-size:36px;font-weight:900;line-height:1.1;color:var(--green-dark); }.dashboard-xp span { font-size:13px;color:var(--muted); }
.dashboard-level-progress label,.dashboard-level-progress p { font-size:12px;color:var(--muted);display:block; }
.dashboard-level-progress progress { display:block;width:100%;height:12px;appearance:none;border:0;border-radius:20px;overflow:hidden;margin:8px 0;background:#e7ecdf; }
.dashboard-level-progress progress::-webkit-progress-bar { background:#e7ecdf;border-radius:20px; }
.dashboard-level-progress progress::-webkit-progress-value { background:var(--green);border-radius:20px; }
.dashboard-level-progress progress::-moz-progress-bar { background:var(--green);border-radius:20px; }
.dashboard-career-stats { display:flex;border-top:1px solid var(--line);margin-top:18px;padding-top:14px;gap:26px; }
.dashboard-career-stats strong { display:block;font-size:22px;font-weight:900; }.dashboard-career-stats span { font-size:11px;color:var(--muted); }
.dashboard-career>.text-button { margin-top:16px; }
.dashboard-secondary-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:22px;margin-top:24px; }
.dashboard-small { color:var(--muted);font-size:12px;line-height:1.7; }
.dashboard-daily h2 { margin:16px 0 10px; }.dashboard-daily>p:not(.dashboard-small) { font-size:14px;color:var(--muted);line-height:1.7; }.daily-note { margin-top:18px; }
.dashboard-section-heading { display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px; }
.dashboard-section-heading .text-button { flex-shrink:0; }
.dashboard-section-heading h2 { margin-bottom:4px; }
.dashboard-recent-item { display:flex;align-items:center;text-align:left;gap:14px;width:100%;padding:17px 0;border-top:1px solid var(--line); }
.dashboard-recent-item:hover { background:var(--canvas); }
.dashboard-recent-item>span:nth-child(2) { flex:1;min-width:0; }
.dashboard-recent-item strong { display:block;font-size:14px;font-weight:800; }.dashboard-recent-item small { display:block;font-size:12px;color:var(--muted);margin-top:3px; }
.dashboard-item-art { flex:0 0 42px;display:grid;place-items:center;width:42px;height:48px;border-radius:12px;background:var(--canvas); }.dashboard-item-art .illustrated-icon { width:30px;height:30px; }
.dashboard-skills { margin-top:24px; }
.dashboard-skill-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;margin:0 0 16px; }
.dashboard-skill { display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:16px 0;min-width:0; }
.dashboard-skill>div { flex:1;min-width:0; }.dashboard-skill h3 { font-size:14px;font-weight:800; }.dashboard-skill p { color:var(--muted);font-size:12px;margin-top:3px; }
.dashboard-skill .text-button { font-size:12px;flex-shrink:0; }
.dashboard-skill .skill-status-icon { flex:0 0 32px;width:32px;height:32px; }
.dashboard-storage { display:flex;align-items:center;gap:10px;margin:26px 0 8px;font-size:12px;color:var(--muted); }.dashboard-storage span { flex:1; }
.completion-xp,.progress-xp { display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;font-weight:800;color:var(--green-dark);margin:16px 0; }
.completion-xp .illustrated-icon,.progress-xp .illustrated-icon { width:28px;height:28px; }
.career-level-list { list-style:none;padding:0;margin:24px 0; }
.career-level-list li { display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:14px;margin-bottom:10px; }.career-level-list li.is-current { background:var(--green-light);border-color:var(--green); }
.career-level-list li>div { flex:1; }.career-level-list small { display:block;color:var(--muted);margin-top:4px; }.career-level-list li>span:last-child { color:var(--muted);font-size:12px; }
@media(max-width:1200px){.dashboard-main-grid { grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr); }.dashboard-card { padding:22px; }.dashboard-heading h1 { font-size:26px; }}
@media(max-width:850px){.dashboard-main-grid,.dashboard-secondary-grid { grid-template-columns:1fr; }.dashboard-heading { align-items:flex-start; }.dashboard-heading>.button { font-size:12px;padding:12px; }}
@media(max-width:760px){.dashboard-heading { display:block;margin-bottom:22px; }.dashboard-heading>.button { margin-top:18px; }.dashboard-heading h1 { font-size:26px; }.dashboard-heading p { font-size:14px; }.dashboard-card { padding:20px;border-radius:16px; }.dashboard-continue h2 { font-size:23px; }.dashboard-penny { flex-basis:72px;width:72px;height:72px; }.dashboard-mentor { gap:12px; }.dashboard-mentor-message { font-size:13px;padding:10px 12px; }.dashboard-skill-grid { grid-template-columns:1fr; }.dashboard-section-heading { align-items:flex-start; }.dashboard-section-heading h2 { font-size:19px; }.dashboard-storage { align-items:flex-start;flex-wrap:wrap; }.topbar-xp { font-size:11px;padding:6px 8px; }.dashboard-topbar { gap:8px; }.dashboard-topbar strong { font-size:14px; }.dashboard-topbar small { font-size:11px; }.dashboard-topbar>.icon { width:25px; }.sidebar nav { gap:1px; }.nav-item { min-width:0;flex-basis:0;white-space:normal; }.nav-item>span:last-child { font-size:8px;text-align:center; }.top-actions { gap:7px; }}
@media(max-width:400px){.dashboard-penny { flex-basis:60px;width:60px;height:60px; }.dashboard-section-heading { flex-wrap:wrap;gap:8px; }.dashboard-career-stats { gap:20px; }.dashboard-skill { gap:8px; }.dashboard-skill h3 { font-size:13px; }.dashboard-skill .text-button { font-size:11px; }.topbar:has(.workplace:not([hidden])) .topbar-xp { display:none; }}

/* Month-end report reading and interpretation */
.report-intro { color:var(--muted);line-height:1.7;margin-bottom:24px; }
.report-intro .button { margin-top:14px; }
.report-amounts { border:0;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.report-amounts legend,.report-explanations legend { font-weight:800;margin-bottom:16px;color:var(--ink); }
.report-amounts label { display:flex;flex-direction:column;justify-content:space-between;gap:10px;font-size:13px;font-weight:800; }
.report-amounts input { min-width:0;width:100%;border:2px solid var(--line);border-radius:12px;padding:12px;background:#fff;color:var(--ink);font-size:16px; }
.report-amounts>p { grid-column:1/-1; }
.month-report-intro { color:var(--muted);margin:16px 0; }
.month-report-scroll { overflow-x:auto;margin:20px 0; }
.month-report-table { width:100%;border-collapse:collapse;font-size:12px; }
.month-report-table caption { text-align:left;font-weight:900;font-size:14px;margin-bottom:10px; }
.month-report-table th,.month-report-table td { padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top;text-align:right; }
.month-report-table th:first-child { text-align:left; }
.month-report-table td { white-space:nowrap;font-variant-numeric:tabular-nums; }
.month-report-table thead,.month-report-total { background:var(--green-light);font-weight:800; }
@media(max-width:1100px){.report-amounts { grid-template-columns:1fr; }}
@media(max-width:600px){.month-report-table { font-size:11px; }.month-report-table th,.month-report-table td { padding:8px 4px; }}

/* Shared Fluent Flat learning cues and level-specific XP medals. */
.skill-status-icon,.skill-status-icon.is-practised { background:transparent; }
.skill-status-icon .illustrated-icon { width:30px;height:30px; }
.topbar-xp .illustrated-icon { width:28px;height:28px;flex-shrink:0; }
@media(max-width:760px){.topbar-xp { gap:5px; }.topbar-xp .illustrated-icon { width:24px;height:24px; }}

/* Journal follow-up: separate the outstanding balance from transaction lines. */
.remaining-balance-check{margin:24px 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--canvas)}
.remaining-balance-check h3{margin:0 0 10px;font-size:18px}
.remaining-balance-check p{margin:0 0 18px;line-height:1.6;color:var(--muted)}
.remaining-balance-check label{display:block;font-weight:800;margin-bottom:10px}
.remaining-balance-check input{width:100%;max-width:320px;min-height:48px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:#fff;color:inherit;font:inherit}
.remaining-balance-check input.field-invalid{border-color:#a94b37}
.document-packet>h3{margin:24px 0 12px;font-size:18px}
.document-packet>h3:first-child{margin-top:0}

/* Account work combines a journal, balances and an evidence-based explanation. */
#account-review-workspace{border-top:1px solid var(--line);margin-top:26px;padding-top:24px}
.account-review-heading h3{font-size:19px;margin:0 0 8px}.account-review-heading p{color:var(--muted);line-height:1.6;margin-bottom:10px}
.account-review-amounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}
.account-review-amounts label{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;font-weight:800;min-width:0}
.account-review-amounts input{width:100%;min-width:0;min-height:48px;border:2px solid var(--line);border-radius:12px;padding:12px;background:white;color:var(--ink);font:inherit}
.account-review-amounts input.field-invalid{border-color:#a94b37}
.account-source{margin-bottom:20px}.account-source>p{margin:16px 0}.account-source-scroll{overflow:auto;max-width:100%;margin:14px 0}.account-source-scroll table{min-width:310px}.account-source-scroll td:last-child{white-space:nowrap}
@media(max-width:600px){.account-review-amounts{grid-template-columns:1fr}}
/* A readable learning route without adding another sidebar item. */
.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.library-path-link{margin-bottom:16px}
.learning-path-dialog{width:min(900px,calc(100% - 24px))}.path-heading>p,.path-card>p{color:var(--muted);line-height:1.7}.path-heading .eyebrow{font-size:11px}
.path-workplaces{list-style:none;padding:0;margin:30px 0}.path-workplace{display:grid;grid-template-columns:42px minmax(0,1fr);gap:18px;position:relative;padding-bottom:26px}.path-stage{border:2px solid var(--line);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-weight:900;color:var(--green-dark);background:var(--green-light)}
.path-workplace:not(:last-child):before{content:'';position:absolute;top:44px;left:20px;width:2px;bottom:0;background:var(--line)}
.path-card{border:1px solid var(--line);border-radius:20px;padding:26px;background:#fff;box-shadow:0 3px 0 #e9eee1}.path-card-heading{display:flex;align-items:center;gap:16px;margin-bottom:22px}.path-card-heading>.company-mark{width:58px;height:58px}.path-card h3{font-size:24px;margin:3px 0}.path-card-heading p{font-size:13px;color:var(--muted)}.path-status{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:900;color:var(--green-dark)}.path-card h4{font-size:19px;margin:0 0 12px}
.path-topics{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:18px 0;padding:0}.path-topics li{border-radius:8px;padding:7px 10px;background:var(--canvas);font-size:12px;font-weight:700}.path-preparation,.path-footnote{font-size:13px;color:var(--muted);line-height:1.7}.path-progress{margin:20px 0}.path-progress label{display:block;font-size:13px;font-weight:800;margin-bottom:8px}.path-progress progress{width:100%;height:12px;accent-color:var(--green)}
.path-chapters{margin:20px 0}.path-chapter{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;text-align:left;border-top:1px solid var(--line)}.path-chapter strong,.path-chapter small{display:block}.path-chapter small{color:var(--muted);margin-top:4px}.path-chapter .illustrated-icon{width:28px;height:28px}.is-planned .path-card{background:var(--canvas);box-shadow:none}.is-planned .path-stage{background:#f1f2ee;color:var(--muted)}.is-planned .path-status{color:var(--muted)}
@media(max-width:600px){.dashboard-heading-actions{align-items:stretch}.path-workplace{grid-template-columns:28px minmax(0,1fr);gap:8px}.path-stage{width:28px;height:28px;font-size:11px}.path-workplace:not(:last-child):before{left:13px;top:30px}.path-card{padding:16px}.path-card-heading{gap:10px}.path-card-heading>.company-mark{width:40px;height:40px}.path-card h3{font-size:20px}.path-card .button{width:100%;white-space:normal}.path-heading .eyebrow{line-height:1.7}}

.path-chapter-details{margin:16px 0 22px}.path-chapter-details>summary{font-weight:800;color:var(--green-dark);cursor:pointer;padding:10px 0}.path-chapter-details .path-preparation{margin:8px 0}.learning-path-dialog .dialog-top{position:sticky;top:0;background:white;z-index:3;padding:8px 0 14px}

/* Frame Sam’s face within the same circular portrait used for colleagues. */
.person-avatar img[src$="/sam-reed.jpg"] { transform: scale(2.4); transform-origin: 50% 6%; }

.trial-draft{border:1px solid var(--line);border-radius:14px;padding:16px;margin:18px 0;background:var(--paper,#fff)}
.trial-draft summary{cursor:pointer;font-weight:800;color:var(--ink)}
.trial-draft p{color:var(--muted);line-height:1.6;font-size:14px;margin:12px 0 0}

.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.dashboard-topbar>.brand-logo{width:36px;height:36px;object-fit:contain;flex-shrink:0}
@media(max-width:760px){.dashboard-topbar>.brand-logo{width:30px;height:30px}}

/* Separate journals retain the existing rounded form controls. */
.recon-adjustment{border:1px solid var(--line);border-radius:16px;padding:20px;margin:20px 0;background:var(--white,#fff)}
.recon-adjustment h4{font-size:18px;margin:0 0 8px}.recon-adjustment>p{color:var(--muted);line-height:1.6}
.recon-adjust-details{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
.recon-adjustment label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:800;min-width:0}
.recon-adjustment input,.recon-adjustment select{width:100%;min-width:0;min-height:46px;border:2px solid var(--line);border-radius:10px;padding:10px;background:#fff;color:var(--ink);font:inherit}
.recon-adjustment .field-invalid{border-color:#a94b37}
.recon-adjust-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:12px;padding:16px 0;border-top:1px solid var(--line)}
#recon-balances>.automation-reasons{grid-column:1 / -1;min-width:0}
@media(max-width:600px){.recon-adjustment{padding:14px}.recon-adjust-details{grid-template-columns:1fr}.recon-adjust-row{grid-template-columns:1fr 1fr}.recon-adjust-row>label:first-child{grid-column:1 / -1}}

#account-review-workspace.is-staged{border-top:0;margin-top:0;padding-top:0}
.accrual-policy{padding-left:22px;line-height:1.7}.accrual-policy li+li{margin-top:10px}

.duplicate-bill{border-top:1px solid var(--line);padding:20px 0}.duplicate-bill h4{font-size:16px}.duplicate-matches small{color:var(--muted)}
@media(min-width:1201px){.automation-decision-options.has-four-options{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Bank-rule review uses the existing rounded forms and document palette. */
.bank-rule-transactions .bank-rule-transaction{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.85fr);gap:18px;align-items:end;padding:18px 0;border-bottom:1px solid var(--line)}
.bank-rule-transaction>div{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}
.bank-rule-transaction small{color:var(--muted)}
.bank-rule-transactions .bank-rule-transaction label{display:grid;gap:8px;padding:0;border:0;background:transparent;font-weight:800;min-width:0}
.bank-rule-transaction select{width:100%;min-height:46px;border:2px solid var(--line);border-radius:12px;background:white;color:var(--ink);font:inherit;font-weight:700;padding:10px}
.bank-rule-preview{background:var(--surface-soft,#f5f7f0);border:1px solid var(--line);border-radius:16px;padding:20px;margin:22px 0}
.bank-rule-preview h3{margin:0 0 10px}
.bank-rule-preview ul{padding:0;list-style:none}
.bank-rule-preview li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
@media(max-width:700px){.bank-rule-transactions .bank-rule-transaction{grid-template-columns:minmax(0,1fr)}.bank-rule-preview{padding:14px}.bank-rule-preview li{grid-template-columns:minmax(0,1fr);gap:3px}}

/* Checkpoint stages stay compact; source packets keep the existing internal scroll. */
.checkpoint-intro{padding:2px 0 20px;border-bottom:1px solid var(--line)}
.checkpoint-eyebrow{display:block;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.checkpoint-intro .checkpoint-description{font-size:15px;line-height:1.55;margin:0 0 6px;max-width:56ch}
.checkpoint-intro .checkpoint-meta{color:var(--muted);font-size:12px;line-height:1.6;margin:0}
.checkpoint-tools{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-top:18px}
#checkpoint-mode{display:inline-flex;align-items:center;font-size:12px;font-weight:800;line-height:1.5;color:var(--green-dark);background:var(--green-light);padding:6px 10px;border-radius:8px}
.checkpoint-tools .text-button{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:12px}
.checkpoint-document-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid var(--line);border-radius:7px;font-size:11px}
.checkpoint-info{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.65}
.checkpoint-info summary{width:fit-content;padding:6px 0;cursor:pointer;font-weight:700}
.checkpoint-info summary:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}
.checkpoint-info>div{max-width:65ch;padding-top:4px}
.checkpoint-info p{margin:0 0 8px;font-size:12px;line-height:1.65}
.checkpoint-steps{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 24px}
.checkpoint-steps button{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:white;color:var(--muted);border-radius:12px;padding:10px 12px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.checkpoint-steps button[aria-current=step]{border-color:var(--green);background:var(--green-light);color:var(--green-dark)}
.checkpoint-steps button span{display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:22px;height:22px;flex-shrink:0}
.checkpoint-navigation{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;font-size:13px;color:var(--muted)}
.automation-reasons label.checkpoint-match{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.checkpoint-match select{min-width:0;width:100%;padding:12px;border:2px solid var(--line);border-radius:12px;background:white;font:inherit;color:var(--ink)}
[data-checkpoint-stage] h3:focus{outline:2px solid var(--green);outline-offset:5px}
@media(max-width:600px){.checkpoint-steps button{flex:1 1 45%;justify-content:flex-start}.checkpoint-navigation{align-items:flex-start;flex-direction:column}}

/* Activity rewards and future career requirements have distinct meanings. */
.dashboard-complete-art { margin:22px 0 16px; }
.dashboard-complete-art .illustrated-icon { width:44px;height:44px; }
.dashboard-revision-actions { display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px; }
.dashboard-continue-copy>.dashboard-release-note { font-size:12px;margin-top:20px; }
.dashboard-career-note { font-size:12px;line-height:1.65;color:var(--muted);margin-top:18px; }
.career-path { border-top:1px solid var(--line);padding-top:24px;margin-top:24px; }
.career-path h3 { font-size:20px;font-weight:900; }
.career-path>p { color:var(--muted);line-height:1.7;margin:12px 0;font-size:14px; }
.career-path>.career-availability { font-size:12px;color:var(--green-dark);background:var(--green-light);border-radius:10px;padding:10px 14px; }
.career-requirement { border-bottom:1px solid var(--line);padding:16px 0; }
.career-requirement summary,.career-legacy summary { cursor:pointer;font-weight:800; }
.career-requirement summary span { display:block;font-size:12px;font-weight:600;color:var(--muted);margin:4px 0 0 18px; }
.career-requirement p,.career-legacy p { margin-top:12px;font-size:14px;color:var(--muted);line-height:1.7; }
.career-path>.text-button { margin-top:8px; }
.career-legacy { margin-top:24px;font-size:13px; }
.career-level-list li>div { min-width:0; }
.career-level-list li>span { flex-shrink:0; }

.career-coming-later { display:inline-block;vertical-align:middle;margin:4px 0 4px 8px;padding:4px 9px;border-radius:8px;background:var(--green-light);color:var(--green-dark);font-size:11px;font-weight:800;white-space:nowrap; }
