/* Shared interface corrections. Loaded after the original theme and scoped styles. */
:root { --muted:#626262; --teal:#bd4708; }
body { line-height:1.5; }
img { max-width:100%; }
a { color:#a43c06; text-underline-offset:3px; }
h1,h2,h3,p,dd,li { overflow-wrap:break-word; }
h1 { line-height:1.2; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #17639d; outline-offset:3px; }
.button { min-height:44px; padding:10px 16px; line-height:1.35; text-align:center; text-decoration:none; max-width:100%; }
.button-secondary { color:var(--ink); }
.button:disabled,.btn:disabled { opacity:.6; cursor:not-allowed; }
.button + .button { margin:4px 0 4px 8px; }
.title-actions .button,.review-buttons .button { margin:0; }
.button.full-width { width:100%; }
.activity-panel .button.full-width { width:auto; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:10001; padding:12px 18px; background:white; border:2px solid #17639d; }
.skip-link:focus { top:12px; }
.page-navigation { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 20px; margin:0 0 18px; }
.page-navigation a { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin:0; font-size:14px; font-weight:650; }
.sidebar { overflow-y:auto; }
.sidebar-menu { display:flex; flex-direction:column; flex:1; min-height:0; }
.sidebar-foot { padding-top:20px; }
.primary-nav { gap:3px; }
.primary-nav .nav-item,.sidebar-foot .nav-item { min-height:44px; padding:10px 12px; font-size:14px; line-height:1.4; }
.menu-toggle { display:none; }
.topbar { height:auto; min-height:78px; flex-wrap:wrap; padding-block:12px; }
.topbar .logout-form { margin-left:auto; }
.page-content > h1 { margin-top:0; }
.page-content > .panel { margin-top:18px; margin-bottom:18px; }
.panel:not(:is(.list-panel,.summary-card,.timeline-panel,.operations-panel,.activity-panel,.schedule-panel,.person-profile-card,.registration-request-card)) { padding:22px; }
.panel,.field,.field-grid > *,.detail-grid > *,.summary-body > *,.record-line > * { min-width:0; }
.field-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.field,.mobile-field { font-size:14px; line-height:1.45; }
.field input,.field select,.field textarea,.mobile-field input,.mobile-field textarea { font-size:16px; min-height:44px; }
.field input[type=checkbox] { min-height:20px; width:20px; }
.selection-label { padding-block:7px; font-size:14px; }
input[type=checkbox],input[type=radio] { accent-color:#bd4708; }
.mobile-alert,.form-alert,.validation-message,.text-danger { font-size:14px; }
.mobile-alert:not(.error):not(.success) { background:#fff4df; color:#634611; border:1px solid #ead6ad; }
.status-badge { max-width:100%; width:fit-content; font-size:11px; white-space:normal; }
.title-with-status,.panel-heading,.timeline-content > div:first-child { flex-wrap:wrap; }
.title-with-status h1 { overflow-wrap:anywhere; }
.list-panel { overflow-x:auto; }
.list-toolbar { flex-wrap:wrap; align-items:flex-start; }
.search-box { min-width:0; min-height:44px; }
.search-box:focus-within { outline:3px solid #17639d; outline-offset:2px; }
.segmented-control { flex-wrap:wrap; gap:4px; }
.segmented-control button { min-height:44px; font-size:13px; }
.table-header { font-size:11px; }
.table-row strong { font-size:14px; }
.table-row small { font-size:12px; }
.table-row > div,.person-cell > span { min-width:0; overflow-wrap:anywhere; }
.exception-row { color:inherit; text-decoration:none; }
.avatar.green-bg { color:#185333; }
.avatar.blue-bg { color:#184975; }
.avatar.amber-bg { color:#674309; }
.record-line { overflow-wrap:anywhere; }
.record-line .button { flex-shrink:0; }
.summary-band { grid-template-columns:repeat(4,minmax(0,1fr)); }
.summary-band > div { min-width:0; padding:16px; }
.summary-band span,.summary-body .label { font-size:11px; }
.summary-band strong,.data-list dt,.data-list dd { font-size:14px; }
.attendance-actual { grid-template-columns:repeat(5,minmax(0,1fr)); }
.data-list dd { overflow-wrap:anywhere; }
.timeline-content strong { font-size:14px; }
.timeline-content p,.summary-body p { font-size:14px; }
.timeline-content small,.timeline-content time { font-size:12px; }
.operative-topbar { min-height:72px; height:auto; padding-block:10px; gap:12px; }
.operative-content { padding-bottom:calc(110px + env(safe-area-inset-bottom)); }
.operative-content p,.operative-content li { font-size:14px; line-height:1.6; }
.operative-content small { font-size:12px; }
.operative-content .field-hint { font-size:12px; }
.operative-content .panel { padding:18px; }
.operative-content .field-grid { grid-template-columns:minmax(0,1fr); }
.operative-content .span-2 { grid-column:auto; }
.operative-nav { height:auto; min-height:76px; padding-bottom:env(safe-area-inset-bottom); grid-template-columns:repeat(5,minmax(0,1fr)); }
.operative-nav a { position:relative; min-width:0; min-height:72px; padding:8px 2px; color:#53605d; }
.operative-nav small { font-size:11px; }
.mobile-work-card { grid-template-columns:48px minmax(0,1fr); }
.mobile-work-main h2 { font-size:17px; line-height:1.35; margin:0 0 7px; }
.mobile-work-main p { margin:5px 0; }
.mobile-job-header h1 { font-size:28px; }
.job-when strong,.job-place strong { font-size:16px; }
.job-when span,.job-place span { font-size:12px; }
.instruction-card > p { font-size:15px; }
.mobile-primary-action,.mobile-secondary-action { padding:12px; font-size:16px; }
.inline-form label { font-size:14px; }
.admin-preview-note { padding:12px; border:1px solid #e2bd9b; border-radius:8px; background:#fff4e8; }
.public-header,.account-header { gap:16px; flex-wrap:wrap; padding-block:16px; }
.public-header > span,.account-header > span { font-size:12px; }
.approval-heading p,.approval-success > p,.approval-instructions p,.approval-details dd,.approval-declaration { font-size:15px; }
.approval-details dt,.approval-details small,.signature-field small { font-size:12px; }
.signature-field label { font-size:14px; }
.signature-field button { min-height:44px; padding:8px 12px; font-size:14px; }
.account-card h3 { display:block; font-size:19px; }
.account-card p,.account-card .form-label { font-size:14px; }
.account-card .form-control { font-size:16px; }
.account-card .button-primary { color:white; }
.account-management-grid { display:grid; grid-template-columns:220px minmax(0,1fr); gap:24px; }
.account-management .nav { display:grid; list-style:none; padding:0; margin:0; gap:6px; }
.account-management .nav-item { display:block; padding:0; color:var(--ink); }
.account-management .nav-link { display:block; padding:12px; border-radius:8px; color:#434343; font-size:14px; text-decoration:none; }
.account-management .nav-link.active { color:#8b3204; background:#fff0e5; font-weight:750; }
.account-management .nav-item::before { display:none; }
.account-management .form-floating { display:grid; gap:6px; margin-bottom:16px; }
.account-management .form-floating label { grid-row:1; font-weight:650; font-size:14px; }
.account-management .form-control { width:100%; min-height:44px; padding:12px; border:1px solid #bcc9c1; border-radius:8px; font-size:16px; }
.account-management .btn { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 16px; border:0; border-radius:8px; color:white; background:#bd4708; text-decoration:none; margin:4px 6px 4px 0; cursor:pointer; }
.account-management .btn-danger { background:#a42c2c; }
.account-management .btn-link { color:#a43c06; background:transparent; }
.account-management .alert { padding:14px; background:#fff4df; border-radius:8px; margin:16px 0; }
.account-management table { width:100%; border-collapse:collapse; }
.account-management td,.account-management th { text-align:left; padding:12px 8px; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.account-management-body { min-width:0; overflow-wrap:anywhere; }
.signed-sheet-dialog[open] { display:flex; flex-direction:column; gap:12px; }
.signed-sheet-dialog header,.signed-sheet-dialog p { margin:0; flex-shrink:0; }
.signed-sheet-dialog iframe { flex:1; min-height:120px; height:auto; }
#blazor-error-ui a { color:inherit; font-weight:750; }
@media(max-width:1100px) {
    .app-shell { grid-template-columns:228px minmax(0,1fr); }
    .sidebar { padding:18px 12px; }
    .brand > small { display:block; }
    .primary-nav .nav-item,.sidebar-foot .nav-item { justify-content:flex-start; }
    .page-content { padding:24px; }
    .detail-grid { grid-template-columns:minmax(0,1fr); }
    .attendance-actual { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
    .app-shell { display:block; padding-bottom:0; }
    .sidebar { position:static; height:auto; width:auto; overflow:visible; padding:12px 16px; }
    .menu-toggle { display:inline-flex; }
    .sidebar-menu { display:none; padding-top:14px; }
    .sidebar-menu.is-open { display:flex; }
    .sidebar .brand { display:grid; max-width:220px; }
    .sidebar .sidebar-foot { display:block; }
    .sidebar .primary-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); height:auto; gap:6px; }
    .sidebar .primary-nav .nav-item:nth-child(n),.sidebar-foot .nav-item { display:flex; font-size:14px; text-align:left; padding:12px; }
    .sidebar .nav-item.active::before { display:none; }
    .sidebar .nav-item.active { box-shadow:inset 3px 0 #ff7a2c; }
    .topbar { gap:12px; padding:12px 16px; }
    .topbar > div:first-child { display:block; flex:1 1 100%; }
    .topbar .logout-form { margin-left:0; }
    .page-content { padding:18px 16px 32px; }
    .field-grid,.account-management-grid { grid-template-columns:minmax(0,1fr); }
    .field.span-2,.span-2 { grid-column:auto; }
    .panel-heading { gap:12px; }
    .summary-band { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .summary-band > div { border-bottom:1px solid var(--line); }
    .summary-band > div:nth-child(even) { border-right:0; }
    .account-management .nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .account-management .nav-link { height:100%; border:1px solid var(--line); }
    .activity-panel { display:flex; }
    .title-actions { width:100%; }
    .title-actions .button { flex:1 1 auto; }
}
@media(max-width:420px) {
    .sidebar .primary-nav,.account-management .nav { grid-template-columns:minmax(0,1fr); }
    .operative-topbar { padding-inline:10px; }
    .operative-nav small { font-size:10px; }
    .account-header > span,.public-header > span { flex-basis:100%; }
    .account-card { padding:22px 18px; }
    .page-navigation { gap:4px; }
    .summary-band { grid-template-columns:minmax(0,1fr); }
    .summary-band > div { border-right:0; }
    .registration-filters,.catalogue-actions { align-items:stretch; }
    .button + .button { margin-left:0; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
