/* Shared visual contract: change here, never duplicate a theme in a module. */
@font-face{font-family:Poppins;src:url('fonts/poppins-latin-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url('fonts/poppins-latin-500.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url('fonts/poppins-latin-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Poppins;src:url('fonts/poppins-latin-700.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{--color-ink:#1b1d24;--color-page:#fff;--color-soft:#f0f1f4;--color-link:#24328f;--color-action:#24328f;--color-line:#d5d9e3;--color-danger:#9d2828;--content-width:1600px;--table-heading-height:44px;font-family:Poppins,system-ui,sans-serif;color:var(--color-ink);background:var(--color-page)}
body{margin:0}main{box-sizing:border-box;width:100%;max-width:var(--content-width);margin:36px auto;padding:0 24px}h1{font-size:2rem;font-weight:600}form,.card{background:white;border:1px solid var(--color-line);border-radius:10px;padding:26px;max-width:720px}label{display:block;margin-top:20px;font-weight:600}input,select,textarea{box-sizing:border-box;width:100%;padding:11px;border:1px solid #8a9e99;border-radius:5px;font:inherit}button,.button,.form-actions a{display:inline-block;background:var(--color-soft);color:var(--color-ink);border:0;border-radius:999px;padding:12px 24px;margin-top:20px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}button:focus-visible,.button:focus-visible,.form-actions a:focus-visible{outline:3px solid var(--color-action);outline-offset:3px}button:disabled{opacity:.5;cursor:wait}a{color:var(--color-link)}nav{display:flex;gap:24px;align-items:center;margin-bottom:24px}.error,[role=alert]{color:var(--color-danger)}.error:empty{display:none}table{width:100%;border-collapse:collapse;background:white}td,th{padding:14px;text-align:left;border-bottom:1px solid var(--color-line)}table tbody td{padding-top:0;padding-bottom:0;line-height:1.3}fieldset{border:0;padding:0;margin:0}fieldset:disabled{opacity:.8}dl{display:grid;grid-template-columns:180px 1fr;gap:16px}dd{margin:0;overflow-wrap:anywhere}.notice{padding:16px;background:#fff5d6;border-left:4px solid #b18019}small{display:block;color:#555d6d;margin-top:8px}[hidden]{display:none!important}
.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px}.form-actions a,.form-actions button{margin-top:0}.form-actions .danger,button.danger{background:var(--color-soft);color:var(--color-danger)}
.import-actions{flex-wrap:wrap}.import-actions .import-template{margin-right:auto}
.import-summary{display:grid;grid-template-columns:1fr;gap:8px;margin:0;min-width:0}.import-summary>div{display:grid;grid-template-columns:7rem max-content;align-items:baseline;gap:6px;min-width:0}.import-summary dt,.import-summary dd{margin:0;white-space:nowrap}.import-summary dd{font-variant-numeric:tabular-nums}
.import-sheet{box-sizing:border-box;max-width:720px;background:#fff;border:1px solid var(--color-line);border-radius:10px;padding:26px}.import-sheet label{margin-top:20px;margin-bottom:6px}.import-sheet .import-report{margin:40px 0 0}.import-sheet .import-report h2,.import-sheet .import-heading{font-size:1.5rem;line-height:1.4;margin:40px 0 8px}.import-sheet .import-report h2{margin:0 0 18px}.import-sheet .import-message{margin:0 0 6px}.import-sheet .import-message:empty{display:none}.import-sheet .import-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:24px}.import-sheet .import-actions .import-downloads{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-right:auto}.import-sheet .import-actions .import-downloads .button,.import-sheet .import-actions>.button,.import-sheet .import-actions>button{margin:0}.import-sheet .import-summary{margin-top:18px}.import-sheet .import-summary>div{grid-template-columns:7rem max-content}@media(max-width:600px){.import-sheet .import-actions .import-downloads{width:100%}}
.import-feedback{margin:12px 0 0}.import-feedback p{margin:0 0 6px}.import-feedback p:empty{display:none}.import-success{color:#17663e;font-weight:700}
.detail-actions .delete-action{background:var(--color-danger);color:#fff}
.form-actions .validate-action,.edit-actions .validate-action{background:var(--color-action);color:#fff}
.form-actions .delete-confirm-action,.edit-actions .delete-confirm-action{background:var(--color-danger);color:#fff}
.icon-action{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:24px;height:24px;padding:0;margin:0;background:transparent;border:0;border-radius:0;color:var(--color-ink);text-decoration:none;vertical-align:middle}.icon-action svg{display:block;width:14.4px;height:14.4px}.icon-action.danger{background:transparent;color:var(--color-danger)}.icon-action:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}.icon-actions{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.list-table{border-collapse:separate;border-spacing:0}.list-table th,.list-table td{padding:7px 12px;line-height:1.35}.list-table tbody td{padding-top:0;padding-bottom:0;line-height:1.3}.list-table thead th{position:sticky;top:0;z-index:1;background:var(--color-soft)}.list-table .actions-heading,.list-table .row-actions{text-align:right}
:root table .table-add-row td{padding-top:0;padding-bottom:0;line-height:1.3}
:root table .table-add-row .icon-action{justify-content:flex-start;text-align:left;margin-left:var(--table-add-indent,0px)!important}
.list-table-tools{display:flex;align-items:center;justify-content:flex-start;gap:4px;min-height:24px;margin:0 0 6px;padding-left:12px}
.table-state-cell{box-sizing:border-box;height:25px;text-align:center!important;vertical-align:middle;padding:0 12px!important;line-height:24px;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}.table-state-cell--error{color:var(--color-danger);font-weight:700}
.error,.form-error,.status-error,[role=alert]{color:var(--color-danger);font-weight:700}
.notice .notice-feedback:not(:empty){display:block;margin-top:8px}
.login-title{margin:0 0 24px;max-width:720px}.login-form [role=alert]:empty{display:none}.login-form label:first-of-type{margin-top:0}.login-form button{margin-top:46px;background:var(--color-action);color:#fff}
/* Match all text action pills to the enlarged Reference list buttons. */
button,.button,.form-actions a{padding:8.8px 21.12px;font-size:.88rem}


#subsidiary-toggle{font-size:1em}
header,.module-nav{background:var(--color-soft);border-bottom:1px solid var(--color-line);color:var(--color-ink);padding:0;margin:0;display:block}.header-inner,.module-nav-inner{box-sizing:border-box;width:100%;max-width:var(--content-width);margin:0 auto;padding:0 24px;display:flex;align-items:stretch;gap:0;min-height:41.4px;flex-wrap:wrap}.app-tab,.module-nav a,.header-profile{display:block;padding:8.7px 20px;line-height:24px;border:0;border-radius:0;color:var(--color-ink);text-decoration:none;font-weight:600;background:transparent;margin:0}.app-tab:not(.inactive),.module-nav a.current,.header-profile[aria-current=page]{background:var(--color-action);color:#fff}.header-profile{margin-left:auto}.app-tab:focus-visible,.module-nav a:focus-visible,.header-profile:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.header-profile:hover{text-decoration:underline}
.section-nav{display:flex;align-items:stretch;gap:32px;padding:0;margin:0 0 15.84px;background:transparent;border:0;border-bottom:1px solid var(--color-line);border-radius:0}.section-nav a{display:block;margin:0;padding:9.95px 0;background:transparent;color:var(--color-link);border:0;border-bottom:4px solid transparent;border-radius:0;text-decoration:none;font-size:1.05rem;font-weight:600;line-height:1.4;white-space:nowrap}.section-nav a.current,.section-nav a:hover{border-bottom-color:var(--color-action)}.section-nav a:focus-visible{outline:2px solid var(--color-link);outline-offset:4px}@media(max-width:480px){.section-nav{gap:16px}.section-nav a{padding:8.8px 0;font-size:.85rem}}
.section-nav-empty{box-sizing:border-box;height:calc(1.05rem * 1.4 + 24.9px);border-bottom-color:transparent}
@media(max-width:480px){.section-nav-empty{height:calc(.85rem * 1.4 + 22.6px)}}
main:has(> .section-nav){box-sizing:border-box;width:100%;margin-top:12px}
.columns-pending .resizable-table{visibility:hidden}.resizable-table thead th{position:sticky;vertical-align:middle;white-space:normal;line-height:1.2}.column-resizer{position:absolute;z-index:3;top:0;right:0;width:12px;height:100%;cursor:col-resize;touch-action:none;user-select:none}.column-resizer::after{content:"";position:absolute;top:20%;bottom:20%;right:5px;width:2px;background:var(--color-line)}.column-resizer:hover::after,.column-resizer:focus-visible::after,.column-resizing .column-resizer:hover::after{background:var(--color-action)}.column-resizer:focus-visible{outline:2px solid var(--color-action);outline-offset:-2px}.column-resizing,.column-resizing *{cursor:col-resize!important;user-select:none!important}

/* Common heading row: includes its padding and border. */
:root table thead th{box-sizing:border-box;height:var(--table-heading-height);padding-top:2px;padding-bottom:2px;line-height:1.2;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}

/* Data values keep one line; explicit feedback and expanded details keep their layout. */
table{table-layout:fixed}
:root table tbody td:not([colspan]){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
:root table tbody td:is(.row-actions,.order-controls),:root table tbody td:has(input,select,textarea,.error,[role=alert]){overflow:hidden;white-space:nowrap}

/* Inline editors fit the same 24px content area as row action buttons. */
:root table tbody td :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){box-sizing:border-box;height:24px;min-height:0;margin-block:0;padding-block:0;line-height:1.3;vertical-align:middle}

/* DEC-416: errors stay outside table rows and sentences use separate lines. */
:root :is(.error,.form-error,.status-error,.stock-error,[role=alert]){white-space:pre-line;text-align:left}
:root table tbody .table-error-source{display:block!important;position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.table-error-summary{color:var(--color-danger);font-weight:700;white-space:pre-line;text-align:left;margin:6px 0}
:root .table-status{flex-wrap:wrap}
:root .table-status .table-feedback{flex-basis:100%;order:5;margin-left:0;text-align:left}

:root .table-status ~ .table-error-summary{margin-left:12px}

/* Tables fill their container, including when saved column widths are restored. */
table{min-width:100%;box-sizing:border-box}
.table-scroll,.module-table-scroll{box-sizing:border-box;min-width:0;max-width:100%}
/* Shared table controls and headings stay inside their allocated column. */
:root table[data-resizable-table]{width:100%;min-width:100%;max-width:100%}
:root table .row-actions{text-align:right;white-space:nowrap}
:root table .row-actions .icon-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;max-width:100%;vertical-align:middle}
:root table tbody td :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-width:0;max-width:100%}
:root table :is(input,select,textarea,button,a):focus-visible{outline-offset:-2px}
.table-heading-text{display:inline-block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:none;vertical-align:top}
:root table thead th>.table-heading-text{max-width:max(0px,calc(100% - var(--table-heading-controls-width,0px)))}
:root table thead th :is(.stock-sort,.correspondence-sort,.comparison-label){min-width:0;max-width:100%;overflow:hidden}
:root table thead th .comparison-label{margin:0}

/* Simple reference headings wrap before truncating, within the common 44px row. */
:root table.two-line-headings thead th>.table-heading-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.2;max-height:2.4em}

/* Shared native import window; no embedded frames or policy exceptions. */
.import-window{box-sizing:border-box;width:min(760px,calc(100vw - 48px));max-width:calc(100vw - 48px);max-height:calc(100dvh - 48px);padding:16px;border:3px solid var(--color-ink);background:white;color:var(--color-ink);overflow:auto}
.import-window::backdrop{background:rgba(0,0,0,.1)}
.import-window>form{border:0!important;border-radius:0!important;padding:0!important;max-width:none!important}
.import-window h1{font-size:1.5rem;margin-top:0}
.import-window .edit-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:20px}
.import-window .edit-actions>*{margin:0}
.import-window p:empty{display:none}

/* Invalid inline fields keep their row height and expose their accessible description. */
:root table tbody :is(input,select,textarea)[aria-invalid="true"]{border-color:var(--color-danger)!important;box-shadow:inset 0 0 0 1px var(--color-danger)}
:root table tbody details:has([aria-invalid="true"])>summary{border-color:var(--color-danger)!important;box-shadow:inset 0 0 0 1px var(--color-danger)}

:root :is(input,select,textarea)[aria-invalid="true"]{border-color:var(--color-danger)!important;box-shadow:inset 0 0 0 1px var(--color-danger)}
.list-actions .button.list-delete-action{background:var(--color-danger);color:#fff}
