:root {
    --qd-blue: #1a56a0;
    --qd-blue-dark: #0f3460;
    --qd-blue-ink: #123b66;
    --qd-orange: #f27a1a;
    --qd-orange-dark: #c95b08;
    --qd-bg: #eef4fb;
    --qd-surface: #ffffff;
    --qd-surface-soft: #f8fbff;
    --qd-border: #d7e2ef;
    --qd-border-soft: #e5edf5;
    --qd-text: #102033;
    --qd-muted: #64748b;
    --qd-success: #198754;
    --qd-danger: #dc3545;
    --qd-ai: #7c3aed;
    --qd-shadow: 0 8px 24px rgba(15, 52, 96, 0.08);
}

body {
    background: var(--qd-bg);
    color: var(--qd-text);
}

.navbar {
    background: var(--qd-surface-soft) !important;
    border-bottom: 1px solid var(--qd-border) !important;
}

.navbar-brand,
.page-title,
h1,
h2,
h3.card-title,
.settings-card h5 {
    color: var(--qd-blue-dark);
    letter-spacing: 0;
}

.card,
.settings-card,
.tool-card,
.metric-card,
.project-card,
.quote-card,
.send-settings-card,
.modal-content {
    border-color: var(--qd-border) !important;
    border-radius: 8px;
}

.card,
.settings-card,
.tool-card,
.metric-card,
.project-card,
.quote-card {
    box-shadow: var(--qd-shadow);
}

.card-header {
    background: var(--qd-surface-soft);
    border-bottom-color: var(--qd-border);
}

.btn {
    border-radius: 8px;
    font-weight: 650;
}

.btn-primary,
.btn-save {
    background: linear-gradient(135deg, var(--qd-blue), var(--qd-blue-dark)) !important;
    border-color: var(--qd-blue) !important;
    color: #fff !important;
}

.btn-primary:hover,
.btn-save:hover {
    background: linear-gradient(135deg, #154a8a, #0d2d50) !important;
    border-color: #154a8a !important;
}

.btn-outline-primary {
    border-color: var(--qd-blue) !important;
    color: var(--qd-blue) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background: var(--qd-blue) !important;
    color: #fff !important;
}

#aiDescriptionModeModal .ai-description-mode-choice:hover,
#aiDescriptionModeModal .ai-description-mode-choice:focus,
#aiDescriptionModeModal .ai-description-mode-choice:focus-visible {
    background: #eaf3ff !important;
    border-color: var(--qd-blue) !important;
    color: var(--qd-blue-dark) !important;
    box-shadow: 0 0 0 0.2rem rgba(26, 86, 160, 0.2) !important;
}

#aiDescriptionModeModal .ai-description-mode-choice:active {
    background: #dbeafe !important;
    border-color: var(--qd-blue-dark) !important;
    color: var(--qd-blue-dark) !important;
}

.btn-warning {
    background: var(--qd-orange) !important;
    border-color: var(--qd-orange-dark) !important;
    color: #fff !important;
}

.btn-outline-warning {
    border-color: var(--qd-orange) !important;
    color: var(--qd-orange-dark) !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus {
    background: var(--qd-orange) !important;
    color: #fff !important;
}

.badge.bg-primary,
.text-bg-primary,
.nav-pills .nav-link.active,
.list-group-item.active {
    background-color: var(--qd-blue) !important;
    border-color: var(--qd-blue) !important;
}

.text-primary {
    color: var(--qd-blue) !important;
}

.border-primary {
    border-color: var(--qd-blue) !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--qd-blue);
    box-shadow: 0 0 0 0.18rem rgba(26, 86, 160, 0.18);
}

.input-group-text {
    border-color: var(--qd-border);
}

.alert-light {
    background: var(--qd-surface-soft);
    border-color: var(--qd-border);
}

.brand-accent {
    color: var(--qd-orange) !important;
}

.brand-accent-border {
    border-left: 4px solid var(--qd-orange) !important;
}

.btn-ai,
.btn-ai:hover,
.btn-ai:focus {
    background: var(--qd-ai) !important;
    border-color: var(--qd-ai) !important;
    color: #fff !important;
}

html.qd-recording-prices-hidden .qd-recording-price-token,
html.qd-recording-prices-hidden [data-qd-private-price]:not(input):not(select):not(textarea) {
    display: inline-block !important;
    min-width: 3.5rem;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    background: #263548 !important;
    border-color: #263548 !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    user-select: none;
    -webkit-user-select: none;
}

html.qd-recording-prices-hidden input[data-qd-private-price],
html.qd-recording-prices-hidden textarea[data-qd-private-price] {
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    caret-color: transparent !important;
    text-shadow: none !important;
    background-color: #eef2f6 !important;
    background-image: linear-gradient(#263548, #263548) !important;
    background-position: 0.6rem center !important;
    background-repeat: no-repeat !important;
    background-size: calc(100% - 1.9rem) 0.72rem !important;
    user-select: none;
    -webkit-user-select: none;
}
/* Architectural window: shared by room/category pickers and document views.
   Borders remain visible in print without requiring background graphics. */
.fas.fa-window-two-pane {
    display: inline-block;
    position: relative;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    box-sizing: border-box;
    border: 0.12em solid currentColor;
    border-radius: 0;
}
.fas.fa-window-two-pane::before {
    content: "";
    position: absolute;
    inset: 0.07em;
    border: 0.045em solid currentColor;
}
.fas.fa-window-two-pane::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 0.045em);
    border-left: 0.09em solid currentColor;
}

.fas.fa-shed {
    display: inline-block;
    width: 1em;
    height: 1em;
    vertical-align: -0.125em;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 10 12 2l10 8M4 9v13h16V9M8 22V11h8v11m-4-11v11'/%3E%3C/svg%3E") center / contain no-repeat;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
}
