/* Licence Manager component sizing within the shared ServerApp shell. */
.app-shell { display:block; }
.app-body { display:flex; }
.app-sidebar { min-height:calc(100vh - var(--app-header-height)); position:sticky; top:var(--app-header-height); height:calc(100vh - var(--app-header-height)); overflow-y:auto; }
.app-content { min-width:0; width:auto; }
.app-logo { background:transparent; padding:0; }
.app-nav-summary { display:block; }
aside .app-nav-compact { min-width:0; }
.login-shell { display:block; }
@media(max-width:991.98px) {
 .app-body { flex-direction:column; }
 .app-sidebar { position:fixed; top:var(--app-header-height); left:0; bottom:0; width:220px; min-height:0; height:auto; z-index:1050; }
 .app-content { width:100%; }
}

.app-sidebar { flex:0 0 220px; border-right:0; padding:.5rem; }
.app-shell.sidebar-collapsed .app-sidebar { flex-basis:64px; }
.app-header-inner { max-width:none; width:100%; }
@media(max-width:991.98px) { .app-sidebar { flex-basis:auto; } }

@media(min-width:992px) { .app-sidebar { display:block !important; } }

@media(max-width:991.98px) {
 .app-shell .app-sidebar:not(.openned) { display:none; }
}

/* Keep the wide CAM Solutions wordmark within the header on small screens. */
.app-logo img { width: 184px; max-width: 100%; height: auto; margin: 0; }
@media (max-width: 575px) { .app-logo img { width: 132px; } }

/* Keep the Settings dock visible while the menu links scroll above it. */
.app-shell .app-sidebar { display:flex !important; flex-direction:column; overflow:hidden; }
.app-sidebar-scroll { flex:1 1 auto; min-height:0; width:100%; overflow-y:auto; overflow-x:hidden; }
.app-sidebar-settings { flex:0 0 auto; margin-top:auto; padding-top:8px; border-top:1px solid #ffffff30; }
.app-sidebar-settings-link { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px; border-radius:6px; color:var(--csiflex-white,#fff); text-decoration:none; }
.app-sidebar-settings-link:hover,.app-sidebar-settings-link:focus-visible { color:var(--csiflex-white,#fff); background:#ffffff18; }
.app-sidebar-settings-link>i { display:inline-flex; flex:0 0 24px; justify-content:center; font-size:22px; }
@media(min-width:992px) {
 .app-shell.sidebar-collapsed .app-sidebar { display:flex !important; overflow:hidden; }
 .sidebar-collapsed .app-sidebar .app-nav-label,.sidebar-collapsed .settings-navigation h2 { display:none; }
 .sidebar-collapsed .settings-navigation { padding:4px 0; }
 .sidebar-collapsed .settings-navigation-link,.sidebar-collapsed .app-sidebar-settings-link { width:100%; min-height:44px; padding:8px 0; display:flex; align-items:center; justify-content:center; gap:0; }
 .sidebar-collapsed .settings-navigation-link>i { display:inline-flex; margin:0; font-size:22px; }
 .sidebar-collapsed .app-nav-compact .app-nav-link-row>.app-nav-link { justify-content:center; }
 .sidebar-collapsed .app-nav-compact .app-nav-link i { margin:0; flex:0 0 auto; }
}
@media(max-width:991.98px) {
 .app-shell .app-sidebar:not(.openned) { display:none !important; }
}

/* Settings overlays the left pane without changing the working menu geometry. */
button.app-sidebar-settings-link{width:100%;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
.app-sidebar-settings-link .settings-chevron{margin-left:auto;flex-basis:16px;font-size:14px}
.app-sidebar-settings{position:relative}
.app-sidebar-settings-options{position:absolute;bottom:calc(100% + 4px);left:0;right:0;z-index:10;max-height:min(70vh,calc(100dvh - var(--app-header-height) - 76px));overflow-y:auto;min-height:0;background:var(--csiflex-primary,#374046);color:var(--csiflex-white,#fff);border:1px solid #ffffff30;border-radius:6px;box-shadow:0 -4px 16px #0003}
.app-sidebar-settings-options .settings-navigation{padding:10px}
.app-sidebar-settings-options .settings-navigation-link{font-size:.9rem;padding:10px;min-height:40px}
@media(min-width:992px){.sidebar-collapsed .settings-chevron{display:none}}

.settings-navigation-section+ .settings-navigation-section{border-top:1px solid color-mix(in srgb,currentColor 22%,transparent);margin-top:10px;padding-top:10px}
.settings-navigation-section h3{font-size:.75rem;font-weight:600;margin:0 10px 4px;line-height:1.5;opacity:.75}

/* Page-owned view controls are supplied by Blazor sections and removed on navigation. */
.app-header-actions{min-width:0;gap:.8rem}.app-header-inner{gap:.75rem}
@media(max-width:600px){.app-header-inner{flex-wrap:wrap}.app-header-actions{gap:.5rem;margin-left:auto}.app-header-actions .app-user-menu-name{display:none}}

/* Keep wrapped labels in their own text column, beside the first-line icon. */
.app-sidebar .app-nav-expanded .app-nav-link-row>.app-nav-link,
.app-sidebar .app-nav-expanded .app-nav-summary { display:flex; align-items:flex-start; gap:.5rem; min-width:0; }
.app-sidebar .app-nav-expanded .app-nav-link-row>.app-nav-link>i,
.app-sidebar .app-nav-expanded .app-nav-summary>i,
.settings-navigation-link>i { flex:0 0 1.25rem; width:1.25rem; margin:0; text-align:center; line-height:inherit; }
.app-sidebar .app-nav-expanded .app-nav-label,
.settings-navigation-link>.app-nav-label { flex:1 1 auto; min-width:0; white-space:normal; overflow-wrap:anywhere; }
.app-sidebar .app-nav-expanded .app-nav-summary::after { float:none; margin-left:auto; flex:0 0 auto; }
.settings-navigation-link { align-items:flex-start; }

.organization-panel { padding:1.25rem; }
.organization-panel fieldset { border:0; padding:0; margin:0; min-width:0; }
.organization-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.organization-fields>label { display:flex; flex-direction:column; gap:.35rem; min-width:0; }
.organization-brand-preview { display:flex; flex-direction:column; gap:.75rem; margin-top:1rem; padding:1rem; border:2px solid var(--organization-primary); border-radius:.5rem; background:var(--surface); color:var(--ink); }
.organization-brand-accent { display:block; height:.75rem; background:linear-gradient(90deg,var(--organization-primary) 50%,var(--organization-accent) 50%); border-radius:.25rem; }
@media(max-width:600px){.organization-fields{grid-template-columns:1fr;}}

.postal-candidates { border: 1px solid var(--border-color, var(--bs-border-color)); border-radius: .5rem; padding: .75rem; grid-column: 1 / -1; }
.postal-provider { font-family: sans-serif; font-size: .875rem; font-weight: 400; font-style: normal; letter-spacing: normal; white-space: nowrap; color: #1f1f1f; }
:root[data-bs-theme="dark"] .postal-provider { color: #fff; }

.organization-company-information>h2{margin-bottom:0}
.organization-identity-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch;margin-bottom:1rem}
.organization-name-fields{display:flex;flex-direction:column;gap:1rem;padding-top:1rem;min-width:0}
.organization-name-fields>label{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.organization-logo-column{position:relative;min-width:0;container-type:size}
.organization-logo-column>.organization-logo-editor{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center}
.organization-logo-column>.organization-logo-editor:has(.company-logo-fit){left:auto;width:min(100%,200cqh)}
.organization-logo-column .organization-logo-editor .company-logo-wide{flex:0 0 auto}
.organization-logo-editor fieldset{min-width:0}
@media(max-width:600px){.organization-identity-row{grid-template-columns:1fr}.organization-logo-column{height:min(45vw,10rem)}}

.organization-logo-right{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.organization-logo-right>h3{align-self:flex-end}.organization-logo-right>fieldset{align-self:flex-end}

/* Keep the desktop collapse control within the first navigation row. */
.app-sidebar-tools{position:absolute;top:.65rem;right:.5rem;display:flex;align-items:center;z-index:2}
@media(min-width:992px){.app-nav-with-collapse>.app-nav-link-row:first-child{padding-right:30px}.app-nav-with-collapse>.app-nav-link-row:first-child>.app-nav-favorite{right:34px}.sidebar-collapsed .app-sidebar-tools{top:.3rem;right:.15rem}.sidebar-collapsed .app-sidebar-tools .sidebar-collapse-control{width:20px;height:20px;font-size:.8rem}}
@media(max-width:991.98px){.app-sidebar-tools{display:none}}

.app-sidebar .app-nav-expanded .app-nav-cockpit-label{font-size:var(--app-section-heading-size,22px);line-height:1.2}

.app-sidebar .app-nav-expanded .app-nav-cockpit-icon{font-size:calc(var(--app-section-heading-size,22px) * .856);line-height:calc(var(--app-section-heading-size,22px) * 1.2)}

.connection-recovery-backdrop{position:fixed;inset:0;z-index:2147483001;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgb(0 0 0 / .1)}
.connection-recovery-dialog{width:min(100%,30rem);text-align:center;margin:0;padding:1.5rem;background:var(--bs-body-bg);color:var(--bs-body-color);border:1px solid var(--bs-border-color);border-radius:.5rem;box-shadow:0 .5rem 2rem rgb(0 0 0 / .3)}
.connection-recovery-dialog .spinner-border{color:var(--brand-action);margin-bottom:1rem}
.connection-recovery-dialog p{margin-bottom:0}

.connection-recovery-wave{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none;--login-wave-display:contents;--login-wave-veil:5%;opacity:.65}
.connection-recovery-wave .login-wave-image{position:absolute;z-index:0;mask-image:linear-gradient(to bottom,transparent 0%,rgb(0 0 0 / .08) 60%,rgb(0 0 0 / .45) 78%,#000 100%)}
.connection-recovery-wave .login-wave-toggle{position:absolute;pointer-events:auto;z-index:1}
.connection-recovery-dialog{position:relative;z-index:2}

/* Shared presentation for the operational directory tables. */
.app-content .directory-results .sortable-record-table thead th{padding:.35rem .6rem;vertical-align:middle;font-size:.9rem;text-transform:none;font-weight:700;color:var(--bs-body-color);background:var(--bs-body-bg)}

/* Register the existing variable font for table labels without changing other typography. */
@font-face{font-family:'Inter Tight Table Headings';src:url('fonts/InterTight-VariableFont_wght.woff2') format('woff2'),url('fonts/InterTight-VariableFont_wght.woff') format('woff');font-weight:100 900;font-style:normal;font-display:swap}

.organization-logo-column:has(.app-modal){container-type:normal}

/* Page and directory headings share the approved bold treatment; local sizes retain their hierarchy. */
:root{--app-page-heading-weight:700}
.app-content h1,.app-content .list-filter-header h2{font-weight:var(--app-page-heading-weight)}
