:root {
  color-scheme: light;
  --ink: #15201b;
  --muted: #59655f;
  --green: #0c7a5b;
  --deep: #18231f;
  --canvas: #f6f4ef;
  --border: #cfd8d2;
  --danger: #a22c24;
  font-family: Arial, sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-size: 16px;
  line-height: 1.5;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button,
a {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: wait;
  opacity: 0.55;
}
a {
  color: inherit;
  text-underline-offset: 4px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2 {
  font-family: Georgia, serif;
  font-weight: 400;
  letter-spacing: -0.035em;
}
h1 {
  font-size: clamp(2rem, 3vw, 2.8rem);
  line-height: 1.16;
}
h2 {
  font-size: 1.4rem;
  line-height: 1.25;
}
em {
  font-weight: 400;
  color: var(--green);
}
.muted,
.field-help {
  color: var(--muted);
}
.eyebrow {
  font-size: 0.7rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 12px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 9px;
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 2.1rem;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.06em;
  width: fit-content;
}
.brand-star {
  font-size: 2.4rem;
  font-weight: 400;
  color: var(--green);
}
.brand-dot {
  color: var(--green);
}
.btn {
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 11px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
}
.primary {
  background: var(--green);
  color: #fff;
}
.primary:hover {
  background: var(--deep);
}
.secondary {
  background: #fff;
  border-color: var(--border);
  color: var(--ink);
}
.secondary:hover {
  background: var(--canvas);
}
.icon-btn,
.text-btn,
.back-link {
  min-height: 44px;
  background: none;
  border: 0;
  color: inherit;
}
.icon-btn {
  min-width: 44px;
  border-radius: 6px;
  font-size: 1.3rem;
}
.icon-btn:hover {
  background: #e9eee9;
}
.text-btn,
.back-link {
  padding: 8px 0;
  color: var(--green);
  text-align: left;
  font-size: 0.875rem;
}
.text-btn:hover,
.back-link:hover {
  text-decoration: underline;
}
.danger {
  color: var(--danger);
}
.full-width {
  width: 100%;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.field > span {
  font-size: 0.78rem;
  font-weight: 600;
}
.field input,
.field select,
.field textarea,
.company-select select {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  padding: 10px 12px;
}
.field textarea {
  resize: vertical;
}
.field input:hover,
.field select:hover {
  border-color: #9daea3;
}
.field-help {
  font-size: 0.78rem;
  margin-top: 14px;
  line-height: 1.55;
}
.form-error {
  color: var(--danger);
  font-size: 0.875rem;
  white-space: pre-wrap;
}
.form-error:empty {
  display: none;
}
.form-error:not(:empty) {
  padding: 12px 16px;
  background: #fce9e7;
  border: 1px solid #ebc7c1;
  border-radius: 6px;
  margin: 16px 0;
}
.skip-link {
  position: fixed;
  top: 8px;
  left: 12px;
  transform: translateY(-180%);
  z-index: 10;
  background: #fff;
  padding: 10px 18px;
}
.skip-link:focus {
  transform: none;
}
.auth-page {
  min-height: 100svh;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.auth-story {
  background: var(--deep);
  color: #f6f4ef;
  padding: 48px clamp(32px, 5vw, 88px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 64px;
}
.auth-story .brand-star,
.auth-story .brand-dot {
  color: #a5d6ba;
}
.auth-story h1 {
  font-size: clamp(2.7rem, 4vw, 4rem);
  max-width: 600px;
  line-height: 1.08;
}
.auth-story h1 em {
  color: #a5d6ba;
}
.auth-story p:not(.eyebrow) {
  max-width: 390px;
  margin-top: 28px;
  color: #d2dcd5;
  line-height: 1.7;
}
.auth-story > span {
  font-size: 0.75rem;
  color: #becfc4;
}
.auth-form-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 32px;
}
.auth-card {
  width: 100%;
  max-width: 390px;
}
.auth-card h2 {
  font-size: 2.25rem;
  margin-bottom: 18px;
}
.auth-card form {
  margin-top: 32px;
  display: grid;
  gap: 20px;
}
.auth-card .btn {
  width: 100%;
}
.auth-help {
  margin-top: 28px;
  font-size: 0.78rem;
  color: var(--muted);
}
.auth-card > .btn {
  margin-top: 24px;
}
.workspace {
  display: flex;
  min-height: 100svh;
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 244px;
  background: var(--deep);
  color: #e9eee9;
  padding: 32px 20px 20px;
  display: flex;
  flex-direction: column;
  z-index: 2;
}
.sidebar > .brand {
  margin: 0 12px 40px;
  color: #fff;
}
.sidebar .brand-dot,
.sidebar .brand-star {
  color: #a5d6ba;
}
.company-select {
  padding: 0 10px 28px;
  border-bottom: 1px solid #3a4740;
  margin-bottom: 24px;
}
.company-select label {
  display: block;
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  color: #b9cbc0;
  margin-bottom: 10px;
  font-weight: 700;
}
.company-select select {
  background: #25362c;
  border-color: #46574b;
  color: #fff;
  font-size: 0.8rem;
  padding-left: 8px;
}
.company-select > span {
  display: block;
  font-size: 0.7rem;
  margin-top: 8px;
  color: #b9cbc0;
}
.sidebar nav {
  display: grid;
  gap: 6px;
}
.nav-item {
  min-height: 46px;
  padding: 10px 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #d0ddd5;
  text-align: left;
  font-size: 0.84rem;
  display: flex;
  align-items: center;
  gap: 10px;
}
.nav-item:hover {
  background: #283a30;
}
.nav-item.active {
  background: #314c3c;
  color: #fff;
}
.sidebar-foot {
  margin-top: auto;
  padding-top: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.75rem;
}
.sidebar-foot > div {
  min-width: 0;
  flex: 1;
  overflow-wrap: anywhere;
}
.sidebar-foot strong,
.sidebar-foot small {
  display: block;
}
.sidebar-foot small {
  color: #b9cbc0;
  margin-top: 2px;
}
.sidebar-foot .icon-btn:hover {
  color: var(--deep);
}
.avatar {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: 0.8rem;
}
.sidebar .avatar {
  border-color: #6e8275;
}
.workspace-main {
  margin-left: 244px;
  min-width: 0;
  width: calc(100% - 244px);
}
.topbar {
  min-height: 72px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 40px;
  background: #faf9f6;
  font-size: 0.8rem;
}
.topbar > span:first-child {
  overflow-wrap: anywhere;
}
.private-label {
  color: var(--muted);
  font-size: 0.7rem;
  flex-shrink: 0;
}
.private-label:before {
  content: "○";
  margin-right: 6px;
  color: var(--green);
}
.main-content {
  padding: 40px;
  max-width: 1800px;
  margin: auto;
}
.page-heading,
.editor-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  margin-bottom: 32px;
}
.page-heading .muted {
  margin-top: 12px;
  max-width: 560px;
}
.page-heading .btn {
  flex-shrink: 0;
}
.empty-onboarding {
  max-width: 630px;
  padding: 10vh 0;
}
.empty-onboarding h1 {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}
.empty-onboarding > p:not(.eyebrow) {
  margin-top: 24px;
  max-width: 440px;
  color: var(--muted);
}
.empty-onboarding > .btn {
  margin-top: 32px;
}
.panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 24px;
  min-width: 0;
}
.form-panel {
  padding: 28px;
  max-width: 1000px;
}
.form-panel h2 {
  margin-bottom: 24px;
}
.form-panel > .btn:last-child {
  margin-top: 24px;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.form-divider {
  height: 1px;
  background: var(--border);
  margin: 32px 0;
}
.form-panel > p.muted {
  margin-bottom: 24px;
  font-size: 0.875rem;
}
.panel-heading,
.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.panel-heading {
  padding: 24px 28px;
  border-bottom: 1px solid var(--border);
}
.panel-heading > span,
.section-heading > span {
  font-size: 0.75rem;
  color: var(--muted);
}
.section-heading h2 {
  margin: 0;
}
.section-heading {
  margin-bottom: 20px;
}
.summary-row {
  display: flex;
  gap: 0;
  border-block: 1px solid var(--border);
  margin-bottom: 32px;
}
.summary-row > div {
  padding: 20px 32px 20px 0;
  min-width: 140px;
}
.summary-row > div + div {
  padding-left: 32px;
  border-left: 1px solid var(--border);
}
.summary-row strong {
  font-size: 1.6rem;
  font-weight: 400;
  font-family: inherit;
}
.summary-row span {
  display: block;
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 2px;
}
.table-scroll {
  overflow-x: auto;
}
.invoice-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.85rem;
}
.invoice-table th {
  text-align: left;
  font-size: 0.65rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  background: #fbfcfa;
  font-weight: 600;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border);
}
.invoice-table td {
  padding: 18px 24px;
  border-bottom: 1px solid #e6ebe5;
}
.invoice-table tr:last-child td {
  border: 0;
}
.invoice-table td:last-child,
.invoice-table th:last-child {
  text-align: right;
}
.invoice-table td small {
  display: block;
  color: var(--muted);
  margin-top: 3px;
}
.invoice-table .text-btn {
  font-weight: 600;
}
.badge {
  font:
    500 0.65rem/1.5 Arial,
    sans-serif;
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 4px;
  display: inline-block;
  letter-spacing: 0;
  background: #f6f4ef;
  white-space: nowrap;
}
.badge.reviewed {
  background: #edf0eb;
}
.empty {
  padding: 64px 28px;
  text-align: center;
}
.empty > span {
  font-size: 2rem;
  color: var(--green);
}
.empty h2 {
  margin: 12px 0;
}
.empty p {
  color: var(--muted);
  margin: 0 auto 24px;
  max-width: 360px;
  font-size: 0.875rem;
}
.workspace-note {
  font-size: 0.78rem;
  color: var(--muted);
  max-width: 730px;
  margin-top: 24px;
}
.editor-heading h1 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 2.3rem;
  margin-top: 8px;
}
.editor-heading .muted {
  font-size: 0.75rem;
  margin-top: 8px;
}
.editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.editor-grid .form-panel {
  padding: 24px;
}
.editor-grid .form-grid {
  gap: 20px;
}
.readonly-field {
  min-height: 46px;
  background: var(--canvas);
  border: 1px solid var(--border);
  padding: 10px 12px;
  border-radius: 6px;
  color: var(--muted);
  font-size: 0.875rem;
}
.line-row {
  border-top: 1px solid var(--border);
  padding: 16px 0 24px;
}
.line-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  font-size: 0.7rem;
  color: var(--muted);
}
.line-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.line-total {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.75rem;
  margin-top: 16px;
  color: var(--muted);
}
.line-total strong {
  color: var(--ink);
}
.preview-column {
  min-width: 0;
  position: sticky;
  top: 24px;
}
.preview-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
}
.preview-heading h2 {
  font-size: 1.15rem;
}
.draft-paper {
  background: #fff;
  border: 1px solid var(--border);
  box-shadow: 0 3px 16px #18231f06;
  padding: 24px;
  font-size: 0.7rem;
  overflow-wrap: anywhere;
}
.draft-watermark {
  font-size: 0.63rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  background: #fff2d9;
  color: #795000;
  padding: 9px;
  margin-bottom: 24px;
}
.paper-heading {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ink);
}
.paper-heading strong {
  font-size: 0.8rem;
  line-height: 1.4;
}
.paper-heading > div > * {
  display: block;
  margin-bottom: 4px;
}
.paper-heading > div:nth-child(2) {
  text-align: right;
}
.paper-buyer {
  display: grid;
  gap: 4px;
  padding: 20px 0;
}
.paper-buyer strong {
  font-size: 0.8rem;
}
.paper-items {
  border-collapse: collapse;
  width: 100%;
  table-layout: fixed;
}
.paper-items th {
  font-size: 0.6rem;
  letter-spacing: 0.02em;
  text-align: left;
  background: var(--canvas);
  padding: 8px 5px;
}
.paper-items th:first-child {
  width: 43%;
}
.paper-items th:nth-child(2) {
  width: 13%;
}
.paper-items th:nth-child(3) {
  width: 23%;
}
.paper-items td {
  padding: 14px 5px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.paper-items td:not(:first-child),
.paper-items th:not(:first-child) {
  text-align: right;
}
.paper-items small {
  display: block;
  color: var(--muted);
  margin-top: 5px;
}
.paper-totals {
  margin: 20px 0 24px 25%;
}
.paper-totals > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0;
}
.paper-totals dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
}
.paper-total {
  border-top: 1px solid var(--ink);
  padding-top: 12px;
  font-weight: 700;
  font-size: 0.85rem;
}
.paper-notes {
  padding-top: 12px;
  margin-bottom: 20px;
  white-space: pre-wrap;
}
.paper-pending {
  border: 1px dashed #b9c3bb;
  padding: 14px;
  margin: 24px 0 12px;
  color: var(--muted);
}
.paper-pending > span {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
}
.paper-pending p {
  margin-top: 6px;
  font-size: 0.65rem;
}
.paper-footnote {
  text-align: center;
  font-size: 0.6rem;
  color: var(--muted);
}
.member-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.member-list li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 28px;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
}
.member-list li:last-child {
  border: 0;
}
.member-list li > div {
  flex: 1;
  min-width: 140px;
  overflow-wrap: anywhere;
  font-size: 0.875rem;
}
.member-list li > div > * {
  display: block;
}
.member-list li > div > span {
  color: var(--muted);
  font-size: 0.78rem;
  margin-top: 3px;
}
.invitation-dialog {
  width: calc(100% - 32px);
  max-width: 540px;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 28px;
  color: var(--ink);
  box-shadow: 0 16px 70px #15201b20;
}
.invitation-dialog::backdrop {
  background: #15201b80;
}
.dialog-heading {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.invitation-dialog > p {
  margin-bottom: 20px;
  font-size: 0.875rem;
}
.invitation-dialog > .btn {
  margin-top: 4px;
}
.invitation-dialog input {
  font-size: 0.78rem;
}
#toast {
  position: fixed;
  bottom: 24px;
  left: calc(50% + 122px);
  transform: translateX(-50%);
  background: var(--deep);
  color: #fff;
  border-radius: 6px;
  padding: 14px 20px;
  max-width: min(520px, 90vw);
  font-size: 0.875rem;
  display: none;
  z-index: 20;
  box-shadow: 0 4px 20px #15201b20;
}
#toast.visible {
  display: block;
}
#toast.error {
  background: var(--danger);
}
@media (min-width: 1600px) {
  .line-values {
    grid-template-columns: 0.8fr 0.9fr 1.1fr 1fr;
  }
}
@media (max-width: 1150px) {
  .main-content {
    padding: 28px;
  }
  .topbar {
    padding-inline: 28px;
  }
  .editor-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .preview-column {
    position: static;
    max-width: 680px;
  }
  .editor-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .editor-grid .form-panel {
    max-width: none;
  }
}
@media (max-width: 760px) {
  .auth-page {
    grid-template-columns: 1fr;
  }
  .auth-story {
    padding: 28px;
    gap: 32px;
  }
  .auth-story h1 {
    font-size: 2.3rem;
  }
  .auth-story p:not(.eyebrow),
  .auth-story > span {
    display: none;
  }
  .auth-form-wrap {
    padding: 36px 24px;
  }
  .sidebar {
    position: static;
    width: 100%;
    padding: 18px 20px 12px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 14px;
  }
  .workspace {
    display: block;
  }
  .sidebar > .brand {
    margin: 0;
    grid-column: 1;
  }
  .company-select {
    padding: 0;
    margin: 0;
    border: 0;
    grid-column: 1/-1;
  }
  .company-select label {
    display: none;
  }
  .company-select select {
    max-width: 100%;
  }
  .company-select > span {
    margin-top: 4px;
  }
  .sidebar nav {
    grid-column: 1/-1;
    display: flex;
    gap: 4px;
    border-top: 1px solid #3a4740;
    padding-top: 8px;
    flex-wrap: wrap;
  }
  .nav-item {
    font-size: 0.75rem;
    padding: 8px;
    min-height: 44px;
  }
  .sidebar-foot {
    grid-row: 1;
    grid-column: 2;
    padding: 0;
    margin: 0;
  }
  .sidebar-foot .avatar,
  .sidebar-foot > div {
    display: none;
  }
  .workspace-main {
    width: 100%;
    margin: 0;
  }
  .topbar {
    min-height: 50px;
    padding: 12px 20px;
  }
  .main-content {
    padding: 28px 20px;
  }
  .page-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
  }
  .page-heading h1 {
    font-size: 2.1rem;
  }
  .form-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .form-panel,
  .editor-grid .form-panel {
    padding: 20px;
  }
  .panel-heading {
    padding: 20px;
  }
  .summary-row > div {
    min-width: 0;
    flex: 1;
    padding: 16px 12px 16px 0;
  }
  .summary-row > div + div {
    padding-left: 16px;
  }
  .summary-row strong {
    font-size: 1.4rem;
  }
  .summary-row span {
    font-size: 0.65rem;
  }
  .invoice-table th,
  .invoice-table td {
    padding: 12px 14px;
  }
  .invoice-table {
    min-width: 600px;
  }
  .editor-actions {
    width: 100%;
  }
  .editor-actions .btn {
    flex: 1;
    padding-inline: 10px;
    font-size: 0.75rem;
  }
  .draft-paper {
    padding: 16px;
  }
  .paper-heading {
    gap: 10px;
  }
  .paper-totals {
    margin-left: 15%;
  }
  .member-list li {
    padding: 18px 20px;
    gap: 12px;
  }
  .member-list li .badge {
    margin-left: 44px;
  }
  .member-list li .text-btn {
    margin-left: auto;
  }
  .empty-onboarding {
    padding: 40px 0;
  }
  .editor-heading h1 {
    font-size: 1.9rem;
  }
  #toast {
    left: 50%;
    bottom: 16px;
    width: max-content;
  }
  .invitation-dialog {
    padding: 20px;
  }
}
@media print {
  @page {
    size: A4;
    margin: 16mm;
  }
  body {
    background: #fff;
  }
  .sidebar,
  .topbar,
  .editor-heading,
  .preview-heading,
  #invoice-form,
  #invoice-error,
  .skip-link,
  #toast {
    display: none !important;
  }
  .workspace,
  .workspace-main,
  .main-content,
  .editor-grid,
  .preview-column {
    display: block;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: none;
    position: static;
  }
  .draft-paper {
    border: 0;
    box-shadow: none;
    padding: 0;
    font-size: 10pt;
  }
  .draft-watermark {
    background: #fff;
    border: 2px solid #795000;
    font-size: 10pt;
  }
  .paper-heading strong {
    font-size: 12pt;
  }
  .paper-items th {
    font-size: 9pt;
  }
  .paper-total {
    font-size: 12pt;
  }
  .paper-pending p,
  .paper-footnote {
    font-size: 9pt;
  }
  .paper-items tr {
    break-inside: avoid;
  }
  .paper-totals,
  .paper-pending {
    break-inside: avoid;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.empty h3 {
  font:
    400 1.5rem Georgia,
    serif;
  letter-spacing: -0.025em;
  margin: 12px 0;
}
.summary-row strong {
  display: block;
}
.summary-row span {
  margin-bottom: 4px;
}
.summary-row {
  flex-wrap: wrap;
}
.table-scroll {
  position: relative;
}
.fiscal-steps {
  list-style: none;
  padding: 0;
  margin: 28px 0;
}
.certification-body {
  max-width: 950px;
}
.certification-body .panel {
  margin-bottom: 24px;
}
.certification-stages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 950px;
  gap: 12px;
  margin-bottom: 28px;
}
.certification-stages button {
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px;
  text-align: left;
  font-size: 0.875rem;
  min-height: 72px;
}
.certification-stages button[aria-current] {
  background: #e3eee7;
  border-color: #9cb8a8;
  font-weight: 700;
}
.certification-body h2 {
  margin: 8px 0 16px;
}
.certification-body .field {
  margin-bottom: 18px;
}
.certification-body form {
  margin-top: 28px;
}
.certification-facts {
  display: grid;
  gap: 16px;
  margin: 24px 0;
}
.certification-facts > div {
  min-width: 0;
}
.certification-facts dt {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  margin-bottom: 4px;
}
.certification-facts dd {
  margin: 0;
  font-size: 0.875rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.certification-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.certification-fieldset:disabled {
  opacity: 0.65;
}
.certification-fieldset .checkbox-field,
.certification-sign-dialog .checkbox-field {
  align-items: flex-start;
}
.certification-fieldset input[type="checkbox"],
.certification-sign-dialog input[type="checkbox"] {
  margin-top: 4px;
  flex-shrink: 0;
}
.certification-notice {
  background: #fff4dc;
  padding: 20px;
  margin: 24px 0;
  border-left: 3px solid #96703a;
  font-size: 0.875rem;
}
.certification-notice h3 {
  font-size: 1rem;
  margin-bottom: 8px;
}
.certification-notice a {
  display: inline-block;
  padding: 12px 0;
  min-height: 44px;
}
.certification-certificate {
  background: #f5f8f5;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-top: 28px;
}
.certification-body code,
.certification-sign-dialog code {
  overflow-wrap: anywhere;
  font-size: 0.75rem;
}
.certification-body .text-btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.certification-body .btn + .text-btn {
  display: block;
  margin-top: 16px;
}
.certification-instructions {
  padding-left: 24px;
  color: var(--muted);
  font-size: 0.875rem;
}
.certification-instructions li {
  padding: 8px 0;
}
.certification-software {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding: 20px;
  margin: 24px 0;
  background: var(--canvas);
  border-radius: 8px;
}
.certification-software span,
.certification-software strong {
  display: block;
}
.certification-software span {
  color: var(--muted);
  font-size: 0.75rem;
}
.certification-review summary {
  cursor: pointer;
  padding: 12px 0;
}
.certification-review pre {
  max-height: 400px;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--canvas);
  padding: 16px;
  border-radius: 6px;
  font-size: 0.75rem;
}
.certification-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}
.certification-success {
  border-left: 3px solid var(--green);
  padding: 16px;
  background: #edf7f0;
  margin-top: 24px;
  font-size: 0.875rem;
}
.certification-success p {
  margin-top: 8px;
}
.certification-permissions {
  max-width: 950px;
  margin-top: 24px;
}
.certification-permissions summary {
  font-weight: 700;
  cursor: pointer;
  min-height: 44px;
}
.certification-permissions .text-btn {
  min-height: 44px;
  flex-shrink: 0;
}
.certification-sign-dialog {
  width: min(620px, calc(100vw - 32px));
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 28px;
  max-height: calc(100svh - 32px);
  overflow: auto;
  color: var(--ink);
}
.certification-sign-dialog::backdrop {
  background: #15201b88;
}
.certification-sign-dialog p {
  margin: 16px 0;
  font-size: 0.875rem;
  overflow-wrap: anywhere;
}
.certification-save-status {
  display: block;
  color: var(--muted);
  margin-top: 12px;
  font-size: 0.8rem;
}
@media (max-width: 700px) {
  .certification-stages {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
  .certification-stages button {
    min-height: 56px;
    padding: 10px 14px;
  }
  .certification-software {
    grid-template-columns: minmax(0, 1fr);
  }
  .certification-sign-dialog {
    padding: 20px;
  }
  .certification-certificate {
    padding: 16px;
  }
}
.registration-overview {
  padding: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-bottom: 28px;
}
.registration-overview progress {
  display: block;
  width: 100%;
  height: 10px;
  accent-color: var(--green);
  margin: 12px 0;
}
.registration-overview p {
  font-size: 0.875rem;
}
.registration-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}
.registration-index {
  position: sticky;
  top: 24px;
  min-width: 0;
}
.registration-index ol,
.registration-evidence,
.registration-history {
  list-style: none;
  margin: 0;
  padding: 0;
}
.registration-index nav {
  margin-bottom: 20px;
}
.registration-index nav button {
  display: flex;
  gap: 12px;
  align-items: center;
  width: 100%;
  min-height: 64px;
  padding: 12px;
  margin-bottom: 6px;
  text-align: left;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
}
.registration-index nav button[aria-current] {
  background: #e3eee7;
  border-color: #9cb8a8;
}
.registration-index strong,
.registration-index small {
  display: block;
}
.registration-index strong {
  font-size: 0.875rem;
}
.registration-index small {
  font-size: 0.75rem;
  color: var(--muted);
  margin-top: 3px;
}
.registration-mobile-select {
  display: none;
}
.registration-route-note {
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 20px;
}
.registration-route-note summary {
  cursor: pointer;
  padding: 12px 0;
}
.registration-route-note p {
  margin-bottom: 12px;
}
.registration-content {
  min-width: 0;
}
.registration-content .panel {
  margin-bottom: 24px;
}
.registration-content .section-heading {
  gap: 12px;
  flex-wrap: wrap;
}
.registration-content h2 {
  scroll-margin-top: 24px;
}
.registration-checklist {
  border: 0;
  padding: 0;
  margin: 24px 0;
}
.registration-checklist legend {
  font-weight: 700;
  margin-bottom: 12px;
}
.registration-checklist .checkbox-field {
  padding: 10px 0;
  margin-bottom: 0;
  align-items: start;
}
.registration-checklist input {
  margin-top: 5px;
  flex-shrink: 0;
}
.registration-content .field {
  margin-bottom: 18px;
}
.registration-save-status {
  display: block;
  color: var(--muted);
  font-size: 0.8rem;
  margin-top: 12px;
}
.registration-review {
  background: #fff4dc;
  border-left: 3px solid #96703a;
  padding: 16px;
  margin: 20px 0;
  font-size: 0.875rem;
  overflow-wrap: anywhere;
}
.registration-evidence {
  margin: 20px 0;
}
.registration-evidence li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.registration-evidence li > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.registration-evidence small {
  display: block;
  font-size: 0.75rem;
  margin-top: 4px;
  color: var(--muted);
}
.registration-evidence button {
  flex-shrink: 0;
  min-height: 44px;
}
.registration-history li {
  border-left: 2px solid var(--border);
  margin-top: 20px;
  padding-left: 16px;
  font-size: 0.8rem;
  overflow-wrap: anywhere;
}
.registration-history p {
  color: var(--muted);
  margin-top: 4px;
  white-space: pre-wrap;
}
@media (max-width: 1100px) {
  .registration-layout {
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 20px;
  }
}
@media (max-width: 700px) {
  .registration-overview,
  .registration-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .registration-overview {
    padding: 20px;
  }
  .registration-index {
    position: static;
  }
  .registration-index nav {
    display: none;
  }
  .registration-mobile-select {
    display: block;
  }
  .registration-index .text-btn {
    display: inline-block;
    min-height: 44px;
    padding: 10px 0;
  }
  .registration-route-note {
    margin-top: 0;
  }
}
.fiscal-steps li {
  display: flex;
  gap: 20px;
  padding: 24px 0;
  border-top: 1px solid var(--border);
}
.step-number {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-size: 0.8rem;
}
.fiscal-steps h3 {
  font-size: 1rem;
  margin-bottom: 8px;
}
.fiscal-steps p {
  margin: 12px 0;
  font-size: 0.875rem;
  color: var(--muted);
}
.fiscal-steps a {
  font-size: 0.8rem;
  color: var(--green);
}
.fiscal-range {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 20px;
  margin: 24px 0;
}
.fiscal-range legend {
  font-size: 0.875rem;
  font-weight: 600;
  padding: 0 8px;
}
.checkbox-field {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.8rem;
  margin-bottom: 20px;
  min-height: 44px;
}
.checkbox-field input {
  width: 20px;
  height: 20px;
}
.fiscal-certificate {
  border-block: 1px solid var(--border);
  padding: 24px 0;
  margin-top: 24px;
}
.fiscal-certificate p {
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 10px;
}
.fiscal-invoice-panel {
  max-width: none;
}
.fiscal-invoice-panel .section-heading {
  align-items: flex-start;
}
.fiscal-invoice-panel > p.muted {
  max-width: 760px;
}
.fiscal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}
.fiscal-record {
  padding: 24px 0 0;
}
.fiscal-record dl {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.fiscal-record dt {
  font-size: 0.7rem;
  color: var(--muted);
}
.fiscal-record dd {
  margin: 6px 0 0;
  font-size: 0.875rem;
  overflow-wrap: anywhere;
}
.fiscal-validation {
  padding: 20px;
  background: var(--canvas);
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-top: 24px;
}
.fiscal-validation p {
  font-size: 0.85rem;
  margin: 10px 0;
}
.fiscal-validation pre {
  font-size: 0.75rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  max-height: 320px;
  overflow: auto;
}
.fiscal-validation summary {
  min-height: 44px;
  cursor: pointer;
  padding-block: 12px;
  font-size: 0.8rem;
}
@media (max-width: 760px) {
  .fiscal-steps li {
    gap: 12px;
  }
  .fiscal-range {
    padding: 16px;
  }
  .fiscal-invoice-panel .section-heading {
    display: block;
  }
  .fiscal-record dl {
    gap: 16px;
  }
}
@media print {
  .fiscal-invoice-panel {
    display: none !important;
  }
}

.paper-signature {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 24px;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}
.paper-signature img {
  max-width: 150px;
  width: 100%;
  height: auto;
  flex-shrink: 0;
}
.paper-signature > div {
  min-width: 120px;
  flex: 1;
  font-size: 0.65rem;
}
.paper-signature > div > * {
  display: block;
  margin-block: 6px;
}

.automatic-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  gap: 16px;
  margin: 20px 0;
}
.automatic-facts dt {
  font-size: 0.8rem;
  color: var(--muted, #58645e);
}
.automatic-facts dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.directory-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
}
.directory-controls .field-help {
  flex: 1 1 240px;
  margin: 0;
}
.directory-result:not(:empty) {
  margin-top: 16px;
}
.directory-suggestion {
  border: 1px solid #b7cdc2;
  background: #f0f6f2;
  border-radius: 10px;
  padding: 18px;
  margin: 12px 0;
  overflow-wrap: anywhere;
}
.directory-suggestion dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: 12px;
}
.directory-suggestion dt {
  font-size: 0.8rem;
  color: #58645e;
}
.directory-suggestion dd {
  margin: 3px 0 0;
}
.directory-suggestion .btn {
  white-space: normal;
}
.directory-applied {
  font-weight: 600;
  color: #087c5c;
}

/* Full issuer journey: instructions, operations and portal handoffs share one course. */
.journey-overview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  margin-bottom: 28px;
}
.journey-overview > div {
  flex: 1;
  max-width: 660px;
}
.journey-overview progress {
  display: block;
  width: 100%;
  height: 8px;
  margin: 12px 0;
  accent-color: var(--green, #24634c);
}
.journey-layout {
  display: grid;
  grid-template-columns: 252px minmax(0, 950px);
  align-items: start;
  gap: 28px;
}
.journey-index {
  min-width: 0;
}
.journey-group {
  margin-bottom: 24px;
}
.journey-group h2 {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
  margin: 0 0 8px 12px;
}
.journey-group ol {
  list-style: none;
  padding: 0;
  margin: 0;
}
.journey-group button {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
  padding: 11px 10px;
  line-height: 1.4;
  font-size: 0.84rem;
}
.journey-group button[aria-current] {
  background: #e3eee7;
  border-color: #9cb8a8;
  font-weight: 650;
}
.journey-group .step-number {
  flex: none;
  font-size: 0.74rem;
  width: 25px;
  height: 25px;
}
.journey-group small {
  display: block;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 400;
  margin-top: 3px;
}
.journey-content {
  min-width: 0;
  width: 100%;
}
.journey-kicker {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.journey-guide h3 {
  font-size: 0.9rem;
  margin-top: 26px;
}
.journey-guide .certification-instructions {
  padding-left: 24px;
  margin: 18px 0 24px;
}
.journey-guide li {
  margin-bottom: 14px;
  padding-left: 6px;
  line-height: 1.7;
}
.journey-expected {
  background: #edf4ef;
  border-left: 3px solid #5a8b71;
  padding: 16px 20px;
  margin: 24px 0;
  border-radius: 0 6px 6px 0;
}
.journey-expected p,
.journey-pending p {
  margin: 8px 0 0;
  line-height: 1.6;
}
.journey-help {
  margin: 24px 0;
  line-height: 1.65;
}
.journey-help summary {
  cursor: pointer;
  font-weight: 600;
}
.journey-pending {
  background: #f8f3e9;
  border: 1px solid #e5d7b9;
  border-radius: 6px;
  padding: 16px;
  margin: 20px 0;
  font-size: 0.88rem;
}
.journey-dependency {
  font-size: 0.86rem;
  padding: 12px 16px;
  background: var(--bg, #f4f4f0);
  border-radius: 6px;
}
.journey-navigation {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.journey-mobile-select {
  display: none;
}
.journey-content textarea {
  width: 100%;
  min-height: 100px;
}
@media (max-width: 1100px) {
  .journey-layout {
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 20px;
  }
  .journey-overview {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }
  .journey-overview > div {
    width: 100%;
  }
}
@media (max-width: 800px) {
  .journey-layout {
    display: block;
  }
  .journey-index nav {
    display: none;
  }
  .journey-mobile-select {
    display: block;
    margin-bottom: 24px;
  }
  .journey-kicker {
    align-items: flex-start;
    flex-direction: column;
  }
  .journey-overview {
    padding: 20px;
  }
}

.journey-confirm-actions {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.certification-task-dialog .field {
  margin: 20px 0;
}
.certification-task-dialog textarea {
  width: 100%;
  min-height: 80px;
}
.certification-task-dialog .form-grid .field {
  margin-top: 0;
}
.certification-task-dialog h2 {
  margin: 8px 0 16px;
}
.certification-task-dialog .certification-actions {
  justify-content: flex-end;
  margin-top: 24px;
}
.journey-modal-evidence {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin: 20px 0;
  padding: 16px 0;
  min-width: 0;
}
.journey-modal-evidence summary {
  cursor: pointer;
  min-height: 32px;
  overflow-wrap: anywhere;
}
.journey-modal-evidence h3 {
  display: inline;
  margin: 0;
  font-size: 0.9rem;
}
.journey-modal-evidence summary small {
  margin-left: 12px;
  color: var(--muted);
}
.journey-modal-evidence input[type="file"] {
  width: 100%;
  min-width: 0;
}
.journey-modal-evidence .registration-evidence a {
  overflow-wrap: anywhere;
}
@media (max-width: 480px) {
  .certification-task-dialog .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .certification-task-dialog .certification-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }
}

.workbook-counts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 24px 0;
}
.workbook-counts > div {
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.workbook-counts strong,
.workbook-counts span {
  display: block;
}
.workbook-counts strong {
  font-size: 1.5rem;
  margin-bottom: 6px;
}
.workbook-counts span {
  font-size: 0.8rem;
  color: var(--muted);
}
.workbook-hash {
  overflow-wrap: anywhere;
}
.workbook-plan .section-heading {
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}
.workbook-plan h2 {
  overflow-wrap: anywhere;
}
.workbook-warning {
  background: #f8f3e9;
  padding: 16px;
  border-radius: 6px;
}
.workbook-layout,
.workbook-sheet,
.workbook-history {
  margin: 24px 0;
}
.workbook-layout summary,
.workbook-sheet summary,
.workbook-history summary {
  cursor: pointer;
  font-weight: 600;
  line-height: 1.5;
}
.workbook-layout-sheet {
  border: 1px solid var(--border);
  border-radius: 8px;
  margin: 24px 0;
  padding: 20px;
  min-width: 0;
}
.workbook-layout-sheet legend {
  padding: 0 8px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.workbook-layout-sheet .checkbox-field {
  margin-bottom: 16px;
}
.workbook-table-scroll {
  position: relative;
  max-width: 100%;
  overflow: auto;
  margin: 20px 0;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.workbook-table-scroll table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.83rem;
}
.workbook-table-scroll th,
.workbook-table-scroll td {
  padding: 12px;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
  min-width: 90px;
  max-width: 300px;
  overflow-wrap: anywhere;
}
.workbook-table-scroll thead {
  background: #edf1ed;
}
.workbook-table-scroll small {
  display: block;
  margin-top: 6px;
  font-weight: 400;
  color: var(--muted);
}
.workbook-table-scroll .badge {
  white-space: nowrap;
}
.workbook-raw td {
  min-width: 120px;
}
.workbook-formula {
  display: block;
  color: #805d1d;
  font-size: 0.75rem;
  margin-top: 6px;
}
.workbook-filter,
.workbook-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 24px 0;
}
.workbook-filter .field {
  margin: 0;
  min-width: 200px;
}
.workbook-filter > span,
.workbook-pagination > span {
  font-size: 0.85rem;
  color: var(--muted);
}
.workbook-issues {
  padding-left: 20px;
}
.workbook-issues li {
  margin: 12px 0;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.workbook-case-detail h3 {
  margin-top: 24px;
}
.workbook-intake h3 {
  margin-top: 28px;
}
@media (max-width: 700px) {
  .workbook-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .workbook-layout-sheet {
    padding: 12px;
  }
  .workbook-filter,
  .workbook-pagination {
    flex-wrap: wrap;
  }
  .workbook-filter .field {
    width: 100%;
    min-width: 0;
  }
  .workbook-pagination .btn {
    padding: 10px 12px;
  }
  .workbook-intake .registration-evidence li {
    flex-wrap: wrap;
  }
  .workbook-intake .registration-evidence strong {
    overflow-wrap: anywhere;
  }
}
/* Workbook preparations retain XML as inert, inspectable text. */
.workbook-preparation,
.workbook-xml-detail {
  margin-block: 1.5rem;
  padding-block: 1rem;
  border-top: 1px solid var(--border, #d8dfda);
  min-width: 0;
}
.workbook-xml-source {
  margin-block: 1rem;
  min-width: 0;
}
.workbook-xml-source pre {
  max-width: 100%;
  max-height: 28rem;
  overflow: auto;
  padding: 1rem;
  background: #f4f6f3;
  border-radius: 0.5rem;
  font-size: 0.8rem;
}
.workbook-xml-source table {
  font-size: 0.8rem;
}
.workbook-xml-detail .workbook-issues small {
  display: block;
  overflow-wrap: anywhere;
}

/* The communication workspace keeps setup and daily operations in one place. */
.exchange-views {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
  margin: 24px 0;
}
.exchange-views button {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font-weight: 600;
}
.exchange-views button[aria-pressed="true"] {
  background: #e3eee7;
  border-color: #9cb8a8;
  color: var(--ink);
}
.exchange-workspace #peer-deliveries {
  padding: 0;
  margin: 0;
  border: 0;
  box-shadow: none;
}
.exchange-workspace #peer-deliveries > .eyebrow {
  display: none;
}
.exchange-workspace .certification-actions {
  align-items: center;
  gap: 12px;
  margin: 16px 0;
}
.exchange-workspace .certification-actions .text-btn {
  margin: 0;
}
.exchange-detail,
.exchange-response {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.exchange-workspace summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 0.875rem;
  padding: 8px 0;
}
.exchange-workspace code {
  overflow-wrap: anywhere;
}
.exchange-empty {
  padding: 20px;
  border: 1px dashed var(--border);
  border-radius: 6px;
  color: var(--muted);
}
@media (max-width: 420px) {
  .exchange-views {
    gap: 4px;
  }
  .exchange-views button {
    flex: 1 1 auto;
    padding: 8px;
    font-size: 0.8rem;
  }
  .exchange-workspace .certification-actions {
    align-items: flex-start;
    flex-direction: column;
  }
}

.library-search {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 12px;
  margin: 24px 0;
}
.library-search .field {
  flex: 1 1 200px;
  margin: 0;
}
.library-search .btn {
  min-height: 44px;
}
.library-records {
  list-style: none;
  margin: 24px 0;
  padding: 0;
}
.library-records li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-top: 1px solid var(--border);
  padding: 20px 0;
}
.library-records li > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.library-records small {
  display: block;
  color: var(--muted);
  font-size: 0.8rem;
  margin-top: 4px;
}
.library-row-actions,
.library-inline-actions,
.library-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.library-pagination {
  justify-content: space-between;
  font-size: 0.85rem;
}
.library-inline-actions .text-btn {
  font-size: 0.8rem;
  margin: 0;
}
.library-inline-actions {
  justify-content: flex-end;
}
.library-dialog {
  width: min(760px, calc(100vw - 32px));
}
.library-dialog .field {
  margin: 0 0 18px;
}
.library-empty {
  padding: 24px 0;
  color: var(--muted);
}
@media (max-width: 700px) {
  .library-records li {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }
  .library-inline-actions {
    justify-content: flex-start;
  }
  .library-dialog .form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .library-search .field {
    flex-basis: 100%;
  }
}
.library-inline-actions .text-btn,
.library-row-actions .text-btn {
  min-height: 44px;
}
@media (max-width: 700px) {
  #invoice-form .section-heading {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Invoice adjustments share the document editor and its fiscal controls. */
.adjustment-balances {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.adjustment-balances dd {
  font-size: 1.25rem;
  font-variant-numeric: tabular-nums;
}
.adjustment-history h3 {
  margin: 28px 0 16px;
}
.adjustment-history .registration-evidence a {
  overflow-wrap: anywhere;
}
.adjustment-dialog .field {
  margin: 18px 0;
}
.adjustment-dialog .checkbox-field {
  display: flex;
  gap: 12px;
  margin: 18px 0;
}
.adjustment-dialog .certification-facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 480px) {
  .adjustment-balances,
  .adjustment-dialog .certification-facts {
    grid-template-columns: minmax(0, 1fr);
  }
}

.collection-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin: 24px 0;
}
.collection-facts dt {
  color: var(--muted);
  font-size: 0.8rem;
  margin-bottom: 6px;
}
.collection-facts dd {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.collection-panel h3 {
  margin: 28px 0 16px;
}
.payment-history,
.collection-documents {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}
.payment-history li,
.collection-documents li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid var(--border);
}
.payment-history li > div,
.collection-documents li > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.payment-history small,
.collection-documents small {
  display: block;
  color: var(--muted);
  margin-top: 6px;
  font-size: 0.8rem;
}
.collection-amount {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.collection-amount .text-btn {
  display: inline-block;
  margin-top: 10px;
}
.collection-documents .badge {
  margin-top: 8px;
}
.payment-status.overdue,
.payment-status.review {
  background: #fff0d7;
  color: #795312;
}
.payment-status.paid {
  background: #e4f2e8;
  color: #23583c;
}
.payment-status.credit {
  background: #e7eef8;
  color: #294d7a;
}
.payment-dialog .field {
  margin: 18px 0;
}
.payment-dialog .checkbox-field {
  display: flex;
  gap: 12px;
  margin: 20px 0;
}
@media (max-width: 700px) {
  .collection-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .collection-summary strong {
    font-size: 1.2rem;
  }
}
@media (max-width: 480px) {
  .collection-facts {
    grid-template-columns: minmax(0, 1fr);
  }
  .payment-history li,
  .collection-documents li {
    flex-direction: column;
    gap: 12px;
  }
  .collection-amount {
    text-align: left;
  }
  .collection-summary {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Source-assisted drafts share the invoice editor and its ordinary review gate. */
.intake-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.intake-layout h2,
.intake-detail h2 {
  margin-bottom: 16px;
}
.intake-records {
  padding: 0;
  list-style: none;
}
.intake-records li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 0;
  border-top: 1px solid var(--border);
}
.intake-records strong,
.intake-records small {
  display: block;
  overflow-wrap: anywhere;
}
.intake-records small {
  color: var(--muted);
  margin-top: 4px;
}
.intake-source {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.intake-source summary {
  min-height: 44px;
  cursor: pointer;
  font-weight: 600;
}
.intake-source pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
  background: var(--canvas);
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 6px;
  max-height: 24rem;
  overflow: auto;
}
.intake-source h3 {
  margin-top: 20px;
}
.intake-source .btn {
  margin-top: 16px;
}
.intake-hash {
  overflow-wrap: anywhere;
}
.intake-buyer {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 48px;
}
.intake-buyer dt,
.intake-evidence dt {
  font-size: 0.875rem;
  color: var(--muted);
}
.intake-buyer dd,
.intake-evidence dd {
  margin: 4px 0 12px;
  overflow-wrap: anywhere;
}
.intake-detail table {
  width: 100%;
}
.intake-detail td small {
  display: block;
  color: var(--muted);
}
.intake-warnings {
  margin: 24px 0;
  padding: 16px 20px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--canvas);
}
.intake-warnings h3 {
  margin-top: 0;
}
.intake-warnings ul {
  padding-left: 20px;
}
.intake-warnings li {
  margin-top: 8px;
}
.intake-invoice-origin {
  margin-top: 24px;
}
.intake-invoice-origin .btn {
  margin: 12px 0 0 16px;
}
@media (max-width: 900px) {
  .intake-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}
.intake-layout form > .field {
  margin-top: 16px;
}
.intake-layout .form-grid {
  margin-top: 16px;
}
.intake-layout .checkbox-field {
  margin-top: 16px;
}
@media (max-width: 600px) {
  .intake-detail table,
  .intake-detail tbody {
    display: block;
  }
  .intake-detail thead {
    display: none;
  }
  .intake-detail tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    padding-block: 16px;
    border-top: 1px solid var(--border);
  }
  .intake-detail td {
    display: block;
    padding: 0;
    border: 0;
    overflow-wrap: anywhere;
  }
  .intake-detail td:first-child {
    grid-column: 1/-1;
  }
  .intake-detail td::before {
    content: attr(data-label);
    display: block;
    color: var(--muted);
    font-size: 0.8rem;
    margin-bottom: 4px;
  }
}

/* Daily company workspace: shared hierarchy, actionable overview and document work areas. */
[hidden] {
  display: none !important;
}
.sidebar {
  overflow-y: auto;
}
.platform-nav {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #3a4740;
}
.platform-nav > span {
  display: block;
  padding-inline: 12px;
  color: #b9cbc0;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}
.workspace-mode {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 0.75rem;
  color: var(--muted);
  text-decoration: none;
  text-align: right;
}
.workspace-mode:hover {
  text-decoration: underline;
}
.settings-nav {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 40px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.settings-nav button,
.document-tabs button,
.document-filters button {
  min-height: 44px;
  padding: 10px 14px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--muted);
  font-size: 0.875rem;
}
.settings-nav [aria-current],
.document-tabs [aria-selected="true"],
.document-filters [aria-pressed="true"] {
  background: #fff;
  color: var(--ink);
  border-color: var(--border);
  font-weight: 600;
}
.settings-nav [aria-current] {
  background: var(--canvas);
}
.product-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 24px;
}
.product-metrics > * {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  min-width: 0;
}
.product-metrics > a:hover {
  border-color: var(--green);
}
.product-metrics span {
  font-size: 0.875rem;
}
.product-metrics strong {
  font-family: inherit;
  font-size: clamp(1.5rem, 2.2vw, 2.25rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.product-metrics small {
  color: var(--muted);
  font-size: 0.75rem;
}
.readiness-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px;
  border-left: 3px solid var(--green);
  margin-bottom: 28px;
}
.readiness-panel .btn {
  flex-shrink: 0;
}
.readiness-panel h2 {
  margin-bottom: 12px;
}
.readiness-panel .field-help {
  margin-top: 10px;
}
.home-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.work-list,
.recent-documents {
  list-style: none;
  padding: 0;
  margin: 0;
}
.work-list li {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  padding: 22px 28px;
  border-top: 1px solid var(--border);
}
.work-list li > div {
  min-width: 0;
}
.work-list strong {
  font-size: 0.9375rem;
  overflow-wrap: anywhere;
}
.work-list p {
  color: var(--muted);
  font-size: 0.8125rem;
  margin-top: 6px;
}
.work-list .text-btn {
  flex-shrink: 0;
}
.scope-note {
  color: var(--muted);
  font-size: 0.75rem;
  padding: 20px 0;
}
.panel > .scope-note {
  padding: 16px 28px;
  border-top: 1px solid var(--border);
}
.recent-documents a {
  display: block;
  min-height: 44px;
  padding: 18px 28px;
  text-decoration: none;
  border-top: 1px solid var(--border);
}
.recent-documents a:hover {
  background: var(--canvas);
}
.recent-documents strong,
.recent-documents span,
.recent-documents small {
  display: block;
  overflow-wrap: anywhere;
}
.recent-documents strong {
  font-size: 0.9375rem;
}
.recent-documents span {
  font-size: 0.875rem;
  margin-top: 4px;
}
.recent-documents small {
  color: var(--muted);
  font-size: 0.75rem;
  margin-top: 4px;
}
.product-empty {
  padding: 28px;
}
.product-empty h3 {
  font-size: 1rem;
  margin-bottom: 8px;
}
.product-empty p {
  color: var(--muted);
  font-size: 0.875rem;
}
.product-empty button {
  margin-top: 16px;
}
.company-facts {
  margin: 20px 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  gap: 20px;
}
.company-facts dt {
  color: var(--muted);
  font-size: 0.8125rem;
}
.company-facts dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}
.customer-detail-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  text-decoration: underline;
  text-decoration-color: var(--border);
}
.document-summary {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  margin-bottom: 24px;
}
.document-states {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  padding: 20px 24px;
  margin: 0;
}
.document-states dt {
  font-size: 0.75rem;
  color: var(--muted);
  margin-bottom: 6px;
}
.document-states dd {
  margin: 0;
  font-size: 0.875rem;
  overflow-wrap: anywhere;
}
.document-next {
  padding: 20px 24px;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 24px;
  justify-content: space-between;
  align-items: center;
  background: var(--canvas);
}
.document-next strong {
  font-size: 0.9375rem;
}
.document-next p {
  color: var(--muted);
  font-size: 0.8125rem;
  margin-top: 6px;
  max-width: 42rem;
}
.document-next button {
  flex-shrink: 0;
}
.document-tabs,
.document-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
}
.document-tabs {
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
}
[role="tabpanel"]:focus-visible {
  outline: 3px solid var(--green);
  outline-offset: 4px;
}
.route-failure > p {
  margin-block: 16px;
}
@media (max-width: 1150px) {
  .home-columns {
    grid-template-columns: minmax(0, 1fr);
  }
  .product-metrics {
    gap: 12px;
  }
  .product-metrics > * {
    padding: 20px;
  }
  .readiness-panel {
    align-items: flex-start;
    flex-wrap: wrap;
  }
}
@media (max-width: 760px) {
  .sidebar {
    display: flex;
    flex-direction: column;
    position: relative;
  }
  .sidebar > .brand {
    margin: 0;
  }
  .sidebar-foot {
    position: absolute;
    top: 18px;
    right: 20px;
  }
  .sidebar .company-select {
    width: 100%;
  }
  .sidebar .platform-nav {
    margin-top: 4px;
    padding-top: 8px;
    width: 100%;
  }
  .platform-nav > span {
    display: none;
  }
  .sidebar nav {
    padding-top: 8px;
  }
  .platform-nav nav {
    border-top: 0;
    padding-top: 0;
  }
  .settings-nav {
    padding: 10px 20px;
  }
  .product-metrics {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .product-metrics > * {
    padding: 18px 20px;
  }
  .product-metrics strong {
    font-size: 1.875rem;
  }
  .readiness-panel {
    padding: 20px;
  }
  .work-list li {
    padding: 20px;
    flex-wrap: wrap;
    gap: 8px;
  }
  .recent-documents a {
    padding: 18px 20px;
  }
  .document-states {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 20px;
  }
  .document-next {
    flex-wrap: wrap;
    padding: 20px;
    gap: 16px;
  }
  .document-tabs button {
    font-size: 0.8125rem;
    padding-inline: 10px;
  }
  .workspace-mode {
    max-width: 60%;
    font-size: 0.6875rem;
  }
}
@media print {
  .document-summary,
  .document-tabs,
  .settings-nav,
  .document-filters {
    display: none !important;
  }
  #document-documento[hidden] {
    display: block !important;
  }
  #document-fiscal,
  #document-cobros,
  #document-notas,
  #document-origen {
    display: none !important;
  }
}
#main:focus {
  outline: none;
}
.invoice-original-link {
  margin-left: 16px;
}
.document-summary {
  overflow: hidden;
}
@media (max-width: 760px) {
  .product-metrics > * {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 4px 16px;
    align-items: center;
    padding: 16px 20px;
  }
  .product-metrics strong {
    grid-column: 2;
    grid-row: 1/3;
    text-align: right;
    font-size: 1.5rem;
  }
  .product-metrics span,
  .product-metrics small {
    grid-column: 1;
  }
  .invoice-original-link {
    margin-left: 0;
    display: flex;
  }
}
.page-heading h1, .editor-heading h1 { overflow-wrap:anywhere; }

/* Company areas remain grouped as the standalone product grows. */
.sidebar > nav { min-height: 0; overflow-y: auto; }
.nav-group { margin: .35rem 0; }
.nav-group > summary { padding: .55rem .8rem; cursor: pointer; color: var(--muted, #66736d); font-size: .76rem; font-weight: 650; letter-spacing: .03em; }
.nav-group .nav-item { padding-left: 1rem; }
@media (max-width: 760px) { .sidebar > nav { overflow: visible; } .nav-group { flex: 1 1 10rem; } }
@media (max-width: 760px) {
  .sidebar > nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
  .sidebar > nav > .nav-item:first-child { grid-column: 1 / -1; }
  .nav-group { margin: 0; min-width: 0; }
  .nav-group[open] { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nav-group[open] > summary { grid-column: 1 / -1; }
  .nav-group .nav-item { width: 100%; }
}

.company-menu { display: contents; }
.company-menu > summary { display: none; }
@media (max-width: 760px) {
 .company-menu { display: block; grid-column: 1 / -1; min-width: 0; }
 .company-menu > summary { display: list-item; cursor: pointer; padding: .75rem .2rem; border-top: 1px solid #3a4740; font-size: .85rem; color: #fff; }
}
