@import '_content/Blazorise.RichTextEdit/Blazorise.RichTextEdit.ujcws5bfym.bundle.scp.css';

/* /Components/Pages/DocumentLibrary.razor.rz.scp.css */
/* Rows are selectable (select-then-act via the button row below the grid), so signal it. */
.doc-grid[b-r3l14y4u0d]  tbody tr {
    cursor: pointer;
}
/* /Components/Pages/Index.razor.rz.scp.css */
/* Dashboard — compact, modern surface over Blazorise/Bootstrap. */

.dashboard[b-pf9pubwgtj] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 8px 0 24px 0;
}

.dashboard-heading[b-pf9pubwgtj] {
    font-size: 22px;
    font-weight: 600;
    color: var(--color-text);
    margin: 0;
    letter-spacing: -0.01em;
}

/* ---------- Top action strip (primary CTAs) ---------- */

.hero[b-pf9pubwgtj] {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 10px 12px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.06);
}

.new-action-wrap[b-pf9pubwgtj] {
    display: inline-flex;
    gap: 8px;
    flex: 0 0 auto;
}

.new-action-wrap[b-pf9pubwgtj]  .btn-primary,
.new-action-wrap[b-pf9pubwgtj]  button.btn-primary {
    background-color: var(--color-brand);
    border-color: var(--color-brand);
    color: var(--color-surface);
    font-weight: 500;
    padding: 8px 16px;
    border-radius: 8px;
    height: 40px;
    white-space: nowrap;
}

.new-action-wrap[b-pf9pubwgtj]  .btn-primary:hover {
    background-color: var(--color-brand-hover);
    border-color: var(--color-brand-hover);
}

/* Secondary CTA: outlined brand. Uses !important because we're fighting
   both Bootstrap's --bs-btn-* cascade and our own global .btn-secondary
   dark-mode override; specificity alone wasn't enough to win consistently
   across rest / hover / focus / dropdown-open states. */
.new-action-wrap[b-pf9pubwgtj]  .btn-secondary,
.new-action-wrap[b-pf9pubwgtj]  button.btn-secondary {
    background-color: var(--color-surface) !important;
    border: 2px solid var(--color-brand) !important;
    color: var(--color-brand) !important;
    font-weight: 500;
    padding: 7px 15px;
    border-radius: 8px;
    height: 40px;
    white-space: nowrap;
}

.new-action-wrap[b-pf9pubwgtj]  .btn-secondary:hover,
.new-action-wrap[b-pf9pubwgtj]  button.btn-secondary:hover {
    background-color: rgba(37, 99, 235, 0.08) !important;
    border-color: var(--color-brand-hover) !important;
    color: var(--color-brand-hover) !important;
}

.new-action-wrap[b-pf9pubwgtj]  .btn-secondary:focus,
.new-action-wrap[b-pf9pubwgtj]  .btn-secondary:active,
.new-action-wrap[b-pf9pubwgtj]  .show > .btn-secondary.dropdown-toggle {
    background-color: rgba(37, 99, 235, 0.12) !important;
    border-color: var(--color-brand-hover) !important;
    color: var(--color-brand-hover) !important;
    box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.2) !important;
}

.new-action-wrap[b-pf9pubwgtj]  .dropdown-menu {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
    padding: 6px;
    min-width: 240px;
}

.new-action-wrap[b-pf9pubwgtj]  .dropdown-item {
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.new-action-wrap[b-pf9pubwgtj]  .dropdown-item:hover {
    background: var(--color-surface-subtle);
}

.new-action-wrap[b-pf9pubwgtj]  .dropdown-item.disabled {
    color: var(--color-text-faint);
    background: transparent;
}

/* ---------- Content panels grid ---------- */

.panels[b-pf9pubwgtj] {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}

@media (max-width: 768px) {
    .panels[b-pf9pubwgtj] {
        grid-template-columns: 1fr;
    }
}

.panel[b-pf9pubwgtj] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
    padding: 14px 12px 10px 12px;
    min-width: 0;
}

.panel-title[b-pf9pubwgtj] {
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-text-subtle);
    font-weight: 600;
    margin: 0 4px 8px 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.panel-title-link[b-pf9pubwgtj] {
    font-size: 11px;
    letter-spacing: normal;
    text-transform: none;
    color: var(--color-brand);
    font-weight: 500;
    text-decoration: none;
}

.panel-title-link:hover[b-pf9pubwgtj] {
    text-decoration: underline;
}

.panel-wide[b-pf9pubwgtj] {
    grid-column: 1 / -1;
}

/* Compact the toggle when used inside a panel title (dashboard context).
   The default .recent-toggle-btn sizing is tuned for full-width report-home headers.
   Reset text-transform/letter-spacing inherited from .panel-title. */
.panel-title .recent-toggle[b-pf9pubwgtj] {
    text-transform: none;
    letter-spacing: normal;
}

.panel-title .recent-toggle-btn[b-pf9pubwgtj] {
    padding: 3px 8px;
    font-size: 12px;
}

/* ---------- Report row ---------- */

.dashboard-row[b-pf9pubwgtj] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--color-text);
    text-decoration: none;
    min-height: 40px;
}

.dashboard-row:hover[b-pf9pubwgtj] {
    background: var(--color-surface-subtle);
    color: var(--color-text);
    text-decoration: none;
}

.dashboard-row:focus-visible[b-pf9pubwgtj] {
    outline: 2px solid var(--color-brand);
    outline-offset: 2px;
}

.type-badge[b-pf9pubwgtj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--color-surface-subtle);
    color: var(--color-text-muted);
    font-size: 12px;
    font-weight: 600;
    flex: 0 0 auto;
    white-space: nowrap;
    width: 108px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.type-badge i[b-pf9pubwgtj] {
    font-size: 13px;
    flex: 0 0 auto;
}

.row-primary[b-pf9pubwgtj] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.row-project[b-pf9pubwgtj] {
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.row-client[b-pf9pubwgtj] {
    font-weight: 400;
    color: var(--color-text-subtle);
}

.row-site[b-pf9pubwgtj] {
    font-size: 13px;
    color: var(--color-text-faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.row-meta[b-pf9pubwgtj] {
    flex: 0 0 auto;
    text-align: right;
    font-size: 12px;
    color: var(--color-text-faint);
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
}

.row-meta .author[b-pf9pubwgtj] {
    font-weight: 500;
    color: var(--color-text-subtle);
}

/* ---------- Empty / loading states ---------- */

.empty[b-pf9pubwgtj] {
    font-size: 13px;
    color: var(--color-text-faint);
    padding: 20px 8px;
    text-align: center;
    line-height: 1.5;
}

.loading-row[b-pf9pubwgtj] {
    height: 40px;
    margin-bottom: 4px;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--color-surface-subtle) 0%, var(--color-border-strong) 50%, var(--color-surface-subtle) 100%);
    background-size: 200% 100%;
    animation: shimmer-b-pf9pubwgtj 1.4s infinite ease-in-out;
}

@keyframes shimmer-b-pf9pubwgtj {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* /Components/Shared/ClientSelector.razor.rz.scp.css */
.client-selector[b-w326b9x0qs] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.client-selector-search[b-w326b9x0qs] {
    flex: 1 1 auto;
    min-width: 0;
}

.client-selector-search[b-w326b9x0qs]  input.form-control {
    border-radius: 6px;
    border-color: #e5e7eb;
}

.client-selector-search[b-w326b9x0qs]  input.form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.client-selector-new-btn[b-w326b9x0qs] {
    flex: 0 0 auto;
    border-radius: 6px !important;
    padding: 6px 10px !important;
    border-color: #e5e7eb !important;
}

.client-selector-new-btn:hover[b-w326b9x0qs] {
    background-color: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
}
/* /Components/Shared/PasteableImageUpload.razor.rz.scp.css */
.pasteable-zone[b-lgma7qksty] {
    display: inline-block;
    margin-top: 6px;
    padding: 4px;
    border: 2px dashed #ccc;
    border-radius: 4px;
    min-width: 200px;
    min-height: 200px;
    cursor: pointer;
    position: relative;
}

.pasteable-zone:hover[b-lgma7qksty] {
    border-color: #999;
}

.pasteable-zone:focus[b-lgma7qksty] {
    outline: none;
    border-color: #0d6efd;
    border-style: solid;
}

.pasteable-hint[b-lgma7qksty] {
    position: absolute;
    left: 8px;
    bottom: 8px;
    font-size: 0.75rem;
    color: #6c757d;
    pointer-events: none;
}

.pasteable-zone-disabled[b-lgma7qksty] {
    opacity: 0.5;
    cursor: progress;
    pointer-events: none;
}

.pasteable-uploading[b-lgma7qksty] {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    margin: 4px 0;
    font-size: 0.85rem;
    color: #475569;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}
/* /Components/Shared/PdfUpload.razor.rz.scp.css */
.pdf-upload[b-3f6gluwd5o] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* The label is the visible button; the native file input inside it is hidden but still
   triggered by clicking the label (implicit label/control association). */
.pdf-upload-label[b-3f6gluwd5o] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5;
    color: #fff;
    background-color: var(--bs-primary, #0d6efd);
    border: 1px solid var(--bs-primary, #0d6efd);
    border-radius: 0.375rem;
    cursor: pointer;
    transition: filter .15s ease-in-out;
}

.pdf-upload-label:hover[b-3f6gluwd5o] {
    filter: brightness(0.92);
}

.pdf-upload-label:focus-within[b-3f6gluwd5o] {
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, .4);
}

.pdf-upload-label-disabled[b-3f6gluwd5o] {
    opacity: 0.6;
    cursor: progress;
    pointer-events: none;
}

/* InputFile is a child component; ::deep pierces isolation to visually hide its native input. */
.pdf-upload-label[b-3f6gluwd5o]  input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
/* /Components/Shared/ProjectSummaryCard.razor.rz.scp.css */
.project-summary-card[b-t3aoyy292m] {
    /* Light mode: surface-subtle lifts against the near-white page bg.
       Dark mode override below restores the deeper slate that already
       reads well there. */
    background: var(--color-surface-subtle);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

:root[data-theme="dark"] .project-summary-card[b-t3aoyy292m] {
    background: var(--color-surface);
}

.project-summary-card__header[b-t3aoyy292m] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.project-summary-card__title[b-t3aoyy292m] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-subtle);
    font-weight: 600;
}

.project-summary-card__edit-link[b-t3aoyy292m] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--color-brand);
    text-decoration: none;
    font-weight: 500;
    padding: 4px 10px;
    border-radius: 6px;
    transition: background-color 0.15s ease;
}

.project-summary-card__edit-link:hover[b-t3aoyy292m] {
    background: rgba(37, 99, 235, 0.08);
    color: var(--color-brand-hover);
    text-decoration: none;
}

.project-summary-card__empty[b-t3aoyy292m] {
    font-size: 13px;
    color: var(--color-text-faint);
    padding: 8px 0;
}

.project-summary-card__grid[b-t3aoyy292m] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px 20px;
}

.project-summary-card__field--wide[b-t3aoyy292m] {
    grid-column: 1 / -1;
}

.project-summary-card__label[b-t3aoyy292m] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-faint);
    font-weight: 600;
    margin-bottom: 3px;
}

.project-summary-card__value[b-t3aoyy292m] {
    font-size: 14px;
    color: var(--color-text);
    line-height: 1.4;
}

.project-summary-card__site-complex[b-t3aoyy292m] {
    font-weight: 500;
}

.project-summary-card__value--paragraph[b-t3aoyy292m] {
    font-size: 13px;
    /* text-muted (#475569), not text-subtle (#64748b): subtle fails 4.5:1 AA
       against the surface-subtle card background; muted clears it. */
    color: var(--color-text-muted);
    white-space: pre-wrap;
}

.project-summary-card__thumb[b-t3aoyy292m] {
    display: block;
    height: 88px;
    width: 100%;
    max-width: 160px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid var(--color-border);
    transition: box-shadow 0.15s ease;
}

.project-summary-card__thumb:hover[b-t3aoyy292m] {
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.25);
}
/* /Components/Shared/SearchInput.razor.rz.scp.css */
.search-input[b-k3uq2gijq5] {
    position: relative;
}

/* Keep typed text from sliding under the clear button. */
.search-input[b-k3uq2gijq5]  .form-control {
    padding-right: 2.25rem;
}

/* type=search (set to stop credential autofill) adds a native clear button in WebKit;
   hide it so it doesn't double up with our custom clear button. */
.search-input[b-k3uq2gijq5]  .form-control::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.search-input-clear[b-k3uq2gijq5] {
    position: absolute;
    top: 50%;
    right: 0.5rem;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1;
    cursor: pointer;
}

.search-input-clear:hover[b-k3uq2gijq5],
.search-input-clear:focus[b-k3uq2gijq5] {
    color: var(--bs-body-color, #212529);
    background-color: var(--bs-secondary-bg, rgba(0, 0, 0, 0.08));
    outline: none;
}
