:root {
    --bg: #141c2b;
    --bg-deep: #101725;
    --surface: #1c2739;
    --surface-2: #243249;
    --surface-3: #2b3a53;
    --text: #f4f8fb;
    --muted: #aab8ca;
    --muted-2: #8191a7;
    --primary: #41d8b4;
    --primary-strong: #24c69d;
    --primary-soft: rgba(65, 216, 180, 0.13);
    --border: #34445f;
    --border-soft: rgba(148, 163, 184, 0.16);
    --danger: #ef6262;
    --warning: #f1b84b;
    --sidebar-width: 250px;
    --radius: 16px;
    --radius-sm: 11px;
    --shadow: 0 18px 48px rgba(3, 8, 18, 0.22);
}

* {
    box-sizing: border-box;
}

html {
    color-scheme: dark;
}

html,
body {
    margin: 0;
    min-height: 100%;
    background: var(--bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
    overflow-x: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 3px solid rgba(65, 216, 180, 0.34);
    outline-offset: 2px;
}

.icon-svg {
    width: 21px;
    height: 21px;
    flex: 0 0 auto;
}

.app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
}

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 50;
    width: var(--sidebar-width);
    display: flex;
    flex-direction: column;
    background: #182235;
    border-right: 1px solid var(--border-soft);
    padding: 14px 12px;
}

.sidebar-brand {
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px 14px;
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    font-weight: 850;
    letter-spacing: -0.02em;
}

.brand-logo {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: linear-gradient(135deg, #55e3c1, #26b990);
    color: #08261f;
    box-shadow: 0 8px 24px rgba(36, 198, 157, 0.2);
}

.brand-text {
    font-size: 1.08rem;
}

.sidebar-nav,
.sidebar-section {
    display: grid;
    gap: 5px;
}

.sidebar-section {
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid var(--border-soft);
}

.sidebar-label {
    padding: 0 12px 7px;
    color: var(--muted-2);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.sidebar-link {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    color: var(--muted);
    border-radius: 12px;
    font-weight: 690;
    transition: background 150ms ease, color 150ms ease, transform 150ms ease;
}

.sidebar-link:hover {
    background: rgba(255, 255, 255, 0.055);
    color: var(--text);
    transform: translateX(2px);
}

.sidebar-link.is-active {
    background: var(--primary-soft);
    color: var(--primary);
}

.sidebar-link.is-active::before {
    content: "";
    width: 3px;
    height: 23px;
    margin-left: -12px;
    border-radius: 0 6px 6px 0;
    background: var(--primary);
}

.app-main {
    min-width: 0;
    grid-column: 2;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 35;
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 10px 22px;
    background: rgba(20, 28, 43, 0.9);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--border-soft);
}

.topbar-left,
.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.topbar-left {
    min-width: 0;
    flex: 1;
}

.global-search,
.module-search {
    min-width: 220px;
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    color: var(--muted);
    padding: 0 12px;
}

.global-search {
    width: min(580px, 100%);
    min-height: 44px;
}

.global-search input,
.module-search input {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    color: var(--text);
    background: transparent;
}

.global-search input::placeholder,
.module-search input::placeholder {
    color: var(--muted-2);
}

kbd {
    border: 1px solid var(--border);
    border-bottom-width: 2px;
    border-radius: 6px;
    background: var(--surface-2);
    color: var(--muted);
    padding: 2px 7px;
    font-size: 0.7rem;
    white-space: nowrap;
}

.icon-button,
.new-tab-button {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 11px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.icon-button:hover,
.new-tab-button:hover {
    color: var(--text);
    background: var(--surface-2);
    border-color: var(--border-soft);
}

.mobile-menu-button,
.sidebar-close {
    display: none;
}

.user-menu {
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 4px 10px 4px 5px;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    background: var(--surface);
}

.user-avatar {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--primary-soft);
    color: var(--primary);
    font-weight: 850;
}

.user-name {
    font-size: 0.9rem;
    font-weight: 700;
}

.button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--border);
    border-radius: 11px;
    padding: 10px 15px;
    background: var(--surface-2);
    color: var(--text);
    cursor: pointer;
    font-weight: 760;
}

.button.primary {
    border-color: transparent;
    background: var(--primary);
    color: #08251e;
}

.button.primary:hover {
    background: #58e3c3;
}

.button.ghost {
    background: transparent;
}

.button.compact {
    min-height: 40px;
    padding: 8px 12px;
}

.tabbar {
    position: sticky;
    top: 68px;
    z-index: 30;
    min-height: 46px;
    display: flex;
    align-items: end;
    padding: 7px 14px 0;
    background: var(--bg-deep);
    border-bottom: 1px solid var(--border-soft);
}

.tab-strip {
    min-width: 0;
    display: flex;
    align-items: end;
    gap: 3px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.app-tab {
    position: relative;
    min-width: 145px;
    max-width: 225px;
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 9px 8px 12px;
    border-radius: 11px 11px 0 0;
    color: var(--muted);
    background: #1a2435;
    border: 1px solid transparent;
    border-bottom: 0;
}

.app-tab:hover {
    color: var(--text);
    background: var(--surface);
}

.app-tab.is-active {
    color: var(--text);
    background: var(--surface-2);
    border-color: var(--border-soft);
}

.app-tab .tab-label {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.84rem;
    font-weight: 720;
}

.tab-close {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--muted-2);
    cursor: pointer;
}

.tab-close:hover {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text);
}

.tab-close .icon-svg {
    width: 15px;
    height: 15px;
}

.new-tab-button {
    width: 36px;
    height: 36px;
    margin: 0 0 2px 5px;
}

.content-area {
    width: min(1420px, 100%);
    margin: 0 auto;
    padding: 38px 32px 110px;
}

.dashboard-hero,
.module-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 27px;
}

.dashboard-hero h1,
.module-header h1 {
    margin: 4px 0 7px;
    color: var(--text);
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.module-header h1 {
    font-size: clamp(2rem, 3.2vw, 3rem);
}

.date-line,
.eyebrow {
    margin: 0;
    color: var(--primary);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.lead,
.module-header p,
.panel p {
    color: var(--muted);
}

.lead {
    margin: 0;
    font-size: 1.04rem;
}

.hero-action {
    flex: 0 0 auto;
}

.summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.summary-card,
.module-card,
.recent-list a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    border: 1px solid var(--border-soft);
    background: var(--surface);
    transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.summary-card {
    min-height: 128px;
    padding: 18px;
    border-radius: var(--radius);
    box-shadow: 0 10px 30px rgba(4, 10, 22, 0.1);
}

.summary-card:hover,
.module-card:hover,
.recent-list a:hover {
    transform: translateY(-2px);
    border-color: rgba(65, 216, 180, 0.45);
    background: var(--surface-2);
}

.summary-icon,
.module-icon,
.page-icon,
.empty-icon,
.help-icon {
    display: grid;
    place-items: center;
    color: var(--primary);
    background: var(--primary-soft);
}

.summary-icon {
    width: 46px;
    height: 46px;
    border-radius: 13px;
}

.summary-card > span:nth-child(2) {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.summary-card small,
.summary-card em,
.module-copy small,
.recent-list small {
    color: var(--muted);
    font-style: normal;
}

.summary-card strong {
    font-size: 1rem;
}

.summary-card em {
    font-size: 0.77rem;
}

.card-arrow {
    width: 18px;
    height: 18px;
    margin-left: auto;
    color: var(--muted-2);
}

.dashboard-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(290px, 0.65fr);
    gap: 18px;
}

.panel {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius);
    background: var(--surface);
    box-shadow: 0 14px 36px rgba(3, 8, 18, 0.11);
    padding: 21px;
}

.section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 17px;
}

.section-heading h2,
.panel h2 {
    margin: 4px 0 0;
    font-size: 1.22rem;
    letter-spacing: -0.025em;
}

.text-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    color: var(--primary);
    cursor: pointer;
    font-weight: 750;
}

.text-button .icon-svg {
    width: 17px;
    height: 17px;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

.module-card {
    min-height: 98px;
    padding: 15px;
    border-radius: 13px;
    background: var(--bg);
}

.module-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
}

.module-copy {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.module-copy small {
    line-height: 1.32;
}

.dashboard-side {
    display: grid;
    align-content: start;
    gap: 18px;
}

.compact-heading {
    margin-bottom: 12px;
}

.recent-list {
    display: grid;
    gap: 8px;
}

.recent-list a {
    min-height: 67px;
    padding: 11px 12px;
    border-radius: 12px;
    background: var(--bg);
}

.recent-list a > .icon-svg {
    color: var(--primary);
}

.recent-list a span {
    display: grid;
    gap: 2px;
}

.help-panel {
    display: flex;
    gap: 14px;
    align-items: flex-start;
}

.help-icon {
    width: 43px;
    height: 43px;
    flex: 0 0 auto;
    border-radius: 12px;
}

.help-panel p {
    margin: 7px 0 0;
    line-height: 1.5;
}

.module-title-wrap {
    display: flex;
    align-items: center;
    gap: 17px;
}

.page-icon {
    width: 60px;
    height: 60px;
    flex: 0 0 auto;
    border-radius: 17px;
}

.page-icon .icon-svg {
    width: 29px;
    height: 29px;
}

.workspace-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 17px;
}

.module-search {
    width: min(470px, 100%);
    min-height: 47px;
}

.filter-row {
    display: flex;
    gap: 7px;
    overflow-x: auto;
}

.filter-chip {
    min-height: 39px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--muted);
    padding: 8px 13px;
    white-space: nowrap;
    cursor: pointer;
}

.filter-chip.is-active,
.filter-chip:hover {
    border-color: rgba(65, 216, 180, 0.45);
    background: var(--primary-soft);
    color: var(--primary);
}

.empty-state {
    min-height: 360px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 45px 22px;
}

.empty-icon {
    width: 68px;
    height: 68px;
    border-radius: 19px;
}

.empty-icon .icon-svg {
    width: 32px;
    height: 32px;
}

.empty-state h2 {
    margin: 18px 0 3px;
    font-size: 1.45rem;
}

.empty-state p {
    max-width: 580px;
    line-height: 1.58;
}

.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(5, 10, 20, 0.7);
    backdrop-filter: blur(8px);
}

.modal-backdrop[hidden] {
    display: none;
}

.quick-modal {
    width: min(760px, 100%);
    max-height: min(720px, calc(100vh - 40px));
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: var(--surface);
    box-shadow: var(--shadow);
    padding: 22px;
}

.modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.modal-header h2 {
    margin: 5px 0 0;
}

.quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.quick-grid a {
    min-height: 92px;
    display: flex;
    align-items: center;
    gap: 13px;
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    background: var(--bg);
    padding: 15px;
}

.quick-grid a:hover {
    border-color: rgba(65, 216, 180, 0.5);
    background: var(--surface-2);
}

.quick-grid a > .icon-svg {
    width: 25px;
    height: 25px;
    color: var(--primary);
}

.quick-grid span {
    display: grid;
    gap: 4px;
}

.quick-grid small {
    color: var(--muted);
}

.impersonation {
    position: sticky;
    top: 0;
    z-index: 80;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    background: var(--warning);
    color: #2c2107;
    padding: 8px;
    font-weight: 800;
}

.impersonation form {
    margin: 0;
}

.impersonation button {
    min-height: 34px;
    border: 1px solid rgba(44, 33, 7, 0.25);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.3);
    color: inherit;
    cursor: pointer;
}

.bottom-nav {
    display: none;
}

.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 20px;
    background: radial-gradient(circle at top left, rgba(65, 216, 180, 0.12), transparent 34%), var(--bg);
}

.login-card {
    width: min(430px, 100%);
    border: 1px solid var(--border-soft);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: var(--shadow);
    padding: 30px;
}

.login-card label {
    display: grid;
    gap: 7px;
    margin: 16px 0;
}

.login-card input,
.permission select {
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: var(--bg);
    color: var(--text);
    padding: 11px;
}

.login-card button {
    width: 100%;
}

.alert {
    padding: 12px;
    border-radius: 10px;
    background: rgba(239, 98, 98, 0.17);
    color: #ffc5c5;
}

.row,
.actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.actions {
    justify-content: flex-end;
}

.permission-grid {
    display: grid;
    gap: 8px;
    margin-top: 18px;
}

.permission {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 120px 70px;
    gap: 10px;
    align-items: center;
    background: var(--bg);
    padding: 10px;
    border-radius: 12px;
}

.permission span {
    display: grid;
}

@media (max-width: 1150px) {
    .summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-layout {
        grid-template-columns: 1fr;
    }

    .dashboard-side {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 850px) {
    .app-shell {
        display: block;
    }

    .app-main {
        width: 100%;
    }

    .sidebar {
        width: min(310px, 88vw);
        transform: translateX(-105%);
        box-shadow: 20px 0 60px rgba(0, 0, 0, 0.35);
        transition: transform 180ms ease;
    }

    .sidebar.is-open {
        transform: translateX(0);
    }

    .sidebar-close,
    .mobile-menu-button {
        display: inline-grid;
    }

    .topbar {
        padding: 9px 12px;
    }

    .user-name,
    .topbar-actions form,
    .topbar-actions > .icon-button,
    .global-search kbd {
        display: none;
    }

    .global-search {
        min-width: 0;
    }

    .tabbar {
        top: 61px;
    }

    .content-area {
        padding: 28px 18px 110px;
    }

    .workspace-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .module-search {
        width: 100%;
    }
}

@media (max-width: 650px) {
    .topbar {
        min-height: 60px;
    }

    .global-search {
        min-height: 42px;
    }

    .user-menu {
        border: 0;
        background: transparent;
        padding: 0;
    }

    .tabbar {
        display: none;
    }

    .content-area {
        padding: 23px 12px 105px;
    }

    .dashboard-hero,
    .module-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .dashboard-hero h1,
    .module-header h1 {
        font-size: 2.15rem;
    }

    .hero-action,
    .module-header > .button {
        width: 100%;
    }

    .summary-grid,
    .module-grid,
    .dashboard-side,
    .quick-grid {
        grid-template-columns: 1fr;
    }

    .summary-card {
        min-height: 105px;
    }

    .panel {
        padding: 17px;
    }

    .module-title-wrap {
        align-items: flex-start;
    }

    .page-icon {
        width: 51px;
        height: 51px;
    }

    .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .bottom-nav {
        position: fixed;
        inset: auto 0 0;
        z-index: 70;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        border-top: 1px solid var(--border);
        background: rgba(24, 34, 53, 0.97);
        backdrop-filter: blur(18px);
        padding: 7px 4px calc(7px + env(safe-area-inset-bottom));
    }

    .bottom-nav a,
    .bottom-nav button {
        min-width: 0;
        min-height: 52px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        border: 0;
        border-radius: 10px;
        background: transparent;
        color: var(--muted);
        font-size: 0.69rem;
        cursor: pointer;
    }

    .bottom-nav .icon-svg {
        width: 20px;
        height: 20px;
    }

    .bottom-nav .bottom-create {
        color: #08251e;
        background: var(--primary);
        transform: translateY(-13px);
        box-shadow: 0 8px 22px rgba(36, 198, 157, 0.25);
    }

    .permission {
        grid-template-columns: 1fr 100px;
    }

    .permission button {
        grid-column: 1 / -1;
    }
}

/* HomeVault v4 functional forms and records */
.form-panel,.data-panel,.compact-panel{margin-top:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-heading h2{margin:3px 0 0}.smart-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.smart-form label{display:flex;flex-direction:column;gap:8px;color:var(--text-muted);font-size:.9rem}.smart-form .full{grid-column:1/-1}.smart-form input,.smart-form select,.smart-form textarea{width:100%;min-height:46px;border:1px solid var(--border);border-radius:12px;background:#111a2a;color:var(--text);padding:11px 13px;font:inherit}.smart-form textarea{min-height:110px;resize:vertical}.smart-form input:focus,.smart-form select:focus,.smart-form textarea:focus{outline:2px solid rgba(45,212,191,.25);border-color:var(--primary)}.check-row{flex-direction:row!important;align-items:center}.check-row input{width:20px!important;min-height:20px!important}.form-actions{display:flex;gap:10px}.notice{padding:14px 16px;border-radius:12px;margin:16px 0}.notice.success{background:rgba(45,212,191,.12);border:1px solid rgba(45,212,191,.35)}.notice.error{background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.35)}.record-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.record-card{position:relative;display:flex;gap:13px;align-items:flex-start;background:#172235;border:1px solid var(--border);border-radius:14px;padding:16px}.record-icon{width:42px;height:42px;border-radius:11px;background:rgba(45,212,191,.11);color:var(--primary);display:grid;place-items:center;flex:0 0 auto}.record-icon svg{width:22px}.record-content{min-width:0}.record-content h3{margin:0 32px 5px 0;font-size:1rem}.record-content p{margin:0;color:var(--text-muted);font-size:.88rem;overflow-wrap:anywhere}.favorite-button{position:absolute;right:10px;top:9px;background:transparent;border:0;color:#94a3b8;font-size:1.4rem;cursor:pointer}.favorite-button.is-active{color:#facc15}.count-pill{min-width:32px;height:32px;padding:0 10px;border-radius:999px;background:#26344c;display:grid;place-items:center;color:var(--text-muted)}.compact-panel code{display:block;overflow-wrap:anywhere;background:#111a2a;border:1px solid var(--border);padding:12px;border-radius:10px}.danger-button{color:#fca5a5!important}.hv-toast{position:fixed;right:20px;bottom:24px;background:#172235;border:1px solid var(--border);color:var(--text);padding:12px 16px;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.35);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:9999}.hv-toast.show{opacity:1;transform:none}
@media(max-width:720px){.smart-form{grid-template-columns:1fr}.smart-form .full{grid-column:auto}.form-actions{flex-direction:column}.record-grid{grid-template-columns:1fr}}
.task-actions{margin-top:10px}.task-actions .button{min-height:34px;padding:6px 10px;font-size:.8rem}
.privacy-banner{padding:9px 16px;text-align:center;background:#7f1d1d;color:#fee2e2;font-size:.88rem;font-weight:700}.privacy-banner+ .impersonation{margin-top:0}

/* HomeVault v5 calendar */
.calendar-panel { overflow: hidden; }
.calendar-toolbar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; margin-bottom: 1rem; text-align: center; }
.calendar-toolbar h2 { margin: .15rem 0 0; }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays { border: 1px solid var(--border); border-bottom: 0; border-radius: 14px 14px 0 0; overflow: hidden; }
.calendar-weekdays span { padding: .7rem .4rem; text-align: center; color: var(--text-muted); font-size: .78rem; font-weight: 800; text-transform: uppercase; background: rgba(15, 23, 42, .38); }
.calendar-grid { border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.calendar-day { min-height: 120px; padding: .55rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: rgba(15, 23, 42, .25); min-width: 0; }
.calendar-day.is-empty { background: rgba(15, 23, 42, .12); }
.calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--primary); }
.calendar-day-number { font-weight: 800; margin-bottom: .4rem; }
.calendar-day-events { display: grid; gap: .35rem; }
.calendar-event { display: flex; gap: .35rem; align-items: center; min-width: 0; padding: .38rem .45rem; border-radius: 8px; background: rgba(45, 212, 191, .12); color: var(--text); text-decoration: none; font-size: .78rem; border-left: 3px solid var(--primary); }
.calendar-event time { color: var(--primary); font-weight: 800; flex: 0 0 auto; }
.calendar-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event.type-reminder { border-left-color: #60a5fa; background: rgba(96, 165, 250, .12); }
.calendar-event.type-service { border-left-color: #f59e0b; background: rgba(245, 158, 11, .12); }
.calendar-event.type-bill { border-left-color: #fb7185; background: rgba(251, 113, 133, .12); }
.calendar-event.type-task { border-left-color: #a78bfa; background: rgba(167, 139, 250, .12); }
.calendar-time-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.calendar-time-fields[hidden] { display: none; }
.calendar-list { display: grid; gap: .75rem; }
.calendar-list-item { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid var(--border); border-radius: 14px; background: rgba(15, 23, 42, .24); }
.calendar-date-badge { width: 54px; min-height: 58px; border-radius: 12px; display: grid; place-content: center; text-align: center; background: rgba(45, 212, 191, .12); color: var(--primary); }
.calendar-date-badge strong { font-size: 1.25rem; line-height: 1; }
.calendar-date-badge span { font-size: .72rem; text-transform: uppercase; font-weight: 800; }
.calendar-list-content h3 { margin: 0 0 .25rem; }
.calendar-list-content p { margin: .2rem 0 0; color: var(--text-muted); }
.calendar-list-actions { display: flex; gap: .5rem; align-items: center; }
.feed-url-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; }
.feed-url-row input { width: 100%; }
.button.danger { background: rgba(239, 68, 68, .14); border-color: rgba(239, 68, 68, .4); color: #fecaca; }
@media (max-width: 800px) {
  .calendar-panel { overflow-x: auto; }
  .calendar-weekdays, .calendar-grid { min-width: 720px; }
  .calendar-day { min-height: 100px; }
  .calendar-list-item { grid-template-columns: auto 1fr; }
  .calendar-list-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .calendar-time-fields { grid-template-columns: 1fr; }
  .feed-url-row { grid-template-columns: 1fr; }
}

/* HomeVault v6 */
.record-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap;margin-left:auto}.record-actions form{margin:0}.record-card{align-items:flex-start}.ai-conversation{display:grid;gap:1rem}.chat-messages{display:grid;gap:.75rem;max-height:520px;overflow:auto;padding:.25rem}.chat-message{max-width:min(760px,88%);padding:1rem;border:1px solid var(--border);border-radius:16px;background:var(--surface-2)}.chat-message.role-user{margin-left:auto;background:rgba(45,212,191,.12);border-color:rgba(45,212,191,.35)}.chat-message strong{display:block;margin-bottom:.35rem}.chat-message p{margin:0;white-space:normal}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:end}.chat-compose textarea{min-height:80px}.feed-url-row input{min-width:0}@media(max-width:720px){.record-actions{width:100%;justify-content:flex-start;margin-left:0}.record-card{flex-wrap:wrap}.chat-compose{grid-template-columns:1fr}.chat-message{max-width:100%}}
