:root {
    --zmart-cyan: #25b9ec;
    --zmart-cyan-dark: #0798cf;
    --zmart-ink: #101820;
    --zmart-muted: #687681;
    --zmart-surface: #f4f8fa;
    --zmart-border: #dce7ec;
    --bs-primary: var(--zmart-cyan-dark);
    --bs-primary-rgb: 7, 152, 207;
    --bs-link-color: var(--zmart-cyan-dark);
    --bs-link-hover-color: #057aa7;
}

body { color: var(--zmart-ink); font-family: Inter, "Segoe UI", Arial, sans-serif; }
.loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: rgba(7, 16, 23, .48);
    backdrop-filter: blur(4px);
    animation: loading-overlay-in .16s ease-out;
}
.loading-overlay[hidden] { display: none; }
.loading-popup {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: min(22rem, 100%);
    padding: 1.2rem 1.35rem;
    color: var(--zmart-ink);
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(37, 185, 236, .35);
    border-radius: 1rem;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
}
.loading-popup strong,
.loading-popup span { display: block; }
.loading-popup strong { margin-bottom: .1rem; font-size: 1rem; }
.loading-popup span { color: var(--zmart-muted); font-size: .86rem; }
.loading-spinner {
    width: 2.65rem;
    height: 2.65rem;
    flex: 0 0 auto;
    border: 4px solid #d9f3fc;
    border-top-color: var(--zmart-cyan-dark);
    border-radius: 50%;
    animation: loading-spinner-rotate .75s linear infinite;
}
.is-loading { cursor: wait; }
@keyframes loading-spinner-rotate { to { transform: rotate(360deg); } }
@keyframes loading-overlay-in { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .loading-overlay { animation: none; }
    .loading-spinner { animation-duration: 1.5s; }
}
.app-shell {
    background-color: var(--zmart-surface);
    background-image:
        radial-gradient(rgba(7,152,207,.08) 1px, transparent 1px),
        linear-gradient(rgba(244,248,250,.94), rgba(244,248,250,.94)),
        url("../images/zmart-home-logo-v2.png");
    background-position: 0 0, 0 0, calc(50% + 8vw) calc(50% + 36px);
    background-size: 22px 22px, cover, clamp(420px, 62vw, 900px) auto;
    background-repeat: repeat, no-repeat, no-repeat;
    background-attachment: fixed;
}
.ui-icon { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.app-navbar {
    min-height: 72px;
    background: linear-gradient(110deg, rgba(255,255,255,.98) 0%, rgba(232,248,253,.98) 100%);
    border-bottom: 3px solid var(--zmart-cyan);
    box-shadow: 0 7px 24px rgba(15, 35, 45, .08);
    backdrop-filter: blur(12px);
}
.navbar-brand { color: var(--zmart-ink) !important; letter-spacing: .06em; }
.brand-home { color: var(--zmart-cyan); font-weight: 400; }
.navbar-logo-wrap { width: 46px; height: 46px; display: grid; place-items: center; overflow: hidden; }
.navbar-logo { width: 48px; height: 48px; object-fit: contain; transform: scale(1.25); }
.navbar .nav-link { color: #43525b; font-weight: 500; }
.navbar .nav-link:hover { color: var(--zmart-cyan); }
.user-chip { display: flex; align-items: center; gap: .5rem; padding: .42rem .7rem; color: #34444d; background: rgba(255,255,255,.76); border: 1px solid rgba(7,152,207,.18); border-radius: 999px; font-size: .85rem; }
.top-icon-button { width: 2.45rem; height: 2.45rem; display: grid; place-items: center; color: #43525b; background: transparent; border: 0; border-radius: 50%; text-decoration: none; transition: .2s ease; }
.top-icon-button:hover { color: var(--zmart-cyan); background: rgba(37,185,236,.12); transform: translateY(-1px); }
.theme-icon-sun { display: none; }
[data-theme="dark"] .theme-icon-moon { display: none; }
[data-theme="dark"] .theme-icon-sun { display: block; }
.sidebar {
    min-height: calc(100vh - 72px);
    background: #fff;
    border-right: 1px solid var(--zmart-border);
    box-shadow: 8px 0 28px rgba(15, 35, 45, .035);
}
.sidebar .nav-link { display: flex; align-items: center; gap: .8rem; color: #43525b; border-radius: .8rem; padding: .78rem .9rem; font-weight: 600; transition: .18s ease; }
.sidebar .nav-link .ui-icon { width: 1.35rem; height: 1.35rem; }
.sidebar .nav-link:hover { color: var(--zmart-cyan-dark); background: #eef9fd; }
.sidebar .nav-pills .nav-link.active { color: #fff; background: linear-gradient(135deg, var(--zmart-cyan), var(--zmart-cyan-dark)); box-shadow: 0 7px 18px rgba(7,152,207,.22); }

.app-content { max-width: 1680px; }
.page-eyebrow { color: var(--zmart-cyan-dark); font-size: .72rem; font-weight: 800; letter-spacing: .18em; }
.card { border-radius: 1.15rem; border: 1px solid rgba(220,231,236,.9) !important; box-shadow: 0 12px 35px rgba(15,35,45,.065) !important; backdrop-filter: blur(10px); }
.card:not(.login-card) { background: rgba(255,255,255,.94); }
.stat-card { overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.stat-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(15,35,45,.11) !important; }
.stat-card::before { content: ""; width: 4px; position: absolute; inset: 0 auto 0 0; background: linear-gradient(var(--zmart-cyan), var(--zmart-cyan-dark)); }
.stat-icon { width: 3.4rem; height: 3.4rem; display: grid; place-items: center; color: var(--zmart-cyan-dark); background: linear-gradient(135deg, #eaf9fe, #d9f3fc); border-radius: 1rem; }
.stat-icon .ui-icon { width: 1.65rem; height: 1.65rem; }
.stat-card h2 { margin-bottom: .25rem !important; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.stat-card .display-6 { line-height: 1; }
.stat-arrow { position: absolute; right: 1rem; top: 50%; color: var(--zmart-cyan-dark); font-size: 1.35rem; opacity: 0; transform: translate(-8px, -50%); transition: .2s ease; }
.stat-card:hover .stat-arrow { opacity: 1; transform: translate(0, -50%); }
.activity-list { display: grid; }
.activity-item { position: relative; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 1rem; padding: .9rem 1.2rem; color: var(--zmart-ink); border-bottom: 1px solid var(--zmart-border); text-decoration: none; transition: .15s ease; }
.activity-item:last-child { border-bottom: 0; }
.activity-item:hover { color: var(--zmart-ink); background: #f3fbfe; }
.activity-icon { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; color: var(--zmart-cyan-dark); background: #e6f8fe; border-radius: .8rem; }
.activity-content { display: grid; }
.activity-content small { color: var(--zmart-muted); }
.activity-type { color: var(--zmart-cyan-dark); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.activity-item time { color: var(--zmart-muted); font-size: .8rem; white-space: nowrap; }
.activity-arrow { color: var(--zmart-cyan-dark); font-size: 1.2rem; }
.import-upload-card { background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(228,248,254,.95)) !important; border-color: rgba(37,185,236,.35) !important; }
.library-upload-card { background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(228,248,254,.95)) !important; border-color: rgba(37,185,236,.35) !important; }
.document-upload-group { overflow: hidden; }
.document-upload-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; user-select: none; }
.document-upload-summary::-webkit-details-marker { display: none; }
.document-upload-summary:hover { background: #f5fbfd !important; }
.document-upload-chevron { color: var(--zmart-cyan-dark); font-size: 1.5rem; transition: transform .2s ease; }
.document-upload-group[open] .document-upload-chevron { transform: rotate(180deg); }
.file-type-badge { min-width: 3.4rem; padding: .45rem .5rem; color: #fff; background: linear-gradient(135deg, #40515b, #17242c); border-radius: .55rem; font-size: .65rem; font-weight: 800; text-align: center; letter-spacing: .04em; }
.file-preview-card { min-height: 65vh; overflow: hidden; }
.file-preview-frame { width: 100%; min-height: 75vh; border: 0; background: #e9eef1; }
.file-preview-media { min-height: 65vh; display: grid; place-items: center; padding: 2rem; background: #edf3f5; }
.file-preview-media img, .file-preview-media video { max-width: 100%; max-height: 75vh; object-fit: contain; }
.file-preview-media audio { width: min(42rem, 100%); }
.file-preview-text { min-height: 65vh; max-height: 75vh; margin: 0; padding: 1.5rem; overflow: auto; color: #24323a; background: #f8fbfc; font: .86rem/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; word-break: break-word; }
.extracted-text { max-height: 560px; margin: 0; padding: 1rem; overflow: auto; color: #33434c; background: #f4f8fa; border: 1px solid var(--zmart-border); border-radius: .75rem; font: .76rem/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; }
.project-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.project-tile { display: flex; align-items: center; gap: 1rem; min-height: 104px; padding: 1rem; color: var(--zmart-ink); background: #f8fbfc; border: 1px solid var(--zmart-border); border-radius: 1rem; text-decoration: none; transition: .2s ease; }
.project-tile:hover { color: var(--zmart-ink); border-color: var(--zmart-cyan); background: #f1fbfe; transform: translateY(-2px); box-shadow: 0 10px 25px rgba(7,152,207,.1); }
.project-tile .stat-icon { width: 2.9rem; height: 2.9rem; flex: 0 0 auto; }
.project-overview-card { transition: transform .2s ease, box-shadow .2s ease; }
.project-overview-card:hover { transform: translateY(-4px); box-shadow: 0 18px 42px rgba(15,35,45,.11) !important; }
.project-overview-card .icon-inline { width: 1rem; height: 1rem; margin-right: .35rem; vertical-align: -.15rem; }
.project-metrics { display: grid; grid-template-columns: repeat(3, 1fr); padding-top: 1rem; border-top: 1px solid var(--zmart-border); color: var(--zmart-muted); font-size: .72rem; }
.project-metrics span { display: flex; flex-direction: column; }
.project-metrics strong { color: var(--zmart-ink); font-size: 1.05rem; }
.project-status { padding: .48rem .65rem; }
.project-status-planning { color: #4d5960; background: #e8eef1; }
.project-status-active { color: #056c91; background: #d9f5ff; }
.project-status-on_hold { color: #8a5a00; background: #fff1c7; }
.project-status-completed { color: #176b43; background: #dff5e9; }
.empty-state { padding: 2rem; color: var(--zmart-muted); text-align: center; }
.list-group-item { padding: 1rem 1.2rem; border-color: var(--zmart-border); }
.upload-grid { display: grid; grid-template-columns: 1.2fr 1fr 1.4fr 1.4fr auto; align-items: end; gap: .8rem; }
.upload-grid .form-label { font-size: .8rem; font-weight: 700; }
.file-category { display: inline-flex; padding: .35rem .55rem; color: #056c91; background: #e2f7fe; border-radius: .5rem; font-size: .78rem; font-weight: 700; }
.document-groups { display: grid; gap: .75rem; }
.document-group { --group-color: #0798cf; --group-bg: #e3f7fe; overflow: hidden; background: #fff; border: 1px solid var(--zmart-border); border-left: 4px solid var(--group-color); border-radius: .9rem; }
.document-group-violet { --group-color: #7656c9; --group-bg: #eee9fb; }
.document-group-green { --group-color: #25845a; --group-bg: #e2f5eb; }
.document-group-orange { --group-color: #d07a17; --group-bg: #fff0dc; }
.document-group-rose { --group-color: #c44d70; --group-bg: #fae7ed; }
.document-group-blue { --group-color: #416fc4; --group-bg: #e6eefc; }
.document-group summary { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; cursor: pointer; list-style: none; user-select: none; transition: background .15s ease; }
.document-group summary::-webkit-details-marker { display: none; }
.document-group summary:hover { background: #f8fbfc; }
.document-group-icon { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; color: var(--group-color); background: var(--group-bg); border-radius: .65rem; }
.document-count { margin-left: auto; padding: .25rem .55rem; color: var(--group-color); background: var(--group-bg); border-radius: 999px; font-size: .72rem; font-weight: 700; }
.document-chevron { color: var(--group-color); font-size: 1.3rem; transition: transform .2s ease; }
.document-group[open] .document-chevron { transform: rotate(180deg); }
.document-group .table-responsive { border-top: 1px solid var(--zmart-border); }
.document-group thead { background: color-mix(in srgb, var(--group-bg) 55%, white); }
.back-link { color: var(--zmart-muted); font-weight: 600; text-decoration: none; }
.back-link:hover { color: var(--zmart-cyan-dark); }
.card-header { border-bottom-color: var(--zmart-border); }
.btn { border-radius: .7rem; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.btn-icon-only { width: 2.25rem; height: 2.25rem; padding: 0; border-radius: .65rem; }
.btn-primary { background: linear-gradient(135deg, var(--zmart-cyan), var(--zmart-cyan-dark)); border-color: var(--zmart-cyan-dark); box-shadow: 0 5px 14px rgba(7,152,207,.18); }
.btn-primary:hover, .btn-primary:focus { background: var(--zmart-cyan-dark); border-color: var(--zmart-cyan-dark); }
.form-control, .form-select { border-color: #cfdde3; border-radius: .65rem; }
.form-control:focus, .form-select:focus { border-color: var(--zmart-cyan); box-shadow: 0 0 0 .22rem rgba(37,185,236,.16); }
.table-light { --bs-table-bg: #f0f7fa; }
.table > :not(caption) > * > * { padding: .95rem .8rem; }
.table-hover > tbody > tr { transition: background-color .15s ease; }
.badge { border-radius: .5rem; }
.h2, h1 { letter-spacing: -.025em; }
.detail-list dt { color: var(--bs-secondary-color); font-weight: 500; }
.text-preline { white-space: pre-line; }
.delete-card { max-width: 620px; }
.icon-button { width: 2.25rem; height: 2.25rem; padding: .4rem; display: inline-grid; place-items: center; }
.icon-button svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

html[data-theme="dark"] {
    color-scheme: dark;
    --zmart-ink: #e8f1f5;
    --zmart-muted: #9babb4;
    --zmart-surface: #0c151b;
    --zmart-border: #2a3d47;
    --zmart-cyan-dark: #25b9ec;
    --bs-body-color: #e8f1f5;
    --bs-body-color-rgb: 232, 241, 245;
    --bs-body-bg: #0c151b;
    --bs-body-bg-rgb: 12, 21, 27;
    --bs-secondary-color: #9babb4;
    --bs-secondary-color-rgb: 155, 171, 180;
    --bs-border-color: #2a3d47;
    --bs-tertiary-bg: #17262f;
    --bs-link-color: #4cc8f1;
    --bs-link-hover-color: #80daf7;
}
html[data-theme="dark"] .app-shell {
    background-color: var(--zmart-surface);
    background-image:
        radial-gradient(rgba(76,200,241,.11) 1px, transparent 1px),
        linear-gradient(rgba(12,21,27,.91), rgba(12,21,27,.91)),
        url("../images/zmart-home-logo-v2.png");
}
html[data-theme="dark"] .app-navbar {
    background: linear-gradient(110deg, rgba(16,29,37,.98), rgba(21,44,56,.98));
    box-shadow: 0 7px 24px rgba(0,0,0,.28);
}
html[data-theme="dark"] .navbar-brand { color: var(--zmart-ink) !important; }
html[data-theme="dark"] .navbar .nav-link,
html[data-theme="dark"] .top-icon-button { color: #c7d5dc; }
html[data-theme="dark"] .user-chip { color: #dce8ed; background: rgba(255,255,255,.06); border-color: rgba(76,200,241,.22); }
html[data-theme="dark"] .navbar-toggler { border-color: rgba(232,241,245,.3); }
html[data-theme="dark"] .navbar-toggler-icon { filter: invert(1) grayscale(1) brightness(1.8); }
html[data-theme="dark"] .sidebar { background: #101d24; box-shadow: 8px 0 28px rgba(0,0,0,.18); }
html[data-theme="dark"] .sidebar .nav-link { color: #b8c7ce; }
html[data-theme="dark"] .sidebar .nav-link:hover { color: #65d2f5; background: #172c37; }
html[data-theme="dark"] .card { border-color: rgba(42,61,71,.95) !important; box-shadow: 0 12px 35px rgba(0,0,0,.22) !important; }
html[data-theme="dark"] .card:not(.login-card) { background: rgba(17,30,38,.94); }
html[data-theme="dark"] .app-shell .bg-white,
html[data-theme="dark"] .card-header,
html[data-theme="dark"] .card-footer { color: var(--zmart-ink); background-color: rgba(20,35,44,.96) !important; }
html[data-theme="dark"] .text-bg-light { color: #dce8ed !important; background-color: #243740 !important; }
html[data-theme="dark"] .border,
html[data-theme="dark"] .border-bottom { border-color: var(--zmart-border) !important; }
html[data-theme="dark"] .stat-icon,
html[data-theme="dark"] .activity-icon { color: #55cef5; background: linear-gradient(135deg, #173441, #1b4050); }
html[data-theme="dark"] .activity-item { color: var(--zmart-ink); }
html[data-theme="dark"] .activity-item:hover { color: var(--zmart-ink); background: #162a34; }
html[data-theme="dark"] .import-upload-card,
html[data-theme="dark"] .library-upload-card { background: linear-gradient(135deg, rgba(18,31,39,.98), rgba(18,48,60,.95)) !important; }
html[data-theme="dark"] .document-upload-summary:hover { background: #17303b !important; }
html[data-theme="dark"] .project-tile { color: var(--zmart-ink); background: #14232b; }
html[data-theme="dark"] .project-tile:hover { color: var(--zmart-ink); background: #17303b; }
html[data-theme="dark"] .document-group { background: #14232b; }
html[data-theme="dark"] .document-group summary:hover { background: #192d37; }
html[data-theme="dark"] .document-group thead { background: #1b303a; }
html[data-theme="dark"] .document-group-icon,
html[data-theme="dark"] .document-count { background: color-mix(in srgb, var(--group-color) 22%, #14232b); }
html[data-theme="dark"] .file-category { color: #72d9fa; background: #173744; }
html[data-theme="dark"] .file-preview-media { background: #0d181e; }
html[data-theme="dark"] .file-preview-text,
html[data-theme="dark"] .extracted-text { color: #d8e4e9; background: #101d24; }
html[data-theme="dark"] .table { --bs-table-color: #dce7ec; --bs-table-bg: transparent; --bs-table-border-color: var(--zmart-border); --bs-table-hover-color: #fff; --bs-table-hover-bg: rgba(76,200,241,.07); }
html[data-theme="dark"] .table-light { --bs-table-color: #dce7ec; --bs-table-bg: #192b34; --bs-table-border-color: var(--zmart-border); }
html[data-theme="dark"] .list-group-item { color: var(--zmart-ink); background-color: transparent; border-color: var(--zmart-border); }
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select { color: #e8f1f5; background-color: #101d24; border-color: #38505d; }
html[data-theme="dark"] .form-control::placeholder { color: #788b95; }
html[data-theme="dark"] .loading-popup { color: var(--zmart-ink); background: rgba(17,30,38,.98); }
html[data-theme="dark"] .loading-spinner { border-color: #214452; border-top-color: #4cc8f1; }

.login-page {
    min-height: 100vh;
    display: grid;
    align-items: center;
    background:
        radial-gradient(circle at 15% 15%, rgba(37,185,236,.18), transparent 28rem),
        linear-gradient(135deg, #071017 0%, #112733 52%, #0b171d 100%);
}

.login-card { max-width: 460px; box-shadow: 0 28px 80px rgba(0,0,0,.35) !important; }
.two-factor-card { max-width: 620px; box-shadow: 0 28px 80px rgba(0,0,0,.35) !important; }
.login-logo { width: 132px; height: 132px; object-fit: contain; }
.login-eyebrow { color: var(--zmart-cyan-dark); font-size: .78rem; font-weight: 800; letter-spacing: .2em; }
.two-factor-steps { display: grid; gap: .55rem; padding-left: 1.25rem; color: var(--zmart-muted); font-size: .9rem; }
.two-factor-qr-wrap { display: grid; place-items: center; }
.two-factor-qr { width: min(260px, 80vw); height: auto; padding: .75rem; background: #fff; border: 1px solid var(--zmart-border); border-radius: 1rem; }
.two-factor-secret { display: block; margin-top: .75rem; padding: .75rem; overflow-wrap: anywhere; color: var(--zmart-ink); background: #edf5f8; border-radius: .6rem; text-align: center; letter-spacing: .08em; }
.two-factor-code { font-size: 1.45rem; font-weight: 700; letter-spacing: .28em; }
.recovery-code-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.recovery-code-grid code { padding: .7rem; color: var(--zmart-ink); background: #edf5f8; border: 1px solid var(--zmart-border); border-radius: .6rem; font-size: .92rem; text-align: center; letter-spacing: .06em; }
@media (max-width: 480px) { .recovery-code-grid { grid-template-columns: 1fr; } }

.brand-mark {
    width: 3.5rem;
    height: 3.5rem;
    display: grid;
    place-items: center;
    border-radius: 1rem;
    background: var(--bs-primary);
    color: white;
    font-size: 1.5rem;
    font-weight: 700;
}

.quote-sheet { margin: 0; background: #e9ecef; font-family: Arial, sans-serif; color: #111; }
.print-toolbar { max-width: 900px; margin: 1rem auto; display: flex; justify-content: space-between; }
.print-toolbar button { padding: .6rem 1rem; border: 0; border-radius: .4rem; background: #0d6efd; color: white; }
.pdf-preview-link { display: inline-block; margin-right: .5rem; padding: .6rem 1rem; border-radius: .4rem; background: #198754; color: white; text-decoration: none; }
.quote-page { box-sizing: border-box; width: 210mm; min-height: 297mm; margin: auto; padding: 18mm 10mm; background: white; }
.quote-header { display: grid; grid-template-columns: 1fr 1fr; align-items: start; margin-bottom: 1rem; }
.quote-header h1 { grid-column: 1 / 3; grid-row: 1; text-align: center; color: #777; font-size: 2rem; }
.quote-logo { grid-column: 1; grid-row: 1 / 3; width: 85px; height: 85px; object-fit: contain; }
.quote-header dl { grid-column: 2; display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; margin: 0; text-align: right; font-size: .85rem; }
.quote-header dt { font-weight: bold; }.quote-header dd { margin: 0; font-style: italic; }
.quote-table { width: 100%; border-collapse: collapse; font-size: .85rem; }.quote-table th,.quote-table td { border: 1px solid #222; padding: .65rem .3rem; }.quote-table th { background: #f3f3f3; }.quote-table td:nth-child(n+2) { text-align: right; }.quote-table .empty { height: 2rem; }.quote-table tfoot th { text-align: right; border-left-color: transparent; border-bottom-color: transparent; background: white; }.quote-table tfoot .total th,.quote-table tfoot .total td { font-size: 1rem; padding-top: 1rem; padding-bottom: 1rem; }
.quote-notes,.quote-terms,.vat-note { text-align: center; font-size: .7rem; }.quote-terms { border: 2px solid #222; padding: .4rem; margin-top: 1.5rem; font-weight: bold; }.vat-note { border-top: 2px solid #222; padding-top: .5rem; }
.quote-footer { margin-top: 5rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; font-size: .72rem; }
@media print { .print-toolbar { display: none; }.quote-sheet { background: white; }.quote-page { margin: 0; box-shadow: none; } }

@media (max-width: 767.98px) {
    .app-shell { background-position: 0 0, 0 0, center calc(50% + 36px); background-size: 22px 22px, cover, min(105vw, 620px) auto; }
    .app-navbar { min-height: 64px; }
    .navbar-collapse { padding: .8rem 0 .25rem; }
    .nav-logout { margin: .35rem 0; }
    .user-chip { margin-top: .4rem; }
    .project-hero { flex-direction: column; }
    .upload-grid { grid-template-columns: 1fr; }
    .activity-item { grid-template-columns: auto 1fr auto; gap: .7rem; }
    .activity-item time { display: none; }
    .sidebar {
        min-height: auto;
        border-bottom: 1px solid var(--bs-border-color);
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .upload-grid { grid-template-columns: repeat(2, 1fr); }
}
