:root {
    color-scheme: light;
    --bg: #f4f7f9;
    --surface: #ffffff;
    --surface-soft: #edf4f5;
    --text: #17252b;
    --muted: #607179;
    --primary: #087f8c;
    --primary-dark: #05616b;
    --border: #d9e3e6;
    --danger: #b42318;
    --shadow: 0 1px 3px rgba(20, 52, 61, .07);
    --shadow-raised: 0 4px 14px rgba(20, 52, 61, .1);
    --radius-lg: 10px;
    --radius: 8px;
    --radius-sm: 6px;
    --gap: 12px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-height: 100vh;
    background: linear-gradient(145deg, #eef6f6 0%, var(--bg) 42%, #f8f5ed 100%);
    color: var(--text);
    font: 15px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: var(--primary-dark); }

.shell { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; }
.topbar { background: rgba(255,255,255,.9); border-bottom: 1px solid var(--border); backdrop-filter: blur(10px); }
.topbar__inner, .main, .footer__inner { width: min(1320px, calc(100% - 24px)); margin: 0 auto; }
.topbar__inner { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.brand { display: flex; align-items: center; gap: 9px; color: var(--text); text-decoration: none; font-weight: 750; letter-spacing: -.02em; }
.brand__mark { display: grid; place-items: center; width: 27px; height: 27px; border-radius: var(--radius-sm); color: white; background: var(--primary); font-size: .95rem; }
.context { color: var(--muted); font-size: .82rem; }
.navigation { display: flex; align-items: center; gap: 13px; }
.navigation a { color: var(--text); text-decoration: none; font-weight: 650; font-size: .9rem; }
.navigation a:hover { color: var(--primary); }
.user-menu { position: relative; margin-left: 2px; }
.user-menu__button { position: relative; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid var(--border); border-radius: 50%; color: white; background: var(--primary); cursor: pointer; list-style: none; }
.user-menu__button svg { width: 17px; height: 17px; }
.user-menu__button::-webkit-details-marker { display: none; }
.user-menu__button:hover, .user-menu__button:focus-visible, .user-menu[open] .user-menu__button { background: var(--primary-dark); outline: none; box-shadow: 0 0 0 3px rgba(8,127,140,.15); }
.user-menu__tooltip { position: absolute; z-index: 20; right: calc(100% + 8px); top: 50%; padding: 4px 8px; border-radius: var(--radius-sm); color: white; background: #17252b; font-size: .74rem; font-weight: 700; white-space: nowrap; opacity: 0; pointer-events: none; transform: translate(5px, -50%); transition: opacity .15s ease, transform .15s ease; }
.user-menu__button:hover .user-menu__tooltip, .user-menu__button:focus-visible .user-menu__tooltip { opacity: 1; transform: translate(0, -50%); }
.user-menu[open] .user-menu__tooltip { display: none; }
.user-menu__dropdown { position: absolute; z-index: 30; top: calc(100% + 7px); right: 0; width: 208px; padding: 6px; border: 1px solid var(--border); border-radius: var(--radius); background: white; box-shadow: 0 10px 28px rgba(20,52,61,.16); }
.user-menu__identity { display: grid; padding: 6px 8px 8px; margin-bottom: 3px; border-bottom: 1px solid var(--border); font-size: .88rem; }
.user-menu__identity small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.navigation .user-menu__dropdown a, .user-menu__dropdown button { display: block; width: 100%; padding: 6px 8px; border: 0; border-radius: var(--radius-sm); color: var(--text); background: transparent; text-align: left; text-decoration: none; font: inherit; font-size: .88rem; font-weight: 650; cursor: pointer; }
.navigation .user-menu__dropdown a:hover, .user-menu__dropdown button:hover { color: var(--primary-dark); background: var(--surface-soft); }
.user-menu__dropdown form { margin: 0; }
.main { padding: 16px 0 28px; }
.hero { margin-bottom: 16px; }
.eyebrow { margin: 0 0 3px; color: var(--primary-dark); font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.2; letter-spacing: -.02em; }
.lead { max-width: 760px; margin: 5px 0 0; color: var(--muted); font-size: .92rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--gap); }
.card { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow); }
.card h2 { margin: 0 0 6px; font-size: .98rem; }
.card p { margin: 0; color: var(--muted); }
.status { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; font-weight: 700; }
.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #17a673; box-shadow: 0 0 0 3px #dcf7eb; }
.notice { margin: 12px 0; padding: 9px 12px; border-radius: var(--radius); background: var(--surface-soft); border: 1px solid var(--border); font-size: .9rem; }
.notice--error { color: var(--danger); background: #fff2f0; border-color: #f4c7c3; }
.login { width: min(400px, 100%); margin: 14px auto; }
.login--two-factor { width: min(380px, 100%); padding: 18px; border-radius: var(--radius-lg); box-shadow: var(--shadow-raised); }
.login--two-factor h1 { margin-bottom: 4px; font-size: 1.35rem; letter-spacing: -.02em; }
.login--two-factor .eyebrow { margin-bottom: 4px; font-size: .65rem; }
.login--two-factor .login__intro { margin-bottom: 14px; font-size: .88rem; line-height: 1.4; }
.login--two-factor .field { margin-bottom: 10px; }
.login--two-factor .button { padding: 8px 14px; }
.remember-device { display: flex; align-items: flex-start; gap: 8px; padding: 9px 0 12px; border-top: 1px solid var(--border); color: var(--text); cursor: pointer; }
.remember-device input { flex: 0 0 auto; width: auto; margin: 3px 0 0; accent-color: var(--primary); }
.remember-device span { display: grid; gap: 1px; }
.remember-device strong { font-size: .87rem; font-weight: 700; }
.remember-device small { color: var(--muted); font-size: .75rem; line-height: 1.35; }
.field { display: grid; gap: 4px; margin-bottom: 11px; }
.field label { font-weight: 650; font-size: .84rem; }
.field input { width: 100%; padding: 7px 10px; border: 1px solid #bdcbd0; border-radius: var(--radius-sm); background: white; color: var(--text); font: inherit; font-size: .9rem; }
.field textarea { width: 100%; padding: 7px 10px; resize: vertical; border: 1px solid #bdcbd0; border-radius: var(--radius-sm); background: white; color: var(--text); font: inherit; font-size: .9rem; }
.field input:focus { outline: 2px solid rgba(8,127,140,.2); border-color: var(--primary); }
.field textarea:focus { outline: 2px solid rgba(8,127,140,.2); border-color: var(--primary); }
.password-input { display: grid; grid-template-columns: 1fr auto; }
.password-input input { min-width: 0; border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.password-input button { padding: 0 10px; border: 1px solid #bdcbd0; border-left: 0; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: #edf4f5; color: var(--primary-dark); font-weight: 700; font-size: .85rem; cursor: pointer; }
.button { width: 100%; padding: 8px 14px; border: 0; border-radius: var(--radius-sm); color: white; background: var(--primary); font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; }
.button:hover { background: var(--primary-dark); }
.button--secondary { width: auto; background: #334155; }
.button--link { display: inline-block; width: auto; text-decoration: none; }
.button--outline { width: auto; border: 1px solid var(--primary); color: var(--primary-dark); background: white; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.form-actions form { margin: 0; }
.button--outline:hover { color: white; background: var(--primary-dark); }
.notice--success { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-color: #86efac; background: #f0fdf4; }
.page-heading { margin-bottom: 12px; }
.page-heading h1 { font-size: clamp(1.3rem, 2.2vw, 1.6rem); line-height: 1.2; }
.page-heading .eyebrow { margin-bottom: 2px; font-size: .65rem; }
.page-heading .lead { margin-top: 4px; font-size: .9rem; line-height: 1.4; }
.page-heading--actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.page-heading__actions { display: flex; align-items: center; gap: 10px; }
.text-link { color: var(--primary-dark); font-weight: 700; font-size: .88rem; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.dashboard-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.dashboard-stat { display: grid; gap: 1px; min-width: 0; padding: 11px 13px; border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); background: var(--surface); box-shadow: var(--shadow); text-decoration: none; }
.dashboard-stat:hover { border-color: #a9cdd1; }
.dashboard-stat > span { color: var(--primary-dark); font-size: .67rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.dashboard-stat strong { font-size: 1.3rem; line-height: 1.2; }
.dashboard-stat small { overflow: hidden; color: var(--muted); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-stat--warning { border-color: #f1c8a7; background: #fffaf5; }
.admin-workspace { padding: 14px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: rgba(255,255,255,.76); }
.admin-workspace__heading { margin-bottom: 10px; }
.admin-toolbar { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(180px, .32fr); gap: 10px; margin-bottom: 12px; }
.admin-toolbar .field { margin-bottom: 0; }
.tenant-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tenant-admin-card { display: grid; align-content: start; min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow); }
.tenant-admin-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.tenant-admin-card__header h3 { margin: 0; font-size: 1rem; }
.tenant-admin-card__header .eyebrow { margin-bottom: 2px; font-size: .64rem; }
.tenant-admin-card__context { display: flex; flex-wrap: wrap; gap: 3px 10px; min-height: 32px; padding: 6px 0 9px; color: var(--muted); font-size: .78rem; }
.tenant-admin-card__metrics { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 9px; padding: 8px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.tenant-admin-card__metrics div { min-width: 0; padding: 0 8px; border-right: 1px solid var(--border); }
.tenant-admin-card__metrics div:first-child { padding-left: 0; }
.tenant-admin-card__metrics div:last-child { padding-right: 0; border-right: 0; }
.tenant-admin-card__metrics dt { color: var(--muted); font-size: .67rem; }
.tenant-admin-card__metrics dd { margin: 1px 0 0; font-size: .95rem; font-weight: 800; }
.tenant-admin-card__warning { margin: 0 0 8px; padding: 6px 8px; border-radius: var(--radius-sm); color: #8a4b08; background: #fff7e8; font-size: .77rem; }
.tenant-admin-card__modules { display: flex; align-content: flex-start; flex-wrap: wrap; gap: 4px; min-height: 26px; margin-bottom: 10px; }
.tenant-admin-card__modules .tenant-access { font-size: .65rem; }
.tenant-admin-card__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: auto; }
.tenant-admin-card__actions .button { width: auto; padding: 6px 11px; font-size: .84rem; }
.tenant-admin-card__actions .text-link { font-size: .81rem; }
.empty-state { margin: 12px 0 0; padding: 16px; border: 1px dashed var(--border); border-radius: var(--radius); color: var(--muted); font-size: .9rem; text-align: center; }
.admin-grid { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(340px, 1.3fr); gap: var(--gap); margin-top: 12px; }
.admin-section { overflow: hidden; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--gap); }
.form-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
fieldset { margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.check { display: inline-flex; align-items: center; gap: 6px; margin-right: 14px; font-size: .88rem; }
.text-button { padding: 0; border: 0; background: none; color: var(--primary-dark); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; }
.text-button:disabled { opacity: .45; cursor: not-allowed; }
.text-button--danger { color: var(--danger); }
.field input[readonly], .field textarea[readonly] { background: #f5f8f9; }
.muted { color: var(--muted); font-size: .82rem; }
.field select { width: 100%; padding: 7px 10px; border: 1px solid #bdcbd0; border-radius: var(--radius-sm); background: white; color: var(--text); font: inherit; font-size: .9rem; }
.field small, .field-note { color: var(--muted); font-size: .8rem; }
.field-static { min-height: 36px; margin: 0; padding: 7px 10px; border: 1px solid #bdcbd0; border-radius: var(--radius-sm); background: #f5f8f9; font-size: .9rem; }
.invoice-tax-lines { display: grid; gap: 8px; }
.invoice-tax-line { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; gap: 8px; align-items: end; padding: 9px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.invoice-tax-line .field { margin: 0; }
.invoice-tax-line__remove { align-self: end; }
.invoice-tax-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 11px 0 0; }
.invoice-tax-totals div { padding: 7px 9px; border-radius: var(--radius-sm); background: var(--surface-soft); }
.invoice-tax-totals dt { color: var(--muted); font-size: .78rem; }
.invoice-tax-totals dd { margin: 2px 0 0; font-weight: 750; }
.modal { width: min(880px, calc(100% - 24px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: var(--radius-lg); color: var(--text); background: white; box-shadow: 0 18px 50px rgba(10, 34, 42, .28); }
.modal--wide { width: min(1180px, calc(100% - 24px)); }
.modal::backdrop { background: rgba(15, 36, 43, .58); backdrop-filter: blur(3px); }
.modal form { display: flex; flex-direction: column; max-height: calc(100vh - 32px); }
.modal__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 13px 18px 11px; border-bottom: 1px solid var(--border); }
.modal__header h2 { margin: 0; font-size: 1.15rem; }
.modal__close { width: 28px; height: 28px; border: 0; border-radius: 50%; background: var(--surface-soft); color: var(--text); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.modal__body { padding: 14px 18px; overflow-y: auto; }
.modal__footer { display: flex; justify-content: flex-end; gap: 10px; padding: 11px 18px 14px; border-top: 1px solid var(--border); }
.modal__footer .button { width: auto; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.section-heading h2 { margin: 0; font-size: 1.05rem; }
.section-heading__actions { display: flex; align-items: center; gap: 12px; }
.count { min-width: 26px; padding: 3px 8px; border-radius: 999px; text-align: center; background: var(--surface-soft); font-size: .82rem; font-weight: 800; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 6px 9px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; font-size: .88rem; }
th { color: var(--muted); font-size: .69rem; letter-spacing: .04em; text-transform: uppercase; }
.badge { display: inline-block; padding: 2px 7px; border-radius: 999px; background: #edf1f2; color: #53636a; font-size: .68rem; font-weight: 800; }
.badge--active { color: #08633f; background: #dcf7eb; }
.badge--danger { color: var(--danger); background: #fff2f0; }
.badge--system { color: #4338ca; background: #eef2ff; }
.admin-protected-hint { margin: -4px 0 10px; }
.notice--warning { border-color: #f4d58d; background: #fff8e6; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.profile-grid h2, .recovery-card h2 { margin-top: 0; }
.qr-code { display: block; max-width: 190px; height: auto; margin: 12px auto; border: 8px solid white; border-radius: var(--radius); }
.recovery-card { margin-bottom: 12px; border-color: #f4d58d; background: #fffdf7; }
.recovery-codes { columns: 2; padding-left: 20px; }
.recovery-codes code { font-size: .95rem; font-weight: 800; letter-spacing: .06em; }
.button--danger { background: var(--danger); }
.trusted-devices-card { margin-top: 12px; }
.trusted-device-list { display: grid; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.trusted-device { display: grid; grid-template-columns: minmax(180px, 1.3fr) repeat(3, minmax(120px, 1fr)) auto; align-items: center; gap: 14px; padding: 9px 12px; border-bottom: 1px solid var(--border); }
.trusted-device:last-child { border-bottom: 0; }
.trusted-device strong, .trusted-device span, .trusted-device small { display: block; }
.trusted-device strong { font-size: .89rem; }
.trusted-device span, .trusted-device small { color: var(--muted); font-size: .78rem; }
.trusted-device__identity > span { margin-top: 2px; }
.trusted-device__identity .badge { display: inline-block; }
.plain-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.plain-list li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: .88rem; }
.plain-list li:last-child { border-bottom: 0; }
.plain-list strong, .plain-list small { display: block; }
.plain-list small { margin-top: 1px; color: var(--muted); }
.table-subline { display: block; margin-top: 1px; color: var(--muted); font-size: .78rem; }
.table-subline--error { max-width: 260px; overflow: hidden; color: var(--danger); text-overflow: ellipsis; white-space: nowrap; }
.compact-form { margin: 4px 0 0; }
.database-actions { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; }
.database-actions .compact-form { margin: 0; }
.form-section { padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--border); }
.form-section:last-child { margin-bottom: 0; border-bottom: 0; }
.form-section h3 { margin: 0 0 10px; font-size: .95rem; }
.form-section--soft { padding: 13px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.form-section--soft .field { margin-bottom: 0; }
.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.choice-card { display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: .88rem; cursor: pointer; }
.choice-card:has(input:checked) { border-color: var(--primary); background: #effafa; }
.choice-card strong, .choice-card small { display: block; }
.choice-card small { color: var(--muted); font-size: .78rem; }
.membership-list { display: grid; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.membership-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; padding: 8px 11px; border-bottom: 1px solid var(--border); font-size: .88rem; }
.membership-row:last-child { border-bottom: 0; }
.membership-row > label:first-child { display: flex; align-items: flex-start; gap: 8px; }
.membership-row strong, .membership-row small { display: block; }
.membership-row small { color: var(--muted); font-size: .78rem; }
.membership-row--single { grid-template-columns: 1fr; cursor: pointer; }
.membership-row__choice { display: flex; align-items: flex-start; gap: 8px; }
.platform-admin-card { margin-bottom: 12px; }
.platform-admin-card > .field-note { margin-top: -6px; }
.platform-admin-list { margin-top: 9px; }
.field--check { align-content: center; padding-top: 20px; }
.tenant-access-list { display: flex; flex-wrap: wrap; gap: 4px; min-width: 200px; }
.tenant-access { display: inline-block; padding: 2px 7px; border: 1px solid #b9d9dd; border-radius: 999px; color: var(--primary-dark); background: #effafa; font-size: .71rem; font-weight: 700; }
.tenant-access--admin { border-color: #a7c7f2; color: #194f90; background: #eff6ff; }
.tenant-access--suspended { border-color: #e8c7c3; color: var(--danger); background: #fff2f0; text-decoration: line-through; }
.tenant-assignment-list { display: grid; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.tenant-assignment-row { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: center; gap: 14px; padding: 8px 12px; border-bottom: 1px solid var(--border); }
.tenant-assignment-row:last-child { border-bottom: 0; }
.tenant-assignment-main { display: flex; align-items: flex-start; gap: 8px; font-size: .88rem; }
.tenant-assignment-main strong, .tenant-assignment-main small { display: block; }
.tenant-assignment-main small { color: var(--muted); font-size: .78rem; }
.tenant-assignment-options { display: flex; align-items: center; gap: 14px; }
.connection-workflow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: stretch; gap: 8px; margin: 2px 0 14px; }
.connection-workflow > div { display: grid; align-content: start; min-width: 0; padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.connection-workflow span { color: var(--primary-dark); font-size: .66rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.connection-workflow strong { overflow: hidden; margin: 3px 0 1px; font-size: .89rem; text-overflow: ellipsis; white-space: nowrap; }
.connection-workflow small { color: var(--muted); font-size: .77rem; }
.connection-workflow__arrow { align-self: center; font-size: 1rem !important; }
.server-configurator { padding: 13px; border: 1px solid #b9d9dd; border-radius: var(--radius); background: #f5fbfb; }
.server-configurator .section-heading { margin-bottom: 6px; }
.server-configurator .section-heading h3 { margin: 0; font-size: .95rem; }
.server-configurator textarea { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .82rem; }
.audit-filter { margin-bottom: 12px; padding-bottom: 6px; }
.audit-filter__actions { display: flex; align-items: center; gap: 12px; padding-top: 21px; }
.audit-card { overflow: hidden; }
.audit-table__time { white-space: nowrap; }
.audit-details { min-width: 80px; }
.audit-details summary { color: var(--primary-dark); font-weight: 700; cursor: pointer; }
.audit-details pre { max-width: 360px; max-height: 200px; padding: 8px; overflow: auto; border-radius: var(--radius-sm); background: #f5f8f9; font-size: .73rem; white-space: pre-wrap; }
.pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 5px; padding-top: 11px; font-size: .82rem; }
.pagination__pages { display: inline-flex; align-items: center; gap: 3px; }
.pagination__page, .pagination__direction { display: inline-grid; place-items: center; min-width: 25px; height: 25px; padding: 0 7px; border: 1px solid var(--border); border-radius: 4px; color: var(--primary-dark); background: white; font-weight: 700; line-height: 1; text-decoration: none; }
.pagination__page:hover, .pagination__page:focus-visible, .pagination__direction:hover, .pagination__direction:focus-visible { border-color: var(--primary); color: white; background: var(--primary); outline: none; }
.pagination__page--current { border-color: var(--primary-dark); color: white; background: var(--primary-dark); }
.pagination__direction--disabled { color: #a4afb4; background: #f5f7f8; cursor: default; }
.pagination__ellipsis { display: inline-grid; place-items: center; min-width: 18px; height: 25px; color: var(--muted); }
.address-filter { margin-bottom: 10px; padding: 8px 12px; border-radius: var(--radius); }
.address-alphabet { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; padding-bottom: 5px; margin-bottom: 5px; border-bottom: 1px solid var(--border); }
.address-alphabet a { display: inline-grid; place-items: center; min-width: 21px; height: 21px; padding: 0 4px; border-radius: 5px; color: var(--primary-dark); font-size: .75rem; font-weight: 800; line-height: 1; text-decoration: none; }
.address-alphabet a:hover, .address-alphabet a:focus-visible { color: white; background: var(--primary); outline: none; }
.address-alphabet__reset { margin-left: 3px; border: 1px solid var(--border); }
.address-toolbar { display: grid; grid-template-columns: minmax(220px, 1.45fr) repeat(3, minmax(120px, .55fr)) auto; gap: 7px; align-items: end; }
.address-toolbar .field { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 6px; margin-bottom: 0; }
.address-toolbar .field label { font-size: .73rem; }
.address-toolbar .field input, .address-toolbar .field select { min-height: 30px; padding: 5px 8px; border-radius: var(--radius-sm); font-size: .86rem; }
.address-toolbar__actions { display: flex; align-items: center; white-space: nowrap; }
.address-toolbar__actions .button { min-height: 30px; padding: 5px 12px; border-radius: var(--radius-sm); font-size: .86rem; }
.address-list-card { overflow: hidden; }
.address-table { min-width: 780px; }
.address-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.address-name-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.address-name { min-width: 0; font-weight: 700; }
.address-party-icon { display: inline-grid; flex: 0 0 auto; place-items: center; width: 16px; height: 16px; color: var(--primary-dark); }
.address-party-icon svg, .address-icon-link svg { width: 100%; height: 100%; }
.address-actions { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 2px; white-space: nowrap; }
.address-icon-link { display: inline-grid; place-items: center; width: 21px; height: 21px; padding: 4px; border-radius: 5px; color: var(--primary-dark); }
.address-icon-link:hover, .address-icon-link:focus-visible { color: white; background: var(--primary); outline: none; }
.address-group-create-card { margin-bottom: 10px; }
.address-group-form { display: grid; grid-template-columns: .7fr 1fr auto; align-items: end; gap: 10px; }
.address-group-form .field { margin-bottom: 0; }
.address-group-form .button { margin-bottom: 0; }
.address-group-workspace { display: grid; grid-template-columns: minmax(210px, .55fr) minmax(0, 1.45fr); align-items: start; gap: 10px; }
.address-group-navigation { position: sticky; top: 58px; }
.address-group-nav-list { display: grid; gap: 3px; }
.address-group-nav-item { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 7px 8px; border-radius: var(--radius-sm); color: var(--text); text-decoration: none; }
.address-group-nav-item:hover, .address-group-nav-item:focus-visible { background: var(--surface-soft); outline: none; }
.address-group-nav-item--active { color: var(--primary-dark); background: #effafa; }
.address-group-nav-item--inactive { opacity: .65; }
.address-group-nav-item strong, .address-group-nav-item small { display: block; }
.address-group-nav-item strong { font-size: .86rem; }
.address-group-nav-item small { color: var(--muted); font-size: .73rem; }
.address-group-main { display: grid; gap: 10px; min-width: 0; }
.address-group-edit-form { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(240px, 1.3fr) auto; align-items: end; gap: 10px; flex: 1; }
.address-group-edit-form .field { margin: 0; }
.address-group-status-form { margin-top: 7px; text-align: right; }
.address-group-search { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; align-items: end; gap: 8px; margin-bottom: 8px; }
.address-group-search .field { margin: 0; }
.address-group-search .text-link { align-self: center; }
.address-group-record-list { display: grid; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; }
.address-group-record { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 7px 9px; border-bottom: 1px solid var(--border); }
.address-group-record:last-child { border-bottom: 0; }
.address-group-record--archived { opacity: .68; }
.address-group-record__identity { display: flex; align-items: center; gap: 8px; min-width: 0; color: var(--text); text-decoration: none; }
.address-group-record__identity:hover strong, .address-group-record__identity:focus-visible strong { color: var(--primary-dark); text-decoration: underline; }
.address-group-record__identity strong, .address-group-record__identity small { display: block; }
.address-group-record__identity strong { font-size: .86rem; }
.address-group-record__identity small { overflow: hidden; color: var(--muted); font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.address-party-mark { display: inline-grid; flex: 0 0 auto; place-items: center; width: 21px; height: 21px; border-radius: 50%; color: var(--primary-dark); background: #e7f4f5; font-size: .67rem; font-weight: 800; }
.duplicate-groups { display: grid; gap: 12px; }
.duplicate-group { padding: 10px; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.duplicate-addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.duplicate-addresses > div { display: grid; gap: 2px; padding: 7px; background: var(--surface-soft); border-radius: var(--radius-sm); }
.duplicate-addresses small, .duplicate-addresses span { color: var(--muted); }
.duplicate-merge-form { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 10px; margin-top: 9px; }
.duplicate-merge-form .field { margin: 0; }
.compact-filter { display: flex; align-items: end; gap: 10px; margin-bottom: 10px; }
.compact-filter label { display: grid; gap: 3px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.import-issues { display: grid; gap: 8px; }
.import-issue { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); align-items: end; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--border); }
.import-issue__content { display: grid; gap: 4px; }
.import-issue__content small { color: var(--muted); }
.import-issue__content p { margin: 2px 0 0; }
.import-issue__form { display: grid; grid-template-columns: 1fr 150px auto; align-items: end; gap: 8px; }
.import-issue__form .field { margin: 0; }
.address-contact-row { min-width: 0; margin: 0 0 9px; padding: 8px 10px 10px; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.address-contact-row[hidden] { display: none !important; }
.address-contact-row__header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.address-contact-row__header legend { padding: 0; font-size: .8rem; font-weight: 750; }
.address-contact-fields { display: grid; gap: 9px; }
.address-contact-fields--person { grid-template-columns: minmax(80px, .45fr) minmax(90px, .55fr) minmax(180px, 1.2fr) minmax(150px, 1fr) minmax(150px, 1fr); }
.address-contact-fields--channels { grid-template-columns: repeat(4, minmax(150px, 1fr)); margin-top: 7px; }
.address-contact-fields .field { margin: 0; }
.field-group-label { margin: 11px 0 5px; color: var(--muted); font-size: .76rem; font-weight: 750; }
.input-with-action { display: flex; align-items: center; gap: 6px; }
.input-with-action input { min-width: 0; }
.input-with-action .text-button { flex: 0 0 auto; padding: 4px 7px; }
.address-record-form { display: block; }
.address-record-heading { margin-bottom: 11px; }
.address-record-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.address-duplicate-warning { display: grid; gap: 9px; margin-bottom: var(--gap); border-color: #e8c66a; background: #fffaf0; }
.address-duplicate-warning > p { max-width: none; }
.address-duplicate-warning__list { display: grid; gap: 6px; }
.address-duplicate-warning__list article { display: grid; grid-template-columns: minmax(170px, 1.1fr) minmax(190px, 1.4fr) minmax(190px, 1.5fr) auto auto; align-items: center; gap: 8px 12px; padding: 7px 9px; border: 1px solid #eadcae; border-radius: var(--radius-sm); background: rgba(255,255,255,.72); }
.address-duplicate-warning__list article > div { display: grid; }
.address-duplicate-warning__list small, .address-duplicate-warning__list article > span { color: var(--muted); }
.address-duplicate-warning__reasons { font-weight: 650; color: #775b12 !important; }
.address-version { position: relative; margin-left: 3px; }
.address-version > summary { color: var(--muted); font-size: .75rem; font-weight: 650; cursor: pointer; list-style: none; }
.address-version > summary::-webkit-details-marker { display: none; }
.address-version > summary:hover, .address-version > summary:focus-visible { color: var(--primary-dark); text-decoration: underline; outline: none; }
.address-version__popover { display: none; position: absolute; z-index: 45; top: calc(100% - 1px); left: 0; width: min(700px, calc(100vw - 36px)); max-height: min(620px, calc(100vh - 110px)); padding: 11px; overflow: auto; border: 1px solid var(--border); border-radius: var(--radius); background: white; box-shadow: 0 16px 42px rgb(15 23 42 / 20%); }
.address-version[open] .address-version__popover, .address-version:hover .address-version__popover, .address-version:focus-within .address-version__popover { display: block; }
.address-version__popover > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid var(--border); }
.address-version__popover > header strong { font-size: .9rem; }
.address-version__popover > header span { color: var(--muted); font-size: .74rem; }
.address-version__popover ol { display: grid; margin: 0; padding: 0; list-style: none; }
.address-version__popover li { padding: 8px 1px; border-bottom: 1px solid var(--border); }
.address-version__popover li:last-child { border-bottom: 0; }
.address-version__popover li > strong { display: block; margin-top: 2px; font-size: .83rem; }
.address-version__popover li > p, .address-version__popover li > small { display: block; margin: 2px 0 0; color: var(--muted); font-size: .75rem; }
.address-version__meta { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: .7rem; }
.address-version__popover dl { display: grid; gap: 3px; margin: 6px 0 0; }
.address-version__popover dl > div { display: grid; grid-template-columns: 145px minmax(0, 1fr); gap: 9px; padding: 5px 7px; border-radius: 4px; background: var(--surface-soft); }
.address-version__popover dt { color: var(--muted); font-size: .73rem; font-weight: 700; }
.address-version__popover dd { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 6px; margin: 0; font-size: .76rem; overflow-wrap: anywhere; }
.address-version__popover dd b { color: var(--muted); }
.copy-source { padding: 0; border: 0; color: inherit; background: transparent; font: inherit; text-align: left; cursor: copy; }
.copy-source:hover { color: var(--primary-dark); text-decoration: underline; }
.copy-source--icon { flex: 0 0 auto; color: var(--muted); font-size: 1rem; text-decoration: none; }
.copy-source--icon:hover { text-decoration: none; }
.copy-tray-count { display: inline-grid; min-width: 19px; min-height: 19px; place-items: center; margin-left: 3px; border-radius: 999px; color: var(--primary-dark); background: var(--surface-soft); font-size: .72rem; }
.copy-tray { position: fixed; z-index: 30; right: 18px; bottom: 18px; width: min(390px, calc(100vw - 28px)); padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: white; box-shadow: 0 18px 48px rgb(15 23 42 / 20%); }
.copy-tray__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.copy-tray__header h2 { margin: 0; }
.copy-tray__close { padding: 0 4px; border: 0; color: var(--muted); background: transparent; font-size: 1.35rem; cursor: pointer; }
.copy-tray__contact { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; margin: 10px 0 4px !important; }
.copy-tray__contact select { min-width: 0; min-height: 30px; padding: 4px 28px 4px 8px; font-size: .8rem; }
.copy-tray__presets { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.copy-tray__presets button { padding: 4px 8px; border: 1px solid var(--border); border-radius: 999px; color: var(--primary-dark); background: var(--surface-soft); font: inherit; font-size: .78rem; cursor: pointer; }
.copy-tray > label { display: block; margin-bottom: 4px; font-size: .78rem; font-weight: 700; }
.copy-tray textarea { width: 100%; resize: vertical; font: .86rem/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; }
.copy-tray__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 8px; }
.copy-tray__status { min-height: 1.1em; margin: 5px 0 0; color: var(--muted); font-size: .76rem; text-align: right; }
.address-record-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.address-record-card { min-width: 0; }
.address-record-card--wide { grid-column: 1 / -1; }
.record-reference { color: var(--muted); font-size: .77rem; font-weight: 700; white-space: nowrap; }
.detail-list--address { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
.detail-list--address div:nth-last-child(-n + 2) { border-bottom: 0; }
.address-choice-set { padding: 0; margin: 0 0 14px; border: 0; }
.address-choice-set:last-child { margin-bottom: 0; }
.address-choice-set legend { margin-bottom: 7px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.address-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; }
.address-record-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 0 3px; }
.address-record-danger { display: flex; justify-content: flex-end; padding-top: 12px; }
.address-record-danger form { margin: 0; }
.document-toolbar { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); align-items: end; gap: 10px; }
.document-toolbar .field { margin: 0; }
.document-toolbar__search { grid-column: span 2; }
.document-toolbar__actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.document-table td:last-child form { margin: 0; }
.document-addresses { display: flex; flex-wrap: wrap; gap: 3px 8px; }
.document-create-form { display: grid; gap: var(--gap); }
.document-record-form { display: grid; gap: var(--gap); }
.document-record-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: var(--gap); margin-bottom: var(--gap); }
.document-record-grid__full { grid-column: 1 / -1; }
.document-address-picker__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 230px; margin-top: 7px; overflow: auto; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.document-address-picker__options label { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 6px 9px; border-bottom: 1px solid var(--border); cursor: pointer; }
.document-address-picker__options label:nth-child(odd) { border-right: 1px solid var(--border); }
.document-address-picker__options label[hidden] { display: none; }
.document-address-picker__options input { flex: 0 0 auto; width: auto; }
.document-address-picker__options span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-address-picker__options > div { min-width: 0; border-bottom: 1px solid var(--border); }
.document-address-picker__options > div:nth-child(odd) { border-right: 1px solid var(--border); }
.document-address-picker__options > div > label { padding: 6px 9px; }
.document-address-picker__mapping { display: flex; align-items: center; gap: 7px; padding: 0 9px 7px; overflow: visible !important; white-space: normal !important; }
.document-address-picker__mapping label { padding: 0; border: 0; font-size: .76rem; }
.document-address-picker__mapping select { min-width: 0; flex: 1; padding: 3px 5px; font-size: .76rem; }
.document-address-links { display: flex; flex-wrap: wrap; gap: 6px; }
.document-address-links a, .document-address-links span { padding: 4px 8px; border-radius: 999px; background: var(--surface-soft); font-size: .82rem; }
.document-version-table td { vertical-align: top; }
.document-list-files { display: grid; gap: 2px; }
.document-list-files a { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-file-manager { margin-top: var(--gap); }
.document-file-manager__list, .document-file-list { display: grid; gap: 9px; }
.document-file-editor, .document-file-card { padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.document-file-editor > header, .document-file-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.document-file-editor > header > div, .document-file-card > header > div { display: grid; min-width: 0; }
.document-file-editor > header strong, .document-file-card > header strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-file-editor > header span, .document-file-card > header span { color: var(--muted); font-size: .78rem; }
.document-file-editor > header > .document-file-actions, .document-file-card > header > .document-file-actions { display: flex; grid-auto-flow: column; align-items: center; gap: 8px; }
.document-version-form { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto; align-items: end; gap: 10px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--border); }
.document-version-form .field, .document-add-files-form .field { margin: 0; }
.document-add-files-form { display: grid; grid-template-columns: minmax(280px, 1fr) auto; align-items: end; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.document-file-buffer__summary { margin-top: 7px; color: var(--muted); font-size: .78rem; }
.document-file-buffer__summary--warning { color: var(--danger); font-weight: 700; }
.document-file-buffer__list { display: grid; gap: 4px; margin: 7px 0 0; padding: 0; list-style: none; }
.document-file-buffer__list:empty { display: none; }
.document-file-buffer__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 9px; padding: 5px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.document-file-buffer__name { overflow: hidden; font-size: .82rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.document-file-buffer__size { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.document-file-buffer__remove { padding: 1px 4px; border: 0; background: transparent; color: var(--danger); font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; }
.document-file-buffer__preview { grid-column: 1 / -1; border-top: 1px solid var(--border); }
.document-file-buffer__preview summary { padding: 6px 0 0; color: var(--primary-dark); cursor: pointer; font-size: .78rem; font-weight: 700; }
.document-file-buffer__preview-frame { display: grid; place-items: center; min-height: 180px; max-height: 620px; margin-top: 7px; overflow: auto; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; }
.document-file-buffer__preview-frame object { width: 100%; height: 520px; border: 0; }
.document-file-buffer__preview-open { display: inline-block; margin-top: 7px; color: var(--primary-dark); font-size: .78rem; font-weight: 700; }
.document-file-pages { display: inline-flex; align-items: center; gap: 2px; min-width: 0; padding: 0 3px; border: 1px solid var(--border); border-radius: 3px; background: var(--surface-soft); font-size: .82rem; font-weight: 800; line-height: 1.2; }
.document-file-pages a { color: var(--primary-dark); text-decoration: none; }
.document-file-pages a:hover, .document-file-pages a:focus-visible { color: var(--primary); }
.document-file-pages .document-file-pages__count { color: var(--text); }
.document-addresses { display: flex; align-items: center; gap: 2px; }
.document-category-cell { display: inline-flex; align-items: center; gap: 5px; }
.document-quick-icon { display: inline-grid; width: 20px; height: 20px; padding: 3px; border: 0; border-radius: 4px; color: var(--primary-dark); background: transparent; cursor: pointer; }
.document-quick-icon:hover, .document-quick-icon:focus-visible { background: var(--surface-soft); color: var(--primary); }
.document-quick-icon svg { width: 100%; height: 100%; fill: currentColor; }
.document-quick-icon--danger { color: var(--danger); }
.document-date-caption, .document-received-date { display: block; font-size: .76rem; font-style: italic; font-weight: 400; letter-spacing: normal; text-transform: none; }
.quick-address-dialog { width: min(620px, calc(100vw - 32px)); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: 0 18px 50px rgba(15, 23, 42, .25); }
.quick-address-dialog::backdrop { background: rgba(15, 23, 42, .45); }
.quick-address-dialog form { margin: 0; }
.quick-address-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--gap); padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.quick-address-dialog__header h2 { margin: 0; }
.dialog-close { border: 0; background: transparent; color: var(--muted); font-size: 1.35rem; line-height: 1; cursor: pointer; }
.quick-address-dialog__selected { display: flex; flex-wrap: wrap; gap: 6px; min-height: 32px; margin: 14px 0; color: var(--muted); font-size: .85rem; }
.quick-address-dialog__selected span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border-radius: 999px; background: var(--surface-soft); color: var(--text); font-weight: 700; }
.quick-address-dialog__selected button { border: 0; background: transparent; color: var(--danger); cursor: pointer; font-size: 1rem; line-height: 1; }
.quick-address-dialog__results { display: grid; gap: 3px; max-height: 260px; margin-top: 6px; overflow: auto; color: var(--muted); font-size: .84rem; }
.quick-address-dialog__results button { padding: 7px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; color: var(--text); text-align: left; cursor: pointer; }
.quick-address-dialog__results button:hover { background: var(--surface-soft); }
.quick-address-dialog footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.document-file-buffer__preview-frame img { display: block; max-width: 100%; max-height: 600px; object-fit: contain; }
.document-file-card details { margin-top: 8px; border-top: 1px solid var(--border); }
.document-file-card summary { padding: 7px 0 0; color: var(--primary-dark); font-size: .8rem; font-weight: 700; cursor: pointer; }
.document-file-card .table-wrap { margin-top: 7px; background: white; }
.document-preview__frame { margin-top: 8px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-sm); background: white; }
.document-preview__frame iframe { display: block; width: 100%; height: min(70vh, 720px); border: 0; }
.document-preview__frame img { display: block; max-width: 100%; max-height: 720px; margin: 0 auto; object-fit: contain; }
.document-history { display: grid; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; }
.document-history details { padding: 0 10px; border-bottom: 1px solid var(--border); }
.document-history details:last-child { border-bottom: 0; }
.document-history summary { display: grid; grid-template-columns: 100px minmax(180px, 1fr) auto; gap: 12px; align-items: center; padding: 8px 0; cursor: pointer; }
.document-history summary time, .document-history summary span { color: var(--muted); font-size: .78rem; }
.document-history details > p { padding: 0 0 8px; }
.document-history dl { display: grid; gap: 4px; margin: 0 0 9px; }
.document-history dl div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px; padding: 5px 7px; border-radius: 4px; background: var(--surface-soft); font-size: .8rem; }
.document-history dt { color: var(--muted); font-weight: 700; }
.document-history dd { margin: 0; overflow-wrap: anywhere; }
.document-history del { color: var(--danger); }
.document-history ins { color: var(--primary-dark); text-decoration: none; }
.address-document-list { display: grid; gap: 5px; }
.address-document-list article { display: grid; grid-template-columns: 95px minmax(180px, 1fr) 140px auto; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); }
.address-document-list article:last-child { border-bottom: 0; }
.address-document-list time, .address-document-list span { color: var(--muted); }
@media (max-width: 760px) {
    .document-record-grid, .document-address-picker__options { grid-template-columns: 1fr; }
    .invoice-tax-line, .invoice-tax-totals { grid-template-columns: 1fr; }
    .document-version-form, .document-add-files-form { grid-template-columns: 1fr; }
    .document-file-editor > header, .document-file-card > header { align-items: flex-start; flex-direction: column; }
    .document-file-editor > header > .document-file-actions, .document-file-card > header > .document-file-actions { grid-auto-flow: row; }
    .document-address-picker__options label:nth-child(odd) { border-right: 0; }
    .document-history summary { grid-template-columns: 1fr; gap: 2px; }
    .document-history dl div { grid-template-columns: 1fr; }
}
.address-bank-accounts { display: grid; gap: 10px; }
.address-bank-account { margin: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.address-bank-account legend { padding: 0 5px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.address-bank-account__iban { grid-column: span 1; }
.address-bank-account__options { display: flex; align-items: center; gap: 18px; min-height: 26px; }
.check--danger { color: var(--danger); }
.bank-account-list { display: grid; gap: 10px; }
.bank-account-summary { padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.bank-account-summary:last-child { padding-bottom: 0; border-bottom: 0; }
.bank-account-summary > div { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; }
.bank-account-value { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .02em; }
.bank-validation { margin: 5px 0 0; font-size: .78rem; }
.bank-validation--warning { color: #9a5b00; }
.archived-bank-accounts { margin-top: 8px; border-top: 1px solid var(--border); padding-top: 8px; }
.archived-bank-accounts summary { color: var(--muted); font-size: .82rem; font-weight: 700; cursor: pointer; }
.archived-bank-account { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: .82rem; }
.archived-contact-people { margin: 8px 0; border-top: 1px solid var(--border); padding-top: 8px; }
.archived-contact-people summary { color: var(--muted); font-size: .82rem; font-weight: 700; cursor: pointer; }
.archived-contact-person { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: .82rem; }
.detail-list { display: grid; gap: 0; margin: 0; }
.detail-list div { display: grid; grid-template-columns: minmax(110px, .4fr) 1fr; gap: 14px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: .88rem; }
.detail-list div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--muted); }
.detail-list dd { margin: 0; font-weight: 600; }
.detail-list--editing input, .detail-list--editing select, .detail-list--editing textarea { width: 100%; min-height: 0; padding: 3px 6px; font: inherit; font-weight: 600; }
.detail-list--editing textarea { display: block; resize: vertical; }
.contact-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 9px; }
.contact-card { min-width: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.contact-card__header { display: flex; align-items: center; gap: 7px; padding-bottom: 7px; border-bottom: 1px solid var(--border); }
.contact-card__header h3 { min-width: 0; margin: 0; font-size: .9rem; overflow-wrap: anywhere; }
.contact-card__header > div { min-width: 0; }
.contact-card__header p { margin: 2px 0 0; color: var(--muted); font-size: .75rem; }
.contact-card__icon { display: inline-grid; flex: 0 0 auto; place-items: center; width: 18px; height: 18px; color: var(--primary-dark); }
.contact-card__icon svg { width: 100%; height: 100%; }
.contact-card__details { display: grid; gap: 0; margin: 4px 0 0; }
.contact-card__details div { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 8px; padding: 4px 0; }
.contact-card__details dt { color: var(--muted); font-size: .76rem; }
.contact-card__details dd { min-width: 0; margin: 0; font-size: .84rem; font-weight: 650; overflow-wrap: anywhere; }
.contact-card__details a { overflow-wrap: anywhere; }
.address-notes { color: var(--text) !important; white-space: normal; overflow-wrap: anywhere; }
.footer { border-top: 1px solid var(--border); color: var(--muted); }
.footer__inner { padding: 11px 0; font-size: .8rem; }

@media (max-width: 620px) {
    .topbar__inner { align-items: flex-start; flex-direction: column; padding: 9px 0; gap: 3px; }
    .main { padding: 12px 0 22px; }
    .navigation { align-items: flex-start; flex-wrap: wrap; gap: 6px 12px; }
    .user-menu { margin-left: auto; }
    .admin-grid { grid-template-columns: 1fr; }
    .profile-grid { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr; gap: 0; }
    .form-grid--four, .form-grid--three, .choice-grid, .address-contact-fields { grid-template-columns: 1fr; }
    .page-heading--actions { align-items: flex-start; flex-direction: column; gap: 9px; }
    .page-heading__actions { align-items: center; flex-direction: row; flex-wrap: wrap; gap: 8px; }
    .dashboard-stats, .tenant-admin-grid, .admin-toolbar { grid-template-columns: 1fr; }
    .tenant-admin-card__metrics { grid-template-columns: repeat(2, 1fr); gap: 8px 0; }
    .tenant-admin-card__metrics div:nth-child(2) { border-right: 0; }
    .tenant-admin-card__metrics div:nth-child(3) { padding-left: 0; }
    .modal__header, .modal__body, .modal__footer { padding-left: 13px; padding-right: 13px; }
    .notice--success { align-items: flex-start; flex-direction: column; }
    .tenant-assignment-row { grid-template-columns: 1fr; gap: 6px; }
    .tenant-assignment-options { align-items: flex-start; flex-direction: column; gap: 5px; padding-left: 20px; }
    .connection-workflow { grid-template-columns: 1fr; }
    .connection-workflow__arrow { justify-self: center; transform: rotate(90deg); }
    .trusted-device { grid-template-columns: 1fr; gap: 8px; }
    .audit-filter__actions { align-items: flex-start; padding-top: 0; }
    .address-toolbar, .address-group-workspace, .address-group-form, .address-group-edit-form, .address-group-search, .duplicate-merge-form, .import-issue, .import-issue__form, .document-toolbar { grid-template-columns: 1fr; }
    .document-toolbar__search { grid-column: auto; }
    .document-toolbar__actions { justify-content: flex-start; }
    .address-group-navigation { position: static; }
    .address-group-status-form { text-align: left; }
    .archived-bank-account, .archived-contact-person { align-items: flex-start; flex-direction: column; }
    .compact-filter { align-items: flex-start; flex-direction: column; }
    .address-record-grid, .detail-list--address, .address-choice-grid { grid-template-columns: 1fr; }
    .address-duplicate-warning__list article { grid-template-columns: 1fr; align-items: start; }
    .address-document-list article { grid-template-columns: 1fr; }
    .address-version { width: 100%; margin-left: 0; }
    .address-version__popover { position: fixed; top: 70px; right: 10px; left: 10px; width: auto; max-height: calc(100vh - 90px); }
    .address-version__popover dl > div, .address-version__popover dd { grid-template-columns: 1fr; }
    .detail-list--address div { border-bottom: 1px solid var(--border); }
    .detail-list--address div:last-child { border-bottom: 0; }
    .address-record-card--wide { grid-column: auto; }
    .address-record-footer { align-items: stretch; flex-direction: column-reverse; }
    .address-record-footer .button { justify-content: center; }
    .address-toolbar__actions { align-items: flex-start; }
}

@media (min-width: 621px) and (max-width: 900px) {
    .form-grid--four, .form-grid--three, .choice-grid, .address-contact-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tenant-admin-grid { grid-template-columns: 1fr; }
    .address-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .document-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .document-toolbar__actions { grid-column: span 2; justify-content: flex-start; }
    .address-group-workspace { grid-template-columns: 1fr; }
    .import-issue { grid-template-columns: 1fr; }
}

@media print {
    .topbar, .footer, .profile-grid, .notice, .recovery-card button { display: none !important; }
    .recovery-card { display: block; border: 0; box-shadow: none; }
}
