/**
 * Altius Front - the front-end app at /altius/
 * Visual language follows Altius Workspace: deep blue accent, amber focus,
 * soft cards, pill buttons, a tinted left rail.
 */

:root {
    --al-ink: #1c2733;
    --al-ink-soft: #5b6b7b;
    --al-line: #e3e8ee;
    --al-bg: #f4f6f9;
    --al-card: #ffffff;
    --al-accent: #0f4c81;
    --al-accent-dark: #0c3d68;
    --al-accent-ink: #ffffff;
    --al-warm: #e8a33d;
    --al-ok: #2f7d5c;
    --al-bad: #b32d2e;
    --al-radius: 14px;
    --al-radius-sm: 8px;
    --al-rail: 236px;
}

html, body.altius-front-body {
    margin: 0;
    padding: 0;
    background: var(--al-bg);
    color: var(--al-ink);
    font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    -webkit-font-smoothing: antialiased;
}
.altius-front-body * { box-sizing: border-box; }
.altius-front-body a { color: var(--al-accent); text-decoration: none; }
.altius-front-body a:hover { color: var(--al-accent-dark); }
.altius-front-body :focus-visible { outline: 3px solid var(--al-warm); outline-offset: 2px; }

/* ------------------------------------------------------------------ */
/* App shell */
.altius-front {
    display: flex;
    min-height: 100vh;
    align-items: stretch;
}

.altius-rail {
    flex: 0 0 var(--al-rail);
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    padding: 18px 12px 14px;
    background: linear-gradient(180deg, #f3f7fb 0%, #e8eef6 100%);
    border-right: 1px solid #d8e2ec;
    box-shadow: inset -1px 0 0 rgba(255,255,255,0.8);
}
.altius-rail-brand {
    display: flex; align-items: center; gap: 10px;
    padding: 6px 10px 16px;
    color: var(--al-ink);
    font-weight: 700;
    font-size: 15px;
}
.altius-rail-brand img { max-height: 44px; max-width: 100%; display: block; }
.altius-rail-mark {
    display: inline-grid; place-items: center;
    width: 32px; height: 32px; border-radius: 9px;
    background: var(--al-accent); color: #fff; font-weight: 800; font-size: 16px;
}
.altius-rail-toggle { display: none; }

.altius-rail-nav { display: flex; flex-direction: column; gap: 2px; }
.altius-rail-item {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 12px;
    border-radius: var(--al-radius-sm);
    font-weight: 600;
    font-size: 14.5px;
    color: var(--al-ink);
    transition: background .12s ease;
}
.altius-rail-item .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--al-ink-soft); }
.altius-rail-item:hover { background: rgba(15,76,129,0.07); color: var(--al-ink); }
.altius-rail-item.is-active {
    background: rgba(15,76,129,0.11);
    color: var(--al-accent);
    box-shadow: inset 3px 0 0 var(--al-accent);
}
.altius-rail-item.is-active .dashicons { color: var(--al-accent); }

.altius-rail-foot { margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(15,76,129,0.12); }
.altius-rail-user { display: flex; align-items: center; gap: 10px; padding: 6px 10px 8px; }
.altius-rail-avatar { border-radius: 50%; width: 32px; height: 32px; }
.altius-rail-user-text { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.altius-rail-user-text strong { font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.altius-rail-admin-link { font-size: 12px; color: var(--al-ink-soft); }
.altius-rail-logout { font-weight: 500; color: var(--al-ink-soft); }

.altius-main {
    flex: 1 1 auto;
    min-width: 0;
    padding: 26px 32px 48px;
}

.altius-mtop, .altius-rail-scrim { display: none; }

@media (max-width: 960px) {
    /* Top bar: always there, so there is always a way to the menu and home.
       (Installed on a phone there is no browser back button.) */
    .altius-mtop {
        display: flex; align-items: center; gap: 10px;
        position: fixed; left: 0; right: 0; top: 0; z-index: 1001;
        height: calc(56px + env(safe-area-inset-top, 0px));
        padding: env(safe-area-inset-top, 0px) 12px 0;
        background: #fff; border-bottom: 1px solid var(--al-line);
        box-shadow: 0 2px 10px rgba(18,48,73,0.06);
    }
    .altius-rail-toggle, .altius-mtop-home {
        display: grid; place-items: center; flex: 0 0 40px;
        width: 40px; height: 40px; border-radius: 10px; padding: 0; cursor: pointer;
        border: 1px solid var(--al-line); background: #fff; color: var(--al-ink);
    }
    .altius-mtop-home { color: var(--al-accent); }
    .altius-rail-toggle .dashicons, .altius-mtop-home .dashicons { font-size: 22px; width: 22px; height: 22px; }
    .altius-mtop-brand {
        flex: 1 1 auto; min-width: 0; font-weight: 700; font-size: 16px;
        color: var(--al-ink) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }

    /* The menu slides in under the bar */
    .altius-rail {
        position: fixed; left: 0; z-index: 1000;
        top: calc(56px + env(safe-area-inset-top, 0px));
        height: calc(100vh - 56px - env(safe-area-inset-top, 0px));
        height: calc(100dvh - 56px - env(safe-area-inset-top, 0px));
        overflow-y: auto; -webkit-overflow-scrolling: touch;
        padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
        transform: translateX(-100%);
        transition: transform .18s ease;
        box-shadow: 0 12px 28px rgba(18,48,73,0.18);
    }
    .altius-rail.is-open { transform: translateX(0); }
    .altius-rail .altius-rail-brand { display: none; } /* the bar shows the name */
    .altius-rail-grip { display: none; }              /* no drag-to-reorder on touch */
    .altius-rail-scrim {
        display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 999;
        top: calc(56px + env(safe-area-inset-top, 0px));
        background: rgba(15,30,45,0.35); opacity: 0; pointer-events: none; transition: opacity .18s ease;
    }
    .altius-menu-open .altius-rail-scrim { opacity: 1; pointer-events: auto; }
    .altius-menu-open { overflow: hidden; }
    .altius-main { padding: calc(72px + env(safe-area-inset-top, 0px)) 16px 40px; }

    /* Wide tables scroll sideways on their own; the page stays put */
    .altius-table-scroll {
        overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
        max-width: 100%; margin: 0 0 16px;
        /* soft shadows at whichever edge has more to see */
        background:
            linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)) left center / 32px 100% no-repeat local,
            linear-gradient(270deg, #fff 30%, rgba(255,255,255,0)) right center / 32px 100% no-repeat local,
            radial-gradient(farthest-side at 0 50%, rgba(18,48,73,.16), rgba(18,48,73,0)) left center / 12px 100% no-repeat scroll,
            radial-gradient(farthest-side at 100% 50%, rgba(18,48,73,.16), rgba(18,48,73,0)) right center / 12px 100% no-repeat scroll;
    }
    .altius-table-scroll > table { margin-bottom: 0 !important; min-width: 100%; width: auto !important; max-width: none !important; table-layout: auto !important; }
    .altius-table-scroll th, .altius-table-scroll td { white-space: nowrap; }
    .altius-table-scroll .altius-cell-wrap { white-space: normal; min-width: 180px; }

    /* Nothing else pushes past the edge of the screen */
    .altius-main { min-width: 0; max-width: 100vw; }
    .altius-main img, .altius-main video, .altius-main iframe, .altius-main canvas { max-width: 100%; height: auto; }
    .altius-main input:not([type=checkbox]):not([type=radio]), .altius-main select, .altius-main textarea { max-width: 100%; }
    .altius-main pre { overflow-x: auto; max-width: 100%; }
}

/* ------------------------------------------------------------------ */
/* Module tabs (rendered by Altius_Shell in front mode) */
.altius-app.is-front { max-width: 1280px; }
.altius-shell-tabs {
    display: flex; gap: 6px; flex-wrap: wrap;
    margin: 0 0 18px;
}
.altius-tab {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--al-line);
    background: #fff;
    color: var(--al-ink-soft);
    font-weight: 600;
    font-size: 13.5px;
}
.altius-tab:hover { border-color: var(--al-accent); color: var(--al-accent); }
.altius-tab.is-current { background: var(--al-accent); border-color: var(--al-accent); color: #fff; }
.altius-tab.is-primary:not(.is-current)::before { content: "+"; margin-right: 5px; font-weight: 700; }

.altius-page-title { font-size: 24px; margin: 0 0 14px; font-weight: 700; letter-spacing: -0.01em; }

/* ------------------------------------------------------------------ */
/* Re-skin of the WordPress admin components the module pages emit */
.altius-main .wrap { margin: 0; padding: 0; max-width: none; }
.altius-main .wrap > h1,
.altius-main h1.wp-heading-inline {
    font-size: 24px; font-weight: 700; margin: 0 0 16px; padding: 0; line-height: 1.3; color: var(--al-ink);
    display: inline-block;
}
.altius-main h2 { font-size: 17px; margin: 22px 0 10px; }
.altius-main .page-title-action {
    display: inline-block; margin-left: 10px; vertical-align: middle;
    padding: 7px 16px; border-radius: 999px;
    background: var(--al-accent); color: #fff !important; font-weight: 600; font-size: 13px;
}
.altius-main .page-title-action:hover { background: var(--al-accent-dark); }
.altius-main .description, .altius-muted { color: var(--al-ink-soft); }
.altius-small { font-size: 13px; }

/* Cards: sections, settings panels, form sections */
.altius-main .altius-card,
.altius-main .altius-quote-form-section,
.altius-main .altius-invoice-form-section,
.altius-main .altius-po-form-section,
.altius-main .altius-quote-settings,
.altius-main .altius-invoice-settings,
.altius-main .altius-po-settings,
.altius-main .altius-quote-filters,
.altius-main .altius-invoice-filters,
.altius-main .altius-po-filters,
.altius-main .altius-quote-details,
.altius-main .altius-invoice-details,
.altius-main .altius-po-details,
.altius-main .altius-suite-card,
.altius-main .altius-suite-status-card,
.altius-main .postbox {
    background: var(--al-card);
    border: 1px solid var(--al-line);
    border-radius: var(--al-radius);
    padding: 22px 24px;
    margin: 0 0 20px;
    box-shadow: 0 1px 3px rgba(28,39,51,0.06);
}
.altius-main .altius-quote-form-section > h2:first-child,
.altius-main .altius-invoice-form-section > h2:first-child,
.altius-main .altius-po-form-section > h2:first-child,
.altius-main .altius-card > h2:first-child { margin-top: 0; }

/* Forms */
.altius-main .form-table { border-collapse: collapse; width: 100%; }
.altius-main .form-table th {
    text-align: left; vertical-align: top;
    width: 200px; padding: 14px 16px 14px 0;
    font-weight: 600; font-size: 14px; color: var(--al-ink);
}
.altius-main .form-table td { padding: 10px 0; vertical-align: top; }
.altius-main input[type="text"], .altius-main input[type="email"], .altius-main input[type="url"],
.altius-main input[type="number"], .altius-main input[type="date"], .altius-main input[type="password"],
.altius-main input[type="search"], .altius-main select, .altius-main textarea {
    border: 1px solid #cdd6e0; border-radius: var(--al-radius-sm);
    padding: 8px 12px; font: inherit; color: var(--al-ink); background: #fff;
    min-height: 38px; line-height: 1.4;
    transition: border-color .12s ease, box-shadow .12s ease;
}
.altius-main input:focus, .altius-main select:focus, .altius-main textarea:focus {
    border-color: var(--al-accent); box-shadow: 0 0 0 3px rgba(15,76,129,0.15); outline: none;
}
.altius-main .regular-text { width: 100%; max-width: 420px; }
.altius-main .large-text, .altius-main textarea.large-text { width: 100%; }
.altius-main input[readonly] { background: #f6f8fa; }
.altius-main label { font-weight: 600; font-size: 13.5px; }
.altius-main .line-item { background: #fafbfd; border: 1px solid var(--al-line); border-radius: var(--al-radius-sm); }

/* Buttons */
.altius-main .button, .altius-main .button-secondary, .altius-main .button-primary,
.altius-main input[type="submit"], .altius-main button.button {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 18px; min-height: 38px;
    border-radius: 999px; border: 1px solid var(--al-line);
    background: #fff; color: var(--al-accent);
    font: inherit; font-weight: 600; font-size: 14px; line-height: 1.2;
    cursor: pointer; text-decoration: none;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}
.altius-main .button:hover, .altius-main .button-secondary:hover { border-color: var(--al-accent); transform: translateY(-1px); }
.altius-main .button-primary, .altius-main input[type="submit"].button-primary {
    background: var(--al-accent); border-color: var(--al-accent); color: #fff;
}
.altius-main .button-primary:hover { background: var(--al-accent-dark); box-shadow: 0 3px 10px rgba(15,76,129,0.3); color: #fff; }
.altius-main .button-link { background: none; border: 0; padding: 0; color: var(--al-accent); cursor: pointer; font: inherit; }
.altius-main .button.button-small, .altius-main .button-small { padding: 5px 12px; min-height: 30px; font-size: 13px; }
.altius-main .button .dashicons { font-size: 16px; width: 16px; height: 16px; }
.altius-main p.submit { padding: 10px 0 0; margin: 0; }

/* Tables */
.altius-main table.widefat, .altius-main table.wp-list-table {
    width: 100%; border-collapse: separate; border-spacing: 0;
    background: var(--al-card); border: 1px solid var(--al-line); border-radius: var(--al-radius);
    overflow: hidden; box-shadow: 0 1px 3px rgba(28,39,51,0.06);
}
.altius-main table.widefat th, .altius-main table.wp-list-table th {
    text-align: left; padding: 12px 16px;
    font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--al-ink-soft); background: #f7f9fb; border-bottom: 1px solid var(--al-line);
}
.altius-main table.widefat td, .altius-main table.wp-list-table td {
    padding: 13px 16px; border-bottom: 1px solid var(--al-line); vertical-align: middle;
}
.altius-main table.widefat tr:last-child td, .altius-main table.wp-list-table tr:last-child td { border-bottom: 0; }
.altius-main table.striped tbody tr:nth-child(odd) td { background: #fbfcfd; }
.altius-main table tbody tr:hover td { background: #f3f7fb; }
.altius-main .tablenav { display: flex; justify-content: space-between; align-items: center; margin: 12px 0; }
.altius-main .tablenav-pages .page-numbers { padding: 6px 10px; border-radius: 8px; border: 1px solid var(--al-line); background: #fff; margin-left: 4px; }
.altius-main .tablenav-pages .page-numbers.current { background: var(--al-accent); color: #fff; border-color: var(--al-accent); }

/* Notices */
.altius-main .notice, .altius-msg {
    padding: 12px 16px; border-radius: var(--al-radius-sm); margin: 0 0 16px;
    border: 1px solid var(--al-line); background: #fff; font-size: 14.5px;
}
.altius-main .notice p { margin: 0; }
.altius-main .notice-success, .altius-msg-success { background: #ecf7ef; color: #1d5c33; border-color: #c5e6cf; }
.altius-main .notice-error, .altius-msg-error { background: #fdeeee; color: #8a1f1f; border-color: #f3c8c8; }
.altius-main .notice-warning { background: #fdf6ea; color: #7a4e07; border-color: #f0ddb8; }
.altius-main .notice-info { background: #eef4fb; color: #0f4c81; border-color: #cfe0f2; }
.altius-main .notice.is-dismissible .notice-dismiss { display: none; }

/* Settings tabs (nav-tab) */
.altius-main .nav-tab-wrapper { border-bottom: 0; margin: 0 0 16px; padding: 0; display: flex; gap: 6px; flex-wrap: wrap; }
.altius-main .nav-tab {
    float: none; margin: 0; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--al-line);
    background: #fff; color: var(--al-ink-soft); font-weight: 600; font-size: 13.5px;
}
.altius-main .nav-tab-active, .altius-main .nav-tab:hover { background: var(--al-accent); color: #fff; border-color: var(--al-accent); }

/* Status chips used by the modules */
.altius-main .altius-quote-stage, .altius-main .altius-invoice-status, .altius-main .altius-po-status, .altius-chip {
    display: inline-block; padding: 3px 10px; border-radius: 999px;
    font-size: 11.5px; font-weight: 700; letter-spacing: 0.03em;
}

/* Inline notice used on settings pointers */
.altius-notice-inline {
    display: flex; gap: 12px; align-items: flex-start;
    background: #eef4fb; border: 1px solid #cfe0f2; border-left: 4px solid var(--al-accent);
    padding: 14px 16px; margin: 0 0 14px; border-radius: var(--al-radius-sm);
}
.altius-notice-inline .dashicons { color: var(--al-accent); }
.altius-chip.is-default { background: #e3f1e8; color: #1f6b3a; }

/* Companies grid (shared with wp-admin) */
.altius-companies { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; margin-top: 16px; }
.altius-company-card { background: #fff; border: 1px solid var(--al-line); border-radius: var(--al-radius); padding: 18px; display: flex; flex-direction: column; gap: 10px; box-shadow: 0 1px 3px rgba(28,39,51,0.06); }
.altius-company-card .altius-company-logo { height: 48px; display: flex; align-items: center; }
.altius-company-card .altius-company-logo img { max-height: 48px; max-width: 100%; }
.altius-company-card .altius-company-logo.is-empty { color: var(--al-ink-soft); font-size: 12px; font-style: italic; }
.altius-company-card h3 { margin: 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.altius-company-card .altius-company-meta { color: var(--al-ink-soft); font-size: 13px; white-space: pre-line; line-height: 1.5; }
.altius-company-card .altius-company-actions { margin-top: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.altius-company-card.is-new { border-style: dashed; align-items: center; justify-content: center; min-height: 160px; color: var(--al-ink-soft); box-shadow: none; }
.altius-company-card.is-new:hover { border-color: var(--al-accent); color: var(--al-accent); }
.altius-logo-field { display: flex; gap: 10px; align-items: flex-start; }
.altius-logo-field .altius-logo-preview { width: 160px; height: 60px; border: 1px dashed var(--al-line); display: grid; place-items: center; background: #fafbfc; border-radius: 8px; }
.altius-logo-field .altius-logo-preview img { max-width: 150px; max-height: 54px; }

/* Dashboard page inside the app: its own gradient header becomes a hero */
.altius-main .altius-dashboard-wrap .altius-dashboard-header {
    background: linear-gradient(120deg, #0f4c81 0%, #16639f 55%, #1c73b5 100%) !important;
    color: #fff !important; border-radius: var(--al-radius) !important; padding: 28px 32px !important;
    box-shadow: 0 10px 24px rgba(15,76,129,0.18) !important;
}
.altius-main .altius-dashboard-wrap .altius-dashboard-header h1,
.altius-main .altius-dashboard-wrap .altius-dashboard-header .altius-tagline { color: #fff !important; }

/* ------------------------------------------------------------------ */
/* Login */
.altius-login-body { display: grid; place-items: center; min-height: 100vh; padding: 20px; background: linear-gradient(160deg, #f4f6f9 0%, #e8eef6 100%); }
.altius-login { width: 100%; max-width: 420px; }
.altius-card { background: var(--al-card); border: 1px solid var(--al-line); border-radius: var(--al-radius); padding: 28px; box-shadow: 0 10px 30px rgba(18,48,73,0.10); }
.altius-login-card { text-align: center; }
.altius-login-brand img { max-height: 56px; max-width: 220px; }
.altius-login-card h1 { font-size: 22px; margin: 14px 0 4px; }
.altius-login-card .altius-muted { margin: 0 0 18px; }
.altius-login-form { text-align: left; display: flex; flex-direction: column; gap: 6px; }
.altius-login-form label { font-weight: 600; font-size: 13.5px; margin-top: 8px; }
.altius-login-form input[type="text"], .altius-login-form input[type="password"] {
    border: 1px solid #cdd6e0; border-radius: var(--al-radius-sm); padding: 10px 12px; font: inherit; min-height: 42px;
}
.altius-login-form input:focus { border-color: var(--al-accent); box-shadow: 0 0 0 3px rgba(15,76,129,0.15); outline: none; }
.altius-check { display: flex; align-items: center; gap: 8px; font-weight: 500 !important; margin: 10px 0 14px !important; }
.altius-login-form .button-primary {
    display: inline-flex; justify-content: center; align-items: center;
    padding: 11px 20px; min-height: 44px; border-radius: 999px; border: 0;
    background: var(--al-accent); color: #fff; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer;
}
.altius-login-form .button-primary:hover { background: var(--al-accent-dark); box-shadow: 0 3px 10px rgba(15,76,129,0.3); }
.altius-btn-wide { width: 100%; }
.altius-login-card .altius-small { margin: 16px 0 0; }
.altius-rail-user-text .altius-rail-admin-link + .altius-rail-admin-link { font-size: 10.5px; opacity: .8; white-space: normal; line-height: 1.3; margin-top: 2px; }

/* Rail drag to reorder */
.altius-rail-item { position: relative; }
.altius-rail-grip { margin-left: auto; opacity: 0; color: var(--al-muted, #6b7280); cursor: grab; font-size: 16px; width: 16px; height: 16px; transition: opacity .12s ease; }
.altius-rail-item:hover .altius-rail-grip { opacity: .6; }
.altius-rail-item.is-dragging { opacity: .5; outline: 2px dashed var(--al-accent, #0f4c81); outline-offset: -2px; }

/* v2.10.0: WordPress's visually hidden labels, outside wp-admin too */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}

/* ------------------------------------------------------------------ */
/* 2.16.0: phones feel like an app */
.altius-tabbar, .altius-mtop-back { display: none; }
@media (max-width: 960px) {
    /* Back arrow on a record's page */
    .altius-mtop-back {
        display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; margin-left: -6px;
        border-radius: 12px; color: var(--al-accent); text-decoration: none;
    }
    .altius-mtop-back .dashicons { font-size: 26px; width: 26px; height: 26px; }
    .altius-mtop-back:active { background: var(--al-tint, #eef4fb); }
    .altius-rail-toggle, .altius-mtop-home { flex-basis: 44px; width: 44px; height: 44px; }
    /* With a bottom bar, Home and the menu live down there */
    .altius-has-tabbar .altius-rail-toggle, .altius-has-tabbar .altius-mtop-home { display: none; }
    .altius-has-tabbar .altius-mtop-brand { padding-left: 4px; }
    .altius-has-tabbar.altius-has-back .altius-mtop-brand { padding-left: 0; }

    /* Bottom tab bar */
    .altius-tabbar {
        display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1002;
        background: rgba(255,255,255,0.97); border-top: 1px solid var(--al-line);
        box-shadow: 0 -2px 12px rgba(18,48,73,0.07);
        padding: 4px 4px env(safe-area-inset-bottom, 0px);
        -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
    }
    .altius-tabbar-item {
        flex: 1 1 0; min-width: 0; min-height: 52px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
        background: none; border: 0; padding: 4px 2px; font: inherit; cursor: pointer;
        color: var(--al-ink-soft); text-decoration: none; border-radius: 12px; -webkit-tap-highlight-color: transparent;
    }
    .altius-tabbar-item .dashicons { font-size: 24px; width: 24px; height: 24px; }
    .altius-tabbar-label { font-size: 11px; font-weight: 600; letter-spacing: .01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
    .altius-tabbar-item.is-current { color: var(--al-accent); }
    .altius-tabbar-item.is-current .dashicons { transform: translateY(-1px); }
    .altius-tabbar-item:active { background: var(--al-tint, #eef4fb); }
    .altius-has-tabbar .altius-main { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
    .altius-has-tabbar .altius-rail { height: calc(100dvh - 56px - 62px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
    .altius-has-tabbar .altius-rail-scrim { bottom: calc(62px + env(safe-area-inset-bottom, 0px)); }

    /* Module tabs: one row you swipe sideways */
    .altius-shell-tabs, .altius-main .nav-tab-wrapper, .altius-main .alf-tabs {
        flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none;
        margin-left: -16px !important; margin-right: -16px !important; padding: 2px 16px 4px !important;
        scroll-padding: 0 16px; overscroll-behavior-x: contain;
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%);
                mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%);
    }
    .altius-shell-tabs::-webkit-scrollbar, .altius-main .nav-tab-wrapper::-webkit-scrollbar, .altius-main .alf-tabs::-webkit-scrollbar { display: none; }
    .altius-tab, .altius-main .nav-tab, .altius-main .alf-tabs > a { flex: 0 0 auto; white-space: nowrap; min-height: 40px; display: inline-flex !important; align-items: center; }

    /* iPhones zoom into any box with text under 16px and stay zoomed: never */
    .altius-main input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
    .altius-main select, .altius-main textarea { font-size: 16px !important; }
    .altius-main input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), .altius-main select { min-height: 44px; }

    /* Thumb-sized buttons */
    .altius-main .button, .altius-main .button-secondary, .altius-main .button-primary,
    .altius-main input[type="submit"], .altius-main button.button, .altius-main .page-title-action { min-height: 44px; }
    .altius-main .button.button-small, .altius-main .button-small { min-height: 36px; padding: 6px 14px; }
    .altius-main input[type=checkbox], .altius-main input[type=radio] { width: 22px; height: 22px; }
    .altius-main .page-title-action { display: inline-flex; align-items: center; margin: 4px 6px 4px 0; }
    .altius-main .wrap > h1 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
    .altius-main .wrap > h1 .page-title-action { margin: 0; }
    .altius-main .tablenav-pages .page-numbers, .altius-main .tablenav-pages a, .altius-main .tablenav .button { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
    .altius-main .altius-dashboard-wrap a.button, .altius-main .altius-dashboard-wrap .button { min-height: 40px !important; display: inline-flex !important; align-items: center; }
    .altius-main .alf-btn { min-height: 40px; }
    .altius-main input.alf-pick { width: 22px !important; height: 22px !important; }
    .altius-main summary { padding-top: 10px; padding-bottom: 10px; }
    .altius-main .altius-docs-menu summary { padding: 9px 14px; }
    .altius-main .altius-docs-mi { padding: 12px 12px; }
}

/* Phones: record lists as cards */
@media (max-width: 640px) {
    .altius-main table.altius-cards, .altius-main table.altius-cards > tbody, .altius-main table.altius-cards > tbody > tr, .altius-main table.altius-cards > tbody > tr > td { display: block; width: auto !important; }
    .altius-main table.altius-cards { border: 0 !important; background: none !important; box-shadow: none !important; overflow: visible !important; table-layout: auto !important; }
    .altius-main table.altius-cards > thead, .altius-main table.altius-cards > tfoot { display: none; }
    .altius-main table.altius-cards > tbody > tr {
        position: relative; background: #fff; border: 1px solid var(--al-line); border-radius: 14px;
        padding: 12px 14px; margin: 0 0 10px; box-shadow: 0 1px 3px rgba(28,39,51,0.06);
    }
    .altius-main table.altius-cards > tbody > tr.altius-card-link { cursor: pointer; }
    .altius-main table.altius-cards > tbody > tr.altius-card-link:active { background: #f3f7fb; }
    .altius-main table.altius-cards > tbody > tr > td {
        display: flex; justify-content: space-between; align-items: baseline; gap: 14px;
        padding: 3px 0 !important; border: 0 !important; background: none !important;
        text-align: right; white-space: normal !important; overflow-wrap: anywhere; min-width: 0 !important; font-size: 14.5px; line-height: 1.4;
    }
    .altius-main table.altius-cards > tbody > tr > td::before {
        content: attr(data-label); flex: 0 0 auto; text-align: left; max-width: 45%; text-transform: none; letter-spacing: normal;
        color: var(--al-ink-soft); font-size: 12.5px; font-weight: 600;
    }
    .altius-main table.altius-cards > tbody > tr > td[data-label=""]::before { content: none; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-title { display: block; text-align: left; font-size: 16.5px; font-weight: 700; padding: 0 36px 6px 0 !important; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-title::before { content: none; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-title a { font-weight: 700; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-check { position: absolute; top: 10px; right: 10px; padding: 0 !important; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-check::before { content: none; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-actions { justify-content: flex-start; flex-wrap: wrap; gap: 8px; padding-top: 10px !important; margin-top: 6px; border-top: 1px solid #f0f2f5 !important; text-align: left; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-actions::before { content: none; }
    .altius-main table.altius-cards > tbody > tr > td.altius-card-empty { display: none; }
    .altius-main table.altius-cards > tbody > tr > td .row-actions { position: static; left: auto; display: flex; gap: 10px; flex-wrap: wrap; }
    .altius-main table.altius-cards > tbody > tr.altius-card-note { text-align: center; color: var(--al-ink-soft); }
    .altius-main table.altius-cards > tbody > tr.altius-card-note > td { display: block; text-align: center; }
    .altius-main table.altius-cards > tbody > tr:hover > td { background: none !important; }
}

/* Call, Text, Email, Directions along the top of a person or company */
.altius-quick { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0 18px; }
.altius-quick-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 16px; border-radius: 999px; background: #eef4fb; color: #0f4c81 !important; font-weight: 600; font-size: 14px; text-decoration: none !important; border: 1px solid #d5e3f2; }
.altius-quick-btn:hover { background: #e2edf9; }
.altius-quick-btn .dashicons { font-size: 18px; width: 18px; height: 18px; }
@media (max-width: 640px) {
  .altius-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 8px; }
  .altius-quick-btn { flex-direction: column; justify-content: center; gap: 4px; min-height: 64px; padding: 8px 4px; border-radius: 14px; font-size: 12.5px; }
  .altius-quick-btn .dashicons { font-size: 22px; width: 22px; height: 22px; }
}

/* 2.16.0: refinements for phones */
@media (max-width: 960px) {
    /* The item you're on stands out in the bottom bar */
    .altius-tabbar-item .dashicons { padding: 3px 14px; box-sizing: content-box; border-radius: 999px; transition: background .15s ease; }
    .altius-tabbar-item.is-current .dashicons { background: var(--al-tint, #e4eef9); }
    .altius-tabbar-item.is-current .altius-tabbar-label { font-weight: 700; }
}
@media (max-width: 640px) {
    /* A record's own page: the back arrow replaces the module tabs, so the record gets the screen */
    .altius-has-back .altius-shell-tabs { display: none; }
    /* Quotes, Invoices and Purchase Orders: search and status on one card, not a whole screen */
    .altius-main .altius-quote-filters, .altius-main .altius-invoice-filters, .altius-main .altius-po-filters { padding: 12px !important; }
    .altius-main .altius-quote-filters form, .altius-main .altius-invoice-filters form, .altius-main .altius-po-filters form {
        display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center;
    }
    .altius-main .altius-quote-filters form > label, .altius-main .altius-invoice-filters form > label, .altius-main .altius-po-filters form > label { font-size: 0; margin: 0; display: block; }
    .altius-main .altius-quote-filters form > label:first-of-type, .altius-main .altius-invoice-filters form > label:first-of-type, .altius-main .altius-po-filters form > label:first-of-type { grid-column: 1 / -1; }
    .altius-main .altius-quote-filters form > label input, .altius-main .altius-quote-filters form > label select,
    .altius-main .altius-invoice-filters form > label input, .altius-main .altius-invoice-filters form > label select,
    .altius-main .altius-po-filters form > label input, .altius-main .altius-po-filters form > label select { width: 100%; margin: 0; }
    .altius-main .altius-quote-filters form > *:not(label):not([type=hidden]), .altius-main .altius-invoice-filters form > *:not(label):not([type=hidden]), .altius-main .altius-po-filters form > *:not(label):not([type=hidden]) { margin: 0 !important; justify-content: center; }
    .altius-main .altius-quote-filters form > a, .altius-main .altius-invoice-filters form > a, .altius-main .altius-po-filters form > a { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------------ */
/* 2.17.1: the side menu scrolls on its own. The name at the top and your
   name and Log out at the bottom stay put; the list between them scrolls
   when there are more items than fit the screen. */
@media (min-width: 961px) {
    .altius-rail { overflow: hidden; }
    .altius-rail-brand, .altius-rail-foot { flex: 0 0 auto; }
    .altius-rail-nav {
        flex: 1 1 auto; min-height: 0;
        overflow-y: auto; overflow-x: hidden;
        overscroll-behavior: contain;
        margin-right: -8px; padding-right: 4px;
        scrollbar-width: thin; scrollbar-color: rgba(15,76,129,0.25) transparent;
    }
    .altius-rail-nav::-webkit-scrollbar { width: 6px; }
    .altius-rail-nav::-webkit-scrollbar-thumb { background: rgba(15,76,129,0.25); border-radius: 3px; }
    .altius-rail-nav::-webkit-scrollbar-track { background: transparent; }
    .altius-rail-foot { margin-top: 0; padding-top: 10px; }
    /* A short screen: tighten the spacing before scrolling */
    @media (max-height: 820px) {
        .altius-rail { padding-top: 12px; padding-bottom: 10px; }
        .altius-rail-brand { padding-bottom: 10px; }
    }
}

