/* Shared geometry and typography. Domain templates opt in through famos-ui. */
body.famos-ui { font-family:var(--famos-font); background:var(--famos-background); color:var(--famos-text); }
.famos-ui a { color:var(--famos-link); text-underline-offset:3px; }
.famos-ui a:hover { color:var(--famos-link-hover); }
.famos-ui :focus-visible { outline:3px solid var(--famos-link); outline-offset:3px; }
.famos-ui input[type='checkbox'], .famos-ui input[type='radio'] { accent-color:var(--famos-link); }

.famos-ui .app-sidebar { background:var(--famos-nav); }
.famos-ui .brand-logo span { color:var(--famos-brand); }
.famos-ui .brand-caption { color:var(--famos-brand); }
.famos-ui .nav-item { color:rgba(255,255,255,.45); font-weight:500; text-decoration:none; transition:all .3s; }
.famos-ui .nav-item:hover { color:rgba(255,255,255,.85); background:rgba(255,255,255,.04); }
/* The selected navigation uses the product accent. */
.famos-ui .nav-active { color:var(--famos-brand); background:color-mix(in srgb,var(--famos-brand) 8%,transparent); border-right:2px solid var(--famos-brand); }
.famos-ui .nav-active svg { color:var(--famos-brand); }
.famos-ui .nav-item:focus-visible { outline-color:var(--famos-brand); outline-offset:-3px; }
.famos-ui .account-caption { font-size:12px; font-weight:500; letter-spacing:.5px; color:rgba(255,255,255,.5); }
.famos-ui .account-link { display:block; margin-top:10px; font-size:12px; color:rgba(255,255,255,.6); text-decoration:none; }
.famos-ui .account-link:hover { color:rgba(255,255,255,.85); }
.famos-ui .account-link[aria-current='page'] { color:var(--famos-brand); }
.famos-ui .account-link:focus-visible { outline-color:var(--famos-brand); }
.famos-ui .app-workspace { background:var(--famos-background); }
.famos-ui .app-header { background:var(--famos-surface); border-bottom:1px solid var(--famos-border); }

.famos-ui .btn-primary, .famos-ui .btn-secondary, .famos-ui .btn-ghost {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    min-height:41px; padding:9px 18px; border:1px solid transparent; border-radius:10px;
    font:600 14px/21px var(--famos-font);
    text-decoration:none; cursor:pointer;
    transition:all .5s cubic-bezier(.4,0,.2,1);
}
.famos-ui .btn-primary { background:var(--famos-highlight); color:var(--famos-highlight-text); }
.famos-ui .btn-primary:hover { background:var(--famos-highlight-hover); color:var(--famos-highlight-text); box-shadow:0 4px 16px color-mix(in srgb,var(--famos-highlight) 30%,transparent); transform:translateY(-1px); }
.famos-ui .btn-primary:active { transform:translateY(0); box-shadow:none; }
.famos-ui .btn-secondary { background:color-mix(in srgb,var(--famos-brand) 8%,transparent); color:var(--famos-link-hover); border-color:color-mix(in srgb,var(--famos-brand) 20%,transparent); }
.famos-ui .btn-secondary:hover { background:color-mix(in srgb,var(--famos-brand) 15%,transparent); color:var(--famos-link-hover); border-color:color-mix(in srgb,var(--famos-brand) 35%,transparent); transform:translateY(-1px); }
.famos-ui .btn-secondary:active { transform:translateY(0); }
.famos-ui .btn-ghost { background:transparent; color:var(--famos-muted); font-weight:500; }
.famos-ui .btn-ghost:hover { color:var(--famos-text); }
.famos-ui .btn-primary:disabled, .famos-ui .btn-secondary:disabled, .famos-ui .btn-ghost:disabled { opacity:.55; cursor:not-allowed; box-shadow:none; transform:none; }
.famos-ui .card { background:var(--famos-surface); border:1px solid var(--famos-border); border-radius:var(--famos-radius); }
.famos-ui .input-field, .famos-ui .account-form input:not([type='checkbox']):not([type='radio']), .famos-ui .account-form select, .famos-ui .account-form textarea {
    width:100%; border:1px solid var(--famos-border); border-radius:10px; padding:10px 14px;
    font:400 14px/1.5 var(--famos-font);
    color:var(--famos-text); background:var(--famos-surface);
    transition:border-color .3s,box-shadow .3s;
}
.famos-ui .input-field:focus, .famos-ui .account-form input:focus, .famos-ui .account-form select:focus, .famos-ui .account-form textarea:focus {
    border-color:var(--famos-brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--famos-brand) 10%,transparent);
}
.famos-ui .form-label { display:block; font-size:12px; font-weight:500; color:var(--famos-muted); margin-bottom:6px; }
.famos-ui .field-error, .famos-ui .account-form .errorlist { margin-top:5px; font-size:12px; color:#b42318; }
.famos-ui .help-text { margin-top:4px; font-size:var(--famos-hint-size); line-height:1.5; color:var(--famos-muted); }
.famos-ui .choice-option { display:flex; align-items:flex-start; gap:12px; padding:16px; border:1px solid var(--famos-border); border-radius:12px; cursor:pointer; background:var(--famos-surface); }
.famos-ui .choice-option:has(input:checked) { border-color:var(--famos-link); box-shadow:0 0 0 3px color-mix(in oklch,var(--famos-brand) 20%,transparent); background:var(--famos-brand-soft); }
.famos-ui .notice { padding:14px 16px; border:1px solid var(--famos-border); border-radius:12px; background:var(--famos-background); color:var(--famos-text); font-size:13px; line-height:1.55; }
.famos-ui .error-summary { padding:14px 16px; border:1px solid #f3b4ae; border-radius:12px; background:#fff7f6; color:#8f1d16; font-size:13px; line-height:1.5; }
.famos-ui .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.famos-ui .account-form p { margin:14px 0; }
.famos-ui .account-form label { display:block; margin:6px 0; font-size:12px; font-weight:500; color:var(--famos-muted); }
.famos-ui .section-label, .famos-ui .table-header { font-size:11px; text-transform:uppercase; color:var(--famos-muted); font-weight:600; }
.famos-ui .section-label { letter-spacing:2px; }
.famos-ui .table-header { letter-spacing:1.5px; }
.famos-ui .workflow-section { padding:var(--famos-form-padding); margin-bottom:16px; }
.famos-ui .dashboard-panel-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:20px 24px; border-bottom:1px solid var(--famos-border); }
.famos-ui .dashboard-panel-header h3 { font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--famos-muted); }
.famos-ui .dashboard-panel-header a { font-size:13px; font-weight:600; text-decoration:none; }
.famos-ui .dashboard-panel-header .btn-primary, .famos-ui .dashboard-panel-header .btn-secondary { font-size:14px; }
.famos-ui .table-scroll { overflow-x:auto; }
.famos-ui .appointment-table { overflow:hidden; }
.famos-ui .appointment-table table { width:100%; min-width:720px; border-collapse:collapse; }
.famos-ui .appointment-table td a { color:var(--famos-link); font-weight:600; }
.famos-ui .appointment-table .appointment-date { white-space:nowrap; }
.famos-ui .appointment-table .empty-row { padding:28px; text-align:center; }
.famos-ui .report-breakdown { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.famos-ui .section-description { max-width:70ch; margin:12px 0 20px; color:var(--famos-muted); font-size:14px; line-height:1.6; }
.famos-ui .appointment-detail .section-description:last-child { margin-bottom:0; }
.famos-ui .form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:20px; }
.famos-ui .page-heading { font-size:24px; line-height:1.5; font-weight:800; }
.famos-ui .audit-filter > div { width:320px; max-width:100%; }
.famos-ui .audit-count { margin-bottom:14px; }
.famos-ui .audit-table-wrap { overflow-x:auto; }
.famos-ui .audit-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }
.famos-ui .audit-table tr:last-child td { border-bottom:0; }
.famos-ui .audit-table time { white-space:nowrap; }
.famos-ui .audit-empty { color:var(--famos-muted); text-align:center; }
.famos-ui .audit-pagination { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.famos-ui .institution-settings { max-width:var(--famos-settings-width); }
.famos-ui .institution-fields { margin-top:0; gap:var(--famos-grid-gap); }

.famos-ui .optional-label { font-size:11px; font-weight:400; color:var(--famos-muted); }
.famos-ui .report-toolbar { position:sticky; top:0; display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; padding:12px 0; z-index:20; background:var(--famos-background); }
.famos-ui .report-menu summary { cursor:pointer; list-style:none; display:flex; gap:12px; align-items:center; }
.famos-ui .report-menu summary::-webkit-details-marker { display:none; }
.famos-ui .report-menu-options { position:absolute; top:100%; left:0; display:flex; flex-direction:column; width:min(280px,100%); max-height:70vh; overflow-y:auto; margin-top:8px; border:1px solid var(--famos-border); border-radius:10px; background:var(--famos-surface); box-shadow:0 8px 24px color-mix(in srgb,var(--famos-nav) 12%,transparent); }
.famos-ui .report-menu-options button { text-align:left; padding:12px 16px; font-size:14px; color:var(--famos-text); }
.famos-ui .report-menu-options button:hover, .famos-ui .report-menu-options button[aria-current] { background:var(--famos-brand-soft); }
.famos-ui .report-menu-options button:disabled { opacity:.55; cursor:not-allowed; }
.famos-ui .report-menu-options .help-text { padding:12px 16px; border-top:1px solid var(--famos-border); }
.famos-ui .report-filters { padding:24px; margin-bottom:24px; }
.famos-ui .report-filter-row { display:flex; flex-wrap:wrap; align-items:flex-end; gap:20px; }
.famos-ui .report-filter-row > div { width:160px; }
.famos-ui .report-templates { margin-bottom:20px; padding:16px 0; border-block:1px solid var(--famos-border); }
.famos-ui .report-templates > summary, .famos-ui .report-individual > summary { cursor:pointer; font-weight:600; font-size:14px; }
.famos-ui .report-templates .help-text, .famos-ui .report-individual .help-text { margin-top:12px; }
.famos-ui .report-template-row { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin-top:16px; }
.famos-ui .report-template-row .input-field { width:min(320px,100%); }
.famos-ui .report-template-row select { max-width:100%; }
.famos-ui .report-individual { margin-top:24px; padding-top:20px; border-top:1px solid var(--famos-border); }
.famos-ui .report-selection-actions { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.famos-ui .report-group { margin-top:12px; padding-bottom:12px; border-bottom:1px solid var(--famos-border); }
.famos-ui .report-group > summary { cursor:pointer; font-size:14px; font-weight:600; padding:10px 0; }
.famos-ui .report-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; padding:10px 0; }
.famos-ui .report-option { display:flex; gap:10px; align-items:flex-start; margin:12px 0; font-size:14px; line-height:1.5; cursor:pointer; }
.famos-ui .report-option input { margin-top:4px; accent-color:var(--famos-link); }
.famos-ui .report-heading { margin:28px 0 24px; }
.famos-ui .report-heading h2 { font-size:20px; line-height:1.5; font-weight:800; }
.famos-ui .report-heading p { margin-top:10px; }
.famos-ui .report-section { margin-top:28px; }
.famos-ui .report-section > h3 { margin-bottom:12px; font-size:17px; font-weight:700; }
.famos-ui .report-blocks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.famos-ui .report-block { padding:20px; min-width:0; }
.famos-ui .report-block > h4 { margin-bottom:12px; }
.famos-ui .report-summary { width:100%; border-collapse:collapse; font-size:14px; }
.famos-ui .report-summary th { padding:10px 16px 10px 0; font-weight:400; text-align:left; vertical-align:top; }
.famos-ui .report-summary td { padding:10px 0; text-align:right; vertical-align:top; font-weight:600; overflow-wrap:anywhere; white-space:pre-line; }
.famos-ui .report-summary .report-value-text { text-align:left; font-weight:400; line-height:1.5; }
.famos-ui .report-summary tr + tr { border-top:1px solid var(--famos-border); }
.famos-ui .report-issues { margin-bottom:24px; }
.famos-ui .report-issues > .help-text { margin-top:12px; }
.famos-ui .report-issue { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:16px; }
.famos-ui .report-issue p { flex:1 1 360px; font-size:14px; }
@media(max-width:760px) { .report-options, .report-blocks { grid-template-columns:1fr; } .report-template-row { align-items:stretch; } }
.famos-ui .collaboration-field { max-width:480px; }
.famos-ui .login-page { --login-field:color-mix(in oklch,var(--famos-nav) 84%,black); --login-muted:color-mix(in srgb,var(--famos-surface) 72%,var(--famos-nav)); min-height:100vh; display:flex; align-items:center; justify-content:center; background:color-mix(in oklch,var(--famos-nav) 72%,black); color:var(--famos-surface); padding:24px; }
.famos-ui .login-shell { width:100%; max-width:372px; }
.famos-ui .login-brand { text-align:center; margin-bottom:48px; }
.famos-ui .login-brand .brand-logo { font-size:56px; letter-spacing:-3px; line-height:1; }
.famos-ui .login-brand p { font-size:11px; font-weight:500; letter-spacing:4px; text-transform:uppercase; color:var(--login-muted); margin-top:12px; }
.famos-ui .login-card { padding:36px; border-radius:20px; background:var(--famos-nav); border-color:color-mix(in srgb,var(--famos-surface) 10%,var(--famos-nav)); }
.famos-ui .login-field { margin-bottom:18px; }
.famos-ui .login-field:last-of-type { margin-bottom:28px; }
.famos-ui .login-card .form-label { color:var(--login-muted); font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:8px; }
.famos-ui .login-card .input-field { background:var(--login-field); border-color:color-mix(in srgb,var(--famos-surface) 16%,var(--login-field)); border-radius:12px; padding:12px 16px; color:var(--famos-surface); }
.famos-ui .login-card .input-field::placeholder { color:var(--login-muted); opacity:1; }
.famos-ui .login-card .input-field:focus { border-color:var(--famos-brand); box-shadow:0 0 0 3px color-mix(in srgb,var(--famos-brand) 15%,transparent); }
.famos-ui .login-card .input-field:-webkit-autofill { -webkit-box-shadow:0 0 0 1000px var(--login-field) inset !important; -webkit-text-fill-color:var(--famos-surface) !important; }
.famos-ui .login-card .btn-primary { width:100%; min-height:47px; padding:12px 16px; border-radius:12px; font-weight:700; }
.famos-ui .login-help { margin-top:20px; text-align:center; font-size:13px; line-height:1.5; color:var(--login-muted); }
.famos-ui .login-help a { color:var(--famos-brand); }
.famos-ui .login-page :focus-visible { outline-color:var(--famos-brand); }
.famos-ui .login-card .error-summary { background:color-mix(in srgb,#b42318 12%,var(--famos-nav)); border-color:color-mix(in srgb,#b42318 50%,var(--famos-nav)); color:color-mix(in srgb,#b42318 30%,var(--famos-surface)); }

/* EFB-aligned institution administration in the approved SKB palette. */
.famos-ui .admin-page { max-width:var(--famos-admin-width); min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.famos-ui .admin-panel { padding:24px; }
.famos-ui .admin-form-page { max-width:var(--famos-admin-form-width); }
.famos-ui .admin-account-summary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
.famos-ui .admin-account-summary > div { flex:1; min-width:min(260px,100%); }
.famos-ui .admin-account-count { font-size:22px; font-weight:800; margin:8px 0; }
.famos-ui .admin-page fieldset { border:0; min-width:0; }
.famos-ui .admin-page legend { margin-bottom:6px; }
.famos-ui .admin-permission-actions, .famos-ui .admin-checks { display:flex; flex-wrap:wrap; align-items:center; gap:24px; }
.famos-ui .admin-permission-actions { justify-content:space-between; margin-top:14px; }
.famos-ui .admin-choice { display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; }
.famos-ui .admin-choice input { width:16px; height:16px; flex-shrink:0; }
.famos-ui .admin-choice-list { display:grid; gap:10px; margin-top:12px; }
.famos-ui .admin-logins { overflow:hidden; }
.famos-ui .admin-table-heading { padding:20px 24px; border-bottom:1px solid var(--famos-border); }
.famos-ui .admin-table-scroll { position:relative; overflow-x:auto; }
.famos-ui .admin-user-table { width:100%; border-collapse:collapse; text-align:left; }
.famos-ui .admin-user-table tr:last-child td { border-bottom:0; }
.famos-ui .admin-login-name { font-size:14px; font-weight:600; color:var(--famos-text); }
.famos-ui .admin-username { font-size:12px; font-family:ui-monospace,SFMono-Regular,monospace; margin-top:3px; overflow-wrap:anywhere; }
.famos-ui .admin-role { display:inline-block; margin:2px 2px 2px 0; padding:2px 8px; border-radius:20px; background:var(--famos-today-surface,var(--famos-brand-soft)); color:var(--famos-today-text,var(--famos-link)); font-size:11px; font-weight:600; white-space:nowrap; }
.famos-ui .admin-role-institution { background:var(--famos-year-surface,var(--famos-brand-soft)); color:var(--famos-year-text,var(--famos-link)); }
.famos-ui .admin-user-table .admin-row-action { text-align:right; }
.famos-ui .admin-row-action a { font-size:13px; font-weight:600; }
.famos-ui .admin-pending { color:var(--famos-month-text,var(--famos-link)); font-weight:600; }
.famos-ui .admin-login-inactive .admin-login-name { color:var(--famos-muted); }
.famos-ui .admin-user-table .admin-empty { padding:32px 24px; text-align:center; }
.famos-ui .admin-form { display:grid; gap:20px; }
.famos-ui .admin-person-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:10px; }
.famos-ui .admin-fixed-value { font-size:14px; padding:10px 0; overflow-wrap:anywhere; }
.famos-ui .admin-manual-password { max-width:360px; margin-top:14px; }
.famos-ui .admin-manual-password[hidden] { display:none; }
.famos-ui .admin-manual-password .help-text { margin-top:6px; }
.famos-ui .admin-form-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:12px; }
.famos-ui .admin-form .errorlist { color:#b42318; font-size:12px; margin-top:5px; list-style:none; }
.famos-ui .admin-access > .help-text { margin:12px 0 18px; }
.famos-ui .admin-access .notice { margin-bottom:18px; }
.famos-ui .admin-access-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-start; }
.famos-ui .admin-reset > summary { list-style:none; cursor:pointer; }
.famos-ui .admin-reset > summary::-webkit-details-marker { display:none; }
.famos-ui .admin-reset[open] { flex-basis:100%; }
.famos-ui .admin-reset[open] > summary { width:max-content; margin-bottom:18px; }
@media (max-width:600px) {
.famos-ui .admin-panel { padding:20px; }
.famos-ui .admin-person-fields { grid-template-columns:1fr; }
.famos-ui .admin-permission-actions > button { width:100%; }
}
.famos-ui .table-sort { display:inline-flex; align-items:center; gap:8px; min-height:0; padding:0; border:0; background:transparent; color:inherit; font:inherit; letter-spacing:inherit; text-transform:inherit; text-align:left; cursor:pointer; border-radius:4px; }
.famos-ui .table-sort:hover, .famos-ui .table-sort:active, .famos-ui .sortable-header[aria-sort] .table-sort { color:var(--famos-link-hover); }
.famos-ui .table-sort .sort-arrow { font-size:12px; letter-spacing:0; }

body.famos-ui { margin:0; font:400 var(--famos-body-size)/var(--famos-line-height) var(--famos-font); }
.famos-ui *, .famos-ui *::before, .famos-ui *::after { box-sizing:border-box; }
.famos-ui button, .famos-ui input, .famos-ui select, .famos-ui textarea { font-family:var(--famos-font); line-height:1.5; }
.famos-ui button { cursor:pointer; }
.famos-ui button:disabled { cursor:not-allowed; }
.famos-ui [hidden]:not([hidden='until-found']) { display:none; }
.famos-ui h1, .famos-ui h2, .famos-ui h3, .famos-ui h4, .famos-ui p, .famos-ui dl, .famos-ui dd { margin:0; }
.famos-ui a { text-underline-offset:3px; }
.famos-ui .app-shell { display:flex; height:100vh; overflow:hidden; }
.famos-ui .app-sidebar { display:flex; flex-direction:column; width:var(--famos-sidebar-width); flex-shrink:0; overflow-y:auto; }
.famos-ui .app-brand { display:flex; align-items:center; min-height:var(--famos-header-height); padding:0 24px; border-bottom:1px solid #ffffff0d; }
.famos-ui .brand-logo { color:#fff; font:900 24px/1.5 var(--famos-font); letter-spacing:-1px; }
.famos-ui .app-navigation { flex:1; padding:20px 0; }
.famos-ui .nav-item { display:flex; align-items:center; padding:10px 20px; font:500 14px/20px var(--famos-font); }
.famos-ui .nav-item svg { width:16px; height:16px; margin-right:12px; flex-shrink:0; }
.famos-ui .app-account { padding:16px 20px; border-top:1px solid #ffffff0d; }
.famos-ui .account-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#ffffffe6; font-size:14px; font-weight:600; }
.famos-ui .app-workspace { flex:1; min-width:0; overflow-y:auto; }
.famos-ui .app-header { height:var(--famos-header-height); display:flex; align-items:center; padding:0 var(--famos-content-padding); }
.famos-ui .app-header h1 { font-size:15px; font-weight:700; line-height:1.5; color:var(--famos-text); }
.famos-ui .app-content { padding:var(--famos-content-padding); }
.famos-ui .page-capture { max-width:var(--famos-capture-width); }
.famos-ui .page-settings { max-width:var(--famos-settings-width); }
.famos-ui .page-detail { max-width:var(--famos-detail-width); }
.famos-ui .page-users { max-width:var(--famos-admin-width); }
.famos-ui .page-user-form { max-width:var(--famos-admin-form-width); }
.famos-ui .page-intro { margin-bottom:24px; max-width:70ch; }
.famos-ui .page-intro h2, .famos-ui .page-heading { font-size:20px; font-weight:800; line-height:30px; margin-bottom:8px; }
.famos-ui .page-intro p { font-size:14px; line-height:1.6; color:var(--famos-muted); }
.famos-ui .form-panel { padding:var(--famos-form-padding); margin-bottom:16px; }
.famos-ui .settings-panel { padding:var(--famos-settings-padding); margin-bottom:16px; }
.famos-ui .section-title { margin-bottom:20px; }
.famos-ui .form-label, .famos-ui .field-label, .famos-ui .account-form label { display:block; font:500 var(--famos-label-size)/18px var(--famos-font); color:var(--famos-muted); margin:0 0 6px; }
.famos-ui .help-text, .famos-ui .field-hint { font:400 var(--famos-hint-size)/16.5px var(--famos-font); color:var(--famos-muted); margin-top:4px; }
.famos-ui .field-error, .famos-ui .field-errors { color:var(--famos-error); font-size:12px; line-height:18px; margin-top:4px; }
.famos-ui .form-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--famos-grid-gap); }
.famos-ui .form-grid-2 > * { min-width:0; }
.famos-ui .input-field, .famos-ui .admin-form input:not([type='checkbox']):not([type='radio']):not([type='hidden']) { width:100%; border:1px solid var(--famos-border); border-radius:var(--famos-field-radius); padding:10px 14px; font:400 14px/21px var(--famos-font); background:var(--famos-surface); color:var(--famos-text); outline:none; }
.famos-ui .btn-primary, .famos-ui .btn-secondary, .famos-ui .btn-ghost { min-height:var(--famos-button-height); padding:9px 18px; border-radius:var(--famos-field-radius); line-height:21px; }
.famos-ui .btn-compact, .famos-ui .compact-action { min-height:37px; padding:8px 14px; font-size:13px; line-height:19px; }
.famos-ui .logout-button { display:block; width:100%; min-height:32px; margin-top:10px; padding:7px 0; border:0; border-radius:8px; font:600 12px/18px var(--famos-font); }
.famos-ui .ui-tabs { display:flex; flex-wrap:wrap; gap:0; margin-bottom:24px; padding:0; border-bottom:1px solid var(--famos-border); }
.famos-ui .ui-tabs a { display:inline-block; padding:10px 20px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; font:600 14px/21px var(--famos-font); color:var(--famos-muted); text-decoration:none; }
.famos-ui .ui-tabs a[aria-current='page'] { color:var(--famos-link); border-bottom-color:var(--famos-link); background:transparent; }
.famos-ui .ui-table { width:100%; border-collapse:collapse; text-align:left; }
.famos-ui .ui-table th { padding:12px 16px; border-bottom:1px solid var(--famos-border); font:500 11px/16.5px var(--famos-font); color:var(--famos-muted); letter-spacing:0; text-transform:none; }
.famos-ui .ui-table td { padding:14px 16px; border-bottom:1px solid var(--famos-background); font:400 13px/19.5px var(--famos-font); color:var(--famos-muted); vertical-align:top; }
.famos-ui .ui-table th:first-child, .famos-ui .ui-table td:first-child { padding-left:24px; }
.famos-ui .ui-table th:last-child, .famos-ui .ui-table td:last-child { padding-right:24px; }
.famos-ui .ui-table td a { color:var(--famos-link); font-weight:600; }
.famos-ui .ui-table td .person-name { font-size:14px; color:var(--famos-text); margin-top:5px; }
.famos-ui .ui-table .table-sort { display:inline-flex; align-items:center; gap:8px; padding:0; min-height:0; background:transparent; border:0; color:inherit; font:inherit; letter-spacing:inherit; text-transform:none; text-decoration:none; }
.famos-ui .ui-table .table-sort[aria-current], .famos-ui .ui-table .table-sort:hover { color:var(--famos-link); }
.famos-ui .ui-table .sort-arrow { font-size:12px; }
.famos-ui .ui-table-audit th { font-weight:600; letter-spacing:1.5px; text-transform:uppercase; }
.famos-ui .ui-table-audit td { padding-top:10px; padding-bottom:10px; }
.famos-ui .ui-table-audit th:first-child, .famos-ui .ui-table-audit td:first-child { padding-left:20px; }
.famos-ui .ui-table-admin th { font-weight:600; letter-spacing:1.5px; text-transform:uppercase; padding-top:10px; padding-bottom:10px; }
.famos-ui .ui-table-admin td { padding-top:12px; padding-bottom:12px; }
.famos-ui .ui-table-admin th:first-child, .famos-ui .ui-table-admin td:first-child { padding-left:16px; }
.famos-ui .audit-filter { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin:0 0 16px; padding:16px 20px; background:var(--famos-surface); border:1px solid var(--famos-border); border-radius:var(--famos-radius); }
.famos-ui .ui-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:16px; margin-bottom:28px; }
.famos-ui .ui-metric { display:block; padding:22px; border:1px solid var(--metric-border, var(--famos-border)); border-radius:var(--famos-radius); background:var(--metric-surface,var(--famos-surface)); color:var(--metric-text,var(--famos-text)); text-decoration:none; }
.famos-ui .ui-metric .section-label, .famos-ui .ui-metric dt { font:600 11px/16.5px var(--famos-font); letter-spacing:1px; text-transform:uppercase; color:inherit; }
.famos-ui .ui-metric strong, .famos-ui .ui-metric dd { display:block; font:800 36px/39.6px var(--famos-font); margin-top:12px; font-variant-numeric:tabular-nums; }
.famos-ui .ui-message { margin-bottom:16px; padding:12px 16px; border:1px solid var(--famos-border); border-radius:12px; background:var(--famos-brand-soft); font-size:14px; color:var(--famos-link); }
.famos-ui .ui-message-error { background:#fff7f6; border-color:#f3b4ae; color:#8f1d16; }
.famos-ui .ui-message-success { background:#eaf7ef; border-color:#a9d8b9; color:#176b3a; }
.famos-ui .ui-message-warning { background:#fff8dc; border-color:#e4d394; color:#705600; }
.famos-ui .report-page { max-width:var(--famos-report-width); }
.famos-ui .report-heading h2 { font:800 20px/30px var(--famos-font); margin-bottom:8px; }
.famos-ui .report-block > h4, .famos-ui .report-block > h3 { font-size:11px; margin-bottom:12px; }
.famos-ui .report-summary td:not(.report-value-text) { font-size:16px; }
.famos-ui .report-summary th { font-size:14px; }
.famos-ui .admin-panel { padding:var(--famos-settings-padding); }
.famos-ui .admin-choice { font-size:14px; }
@media (max-width:900px) { .famos-ui .form-grid-2 { grid-template-columns:1fr; } }
@media (max-width:700px) {
  .famos-ui .app-shell { display:block; height:auto; min-height:100vh; overflow:visible; }
  .famos-ui .app-sidebar { width:100%; overflow:visible; }
  .famos-ui .app-navigation { display:flex; overflow-x:auto; padding:8px; }
  .famos-ui .nav-item { flex:0 0 auto; white-space:nowrap; padding:9px 12px; }
  .famos-ui .app-account { padding:12px 18px; }
  .famos-ui .app-account .account-link { display:inline-block; margin-right:12px; }
  .famos-ui .app-account .logout-button { width:auto; padding-left:18px; padding-right:18px; }
  .famos-ui .app-header { padding:0 18px; }
  .famos-ui .app-content { padding:18px; }
  .famos-ui .workflow-section, .famos-ui .form-panel, .famos-ui .settings-panel, .famos-ui .admin-panel { padding:20px; }
  .famos-ui .ui-tabs a { padding:10px 14px; }
}
@media (max-width:430px) { .famos-ui .ui-metrics { grid-template-columns:1fr; } }
@media (pointer:coarse) { .famos-ui .btn-primary, .famos-ui .btn-secondary, .famos-ui .btn-ghost, .famos-ui .nav-item { min-height:44px; } .famos-ui .ui-table .table-sort { min-height:44px; } }
@media (prefers-reduced-motion:reduce) { .famos-ui *, .famos-ui *::before, .famos-ui *::after { transition:none; } }
@media print { .famos-ui .app-sidebar, .famos-ui .app-header { display:none; } .famos-ui .app-shell { display:block; height:auto; overflow:visible; } .famos-ui .app-workspace { overflow:visible; } .famos-ui .app-content { padding:0; } body.famos-ui { background:#fff; } }

.famos-ui .dashboard-panel { overflow:hidden; margin-bottom:24px; }
.famos-ui .dashboard-panel table { width:100%; border-collapse:collapse; }
.famos-ui .dashboard-panel th, .famos-ui .dashboard-panel td { padding:12px 20px; text-align:left; }
.famos-ui .dashboard-panel td { font-size:13px; color:var(--famos-muted); border-top:1px solid var(--famos-background); }
.famos-ui .dashboard-panel td a { color:var(--famos-link); font-weight:600; }
.famos-ui .report-filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.famos-ui .report-actions, .famos-ui .report-selection-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:20px; }
.famos-ui .report-settings { padding:24px; margin-bottom:24px; }
.famos-ui .report-menu { position:static; }
.famos-ui .report-menu-options a { display:block; text-align:left; padding:12px 16px; color:var(--famos-text); font-size:14px; text-decoration:none; }
.famos-ui .report-menu-options a:hover { background:var(--famos-brand-soft); }
.famos-ui .report-menu-options .field-hint { padding:12px 16px; border-top:1px solid var(--famos-border); }
.famos-ui #report-output, .famos-ui #report-input { scroll-margin-top:90px; }
.famos-ui .report-options .check-row { align-items:flex-start; }
.famos-ui .report-options input { margin-top:3px; flex-shrink:0; }
.famos-ui .report-settings > .btn-primary { margin-top:24px; }
.famos-ui .report-summary { border-collapse:collapse; }
@media(max-width:1000px) { .famos-ui .report-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .famos-ui .report-filter-grid, .famos-ui .report-options, .famos-ui .report-blocks, .famos-ui .admin-person-fields { grid-template-columns:1fr; } }

.famos-ui .badge, .famos-ui .status-badge { display:inline-flex; align-items:center; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; white-space:nowrap; }
.famos-ui .workflow-section > h2 { font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--famos-muted); }
.famos-ui .page-toolbar { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.famos-ui .list-row { padding:18px 24px; border-bottom:1px solid var(--famos-border); display:flex; justify-content:space-between; align-items:flex-start; gap:20px; font-size:14px; }
.famos-ui .empty-row { padding:28px; text-align:center; color:var(--famos-muted); font-size:13px; }
.famos-ui .dashboard-actions { display:flex; flex-wrap:wrap; gap:10px; }

@media(max-width:700px) { .famos-ui .list-row { flex-direction:column; } }

/* Named report variants: distribution percentages and arbitrary matrix columns. */
.famos-ui .report-block { overflow-x:auto; min-width:0; }
.famos-ui .report-matrix { min-width:560px; }
.famos-ui .report-distribution { min-width:280px; }
.famos-ui .report-matrix thead th, .famos-ui .report-distribution thead th { padding:6px 0 6px 16px; font:600 11px/16.5px var(--famos-font); color:var(--famos-muted); text-align:right; text-transform:uppercase; }
.famos-ui .report-matrix thead th:first-child, .famos-ui .report-distribution thead th:first-child { padding-left:0; text-align:left; }
.famos-ui .report-summary td.report-label { text-align:left; font:400 14px/21px var(--famos-font); color:var(--famos-text); }
.famos-ui .report-summary td.report-number { font:600 16px/24px var(--famos-font); white-space:nowrap; }
.famos-ui .report-summary td.report-percent { width:56px; font:400 12px/18px var(--famos-font); color:var(--famos-muted); }
.famos-ui .report-summary .report-zero > td { color:var(--famos-muted); }

.famos-ui .ui-table td.person-cell { font-size:14px; color:var(--famos-text); }
