﻿html, body {
    font-family: var(--casey-font-sans);
    background: var(--casey-bg);
}

/* Administration keeps a persistent navigation rail while routed workspace
   content changes. Route focus must not animate the document underneath that
   rail, and short pages must reserve the same scrollbar gutter as long pages. */
html:has(.casey-admin-shell) {
    scroll-behavior: auto;
    scrollbar-gutter: stable;
}

/* Case workspace views vary substantially in height. Reserve the document
   scrollbar gutter so the overview rail does not shift between tabs. */
html:has(.casey-case-layout) {
    scrollbar-gutter: stable;
}

html:has(.casey-consultation-detail-layout) {
    scrollbar-gutter: stable;
}

@layer domain {

a, .btn-link {
    color: var(--casey-link-color, var(--casey-blue));
}

button:focus-visible,
.btn:focus-visible,
.btn:active:focus-visible,
.btn-link.nav-link:focus-visible {
  outline: var(--casey-focus-ring-width) solid var(--casey-focus) !important;
  outline-offset: var(--casey-focus-ring-offset) !important;
  box-shadow: none !important;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  box-shadow: none;
}

.form-control:focus-visible,
.form-select:focus-visible,
.form-check-input:focus-visible {
  outline: var(--casey-focus-ring-width) solid var(--casey-focus);
  outline-offset: var(--casey-focus-ring-offset);
}

.btn:focus:not(:focus-visible),
.btn:active:focus:not(:focus-visible) {
  box-shadow: none;
}

.content {
    padding-top: 0.75rem;
}

.casey-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #d8dee6;
}

.casey-page-header-compact {
    align-items: center;
    margin-bottom: 0.75rem;
    padding-bottom: 0.6rem;
}

.casey-page-header h2 {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.6rem);
}

.casey-page-header h1,
.casey-detail-header h1 {
    margin: 0;
    font-size: 1.45rem;
    line-height: 1.2;
}

.casey-kicker,
.casey-muted {
    color: #5d6b7a;
}

.casey-kicker {
    margin-bottom: 0.1rem;
    font-size: var(--casey-font-min);
    font-weight: 700;
    text-transform: uppercase;
}

.casey-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.casey-metrics > div,
.casey-workspace {
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #fff;
}

.casey-metrics > div {
    padding: 1rem;
}

.casey-metric-value,
.casey-metric-label {
    display: block;
}

.casey-metric-value {
    color: #184d47;
    font-size: 1.75rem;
    font-weight: 800;
}

.casey-metric-label {
    color: #5d6b7a;
}

.casey-workspace {
    padding: 0.85rem;
}

.casey-workspace h2,
.casey-workspace h3 {
    margin-bottom: 0.65rem;
    font-size: 1rem;
}

.casey-section-heading {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 0.8rem;
    align-items: center;
    margin-bottom: 0.65rem;
}

.casey-section-heading h2 {
    margin-bottom: 0;
}

.casey-switchline {
    margin-bottom: 0;
    font-weight: 700;
}

.casey-status-list {
    display: grid;
    gap: 0.75rem;
}

.casey-status-list > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 0;
    border-top: 1px solid #edf0f3;
}

.casey-status-list > div:first-child {
    border-top: 0;
}

h1:focus {
    outline: none;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: var(--casey-validation-error, var(--casey-error));
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgb3ZlcmZsb3c9ImhpZGRlbiI+PGRlZnM+PGNsaXBQYXRoIGlkPSJjbGlwMCI+PHJlY3QgeD0iMjM1IiB5PSI1MSIgd2lkdGg9IjU2IiBoZWlnaHQ9IjQ5Ii8+PC9jbGlwUGF0aD48L2RlZnM+PGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIzNSAtNTEpIj48cGF0aCBkPSJNMjYzLjUwNiA1MUMyNjQuNzE3IDUxIDI2NS44MTMgNTEuNDgzNyAyNjYuNjA2IDUyLjI2NThMMjY3LjA1MiA1Mi43OTg3IDI2Ny41MzkgNTMuNjI4MyAyOTAuMTg1IDkyLjE4MzEgMjkwLjU0NSA5Mi43OTUgMjkwLjY1NiA5Mi45OTZDMjkwLjg3NyA5My41MTMgMjkxIDk0LjA4MTUgMjkxIDk0LjY3ODIgMjkxIDk3LjA2NTEgMjg5LjAzOCA5OSAyODYuNjE3IDk5TDI0MC4zODMgOTlDMjM3Ljk2MyA5OSAyMzYgOTcuMDY1MSAyMzYgOTQuNjc4MiAyMzYgOTQuMzc5OSAyMzYuMDMxIDk0LjA4ODYgMjM2LjA4OSA5My44MDcyTDIzNi4zMzggOTMuMDE2MiAyMzYuODU4IDkyLjEzMTQgMjU5LjQ3MyA1My42Mjk0IDI1OS45NjEgNTIuNzk4NSAyNjAuNDA3IDUyLjI2NThDMjYxLjIgNTEuNDgzNyAyNjIuMjk2IDUxIDI2My41MDYgNTFaTTI2My41ODYgNjYuMDE4M0MyNjAuNzM3IDY2LjAxODMgMjU5LjMxMyA2Ny4xMjQ1IDI1OS4zMTMgNjkuMzM3IDI1OS4zMTMgNjkuNjEwMiAyNTkuMzMyIDY5Ljg2MDggMjU5LjM3MSA3MC4wODg3TDI2MS43OTUgODQuMDE2MSAyNjUuMzggODQuMDE2MSAyNjcuODIxIDY5Ljc0NzVDMjY3Ljg2IDY5LjczMDkgMjY3Ljg3OSA2OS41ODc3IDI2Ny44NzkgNjkuMzE3OSAyNjcuODc5IDY3LjExODIgMjY2LjQ0OCA2Ni4wMTgzIDI2My41ODYgNjYuMDE4M1pNMjYzLjU3NiA4Ni4wNTQ3QzI2MS4wNDkgODYuMDU0NyAyNTkuNzg2IDg3LjMwMDUgMjU5Ljc4NiA4OS43OTIxIDI1OS43ODYgOTIuMjgzNyAyNjEuMDQ5IDkzLjUyOTUgMjYzLjU3NiA5My41Mjk1IDI2Ni4xMTYgOTMuNTI5NSAyNjcuMzg3IDkyLjI4MzcgMjY3LjM4NyA4OS43OTIxIDI2Ny4zODcgODcuMzAwNSAyNjYuMTE2IDg2LjA1NDcgMjYzLjU3NiA4Ni4wNTQ3WiIgZmlsbD0iI0ZGRDUwMCIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9nPjwvc3ZnPg==) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.casey-toolbar,
.casey-actions {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.65rem;
}

.casey-filter-bar {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(10rem, 14rem) minmax(10rem, 14rem) minmax(9rem, 12rem) auto;
    gap: 0.45rem;
    margin-bottom: 0;
}

.casey-table-wrap {
    overflow-x: auto;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #fff;
}

.casey-table {
    margin-bottom: 0;
}

.casey-table-dense {
    font-size: 0.88rem;
}

.casey-table-dense th,
.casey-table-dense td {
    padding: 0.32rem 0.55rem;
}

.casey-table-dense thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #eef1f5;
    border-bottom: 1px solid #cdd5df;
}

.casey-table-dense tbody tr:hover {
    --bs-table-bg-state: var(--casey-table-hover-bg, #eef6ff);
}

.casey-table td:first-child > span:not(.casey-name-with-usage) {
    display: block;
    color: #26313d;
    font-weight: 600;
}

.casey-pill,
.casey-priority {
    display: inline-flex;
    align-items: center;
    min-height: 1.35rem;
    padding: 0.05rem 0.42rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: var(--casey-font-weight-pill);
}

.casey-pill {
    background: #e8f2f0;
    color: #184d47;
}

.casey-priority {
    border-color: color-mix(in srgb, var(--pill-color, var(--casey-blue)) 38%, var(--casey-border));
    background: color-mix(in srgb, var(--pill-color, var(--casey-blue)) 12%, var(--casey-panel-solid));
    color: var(--casey-text);
    font-weight: var(--casey-font-weight-pill);
}

.casey-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.casey-form-grid-compact {
    grid-template-columns: 1fr;
    gap: 0.55rem;
}

.casey-form-section {
    display: grid;
    gap: 0.75rem;
    padding: 0.8rem 0;
    border-top: 1px solid #edf0f3;
}

.casey-form-section:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.casey-form-section h2 {
    margin: 0;
    font-size: 1rem;
}

.casey-form-field {
    display: grid;
    gap: 0.2rem;
}

.casey-form-field label {
    margin-bottom: 0;
    color: #5d6b7a;
    font-size: 0.78rem;
    font-weight: 700;
}

.casey-span-2 {
    grid-column: 1 / -1;
}

.casey-detail-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.casey-detail-header-compact {
    align-items: center;
    margin-bottom: 0.75rem;
    padding-bottom: 0.6rem;
    border-bottom: 1px solid #d8dee6;
}

.casey-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
    gap: 1rem;
    margin-bottom: 1rem;
}

.casey-case-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(21rem, 25rem);
    gap: 0.75rem;
    align-items: start;
}

.casey-case-main,
.casey-case-side {
    display: grid;
    gap: 0.75rem;
}

.casey-case-main {
    font-size: 16px;
}

.casey-case-main .form-control,
.casey-case-main .casey-form-field label {
    font-size: 16px;
}

.casey-case-main .casey-comment-meta,
.casey-case-main .casey-comment-meta span,
.casey-case-main .casey-comment-meta em {
    font-size: 0.88rem;
}

.casey-case-side {
    position: sticky;
    top: 3.25rem;
}

.casey-description-panel {
    min-height: 8rem;
}

.casey-description {
    margin-bottom: 0;
    white-space: pre-wrap;
}

.casey-markdown-content {
    display: grid;
    gap: 0.65rem;
    white-space: normal;
}

.casey-markdown-content h1,
.casey-markdown-content h2,
.casey-markdown-content h3,
.casey-markdown-content h4,
.casey-markdown-content h5,
.casey-markdown-content h6,
.casey-markdown-content p,
.casey-markdown-content ul,
.casey-markdown-content ol,
.casey-markdown-content blockquote,
.casey-markdown-content pre,
.casey-markdown-content table,
.casey-markdown-content hr {
    margin: 0;
}

.casey-markdown-content h1 {
    font-size: 1.25rem;
}

.casey-markdown-content h2 {
    font-size: 1.15rem;
}

.casey-markdown-content h3 {
    font-size: 1.05rem;
}

.casey-markdown-content h4,
.casey-markdown-content h5,
.casey-markdown-content h6 {
    font-size: 0.95rem;
}

.casey-markdown-empty-line {
    min-height: 1.4em;
}

.casey-markdown-content ul,
.casey-markdown-content ol {
    padding-left: 1.1rem;
}

.casey-markdown-content blockquote {
    padding-left: 0.75rem;
    border-left: 0.2rem solid var(--bs-border-color);
    color: var(--bs-secondary-color);
}

.casey-markdown-content code {
    padding: 0.1rem 0.25rem;
    border-radius: 0.25rem;
    background: var(--casey-surface-2);
    color: var(--casey-text);
}

.casey-markdown-content pre {
    padding: 0.65rem;
    border-radius: 0.35rem;
    background: var(--casey-surface-2);
    color: var(--casey-text);
}

.casey-markdown-content pre code {
    padding: 0;
    background: transparent;
    color: inherit;
}

.casey-markdown-content table {
    width: 100%;
    border-collapse: collapse;
}

.casey-markdown-content th,
.casey-markdown-content td {
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--bs-border-color);
    text-align: left;
    vertical-align: top;
}

.casey-markdown-content img {
    display: block;
    max-width: 100%;
    height: auto;
}

.casey-inline-image {
    display: block;
    max-width: min(100%, 46rem);
    max-height: 32rem;
    border: 1px solid var(--casey-border, #d8dee6);
    border-radius: 8px;
    object-fit: contain;
}

.casey-markdown-editor {
    min-width: 0;
}

.casey-markdown-editor .toastui-editor-defaultUI {
    overflow: hidden;
    border-color: var(--casey-border, #d8dee6);
    border-radius: 8px;
    background: var(--casey-panel-solid, #fff);
    color: var(--casey-text, #26313d);
}

.casey-markdown-editor .toastui-editor-toolbar {
    border-bottom-color: var(--casey-border, #d8dee6);
    background: var(--casey-surface-2, #f7f8fa);
}

.casey-markdown-editor .toastui-editor-defaultUI-toolbar {
    border-bottom-color: var(--casey-border, #d8dee6);
    background: var(--casey-surface-2, #f7f8fa);
}

.casey-markdown-editor .toastui-editor-md-container,
.casey-markdown-editor .toastui-editor-ww-container,
.casey-markdown-editor .toastui-editor-md-preview,
.casey-markdown-editor .ProseMirror,
.casey-markdown-editor .toastui-editor-md-splitter {
    background: var(--casey-input-bg, #fff);
    color: var(--casey-text, #26313d);
}

.casey-markdown-editor .toastui-editor-md-preview {
    border-left-color: var(--casey-border, #d8dee6);
}

.casey-markdown-editor .toastui-editor-md-preview,
.casey-markdown-editor .toastui-editor-contents {
    color: var(--casey-text, #26313d);
}

.casey-markdown-editor .toastui-editor-contents pre {
    background-color: var(--casey-surface-2, #f7f9fc);
    color: var(--casey-text, #1d2939);
}

.casey-markdown-editor .toastui-editor-contents pre code {
    background-color: transparent;
    color: inherit;
}

.casey-markdown-editor .toastui-editor-contents .toastui-editor-ww-code-block::after {
    background-color: var(--casey-border-soft, #e7ebf2);
    color: var(--casey-text, #1d2939);
}

:root[data-casey-theme="dark"] .casey-markdown-editor .toastui-editor-contents .toastui-editor-ww-code-block::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath fill='%23bdc8d8' d='M15.5 12.5l2 2L12 20h-2v-2zM18 10l2 2-1.5 1.5-2-2z'/%3E%3C/svg%3E");
}

.casey-markdown-editor .toastui-editor-ww-code-block-language {
    border-color: var(--casey-border, #d7dee9);
    background-color: var(--casey-input-bg, #fff);
    color: var(--casey-text, #1d2939);
}

.casey-markdown-editor .toastui-editor-ww-code-block-language input {
    color: inherit;
    caret-color: currentColor;
}

.casey-markdown-editor .toastui-editor-defaultUI,
.casey-markdown-editor .ProseMirror,
.casey-markdown-editor .toastui-editor-contents {
    font-family: var(--casey-font-sans);
}

.casey-markdown-editor .ProseMirror,
.casey-markdown-editor .toastui-editor-contents {
    font-size: 0.9375rem;
}

.casey-composer .casey-comment-editor .toastui-editor-defaultUI .ProseMirror,
.casey-quick-view-composer .casey-comment-editor .toastui-editor-defaultUI .ProseMirror {
    box-sizing: border-box;
    height: 100%;
    padding: 4px 25px;
}

.casey-markdown-editor .toastui-editor-contents p,
.casey-markdown-editor .toastui-editor-contents ul,
.casey-markdown-editor .toastui-editor-contents ol,
.casey-markdown-editor .toastui-editor-contents blockquote,
.casey-markdown-editor .toastui-editor-contents table {
    color: var(--casey-text, #26313d);
}

.casey-markdown-editor .toastui-editor-contents h1,
.casey-markdown-editor .toastui-editor-contents h2,
.casey-markdown-editor .toastui-editor-contents h3,
.casey-markdown-editor .toastui-editor-contents h4,
.casey-markdown-editor .toastui-editor-contents h5,
.casey-markdown-editor .toastui-editor-contents h6 {
    color: var(--casey-text, #26313d);
}

.casey-markdown-editor .toastui-editor-contents h1,
.casey-markdown-editor .toastui-editor-contents h2 {
    border-bottom: 0;
    padding-bottom: 0;
}

.casey-markdown-editor .toastui-editor-md-tab-container,
.casey-markdown-editor .toastui-editor-mode-switch {
    border-color: var(--casey-border, #d8dee6);
    background: var(--casey-surface-2, #f7f8fa);
}

.casey-markdown-editor .toastui-editor-md-tab-container .tab-item,
.casey-markdown-editor .toastui-editor-mode-switch .tab-item {
    border-color: var(--casey-border, #d8dee6);
    background: transparent;
    color: var(--casey-muted, #5d6b7a);
}

.casey-markdown-editor .toastui-editor-md-tab-container .tab-item.active,
.casey-markdown-editor .toastui-editor-mode-switch .tab-item.active {
    background: var(--casey-input-bg, #fff);
    color: var(--casey-text, #26313d);
}

.casey-markdown-editor .toastui-editor-toolbar-icons {
    border-color: transparent;
}

.casey-markdown-editor .toastui-editor-toolbar-icons:hover,
.casey-markdown-editor .toastui-editor-toolbar-icons:focus {
    border-color: var(--casey-border, #d8dee6);
    background-color: color-mix(in srgb, var(--casey-teal) 12%, transparent);
}

.casey-markdown-editor img {
    max-width: 100%;
}

.casey-definition-list {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr);
    gap: 0.25rem 0.7rem;
    margin-bottom: 0;
    font-size: 0.88rem;
}

.casey-definition-list dt {
    color: #5d6b7a;
}

.casey-definition-list dd {
    margin-bottom: 0;
    font-weight: 700;
    min-width: 0;
    overflow-wrap: anywhere;
}

.casey-definition-list-muted {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid #edf0f3;
}

.casey-timeline {
    display: grid;
    gap: 0.45rem;
    padding-left: 1rem;
    margin-bottom: 0;
    font-size: 0.88rem;
}

.casey-timeline span {
    display: block;
    color: #5d6b7a;
}

.casey-board-preview {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 1rem;
}

.casey-board-column {
    min-height: 12rem;
    padding: 1rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #f7f8fa;
}

.casey-board-column header {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.casey-board-column h2 {
    margin: 0;
    font-size: 1rem;
}

.casey-board-column header span {
    font-weight: 800;
    color: #184d47;
}

.casey-ticket-card {
    display: grid;
    gap: 0.25rem;
    margin-bottom: 0.5rem;
    padding: 0.75rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #fff;
    color: #26313d;
    text-decoration: none;
}

.casey-ticket-card:hover {
    border-color: var(--casey-teal);
}

.casey-ticket-card small {
    color: #5d6b7a;
}

@media (max-width: 800px) {
    .casey-filter-bar,
    .casey-form-grid,
    .casey-detail-grid,
    .casey-case-layout {
        grid-template-columns: 1fr;
    }

    .casey-case-side {
        position: static;
    }

    .casey-detail-header {
        display: grid;
    }
}

.casey-file-list,
.casey-attachment-list {
    display: grid;
    gap: 0.25rem;
    margin: 0.35rem 0 0;
    padding-left: 0;
    list-style: none;
}

.casey-file-list li,
.casey-attachment-list li {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    padding: 0.3rem 0.45rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #f7f8fa;
}

.casey-file-list span,
.casey-attachment-list span {
    color: #5d6b7a;
    font-size: 0.9rem;
}

.casey-comment-action-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.65rem 1rem;
}

.casey-comment-action-row .casey-form-field {
    min-width: 14rem;
}

.casey-checkline {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    margin: 0.45rem 0;
    font-weight: 700;
}

.casey-toggle-line {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    color: var(--casey-text);
    font-size: 1rem;
    font-weight: normal;
    white-space: nowrap;
    cursor: pointer;
}

.casey-toggle-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.casey-toggle-slider {
    position: relative;
    display: inline-block;
    width: 34px;
    height: 18px;
    flex: 0 0 auto;
    border-radius: 18px;
    background: #b0b0b0;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: background 0.2s ease;
}

.casey-toggle-slider::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s ease, background 0.2s ease;
}

.casey-toggle-input:checked + .casey-toggle-slider {
    background: var(--casey-blue);
}

.casey-toggle-input:checked + .casey-toggle-slider::after {
    transform: translateX(16px);
    background: #fff;
}

.casey-toggle-input:focus-visible + .casey-toggle-slider {
    outline: var(--casey-focus-ring-width) solid var(--casey-focus);
    outline-offset: var(--casey-focus-ring-offset);
    box-shadow: none;
}

.casey-tabs {
    display: inline-flex;
    padding: 0.15rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #f7f8fa;
}

.casey-tabs button {
    min-width: 6.5rem;
    padding: 0.28rem 0.65rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #5d6b7a;
    font-weight: 700;
}

.casey-tabs button.active {
    background: #fff;
    color: #26313d;
    box-shadow: 0 0 0 1px #cdd5df;
}

.casey-comment-list {
    display: grid;
    gap: 0.55rem;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.casey-comment {
    padding: 0.65rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #fff;
}

.casey-comment-internal {
    border-color: #b05c00;
    background: #fff8ef;
}

.casey-comment header {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.3rem;
}

.casey-comment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.55rem;
    align-items: baseline;
}

.casey-comment header span,
.casey-comment header em {
    color: #5d6b7a;
    font-size: 0.9rem;
}

.casey-comment header em {
    font-style: normal;
    font-weight: normal;
}

.casey-comment p {
    margin-bottom: 0.35rem;
    white-space: pre-wrap;
}

.casey-actions-tight {
    margin: 0.45rem 0 0;
}

.casey-list-pager {
    display: grid;
    grid-template-columns: minmax(11rem, 1fr) auto minmax(10rem, 1fr);
    gap: 0.75rem;
    align-items: center;
    margin: 0.65rem 0 0;
    color: var(--casey-muted, #5d6b7a);
    font-size: 0.75rem;
}

.casey-list-pager-range {
    white-space: nowrap;
}

.casey-list-pager-controls,
.casey-list-pager-pages,
.casey-list-pager-size {
    display: flex;
    align-items: center;
}

.casey-list-pager-controls {
    justify-content: center;
    gap: 0.35rem;
}

.casey-list-pager-pages {
    gap: 0.15rem;
}

.casey-list-pager-button,
.casey-list-pager-page {
    min-height: 1.85rem;
    border: 1px solid transparent;
    border-radius: .35rem;
    background: transparent;
    color: var(--casey-text, #26313d);
    font-family: inherit;
    font-size: .75rem;
    line-height: inherit;
}

.casey-list-pager-button {
    padding: 0.2rem 0.45rem;
}

.casey-list-pager-page {
    min-width: 1.85rem;
    padding: .2rem .4rem;
    font-weight: 500;
}

.casey-list-pager-button:hover:not(:disabled),
.casey-list-pager-page:hover:not(:disabled) {
    background: color-mix(in srgb, var(--casey-primary) 8%, transparent);
    color: var(--casey-primary);
}

.casey-list-pager-page.active {
    border-color: color-mix(in srgb, var(--casey-primary) 45%, var(--casey-border));
    background: var(--casey-selected-bg);
    color: var(--casey-primary);
}

.casey-list-pager-button:disabled,
.casey-list-pager-page:disabled {
    cursor: default;
}

.casey-list-pager-button:disabled,
.casey-list-pager-page:disabled:not(.active) {
    opacity: 0.55;
}

.casey-list-pager-ellipsis {
    padding: 0 0.2rem;
}

.casey-list-pager-size {
    justify-content: flex-end;
    gap: 0.4rem;
    margin: 0;
    white-space: nowrap;
}

.casey-list-pager-size .form-select {
    width: 4.75rem;
}

@media (max-width: 700px) {
    .casey-list-pager {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .casey-list-pager-controls {
        justify-content: flex-start;
    }

    .casey-list-pager-size {
        justify-content: flex-start;
    }
}

.casey-list-pager.casey-list-pager-compact {
    display: flex;
    grid-template-columns: none;
    justify-content: flex-end;
    gap: 0;
    margin: 0;
}

.casey-list-pager-compact .casey-list-pager-controls {
    justify-content: flex-end;
    flex-wrap: wrap;
}

.casey-list-pager-mobile-controls {
    display: none;
}

@media (max-width: 620px) {
    .casey-information-card-directory .casey-information-card-grid,
    .casey-information-card-directory .casey-list-page-size-menu {
        display: none !important;
    }

    .casey-list-pager-responsive {
        display: flex;
        width: 100%;
        justify-content: center;
        margin: .65rem 0 0;
    }

    .casey-list-pager-responsive.casey-list-pager-compact {
        width: auto;
        justify-content: flex-end;
        margin: 0;
    }

    .casey-list-pager-responsive > .casey-list-pager-range,
    .casey-list-pager-responsive > .casey-list-pager-desktop-controls,
    .casey-list-pager-responsive > .casey-list-pager-size {
        display: none;
    }

    .casey-list-pager-responsive .casey-list-pager-mobile-controls {
        display: flex;
        align-items: center;
        gap: .35rem;
    }
}

.casey-filter-bar-wide,
.casey-search-bar {
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}

.casey-date-filter {
    display: grid;
    gap: 0.1rem;
    color: #5d6b7a;
    font-size: var(--casey-font-min);
    font-weight: 700;
}

.casey-date-filter .form-control {
    font-size: 0.875rem;
    font-weight: 400;
}

.casey-case-directory {
    display: grid;
    gap: 0.75rem;
}

.casey-case-results-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
    align-items: start;
}

.casey-case-results-split-open {
    grid-template-columns: minmax(28rem, 0.95fr) minmax(26rem, 0.85fr);
}

.casey-case-workspace {
    display: grid;
    grid-template-columns: minmax(15rem, 18rem) minmax(0, 1fr);
    gap: 0.8rem;
    align-items: start;
}

.casey-case-refine {
    display: grid;
    gap: 0.8rem;
}

.casey-case-refine h2 {
    margin: 0;
}

.casey-case-refine h3 {
    margin: 0.35rem 0 0;
    color: var(--casey-muted);
    font-size: 0.8rem;
    text-transform: uppercase;
}

.casey-refine-search {
    position: relative;
    display: block;
}

.casey-case-refine .casey-status-breakdown li {
    padding: 0;
}

.casey-case-directory .casey-admin-panel-header {
    margin-bottom: 0;
}

.casey-case-directory .casey-admin-panel-header p {
    margin-bottom: 0;
}

.casey-case-search-row {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) auto;
    gap: 0.5rem;
    align-items: center;
}

.casey-case-list-wrap {
    overflow-x: auto;
    overflow-y: visible;
}

.casey-case-number-cell {
    white-space: nowrap;
}

.casey-clickable-row {
    cursor: pointer;
}

.casey-row-preview-active {
    --bs-table-bg-state: color-mix(in srgb, var(--casey-teal) 16%, transparent);
}

@media (max-width: 1300px) {
    .casey-case-results-split-open {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .casey-case-workspace,
    .casey-case-results-split-open,
    .casey-case-search-row {
        grid-template-columns: 1fr;
    }
}

.casey-nowrap {
    white-space: nowrap;
}

.casey-kanban-board {
    align-items: start;
}

.casey-board-column-drop {
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.casey-drop-active {
    border-color: var(--casey-teal);
    background: color-mix(in srgb, var(--casey-teal) 12%, var(--casey-panel-solid));
    box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--casey-teal) 24%, transparent);
}

.casey-ticket-card-draggable {
    cursor: grab;
}

.casey-ticket-card-draggable:active {
    cursor: grabbing;
}

.casey-ticket-card a {
    color: var(--casey-blue);
    text-decoration: none;
}

.casey-ticket-card a:hover {
    text-decoration: none;
}

.casey-search-results {
    display: grid;
    gap: 0.75rem;
}

.casey-search-result {
    padding: 1rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #fff;
}

.casey-search-result header,
.casey-search-result footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    align-items: center;
}

.casey-search-result header {
    justify-content: space-between;
    margin-bottom: 0.35rem;
}

.casey-search-result h2 {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
}

.casey-search-result p {
    margin-bottom: 0.5rem;
    color: #26313d;
}

.casey-search-result footer {
    color: #5d6b7a;
    font-size: 0.9rem;
}

.casey-admin-grid,
.casey-admin-three {
    display: grid;
    gap: 1rem;
    margin-bottom: 1rem;
}

.casey-admin-grid {
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
}

.casey-admin-three {
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.casey-admin-grid form,
.casey-admin-three form {
    display: grid;
    gap: 0.75rem;
    align-content: start;
    padding: 1rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #f7f8fa;
}

.casey-admin-grid h3,
.casey-admin-three h3,
.casey-admin-list h3 {
    margin: 0;
    font-size: 1rem;
}

.casey-admin-table-wrap {
    margin-top: 1rem;
}

.casey-admin-item {
    display: grid;
    gap: 0.5rem;
    padding: 0.9rem 0;
    border-top: 1px solid #edf0f3;
}

.casey-admin-item header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}

.casey-admin-item header div,
.casey-admin-item header span {
    display: grid;
}

.casey-admin-item header span,
.casey-admin-item p {
    color: #5d6b7a;
}

.casey-admin-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.casey-admin-chip {
    display: inline-flex;
    gap: 0.35rem;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border: 1px solid #d8dee6;
    border-radius: 999px;
    background: #fff;
    color: #26313d;
    font-size: 0.9rem;
}

.casey-admin-chip button {
    border: 0;
    background: transparent;
    color: #6b2430;
    font-weight: var(--casey-font-weight-pill);
    line-height: 1;
}

.casey-admin-list {
    padding: 1rem;
    border: 1px solid #d8dee6;
    border-radius: 8px;
    background: #fff;
}

.casey-admin-list ul {
    display: grid;
    gap: 0.4rem;
    margin: 0.75rem 0 0;
    padding-left: 1rem;
}

.casey-admin-lists {
    margin-top: 1rem;
}

.casey-admin-page {
    display: grid;
    gap: 1.35rem;
    width: 100%;
    color: #111827;
}

.casey-admin-hero {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-end;
    padding-top: 0.75rem;
}

.casey-admin-hero h1 {
    margin: 0 0 0.35rem;
    color: #111827;
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1.15;
}

.casey-admin-hero p {
    margin: 0;
    color: #526077;
    font-size: 0.95rem;
}

.casey-admin-panel {
    padding: 1.2rem;
    border: 1px solid #dce3ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.04);
}

.casey-admin-panel h2 {
    margin: 0 0 1rem;
    color: #111827;
    font-size: 1.05rem;
    font-weight: 800;
}

.casey-admin-panel h3 {
    margin: 0;
    color: #172033;
    font-size: 0.98rem;
    font-weight: 800;
}

.casey-admin-panel p {
    color: #526077;
}

.casey-admin-panel-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.casey-admin-panel-header h2 {
    margin: 0;
}

.casey-admin-panel-header a,
.casey-admin-card > a {
    color: var(--casey-blue);
    font-size: 0.86rem;
    font-weight: var(--casey-font-weight-link);
    text-decoration: none;
}

.casey-admin-panel-header a:hover,
.casey-admin-card > a:hover {
    text-decoration: none;
}

.casey-admin-action-grid,
.casey-admin-summary-grid,
.casey-admin-card-grid,
.casey-admin-form-grid {
    display: grid;
    gap: 1rem;
}

.casey-admin-action-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.casey-admin-summary-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.casey-admin-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.casey-admin-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.casey-admin-action-card,
.casey-admin-summary-card,
.casey-admin-card,
.casey-admin-form-grid form,
.casey-admin-three form {
    min-width: 0;
    border: 1px solid #dce3ee;
    border-radius: 8px;
    background: #fff;
}

.casey-admin-action-card {
    display: grid;
    gap: 0.65rem;
    align-content: start;
    padding: 1rem;
}

.casey-admin-action-card p {
    min-height: 2.1rem;
    margin: 0;
    color: #526077;
    font-size: 0.83rem;
}

.casey-admin-action-card .btn {
    margin-top: 0.2rem;
    font-weight: 800;
}

.casey-admin-icon {
    display: inline-grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: 8px;
    background: color-mix(in srgb, var(--casey-blue) 12%, var(--casey-panel-solid));
    color: var(--casey-blue);
    font-size: 1.08rem;
    font-weight: 900;
    line-height: 1;
}

.casey-admin-icon > .casey-catalogue-icon {
    width: 1.2rem;
    height: 1.2rem;
}

.casey-admin-summary-card {
    display: grid;
    gap: 0.45rem;
    padding: 0.9rem;
}

.casey-admin-summary-card div {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    color: #263348;
    font-size: 0.82rem;
    font-weight: 700;
}

.casey-admin-summary-card .casey-admin-icon {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 0.92rem;
}

.casey-admin-summary-card strong {
    display: block;
    color: #111827;
    font-size: 1.65rem;
    line-height: 1.1;
}

.casey-admin-summary-card small {
    color: #526077;
}

.casey-admin-table-wrap {
    margin-top: 0;
}

.casey-admin-table {
    color: #263348;
    font-size: 0.86rem;
}

.casey-admin-table thead th {
    padding: 0.7rem 0.85rem;
    border-bottom-color: #dce3ee;
    background: #f8fafc;
    color: #334155;
    font-size: 0.78rem;
    font-weight: 500;
}

.casey-admin-table td {
    padding: 0.85rem;
    vertical-align: middle;
}

.casey-admin-row-actions {
    white-space: nowrap;
}

.casey-admin-row-actions .btn {
    margin-left: 0.3rem;
}

.casey-admin-card {
    display: grid;
    gap: 0.8rem;
    align-content: start;
    min-height: 13.5rem;
}

.casey-admin-card h2 {
    margin-bottom: 0;
}

.casey-admin-card p {
    margin: 0;
    font-size: 0.86rem;
}

.casey-admin-mini-list,
.casey-admin-check-list {
    display: grid;
    gap: 0.62rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.casey-admin-mini-list li,
.casey-admin-check-list li {
    display: flex;
    gap: 0.65rem;
    align-items: center;
    min-width: 0;
    color: #263348;
    font-size: 0.88rem;
}

.casey-admin-mini-list strong {
    color: #172033;
    font-size: 0.86rem;
}

.casey-admin-dot {
    flex: 0 0 auto;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 999px;
    background: #64748b;
}

.casey-admin-mini-list li:nth-child(2) .casey-admin-dot {
    background: var(--casey-blue);
}

.casey-admin-mini-list li:nth-child(3) .casey-admin-dot {
    background: #f59e0b;
}

.casey-admin-mini-list li:nth-child(4) .casey-admin-dot {
    background: #8b5cf6;
}

.casey-admin-mini-list li:nth-child(5) .casey-admin-dot {
    background: #ef4444;
}

.casey-admin-priority-mark {
    flex: 0 0 auto;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 3px;
    background: var(--priority-color, var(--casey-blue));
}

.casey-admin-folder {
    flex: 0 0 auto;
    width: 1rem;
    height: 0.75rem;
    border: 1px solid #64748b;
    border-radius: 2px;
}

.casey-admin-check-list li::before {
    content: "";
    flex: 0 0 auto;
    width: 0.85rem;
    height: 0.85rem;
    background: #16a34a;
    clip-path: polygon(14% 52%, 34% 72%, 84% 18%, 94% 28%, 34% 90%, 4% 62%);
}

.casey-admin-inline-stats,
.casey-admin-settings-list {
    display: grid;
    gap: 0.65rem;
    margin: 0;
}

.casey-admin-inline-stats div,
.casey-admin-settings-list div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
}

.casey-admin-inline-stats dt,
.casey-admin-settings-list dt {
    color: #263348;
    font-weight: 500;
}

.casey-admin-inline-stats dd,
.casey-admin-settings-list dd {
    margin: 0;
    color: #172033;
    font-weight: 800;
    text-align: right;
    overflow-wrap: anywhere;
}

.casey-admin-form-grid form,
.casey-admin-three form {
    display: grid;
    gap: 0.75rem;
    align-content: start;
    padding: 1rem;
    background: #f8fafc;
}

.casey-admin-resource-list {
    display: grid;
    gap: 0;
    margin-top: 1rem;
}

.casey-admin-edit-actions {
    flex-wrap: wrap;
    margin: 1rem 0 0;
}

.casey-workflow-config {
    display: grid;
    gap: 1rem;
}

.casey-workflow-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.casey-workflow-layout-open {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 27rem);
}

.casey-workflow-list,
.casey-workflow-editor {
    min-width: 0;
}

.casey-workflow-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.casey-workflow-toolbar h3,
.casey-workflow-editor h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 850;
}

.casey-workflow-tools {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.casey-user-management .casey-admin-panel-header {
    align-items: flex-start;
    margin-bottom: 0.75rem;
}

.casey-user-management .casey-admin-panel-header p {
    margin-bottom: 0;
}

.casey-user-filter-row {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) repeat(3, minmax(8rem, 12rem)) auto auto;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.casey-user-filter-row .casey-search-box {
    width: 100%;
}

.casey-user-filter-row .btn {
    white-space: nowrap;
}

.casey-user-filter-row .valid.modified,
.casey-user-filter-row .invalid {
    outline: 0;
}

.casey-user-directory-paging-header {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.casey-user-directory-paging-header p {
    margin: 0;
    color: var(--casey-text-secondary);
    font-size: .8125rem;
}

.casey-user-directory-paging-header p strong {
    color: var(--casey-text);
    font-weight: 600;
}

.casey-user-directory-paging-header .casey-list-pager {
    margin: 0;
}

.casey-user-bulk-bar {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 0.75rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid color-mix(in srgb, var(--casey-blue) 70%, white);
    border-radius: 8px;
    background: var(--casey-blue);
    color: #fff;
}

.casey-user-bulk-summary {
    display: grid;
    gap: 0.1rem;
}

.casey-user-bulk-summary strong {
    font-size: 0.9rem;
}

.casey-user-bulk-summary span {
    font-size: 0.76rem;
    opacity: 0.82;
}

.casey-user-bulk-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.casey-user-bulk-more {
    position: relative;
}

.casey-user-bulk-more > .btn {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
}

.casey-user-bulk-more-caret {
    width: 0;
    height: 0;
    border-top: 0.3rem solid currentColor;
    border-right: 0.25rem solid transparent;
    border-left: 0.25rem solid transparent;
}

.casey-user-bulk-more-menu {
    position: absolute;
    z-index: 30;
    top: calc(100% + 0.4rem);
    right: 0;
    width: 12rem;
    padding: 0.35rem;
    border: 1px solid var(--casey-border);
    border-radius: 0.55rem;
    background: var(--casey-panel-solid);
    box-shadow: 0 0.7rem 1.8rem rgb(0 0 0 / 22%);
}

.casey-user-bulk-more-menu button {
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 0;
    border-radius: 0.35rem;
    background: transparent;
    color: var(--casey-text);
    font-size: 0.82rem;
    font-weight: 700;
    text-align: left;
}

.casey-user-bulk-more-menu button:hover,
.casey-user-bulk-more-menu button:focus-visible {
    background: color-mix(in srgb, var(--casey-teal) 10%, transparent);
}

.casey-user-bulk-more-menu button:disabled {
    color: var(--casey-muted);
    cursor: not-allowed;
    opacity: 0.65;
}

.casey-user-selection-notice {
    display: flex;
    justify-content: center;
    gap: 0.35rem;
    align-items: center;
    margin: -0.1rem 0 0.75rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid var(--casey-border);
    border-radius: 6px;
    background: var(--casey-surface-3);
    color: var(--casey-text);
    font-size: 0.82rem;
}

.casey-user-selection-notice .btn-link {
    padding: 0;
    color: var(--casey-blue);
    font-weight: 800;
    text-decoration: none;
}

.casey-user-select-cell {
    width: 3rem;
    text-align: center;
}

.casey-user-table td > strong,
.casey-user-table td > span {
    display: block;
}

.casey-user-table td > span {
    color: var(--casey-muted);
    font-size: 0.78rem;
}

.casey-user-table td > .casey-pill {
    display: inline-flex;
}

.casey-user-membership-primary {
    font-size: 0.82rem;
    font-weight: 750;
}

.casey-user-row-selected > td {
    background: color-mix(in srgb, var(--casey-blue) 12%, var(--casey-panel-solid));
}

.casey-user-row-bulk-mode {
    cursor: default;
}

.casey-user-bulk-panel {
    display: grid;
    gap: 0.85rem;
}

.casey-user-merge-panel {
    display: grid;
    gap: 0.85rem;
}

.casey-merge-target-list {
    display: grid;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.casey-merge-target-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.65rem;
    align-items: center;
    width: 100%;
    padding: 0.7rem;
    border: 1px solid var(--casey-border);
    border-radius: 7px;
    background: var(--casey-card-subtle);
    color: var(--casey-text);
    text-align: left;
}

.casey-merge-target-option:hover:not(:disabled),
.casey-merge-target-option:focus-visible {
    border-color: var(--casey-teal);
}

.casey-merge-target-option-selected {
    border-color: var(--casey-teal);
    background: color-mix(in srgb, var(--casey-teal) 10%, var(--casey-card-subtle));
    box-shadow: 0 0 0 1px var(--casey-teal);
}

.casey-merge-target-option:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.casey-merge-target-radio {
    width: 1rem;
    height: 1rem;
    border: 2px solid var(--casey-muted);
    border-radius: 50%;
    background: var(--casey-panel-solid);
}

.casey-merge-target-option-selected .casey-merge-target-radio {
    border: 0.3rem solid var(--casey-teal);
}

.casey-merge-target-identity,
.casey-merge-target-meta,
.casey-merge-source-row > span {
    display: grid;
    gap: 0.1rem;
}

.casey-merge-target-identity span,
.casey-merge-source-row small {
    color: var(--casey-muted);
    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

.casey-merge-target-meta {
    justify-items: end;
}

.casey-user-bulk-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.casey-user-bulk-preview-grid > div {
    display: grid;
    gap: 0.15rem;
    padding: 0.7rem;
    border: 1px solid var(--casey-border);
    border-radius: 6px;
    background: var(--casey-card-subtle);
}

.casey-user-bulk-preview-grid strong {
    color: var(--casey-text);
    font-size: 1.25rem;
}

.casey-user-bulk-preview-grid span {
    color: var(--casey-muted);
    font-size: 0.75rem;
}

.casey-merge-preview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.casey-merge-source-list {
    display: grid;
    gap: 0.45rem;
}

.casey-merge-source-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 0.5rem;
    align-items: center;
    padding: 0.65rem;
    border: 1px solid var(--casey-border);
    border-radius: 6px;
    background: var(--casey-card-subtle);
}

.casey-merge-source-row > .casey-muted {
    grid-column: 1 / -1;
    font-size: 0.75rem;
}

.casey-merge-direction {
    color: var(--casey-blue);
    font-size: 1.1rem;
    font-weight: 850;
}

.casey-merge-warning-list {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    padding-left: 1.15rem;
    color: var(--casey-muted);
    font-size: 0.8rem;
}

.casey-merge-confirm {
    border-top: 1px solid var(--casey-border);
    padding-top: 0.85rem;
}

.casey-user-bulk-warning {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    font-size: 0.82rem;
}

.casey-user-bulk-confirm {
    display: grid;
    gap: 0.65rem;
    padding-top: 0.2rem;
}

.casey-user-bulk-confirm h2,
.casey-user-bulk-confirm p {
    margin: 0;
}

.casey-user-bulk-confirm h2 {
    font-size: 0.86rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.casey-user-bulk-confirm p {
    color: var(--casey-muted);
    font-size: 0.82rem;
}

@media (max-width: 900px) {
    .casey-user-filter-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .casey-user-filter-row .casey-search-box {
        grid-column: 1 / -1;
    }

    .casey-user-filter-row .btn {
        width: 100%;
    }

    .casey-user-bulk-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .casey-user-bulk-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 560px) {
    .casey-user-filter-row {
        grid-template-columns: 1fr;
    }

    .casey-user-filter-row .casey-search-box {
        grid-column: auto;
    }

    .casey-user-bulk-actions .btn {
        flex: 1 1 calc(50% - 0.4rem);
    }

    .casey-user-bulk-more {
        flex: 1 1 calc(50% - 0.4rem);
    }

    .casey-user-bulk-more > .btn {
        width: 100%;
        justify-content: center;
    }

    .casey-user-selection-notice {
        align-items: flex-start;
        flex-direction: column;
    }
}

.casey-workflow-table {
    margin-bottom: 0;
}

.casey-workflow-row {
    cursor: pointer;
}

.casey-workflow-marker,
.casey-workflow-colour {
    display: inline-block;
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 999px;
}

.casey-workflow-marker {
    background: #64748b;
}

.casey-workflow-colour {
    background: var(--workflow-color, var(--casey-blue));
}

.casey-workflow-editor {
    position: sticky;
    top: 5rem;
    padding: 1rem;
    border: 1px solid #dce3ee;
    border-radius: 8px;
    background: #f8fafc;
}

.casey-workflow-editor form {
    display: grid;
    gap: 0.75rem;
}

.casey-workflow-editor-header {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: center;
}

.casey-workflow-colour-field {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.55rem;
    align-items: center;
}

.casey-organisation-directory-shell {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
}

.casey-organisation-title {
    margin-bottom: 0;
}

.casey-organisation-title h2 {
    font-size: 1.55rem;
}

.casey-organisation-controls,
.casey-organisation-filter-row {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.casey-organisation-controls {
    justify-content: space-between;
}

.casey-organisation-filter-row {
    flex: 1;
    flex-wrap: wrap;
}

.casey-organisation-filter-row .form-select {
    width: min(16rem, 100%);
}

.casey-organisation-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(22rem, 1fr);
    gap: 1rem;
    align-items: stretch;
}

.casey-organisation-card {
    min-width: 0;
    padding: 1rem;
    border: 1px solid #dce3ee;
    border-radius: 8px;
    background: #fff;
}

.casey-organisation-card-heading,
.casey-organisation-detail-header {
    display: flex;
    gap: 0.8rem;
    align-items: center;
    margin-bottom: 1rem;
}

.casey-organisation-card-heading {
    justify-content: flex-start;
}

.casey-organisation-members-card .casey-organisation-card-heading {
    justify-content: space-between;
}

.casey-organisation-card-heading > .casey-stack,
.casey-organisation-detail-header > .casey-stack {
    margin-right: auto;
}

.casey-organisation-card-icon,
.casey-organisation-stat-icon {
    display: inline-grid;
    place-items: center;
    border-radius: 8px;
    background: color-mix(in srgb, var(--casey-blue) 18%, transparent);
    color: var(--casey-blue);
    font-weight: 900;
}

.casey-organisation-card-icon > .casey-catalogue-icon,
.casey-organisation-stat-icon > .casey-catalogue-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.casey-organisation-card-icon {
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
}

.casey-organisation-list-wrap {
    max-height: clamp(24rem, 56vh, 42rem);
    overflow-y: auto;
}

.casey-organisation-list-wrap .casey-admin-table {
    margin-bottom: 0;
}

.casey-organisation-list-wrap .casey-admin-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
}

.casey-organisation-table td {
    padding-top: 0.58rem;
    padding-bottom: 0.58rem;
}

.casey-organisation-selected-row {
    --bs-table-bg-state: color-mix(in srgb, var(--casey-teal) 16%, transparent);
    box-shadow: inset 3px 0 0 var(--casey-teal);
}

.casey-organisation-detail-card form {
    display: grid;
    gap: 1rem;
}

.casey-organisation-detail-card .casey-form-section {
    padding: 1rem;
    margin: 0;
}

.casey-organisation-detail-card .casey-checkline span {
    display: grid;
    gap: 0.15rem;
}

.casey-organisation-detail-card .casey-checkline small {
    color: var(--casey-muted);
    font-weight: 500;
}

.casey-organisation-detail-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 1rem 0;
    border-top: 1px solid var(--casey-border-soft);
    border-bottom: 1px solid var(--casey-border-soft);
}

.casey-organisation-detail-stats > div {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.1rem 0.65rem;
    align-items: center;
}

.casey-organisation-detail-stats > div + div {
    padding-left: 1rem;
    border-left: 1px solid var(--casey-border-soft);
}

.casey-organisation-stat-icon {
    grid-row: span 2;
    width: 2.25rem;
    height: 2.25rem;
}

.casey-organisation-detail-stats strong {
    color: var(--casey-text);
    font-size: 1.25rem;
    line-height: 1;
}

.casey-organisation-detail-stats small {
    color: var(--casey-muted);
}

.casey-organisation-detail-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.casey-organisation-add-member {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) auto;
    gap: 0.75rem;
    align-items: end;
    margin-bottom: 0.85rem;
    padding: 0.85rem;
    border: 1px solid var(--casey-border-soft);
    border-radius: 8px;
    background: var(--casey-card-subtle);
}

.casey-admin-empty-state {
    display: grid;
    justify-items: center;
    gap: 0.3rem;
    min-height: 8.5rem;
    padding: 1.6rem;
    color: #64748b;
    text-align: center;
}

.casey-admin-empty-state strong {
    color: #334155;
}

.casey-admin-empty-icon {
    display: block;
    width: 2rem;
    height: 2.4rem;
    background: var(--casey-muted);
    -webkit-mask: url("/icons/fontawesome/regular/inbox.svg") center / contain no-repeat;
    mask: url("/icons/fontawesome/regular/inbox.svg") center / contain no-repeat;
    transform: scale(1.25);
}

@media (max-width: 1180px) {
    .casey-admin-action-grid,
    .casey-admin-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .casey-admin-card-grid,
    .casey-admin-form-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .casey-admin-page {
        gap: 0.9rem;
    }

    .casey-admin-panel {
        padding: 0.9rem;
    }

    .casey-admin-action-grid,
    .casey-admin-summary-grid {
        grid-template-columns: 1fr;
    }

    .casey-admin-panel-header,
    .casey-admin-hero {
        display: grid;
        align-items: start;
    }
}

html,
body {
    background: var(--casey-bg);
    color: var(--casey-text);
}

a,
.btn-link {
    color: var(--casey-link-color, var(--casey-blue));
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--casey-text);
}

.btn {
    --bs-btn-padding-x: var(--casey-button-primary-padding-inline);
    --bs-btn-padding-y: var(--casey-button-primary-padding-block);
    --bs-btn-font-size: var(--casey-button-primary-font-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
    font-size: var(--bs-btn-font-size);
}

.btn-sm {
    --bs-btn-padding-x: var(--casey-button-secondary-padding-inline);
    --bs-btn-padding-y: var(--casey-button-secondary-padding-block);
    --bs-btn-font-size: var(--casey-button-secondary-font-size);
}

.btn-primary,
.casey-button-primary-tall,
.casey-button-primary-compact {
    --bs-btn-padding-x: var(--casey-button-primary-padding-inline);
    --bs-btn-padding-y: var(--casey-button-primary-padding-block);
    --bs-btn-font-size: var(--casey-button-primary-font-size);
    --bs-btn-color: var(--casey-button-primary-label);
    --bs-btn-bg: var(--casey-primary-button-bg);
    --bs-btn-border-color: var(--casey-primary-button-bg);
    --bs-btn-hover-color: var(--casey-button-primary-label);
    --bs-btn-hover-bg: var(--casey-primary-button-hover-bg);
    --bs-btn-hover-border-color: var(--casey-primary-button-hover-bg);
    --bs-btn-active-color: var(--casey-button-primary-label);
    --bs-btn-active-bg: var(--casey-primary-button-active-bg);
    --bs-btn-active-border-color: var(--casey-primary-button-active-bg);
    --bs-btn-disabled-color: var(--casey-button-primary-label);
    --bs-btn-disabled-bg: var(--casey-primary-button-bg);
    --bs-btn-disabled-border-color: var(--casey-primary-button-bg);
    border-color: var(--casey-primary-button-bg);
    background-color: var(--casey-primary-button-bg);
    color: var(--casey-button-primary-label);
}

.btn-danger,
.btn-outline-danger {
    --bs-btn-color: #b4232f;
    --bs-btn-bg: transparent;
    --bs-btn-border-color: #b4232f;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #8f1b27;
    --bs-btn-hover-border-color: #8f1b27;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #74151f;
    --bs-btn-active-border-color: #74151f;
    --bs-btn-disabled-color: #8f1b27;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #b4232f;
    color: #b4232f;
    background-color: transparent;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:focus-visible,
.btn-danger:active,
.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:focus-visible,
.btn-outline-danger:active {
    border-color: #8f1b27;
    background-color: #8f1b27;
    color: #fff;
}

.btn-outline-primary {
    border-color: var(--casey-teal);
    color: var(--casey-blue);
}

.btn-secondary,
.btn-outline-secondary,
.casey-button-secondary-tall,
.casey-button-secondary-compact {
    --bs-btn-color: var(--casey-button-secondary-label);
    --bs-btn-bg: var(--casey-button-secondary-bg);
    --bs-btn-border-color: var(--casey-button-secondary-border);
    --bs-btn-hover-color: var(--casey-button-secondary-label);
    --bs-btn-hover-bg: var(--casey-button-secondary-hover-bg);
    --bs-btn-hover-border-color: var(--casey-button-secondary-border);
    --bs-btn-active-color: var(--casey-button-secondary-label);
    --bs-btn-active-bg: color-mix(in srgb, var(--casey-button-secondary-hover-bg) 82%, var(--casey-button-secondary-border));
    --bs-btn-active-border-color: var(--casey-button-secondary-border);
    --bs-btn-disabled-color: var(--casey-muted);
    --bs-btn-disabled-bg: var(--casey-button-secondary-bg);
    --bs-btn-disabled-border-color: var(--casey-button-secondary-border);
    border-color: var(--casey-button-secondary-border);
    background-color: var(--casey-button-secondary-bg);
    color: var(--casey-button-secondary-label);
}

.btn-outline-secondary:hover,
.casey-button-secondary-tall:hover,
.casey-button-secondary-compact:hover {
    border-color: var(--casey-button-secondary-hover-border);
    background-color: var(--casey-button-secondary-hover-bg);
    color: var(--casey-button-secondary-label);
}

.casey-action-plate {
    display: inline-grid;
    width: var(--casey-button-tall-height);
    min-width: var(--casey-button-tall-height);
    height: var(--casey-button-tall-height);
    min-height: var(--casey-button-tall-height);
    padding: 0;
    border: 1px solid var(--casey-border);
    border-radius: 0.45rem;
    place-items: center;
    background: var(--casey-panel-solid);
    color: var(--casey-muted);
}

.casey-action-plate:hover,
.casey-action-plate:focus-visible,
.casey-action-plate[aria-expanded="true"] {
    border-color: var(--casey-button-secondary-hover-border);
    background: var(--casey-panel-solid);
    color: var(--casey-text);
}

.casey-action-plate:disabled {
    cursor: not-allowed;
    opacity: 0.6;
}

.casey-button-control-peer {
    align-self: stretch;
    min-height: 0;
}

.input-group > .btn {
    align-self: stretch;
    min-height: 0;
}

.form-check-input:checked,
.form-check-input:checked:focus {
    border-color: var(--casey-teal);
    background-color: var(--casey-blue);
}

.form-control::placeholder {
    color: var(--casey-text-secondary);
}

.alert {
    border-color: var(--casey-border);
    background: var(--casey-surface-2);
    color: var(--casey-text);
}

.alert-danger {
    border-color: rgba(239, 91, 91, 0.5);
    background: rgba(239, 91, 91, 0.12);
}

.alert-success {
    border-color: rgba(33, 199, 122, 0.5);
    background: rgba(33, 199, 122, 0.12);
}

.casey-page-header,
.casey-page-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.8rem;
    padding-bottom: 0;
    border-bottom: 0;
}

.casey-page-header h1,
.casey-page-header h2,
.casey-page-hero h1 {
    margin: 0;
    font-size: 1.65rem;
    font-weight: 850;
}

.casey-page-header p,
.casey-page-hero p {
    margin: 0.25rem 0 0;
    color: var(--casey-muted);
}

.casey-kicker,
.casey-muted,
.casey-date-filter {
    color: var(--casey-muted);
}

.casey-panel,
.casey-workspace,
.casey-metrics > div,
.casey-search-result,
.casey-comment,
.casey-admin-panel,
.casey-admin-list,
.casey-admin-action-card,
.casey-admin-summary-card,
.casey-admin-card,
.casey-workflow-editor,
.casey-organisation-card,
.casey-admin-form-grid form,
.casey-admin-three form {
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(19, 34, 56, 0.95), rgba(13, 25, 42, 0.95));
    color: var(--casey-text);
    box-shadow: none;
}

.casey-panel {
    padding: 1rem;
}

.casey-dashboard-grid .casey-panel {
    padding: 0.75rem;
}

.casey-dashboard-grid .casey-section-heading {
    margin-bottom: 0.45rem;
}

.casey-dashboard-grid .casey-action-list a,
.casey-dashboard-grid .casey-compact-list li {
    padding: 0.45rem 0;
}

.casey-panel h2,
.casey-workspace h2,
.casey-workspace h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 850;
}

.casey-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
    gap: 0.9rem;
    align-items: start;
}

.casey-dashboard-main,
.casey-dashboard-side {
    display: grid;
    gap: 0.9rem;
}

.casey-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
    gap: 0.9rem;
    align-items: start;
}

.casey-dashboard-chart-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(20rem, 1fr);
    gap: 0.9rem;
    align-items: stretch;
}

.casey-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 0.8rem;
    margin-bottom: 0;
}

.casey-metric-card,
.casey-metrics > div {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-height: 5.7rem;
    padding: 1rem;
}

.casey-metric-icon,
.casey-action-icon {
    display: inline-grid;
    width: 2.55rem;
    height: 2.55rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 8px;
    background: color-mix(in srgb, var(--casey-blue) 18%, transparent);
    color: var(--casey-blue);
    font-weight: 900;
}

.casey-metric-icon > .casey-catalogue-icon,
.casey-action-icon > .casey-catalogue-icon {
    width: 1.2rem;
    height: 1.2rem;
}

.casey-tone-green {
    background: rgba(33, 199, 122, 0.18);
    color: var(--casey-green);
}

.casey-tone-yellow {
    background: rgba(245, 197, 66, 0.18);
    color: var(--casey-yellow);
}

.casey-tone-orange {
    background: rgba(255, 138, 31, 0.18);
    color: var(--casey-orange);
}

.casey-tone-red {
    background: rgba(239, 91, 91, 0.18);
    color: var(--casey-red);
}

.casey-tone-purple {
    background: rgba(155, 92, 246, 0.18);
    color: var(--casey-purple);
}

.casey-metric-value {
    color: var(--casey-text);
    font-size: 1.55rem;
    font-weight: 850;
    line-height: 1.05;
}

.casey-metric-label {
    color: var(--casey-text);
    font-weight: 700;
}

.casey-metric-delta {
    display: block;
    color: var(--casey-muted);
    font-size: 0.78rem;
}

.casey-table-wrap {
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: var(--casey-surface);
}

.casey-directory-page {
    --casey-directory-page-gap: 0;
}

.casey-directory-page > .casey-directory-page-surface {
    border-radius: 0 0 var(--casey-radius-panel) var(--casey-radius-panel);
}

.casey-table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--casey-text);
    --bs-table-border-color: var(--casey-border-soft);
    --bs-table-hover-bg: var(--casey-table-hover-bg);
    --bs-table-hover-color: var(--casey-text);
    color: var(--casey-text);
}

.casey-table thead th {
    font-weight: 500;
}

.casey-table .casey-ticket-reference-link,
.casey-table .casey-ticket-reference-link:hover,
.casey-table .casey-ticket-reference-link:focus-visible {
    font-size: .75rem;
    text-decoration: none;
}

.casey-table .casey-ticket-reference-link:focus-visible {
    border-radius: 0.2rem;
    outline: 2px solid var(--casey-focus);
    outline-offset: 2px;
}

.casey-table-dense thead th,
.casey-admin-table thead th {
    border-bottom-color: var(--casey-border);
    background: var(--casey-surface-2);
    color: var(--casey-muted);
}

.casey-table td:first-child > span:not(.casey-name-with-usage) {
    color: var(--casey-muted);
}

.casey-pill,
.casey-priority,
.casey-status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 1.45rem;
    padding: 0.1rem 0.5rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: color-mix(in srgb, var(--casey-blue) 12%, transparent);
    color: var(--casey-blue);
    font-size: 0.76rem;
    font-weight: var(--casey-font-weight-pill);
}

.casey-priority {
    border-width: 1px;
    border-color: color-mix(in srgb, var(--pill-color, var(--casey-blue)) 38%, var(--casey-border));
    background: color-mix(in srgb, var(--pill-color, var(--casey-blue)) 12%, var(--casey-panel-solid));
    color: var(--casey-text);
    font-weight: var(--casey-font-weight-pill);
}

.casey-status-pill {
    border-color: color-mix(in srgb, var(--casey-blue) 38%, var(--casey-border));
    background: color-mix(in srgb, var(--casey-blue) 12%, var(--casey-panel-solid));
    color: var(--casey-text);
    font-weight: var(--casey-font-weight-pill);
}

.casey-pill :is(strong, b),
.casey-priority :is(strong, b),
.casey-status-pill :is(strong, b),
.casey-admin-chip :is(strong, b),
.casey-chip :is(strong, b) {
    font-weight: var(--casey-font-weight-pill);
}

.casey-tabs {
    display: inline-flex;
    gap: 0.15rem;
    padding: 0.15rem;
    border-color: var(--casey-border);
    background: var(--casey-surface-2);
}

.casey-tabs button,
.casey-tab-link {
    min-width: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: var(--casey-muted);
    font-weight: 800;
}

.casey-tabs button.active,
.casey-tab-link.active {
    border-color: var(--casey-teal);
    background: color-mix(in srgb, var(--casey-teal) 20%, transparent);
    color: var(--casey-text);
    box-shadow: none;
}

.casey-filter-bar,
.casey-filter-bar-wide,
.casey-search-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0.55rem;
}

.casey-search-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.55rem;
    margin-bottom: 0;
}

.casey-search-layout {
    display: grid;
    grid-template-columns: minmax(15rem, 18rem) minmax(0, 1fr);
    gap: 0.8rem;
    align-items: start;
}

.casey-search-layout aside {
    display: grid;
    gap: 0.8rem;
}

.casey-refine-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.casey-refine-heading h2 {
    margin: 0;
}

.casey-search-layout h3 {
    margin: 0.35rem 0 0;
    color: var(--casey-muted);
    font-size: 0.8rem;
    text-transform: uppercase;
}

.casey-board-column,
.casey-ticket-card,
.casey-file-list li,
.casey-attachment-list li,
.casey-search-result,
.casey-comment {
    border-color: var(--casey-border);
    background: var(--casey-surface);
    color: var(--casey-text);
}

.casey-comment .casey-markdown-content {
    color: var(--casey-text);
}

.casey-comment .casey-markdown-content :where(p, li) {
    color: inherit;
}

.casey-board-column {
    min-height: 16rem;
}

.casey-board-column header span {
    color: var(--casey-blue);
}

.casey-ticket-card small,
.casey-file-list span,
.casey-attachment-list span,
.casey-comment header span {
    color: var(--casey-muted);
}

.casey-comment.casey-comment-internal {
    border-color: rgba(245, 197, 66, 0.45);
    background: var(--casey-internal-note-bg, rgba(245, 197, 66, 0.08));
}

.casey-comment header em {
    color: var(--casey-muted);
}

.casey-definition-list dt {
    color: var(--casey-muted);
}

.casey-definition-list dd,
.casey-search-result p {
    color: var(--casey-text);
}

.casey-action-list,
.casey-compact-list,
.casey-status-breakdown {
    display: grid;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.casey-action-list a,
.casey-compact-list a,
.casey-compact-list li,
.casey-status-breakdown li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    min-width: 0;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--casey-border-soft);
    color: var(--casey-text);
    text-decoration: none;
}

.casey-action-list a:last-child,
.casey-compact-list li:last-child,
.casey-status-breakdown li:last-child {
    border-bottom: 0;
}

.casey-search-layout .casey-status-breakdown li {
    padding: 0;
}

.casey-refine-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.8rem;
    width: 100%;
    min-width: 0;
    padding: 0.55rem 0.25rem;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--casey-text);
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    text-align: left;
}

.casey-refine-option:hover,
.casey-refine-option:focus-visible,
.casey-refine-option.active {
    background: color-mix(in srgb, var(--casey-teal) 12%, transparent);
    color: var(--casey-blue);
}

.casey-refine-option.active strong {
    color: var(--casey-text);
}

.casey-dashboard-chart-grid .casey-status-breakdown {
    gap: 0.15rem;
    width: 100%;
    max-width: 100%;
}

.casey-dashboard-chart-grid .casey-status-breakdown li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    justify-content: stretch;
    gap: 0.9rem;
    padding: 0.26rem 0;
}

.casey-dashboard-chart-grid .casey-status-breakdown li .casey-flex {
    justify-content: flex-start;
    min-width: 0;
}

.casey-dashboard-chart-grid .casey-status-breakdown li strong {
    text-align: right;
    white-space: nowrap;
}

.casey-dot {
    display: inline-block;
    width: 0.55rem;
    height: 0.55rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--casey-blue);
}

.casey-flex {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

.casey-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.6rem;
}

.casey-stack {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.casey-stack small,
.casey-compact-list small {
    color: var(--casey-muted);
}

.casey-check-list {
    display: grid;
    gap: 0.65rem;
    margin: 1rem 0 1.25rem;
    padding: 0;
    list-style: none;
}

.casey-check-list li {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--casey-muted);
}

.casey-check-list li::before {
    content: "";
    display: inline-block;
    width: 0.8rem;
    height: 0.8rem;
    border: 1px solid var(--casey-muted);
    border-radius: 999px;
}

.casey-check-list li.casey-check-complete {
    color: var(--casey-text);
}

.casey-check-list li.casey-check-complete::before {
    border-color: var(--casey-green);
    background: var(--casey-green);
}

.casey-chart {
    width: 100%;
    min-height: 13rem;
}

.casey-chart svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 13rem;
}

.casey-chart-axis-title,
.casey-chart-axis-label,
.casey-chart-date-label {
    fill: var(--casey-muted);
    font-size: var(--casey-font-min);
}

.casey-chart-date-label {
    color: var(--casey-muted);
}

.casey-donut-wrap {
    display: grid;
    grid-template-columns: 198px minmax(14rem, 1fr);
    gap: 0.75rem;
    align-items: center;
    justify-content: start;
}

.casey-donut {
    width: 190px;
    aspect-ratio: 1;
    border-radius: 999px;
    position: relative;
}

.casey-donut::after {
    content: "";
    position: absolute;
    inset: 48px;
    border-radius: inherit;
    background: var(--casey-surface);
}

.casey-side-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem;
}

.casey-system-status-row {
    margin-top: 0;
}

.casey-system-status-row .casey-side-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.casey-mini-stat {
    padding: 0.7rem;
    border: 1px solid var(--casey-border-soft);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.03);
}

.casey-mini-stat strong {
    display: block;
    color: var(--casey-text);
    font-size: 1.2rem;
}

.casey-mini-stat span,
.casey-mini-stat small {
    color: var(--casey-muted);
}

.casey-case-layout {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 26rem);
}

.casey-case-layout,
.casey-case-main,
.casey-case-side,
.casey-case-layout .casey-workspace {
    min-width: 0;
    max-width: 100%;
}

.casey-case-main .casey-markdown-content {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.casey-case-main .casey-markdown-content > * {
    min-width: 0;
    max-width: 100%;
}

.casey-case-main .casey-markdown-content pre {
    overflow-x: auto;
    white-space: pre;
}

.casey-case-side {
    top: 5rem;
}

/* Keep case details compact while improving the hierarchy and action targets. */
.casey-detail-header h1 {
    font-size: 1.7rem;
    font-weight: 750;
    line-height: 1.15;
}

.casey-detail-header .casey-kicker {
    font-size: 0.86rem;
    line-height: 1.2;
}

.casey-detail-header .casey-pill,
.casey-detail-header .casey-priority {
    min-height: 1.55rem;
    font-size: 0.86rem;
}

.casey-case-layout .casey-workspace {
    padding: 0.75rem 1rem;
}

.casey-case-layout .casey-workspace h2 {
    font-size: 1.14rem;
}

.casey-comment-action-slot {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.4rem;
    margin-left: auto;
}

.casey-comment-edit-form {
    min-width: 0;
}

.casey-comment-heading-toggle {
    padding: 0;
    border: 0;
    border-bottom: 1px dashed currentColor;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: inherit;
    cursor: pointer;
}

.casey-comment-heading-toggle:hover {
    color: var(--casey-blue);
}

.casey-comment-heading-toggle:focus-visible {
    outline: 2px solid var(--casey-teal);
    outline-offset: 3px;
}

.casey-comment-heading-toggle:disabled {
    opacity: 0.65;
    cursor: default;
}

.casey-case-side .casey-definition-list {
    grid-template-columns: 7.5rem minmax(0, 1fr);
    font-size: 1rem;
    line-height: 1.35;
    align-items: end;
}

.casey-case-side .casey-definition-list dt {
    font-size: 0.78rem;
    font-weight: 700;
}

.casey-case-side .casey-definition-list dd {
    font-weight: 700;
}

.casey-form-section {
    padding: 1rem;
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: var(--casey-surface);
}

.casey-form-section + .casey-form-section {
    margin-top: 0.75rem;
}

.casey-form-field label {
    color: var(--casey-muted);
}

.casey-case-metadata-form .casey-form-grid-compact {
    gap: 0.45rem;
}

.casey-case-metadata-form .casey-form-grid-compact > .casey-form-field {
    grid-template-columns: 7.5rem minmax(0, 1fr);
    align-items: center;
    gap: 0.7rem;
}

.casey-case-metadata-form .casey-form-grid-compact > .casey-form-field label {
    line-height: 1.2;
}

.casey-project-task-people-field {
    min-width: 0;
}

.casey-new-case-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(17rem, 21rem);
    gap: 0.9rem;
    align-items: start;
}

.casey-sticky-side {
    position: sticky;
    top: 5rem;
}

.casey-submission-actions {
    display: grid;
    gap: 0.5rem;
    margin-top: 1rem;
}

.casey-submission-actions .btn {
    width: 100%;
}

.casey-intake-section {
    gap: 0.65rem;
}

.casey-form-section.casey-intake-section {
    padding-top: 1rem;
    border-top: 1px solid var(--casey-border);
}

.casey-field-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.15rem;
}

.casey-field-heading h2,
.casey-field-heading label {
    margin: 0;
    color: var(--casey-text);
    font-size: 1rem;
    font-weight: 850;
}

.casey-field-heading span {
    color: var(--casey-muted);
    font-size: 0.82rem;
    font-weight: 700;
    text-align: right;
}

.casey-plain-textarea {
    min-height: 8rem;
    resize: vertical;
}

.casey-intake-helper-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    margin-top: 0.55rem;
}

.casey-intake-helper-grid > div {
    padding: 0.6rem;
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: var(--casey-card-subtle);
}

.casey-intake-helper-grid strong,
.casey-intake-helper-grid span {
    display: block;
}

.casey-intake-helper-grid strong {
    color: var(--casey-text);
    font-size: 0.82rem;
}

.casey-intake-helper-grid span {
    margin-top: 0.15rem;
    color: var(--casey-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.casey-impact-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.55rem;
}

.casey-request-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.casey-request-type-choice {
    min-height: 4.8rem;
    padding: 0.75rem;
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: var(--casey-surface-2);
    color: var(--casey-text);
    text-align: left;
}

.casey-request-type-choice.active {
    border-color: var(--casey-teal);
    background: color-mix(in srgb, var(--casey-teal) 14%, transparent);
}

.casey-request-type-choice strong,
.casey-request-type-choice span {
    display: block;
}

.casey-request-type-choice span {
    margin-top: 0.2rem;
    color: var(--casey-muted);
    font-size: 0.82rem;
    line-height: 1.3;
}

.casey-impact-choice {
    min-height: 4rem;
    padding: 0.7rem;
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: var(--casey-surface-2);
    color: var(--casey-text);
    text-align: left;
}

.casey-impact-choice.active {
    border-color: var(--casey-teal);
    background: color-mix(in srgb, var(--casey-teal) 14%, transparent);
}

.casey-impact-choice strong,
.casey-impact-choice span {
    display: block;
}

.casey-impact-choice span {
    margin-top: 0.2rem;
    color: var(--casey-muted);
    font-size: 0.82rem;
    line-height: 1.3;
}

.casey-markdown-editor {
    position: relative;
    z-index: 0;
    isolation: isolate;
}

.casey-markdown-editor .ProseMirror .placeholder,
.casey-markdown-editor .toastui-editor-contents-placeholder::before {
    background: transparent;
    color: var(--casey-muted);
    font-style: italic;
    opacity: 0.78;
}

.casey-markdown-editor:focus-within .ProseMirror .placeholder,
.casey-markdown-editor:focus-within .toastui-editor-contents-placeholder::before {
    display: none;
}

.casey-new-case-layout .form-control::placeholder {
    color: transparent;
    font-style: italic;
    opacity: 1;
}

.casey-new-case-layout .form-control:not(:focus)::placeholder {
    color: var(--casey-text-secondary);
}

.toastui-editor-popup-add-image .toastui-editor-tabs .tab-item:last-child,
.toastui-editor-popup-add-image #toastuiImageUrlInput,
.toastui-editor-popup-add-image label[for="toastuiImageUrlInput"] {
    display: none;
}

.casey-editor-issue-description .toastui-editor-ww-container,
.casey-editor-issue-description .toastui-editor-md-container,
.casey-editor-issue-description .ProseMirror,
.casey-editor-issue-description .toastui-editor-contents {
    min-height: calc(15 * 1.45em);
}

.casey-editor-actions-taken .toastui-editor-ww-container,
.casey-editor-actions-taken .toastui-editor-md-container,
.casey-editor-actions-taken .ProseMirror,
.casey-editor-actions-taken .toastui-editor-contents,
.casey-editor-evidence .toastui-editor-ww-container,
.casey-editor-evidence .toastui-editor-md-container,
.casey-editor-evidence .ProseMirror,
.casey-editor-evidence .toastui-editor-contents {
    min-height: calc(7 * 1.45em);
}

@media (max-width: 1500px) {
    .casey-dashboard-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 1200px) {
.casey-dashboard-grid,
.casey-dashboard-chart-grid,
.casey-new-case-layout,
.casey-workspace-grid,
.casey-workflow-layout-open,
.casey-organisation-main-grid,
.casey-search-layout {
    grid-template-columns: 1fr;
}

.casey-sticky-side,
.casey-workflow-editor {
    position: static;
}

    .casey-impact-grid,
    .casey-request-type-grid,
    .casey-intake-helper-grid {
        grid-template-columns: 1fr;
    }

    .casey-system-status-row .casey-side-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .casey-page-header,
    .casey-page-hero {
        display: grid;
        align-items: start;
    }

    .casey-donut-wrap,
    .casey-side-grid,
    .casey-case-layout {
        grid-template-columns: 1fr;
    }

    .casey-system-status-row .casey-side-grid {
        grid-template-columns: 1fr;
    }

    .casey-organisation-controls,
    .casey-organisation-filter-row,
    .casey-organisation-members-card .casey-organisation-card-heading {
        display: grid;
        justify-content: stretch;
    }

    .casey-organisation-filter-row .form-select,
    .casey-organisation-controls .btn {
        width: 100%;
    }

    .casey-organisation-add-member,
    .casey-organisation-detail-actions,
    .casey-organisation-detail-stats {
        grid-template-columns: 1fr;
    }

    .casey-organisation-detail-stats > div + div {
        padding-left: 0;
        padding-top: 0.75rem;
        border-left: 0;
        border-top: 1px solid var(--casey-border-soft);
    }
}

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

.casey-panel,
.casey-workspace,
.casey-metrics > div,
.casey-search-result,
.casey-comment,
.casey-admin-panel,
.casey-admin-list,
.casey-admin-action-card,
.casey-admin-summary-card,
.casey-admin-card,
.casey-workflow-editor,
.casey-organisation-card,
.casey-admin-form-grid form,
.casey-admin-three form {
    background: var(--casey-panel-bg);
    border-color: var(--casey-border);
    color: var(--casey-text);
}

.form-check-input,
.casey-table-dense thead th,
.casey-admin-table thead th {
    background: var(--casey-table-head);
    color: var(--casey-muted);
}

.form-check-input {
    border: 2px solid var(--casey-checkbox-border);
    background-color: var(--casey-checkbox-bg);
}

.form-check-input:hover:not(:disabled):not(:checked) {
    border-color: var(--casey-blue);
}

.form-check-input:focus {
    border-color: var(--casey-teal);
    background-color: var(--casey-checkbox-bg);
    box-shadow: none;
}

.form-check-input:checked,
.form-check-input:checked:focus {
    border-color: var(--casey-teal);
    background-color: var(--casey-blue);
    box-shadow: 0 0 0 1px var(--casey-checkbox-checked-outline);
}

.casey-board-column,
.casey-ticket-card,
.casey-file-list li,
.casey-attachment-list li,
.casey-search-result,
.casey-comment,
.casey-admin-chip {
    background: var(--casey-panel-solid);
    border-color: var(--casey-border);
    color: var(--casey-text);
}

.casey-form-section,
.casey-workflow-editor,
.casey-organisation-card,
.casey-admin-form-grid form,
.casey-admin-three form {
    background: var(--casey-panel-solid);
}

.casey-mini-stat {
    background: var(--casey-card-subtle);
}

.casey-donut::after {
    background: var(--casey-panel-solid);
}

.casey-admin-page,
.casey-admin-hero h1,
.casey-admin-panel h2,
.casey-admin-panel h3,
.casey-admin-card h2,
.casey-admin-card h3,
.casey-admin-summary-card strong,
.casey-admin-inline-stats dd,
.casey-admin-settings-list dd,
.casey-admin-mini-list strong,
.casey-admin-table,
.casey-admin-item strong,
.casey-admin-chip {
    color: var(--casey-text);
}

.casey-admin-hero p,
.casey-admin-panel p,
.casey-admin-action-card p,
.casey-admin-card p,
.casey-admin-summary-card small,
.casey-admin-inline-stats dt,
.casey-admin-settings-list dt,
.casey-admin-item header span,
.casey-admin-item p,
.casey-admin-empty-state,
.casey-admin-empty-state strong {
    color: var(--casey-muted);
}

.casey-admin-icon {
    background: color-mix(in srgb, var(--casey-blue) 16%, transparent);
    color: var(--casey-blue);
}

.casey-admin-table td {
    color: var(--casey-text);
}

:root[data-casey-theme="light"] .casey-nav-link,
:root[data-casey-theme="light"] .casey-brand a {
    color: var(--casey-text);
}

:root[data-casey-theme="light"] .casey-nav-link:hover {
    background: var(--casey-surface-3);
    color: var(--casey-text);
}

:root[data-casey-theme="light"] .casey-nav-link.active {
    background: var(--casey-blue);
    color: var(--casey-on-accent);
}

.theme-toggle {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 22px;
    flex: 0 0 auto;
    margin: 0;
    cursor: pointer;
}

.theme-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.theme-slider {
    position: absolute;
    inset: 0;
    border-radius: 22px;
    background: #b0b0b0;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: background 0.25s ease;
}

.theme-slider::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: transform 0.25s ease, background 0.25s ease;
}

.theme-toggle input:focus-visible + .theme-slider {
    outline: var(--casey-focus-ring-width) solid var(--casey-focus);
    outline-offset: var(--casey-focus-ring-offset);
    box-shadow: none;
}

.theme-toggle input:checked + .theme-slider {
    background: #3a3a3a;
}

.theme-toggle input:checked + .theme-slider::after {
    transform: translateX(18px);
    background: #d4d4d4;
}

.casey-tabs {
    border-color: var(--casey-border);
    background: var(--casey-surface-2);
}

.casey-tabs button,
.casey-tab-link {
    color: var(--casey-text-secondary);
}

.casey-tabs button:disabled {
    color: var(--casey-muted);
    opacity: 0.7;
}

.casey-tabs button.active,
.casey-tab-link.active {
    border-color: var(--casey-teal);
    background: color-mix(in srgb, var(--casey-teal) 14%, transparent);
    color: var(--casey-text);
}

:root[data-casey-theme="light"] .casey-tabs button.active,
:root[data-casey-theme="light"] .casey-tab-link.active {
    background: color-mix(in srgb, var(--casey-teal) 10%, transparent);
}
.casey-attachment-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(18rem, 100%), 1fr));
    gap: 0.5rem;
    margin: 0.5rem 0 0;
    padding: 0;
    list-style: none;
}

.casey-attachment-card {
    display: grid;
    min-width: 0;
    border: 1px solid var(--casey-border);
    border-radius: 8px;
    background: var(--casey-surface-2);
    transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}

.casey-attachment-card:has(.casey-attachment-open:hover) {
    border-color: color-mix(in srgb, var(--casey-blue) 45%, var(--casey-border));
    background: color-mix(in srgb, var(--casey-blue) 4%, var(--casey-surface-2));
    box-shadow: 0 1px 3px color-mix(in srgb, var(--casey-text) 8%, transparent);
}

.casey-attachment-open {
    display: grid;
    width: 100%;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.65rem;
    align-items: center;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border: 0;
    border-radius: inherit;
    background: transparent;
    color: inherit;
    text-align: left;
    text-decoration: none;
}

button.casey-attachment-open {
    cursor: pointer;
}

.casey-attachment-open:focus-visible {
    outline: 3px solid var(--casey-focus, var(--casey-teal));
    outline-offset: 2px;
}

.casey-attachment-thumbnail {
    display: grid;
    width: 2.75rem;
    height: 2.25rem;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: color-mix(in srgb, var(--casey-blue) 10%, var(--casey-surface));
    color: var(--casey-blue);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.casey-attachment-copy {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.casey-attachment-name {
    overflow: hidden;
    color: var(--casey-muted);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.casey-attachment-meta {
    color: var(--casey-muted);
    font-size: 0.8125rem;
    line-height: 1.15;
}

.casey-attachment-actions,
.casey-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.casey-preview-actions .btn {
    display: inline-flex;
    width: 6rem;
    height: 2.3rem;
    align-items: center;
    justify-content: center;
    padding: 0 0.7rem;
    line-height: 1;
    text-align: center;
}

.casey-preview-backdrop {
    position: fixed;
    z-index: 1100;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(0, 0, 0, 0.72);
}

.casey-preview-dialog {
    display: grid;
    width: min(100%, 70rem);
    min-width: 0;
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem);
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--casey-border);
    border-radius: 12px;
    background: var(--casey-surface);
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.35);
}

.casey-preview-dialog header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--casey-border);
}

.casey-preview-dialog header p {
    margin: 0;
    color: var(--casey-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
}

.casey-preview-dialog header > div:first-child {
    min-width: 0;
}

.casey-preview-actions {
    flex-shrink: 0;
}

.casey-preview-dialog h2 {
    margin: 0.15rem 0 0;
    font-size: 1rem;
    overflow-wrap: anywhere;
}

.casey-preview-content {
    display: grid;
    min-width: 0;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    overflow: auto;
    padding: 0.75rem;
    place-items: center;
    background: var(--casey-surface-2);
}

.casey-preview-content iframe {
    width: 100%;
    height: min(70vh, 50rem);
    border: 0;
    border-radius: 6px;
}

.casey-preview-image-shell {
    position: relative;
    display: grid;
    width: 100%;
    height: min(70vh, 50rem);
    min-height: 0;
}

.casey-preview-image-viewport {
    display: grid;
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    place-items: center;
    border-radius: 6px;
    outline: 0;
}

.casey-preview-image-viewport[aria-disabled="true"] {
    cursor: default;
    opacity: 1;
}

.casey-preview-image-viewport.can-zoom {
    cursor: zoom-in;
}

.casey-preview-image-viewport img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: scale-down;
    user-select: none;
}

.casey-preview-image-viewport.is-zoomed {
    display: block;
    overflow: auto;
    place-items: start;
    overscroll-behavior: contain;
    cursor: grab;
    touch-action: none;
}

.casey-preview-image-viewport.is-zoomed img {
    position: static;
    width: auto;
    height: auto;
    max-width: none;
    max-height: none;
    object-fit: initial;
    cursor: grab;
}

.casey-preview-image-viewport.is-dragging,
.casey-preview-image-viewport.is-dragging img {
    cursor: grabbing;
}

.casey-preview-zoom-hint {
    position: absolute;
    right: 50%;
    bottom: 0.85rem;
    z-index: 2;
    margin: 0;
    padding: 0.4rem 0.65rem;
    transform: translateX(50%);
    border-radius: 999px;
    background: rgba(7, 17, 31, 0.78);
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.2);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    pointer-events: none;
    white-space: nowrap;
}

.casey-preview-image-viewport:focus-visible + .casey-preview-zoom-hint:not([hidden]) {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 0.25rem 0.75rem rgba(0, 0, 0, 0.2);
}

.casey-preview-content iframe {
    background: #fff;
}

.casey-preview-content .casey-preview-text {
    width: 100%;
    height: min(70vh, 50rem);
    min-width: 0;
    min-height: 0;
    max-height: 100%;
    margin: 0;
    padding: 1rem;
    overflow: auto;
    overscroll-behavior: contain;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.casey-button-icon {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    vertical-align: -0.125em;
    background-color: currentColor;
    -webkit-mask: var(--casey-button-icon-image) center / contain no-repeat;
    mask: var(--casey-button-icon-image) center / contain no-repeat;
    transform: scale(1.25);
}

.casey-button-icon-edit {
    --casey-button-icon-image: url("/icons/edit_alt.svg");
}

.casey-button-icon-labeled {
    margin-inline-end: 0.35rem;
}

.casey-button-icon-edit.casey-button-icon-labeled {
    width: 0.75rem;
    height: 0.75rem;
    margin-inline-end: 0.25rem;
    transform: none;
}

.casey-button-with-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.casey-button-with-icon .casey-catalogue-icon {
    width: 1.1rem;
    height: 1.1rem;
    vertical-align: middle;
}

.btn.casey-button-icon-only {
    display: inline-grid;
    width: var(--casey-button-tall-height);
    min-width: var(--casey-button-tall-height);
    height: var(--casey-button-tall-height);
    min-height: var(--casey-button-tall-height);
    padding: 0;
    place-items: center;
}

.casey-button-icon-only .casey-catalogue-icon {
    width: 1rem;
    height: 1rem;
}

.casey-button-icon-close {
    --casey-button-icon-image: url("/icons/fontawesome/regular/xmark.svg");
}

@media (max-width: 36rem) {
    .casey-attachment-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .casey-preview-dialog header {
        align-items: flex-start;
        flex-direction: column;
    }
}

.casey-attachment-actions {
    padding: 0 0.65rem 0.55rem 4.05rem;
}

}

/* Keyboard focus follows the prototype's concise, high-contrast outline. */
:where(button, [href], input, select, textarea, summary, [contenteditable="true"], [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: var(--casey-focus-ring-width) solid var(--casey-focus) !important;
    outline-offset: var(--casey-focus-ring-offset) !important;
    box-shadow: none !important;
}

:where(input, select, textarea, [contenteditable="true"], .form-control, .form-select, .form-check-input):focus:not(:focus-visible) {
    outline: 0 !important;
    box-shadow: none !important;
}

/* Native select popups can pause shadow transitions while open; show focus immediately. */
:where(select, .form-select):focus {
    transition-property: border-color, background-color, color !important;
}

.casey-toggle-input:focus-visible + .casey-toggle-slider,
.theme-toggle input:focus-visible + .theme-slider {
    outline: var(--casey-focus-ring-width) solid var(--casey-focus) !important;
    outline-offset: var(--casey-focus-ring-offset) !important;
    box-shadow: none !important;
}
/* Shared directory contract: two-pane directories collapse only below 900px. */
@media (max-width: 899.98px) {
    .casey-responsive-split {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .casey-responsive-split > .casey-filter-pane {
        border-right: 0 !important;
        border-bottom: 1px solid var(--casey-border);
    }
}
