/* SHEHAB OS — design layer on top of Bootstrap 5.3 (RTL/LTR, light/dark) */

@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-arabic-400.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-arabic-500.woff2") format("woff2"); font-weight: 500; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-arabic-600.woff2") format("woff2"); font-weight: 600; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-arabic-700.woff2") format("woff2"); font-weight: 700; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+FB50-FDFF, U+FE70-FEFF; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-latin-500.woff2") format("woff2"); font-weight: 500; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-latin-600.woff2") format("woff2"); font-weight: 600; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Plex Arabic"; src: url("../fonts/plex-latin-700.woff2") format("woff2"); font-weight: 700; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F, U+20AC, U+2122; }

:root {
    --sos-navy-950: #070f20;
    --sos-navy-900: #0b1730;
    --sos-navy-800: #12223f;
    --sos-navy-700: #1b2f54;
    --sos-gold: #c8a24a;
    --sos-gold-soft: rgba(200, 162, 74, .14);
    --sos-radius: 14px;
    --sos-sidebar-w: 264px;

    --bs-font-sans-serif: "Plex Arabic", system-ui, -apple-system, "Segoe UI", Tahoma, sans-serif;
    --bs-body-font-size: .9375rem;
    --bs-primary: #1f4fd1;
    --bs-primary-rgb: 31, 79, 209;
    --bs-link-color-rgb: 31, 79, 209;
}

[data-bs-theme="light"] {
    --bs-body-bg: #f3f5f9;
    --bs-body-color: #1d2639;
    --bs-secondary-color: #667089;
    --bs-border-color: #e3e7ef;
    --sos-surface: #ffffff;
    --sos-surface-2: #f8f9fc;
    --sos-topbar-bg: rgba(243, 245, 249, .82);
}

[data-bs-theme="dark"] {
    --bs-body-bg: #08101f;
    --bs-body-color: #dfe5f1;
    --bs-secondary-color: #8f9bb4;
    --bs-border-color: #1c2942;
    --bs-primary: #5b86ff;
    --bs-primary-rgb: 91, 134, 255;
    --bs-link-color-rgb: 125, 157, 255;
    --sos-surface: #0e1a30;
    --sos-surface-2: #12203a;
    --sos-topbar-bg: rgba(8, 16, 31, .82);
}

body { font-feature-settings: "tnum" 1; -webkit-font-smoothing: antialiased; }
.num { font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; }

/* ---------- Shell ---------- */
.sos-shell { min-height: 100vh; }
.sos-sidebar {
    width: var(--sos-sidebar-w);
    background: linear-gradient(180deg, var(--sos-navy-900), var(--sos-navy-950));
    color: #c9d3e8;
    border-inline-end: 1px solid rgba(255, 255, 255, .05);
}
@media (min-width: 992px) {
    .sos-sidebar { position: fixed; inset-block: 0; inset-inline-start: 0; z-index: 1030; overflow-y: auto; }
    .sos-main { margin-inline-start: var(--sos-sidebar-w); }
}
.sos-sidebar .offcanvas-header, .sos-sidebar .offcanvas-body { background: transparent; }

.sos-brand { display: flex; align-items: center; gap: .75rem; padding: 1.25rem 1.25rem 1rem; text-decoration: none; color: #fff; }
.sos-brand-mark {
    width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center;
    background: linear-gradient(135deg, var(--sos-navy-700), var(--sos-navy-800));
    border: 1px solid rgba(200, 162, 74, .45); color: var(--sos-gold); font-weight: 700; letter-spacing: .5px;
}
.sos-brand-name { font-weight: 700; letter-spacing: 1.5px; font-size: 1rem; line-height: 1.1; direction: ltr; }
.sos-brand-sub { font-size: .72rem; color: #8592ad; }

.sos-nav-section { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #6f7c98; padding: 1.1rem 1.4rem .4rem; }
.sos-nav a {
    display: flex; align-items: center; gap: .7rem; margin: .1rem .75rem; padding: .55rem .75rem;
    border-radius: 10px; color: #b9c4dc; text-decoration: none; font-weight: 500; position: relative;
}
.sos-nav a .bi { font-size: 1.05rem; opacity: .85; }
.sos-nav a:hover { background: rgba(255, 255, 255, .05); color: #fff; }
.sos-nav a.active { background: rgba(255, 255, 255, .08); color: #fff; }
.sos-nav a.active::before {
    content: ""; position: absolute; inset-inline-start: -.75rem; top: 22%; bottom: 22%;
    width: 3px; border-radius: 3px; background: var(--sos-gold);
}
.sos-sidebar-foot { padding: 1rem 1.4rem; font-size: .72rem; color: #66738f; }

.sos-topbar {
    position: sticky; top: 0; z-index: 1020; backdrop-filter: blur(10px);
    background: var(--sos-topbar-bg); border-bottom: 1px solid var(--bs-border-color);
}
.sos-search-trigger {
    display: flex; align-items: center; gap: .6rem; min-width: 260px; text-align: start;
    background: var(--sos-surface); border: 1px solid var(--bs-border-color); border-radius: 10px;
    padding: .45rem .8rem; color: var(--bs-secondary-color);
}
.sos-search-trigger:hover { border-color: rgba(var(--bs-primary-rgb), .4); }
.sos-kbd { margin-inline-start: auto; font-size: .7rem; border: 1px solid var(--bs-border-color); border-radius: 6px; padding: 0 .35rem; direction: ltr; }
.sos-icon-btn {
    width: 38px; height: 38px; display: inline-grid; place-items: center; border-radius: 10px;
    border: 1px solid var(--bs-border-color); background: var(--sos-surface); color: var(--bs-body-color); position: relative;
}
.sos-icon-btn:hover { border-color: rgba(var(--bs-primary-rgb), .4); }
.sos-dot { position: absolute; top: 6px; inset-inline-end: 6px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: #e5484d; color: #fff; font-size: .62rem; display: grid; place-items: center; }

.sos-content { padding: 1.75rem; max-width: 1400px; }
@media (max-width: 575.98px) { .sos-content { padding: 1rem; } .sos-search-trigger { min-width: 0; } }

/* ---------- Surfaces ---------- */
.sos-card { background: var(--sos-surface); border: 1px solid var(--bs-border-color); border-radius: var(--sos-radius); }
.sos-card-header { padding: 1rem 1.25rem; border-bottom: 1px solid var(--bs-border-color); display: flex; align-items: center; gap: .75rem; }
.sos-card-header h2, .sos-card-header h3 { font-size: 1rem; font-weight: 600; margin: 0; }
.sos-card-body { padding: 1.25rem; }

.sos-page-head { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; margin-bottom: 1.5rem; }
.sos-page-head h1 { font-size: 1.5rem; font-weight: 700; margin: 0; }
.sos-page-head p { margin: .25rem 0 0; color: var(--bs-secondary-color); }
.sos-page-head .actions { margin-inline-start: auto; display: flex; gap: .5rem; flex-wrap: wrap; }

.sos-hero {
    border-radius: var(--sos-radius); padding: 1.6rem 1.75rem; color: #fff; position: relative; overflow: hidden;
    background: radial-gradient(1200px 300px at 100% 0, rgba(200, 162, 74, .18), transparent 60%),
                linear-gradient(135deg, var(--sos-navy-800), var(--sos-navy-950));
}
.sos-hero .eyebrow { color: var(--sos-gold); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.sos-hero h1 { font-size: 1.6rem; font-weight: 700; margin: .35rem 0 .25rem; }
.sos-hero p { color: #aab6cf; margin: 0; }

.sos-stat { padding: 1.1rem 1.25rem; height: 100%; }
.sos-stat .label { color: var(--bs-secondary-color); font-size: .8rem; display: flex; align-items: center; gap: .4rem; }
.sos-stat .value { font-size: 1.35rem; font-weight: 700; margin-top: .35rem; }
.sos-stat .hint { font-size: .78rem; color: var(--bs-secondary-color); margin-top: .15rem; }

.sos-status { display: inline-flex; align-items: center; gap: .4rem; font-size: .78rem; font-weight: 600; padding: .2rem .6rem; border-radius: 999px; }
.sos-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.sos-status.ok { color: #1f9d63; background: rgba(31, 157, 99, .12); }
.sos-status.warn { color: #c98a14; background: rgba(201, 138, 20, .14); }
.sos-status.bad { color: #e5484d; background: rgba(229, 72, 77, .12); }
.sos-status.muted { color: var(--bs-secondary-color); background: var(--sos-surface-2); }

.sos-action { display: flex; gap: .9rem; padding: .95rem 1.25rem; border-bottom: 1px solid var(--bs-border-color); text-decoration: none; color: inherit; }
.sos-action:last-child { border-bottom: 0; }
.sos-action:hover { background: var(--sos-surface-2); }
.sos-action .ico { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; }
.sos-action .ico.danger { background: rgba(229, 72, 77, .12); color: #e5484d; }
.sos-action .ico.warning { background: rgba(201, 138, 20, .14); color: #c98a14; }
.sos-action .ico.info { background: rgba(var(--bs-primary-rgb), .12); color: var(--bs-primary); }
.sos-action .ico.ok { background: rgba(31, 157, 99, .12); color: #1f9d63; }
.sos-action .t { font-weight: 600; }
.sos-action .d { font-size: .82rem; color: var(--bs-secondary-color); }

.sos-feed { list-style: none; margin: 0; padding: 0; }
.sos-feed li { display: flex; gap: .75rem; padding: .7rem 1.25rem; border-bottom: 1px solid var(--bs-border-color); font-size: .87rem; }
.sos-feed li:last-child { border-bottom: 0; }
.sos-feed .pip { width: 8px; height: 8px; border-radius: 50%; margin-top: .45rem; background: var(--sos-gold); flex-shrink: 0; }
.sos-feed time { color: var(--bs-secondary-color); font-size: .76rem; }

.sos-empty { text-align: center; padding: 2.25rem 1rem; color: var(--bs-secondary-color); }
.sos-empty .bi { font-size: 1.9rem; display: block; margin-bottom: .5rem; opacity: .6; }
.sos-empty .t { color: var(--bs-body-color); font-weight: 600; }

.table { --bs-table-bg: transparent; margin: 0; }
.table > :not(caption) > * > * { padding: .7rem 1rem; border-color: var(--bs-border-color); }
.table thead th { font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); font-weight: 600; background: var(--sos-surface-2); }

.form-control, .form-select { border-radius: 10px; background-color: var(--sos-surface); }
.form-label { font-weight: 500; font-size: .87rem; }
.btn { border-radius: 10px; font-weight: 500; }
.btn-gold { background: var(--sos-gold); border-color: var(--sos-gold); color: #1b1404; }
.btn-gold:hover { background: #b8913a; border-color: #b8913a; color: #1b1404; }

.dropdown-menu { border-radius: 12px; border-color: var(--bs-border-color); background: var(--sos-surface); box-shadow: 0 12px 32px rgba(7, 15, 32, .14); }
.modal-content { border-radius: var(--sos-radius); background: var(--sos-surface); }

.sos-diff { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .8rem; direction: ltr; text-align: left; white-space: pre-wrap; word-break: break-word; }
.sos-diff .old { background: rgba(229, 72, 77, .1); }
.sos-diff .new { background: rgba(31, 157, 99, .1); }

.sos-token { font-family: ui-monospace, Menlo, Consolas, monospace; direction: ltr; word-break: break-all; }

/* ---------- Search palette ---------- */
#searchModal .modal-dialog { max-width: 620px; margin-top: 10vh; }
#searchModal .form-control { border: 0; box-shadow: none; font-size: 1.05rem; padding: 1rem 1.25rem; background: transparent; }
.sos-results { max-height: 50vh; overflow-y: auto; border-top: 1px solid var(--bs-border-color); }
.sos-results:empty { display: none; }
.sos-results .grp { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bs-secondary-color); padding: .75rem 1.25rem .25rem; }
.sos-results a { display: flex; gap: .75rem; align-items: center; padding: .6rem 1.25rem; color: inherit; text-decoration: none; }
.sos-results a.active, .sos-results a:hover { background: rgba(var(--bs-primary-rgb), .1); }

/* ---------- Auth ---------- */
.sos-auth { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.sos-auth-art {
    background: radial-gradient(800px 400px at 0 100%, rgba(200, 162, 74, .16), transparent 60%),
                linear-gradient(160deg, var(--sos-navy-800), var(--sos-navy-950));
    color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between;
}
.sos-auth-art h2 { font-size: 2rem; font-weight: 700; max-width: 26ch; }
.sos-auth-art p { color: #aab6cf; max-width: 46ch; }
.sos-auth-form { display: grid; place-items: center; padding: 2rem; }
.sos-auth-form .inner { width: 100%; max-width: 380px; }
@media (max-width: 991.98px) { .sos-auth { grid-template-columns: 1fr; } .sos-auth-art { display: none; } }

.sos-card-header a, .sos-feed a { text-decoration: none; }

/* ---------- Kanban ---------- */
.sos-kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 1fr); gap: 1rem; overflow-x: auto; padding-bottom: .5rem; align-items: start; }
.sos-kanban-compact { grid-auto-columns: minmax(200px, 1fr); }
.sos-kcol { background: var(--sos-surface-2); border: 1px solid var(--bs-border-color); border-radius: var(--sos-radius); display: flex; flex-direction: column; max-height: 75vh; }
.sos-kcol > header { display: flex; align-items: center; gap: .5rem; padding: .75rem .9rem; border-bottom: 1px solid var(--bs-border-color); }
.sos-kcol-body { padding: .6rem; display: flex; flex-direction: column; gap: .6rem; overflow-y: auto; min-height: 80px; border-radius: 0 0 var(--sos-radius) var(--sos-radius); transition: background .15s; }
.sos-kcol-body.is-over { background: rgba(var(--bs-primary-rgb), .06); }
.sos-kcard { background: var(--sos-surface); border: 1px solid var(--bs-border-color); border-radius: 12px; padding: .7rem .8rem; box-shadow: 0 1px 2px rgba(7, 15, 32, .04); }
.sos-kcard[draggable="true"] { cursor: grab; }
.sos-kcard.is-dragging { opacity: .45; }
.sos-kcard.is-alert { border-inline-start: 3px solid #e5484d; }
.sos-kcard .form-select-sm { font-size: .75rem; padding-top: .15rem; padding-bottom: .15rem; }
@media (hover: hover) and (pointer: fine) { .sos-kanban[data-kanban] .sos-kcard form { display: none; } .sos-kanban[data-kanban] .sos-kcard:hover form, .sos-kanban[data-kanban] .sos-kcard:focus-within form { display: block; } }

.sos-prio { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-top: .45rem; flex-shrink: 0; }
.sos-prio-low { background: #94a3b8; }
.sos-prio-medium { background: #3b82f6; }
.sos-prio-high { background: #f59e0b; }
.sos-prio-urgent { background: #e5484d; }

.nav-pills .nav-link { border-radius: 10px; color: var(--bs-secondary-color); }
.nav-pills .nav-link.active { background: var(--sos-navy-800); color: #fff; }
details > summary { cursor: pointer; color: var(--bs-link-color); }

/* Report and data tables: numbers never wrap mid-amount. */
.num-col { white-space: nowrap; text-align: end; }

/* Calendar (month grid) */
.sos-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.sos-cal-head > div { padding: .5rem; font-size: .78rem; font-weight: 600; color: var(--bs-secondary-color); border-bottom: 1px solid var(--bs-border-color); }
.sos-cal-day { min-height: 7.5rem; padding: .35rem; border-bottom: 1px solid var(--bs-border-color); border-inline-end: 1px solid var(--bs-border-color); overflow: hidden; }
.sos-cal-day:nth-child(7n) { border-inline-end: 0; }
.sos-cal-day.other { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); }
.sos-cal-day.today { box-shadow: inset 0 0 0 2px var(--bs-primary); }
.sos-cal-event { display: block; font-size: .72rem; line-height: 1.3; padding: .1rem .35rem; margin-top: .2rem; border-radius: .3rem; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: rgba(var(--bs-primary-rgb), .1); color: var(--bs-primary); }
.sos-cal-event.warning { background: rgba(201, 138, 20, .14); color: #a06c0b; }
.sos-cal-event.danger { background: rgba(229, 72, 77, .12); color: #c4282d; }

/* Everyday work on phones: one column, reachable navigation and generous touch targets. */
.sos-notification-menu { width: min(340px, calc(100vw - 24px)); }
.min-w-0 { min-width: 0; }
.sos-mobile-nav { display: none; }
.sos-disclosure > summary { padding: 1rem 1.25rem; font-weight: 600; }
.sos-disclosure[open] > summary { border-bottom: 1px solid var(--bs-border-color); }
.sos-mobile-welcome { margin: .5rem 0 1.25rem; }
.sos-mobile-welcome h1 { font-size: 1.55rem; font-weight: 700; margin-bottom: .4rem; }
.sos-quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-bottom: 1rem; }
.sos-mobile-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--sos-surface); border: 1px solid var(--bs-border-color); border-radius: var(--sos-radius); margin-bottom: 1.25rem; }
.sos-mobile-stats a { padding: .9rem .35rem; color: inherit; text-decoration: none; text-align: center; }
.sos-mobile-stats a + a { border-inline-start: 1px solid var(--bs-border-color); }
.sos-mobile-stats strong { display: block; font-size: 1.4rem; }
.sos-mobile-stats span { font-size: .78rem; }
.sos-date-chip { font-size: .75rem; padding: .3rem .5rem; background: var(--sos-surface-2); border-radius: 8px; white-space: nowrap; align-self: start; }
.sos-mobile-shortcuts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin-top: 1rem; }
.sos-mobile-shortcuts a { display: flex; flex-direction: column; gap: .5rem; align-items: center; padding: 1rem .25rem; border: 1px solid var(--bs-border-color); border-radius: 12px; background: var(--sos-surface); text-decoration: none; color: inherit; font-size: .85rem; }
.sos-mobile-shortcuts .bi { font-size: 1.25rem; color: var(--bs-primary); }

@media (max-width: 991.98px) {
    .sos-sidebar { overflow-y: auto; overscroll-behavior: contain; }
    .sos-content { padding: 1rem 1rem calc(6rem + env(safe-area-inset-bottom)); }
    .sos-main, .sos-content, .sos-card, .row > * { min-width: 0; }
    .sos-mobile-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; inset-inline: 0; bottom: 0; z-index: 1025; padding: .4rem .4rem calc(.4rem + env(safe-area-inset-bottom)); background: var(--sos-surface); border-top: 1px solid var(--bs-border-color); box-shadow: 0 -4px 20px rgba(7, 15, 32, .05); }
    .sos-mobile-nav a, .sos-mobile-nav button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; min-height: 54px; padding: .3rem .1rem; color: var(--bs-secondary-color); background: transparent; border: 0; border-radius: 10px; text-decoration: none; font: inherit; font-size: .72rem; }
    .sos-mobile-nav .bi { font-size: 1.25rem; line-height: 1.2; }
    .sos-mobile-nav .active { color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .08); font-weight: 600; }
    .sos-topbar > div { min-height: 64px; }
    .sos-icon-btn { width: 44px; height: 44px; flex-shrink: 0; }
    .sos-search-trigger { min-width: 0; min-height: 44px; }
    .sos-search-trigger > span { display: none !important; }
    .sos-page-head { align-items: start; gap: .75rem; margin-bottom: 1rem; }
    .sos-page-head h1 { font-size: 1.3rem; overflow-wrap: anywhere; }
    .sos-page-head p { font-size: .85rem; }
    .sos-page-head .actions { width: 100%; margin-inline-start: 0; }
    .sos-page-head .actions > .btn-primary { flex-grow: 1; }
    .btn, .btn-sm { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; }
    .form-control, .form-select, .form-control-sm, .form-select-sm, .sos-kcard .form-select-sm { min-height: 44px; font-size: 16px; }
    textarea.form-control { min-height: 100px; }
    input[type="date"] { min-width: 0; max-width: 100%; }
    .sos-card-header, .sos-card-body { padding: 1rem; }
    .sos-project-money .sos-stat { padding: .75rem; }
    .sos-card-header { flex-wrap: wrap; gap: .5rem; }
    .sos-action { padding: 1rem; gap: .65rem; overflow-wrap: anywhere; }
    .sos-kanban, .sos-kanban-compact { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); overflow: visible; }
    .sos-kcol { max-height: none; }
    .sos-kcol-body { overflow: visible; }
    .sos-kanban:has([data-id]) > .sos-kcol:not(:has([data-id])) { display: none; }
    .sos-kcard { padding: 1rem; }
    .sos-kcard[draggable="true"] { cursor: auto; }
    .sos-kcard form { display: block !important; }
    .sos-card .table-responsive { border-radius: inherit; }
    .sos-mobile-table thead { display: none; }
    .sos-mobile-table, .sos-mobile-table tbody { display: block; width: 100%; }
    .sos-mobile-table tr { display: block; padding: .6rem 1rem; border-bottom: 1px solid var(--bs-border-color); }
    .sos-mobile-table tr:last-child { border-bottom: 0; }
    .sos-mobile-table td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; min-width: 0 !important; padding: .45rem 0; border: 0; text-align: start !important; white-space: normal !important; overflow-wrap: anywhere; }
    .sos-mobile-table td::before { content: attr(data-label); font-size: .78rem; color: var(--bs-secondary-color); flex-shrink: 0; }
    .sos-mobile-table td:first-child { display: block; font-size: 1rem; padding-bottom: .7rem; }
    .sos-mobile-table td:first-child::before { display: none; }
    .sos-mobile-table td .progress { flex: 1; }
    .sos-form-footer { position: sticky; bottom: calc(76px + env(safe-area-inset-bottom)); background: var(--sos-surface); z-index: 10; border-radius: 0 0 var(--sos-radius) var(--sos-radius); }
    .sos-form-footer .btn { width: 100%; }
    .sos-nav a { min-height: 46px; }
}
@media print { .sos-mobile-nav, .sos-form-footer { display: none !important; } }
[id^="manage-"] { scroll-margin-top: 6rem; }
