:root { color: #1f2528; background: #f5f7f8; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-synthesis: none; text-rendering: optimizeLegibility; } * { box-sizing: border-box; } body { margin: 0; } button, input, select, textarea { font: inherit; } button, select, input, textarea { min-height: 38px; border: 1px solid #cfd7dc; border-radius: 6px; background: #ffffff; color: #1f2528; } input, select, textarea { width: 100%; padding: 0 10px; } textarea { min-height: 72px; padding-top: 9px; resize: vertical; } button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 12px; cursor: pointer; background: #1f6f68; border-color: #1f6f68; color: #ffffff; white-space: nowrap; } button.secondary { width: 100%; margin-top: 10px; background: #ffffff; color: #1f2528; border-color: #aab6bc; } button.inline-button { width: auto; margin-top: 0; } button.icon-button { width: 38px; min-width: 38px; padding: 0; } button.danger { background: #9a321f; border-color: #9a321f; } button:disabled, input:disabled, select:disabled, textarea:disabled { opacity: 0.55; cursor: not-allowed; } h1, h2, h3 { margin: 0; letter-spacing: 0; } h1 { font-size: 26px; line-height: 1.15; } h2 { font-size: 17px; margin-bottom: 12px; } h3 { font-size: 15px; line-height: 1.25; } table { width: 100%; border-collapse: collapse; } th, td { padding: 10px 8px; border-bottom: 1px solid #e0e5e8; text-align: left; vertical-align: middle; } th { color: #607079; font-size: 12px; font-weight: 700; text-transform: uppercase; } td span { display: block; color: #68767d; font-size: 12px; margin-top: 2px; } .shell { min-height: 100vh; } .topbar { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 24px; border-bottom: 1px solid #dce3e6; background: #ffffff; } .topbar span { color: #607079; } .topbar-actions { display: flex; align-items: center; gap: 10px; } .topbar-actions select { min-width: 220px; } .page-rail { position: sticky; top: 75px; z-index: 1; display: flex; gap: 6px; overflow-x: auto; padding: 10px 24px; border-bottom: 1px solid #dce3e6; background: #ffffff; } .page-rail button { min-height: 36px; background: #ffffff; border-color: transparent; color: #3d484d; } .page-rail button.active { background: #1f6f68; border-color: #1f6f68; color: #ffffff; } .page { padding: 18px 24px 32px; } .layout { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: 18px; padding: 18px 24px 32px; } .workspace { display: grid; gap: 18px; min-width: 0; } .setup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; } .wide-panel { grid-column: 1 / -1; } .panel, aside.panel > section { background: #ffffff; border: 1px solid #dce3e6; border-radius: 8px; padding: 16px; } aside.panel { display: grid; align-content: start; gap: 18px; background: transparent; border: 0; padding: 0; } .grid { display: grid; gap: 18px; } .grid.two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .stack { display: grid; gap: 8px; margin-bottom: 14px; } .form-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; align-items: end; } .form-grid .wide { grid-column: span 2; } .field { display: grid; gap: 4px; min-width: 0; color: #3d484d; font-size: 12px; font-weight: 650; line-height: 1.2; } .field > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .field input, .field select, .field textarea { font-size: 14px; font-weight: 400; } .topbar-field { grid-template-columns: auto minmax(220px, 1fr); align-items: center; gap: 8px; } .section-select-field { min-width: 220px; } .management-list { display: grid; gap: 8px; margin-top: 14px; } .connector-item { display: grid; gap: 6px; } .connector-meta { margin-top: 0; } .management-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(120px, 180px) repeat(3, 38px); gap: 8px; align-items: end; padding: 8px; border: 1px solid #e0e5e8; border-radius: 8px; } .management-row.account-row { grid-template-columns: minmax(140px, 1fr) minmax(120px, 1fr) minmax(120px, 160px) minmax(120px, 150px) minmax(120px, 150px) auto 38px 38px; } .management-row.connector-row { grid-template-columns: minmax(140px, 1fr) minmax(120px, 150px) minmax(120px, 150px) minmax(110px, 140px) minmax(140px, 1fr) minmax(120px, 1fr) minmax(180px, 1.2fr) auto 38px 38px; } .management-row.recurring-row { grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) minmax(100px, 120px) minmax(110px, 130px) minmax(130px, 150px) minmax(120px, 160px) minmax(120px, 160px) minmax(120px, 160px) minmax(120px, 140px) minmax(130px, 150px) minmax(110px, 130px) 38px 38px; } .management-row.taxonomy-row { grid-template-columns: minmax(130px, 1fr) minmax(140px, 1fr) minmax(150px, 1fr) auto 38px 38px; } .management-row.tag-row { grid-template-columns: minmax(140px, 1fr) 38px 38px; } .compact-check { min-height: 38px; white-space: nowrap; } .form-grid > button, .management-row > button, .form-grid > .checkbox, .management-row > .checkbox { align-self: end; } .fints-grid { grid-template-columns: repeat(5, minmax(120px, 1fr)); } .mail-grid { grid-template-columns: repeat(5, minmax(120px, 1fr)); } .statement-grid { grid-template-columns: repeat(5, minmax(120px, 1fr)); } .compact-form { grid-template-columns: repeat(4, minmax(120px, 1fr)); } .checkbox { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; color: #3d484d; } .checkbox input { width: auto; min-height: auto; } .summary-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; } .summary-list span { border: 1px solid #dce3e6; border-radius: 999px; padding: 4px 9px; color: #54646c; font-size: 12px; } .scope-list span { max-width: 100%; overflow-wrap: anywhere; border-radius: 6px; } .metric-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 12px; } .wide-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 14px; margin-bottom: 0; } .metric { min-height: 74px; border: 1px solid #dce3e6; border-radius: 8px; padding: 12px; } .metric span { display: block; color: #607079; font-size: 12px; margin-bottom: 6px; } .metric strong { font-size: 22px; } .list { display: grid; gap: 8px; } .row-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 10px; border: 1px solid #dce3e6; border-radius: 8px; } .row-card span { display: block; max-width: 42ch; overflow: hidden; color: #607079; text-overflow: ellipsis; white-space: nowrap; } .reconcile-list { margin-top: 10px; } .review-list { display: grid; gap: 10px; margin-top: 12px; } .review-card { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(300px, 0.75fr); gap: 14px; align-items: start; padding: 12px; border: 1px solid #dce3e6; border-radius: 8px; background: #ffffff; } .review-main { display: grid; gap: 8px; min-width: 0; } .review-select { align-self: start; } .review-main span, .linked-event span, .linked-event small, .muted-note { display: block; color: #607079; font-size: 12px; } .linked-event { display: grid; gap: 3px; padding-top: 8px; border-top: 1px solid #e0e5e8; } .review-actions { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 8px; align-items: end; } .review-edit-grid { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)); gap: 8px; align-items: end; padding-top: 8px; border-top: 1px solid #e0e5e8; } .review-edit-grid .wide { grid-column: span 2; } .review-edit-grid > button { align-self: end; } .review-link-field { grid-column: 1 / -1; } .review-filters { grid-template-columns: auto minmax(180px, 240px) auto; } .review-batch-actions { align-items: center; margin-bottom: 8px; } .import-run-detail { display: grid; gap: 14px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #dce3e6; } .reconcile-card { align-items: stretch; } .reconcile-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; min-width: 0; } .reconcile-event { min-width: 0; } .reconcile-event span, .reconcile-actions span, .reconcile-event small { display: block; max-width: none; overflow: visible; color: #68767d; font-size: 12px; margin-top: 2px; text-overflow: clip; white-space: normal; } .reconcile-event strong { display: block; overflow-wrap: anywhere; } .reconcile-actions { display: grid; grid-template-columns: minmax(90px, 1fr) auto auto; align-items: center; gap: 12px; min-width: 250px; } .status { display: inline-flex; align-items: center; min-height: 26px; border-radius: 999px; padding: 0 9px; background: #edf1f2; color: #425158; font-size: 12px; text-transform: capitalize; white-space: nowrap; } .status.confirmed, .status.booked, .status.settled, .status.candidate_created { background: #e3f4ec; color: #176342; } .status.outstanding, .status.announced { background: #fff2d8; color: #7a4d00; } .status.duplicate_source, .status.error { background: #ffe7e3; color: #9a321f; } .table-wrap { overflow-x: auto; } .selected-row td { background: #eef6f5; } .compact-table { margin-top: 14px; } .actions { display: flex; gap: 6px; } .actions button { width: 34px; height: 34px; min-height: 34px; padding: 0; } .section-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; } .section-title h2 { margin-bottom: 0; } .section-title select { max-width: 260px; } .table-filters { display: grid; grid-template-columns: auto minmax(160px, 260px) minmax(150px, 190px); gap: 8px; align-items: center; } .event-detail { display: grid; gap: 14px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #dce3e6; } .event-edit-form { display: grid; gap: 10px; } .event-detail .section-title span { display: block; margin-top: 3px; color: #607079; font-size: 12px; } .tag-picker { display: flex; flex-wrap: wrap; gap: 8px 12px; min-height: 38px; align-items: center; } .inspector-row { display: grid; gap: 8px; } .inspector-section { display: grid; gap: 8px; } .inline-actions { display: flex; flex-wrap: wrap; gap: 8px; } .detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; } .detail-grid section { display: grid; align-content: start; gap: 10px; min-width: 0; } .detail-card span { white-space: normal; } .fints-prompt { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 260px) auto; gap: 10px; align-items: end; margin-top: 14px; padding: 12px; border: 1px solid #cfd7dc; border-radius: 8px; background: #f8fafb; } .challenge strong, .challenge span { display: block; } .challenge span { color: #3d484d; margin-top: 4px; } .challenge img { display: block; max-width: 220px; max-height: 220px; margin-top: 10px; border: 1px solid #cfd7dc; border-radius: 6px; } .error { margin: 16px 24px 0; padding: 10px 12px; border: 1px solid #f0b5aa; border-radius: 8px; background: #fff0ed; color: #8d2f1e; } @media (max-width: 1120px) { .layout, .grid.two, .grid.three, .setup-grid { grid-template-columns: 1fr; } .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wide-panel { grid-column: auto; } .management-row, .management-row.account-row, .management-row.connector-row, .management-row.recurring-row, .management-row.taxonomy-row, .management-row.tag-row, .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .review-card { grid-template-columns: 1fr; } .review-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 680px) { .topbar { position: static; align-items: stretch; flex-direction: column; padding: 14px; } .topbar-actions { align-items: stretch; flex-direction: column; } .topbar-actions select { min-width: 0; } .page-rail { position: static; padding: 8px 14px; } .page, .layout { padding: 14px; } .form-grid, .fints-grid, .mail-grid, .statement-grid, .metric-row, .wide-metrics, .management-row, .management-row.account-row, .management-row.connector-row, .management-row.recurring-row, .management-row.taxonomy-row, .management-row.tag-row, .table-filters, .reconcile-main, .reconcile-actions, .review-card, .review-actions, .review-edit-grid, .review-filters, .detail-grid, .compact-form { grid-template-columns: 1fr; } .fints-prompt { grid-template-columns: 1fr; } .form-grid .wide { grid-column: span 1; } .review-edit-grid .wide { grid-column: span 1; } }