/* =========================================================
   AE Portal - Clean CSS
   Bereinigt: doppelte Alt-Blöcke entfernt, finale Regeln zusammengeführt.
   ========================================================= */

:root {
    --bg: #1a1a1a;
    --panel: #242424;
    --panel-dark: #1b1b1b;
    --panel-darker: #1f1f1f;
    --border: #333333;
    --border-soft: #404040;
    --text: #e0e0e0;
    --text-soft: #999999;
    --text-muted: #666666;
    --blue: #4A9EFF;
    --blue-dark: #005EA1;
    --green: #16A34A;
    --red: #E74C3C;
    --red-dark: #7f1d1d;
    --font-ae-mono: "TeX Gyre Cursor", "Courier New", ui-monospace, monospace;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background-color: var(--bg);
    color: var(--text);
    line-height: 1.6;
}

a {
    color: var(--blue);
    text-decoration: none;
    font-weight: 500;
}

a:hover {
    color: #6BB3FF;
    text-decoration: underline;
}

h1 {
    font-size: 28px;
    font-weight: 700;
}

.container {
    max-width: 1500px;
    margin: 0 auto;
    padding: 30px 20px;
}

/* =========================================================
   Header / Navigation
   ========================================================= */

.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 20px;
}

.header-logo {
    height: 40px;
}

.header h1 {
    color: #ffffff;
    margin: 0;
}

.overview-title {
    flex: 1;
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 1px;
}

.project-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 20px;
}

.project-page-title-block {
    min-width: 0;
}

.project-page-title {
    text-align: left;
    margin: 0;
    font-size: 28px;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.project-page-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.subtitle {
    color: var(--text-soft);
    font-size: 14px;
    margin-top: 5px;
}

.project-customer-link {
    color: var(--blue);
    text-decoration: none;
    font-weight: 600;
}

.project-customer-link:hover {
    text-decoration: underline;
}

.back-to-overview,
.edit-project-btn {
    display: inline-block;
    padding: 8px 16px;
    background-color: #2a2a2a;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    font-size: 13px;
    color: var(--blue);
    cursor: pointer;
    transition: all 0.2s;
}

.back-to-overview:hover,
.edit-project-btn:hover {
    background-color: #333333;
    border-color: var(--blue);
}

.back-link {
    text-align: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
}

/* =========================================================
   Buttons / Forms
   ========================================================= */

button[type="submit"],
.form-group button,
.new-project-btn {
    background-color: var(--blue-dark);
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
    transition: background-color 0.2s;
}

button[type="submit"] {
    padding: 8px 16px;
    font-size: 12px;
    width: 100%;
}

button[type="submit"]:hover,
.form-group button:hover,
.new-project-btn:hover {
    background-color: #004080;
}

.new-project-btn {
    padding: 10px 20px;
    font-size: 14px;
}

.form-group {
    margin: 15px 0;
}

.form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
    color: #ffffff;
    font-size: 12px;
}

.form-group input[type="text"],
.form-group input[type="file"],
.form-group select,
.form-group textarea,
textarea,
input[type="file"] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background-color: #2a2a2a;
    color: var(--text);
    font-family: inherit;
    font-size: 13px;
}

textarea {
    min-height: 50px;
    resize: vertical;
    font-family: monospace;
    font-size: 12px;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
textarea:focus {
    outline: none;
    border-color: var(--blue);
    box-shadow: 0 0 0 2px rgba(74, 158, 255, 0.1);
}

input[type="file"]::file-selector-button {
    background-color: #333333;
    color: var(--text);
    border: none;
    padding: 6px 12px;
    border-radius: 3px;
    cursor: pointer;
    margin-right: 10px;
}

input[type="file"]::file-selector-button:hover {
    background-color: var(--border-soft);
}

/* =========================================================
   Allgemeine Sektionen
   ========================================================= */

.section {
    background-color: var(--panel);
    border: 1px solid var(--border);
    border-radius: 4px;
    margin: 20px 0;
    padding: 16px 20px;
}

.section h2 {
    color: #ffffff;
    margin-bottom: 14px;
    font-size: 18px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.empty-state {
    text-align: center;
    padding: 40px 20px;
    color: var(--text-muted);
}

.empty-state p {
    font-size: 14px;
    margin-bottom: 20px;
}

#new-project-form {
    background-color: var(--panel);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 20px;
    margin-bottom: 20px;
}

.overview-filter-bar {
    display: grid;
    grid-template-columns: minmax(160px, 1fr) minmax(150px, 1fr) minmax(220px, 1.4fr) auto auto;
    gap: 8px;
    align-items: center;
    margin: 0 0 14px;
    padding: 10px;
    background-color: var(--panel);
    border: 1px solid var(--border);
    border-radius: 4px;
}

.overview-filter-bar select,
.overview-filter-bar input {
    width: 100%;
    height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background-color: #2a2a2a;
    color: var(--text);
    font-family: inherit;
    font-size: 12px;
}

.overview-filter-bar button,
.filter-reset-link {
    height: 34px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.overview-filter-bar button {
    background-color: var(--blue);
    color: white;
    cursor: pointer;
}

.filter-reset-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #333333;
    color: var(--text-soft);
    text-decoration: none;
}

.filter-reset-link:hover {
    color: #ffffff;
    border-color: var(--blue);
}

.new-project-hint {
    margin-top: 6px;
    color: #888888;
    font-size: 12px;
    line-height: 1.35;
}

/* =========================================================
   Projektübersicht / Karten
   ========================================================= */

.project-card {
    position: relative;
    overflow: hidden;
    height: 145px;
    min-height: 0;
    padding: 16px 22px;
    margin-bottom: 12px;
    border: 1px solid #343434;
    border-radius: 12px;
    background: var(--panel-dark);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.project-card:hover {
    border-color: var(--blue);
    box-shadow: 0 2px 8px rgba(74, 158, 255, 0.1);
}

.project-card-bg {
    position: absolute;
    top: -38px;
    right: -60px;
    width: 46%;
    height: 210%;
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform: rotate(-8deg) scale(1.12);
    transform-origin: center;
    filter: saturate(1.05) contrast(1.03);
    transition: opacity 0.22s ease;
}

.project-card-bg.is-loaded {
    opacity: 0.68;
}

.project-card-gradient {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(28, 28, 28, 1) 0%,
        rgba(28, 28, 28, 0.98) 42%,
        rgba(28, 28, 28, 0.82) 62%,
        rgba(28, 28, 28, 0.42) 100%
    );
}

.project-card-preview-empty {
    position: absolute;
    top: 50%;
    right: 7%;
    z-index: 1;
    width: 31%;
    transform: translateY(-50%);
    color: var(--deck-dim, #7e897f);
    font: 10px/1.35 var(--font-ae-mono);
    text-align: center;
}

.project-card-bg.is-loaded + .project-card-preview-empty { display: none; }

.project-info,
.project-card-side {
    position: relative;
    z-index: 2;
}

.project-info {
    flex-grow: 1;
    max-width: 56%;
}

.project-card-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 7px;
    min-width: 190px;
    text-align: right;
}

.project-name {
    font-size: 20px;
    line-height: 1.15;
    margin-bottom: 8px;
    font-weight: 600;
    color: #ffffff;
}

.project-meta,
.project-last-modified {
    font-size: 13px;
    line-height: 1.25;
    margin-bottom: 4px;
}

.project-meta {
    color: var(--text-soft);
}

.project-last-modified {
    color: var(--text-muted);
}

.project-status-inline {
    position: relative;
    z-index: 3;
    display: inline-block;
    padding: 8px 13px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 13px;
    color: white;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(0,0,0,0.25);
}

.project-pdf-info {
    min-width: 78px;
    padding: 7px 9px;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.34);
    backdrop-filter: blur(2px);
    box-shadow: 0 3px 10px rgba(0,0,0,0.22);
    font-size: 11px;
    text-align: right;
}

.project-version-badge {
    font-size: 18px;
    line-height: 1;
    font-weight: 800;
    color: #f1f1f1;
    text-shadow: 0 1px 2px rgba(0,0,0,0.6);
}

.project-pdf-date {
    margin-top: 4px;
    font-size: 9px;
    line-height: 1.2;
    color: #dddddd;
    text-shadow: 0 1px 2px rgba(0,0,0,0.6);
}

.project-card.completed {
    height: 132px;
    background-color: #1d1d1d;
    border-color: #2a2a2a;
    opacity: 0.7;
}

.project-card.completed .project-name,
.project-card.completed .project-meta,
.project-card.completed .project-last-modified {
    color: var(--text-soft);
}

.project-card.completed .project-card-bg {
    opacity: 0.18;
}

.project-card.completed .project-card-gradient {
    background: linear-gradient(
        90deg,
        rgba(22, 22, 22, 1) 0%,
        rgba(22, 22, 22, 0.98) 45%,
        rgba(22, 22, 22, 0.82) 100%
    );
}

.admin-actions-inline button {
    width: auto;
}

/* Alte Klassen bleiben harmlos, falls sie irgendwo noch gesetzt werden. */
.project-card.light-art .project-version-badge,
.project-card.dark-art .project-version-badge,
.project-card.light-art .project-pdf-date,
.project-card.dark-art .project-pdf-date {
    color: inherit;
}

/* =========================================================
   Projektseite Top-Bereich
   ========================================================= */

.project-top-section {
    padding: 14px;
    margin-bottom: 18px;
}

.project-top-grid {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 16px;
    align-items: start;
}

.project-panel,
#pdf-preview {
    background: var(--panel-dark);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 14px;
    min-height: unset;
    height: auto;
}

.project-panel h3 {
    margin: 0 0 10px 0;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #dddddd;
}

.project-status-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.project-status-head h3 {
    margin: 0;
}

.status-badge,
.compact-status-badge {
    display: inline-block;
    color: white;
    font-weight: 700;
}

.status-badge {
    margin: 12px 0 0 0;
    padding: 6px 12px;
    border-radius: 3px;
    font-size: 13px;
}

.compact-status-badge {
    font-size: 11px;
    padding: 6px 12px;
    border-radius: 999px;
    line-height: 1;
}

.status-control-line,
.due-date-line,
.status-upload-line {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 10px;
    align-items: center;
}

.status-control-line,
.due-date-line {
    margin-bottom: 10px;
}

.status-upload-line {
    margin-top: 12px;
}

.status-control-line label,
.due-date-line label,
.status-upload-line label {
    font-size: 12px;
    color: #aaaaaa;
    margin: 0;
}

.status-dropdown-form {
    display: inline-block;
    margin: 0;
}

.status-dropdown-form select {
    width: 100%;
    min-width: 0;
    height: 38px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 4px;
    border: 1px solid var(--border-soft);
    background-color: #2a2a2a;
    color: var(--text);
}

.due-date-line input[type="date"] {
    width: 100%;
    max-width: 170px;
    height: 34px;
    font-size: 13px;
}

.inline-upload-form {
    display: block;
    margin: 0;
}

.inline-upload-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.inline-upload-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.inline-upload-form input[type="file"] {
    flex: 1;
    min-width: 0;
    font-size: 11px;
}

.inline-upload-form button {
    width: auto;
    min-width: 90px;
    padding: 8px 12px;
    font-size: 12px;
}

.customer-notify-option {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.35;
    cursor: pointer;
}

.customer-notify-option input {
    margin: 0;
}

.customer-notify-hint,
.customer-action-hint {
    color: #888888;
    font-size: 11px;
    line-height: 1.35;
}

.customer-link-box {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.customer-link-title {
    margin-bottom: 6px;
    color: #aaaaaa;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.customer-link-title-secondary {
    margin-top: 10px;
}

.customer-link-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.customer-link-row input {
    flex: 1;
    min-width: 0;
    height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background-color: #252525;
    color: var(--text-soft);
    font-size: 11px;
}

.customer-link-row button {
    width: auto;
    min-width: 105px;
    padding: 8px 12px;
    font-size: 12px;
}

.internal-notes-section {
    padding: 12px 14px;
    margin-bottom: 16px;
}

.internal-notes-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.internal-notes-header h2 {
    margin: 0;
    font-size: 15px;
}

.internal-notes-header span {
    color: var(--text-muted);
    font-size: 11px;
}

.internal-notes-form {
    display: grid;
    gap: 8px;
}

.internal-notes-form textarea {
    min-height: 74px;
    resize: vertical;
    font-size: 12px;
}

.internal-notes-form button {
    justify-self: start;
    width: auto;
    padding: 7px 12px;
    font-size: 12px;
}

.compact-upload-box {
    display: none;
}

#pdf-preview-content {
    min-height: 0;
}

#pdf-preview-content img {
    max-height: 200px;
    max-width: 220px;
    object-fit: contain;
}

#pdf-preview a {
    font-size: 12px;
}

.pdf-version-section {
    padding: 12px 14px;
    margin-bottom: 16px;
}

.pdf-version-header h2 {
    margin: 0 0 10px;
    font-size: 15px;
}

.pdf-version-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pdf-version-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 7px 8px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background-color: var(--panel-dark);
}

.pdf-version-main {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 12px;
}

.pdf-version-badge,
.pdf-current-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.pdf-version-badge {
    background-color: #2a2a2a;
    color: #ffffff;
}

button.pdf-version-badge,
button.pdf-version-name,
button.current-version-name {
    border: 0;
    font: inherit;
    text-align: inherit;
}

button.pdf-version-preview,
button.current-version-name {
    cursor: zoom-in;
}

button.pdf-version-name,
button.current-version-name {
    padding: 0;
    background: transparent;
}

.pdf-current-badge {
    background-color: var(--blue);
    color: #ffffff;
}

.pdf-version-date {
    color: var(--text-muted);
    white-space: nowrap;
    font-size: 11px;
}

.pdf-version-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-soft);
}

.pdf-version-actions {
    display: flex;
    gap: 6px;
}

.pdf-version-actions a,
.pdf-version-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 70px;
    height: 28px;
    padding: 0 9px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background-color: #2a2a2a;
    color: var(--blue);
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.pdf-version-actions a:hover,
.pdf-version-actions button:hover {
    border-color: var(--blue);
    background-color: #333333;
}

.pdf-version-empty {
    color: var(--text-muted);
    font-size: 12px;
    padding: 6px 0;
}

/* =========================================================
   Kundenaktionen / Freigabe
   ========================================================= */

.customer-action-panel {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 12px 0 14px 0;
}

.customer-action-btn,
.approval-now-btn,
.approval-cancel-btn {
    border: none;
    border-radius: 7px;
    padding: 9px 13px;
    font-size: 13px;
    font-weight: 700;
    color: white;
    cursor: pointer;
    box-shadow: 0 3px 8px rgba(0,0,0,0.22);
}

.customer-action-btn:hover,
.approval-now-btn:hover,
.revoke-approval-btn:hover {
    filter: brightness(1.08);
}

.change-request-btn {
    background: var(--red);
}

.approval-btn,
.approval-now-btn {
    background: var(--green);
}

.approval-btn:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.approval-countdown-box {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #365f3d;
    border-radius: 8px;
    background: rgba(22, 101, 52, 0.16);
    color: #d8f3dc;
    font-size: 13px;
}

.approval-countdown-box strong {
    font-size: 16px;
    color: #ffffff;
}

.approval-countdown-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.approval-cancel-btn {
    background: #444444;
}

.approval-cancel-btn:hover {
    background: #555555;
}

.revoke-approval-box {
    margin-top: 10px;
}

.revoke-approval-btn {
    background: var(--red-dark);
}

.customer-duplicate-box {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.customer-duplicate-hint {
    margin-bottom: 10px;
    color: var(--text-soft);
    font-size: 12px;
    line-height: 1.4;
}

.customer-duplicate-toggle {
    width: auto;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: #2a2a2a;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.customer-duplicate-toggle:hover {
    border-color: var(--blue);
    background: #333333;
}

.customer-duplicate-form {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}

.customer-duplicate-form label {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 700;
}

.customer-duplicate-form input,
.customer-duplicate-form textarea {
    font-size: 12px;
}

.customer-duplicate-form textarea {
    min-height: 74px;
    resize: vertical;
}

.customer-duplicate-form button[type="submit"] {
    justify-self: start;
    width: auto;
    padding: 8px 12px;
    font-size: 12px;
}

.customer-duplicate-confirmation {
    margin-bottom: 10px;
    padding: 9px 10px;
    border: 1px solid rgba(22, 163, 74, 0.45);
    border-radius: 6px;
    background: rgba(22, 163, 74, 0.14);
    color: #d8f3dc;
    font-size: 12px;
}

.customer-duplicate-confirmation a {
    display: inline-block;
    margin-left: 8px;
    color: #ffffff;
    font-weight: 800;
    text-decoration: none;
}

.customer-duplicate-confirmation a:hover {
    text-decoration: underline;
}

/* =========================================================
   Projektverlauf / Chat
   ========================================================= */

.input-section {
    display: block;
    gap: 14px;
    margin-bottom: 20px;
}

.input-section .form-group {
    margin: 0;
}

.input-section textarea {
    min-height: 48px;
}

.input-section input[type="text"] {
    height: 36px;
}

.input-section button {
    width: auto;
    min-width: 150px;
    padding: 8px 16px;
    margin-top: 8px;
}

.chat-container {
    background-color: var(--panel-darker);
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 8px;
    margin: 12px 0 18px;
    max-height: 600px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.chat-message {
    padding: 6px 8px;
    margin-bottom: 0;
    background-color: var(--panel);
    border: 1px solid var(--border);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    font-size: 11px;
    line-height: 1.35;
}

.chat-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 3px;
    font-size: 10px;
    flex-wrap: wrap;
    gap: 6px;
    line-height: 1.2;
}

.chat-author {
    font-weight: 600;
    color: var(--blue);
}

.chat-date {
    color: var(--text-muted);
}

.chat-content {
    color: var(--text);
    margin-top: 2px;
    word-wrap: break-word;
}

.chat-system {
    background-color: rgba(42, 42, 42, 0.55);
    color: var(--text-soft);
    font-style: italic;
    border-color: #303030;
    padding: 5px 8px;
}

.chat-file {
    background-color: #2a2a2a;
    border-left: 2px solid var(--blue);
    padding: 5px 7px;
    margin-top: 5px;
    border-radius: 2px;
    font-size: 10px;
}

.chat-file-icon {
    font-size: 12px;
    margin-right: 5px;
    line-height: 1;
}

.chat-file-info {
    flex-grow: 1;
}

.chat-file-name {
    font-weight: 600;
    color: var(--blue);
    font-size: 10px;
    line-height: 1.2;
}

.chat-file-meta {
    font-size: 9px;
    color: var(--text-muted);
    margin-top: 1px;
}

/* =========================================================
   Alte/optionale Projektaktionen
   ========================================================= */

.project-actions {
    display: flex;
    gap: 10px;
    margin-left: 20px;
}

.project-actions button {
    padding: 6px 12px;
    background-color: #333333;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    font-size: 12px;
    color: var(--text);
    cursor: pointer;
    transition: all 0.2s;
}

.project-actions button:hover {
    background-color: #3a3a3a;
    border-color: var(--text-muted);
}

.project-actions input[type="text"] {
    padding: 6px 12px;
    border: 1px solid var(--blue);
    border-radius: 4px;
    font-size: 13px;
    width: 200px;
    background-color: #2a2a2a;
    color: var(--text);
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 900px) {
    .overview-filter-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        padding: 8px;
        margin-bottom: 10px;
    }

    .overview-filter-bar input {
        grid-column: 1 / -1;
    }

    .project-top-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .status-control-line,
    .due-date-line,
    .status-upload-line {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .inline-upload-row,
    .customer-link-row {
        flex-direction: column;
        align-items: stretch;
    }

    .inline-upload-form button,
    .customer-link-row button {
        width: 100%;
    }

    .pdf-version-row {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .pdf-version-main {
        flex-wrap: wrap;
    }

    .pdf-version-name {
        flex-basis: 100%;
        white-space: normal;
    }

    .pdf-version-actions {
        width: 100%;
    }

    .pdf-version-actions a {
        flex: 1;
    }
}

@media (max-width: 800px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    body {
        line-height: 1.45;
    }

    h1 {
        font-size: 22px;
        line-height: 1.15;
    }

    .container {
        width: 100%;
        padding: 12px 10px 18px;
    }

    .header {
        display: flex;
        flex-wrap: nowrap;
        gap: 7px;
        align-items: center;
        margin-bottom: 10px;
    }

    .header-left {
        gap: 8px;
        min-width: 0;
    }

    .header-logo {
        height: 22px;
        width: auto;
    }

    .overview-title {
        min-width: 0;
        font-size: 15px;
        line-height: 1.1;
        letter-spacing: 0.2px;
        text-align: left;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .new-project-btn,
    .auth-button,
    .back-to-overview,
    .edit-project-btn {
        min-height: 32px;
        padding: 6px 9px;
        font-size: 11px;
        line-height: 1.1;
        border-radius: 5px;
    }

    .auth-button {
        margin-left: 0;
    }

    .overview-filter-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
        padding: 7px;
        margin-bottom: 9px;
    }

    .overview-filter-bar select,
    .overview-filter-bar input,
    .overview-filter-bar button,
    .filter-reset-link {
        height: 31px;
        min-width: 0;
        padding: 5px 7px;
        font-size: 11px;
        line-height: 1.1;
    }

    .overview-filter-bar input {
        grid-column: 1 / -1;
    }

    #new-project-form {
        padding: 10px;
        margin-bottom: 10px;
    }

    .form-group {
        margin: 9px 0;
    }

    .form-group label {
        margin-bottom: 5px;
        font-size: 11px;
    }

    .form-group input[type="text"],
    .form-group input[type="file"],
    .form-group select,
    .form-group textarea,
    textarea,
    input[type="file"] {
        padding: 7px 9px;
        font-size: 12px;
    }

    .section {
        margin: 10px 0;
        padding: 10px;
        border-radius: 5px;
    }

    .section h2 {
        margin-bottom: 9px;
        font-size: 13px;
        letter-spacing: 0.25px;
    }

    .project-card,
    .project-card.completed {
        height: 110px;
        min-height: 110px;
        padding: 10px 10px;
        margin-bottom: 8px;
        border-radius: 8px;
        align-items: center;
        flex-direction: row;
        gap: 8px;
    }

    .project-card-bg,
    .project-card-gradient {
        display: block;
    }

    .project-card-bg {
        top: -22px;
        right: -56px;
        width: 54%;
        height: 165%;
        transform: rotate(-8deg) scale(1.02);
    }

    .project-card-bg.is-loaded {
        opacity: 0.42;
    }

    .project-card-gradient {
        background: linear-gradient(90deg, rgba(28,28,28,1) 0%, rgba(28,28,28,0.96) 50%, rgba(28,28,28,0.72) 76%, rgba(28,28,28,0.42) 100%);
    }

    .project-info {
        flex: 1 1 auto;
        max-width: calc(100% - 88px);
        min-width: 0;
    }

    .project-name {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        margin-bottom: 5px;
        font-size: 15px;
        line-height: 1.12;
    }

    .project-meta,
    .project-last-modified {
        margin-bottom: 2px;
        font-size: 10.5px;
        line-height: 1.16;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .project-card-side {
        flex: 0 0 82px;
        min-width: 82px;
        width: 82px;
        align-items: flex-end;
        justify-content: center;
        gap: 5px;
        text-align: right;
    }

    .project-status-inline {
        max-width: 82px;
        padding: 5px 6px;
        border-radius: 5px;
        font-size: 10px;
        line-height: 1.1;
        white-space: normal;
        text-align: center;
        box-shadow: 0 2px 7px rgba(0,0,0,0.24);
    }

    .project-pdf-info {
        min-width: 58px;
        padding: 5px 6px;
        border-radius: 6px;
        text-align: right;
    }

    .project-version-badge {
        font-size: 14px;
    }

    .project-pdf-date {
        margin-top: 2px;
        font-size: 8px;
        line-height: 1.1;
    }

    .project-page-header {
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 10px;
    }

    .project-page-title {
        font-size: 21px;
        line-height: 1.12;
    }

    .subtitle {
        margin-top: 3px;
        font-size: 12px;
        line-height: 1.25;
    }

    .project-page-actions {
        flex: 0 0 auto;
        gap: 5px;
        max-width: none;
    }

    .project-top-section {
        padding: 8px;
        margin-bottom: 10px;
    }

    .project-top-grid {
        gap: 8px;
    }

    .project-panel,
    #pdf-preview {
        padding: 9px;
        border-radius: 5px;
    }

    .project-panel h3 {
        margin-bottom: 6px;
        font-size: 11px;
    }

    .project-status-head {
        gap: 8px;
        margin-bottom: 9px;
    }

    .compact-status-badge {
        padding: 5px 9px;
        font-size: 10px;
    }

    .status-control-line,
    .due-date-line,
    .status-upload-line {
        gap: 4px;
        margin-bottom: 7px;
    }

    .status-upload-line {
        margin-top: 8px;
    }

    .status-control-line label,
    .due-date-line label,
    .status-upload-line label,
    .customer-link-title {
        font-size: 10px;
        line-height: 1.15;
    }

    .status-dropdown-form select,
    .due-date-line input[type="date"],
    .customer-link-row input {
        height: 32px;
        padding: 6px 8px;
        font-size: 12px;
    }

    .inline-upload-content {
        gap: 5px;
    }

    .inline-upload-row {
        flex-direction: row;
        align-items: center;
        gap: 6px;
    }

    .inline-upload-form input[type="file"] {
        min-width: 0;
        height: 32px;
        padding: 5px 7px;
    }

    .inline-upload-form button {
        flex: 0 0 68px;
        width: 68px;
        min-width: 68px;
    }

    .customer-link-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 82px;
        gap: 6px;
        align-items: center;
    }

    .customer-link-row button {
        width: 82px;
        min-width: 82px;
        padding-left: 6px;
        padding-right: 6px;
    }

    .inline-upload-form button,
    .customer-link-row button,
    .internal-notes-form button,
    .customer-duplicate-form button[type="submit"] {
        min-height: 32px;
        padding: 6px 9px;
        font-size: 11px;
    }

    .customer-notify-option,
    .customer-notify-hint,
    .customer-action-hint,
    .customer-duplicate-hint {
        font-size: 10.5px;
        line-height: 1.25;
    }

    .customer-link-box,
    .customer-duplicate-box {
        margin-top: 8px;
        padding-top: 8px;
    }

    .customer-action-panel {
        gap: 6px;
        margin: 8px 0 10px;
    }

    .customer-action-btn,
    .approval-now-btn,
    .approval-cancel-btn,
    .customer-duplicate-toggle {
        min-height: 34px;
        padding: 7px 9px;
        border-radius: 6px;
        font-size: 11px;
        line-height: 1.15;
        box-shadow: none;
    }

    .approval-countdown-box,
    .customer-duplicate-confirmation {
        margin-top: 8px;
        padding: 8px 9px;
        border-radius: 6px;
        font-size: 11px;
        line-height: 1.25;
    }

    #pdf-preview {
        padding: 7px;
    }

    #pdf-preview > div:first-child {
        margin-bottom: 5px !important;
        font-size: 10px !important;
    }

    #pdf-preview-content img {
        max-height: 95px !important;
        max-width: 128px !important;
        margin-bottom: 5px !important;
    }

    #pdf-preview-content > div {
        margin-bottom: 4px !important;
    }

    #pdf-preview-content a {
        margin-bottom: 4px !important;
        font-size: 10.5px !important;
    }

    #pdf-preview-content div {
        font-size: 9px !important;
        margin-bottom: 3px !important;
    }

    .internal-notes-section,
    .pdf-version-section {
        padding: 8px 9px;
        margin-bottom: 9px;
    }

    .internal-notes-header {
        gap: 7px;
        margin-bottom: 6px;
    }

    .internal-notes-header h2,
    .pdf-version-header h2 {
        font-size: 13px;
    }

    .internal-notes-header span {
        font-size: 10px;
    }

    .internal-notes-form textarea {
        min-height: 52px;
        font-size: 11px;
    }

    .pdf-version-row {
        padding: 6px;
        gap: 6px;
    }

    .pdf-version-list {
        gap: 5px;
    }

    .pdf-version-main {
        gap: 5px;
        font-size: 11px;
    }

    .pdf-version-badge,
    .pdf-current-badge {
        height: 20px;
        padding: 0 7px;
        font-size: 10px;
    }

    .pdf-version-date {
        font-size: 10px;
    }

    .pdf-version-actions a {
        height: 28px;
        min-width: 0;
        font-size: 10px;
    }

    .input-section {
        margin-bottom: 9px;
    }

    .input-section textarea,
    .input-section textarea[style] {
        min-height: 54px !important;
    }

    .input-section input[type="text"] {
        height: 32px;
    }

    .input-section button {
        min-height: 32px;
        min-width: 0;
        padding: 6px 10px;
        margin-top: 6px;
        font-size: 11px;
    }

    .chat-container {
        max-height: 360px;
        padding: 6px;
        margin: 8px 0 12px;
        gap: 5px;
    }

    .chat-message {
        padding: 5px 6px;
        font-size: 10.5px;
        line-height: 1.25;
    }

    .chat-header {
        margin-bottom: 2px;
        gap: 4px;
        font-size: 9px;
    }

    .chat-file {
        padding: 4px 5px;
        margin-top: 4px;
        font-size: 9px;
    }

    .chat-file-name {
        font-size: 9.5px;
    }

    .chat-file-meta {
        font-size: 8.5px;
    }

    .back-link {
        margin-top: 18px;
        padding-top: 12px;
        font-size: 12px;
    }
}

@media (max-width: 430px) {
    .container {
        padding-left: 8px;
        padding-right: 8px;
    }

    .header {
        gap: 5px;
    }

    .header-logo {
        height: 19px;
    }

    .overview-title {
        font-size: 13px;
    }

    .new-project-btn {
        max-width: 78px;
        white-space: normal;
    }

    .project-card,
    .project-card.completed {
        height: 104px;
        min-height: 104px;
        padding: 9px 8px;
    }

    .project-info {
        max-width: calc(100% - 76px);
    }

    .project-name {
        font-size: 14px;
    }

    .project-meta,
    .project-last-modified {
        font-size: 10px;
    }

    .project-card-side {
        flex-basis: 72px;
        min-width: 72px;
        width: 72px;
    }

    .project-status-inline {
        max-width: 72px;
        font-size: 9px;
    }

    .project-page-header {
        display: flex;
    }

    .project-page-actions {
        max-width: none;
        justify-content: flex-end;
    }

    .project-page-title {
        font-size: 19px;
    }

    .customer-action-panel {
        display: grid;
        grid-template-columns: 1fr;
    }

    .customer-action-panel form,
    .customer-action-panel button {
        width: 100%;
    }
}


@media (max-width: 400px) {
    .project-page-header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 108px;
    }

    .project-page-actions {
        max-width: 108px;
        justify-content: flex-end;
    }

    .project-page-title {
        font-size: 18px;
    }
}

@media (max-width: 370px) {
    .overview-filter-bar {
        grid-template-columns: 1fr;
    }

    .overview-filter-bar input {
        grid-column: auto;
    }

    .project-card,
    .project-card.completed {
        min-height: 100px;
    }
}

/* --- Login / Logout Buttons --- */

.auth-button {
    display: inline-block;
    margin-left: 10px;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    border: 1px solid #404040;
}

.login-button {
    background: #005EA1;
    color: #ffffff;
}

.logout-button {
    background: #3a3a3a;
    color: #ffffff;
}

.auth-button:hover {
    filter: brightness(1.12);
    text-decoration: none;
}

.customer-refresh-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-height: 32px;
    padding: 6px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 5px;
    background: #2a2a2a;
    color: var(--text);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    cursor: pointer;
}

.customer-refresh-button:hover {
    border-color: var(--blue);
    color: #ffffff;
}

@media (max-width: 800px) {
    .auth-button {
        margin-left: 0;
        min-height: 32px;
        padding: 6px 9px;
        font-size: 11px;
        line-height: 1.1;
        border-radius: 5px;
    }
}

@media (max-width: 430px) {
    .auth-button {
        padding-left: 7px;
        padding-right: 7px;
        font-size: 10px;
    }
}

/* =========================================================
   Mobile header refinement: signet, title row, action row
   ========================================================= */

.header-main {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1;
    min-width: 0;
}

.header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.project-page-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.project-page-logo {
    display: none;
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex: 0 0 auto;
}

.project-page-title-copy {
    min-width: 0;
}

.portal-identity-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin: 0 0 12px;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.portal-identity-bar img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    flex: 0 0 auto;
}

@media (max-width: 800px) {
    .header {
        flex-direction: column;
        align-items: stretch;
        gap: 7px;
        margin-bottom: 9px;
    }

    .header-main {
        width: 100%;
        gap: 8px;
    }

    .header-logo {
        height: 27px;
    }

    .overview-title {
        flex: 1;
        font-size: 17px;
        line-height: 1;
        letter-spacing: 0.3px;
        text-align: left;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .header-actions {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .header-actions > * {
        width: 100%;
        max-width: none;
        min-width: 0;
        margin-left: 0;
        text-align: center;
        justify-content: center;
    }

    .new-project-btn,
    .header-actions .auth-button {
        min-height: 31px;
        padding: 6px 7px;
        font-size: 10.5px;
    }

    .project-page-header {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 7px;
        margin-bottom: 9px;
    }

    .project-page-title-row {
        gap: 8px;
        align-items: flex-start;
    }

    .project-page-logo {
        display: none;
    }

    .project-page-title {
        font-size: 20px;
        line-height: 1.12;
    }

    .project-page-actions {
        width: 100%;
        max-width: none;
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
        gap: 6px;
    }

    .project-page-actions > * {
        width: 100%;
        max-width: none;
        min-width: 0;
        margin-left: 0;
        text-align: center;
        justify-content: center;
    }

    .project-page-actions .back-to-overview,
    .project-page-actions .auth-button,
    .project-page-actions .edit-project-btn {
        min-height: 31px;
        padding: 6px 7px;
        font-size: 10.5px;
    }

    .customer-overview-title {
        gap: 8px !important;
        margin-bottom: 10px !important;
    }

    .customer-overview-logo {
        width: 28px !important;
        height: 28px !important;
    }

    .customer-overview-title h1 {
        font-size: 21px !important;
        line-height: 1.1 !important;
    }

    .customer-overview-subtitle {
        margin-top: 2px !important;
        font-size: 12px !important;
    }
}

@media (max-width: 430px) {
    .header-logo {
        height: 25px;
    }

    .overview-title {
        font-size: 16px;
    }

    .header-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .project-page-title {
        font-size: 19px;
    }

    .project-page-actions {
        grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
    }
}

@media (max-width: 370px) {
    .header-actions,
    .project-page-actions {
        grid-template-columns: 1fr 1fr;
    }

    .header-actions .new-project-btn {
        grid-column: 1 / -1;
    }
}

/* =========================================================
   Portal trust layer / public footer
   ========================================================= */

.portal-public-shell {
    min-height: calc(100vh - 150px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 42px 18px;
}

.portal-public-card {
    width: min(720px, 100%);
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 28px;
    box-shadow: 0 18px 60px rgba(0,0,0,0.22);
}

.portal-public-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.portal-public-brand img {
    width: 42px;
    height: 42px;
    object-fit: contain;
    flex: 0 0 auto;
}

.portal-public-kicker {
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-public-brand-title {
    color: #ffffff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.1;
}

.portal-public-card h1 {
    margin: 0;
    color: #ffffff;
    font-size: 30px;
    line-height: 1.1;
}

.portal-public-card p {
    color: #cfcfcf;
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 12px;
}

.portal-public-lead {
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 650;
}

.portal-public-actions,
.portal-public-links {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.portal-public-actions {
    margin-top: 22px;
}

.portal-public-actions a,
.portal-public-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: #2a2a2a;
    color: var(--text);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.portal-public-actions a:hover,
.portal-public-links a:hover {
    border-color: var(--blue);
    color: #ffffff;
    text-decoration: none;
}

.portal-public-primary {
    background: var(--blue-dark) !important;
    border-color: var(--blue-dark) !important;
    color: #ffffff !important;
}

.portal-public-customer-login {
    min-height: 42px !important;
    padding: 10px 18px !important;
    font-size: 14px !important;
}

.portal-public-secondary {
    background: transparent !important;
    color: var(--text-soft) !important;
}

.portal-public-direct-link {
    margin-top: 18px;
    color: var(--text-soft) !important;
    font-size: 12px !important;
}

.portal-public-admin-link {
    margin-top: 18px;
    color: var(--text-muted);
    font-size: 11px;
}

.portal-public-admin-link a {
    color: var(--text-soft);
    font-weight: 600;
}

.portal-public-links {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
}

.portal-error-card {
    max-width: 620px;
}

.portal-footer {
    width: min(1120px, calc(100% - 36px));
    margin: 24px auto 0;
    padding: 1.1rem 0 1.6rem;
    border-top: 1px solid rgba(241, 238, 232, 0.2);
    color: rgba(241, 238, 232, 0.48);
    font-family: var(--font-ae-mono);
    font-size: 0.88rem;
}

.portal-footer-inner {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    align-items: center;
    justify-content: space-between;
}

.portal-footer-brand {
    color: rgba(241, 238, 232, 0.54);
}

.portal-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: center;
    justify-content: flex-end;
}

.portal-footer-links a {
    position: relative;
    color: rgba(241, 238, 232, 0.72);
    font-family: inherit;
    font-size: inherit;
    font-weight: 400;
    text-decoration: none;
    transition: color 180ms ease, opacity 180ms ease, transform 220ms ease;
}

.portal-footer-links a:hover {
    color: #f1eee8;
    text-decoration: none;
    transform: translateY(-1px);
}

.portal-footer-links a::after {
    position: absolute;
    right: 0;
    bottom: -0.28rem;
    left: 0;
    height: 1px;
    background: rgba(241, 238, 232, 0.68);
    content: "";
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left;
    transition: opacity 220ms ease, transform 360ms ease;
}

.portal-footer-links a:hover::after {
    opacity: 1;
    transform: scaleX(1);
}

.portal-build-version {
    position: fixed;
    right: 10px;
    bottom: 8px;
    z-index: 1100;
    color: rgba(241, 238, 232, 0.42);
    font-family: var(--font-ae-mono);
    font-size: 9px;
    line-height: 1;
    opacity: .72;
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
}

.dev-environment-badge {
    padding: 5px 8px;
    border: 1px solid #f59e0b;
    border-radius: 3px;
    background: rgba(120, 53, 15, .92);
    color: #ffedd5;
    font-weight: 800;
    opacity: 1;
}

.dev-environment-header-badge {
    align-self: center;
    padding: 6px 8px;
    border: 1px solid #f59e0b;
    border-radius: 3px;
    background: #78350f;
    color: #ffedd5;
    font: 800 10px/1.1 var(--font-ae-mono);
    letter-spacing: .04em;
    white-space: nowrap;
}


@media (max-width: 600px) {
    .portal-build-version {
        right: 7px;
        bottom: 6px;
        font-size: 8px;
        opacity: .62;
    }
}

/* =========================================================
   Project mobile polish
   ========================================================= */

.due-date-line input[type="date"] {
    appearance: none;
    -webkit-appearance: none;
    color-scheme: dark;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background: #252525;
    color: var(--text);
}

.due-date-line input[type="date"]::-webkit-calendar-picker-indicator {
    filter: invert(1);
    opacity: 0.7;
}

@media (max-width: 800px) {
    .portal-identity-bar {
        margin-bottom: 7px;
        font-size: 10.5px;
        line-height: 1;
    }

    .portal-identity-bar img {
        width: 18px;
        height: 18px;
    }

    .project-page-header {
        margin-bottom: 7px;
    }

    .project-page-title-row {
        align-items: center;
    }

    .project-page-title {
        font-size: 18px;
    }

    .subtitle {
        margin-top: 2px;
        font-size: 11px;
    }

    .project-panel,
    #pdf-preview {
        padding: 8px;
    }

    .project-status-head {
        margin-bottom: 7px;
    }

    .status-control-line,
    .status-upload-line {
        gap: 4px;
        margin-bottom: 6px;
    }

    .due-date-line {
        grid-template-columns: auto minmax(0, 150px);
        justify-content: start;
        gap: 8px;
        margin-bottom: 6px;
    }

    .due-date-line form {
        margin: 0;
    }

    .due-date-line input[type="date"] {
        width: 150px;
        max-width: 100%;
        height: 28px;
        min-height: 28px;
        padding: 4px 7px;
        font-size: 11px;
        line-height: 1;
    }

    .status-dropdown-form select {
        height: 30px;
        padding: 5px 8px;
    }

    .inline-upload-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 68px;
        gap: 6px;
        width: 100%;
    }

    .inline-upload-form input[type="file"] {
        width: 100%;
        max-width: 100%;
        height: 30px;
        padding: 4px 6px;
        font-size: 10px;
    }

    .inline-upload-form input[type="file"]::file-selector-button {
        min-height: 22px;
        margin-right: 5px;
        padding: 3px 6px;
        font-size: 10px;
    }

    .inline-upload-form button {
        width: 68px;
        min-width: 68px;
        min-height: 30px;
        padding: 5px 6px;
    }

    .customer-action-panel {
        margin: 6px 0 8px;
        gap: 5px;
    }

    .customer-action-btn,
    .approval-now-btn,
    .approval-cancel-btn,
    .customer-duplicate-toggle {
        min-height: 31px;
        padding: 6px 8px;
        font-size: 10.5px;
    }

    .customer-duplicate-box {
        margin-top: 6px;
        padding-top: 7px;
    }

    .customer-duplicate-hint {
        margin-bottom: 6px;
    }

    .customer-duplicate-form {
        gap: 6px;
        margin-top: 7px;
    }

    .customer-duplicate-form input,
    .customer-duplicate-form textarea {
        padding: 6px 8px;
        font-size: 11px;
    }

    .customer-duplicate-form textarea {
        min-height: 48px;
    }

    #pdf-preview {
        display: flex;
        flex-direction: column;
        align-items: stretch;
    }

    #pdf-preview-content {
        min-height: 0;
    }

    #pdf-preview-content img {
        max-height: 118px !important;
        max-width: min(170px, 64vw) !important;
        margin: 0 auto 5px !important;
    }

    .pdf-correction-button {
        min-height: 28px;
        margin-bottom: 5px;
        padding: 6px 8px;
        font-size: 10.5px;
    }
}

@media (max-width: 430px) {
    .portal-identity-bar {
        margin-bottom: 6px;
    }

    .project-page-title {
        font-size: 17px;
    }

    .project-page-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .due-date-line {
        grid-template-columns: auto minmax(0, 138px);
    }

    .due-date-line input[type="date"] {
        width: 138px;
    }

    #pdf-preview-content img {
        max-height: 108px !important;
        max-width: min(156px, 62vw) !important;
    }
}

/* =========================================================
   Kunden-Projektseite: ruhiger Arbeitsbereich
   ========================================================= */

.customer-project-page .container {
    max-width: 1120px;
    padding-top: 22px;
}

.customer-project-page .portal-identity-bar {
    margin-bottom: 16px;
}

.customer-project-page .project-page-header {
    align-items: flex-start;
    margin-bottom: 18px;
}

.customer-project-page .project-page-title {
    font-size: 28px;
}

.customer-project-page .project-page-actions {
    max-width: 420px;
    padding-top: 2px;
}

.customer-project-page .project-page-actions > * {
    font-size: 11px;
    padding: 7px 10px;
}

.customer-project-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 9px;
}

.customer-summary-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--summary-status-color);
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
}

.customer-summary-date-form {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
}

.customer-summary-date-form label {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 700;
}

.customer-summary-date-form input[type="date"] {
    width: 128px;
    height: 28px;
    padding: 4px 7px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background: #252525;
    color: var(--text-soft);
    color-scheme: dark;
    font-size: 11px;
}

.customer-project-page .project-top-section {
    margin: 0 0 22px;
    padding: 0;
    background: transparent;
    border: 0;
}

.customer-project-page .project-top-grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(270px, .75fr);
    gap: 16px;
    align-items: stretch;
}

.customer-project-page .project-panel,
.customer-project-page #pdf-preview {
    min-height: 100%;
    padding: 14px;
    background: var(--panel-dark);
    border: 1px solid var(--border);
    border-radius: 6px;
}

.customer-project-page #pdf-preview {
    grid-column: 1;
    grid-row: 1;
}

.customer-project-page .project-panel {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.customer-project-page .customer-action-panel {
    margin: 0;
    gap: 7px;
}

.customer-project-page .customer-action-btn {
    min-height: 36px;
    padding: 8px 11px;
    border-radius: 5px;
    box-shadow: none;
    font-size: 12px;
}

.customer-project-page .approval-countdown-box,
.customer-project-page .revoke-approval-box {
    margin-top: 0;
}

.customer-project-page .customer-project-options {
    border-top: 1px solid var(--border);
    padding-top: 11px;
}

.customer-project-page .customer-project-options summary,
.customer-project-page .customer-version-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background: #252525;
    cursor: pointer;
    color: var(--text-soft);
    font-size: 12px;
    font-weight: 700;
    list-style: none;
}

.customer-project-page .customer-project-options summary::-webkit-details-marker,
.customer-project-page .customer-version-details summary::-webkit-details-marker {
    display: none;
}

.customer-project-page .customer-project-options summary::after,
.customer-project-page .customer-version-details summary::after {
    content: "⌄";
    color: var(--text-muted);
    font-size: 15px;
    font-weight: 400;
}

.customer-project-page .customer-project-options[open] summary::after,
.customer-project-page .customer-version-details[open] summary::after {
    content: "⌃";
}

.customer-project-page .customer-duplicate-box {
    margin-top: 10px;
    padding-top: 0;
    border-top: 0;
}

.customer-project-page .customer-duplicate-hint {
    margin-bottom: 8px;
    font-size: 11px;
}

.customer-project-page #pdf-preview {
    min-width: 0;
}

.customer-project-page .current-version-label {
    margin-bottom: 8px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.customer-project-page .current-version-content {
    display: flex;
    min-height: 290px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--panel-dark);
    color: var(--text-muted);
}

.customer-project-page .current-preview-trigger {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.customer-project-page .current-preview-trigger img {
    display: block;
    width: min(100%, 300px);
    max-height: 330px;
    margin: 0 auto 10px;
    object-fit: contain;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
}

.customer-project-page .current-version-open {
    width: auto;
    margin: 0 auto 8px;
    color: var(--blue);
    font-size: 12px;
    font-weight: 800;
}

.customer-project-page .current-version-name,
.customer-project-page .current-version-date {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-project-page .current-version-name {
    margin-bottom: 3px;
    color: var(--text-soft);
    font-size: 10px;
}

.customer-project-page .current-version-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    margin-top: 9px;
    padding: 0 10px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background: #252525;
    color: var(--text-soft);
    font: 10px var(--font-ae-mono);
    text-decoration: none;
}

.customer-project-page .current-version-actions {
    display: flex;
    width: min(100%, 420px);
    align-items: stretch;
    justify-content: center;
    gap: 8px;
    margin: 4px auto 0;
}

.customer-project-page .current-version-actions .pdf-correction-button,
.customer-project-page .current-version-actions .current-version-download {
    flex: 1 1 0;
    margin: 0;
    min-height: 34px;
    box-sizing: border-box;
    border: 1px solid rgba(74, 158, 255, 0.55);
    background: rgba(74, 158, 255, 0.12);
    color: #ffffff !important;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.customer-project-page .current-version-download:hover {
    border-color: var(--blue);
    background: rgba(74, 158, 255, 0.2);
}

.customer-project-page .customer-chat-file-actions {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
}

.customer-project-page .customer-chat-file-actions .chat-download-link {
    display: inline-flex;
    flex: 0 0 auto;
    min-height: 24px;
    align-items: center;
    padding: 3px 6px;
    border: 1px solid rgba(74, 158, 255, .28);
    border-radius: 4px;
    color: var(--blue);
    font: 10px var(--font-ae-mono);
    text-decoration: none;
    white-space: nowrap;
}

.customer-project-page .customer-chat-file-actions .chat-download-link:hover {
    border-color: rgba(74, 158, 255, .62);
    background: rgba(74, 158, 255, .08);
}

.customer-project-page .current-version-date {
    color: var(--text-muted);
    font-size: 10px;
}

.customer-project-page .section:not(.project-top-section):not(.pdf-version-section) {
    margin-top: 18px;
    padding: 0;
    background: transparent;
    border: 0;
}

.customer-project-page .section > h2 {
    margin-bottom: 10px;
    font-size: 15px;
}

.customer-project-page .communication-composer {
    display: block;
    margin-bottom: 14px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--panel-dark);
}

.customer-project-page .communication-composer .form-group {
    margin: 0;
}

.customer-project-page .communication-composer textarea {
    min-height: 64px !important;
    resize: vertical;
}

.customer-project-page .communication-composer .form-group button {
    min-height: 34px;
    margin-top: 7px;
    padding: 7px 11px;
    font-size: 11px;
}

.customer-project-page .communication-attachment-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.customer-project-page .communication-attachment-row label {
    flex: 0 0 auto;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 700;
}

.customer-project-page .communication-attachment-row input[type="file"] {
    min-width: 0;
    flex: 1;
    font-size: 10px;
}

.customer-project-page .communication-attachment-row span {
    flex: 0 0 auto;
    color: var(--text-muted);
    font-size: 10px;
}

.customer-project-page .communication-file-submit {
    flex: 0 0 auto;
    min-height: 32px;
    padding: 6px 11px;
    border: 0;
    border-radius: 5px;
    background: var(--blue-dark);
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.customer-project-page .communication-file-submit:hover {
    background: #086fae;
}

.customer-project-page .chat-container {
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    gap: 0;
    background: transparent;
    border: 0;
}

.customer-project-page .chat-day-divider {
    padding: 12px 0 5px;
    color: var(--text-muted);
    font-size: 10px;
    font-weight: 700;
    text-align: center;
}

.customer-project-page .chat-message {
    padding: 7px 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 12px;
    line-height: 1.45;
}

.customer-project-page .chat-bubble-row {
    display: flex;
    width: 100%;
}

.customer-project-page .chat-bubble-row.customer {
    justify-content: flex-start;
}

.customer-project-page .chat-bubble-row.ae {
    justify-content: flex-end;
}

.customer-project-page .chat-bubble {
    width: fit-content;
    max-width: 74%;
    padding: 8px 10px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 7px;
    background: #252525;
}

.customer-project-page .chat-bubble-row.ae .chat-bubble {
    border-color: rgba(74,158,255,.2);
    background: #202b38;
}

.customer-project-page .chat-header {
    justify-content: flex-start;
    gap: 8px;
    margin-bottom: 3px;
    font-size: 11px;
}

.customer-project-page .chat-bubble-meta {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin-bottom: 3px;
}

.customer-project-page .chat-author {
    color: var(--text);
    font-weight: 800;
}

.customer-project-page .chat-date {
    order: -1;
    color: var(--text-muted);
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}

.customer-project-page .chat-content {
    min-width: 0;
    color: var(--text);
    white-space: pre-wrap;
}

.customer-project-page .chat-system {
    padding: 6px 0;
    color: var(--text-muted);
    font-size: 10px;
    font-style: normal;
    text-align: center;
}

.customer-project-page .chat-system .chat-header {
    justify-content: center;
}

.customer-project-page .chat-system .chat-content {
    padding-left: 0;
}

.customer-project-page .chat-file {
    margin: 7px 0 0;
    padding: 0;
    background: transparent;
    border: 0;
    font-size: 11px;
}

.customer-project-page .chat-preview-trigger {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 5px;
    color: var(--blue);
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-project-page .chat-file::before {
    content: "";
    display: block;
    width: 100%;
    margin-bottom: 5px;
    border-top: 1px solid rgba(255,255,255,.07);
}

.customer-project-page .chat-file-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-project-page .chat-file-icon {
    flex: 0 0 auto;
    margin: 0;
}

.customer-project-page .chat-download-link {
    display: none;
}

/* Adminverlauf nutzt dieselbe Rollenrichtung, ohne Systemaktivitäten umzubauen. */
.admin-project-page .chat-container {
    width: min(100%, 1000px);
    margin-right: auto;
    margin-left: auto;
}

/* =========================================================
   Admin-Kommandodeck
   ========================================================= */

body.admin-command-deck {
    --deck-bg: #101411;
    --deck-panel: #1c241e;
    --deck-panel-deep: #151b17;
    --deck-panel-strong: #243026;
    --deck-input: #0d120e;
    --deck-line: #59685b;
    --deck-line-soft: #3e4a40;
    --deck-hover: #2a3a2d;
    --deck-focus: #82c7ff;
    --deck-text: #f1f5ef;
    --deck-muted: #bdc9be;
    --deck-dim: #98a69a;
    --deck-success: #a8dc8f;
    --deck-info: #92d4f2;
    --deck-attention: #f0c86f;
    --deck-error: #ef9e91;
    --deck-signal: var(--deck-success);
    --deck-warning: var(--deck-attention);
    --deck-critical: var(--deck-error);
    --deck-blue: var(--deck-info);
    margin: 0;
    color: var(--deck-text);
    background-color: var(--deck-bg);
    background-image:
        linear-gradient(rgba(126, 147, 131, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(126, 147, 131, 0.03) 1px, transparent 1px);
    background-size: 28px 28px;
}

body.admin-command-deck :where(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--deck-focus);
    outline-offset: 2px;
}

.command-deck-shell {
    width: min(1580px, calc(100% - 32px));
    margin: 0 auto;
    padding: 22px 0 64px;
}

.command-deck-header,
.command-line,
.command-panel,
.mission-card {
    border: 1px solid var(--deck-line);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.025), 0 16px 32px rgba(0, 0, 0, 0.16);
}

.command-deck-header {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
    align-items: center;
    gap: 18px;
    padding: 12px 14px;
    background: var(--deck-panel-deep);
}

/* Ein gemeinsamer Admin-Anker fuer alle geschuetzten Unterseiten. */
.admin-global-header {
    position: sticky;
    top: 10px;
    z-index: 30;
    grid-template-columns: minmax(190px, auto) minmax(0, 1fr) auto;
    background: rgba(21, 27, 23, .97);
    backdrop-filter: blur(10px);
}

.admin-global-navigation {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.admin-global-navigation a,
.admin-context-actions a,
.admin-context-actions button {
    min-height: 34px;
    border: 1px solid transparent;
    border-radius: 3px;
    color: var(--deck-muted);
    background: transparent;
    padding: 8px 10px;
    font: 700 12px/1.2 var(--font-ae-mono);
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.admin-global-navigation a:hover,
.admin-global-navigation a:focus-visible {
    border-color: var(--deck-line-soft);
    background: var(--deck-hover);
    color: var(--deck-text);
    text-decoration: none;
}

.admin-global-navigation a.is-active {
    border-color: var(--deck-focus);
    background: rgba(130, 199, 255, .13);
    color: var(--deck-text);
    box-shadow: inset 0 -2px var(--deck-focus);
}

.admin-context-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
    min-width: max-content;
}

.admin-context-actions .admin-context-action {
    border-color: #698854;
    background: #304c39;
    color: var(--deck-text);
}

.admin-context-actions .admin-context-action:hover,
.admin-context-actions .admin-context-action:focus-visible {
    border-color: var(--deck-success);
    background: #3b5e43;
    color: #fff;
    text-decoration: none;
}

.admin-context-actions .admin-logout-action {
    border-color: #66433c;
    color: #e2b5aa;
}

.admin-context-actions .admin-logout-action:hover,
.admin-context-actions .admin-logout-action:focus-visible {
    border-color: var(--deck-error);
    background: rgba(239, 158, 145, .1);
    color: #fff;
    text-decoration: none;
}

.command-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--deck-text);
    text-decoration: none;
    width: fit-content;
}

.command-brand:hover {
    color: #fff;
    text-decoration: none;
}

.command-brand img {
    width: 46px;
    height: 28px;
    object-fit: contain;
    opacity: 0.92;
}

.command-brand span {
    display: grid;
    gap: 1px;
}

.command-brand small,
.command-eyebrow,
.command-readout span,
.panel-heading p,
.mission-card-label,
.panel-count,
.machine-status-grid p,
.transmission time,
.command-header-status,
.quick-launch,
.cockpit-preferences,
.machine-note {
    font-family: var(--font-ae-mono);
    letter-spacing: 0;
}

.command-brand small {
    color: var(--deck-dim);
    font-size: 12px;
}

.command-brand strong {
    font-size: 16px;
    letter-spacing: 0;
}

.command-header-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--deck-muted);
    font-size: 12px;
    text-transform: uppercase;
}

.status-lamp,
.mission-card-lamp,
.transmission-marker {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--deck-signal);
    box-shadow: 0 0 0 3px rgba(147, 188, 102, 0.09), 0 0 10px rgba(147, 188, 102, 0.34);
    flex: 0 0 auto;
}

.status-lamp.alert,
.mission-card.critical .mission-card-lamp,
.transmission.warning .transmission-marker {
    background: var(--deck-critical);
    box-shadow: 0 0 0 3px rgba(194, 108, 89, 0.1), 0 0 10px rgba(194, 108, 89, 0.32);
}

.status-lamp.muted,
.mission-card.muted .mission-card-lamp {
    background: var(--deck-dim);
    box-shadow: none;
}

@keyframes command-lamp-pulse {
    0%, 72%, 100% { opacity: 0.75; transform: scale(1); }
    82% { opacity: 1; transform: scale(1.18); }
}

@keyframes command-radar-sweep {
    from { transform: rotate(35deg); }
    to { transform: rotate(395deg); }
}

body.admin-command-deck.cockpit-mode-full .status-lamp.alert,
body.admin-command-deck.cockpit-mode-full .mission-card.signal .mission-card-lamp {
    animation: command-lamp-pulse 4.5s ease-in-out infinite;
}

.command-header-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.admin-command-deck .new-project-btn,
.admin-command-deck .auth-button,
.admin-command-deck .admin-shared-navigation > a,
.quick-launch > a,
.quick-launch > button,
.command-form-actions button {
    min-height: 34px;
    width: auto;
    margin: 0;
    border: 1px solid var(--deck-line);
    border-radius: 3px;
    background: #1a211d;
    color: var(--deck-text);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    padding: 8px 11px;
    cursor: pointer;
}

.admin-command-deck .new-project-btn,
.command-form-actions button:not(.secondary) {
    background: #304c39;
    border-color: #698854;
}

.admin-command-deck .logout-button {
    color: #d9b1a8;
    border-color: #66433c;
}

.command-line {
    display: grid;
    grid-template-columns: minmax(260px, 1.2fr) minmax(360px, 1.5fr) auto;
    gap: 22px;
    align-items: center;
    margin: 14px 0 18px;
    padding: 20px;
    background: var(--deck-panel);
}

.command-eyebrow {
    color: var(--deck-signal);
    font-size: 12px;
    margin-bottom: 4px;
}

.command-intro h1 {
    color: #fff;
    font-size: 28px;
    line-height: 1.08;
    margin: 0;
}

.command-intro p:last-child {
    color: var(--deck-muted);
    font-size: 15px;
    margin-top: 7px;
}

.command-readouts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-left: 1px solid var(--deck-line-soft);
}

.command-readout {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 4px 13px;
    border-right: 1px solid var(--deck-line-soft);
}

.command-readout span {
    color: var(--deck-dim);
    font-size: 12px;
}

.command-readout strong,
.command-readout a {
    color: var(--deck-text);
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.command-readout a {
    color: var(--deck-blue);
    text-decoration: none;
}

.cockpit-preferences {
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: stretch;
    font-size: 12px;
}

.cockpit-mode-switch {
    display: flex;
    border: 1px solid var(--deck-line);
}

.cockpit-mode-switch form {
    display: flex;
    margin: 0;
}

.cockpit-preferences > form {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.cockpit-mode-switch .cockpit-mode-button,
.cockpit-preferences .sound-control {
    border: 0;
    border-right: 1px solid var(--deck-line);
    border-radius: 0;
    background: #111613;
    color: var(--deck-muted);
    cursor: pointer;
    font: inherit;
    padding: 7px 8px;
}

.cockpit-mode-switch form:last-child .cockpit-mode-button { border-right: 0; }
.cockpit-mode-switch .cockpit-mode-button.active,
.cockpit-preferences .sound-control.active { background: #344436; color: #e8f1df; }
.cockpit-preferences .sound-control { width: 100%; border: 1px solid var(--deck-line); }
.cockpit-preferences .sound-control:focus-visible {
    outline: 2px solid var(--deck-blue);
    outline-offset: 2px;
}
.audio-status { color: var(--deck-dim); font: 12px var(--font-ae-mono); white-space: nowrap; }

.command-section-heading,
.panel-heading {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.command-section-heading { margin: 0 0 10px; }
.command-section-heading p,
.panel-heading p { color: var(--deck-muted); font-size: 12px; line-height: 1.35; }
.command-section-heading h2,
.panel-heading h2 { color: var(--deck-text); font-size: 18px; margin: 3px 0 0; }

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

.mission-card {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 7px;
    min-height: 128px;
    padding: 13px;
    background: var(--deck-panel);
    color: var(--deck-text);
    text-decoration: none;
    overflow: hidden;
}

.mission-card::after {
    content: "";
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 22px;
    border-top: 1px solid currentColor;
    opacity: 0.25;
}

.mission-card:hover { transform: translateY(-2px); color: #fff; text-decoration: none; border-color: #718275; }
.mission-card:focus-visible,
.cockpit-panel-link:focus-visible { outline: 2px solid var(--deck-blue); outline-offset: 3px; }
.mission-card.warning { color: #edce91; }
.mission-card.critical { color: #e2a295; }
.mission-card.positive { color: #b8d995; }
.mission-card.signal { color: #add0dc; }
.mission-card.muted { color: var(--deck-muted); }
.mission-card-label { grid-column: 2; color: var(--deck-muted); font-size: 12px; line-height: 1.3; text-transform: uppercase; }
.mission-card strong { grid-column: 1 / -1; color: currentColor; font-size: 32px; line-height: 1; margin-top: 14px; }
.mission-card small { grid-column: 1 / -1; color: var(--deck-muted); font-size: 12px; line-height: 1.35; margin-top: auto; }

.cockpit-grid { display: grid; gap: 12px; margin-top: 14px; }
.primary-grid { grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.7fr); }
.secondary-grid { grid-template-columns: 1.1fr 0.8fr 0.9fr; }

.command-panel {
    min-width: 0;
    padding: 16px;
    background: var(--deck-panel);
}

.panel-count { color: var(--deck-muted); font-size: 12px; line-height: 1.35; padding-top: 4px; }

.transmission-list { display: grid; max-height: 456px; margin-top: 10px; overflow-y: auto; border-top: 1px solid var(--deck-line-soft); }
.transmission-day-divider { padding: 8px 3px 4px; color: var(--deck-dim); font: 11px var(--font-ae-mono); letter-spacing: .04em; }
.transmission {
    display: grid;
    grid-template-columns: 7px minmax(0, 1fr) auto;
    align-items: start;
    gap: 8px;
    min-height: 50px;
    box-sizing: border-box;
    color: var(--deck-text);
    padding: 7px 4px;
    border-bottom: 1px solid var(--deck-line-soft);
    text-decoration: none;
}
.transmission:hover { background: rgba(255, 255, 255, 0.025); color: #fff; text-decoration: none; }
.transmission.customer .transmission-marker { background: var(--deck-blue); box-shadow: 0 0 8px rgba(124, 167, 183, 0.34); }
.transmission.file .transmission-marker { background: var(--deck-warning); box-shadow: 0 0 8px rgba(210, 168, 91, 0.28); }
.transmission.admin .transmission-marker { background: var(--deck-signal); }
.transmission.status .transmission-marker,
.transmission.system .transmission-marker { background: var(--deck-dim); box-shadow: none; }
.transmission time { align-self: center; color: var(--deck-dim); font-size: 10px; white-space: nowrap; }
.transmission-copy { display: grid; gap: 1px; min-width: 0; }
.transmission-copy strong { color: inherit; font-size: 13px; line-height: 1.3; }
.transmission-copy span { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; white-space: normal; -webkit-box-orient: vertical; }
.transmission-context { color: var(--deck-muted); font: 11px/1.35 var(--font-ae-mono); -webkit-line-clamp: 1; }
.transmission-detail { color: var(--deck-dim); font-size: 11px; line-height: 1.35; -webkit-line-clamp: 1; }
.transmission.priority-action { min-height: 56px; padding-left: 7px; border-left: 2px solid var(--deck-critical); background: rgba(194, 108, 89, .08); }
.transmission.priority-action .transmission-marker { margin-top: 3px; background: var(--deck-critical); box-shadow: 0 0 0 3px rgba(194, 108, 89, .1), 0 0 10px rgba(194, 108, 89, .32); }
.transmission.priority-action .transmission-copy strong { color: #f2d1c7; }
.transmission.priority-info.status .transmission-marker { background: var(--deck-signal); box-shadow: 0 0 8px rgba(147, 188, 102, .24); }
.transmission.priority-system { min-height: 32px; padding-top: 4px; padding-bottom: 4px; opacity: .72; }
.transmission.priority-system .transmission-marker { width: 5px; height: 5px; margin: 4px 1px 0; }
.transmission.priority-system .transmission-copy { gap: 0; }
.transmission.priority-system .transmission-copy strong { color: var(--deck-muted); font-size: 11px; font-weight: 500; }
.transmission.priority-system .transmission-context { color: var(--deck-dim); font-size: 10px; }
.transmission.priority-system .transmission-detail { display: none; }
.transmission.priority-system time { font-size: 9px; }

.radio-panel { background: #151916; }
.radio-wave { width: 26px; height: 26px; border: 1px solid var(--deck-signal); border-radius: 50%; opacity: 0.55; position: relative; }
.radio-wave::after { content: ""; position: absolute; inset: 5px; border: 1px solid var(--deck-signal); border-radius: 50%; }
.radio-list { display: grid; gap: 0; margin-top: 12px; }
.radio-list > div { display: grid; gap: 4px; padding: 11px 0; border-top: 1px solid var(--deck-line-soft); }
.radio-list dt { color: var(--deck-muted); font: 12px var(--font-ae-mono); }
.radio-list dd { color: var(--deck-text); font-size: 13px; margin: 0; }
.radio-list dd small { display: block; color: var(--deck-muted); font-size: 12px; margin-top: 2px; }
.radio-list dd.is-warning { color: #dca08e; }

.machine-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; border: 1px solid var(--deck-line-soft); }
.machine-status-grid > div { min-height: 88px; padding: 11px; border-right: 1px solid var(--deck-line-soft); border-bottom: 1px solid var(--deck-line-soft); }
.machine-status-grid > div:nth-child(2n) { border-right: 0; }
.machine-status-grid > div:nth-last-child(-n + 2) { border-bottom: 0; }
.machine-status-grid .status-lamp { display: inline-block; margin-right: 6px; width: 6px; height: 6px; }
.machine-status-grid p { display: inline; color: var(--deck-muted); font-size: 12px; }
.machine-status-grid strong { display: block; color: var(--deck-text); font-size: 12px; margin-top: 9px; overflow-wrap: anywhere; }
.machine-note { color: var(--deck-muted); font-size: 12px; line-height: 1.45; margin-top: 11px; }

.sensor-panel { background: #161b17; }
.sensor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; border: 1px solid var(--deck-line-soft); }
.sensor-grid > div { min-height: 76px; padding: 10px; border-right: 1px solid var(--deck-line-soft); border-bottom: 1px solid var(--deck-line-soft); }
.sensor-grid > div:nth-child(2n) { border-right: 0; }
.sensor-grid > div:nth-last-child(-n + 2) { border-bottom: 0; }
.sensor-grid span { display: block; color: var(--deck-muted); font: 12px var(--font-ae-mono); text-transform: uppercase; }
.sensor-grid strong { display: block; color: var(--deck-text); font: 21px var(--font-ae-mono); margin-top: 7px; overflow-wrap: anywhere; }
.sensor-grid small { display: block; color: var(--deck-muted); font-size: 12px; line-height: 1.35; margin-top: 3px; }
.sensor-note { color: var(--deck-muted); font-size: 12px; line-height: 1.5; margin-top: 11px; }

.navigation-links { display: grid; margin-top: 13px; border-top: 1px solid var(--deck-line-soft); }
.navigation-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--deck-line-soft); color: var(--deck-text); text-decoration: none; font-size: 13px; }
.navigation-links a:hover { color: #fff; }
.navigation-links strong { color: var(--deck-warning); font: 15px var(--font-ae-mono); }

.radar-panel { position: relative; overflow: hidden; background: #121714; }
.cockpit-panel-link { cursor: pointer; transition: border-color .16s ease, background-color .16s ease; }
.cockpit-panel-link:hover { border-color: var(--deck-focus); background-color: var(--deck-hover); }
.acquisition-dashboard-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 13px 0 2px; }
.acquisition-dashboard-metric { display: grid; gap: 5px; min-width: 0; padding: 8px; border: 1px solid var(--deck-line-soft); color: var(--deck-muted); text-decoration: none; transition: border-color .16s ease, background-color .16s ease, transform .16s ease; }
.acquisition-dashboard-metric:hover { border-color: var(--deck-focus); background: var(--deck-hover); color: var(--deck-text); transform: translateY(-1px); text-decoration: none; }
.acquisition-dashboard-metric:focus-visible { outline: 2px solid var(--deck-blue); outline-offset: 2px; }
.acquisition-dashboard-metric span { overflow: hidden; color: inherit; font: 9px var(--font-ae-mono); line-height: 1.2; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.acquisition-dashboard-metric strong { color: var(--deck-text); font: 20px var(--font-ae-mono); line-height: 1; }
.acquisition-dashboard-metric.warning strong { color: var(--deck-warning); }
.acquisition-dashboard-metric.positive strong { color: var(--deck-signal); }
.acquisition-dashboard-metric.signal strong { color: var(--deck-blue); }
.radar-sweep { width: 24px; height: 24px; border-top: 1px solid var(--deck-signal); border-radius: 50%; transform: rotate(35deg); opacity: 0.8; }
body.admin-command-deck.cockpit-mode-full .radar-sweep { animation: command-radar-sweep 14s linear infinite; }
.intentional-empty-state { display: grid; justify-items: start; gap: 6px; color: var(--deck-muted); padding: 28px 0; }
.intentional-empty-state strong { color: var(--deck-text); font-size: 14px; }
.intentional-empty-state p { font-size: 12px; line-height: 1.45; }
.empty-grid-mark { width: 42px; height: 18px; border: 1px solid var(--deck-line); background-image: linear-gradient(90deg, transparent 48%, var(--deck-line-soft) 49%, var(--deck-line-soft) 51%, transparent 52%); }
.radar-empty-state { min-height: 135px; justify-content: center; }
.radar-grid-mark { width: 72px; height: 72px; border: 1px solid rgba(147, 188, 102, 0.45); border-radius: 50%; background-image: linear-gradient(90deg, transparent 49%, rgba(147, 188, 102, 0.35) 50%, transparent 51%), linear-gradient(transparent 49%, rgba(147, 188, 102, 0.35) 50%, transparent 51%); }

.acquisition-shell { padding-bottom: 52px; }
.acquisition-intro { display: flex; justify-content: space-between; align-items: end; gap: 18px; padding: 22px 0 16px; border-bottom: 1px solid var(--deck-line); }
.acquisition-intro.compact { padding-top: 16px; }
.acquisition-intro h1 { color: var(--deck-text); font-size: 30px; margin: 5px 0 4px; }
.acquisition-intro p:last-child { color: var(--deck-muted); font-size: 13px; margin: 0; }
.acquisition-intro-metrics { display: flex; gap: 10px; flex-wrap: wrap; }
.acquisition-intro-metrics span { min-width: 74px; padding: 7px 9px; border: 1px solid var(--deck-line); color: var(--deck-muted); font: 12px/1.35 var(--font-ae-mono); text-transform: uppercase; }
.acquisition-intro-metrics strong { display: block; color: var(--deck-text); font-size: 18px; margin-bottom: 4px; }
.acquisition-notice, .acquisition-error, .acquisition-blocked-note { margin: 14px 0; padding: 9px 11px; border: 1px solid var(--deck-success); background: var(--deck-panel-strong); color: var(--deck-text); font-size: 13px; line-height: 1.45; }
.acquisition-error, .acquisition-blocked-note { border-color: var(--deck-error); background: rgba(82, 35, 29, .6); color: #ffe1d9; }
.acquisition-mail-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 10px 12px; border: 1px solid var(--deck-line); background: var(--deck-panel); }
.acquisition-mail-actions strong, .acquisition-mail-actions span { display: block; }
.acquisition-mail-actions strong { color: var(--deck-text); font: 13px/1.35 var(--font-ae-mono); text-transform: uppercase; }
.acquisition-mail-actions span { color: var(--deck-muted); font-size: 12px; margin-top: 3px; }
.acquisition-mail-actions button, .acquisition-inbound-actions button { border: 1px solid var(--deck-success); border-radius: 3px; background: #34513a; color: var(--deck-text); padding: 8px 10px; font: 12px var(--font-ae-mono); cursor: pointer; }
.acquisition-mail-actions button:hover, .acquisition-inbound-actions button:hover { background: var(--deck-hover); }
.acquisition-mail-actions button:disabled { opacity: .45; cursor: not-allowed; }
.acquisition-inbound-panel { margin-top: 14px; }
.acquisition-inbound-list { display: grid; gap: 8px; margin-top: 12px; }
.acquisition-inbound-card { padding: 11px; border: 1px solid var(--deck-line-soft); background: #131813; }
.acquisition-inbound-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--deck-muted); font: 12px/1.35 var(--font-ae-mono); }
.acquisition-inbound-meta strong { color: var(--deck-text); overflow-wrap: anywhere; }
.acquisition-inbound-meta time { flex: 0 0 auto; }
.acquisition-inbound-card h3 { margin: 7px 0 4px; color: var(--deck-text); font-size: 13px; overflow-wrap: anywhere; }
.acquisition-inbound-card p { margin: 0; color: var(--deck-muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.acquisition-inbound-card > small { display: block; margin-top: 7px; color: var(--deck-muted); font: 12px/1.4 var(--font-ae-mono); }
.acquisition-inbound-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 10px; }
.acquisition-inbound-actions form { display: flex; gap: 6px; align-items: center; }
.acquisition-inbound-actions select { max-width: 260px; padding: 7px; border: 1px solid var(--deck-line); border-radius: 3px; background: var(--deck-input); color: var(--deck-text); font: 12px var(--font-ae-mono); }
.acquisition-inbound-actions .auth-button { padding: 7px 9px; }
.acquisition-command-panel { display: grid; gap: 10px; padding: 12px; margin-top: 14px; background: var(--deck-panel); border: 1px solid var(--deck-line); }
.acquisition-view-tabs { display: flex; gap: 0; flex-wrap: wrap; }
.acquisition-view-tabs a { padding: 8px 11px; border: 1px solid var(--deck-line); margin-right: -1px; color: var(--deck-muted); font: 12px var(--font-ae-mono); text-decoration: none; text-transform: uppercase; }
.acquisition-view-tabs a.active, .acquisition-view-tabs a:hover { position: relative; z-index: 1; border-color: var(--deck-focus); color: var(--deck-text); background: var(--deck-hover); }
.acquisition-filter-form { display: grid; grid-template-columns: minmax(180px, 1.4fr) repeat(4, minmax(125px, 1fr)) auto; gap: 7px; }
.acquisition-filter-form input, .acquisition-filter-form select, .acquisition-contact-form input, .acquisition-contact-form select, .acquisition-contact-form textarea, .acquisition-activity-form select, .acquisition-activity-form textarea, .acquisition-draft-form input, .acquisition-draft-form textarea { width: 100%; min-width: 0; min-height: 38px; padding: 8px; border: 1px solid var(--deck-line); border-radius: 3px; background: var(--deck-input); color: var(--deck-text); font: 12px/1.4 var(--font-ae-mono); }
.acquisition-filter-form input::placeholder, .acquisition-contact-form input::placeholder, .acquisition-contact-form textarea::placeholder, .acquisition-activity-form textarea::placeholder, .acquisition-draft-form input::placeholder, .acquisition-draft-form textarea::placeholder { color: var(--deck-dim); opacity: 1; }
.acquisition-filter-form input:focus, .acquisition-filter-form select:focus, .acquisition-contact-form input:focus, .acquisition-contact-form select:focus, .acquisition-contact-form textarea:focus, .acquisition-activity-form select:focus, .acquisition-activity-form textarea:focus, .acquisition-draft-form input:focus, .acquisition-draft-form textarea:focus { border-color: var(--deck-focus); box-shadow: 0 0 0 2px rgba(130, 199, 255, .16); outline: 0; }
.acquisition-filter-form button, .acquisition-contact-form button, .acquisition-activity-form button, .acquisition-draft-form button, .acquisition-drafts button { border: 1px solid var(--deck-success); border-radius: 3px; background: #34513a; color: var(--deck-text); padding: 8px 10px; font: 12px var(--font-ae-mono); cursor: pointer; }
.acquisition-filter-form button:hover, .acquisition-contact-form button:hover, .acquisition-activity-form button:hover, .acquisition-draft-form button:hover, .acquisition-drafts button:hover { background: var(--deck-hover); }
.acquisition-draft-form button:disabled, .acquisition-drafts button:disabled { opacity: 0.45; cursor: not-allowed; }
.acquisition-signal-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 14px; border: 1px solid var(--deck-line); }
.acquisition-signal-strip > * { min-height: 69px; padding: 9px 10px; border-right: 1px solid var(--deck-line); color: var(--deck-text); text-decoration: none; }
.acquisition-signal-strip > *:last-child { border-right: 0; }
.acquisition-signal-strip a:hover { background: rgba(255,255,255,.025); color: #fff; }
.acquisition-signal-strip span { display: block; color: var(--deck-muted); font: 12px var(--font-ae-mono); text-transform: uppercase; }
.acquisition-signal-strip strong { display: block; color: var(--deck-warning); font: 22px var(--font-ae-mono); margin-top: 9px; }
.probe-radar-recent { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.probe-radar-recent a { display: block; border: 1px solid var(--deck-line); padding: 9px 10px; color: var(--deck-text); text-decoration: none; background: rgba(255,255,255,.015); }
.probe-radar-recent a:hover { background: rgba(255,255,255,.035); color: #fff; }
.probe-radar-recent span, .probe-radar-recent small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.probe-radar-recent span { font: 12px var(--font-ae-mono); }
.probe-radar-recent small { margin-top: 5px; color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.acquisition-board { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: 12px; align-items: start; margin-top: 14px; overflow-x: auto; padding-bottom: 5px; }
.acquisition-board-column { min-height: 240px; }
.acquisition-board-stack { display: grid; gap: 8px; margin-top: 12px; }
.acquisition-contact-card { display: grid; gap: 4px; padding: 10px; background: #131813; border: 1px solid var(--deck-line-soft); color: var(--deck-text); text-decoration: none; }
.acquisition-contact-card { cursor: pointer; transition: border-color .16s ease, background-color .16s ease; }
.acquisition-contact-card:hover { border-color: var(--deck-focus); background: var(--deck-hover); color: #fff; text-decoration: none; }
.acquisition-contact-card strong { font-size: 14px; overflow-wrap: anywhere; }
.acquisition-contact-card small, .acquisition-contact-card > span:last-child { color: var(--deck-muted); font-size: 12px; line-height: 1.4; }
.acquisition-card-status, .acquisition-status, .acquisition-draft-state { color: var(--deck-success); font: 12px var(--font-ae-mono); text-transform: uppercase; }
.acquisition-contact-card.is-blocked, .acquisition-table tr.is-blocked { opacity: .55; }
.acquisition-column-empty { color: var(--deck-muted); font-size: 12px; margin: 13px 0; }
.acquisition-list-panel, .acquisition-radar-display { margin-top: 14px; }
.acquisition-table-wrap { overflow-x: auto; margin-top: 12px; }
.acquisition-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.acquisition-table th { color: var(--deck-muted); font: 12px var(--font-ae-mono); text-align: left; text-transform: uppercase; }
.acquisition-table th, .acquisition-table td { padding: 10px 8px; border-top: 1px solid var(--deck-line-soft); vertical-align: top; font-size: 12px; }
.acquisition-table td strong, .acquisition-table td small { display: block; }
.acquisition-table td small { color: var(--deck-muted); margin-top: 3px; }
.acquisition-table a { color: var(--deck-info); font: 12px var(--font-ae-mono); }
.acquisition-radar-map { position: relative; width: min(100%, 580px); aspect-ratio: 1; margin: 18px auto 8px; border: 1px solid rgba(147,188,102,.25); border-radius: 50%; background-image: linear-gradient(90deg, transparent 49.8%, rgba(147,188,102,.18) 50%, transparent 50.2%), linear-gradient(transparent 49.8%, rgba(147,188,102,.18) 50%, transparent 50.2%); overflow: hidden; }
.acquisition-radar-map::after { content: ''; position: absolute; inset: 0; background: conic-gradient(from 20deg, transparent 0 74%, rgba(147,188,102,.11) 75%, transparent 78%); pointer-events: none; }
.radar-ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(147,188,102,.3); border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; }
.radar-ring.ring-outer { width: 76%; height: 76%; }.radar-ring.ring-middle { width: 51%; height: 51%; }.radar-ring.ring-inner { width: 27%; height: 27%; }
.radar-core { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #d8ecd0; font: 9px var(--font-ae-mono); z-index: 2; }
.acquisition-radar-signal { --radar-distance: 40%; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-radius: 50%; background: #a7d98c; box-shadow: 0 0 12px rgba(167,217,140,.78); transform: rotate(var(--signal-angle)) translateY(calc(var(--radar-distance) * -1)) rotate(calc(var(--signal-angle) * -1)); z-index: 3; }
.acquisition-radar-signal.middle { --radar-distance: 27%; background: #9cc9df; box-shadow: 0 0 12px rgba(156,201,223,.8); }.acquisition-radar-signal.inner { --radar-distance: 14%; background: #f1cf88; box-shadow: 0 0 12px rgba(241,207,136,.8); }.acquisition-radar-signal.center { --radar-distance: 0%; background: #ddf5bf; }
.acquisition-radar-signal small { position: absolute; left: 14px; top: -5px; width: 92px; color: var(--deck-text); font: 9px var(--font-ae-mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acquisition-radar-legend, .acquisition-panel-note { color: var(--deck-muted); font-size: 12px; line-height: 1.5; margin: 10px 0 0; }
.cockpit-radar-mini { position: relative; width: 150px; height: 150px; margin: 14px auto 8px; border: 1px solid rgba(147,188,102,.25); border-radius: 50%; overflow: hidden; background-image: linear-gradient(90deg, transparent 49.5%, rgba(147,188,102,.18) 50%, transparent 50.5%), linear-gradient(transparent 49.5%, rgba(147,188,102,.18) 50%, transparent 50.5%); }
.cockpit-radar-mini::after { content: ''; position: absolute; inset: 0; background: conic-gradient(from 0deg, rgba(147,188,102,.18), transparent 20deg 360deg); transform: rotate(0deg); transform-origin: center; pointer-events: none; }
body.admin-command-deck.cockpit-mode-full .cockpit-radar-mini::after { animation: command-radar-sweep 12s linear infinite; }
.cockpit-radar-mini .radar-ring { transform: translate(-50%, -50%); }.cockpit-radar-mini .ring-outer { width: 76%; height: 76%; }.cockpit-radar-mini .ring-middle { width: 49%; height: 49%; }.cockpit-radar-mini .ring-inner { width: 24%; height: 24%; }
.cockpit-radar-signal { --radar-distance: 55px; position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; border-radius: 50%; background: #9dd282; box-shadow: 0 0 8px rgba(157,210,130,.75); transform: rotate(var(--signal-angle)) translateY(calc(var(--radar-distance) * -1)); }.cockpit-radar-signal.middle { --radar-distance: 36px; background:#94c6da; }.cockpit-radar-signal.inner { --radar-distance: 18px; background:#efc97e; }.cockpit-radar-signal.center { --radar-distance: 0; background:#e1f6c8; }
.cockpit-radar-readout { display: grid; gap: 3px; text-align: center; }.cockpit-radar-readout strong { color: var(--deck-text); font-size: 12px; }.cockpit-radar-readout span { color: var(--deck-muted); font-size: 10px; }
.acquisition-detail-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 14px; margin-top: 14px; align-items: start; }.acquisition-detail-grid.lower-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
.acquisition-contact-form, .acquisition-activity-form, .acquisition-draft-form { display: grid; gap: 10px; margin-top: 13px; }.acquisition-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.acquisition-contact-form label, .acquisition-activity-form label, .acquisition-draft-form label { display: grid; gap: 5px; color: var(--deck-muted); font: 12px/1.4 var(--font-ae-mono); text-transform: uppercase; }.acquisition-contact-form textarea, .acquisition-activity-form textarea, .acquisition-draft-form textarea { resize: vertical; line-height: 1.5; text-transform: none; }.acquisition-check { display: flex !important; align-items: center; gap: 7px; }.acquisition-check input { width: auto; min-height: 0; }.acquisition-archive-form { margin-top: 10px; }.acquisition-archive-form button { border: 1px solid var(--deck-error); background: transparent; color: #ffd3cb; padding: 7px 9px; font: 12px var(--font-ae-mono); cursor: pointer; }
.acquisition-form-section { display: grid; gap: 10px; padding: 12px 0; border-top: 1px solid var(--deck-line-soft); }
.acquisition-form-section:first-of-type { padding-top: 0; border-top: 0; }
.acquisition-form-section-title { margin: 0; color: var(--deck-signal); font: 13px var(--font-ae-mono); letter-spacing: .03em; }
.acquisition-readonly-value { display: block; min-height: 16px; padding: 8px; border: 1px solid var(--deck-line-soft); color: var(--deck-muted); font: 12px var(--font-ae-mono); text-transform: none; }
.acquisition-collapsible { border-top: 1px solid var(--deck-line-soft); }
.acquisition-collapsible summary { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; min-height: 48px; padding: 13px 4px; color: var(--deck-text); cursor: pointer; font: 15px/1.35 var(--font-ae-mono); list-style: none; }
.acquisition-collapsible summary::-webkit-details-marker { display: none; }
.acquisition-collapsible summary::after { content: "⌄"; color: var(--deck-info); font-size: 18px; line-height: 1; }
.acquisition-collapsible[open] summary::after { content: "⌃"; }
.acquisition-collapsible summary span { color: var(--deck-text); font-size: 15px; text-align: right; }
.acquisition-collapsible summary:hover { background: rgba(255, 255, 255, .035); }
.acquisition-collapsible > label { margin-top: 10px; }
.acquisition-lock-panel { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--deck-line); background: rgba(26, 34, 28, .55); }
.acquisition-lock-notice { margin: 0; color: #ffd3cb; font: 12px/1.45 var(--font-ae-mono); }
.acquisition-help { margin: 0; color: var(--deck-muted); font: 12px/1.5 var(--font-ae-mono); }
.acquisition-archive-panel { margin-top: 12px; padding-top: 12px; border-top: 1px solid #754c49; }
.acquisition-contact-side { display: grid; gap: 14px; }.acquisition-course-list { display: grid; margin: 13px 0 0; border-top: 1px solid var(--deck-line-soft); }.acquisition-course-list > div { padding: 9px 0; border-bottom: 1px solid var(--deck-line-soft); }.acquisition-course-list dt { color: var(--deck-dim); font: 10px var(--font-ae-mono); text-transform: uppercase; }.acquisition-course-list dd { margin: 4px 0 0; color: var(--deck-text); font-size: 12px; }.acquisition-drafts { display: grid; gap: 7px; margin-top: 13px; }.acquisition-drafts article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px; border: 1px solid var(--deck-line-soft); }.acquisition-drafts strong, .acquisition-drafts small { display: block; }.acquisition-drafts small { color: var(--deck-muted); font-size: 10px; margin-top: 3px; overflow-wrap: anywhere; }.acquisition-drafts form { grid-column: 1 / -1; }.acquisition-history { display: grid; gap: 0; margin: 13px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--deck-line-soft); }.acquisition-history li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--deck-line-soft); }.acquisition-history time { color: var(--deck-muted); font: 10px/1.35 var(--font-ae-mono); }.acquisition-history strong, .acquisition-history small { display: block; }.acquisition-history strong { color: var(--deck-text); font-size: 11px; }.acquisition-history small { color: var(--deck-muted); margin-top: 3px; font: 10px/1.35 var(--font-ae-mono); overflow-wrap: anywhere; }.acquisition-history p { color: var(--deck-text); margin: 5px 0 0; font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }

.acquisition-contact-header { align-items: start; padding-top: 16px; padding-bottom: 14px; }
.acquisition-contact-identity { min-width: 0; }
.acquisition-contact-identity h1 { overflow-wrap: anywhere; }
.acquisition-contact-email { display: inline-block; margin-top: 7px; color: #cae8bc; font: 11px var(--font-ae-mono); overflow-wrap: anywhere; }
.acquisition-contact-readouts { display: grid; grid-template-columns: repeat(4, minmax(108px, 1fr)); gap: 8px; min-width: min(100%, 520px); }
.acquisition-contact-readouts > div { display: grid; align-content: start; gap: 4px; min-width: 0; padding-left: 9px; border-left: 1px solid var(--deck-line-soft); }
.acquisition-contact-readouts span { color: var(--deck-dim); font: 9px var(--font-ae-mono); text-transform: uppercase; }
.acquisition-contact-readouts strong { color: var(--deck-text); font: 11px/1.35 var(--font-ae-mono); overflow-wrap: anywhere; }
.acquisition-contact-readouts .acquisition-status-chip { color: var(--deck-signal); }
.acquisition-inline-action { justify-self: start; padding: 0; border: 0; background: transparent; color: var(--deck-blue); font: 10px var(--font-ae-mono); cursor: pointer; }
.acquisition-inline-action:hover { color: #fff; text-decoration: underline; }
.acquisition-contact-header > .acquisition-blocked-note { grid-column: 1 / -1; margin: 0; }
.acquisition-workspace { grid-template-columns: minmax(0, 1.25fr) minmax(300px, .9fr); margin-top: 12px; }
.acquisition-workspace > .command-panel { min-width: 0; }
.acquisition-panel-kicker { color: var(--deck-dim); font: 10px var(--font-ae-mono); text-transform: uppercase; }
.acquisition-history-panel, .acquisition-draft-panel { align-self: start; }
.acquisition-draft-panel .acquisition-panel-note { margin-top: 7px; }
.acquisition-compact-actions { margin-top: 12px; }
.acquisition-activity-disclosure { border: 1px solid var(--deck-line-soft); background: rgba(19, 24, 19, .55); }
.acquisition-activity-disclosure summary { padding: 9px 11px; }
.acquisition-activity-disclosure summary span, .acquisition-activity-disclosure summary small { display: block; }
.acquisition-activity-disclosure summary small { color: var(--deck-dim); font: 10px var(--font-ae-mono); }
.acquisition-activity-disclosure .acquisition-activity-form { padding: 0 11px 11px; margin-top: 0; grid-template-columns: minmax(150px, .5fr) minmax(0, 1fr) auto; align-items: end; }
.acquisition-activity-disclosure .acquisition-activity-form textarea { min-height: 38px; }
.acquisition-maintenance { margin-top: 12px; border: 1px solid var(--deck-line); background: var(--deck-panel); }
.acquisition-maintenance > summary { padding: 11px 13px; }
.acquisition-maintenance > .acquisition-contact-form { padding: 0 13px 13px; }
.acquisition-maintenance .acquisition-form-section { padding-top: 11px; }
.acquisition-maintenance .acquisition-form-section:first-child { padding-top: 0; }
.acquisition-maintenance .acquisition-collapsible { margin-top: 3px; }
.acquisition-maintenance .acquisition-lock-panel { margin-top: 10px; }
.acquisition-maintenance > .acquisition-contact-form > button { justify-self: start; margin-top: 2px; }
.acquisition-more-details { border-top: 1px solid var(--deck-line-soft); }
.acquisition-more-details summary { padding: 9px 0; }
.acquisition-more-details > label { display: grid; gap: 5px; margin-top: 9px; color: var(--deck-muted); font: 11px/1.35 var(--font-ae-mono); text-transform: uppercase; }

/* Admin readability pass: keep the cockpit dense, but remove low-contrast microtype. */
body.admin-command-deck .command-panel,
body.admin-command-deck .command-line,
body.admin-command-deck .command-deck-header,
body.admin-command-deck .mission-card,
body.admin-command-deck .acquisition-command-panel,
body.admin-command-deck .acquisition-maintenance {
    border-color: var(--deck-line);
}

body.admin-command-deck .radio-panel,
body.admin-command-deck .sensor-panel,
body.admin-command-deck .radar-panel,
body.admin-command-deck .acquisition-inbound-card,
body.admin-command-deck .acquisition-contact-card {
    background: var(--deck-panel-strong);
}

body.admin-command-deck .acquisition-contact-form label,
body.admin-command-deck .acquisition-activity-form label,
body.admin-command-deck .acquisition-draft-form label,
body.admin-command-deck .acquisition-more-details > label {
    color: var(--deck-muted);
    font-size: 12px;
    line-height: 1.4;
}

body.admin-command-deck .acquisition-filter-form input,
body.admin-command-deck .acquisition-filter-form select,
body.admin-command-deck .acquisition-contact-form input,
body.admin-command-deck .acquisition-contact-form select,
body.admin-command-deck .acquisition-contact-form textarea,
body.admin-command-deck .acquisition-activity-form select,
body.admin-command-deck .acquisition-activity-form textarea,
body.admin-command-deck .acquisition-draft-form input,
body.admin-command-deck .acquisition-draft-form textarea,
body.admin-command-deck .command-new-project input,
body.admin-command-deck .command-new-project select,
body.admin-command-deck .overview-filter-bar input,
body.admin-command-deck .overview-filter-bar select {
    background: var(--deck-input);
    border-color: var(--deck-line);
    color: var(--deck-text);
    font-size: 12px;
    line-height: 1.4;
}

body.admin-command-deck .acquisition-filter-form input::placeholder,
body.admin-command-deck .acquisition-contact-form input::placeholder,
body.admin-command-deck .acquisition-contact-form textarea::placeholder,
body.admin-command-deck .acquisition-activity-form textarea::placeholder,
body.admin-command-deck .acquisition-draft-form input::placeholder,
body.admin-command-deck .acquisition-draft-form textarea::placeholder,
body.admin-command-deck .command-new-project input::placeholder {
    color: var(--deck-dim);
    opacity: 1;
}

body.admin-command-deck .acquisition-collapsible summary,
body.admin-command-deck .acquisition-maintenance > summary {
    min-height: 48px;
    padding: 13px 8px;
    color: var(--deck-text);
    font-size: 15px;
    line-height: 1.35;
}

body.admin-command-deck .acquisition-collapsible summary span,
body.admin-command-deck .acquisition-collapsible summary small {
    color: var(--deck-muted);
    font-size: 12px;
    line-height: 1.4;
}

body.admin-command-deck .acquisition-collapsible summary span:first-child {
    color: var(--deck-text);
    font-size: 15px;
}

body.admin-command-deck .acquisition-collapsible summary::after {
    color: var(--deck-info);
    font-size: 18px;
}

body.admin-command-deck .acquisition-collapsible summary:hover,
body.admin-command-deck .acquisition-collapsible summary:focus-visible {
    background: var(--deck-hover);
}

body.admin-command-deck .acquisition-history time,
body.admin-command-deck .acquisition-history strong,
body.admin-command-deck .acquisition-history small,
body.admin-command-deck .acquisition-history p,
body.admin-command-deck .acquisition-inbound-meta,
body.admin-command-deck .acquisition-contact-readouts span,
body.admin-command-deck .acquisition-contact-readouts strong {
    font-size: 12px;
    line-height: 1.45;
}

body.admin-command-deck .acquisition-history strong,
body.admin-command-deck .acquisition-contact-readouts strong {
    color: var(--deck-text);
    font-size: 13px;
}

body.admin-command-deck .acquisition-history p,
body.admin-command-deck .acquisition-inbound-card p {
    color: var(--deck-text);
    font-size: 13px;
}

body.admin-command-deck .acquisition-panel-kicker,
body.admin-command-deck .acquisition-contact-email,
body.admin-command-deck .acquisition-inline-action {
    font-size: 12px;
}

body.admin-command-deck .acquisition-dashboard-metric span,
body.admin-command-deck .acquisition-signal-strip span,
body.admin-command-deck .acquisition-radar-signal small,
body.admin-command-deck .cockpit-radar-readout span,
body.admin-command-deck .acquisition-course-list dt,
body.admin-command-deck .acquisition-drafts small {
    color: var(--deck-muted);
    font-size: 12px;
    line-height: 1.4;
}

body.admin-command-deck .acquisition-card-status,
body.admin-command-deck .acquisition-status,
body.admin-command-deck .acquisition-draft-state,
body.admin-command-deck .quick-launch > a,
body.admin-command-deck .quick-launch > button,
body.admin-command-deck .command-new-project label {
    font-size: 12px;
}

body.admin-command-deck .new-project-btn,
body.admin-command-deck .auth-button,
body.admin-command-deck .command-form-actions button,
body.admin-command-deck .quick-launch > a,
body.admin-command-deck .quick-launch > button {
    border-color: var(--deck-line);
}

body.admin-command-deck .acquisition-contact-card,
body.admin-command-deck .acquisition-dashboard-metric,
body.admin-command-deck .cockpit-panel-link,
body.admin-command-deck .mission-card,
body.admin-command-deck .transmission,
body.admin-command-deck .navigation-links a {
    cursor: pointer;
}

body.admin-command-deck .acquisition-contact-card:hover,
body.admin-command-deck .acquisition-dashboard-metric:hover,
body.admin-command-deck .cockpit-panel-link:hover,
body.admin-command-deck .mission-card:hover,
body.admin-command-deck .transmission:hover,
body.admin-command-deck .navigation-links a:hover {
    border-color: var(--deck-focus);
    background-color: var(--deck-hover);
}

body.admin-command-deck .acquisition-archive-panel {
    border-top-color: var(--deck-error);
}

body.admin-command-deck .machine-storage-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin-top: 12px;
    border-top: 1px solid var(--deck-line-soft);
}

body.admin-command-deck .machine-storage-summary > div {
    min-width: 0;
    padding: 9px 8px 0;
    border-right: 1px solid var(--deck-line-soft);
}

body.admin-command-deck .machine-storage-summary > div:last-child {
    border-right: 0;
}

body.admin-command-deck .machine-storage-summary span,
body.admin-command-deck .storage-stat-list dt {
    display: block;
    color: var(--deck-muted);
    font: 12px/1.35 var(--font-ae-mono);
    text-transform: uppercase;
}

body.admin-command-deck .machine-storage-summary strong {
    display: block;
    margin-top: 4px;
    color: var(--deck-text);
    font: 13px/1.4 var(--font-ae-mono);
    overflow-wrap: anywhere;
}

body.admin-command-deck .storage-state-attention { color: var(--deck-attention) !important; }
body.admin-command-deck .storage-state-critical { color: var(--deck-error) !important; }

body.admin-command-deck .storage-telemetry-grid,
body.admin-command-deck .storage-transfer-grid {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

body.admin-command-deck .storage-telemetry-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.admin-command-deck .storage-transfer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.admin-command-deck .storage-telemetry-card,
body.admin-command-deck .storage-transfer-card {
    min-width: 0;
}

body.admin-command-deck .storage-telemetry-card .panel-heading {
    align-items: center;
}

body.admin-command-deck .storage-telemetry-card .panel-heading p {
    margin: 0;
}

body.admin-command-deck .storage-level {
    color: var(--deck-muted);
    font: 12px/1.35 var(--font-ae-mono);
    text-align: right;
}

body.admin-command-deck .storage-primary {
    margin: 15px 0 10px;
    color: var(--deck-text);
    font-size: 15px;
    line-height: 1.45;
}

body.admin-command-deck .storage-meter {
    height: 9px;
    overflow: hidden;
    border: 1px solid var(--deck-line);
    background: var(--deck-input);
}

body.admin-command-deck .storage-meter-bar {
    display: block;
    height: 100%;
    min-width: 2px;
    background: var(--deck-success);
}

body.admin-command-deck .storage-meter-bar.storage-state-attention { background: var(--deck-attention); }
body.admin-command-deck .storage-meter-bar.storage-state-critical { background: var(--deck-error); }

body.admin-command-deck .storage-stat-list {
    display: grid;
    gap: 9px;
    margin: 14px 0 0;
}

body.admin-command-deck .storage-stat-list > div {
    display: grid;
    grid-template-columns: minmax(110px, .6fr) minmax(0, 1fr);
    gap: 10px;
    padding-top: 8px;
    border-top: 1px solid var(--deck-line-soft);
}

body.admin-command-deck .storage-stat-list dd {
    min-width: 0;
    margin: 0;
    color: var(--deck-text);
    font-size: 13px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

body.admin-command-deck .storage-note,
body.admin-command-deck .storage-transfer-card span {
    color: var(--deck-muted);
    font-size: 12px;
    line-height: 1.5;
}

body.admin-command-deck .storage-transfer-card h2 {
    margin: 4px 0 12px;
    color: var(--deck-text);
    font-size: 17px;
}

body.admin-command-deck .storage-transfer-card strong {
    display: block;
    color: var(--deck-text);
    font: 15px/1.4 var(--font-ae-mono);
}

body.admin-command-deck .storage-transfer-failed {
    border-color: var(--deck-error);
}

body.admin-command-deck .storage-alert-panel {
    margin-top: 14px;
    padding: 11px 13px;
    border: 1px solid var(--deck-attention);
    background: rgba(83, 64, 28, .35);
    color: var(--deck-text);
}

body.admin-command-deck .storage-alert-panel strong {
    color: var(--deck-attention);
    font: 13px var(--font-ae-mono);
}

body.admin-command-deck .storage-alert-panel ul {
    margin: 7px 0 0;
    padding-left: 18px;
    color: var(--deck-muted);
    font-size: 13px;
    line-height: 1.5;
}

body.admin-command-deck .engine-room-note {
    margin-top: 14px;
}

.project-operations { margin-top: 14px; background: transparent; border: 0; border-top: 1px solid var(--deck-line); box-shadow: none; padding: 18px 0 0; }
.project-heading { align-items: flex-start; }
.project-operations-actions { display: grid; justify-items: end; gap: 8px; }
.project-create-primary { min-height: 36px; padding: 8px 13px; border: 1px solid #78956d; border-radius: 3px; background: #35503b; color: var(--deck-text); font: 12px var(--font-ae-mono); cursor: pointer; }
.project-create-primary:hover, .project-create-primary:focus-visible { border-color: var(--deck-info); background: #3c5c48; color: #fff; }
.quick-launch { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.quick-launch > a,
.quick-launch > button { min-height: 28px; padding: 5px 8px; font-family: var(--font-ae-mono); font-size: 10px; }
.command-filter-bar { margin: 13px 0 12px; padding: 10px; border: 1px solid var(--deck-line); background: var(--deck-panel); }
.admin-command-deck .overview-filter-bar select,
.admin-command-deck .overview-filter-bar input { background: #101411; color: var(--deck-text); border-color: var(--deck-line); }
.admin-command-deck .overview-filter-bar button { background: #324639; border-color: #617b58; }
.command-new-project { margin: 14px 0 16px; padding: 17px; border: 1px solid #647858; background: linear-gradient(135deg, #182019, #151b17); box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.command-new-project[hidden] { display: none; }
.command-new-project-heading { display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--deck-line-soft); }
.command-new-project-heading h3 { margin: 0; color: var(--deck-text); font-size: 18px; }
.command-new-project-heading span { display: block; margin-top: 4px; color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.command-new-project-close { border: 1px solid var(--deck-line); background: transparent; color: var(--deck-muted); padding: 7px 9px; font: 11px var(--font-ae-mono); cursor: pointer; }
.command-new-project-close:hover { border-color: var(--deck-info); color: var(--deck-text); }
.command-new-project form { display: grid; gap: 13px; }
.command-new-project .form-group { margin: 0; }
.command-new-project label { display: grid; gap: 5px; color: var(--deck-muted); font: 10px var(--font-ae-mono); }
.command-new-project input,
.command-new-project select { width: 100%; margin-top: 5px; padding: 9px; background: #101411; border: 1px solid var(--deck-line); border-radius: 3px; color: var(--deck-text); font: inherit; }
.new-project-hint { color: var(--deck-dim); font-size: 10px; line-height: 1.35; margin-top: 5px; }
.project-create-choice-grid { display: grid; grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr); gap: 12px; align-items: stretch; }
.project-create-choice { min-width: 0; padding: 12px; border: 1px solid var(--deck-line-soft); background: rgba(11, 16, 13, .45); }
.project-create-choice-kicker { display: block; margin-bottom: 7px; color: var(--deck-info); font: 10px var(--font-ae-mono); letter-spacing: .08em; }
.project-create-or { display: grid; place-items: center; color: var(--deck-dim); font: 11px var(--font-ae-mono); }
.project-create-submit { background: #35503b !important; border-color: #78956d !important; }
.command-form-actions { display: flex; gap: 7px; }
.command-form-actions .secondary { background: #1b211d; }
.project-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-command-deck .project-card { min-height: 214px; margin: 0; border-color: var(--deck-line); border-radius: 4px; background: #181d1a; }
.admin-command-deck .project-card:hover { border-color: #718275; }
.admin-command-deck .project-card .project-card-gradient { background: linear-gradient(90deg, rgba(10, 13, 11, .98) 0%, rgba(10, 13, 11, .92) 48%, rgba(10, 13, 11, .58) 78%, rgba(10, 13, 11, .28) 100%); }
.admin-command-deck .project-card .project-card-bg { top: 10px; right: 10px; width: 39%; height: calc(100% - 20px); transform: none; opacity: .08; border: 1px solid rgba(151, 177, 155, .18); border-radius: 3px; background-size: contain; background-position: center; }
.admin-command-deck .project-card .project-card-bg.is-loaded { opacity: .82; }
.admin-command-deck .project-card .project-card-preview-empty { right: 6%; width: 28%; }
.admin-command-deck .project-card .project-info { max-width: 64%; padding: 19px 20px; }
.admin-command-deck .project-card .project-name { color: #f5f7f2; }
.admin-command-deck .project-card .project-meta,
.admin-command-deck .project-card .project-last-modified,
.admin-command-deck .project-card .project-pdf-date { font-family: var(--font-ae-mono); font-size: 11px; }
.admin-command-deck .project-card .project-card-side { min-width: 142px; padding: 14px; }
.admin-command-deck .project-status-inline { border-radius: 3px; font-family: var(--font-ae-mono); font-size: 10px; }
.project-empty-state { grid-column: 1 / -1; border-top: 1px solid var(--deck-line); }

body.admin-command-deck.cockpit-mode-quiet .command-deck-header,
body.admin-command-deck.cockpit-mode-quiet .command-line,
body.admin-command-deck.cockpit-mode-quiet .command-panel,
body.admin-command-deck.cockpit-mode-quiet .mission-card { box-shadow: none; }
body.admin-command-deck.cockpit-mode-quiet .mission-card:hover { transform: none; }
body.admin-command-deck.cockpit-mode-quiet .radar-sweep { animation: none; }
body.admin-command-deck.cockpit-mode-plain { --deck-bg: #171717; --deck-panel: #202020; --deck-panel-deep: #191919; --deck-line: #454545; --deck-line-soft: #323232; --deck-signal: #8aa88a; background-image: none; }
body.admin-command-deck.cockpit-mode-plain .command-eyebrow,
body.admin-command-deck.cockpit-mode-plain .panel-heading p,
body.admin-command-deck.cockpit-mode-plain .mission-card-lamp,
body.admin-command-deck.cockpit-mode-plain .status-lamp,
body.admin-command-deck.cockpit-mode-plain .radio-wave,
body.admin-command-deck.cockpit-mode-plain .radar-sweep { opacity: 0; }
body.admin-command-deck.cockpit-mode-plain .mission-card:hover { transform: none; }
body.admin-command-deck.cockpit-mode-plain .radar-sweep { animation: none; }

.audio-feedback,
.audio-achievement {
    position: fixed;
    z-index: 1200;
    border: 1px solid var(--deck-line);
    background: rgba(16, 20, 17, .96);
    color: var(--deck-text);
    font-family: var(--font-ae-mono);
    pointer-events: none;
}
.audio-feedback {
    right: 18px;
    bottom: 18px;
    padding: 8px 10px;
    color: var(--deck-signal);
    font-size: 10px;
}
.audio-achievement {
    right: 18px;
    bottom: 18px;
    display: grid;
    gap: 4px;
    width: min(310px, calc(100vw - 36px));
    padding: 13px 14px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .18s ease, transform .18s ease;
}
.audio-achievement.is-visible { opacity: 1; transform: translateY(0); }
.audio-achievement-kicker { color: var(--deck-warning); font-size: 9px; letter-spacing: .08em; }
.audio-achievement strong { color: var(--deck-text); font-size: 15px; }
.audio-achievement span { color: var(--deck-muted); font-size: 11px; }
.audio-achievement small { color: var(--deck-dim); font-size: 9px; }
.audio-magic-switch { animation: audio-switch-pulse .22s ease both; }
@keyframes audio-switch-pulse {
    0% { transform: translateX(0); }
    45% { transform: translateX(3px); }
    100% { transform: translateX(0); }
}

@media (max-width: 1120px) {
    .mission-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .radar-panel { grid-column: 1 / -1; }
    .command-line { grid-template-columns: 1fr 1fr; }
    .cockpit-preferences { grid-column: 1 / -1; flex-direction: row; align-items: center; }
    .cockpit-preferences .sound-control { width: auto; }
    .acquisition-filter-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .acquisition-signal-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .acquisition-board { grid-template-columns: repeat(2, minmax(230px, 1fr)); }
}

@media (max-width: 780px) {
    .command-deck-shell { width: min(100% - 20px, 680px); padding-top: 10px; }
    .command-deck-header { grid-template-columns: 1fr auto; gap: 10px; }
    .admin-global-header { grid-template-columns: minmax(0, 1fr) auto; top: 8px; }
    .admin-global-navigation { grid-column: 1 / -1; justify-content: flex-start; overflow-x: auto; padding-top: 2px; scrollbar-width: thin; }
    .admin-global-navigation a { flex: 0 0 auto; }
    .admin-context-actions { grid-column: 2; grid-row: 1; }
    .command-header-status { display: none; }
    .command-header-actions { grid-column: 1 / -1; justify-content: stretch; }
    .command-header-actions > * { flex: 1 1 0; text-align: center; }
    .command-line { grid-template-columns: 1fr; padding: 15px; gap: 15px; }
    .command-intro h1 { font-size: 24px; }
    .command-readouts { border-left: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .command-readout { padding: 8px 0; border-right: 0; border-top: 1px solid var(--deck-line-soft); }
    .command-readout:nth-child(2) { padding-left: 12px; }
    .command-last-signal { grid-column: 1 / -1; }
    .cockpit-preferences { flex-wrap: wrap; }
    .mission-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mission-card { min-height: 110px; }
    .primary-grid,
    .secondary-grid,
    .project-card-grid { grid-template-columns: 1fr; }
    .transmission { grid-template-columns: 8px minmax(0, 1fr); }
    .transmission time { grid-column: 2; }
    .transmission-copy { grid-column: 2; }
    .transmission-list { max-height: 420px; }
    .audio-feedback,
    .audio-achievement { right: 10px; bottom: 10px; }
    .project-heading { align-items: flex-start; flex-direction: column; }
    .project-operations-actions { width: 100%; justify-items: stretch; }
    .project-create-primary { width: 100%; }
    .quick-launch { justify-content: flex-start; }
    .command-new-project-heading { flex-direction: column; }
    .command-new-project-close { align-self: flex-start; }
    .project-create-choice-grid { grid-template-columns: 1fr; gap: 8px; }
    .project-create-or { min-height: 18px; }
    .admin-command-deck .project-card { height: 184px; min-height: 184px; padding: 0; }
    .admin-command-deck .project-card .project-info { max-width: 63%; padding: 15px 14px; }
    .admin-command-deck .project-card .project-card-side { min-width: 104px; padding: 10px; }
    .admin-command-deck .project-card .project-card-bg { right: 7px; width: 42%; height: calc(100% - 14px); top: 7px; }
    .command-form-actions { grid-column: auto; }
    .acquisition-intro { align-items: flex-start; flex-direction: column; }
    .acquisition-contact-header { display: grid; gap: 12px; }
    .acquisition-contact-readouts { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; width: 100%; }
    .acquisition-contact-readouts > div { padding-left: 0; padding-top: 7px; border-top: 1px solid var(--deck-line-soft); border-left: 0; }
    .acquisition-contact-readouts > div:nth-child(-n + 2) { padding-top: 0; border-top: 0; }
    .acquisition-activity-disclosure .acquisition-activity-form { grid-template-columns: 1fr; }
    .acquisition-mail-actions { align-items: stretch; flex-direction: column; }
    .acquisition-mail-actions button { width: 100%; }
    .acquisition-filter-form, .acquisition-signal-strip, .acquisition-detail-grid, .acquisition-detail-grid.lower-grid, .acquisition-form-grid { grid-template-columns: 1fr; }
    .probe-radar-recent { grid-template-columns: 1fr; }
    .acquisition-dashboard-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .acquisition-signal-strip > * { border-right: 0; border-bottom: 1px solid var(--deck-line); }.acquisition-signal-strip > *:last-child { border-bottom: 0; }
    .acquisition-board { grid-template-columns: minmax(230px, 88vw); }
    .acquisition-radar-map { width: min(100%, 330px); }
    .acquisition-radar-signal small { display: none; }
    .acquisition-history li { grid-template-columns: 1fr; gap: 4px; }
    .acquisition-collapsible summary { align-items: flex-start; }
    .acquisition-collapsible summary span { max-width: 50%; }
    .acquisition-inbound-meta { align-items: flex-start; flex-direction: column; gap: 4px; }
    .acquisition-inbound-actions, .acquisition-inbound-actions form, .acquisition-inbound-actions select { width: 100%; }
    .acquisition-inbound-actions button { flex: 1 1 auto; }
    .machine-storage-summary,
    .storage-telemetry-grid,
    .storage-transfer-grid { grid-template-columns: 1fr; }
    .machine-storage-summary > div { border-right: 0; border-bottom: 1px solid var(--deck-line-soft); }
    .machine-storage-summary > div:last-child { border-bottom: 0; }
    .storage-stat-list > div { grid-template-columns: minmax(100px, .8fr) minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .admin-command-deck *,
    .admin-command-deck *::before,
    .admin-command-deck *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

.admin-project-page .chat-bubble-row {
    display: flex;
    width: 100%;
    padding: 4px 0;
    background: transparent;
    border: 0;
}

.admin-project-page .chat-bubble-row.customer {
    justify-content: flex-start;
}

.admin-project-page .chat-bubble-row.ae {
    justify-content: flex-end;
}

.admin-project-page .chat-bubble {
    width: fit-content;
    max-width: min(900px, 70%);
    padding: 7px 9px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 7px;
    background: #252525;
}

.admin-project-page .chat-bubble-row.ae .chat-bubble {
    border-color: rgba(74,158,255,.22);
    background: #202b38;
}

.admin-project-page .chat-bubble-meta {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 3px;
}

.admin-project-page .chat-bubble-meta .chat-header {
    display: contents;
}

.admin-project-page .chat-bubble-meta .chat-date {
    order: -1;
}

.customer-project-page .chat-file-meta {
    margin: 2px 0 0 22px;
    color: var(--text-muted);
    font-size: 10px;
}

.customer-project-page .send-saved-correction-form {
    margin: 7px 0 0;
}

.customer-project-page .send-saved-correction-form button {
    min-height: 30px;
    padding: 6px 9px;
    font-size: 11px;
}

.customer-project-page .pdf-version-section {
    margin-top: 22px;
    padding: 0;
    background: transparent;
    border: 0;
}

.customer-project-page .customer-version-details > summary {
    margin-bottom: 0;
}

.customer-project-page .system-activities {
    margin-top: 16px;
}

.customer-project-page .system-activities summary {
    display: flex;
    min-height: 34px;
    align-items: center;
    justify-content: space-between;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background: #252525;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    list-style: none;
}

.customer-project-page .system-activities summary::-webkit-details-marker {
    display: none;
}

.customer-project-page .system-activities summary::after {
    content: "⌄";
    font-size: 15px;
    font-weight: 400;
}

.customer-project-page .system-activities[open] summary::after {
    content: "⌃";
}

.customer-project-page .system-activities-list {
    padding-top: 7px;
}

.customer-project-page .system-activities-empty {
    padding: 8px 10px;
    color: var(--text-muted);
    font-size: 10px;
}

.admin-project-page .system-activities {
    margin-top: 14px;
}

.admin-project-page .system-activities summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 4px;
    background: #252525;
    color: var(--text-soft);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    list-style: none;
}

.admin-project-page .system-activities summary::-webkit-details-marker {
    display: none;
}

.admin-project-page .system-activities summary::after {
    content: "⌄";
    color: var(--text-muted);
    font-size: 15px;
}

.admin-project-page .system-activities[open] summary::after {
    content: "⌃";
}

.admin-project-page .system-activities-list {
    margin-top: 8px;
}

.customer-project-page .details-count {
    margin-left: auto;
    margin-right: 10px;
    color: var(--text-muted);
    font-size: 10px;
    font-weight: 500;
}

.customer-project-page .customer-version-details .pdf-version-header {
    margin-top: 10px;
}

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

.project-preview-modal {
    position: fixed;
    z-index: 5000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, .88);
    opacity: 1;
    transition: opacity 180ms ease;
}

.project-preview-body {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(90vw, 1100px);
    max-height: 90vh;
    outline: 0;
}

.project-preview-body img {
    display: block;
    max-width: 90vw;
    max-height: 90vh;
    border: 0;
    object-fit: contain;
    cursor: zoom-out;
    animation: preview-image-in 180ms ease both;
}

.project-preview-body iframe {
    width: min(90vw, 1100px);
    height: 90vh;
    border: 0;
}

body.preview-modal-open {
    overflow: hidden;
}

@keyframes preview-image-in {
    from { opacity: 0; transform: scale(.985); }
    to { opacity: 1; transform: scale(1); }
}

@media (max-width: 800px) {
    .customer-project-page .container {
        padding-top: 12px;
    }

    .customer-project-page .project-top-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .customer-project-page .project-page-title {
        font-size: 22px;
    }

    .customer-project-page #pdf-preview {
        grid-column: 1;
        grid-row: 1;
        order: -1;
    }

    .customer-project-page .project-panel {
        grid-column: 1;
        grid-row: 2;
    }

    .customer-project-page .current-version-content {
        min-height: 0;
        padding: 10px;
    }

    .customer-project-page .current-preview-trigger img {
        width: min(100%, 210px);
        max-height: 170px;
        margin-bottom: 7px;
    }

    .customer-project-page .communication-composer {
        padding: 10px;
    }

    .customer-project-page .communication-attachment-row {
        align-items: stretch;
        flex-direction: column;
        gap: 5px;
    }

    .customer-project-page .chat-content {
        padding-left: 0;
    }

    .customer-project-page .chat-bubble {
        max-width: 90%;
    }

    .project-preview-modal {
        padding: 10px;
    }

    .project-preview-body {
        width: 94vw;
        max-height: 85vh;
    }

    .project-preview-body img {
        max-width: 94vw;
        max-height: 85vh;
    }

    .project-preview-body iframe {
        width: 94vw;
        height: 85vh;
    }
}

/* =========================================================
   Admin customer directory / shared command navigation
   ========================================================= */

.admin-shared-navigation {
    min-width: 0;
}

.admin-shared-navigation > a,
.admin-shared-navigation > span,
.admin-shared-navigation > button {
    white-space: nowrap;
}

.admin-shared-navigation .admin-nav-current {
    color: var(--deck-text);
    border-bottom: 1px solid var(--deck-signal);
    padding: 8px 2px 6px;
    font: 700 12px/1.2 var(--font-ae-mono);
}

.admin-footer {
    width: min(1580px, calc(100% - 32px));
    margin: 8px auto 0;
    border-top: 1px solid var(--deck-line);
    color: var(--deck-muted);
    font: 11px/1.4 var(--font-ae-mono);
}

.admin-footer-inner {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 13px 2px 20px;
}

.admin-footer-system,
.admin-footer-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 15px;
}

.admin-footer-system strong {
    color: var(--deck-text);
    font-size: 11px;
}

.admin-footer-health {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.admin-footer-health i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--deck-signal);
}

.admin-footer-links {
    justify-content: flex-end;
}

.admin-footer a {
    color: var(--deck-muted);
    font-weight: 400;
    text-decoration: none;
}

.admin-footer a:hover {
    color: var(--deck-text);
    text-decoration: underline;
}

.inline-admin-header {
    margin: -10px -10px 22px;
    border: 0;
    border-bottom: 1px solid var(--deck-line);
    box-shadow: none;
}

.admin-edit-customer-page {
    padding-top: 22px;
}

.admin-edit-customer-page > main.panel {
    max-width: 1060px;
    padding: 0 22px 26px;
    background: transparent;
    border: 0;
}

.admin-edit-customer-page > main.panel > h1 {
    margin-bottom: 22px;
}

.admin-customer-detail-page .container {
    max-width: 1180px;
    padding-top: 22px;
}

.admin-customer-detail-page .inline-admin-header {
    margin: 0 0 18px;
}

.admin-project-command-header {
    margin: -8px 0 18px;
}

.customers-shell {
    max-width: 1580px;
}

.customers-intro {
    grid-template-columns: minmax(0, 1fr) auto;
}

.customers-intro .new-project-btn {
    align-self: center;
}

.customer-metrics {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}

.customer-metric {
    display: grid;
    min-height: 92px;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--deck-line);
    background: var(--deck-panel);
    color: var(--deck-muted);
    text-decoration: none;
}

.customer-metric:hover {
    color: var(--deck-text);
    border-color: var(--deck-blue);
    text-decoration: none;
}

.customer-metric span,
.customer-card-meta dt,
.customer-directory-toolbar label > span,
.customer-create-form label,
.customer-results-heading > span {
    color: var(--deck-dim);
    font: 11px/1.35 var(--font-ae-mono);
}

.customer-metric strong {
    color: var(--deck-text);
    font-size: 28px;
    line-height: 1;
}

.customer-metric.positive strong { color: var(--deck-signal); }
.customer-metric.warning strong { color: var(--deck-warning); }
.customer-metric.signal strong { color: var(--deck-blue); }

.customer-directory-panel {
    padding: 11px;
}

.customer-directory-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) repeat(2, minmax(150px, .7fr)) auto auto;
    gap: 8px;
    align-items: end;
    margin: 0;
}

.customer-directory-toolbar label,
.customer-create-form label {
    display: grid;
    gap: 5px;
    margin: 0;
}

.customer-directory-toolbar input,
.customer-directory-toolbar select,
.customer-create-form input,
.customer-create-form textarea {
    width: 100%;
    min-width: 0;
    border: 1px solid var(--deck-line);
    border-radius: 2px;
    background: #111613;
    color: var(--deck-text);
    font: 13px/1.35 var(--font-ae-mono);
    padding: 8px 9px;
}

.customer-directory-toolbar button,
.customer-create-form button,
.customer-card-actions a,
.customer-card-actions button {
    width: auto;
    min-height: 34px;
    border: 1px solid var(--deck-line);
    border-radius: 2px;
    background: #1a211d;
    color: var(--deck-text);
    font: 700 12px/1.2 var(--font-ae-mono);
    padding: 8px 10px;
    cursor: pointer;
    text-decoration: none;
}

.customer-directory-toolbar button:hover,
.customer-card-actions a:hover,
.customer-card-actions button:hover {
    border-color: var(--deck-blue);
    color: #fff;
    text-decoration: none;
}

.customer-filter-reset {
    align-self: center;
    padding: 8px 2px;
    color: var(--deck-muted);
    font: 11px var(--font-ae-mono);
    white-space: nowrap;
}

.customer-create-panel {
    margin-top: 12px;
    padding: 0;
}

.customer-create-panel summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    color: var(--deck-text);
    cursor: pointer;
    list-style: none;
}

.customer-create-panel summary::-webkit-details-marker { display: none; }
.customer-create-panel summary b { color: var(--deck-signal); font-size: 20px; font-weight: 400; }
.customer-create-panel summary small { display: block; margin-top: 3px; color: var(--deck-dim); font: 11px var(--font-ae-mono); }
.customer-create-panel[open] summary { border-bottom: 1px solid var(--deck-line-soft); }

.customer-create-form {
    display: grid;
    gap: 13px;
    padding: 15px;
}

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

.customer-create-form .is-wide { grid-column: 1 / -1; }
.customer-create-form textarea { resize: vertical; }

.customer-results-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 12px;
    margin: 25px 0 10px;
}

.customer-results-heading h2 {
    margin: 2px 0 0;
    color: var(--deck-text);
    font-size: 20px;
}

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

.customer-command-card {
    display: grid;
    gap: 12px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--deck-line);
    background: var(--deck-panel);
}

.customer-command-card.is-disabled { opacity: .72; }

.customer-card-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.customer-card-company {
    display: block;
    overflow-wrap: anywhere;
    color: var(--deck-text);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.15;
}

.customer-card-header p,
.customer-card-header small {
    display: block;
    overflow-wrap: anywhere;
    margin-top: 5px;
    color: var(--deck-muted);
    font: 12px/1.4 var(--font-ae-mono);
}

.customer-card-header p a { color: var(--deck-muted); font-weight: 400; }

.customer-status-chip,
.customer-info-chip {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: 4px 7px;
    border: 1px solid var(--deck-line);
    color: var(--deck-muted);
    font: 11px/1.2 var(--font-ae-mono);
    overflow-wrap: anywhere;
}

.customer-status-chip { flex: 0 0 auto; }
.customer-status-chip.is-success, .customer-info-chip.is-positive { color: var(--deck-signal); border-color: #587448; }
.customer-status-chip.is-info, .customer-info-chip.is-info { color: var(--deck-blue); border-color: #3f6171; }
.customer-status-chip.is-warning, .customer-info-chip.is-warning { color: var(--deck-warning); border-color: #725c34; }

.customer-card-chips { display: flex; flex-wrap: wrap; gap: 5px; }

.customer-card-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    padding-top: 10px;
    border-top: 1px solid var(--deck-line-soft);
}

.customer-card-meta div { min-width: 0; }
.customer-card-meta dd { margin-top: 3px; color: var(--deck-text); font: 12px/1.35 var(--font-ae-mono); overflow-wrap: anywhere; }

.customer-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.customer-card-actions .customer-primary-action { background: #304c39; border-color: #698854; }
.customer-card-actions form { margin: 0; }
.customer-more-actions { margin-left: auto; position: relative; }
.customer-more-actions summary { cursor: pointer; color: var(--deck-muted); font: 11px var(--font-ae-mono); padding: 7px 2px; list-style: none; }
.customer-more-actions summary::-webkit-details-marker { display: none; }
.customer-more-actions > div { position: absolute; right: 0; bottom: calc(100% + 5px); z-index: 2; display: grid; gap: 4px; min-width: 120px; padding: 7px; border: 1px solid var(--deck-line); background: #111613; }
.customer-more-actions > div a, .customer-more-actions > div button { width: 100%; text-align: left; }
.customer-empty-state { margin-top: 12px; }

@media (max-width: 1120px) {
    .customer-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .customer-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-directory-toolbar { grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(130px, .7fr)) auto; }
    .customer-filter-reset { grid-column: 4; }
}

@media (max-width: 760px) {
    .command-deck-shell { width: min(100% - 20px, 640px); padding-top: 12px; }
    .command-deck-header { grid-template-columns: 1fr; gap: 10px; }
    .admin-shared-navigation { justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; }
    .admin-footer { width: calc(100% - 20px); }
    .admin-footer-inner { align-items: flex-start; flex-direction: column; gap: 9px; }
    .admin-footer-links { justify-content: flex-start; }
    .customers-intro { grid-template-columns: 1fr; }
    .customer-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-directory-toolbar { grid-template-columns: 1fr; }
    .customer-filter-reset { grid-column: auto; }
    .customer-create-grid, .customer-card-grid { grid-template-columns: 1fr; }
    .customer-create-form .is-wide { grid-column: auto; }
    .customer-results-heading { align-items: flex-start; flex-direction: column; }
    .customer-card-header { flex-direction: column; }
    .customer-card-meta { grid-template-columns: 1fr; }
    .customer-more-actions { margin-left: 0; }
    .inline-admin-header { margin-left: 0; margin-right: 0; }
}

/* =========================================================
   Customer probe mission view
   ========================================================= */

.probe-mission-intro { align-items: center; }
.probe-intro-state { display: inline-flex; align-items: center; gap: 7px; color: var(--deck-muted); font: 12px var(--font-ae-mono); white-space: nowrap; }
.probe-state-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--deck-dim); box-shadow: 0 0 0 3px rgba(147,188,102,.08); }
.probe-mission-page[data-probe-state="scanning"] .probe-state-dot,
.probe-mission-page[data-probe-state="preparing"] .probe-state-dot { background: var(--deck-info); box-shadow: 0 0 0 3px rgba(130,199,255,.12), 0 0 10px rgba(130,199,255,.3); }
.probe-mission-page[data-probe-state="completed"] .probe-state-dot { background: var(--deck-success); }
.probe-mission-page[data-probe-state="partial"] .probe-state-dot { background: var(--deck-warning); }
.probe-mission-page[data-probe-state="failed"] .probe-state-dot { background: var(--deck-error); }
.probe-launch-panel { margin-top: 14px; }
.probe-form { display: grid; gap: 10px; }
.probe-form label { display: grid; gap: 6px; color: var(--deck-muted); font: 12px/1.4 var(--font-ae-mono); }
.probe-form input { width: 100%; min-height: 40px; border: 1px solid var(--deck-line); border-radius: 3px; background: var(--deck-input); color: var(--deck-text); padding: 9px 10px; font: 13px var(--font-ae-mono); }
.probe-form input:focus { border-color: var(--deck-focus); outline: 0; box-shadow: 0 0 0 2px rgba(130,199,255,.14); }
.probe-launch-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.probe-launch-actions button { width: auto; min-height: 38px; border: 1px solid var(--deck-success); border-radius: 3px; background: #34513a; color: var(--deck-text); padding: 9px 12px; font: 700 12px var(--font-ae-mono); cursor: pointer; }
.probe-launch-actions span, .probe-normalized { color: var(--deck-muted); font: 11px/1.45 var(--font-ae-mono); }
.probe-normalized strong { color: var(--deck-text); overflow-wrap: anywhere; }
.probe-technical-disclosure, .probe-collapsible { margin-top: 12px; }
.probe-technical-disclosure { border-top: 1px solid var(--deck-line-soft); }
.probe-technical-disclosure summary { padding: 10px 0 0; color: var(--deck-muted); cursor: pointer; font: 12px var(--font-ae-mono); list-style: none; }
.probe-technical-disclosure summary::-webkit-details-marker, .probe-collapsible summary::-webkit-details-marker { display: none; }
.probe-technical-disclosure summary::after, .probe-collapsible summary::after { content: "⌄"; float: right; color: var(--deck-info); font-size: 17px; }
.probe-limit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.probe-limit-grid > div { display: grid; gap: 3px; padding: 9px; border: 1px solid var(--deck-line-soft); background: #151b20; }
.probe-limit-grid strong { color: var(--deck-text); font: 15px var(--font-ae-mono); }
.probe-limit-grid span { color: var(--deck-muted); font: 11px var(--font-ae-mono); }

.probe-mission-stage { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr); gap: 0; min-height: 250px; margin-top: 14px; border: 1px solid var(--deck-line); background: #0c1112; overflow: hidden; }
.probe-stage-copy { display: grid; align-content: center; gap: 8px; min-width: 0; padding: 22px; border-left: 1px solid var(--deck-line-soft); background: rgba(21,29,26,.92); }
.probe-stage-copy h2 { color: var(--deck-text); font-size: 21px; line-height: 1.15; }
.probe-stage-target { color: var(--deck-info); overflow-wrap: anywhere; font: 12px var(--font-ae-mono); }
.probe-stage-action { min-height: 34px; color: var(--deck-muted); font: 12px/1.45 var(--font-ae-mono); }
.probe-stage-readouts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.probe-stage-readouts > div { display: grid; gap: 3px; padding-top: 7px; border-top: 1px solid var(--deck-line-soft); }
.probe-stage-readouts strong { color: var(--deck-text); font: 16px var(--font-ae-mono); }
.probe-stage-readouts span { color: var(--deck-muted); font: 10px var(--font-ae-mono); }

.probe-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.probe-preview-card { min-width: 0; }
.probe-card-icon { color: var(--deck-info); font-size: 17px; }
.probe-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; margin-top: 12px; }
.probe-contact-fields div { min-width: 0; padding-top: 6px; border-top: 1px solid var(--deck-line-soft); }
.probe-contact-fields dt, .probe-profile-list span { color: var(--deck-muted); font: 10px var(--font-ae-mono); text-transform: uppercase; }
.probe-contact-fields dd { margin-top: 3px; color: var(--deck-text); overflow-wrap: anywhere; font: 12px/1.4 var(--font-ae-mono); }
.probe-contact-fields dd.is-pending, .probe-profile-list strong.is-pending { color: var(--deck-dim); }
.probe-preview-hint { display: block; margin-top: 4px; color: var(--deck-muted); font: 10px/1.4 var(--font-ae-mono); }
.probe-inline-review { padding: 0; }
.probe-primary-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 13px 0 8px; }
.probe-primary-action { min-height: 42px; border: 1px solid var(--deck-success); border-radius: 3px; background: #34513a; color: var(--deck-text); padding: 9px 11px; font: 600 12px/1.2 var(--font-ae-mono); cursor: pointer; }
.probe-primary-action:hover, .probe-primary-action:focus-visible { border-color: #d3e5bb; background: #446448; }
.probe-primary-action.is-secondary { border-color: var(--deck-info); background: #203c43; }
.probe-primary-action.is-secondary:hover, .probe-primary-action.is-secondary:focus-visible { background: #2a535c; }
.probe-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 12px; margin-top: 12px; }
.probe-edit-field { display: grid; gap: 4px; min-width: 0; padding-top: 7px; border-top: 1px solid var(--deck-line-soft); }
.probe-edit-field-wide { grid-column: 1 / -1; }
.probe-edit-field > span { color: var(--deck-muted); font: 10px var(--font-ae-mono); text-transform: uppercase; }
.probe-edit-field input[type="text"], .probe-edit-field textarea { width: 100%; min-width: 0; border: 1px solid var(--deck-line-soft); background: var(--deck-input); color: var(--deck-text); padding: 7px; font: 12px/1.4 var(--font-ae-mono); resize: vertical; }
.probe-edit-field small { color: var(--deck-dim); font: 10px/1.4 var(--font-ae-mono); overflow-wrap: anywhere; }
.probe-alternatives-panel { margin-top: 12px; border-top: 1px solid var(--deck-line-soft); }
.probe-alternatives-panel summary { padding: 9px 0 3px; color: var(--deck-info); cursor: pointer; font: 11px var(--font-ae-mono); }
.probe-secondary-action { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--deck-line-soft); color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.probe-secondary-action select { min-width: min(100%, 280px); min-height: 34px; border: 1px solid var(--deck-line); background: var(--deck-input); color: var(--deck-text); padding: 7px; font: 11px var(--font-ae-mono); }
.probe-profile-list { display: grid; gap: 8px; margin-top: 12px; }
.probe-profile-list div { display: grid; gap: 3px; padding: 8px 0; border-top: 1px solid var(--deck-line-soft); }
.probe-profile-list strong { color: var(--deck-text); overflow-wrap: anywhere; font: 12px/1.4 var(--font-ae-mono); }
.probe-summary-strip, .probe-intersections { margin-top: 14px; }
.probe-summary-strip > p { max-width: 900px; margin-top: 10px; color: var(--deck-text); font-size: 14px; line-height: 1.55; }
.probe-intersection-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 12px; }
.probe-intersection-grid article { display: grid; grid-template-columns: 24px 1fr; gap: 9px; min-width: 0; padding: 11px; border: 1px solid var(--deck-line-soft); background: #151b17; }
.probe-intersection-marker { display: grid; place-items: center; width: 21px; height: 21px; border: 1px solid var(--deck-success); color: var(--deck-success); font: 11px var(--font-ae-mono); }
.probe-intersection-grid h3 { color: var(--deck-text); font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
.probe-intersection-grid p, .probe-intersection-grid small { display: block; margin-top: 4px; color: var(--deck-muted); font: 11px/1.45 var(--font-ae-mono); overflow-wrap: anywhere; }
.probe-intersection-grid small { color: var(--deck-dim); }
.probe-intersection-grid a, .probe-field-source a, .probe-detail-grid a, .probe-edit-row a { color: var(--deck-info); text-decoration: underline; }
.probe-lifecycle { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; margin: 12px 0 14px; color: var(--deck-dim); font: 11px var(--font-ae-mono); }
.probe-lifecycle span { padding: 6px 8px; border: 1px solid var(--deck-line-soft); background: rgba(21, 27, 23, 0.7); }
.probe-lifecycle span.is-current { border-color: var(--deck-info); color: var(--deck-text); background: rgba(44, 81, 82, 0.35); }
.probe-lifecycle-arrow { border: 0 !important; padding: 0 !important; background: transparent !important; color: var(--deck-muted); }
.probe-lifecycle a { color: var(--deck-info); text-decoration: none; }
.probe-lifecycle a:hover { text-decoration: underline; }
.probe-error-card, .probe-result-notice { margin: 14px 0; }
.probe-error-card { border-color: rgba(255, 170, 162, 0.48); }
.probe-error-card p, .probe-result-notice span { display: block; color: var(--deck-muted); font: 12px/1.55 var(--font-ae-mono); }
.probe-error-next { margin-top: 8px; color: var(--deck-text) !important; }
.probe-result-notice { display: grid; gap: 5px; padding: 13px 15px; border-left: 3px solid var(--deck-info); }
.probe-result-notice strong { color: var(--deck-text); }
.probe-field-source { display: block; margin-top: 4px; color: var(--deck-dim); font: 10px/1.4 var(--font-ae-mono); overflow-wrap: anywhere; }
.probe-empty-copy { color: var(--deck-muted); font: 12px/1.5 var(--font-ae-mono); }
.probe-collapsible { padding: 0; }
.probe-collapsible > summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; min-height: 52px; padding: 13px 15px; color: var(--deck-text); cursor: pointer; font: 13px var(--font-ae-mono); list-style: none; }
.probe-collapsible > summary small { color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.probe-collapsible[open] > summary { border-bottom: 1px solid var(--deck-line-soft); }
.probe-review-form, .probe-detail-grid, .probe-merge-card { padding: 14px; }
.probe-review-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.probe-review-groups fieldset { min-width: 0; border: 1px solid var(--deck-line-soft); padding: 9px; }
.probe-review-groups legend { padding: 0 5px; color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.probe-alternatives { margin: 5px 0 0 22px; border-top: 1px solid var(--deck-line-soft); }
.probe-alternatives summary { padding: 7px 0 3px; color: var(--deck-info); cursor: pointer; font: 10px var(--font-ae-mono); }
.probe-action-help { margin: 13px 0 0; color: var(--deck-muted); font: 11px/1.5 var(--font-ae-mono); }
.probe-edit-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; align-items: start; padding: 6px 0; border-top: 1px solid rgba(89,104,91,.35); }
.probe-edit-row:first-of-type { border-top: 0; }
.probe-edit-row > span { min-width: 0; }
.probe-edit-row input[type="text"], .probe-merge-row input[type="text"] { width: 100%; min-width: 0; border: 1px solid var(--deck-line-soft); background: var(--deck-input); color: var(--deck-text); padding: 6px 7px; font: 12px var(--font-ae-mono); }
.probe-edit-row small { display: block; margin-top: 3px; color: var(--deck-dim); font: 10px var(--font-ae-mono); overflow-wrap: anywhere; }
.probe-review-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding-top: 13px; border-top: 1px solid var(--deck-line-soft); }
.probe-review-actions form { margin: 0; }
.probe-review-actions select { min-width: min(100%, 280px); min-height: 36px; border: 1px solid var(--deck-line); background: var(--deck-input); color: var(--deck-text); padding: 7px; font: 12px var(--font-ae-mono); }
.probe-review-actions button, .probe-review-form > button, .probe-merge-card button { width: auto; min-height: 36px; border: 1px solid var(--deck-success); border-radius: 3px; background: #34513a; color: var(--deck-text); padding: 8px 10px; font: 12px var(--font-ae-mono); cursor: pointer; }
.probe-review-warning { margin-top: 12px; padding: 11px; border: 1px solid #7b6540; background: #211e18; color: #ead9b5; font: 12px/1.5 var(--font-ae-mono); }
.probe-review-warning > * { display: block; }
.probe-duplicate-list { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.probe-duplicate-list li { display: flex; justify-content: space-between; gap: 10px; padding-top: 6px; border-top: 1px solid #4a4030; }
.probe-duplicate-list a { color: var(--deck-info); }
.probe-merge-card { margin: 0 14px 14px; border: 1px solid var(--deck-line-soft); background: #11171b; }
.probe-merge-card h3 { color: var(--deck-text); font-size: 14px; }
.probe-merge-card > p { margin-top: 4px; color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.probe-merge-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(0, 1fr); gap: 7px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--deck-line-soft); color: var(--deck-muted); font: 11px/1.4 var(--font-ae-mono); }
.probe-merge-row > strong { color: var(--deck-text); }
.probe-merge-row label { grid-column: 2 / -1; }
.probe-merge-row input[type="radio"] { margin-left: 6px; }
.probe-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.probe-detail-grid article { min-width: 0; padding: 11px; border: 1px solid var(--deck-line-soft); background: #151b17; }
.probe-detail-grid h3 { color: var(--deck-text); font-size: 13px; }
.probe-detail-grid ul { display: grid; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.probe-detail-grid li { display: grid; gap: 3px; padding-top: 7px; border-top: 1px solid var(--deck-line-soft); }
.probe-detail-grid li strong { color: var(--deck-text); overflow-wrap: anywhere; font: 12px/1.4 var(--font-ae-mono); }
.probe-detail-grid li small { color: var(--deck-dim); font: 10px var(--font-ae-mono); overflow-wrap: anywhere; }
.probe-review-footer { padding: 14px; }
.probe-review-footer > div { display: grid; gap: 4px; }
.probe-review-footer > div > strong { color: var(--deck-text); font: 12px var(--font-ae-mono); }
.probe-review-footer > div > small { color: var(--deck-muted); font: 10px var(--font-ae-mono); }
.probe-review-footer > div form { margin-top: 4px; }
.probe-help { margin: 16px 0; color: var(--deck-muted); font: 11px/1.55 var(--font-ae-mono); }
.probe-history-disclosure { margin-bottom: 10px; }
.probe-history-filter { padding: 10px 14px 0; }
.probe-history-filter label { display: grid; gap: 5px; color: var(--deck-muted); font: 10px var(--font-ae-mono); }
.probe-history-filter select { width: min(320px, 100%); min-height: 34px; border: 1px solid var(--deck-line); background: var(--deck-input); color: var(--deck-text); padding: 7px; font: 11px var(--font-ae-mono); }
.probe-scan-list { display: grid; gap: 8px; padding: 0 14px 14px; }
.probe-scan { display: block; padding: 11px; border: 1px solid var(--deck-line-soft); background: #151a1e; color: var(--deck-text); text-decoration: none; }
.probe-scan:hover { border-color: var(--deck-focus); color: #fff; text-decoration: none; }
.probe-scan-head { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.probe-scan-head strong { overflow-wrap: anywhere; }
.probe-scan-head span, .probe-scan-meta { color: var(--deck-info); font: 11px var(--font-ae-mono); }
.probe-scan-meta { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 7px; color: var(--deck-muted); }
.probe-scan-error { margin-top: 7px; color: #ffaaa2; font: 11px var(--font-ae-mono); }

.probe-cockpit-mini { position: relative; height: 72px; margin: 12px 0; overflow: hidden; border: 1px solid var(--deck-line-soft); background: linear-gradient(90deg, #111613, #1c2b24 50%, #111613); }

body.probe-tab-hidden .probe-cockpit-mini * { animation-play-state: paused !important; }

@media (max-width: 900px) {
    .probe-mission-stage { grid-template-columns: 1fr; }
    .probe-stage-copy { border-top: 1px solid var(--deck-line-soft); border-left: 0; }
    .probe-intersection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .probe-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .probe-intro-state { align-self: flex-start; }
    .probe-launch-actions { align-items: stretch; flex-direction: column; }
    .probe-launch-actions button { width: 100%; }
    .probe-limit-grid, .probe-preview-grid, .probe-contact-fields, .probe-review-groups, .probe-intersection-grid, .probe-detail-grid { grid-template-columns: 1fr; }
    .probe-stage-copy { padding: 16px; }
    .probe-lifecycle { align-items: stretch; }
    .probe-lifecycle span { flex: 0 0 auto; }
    .probe-collapsible > summary { align-items: flex-start; flex-direction: column; gap: 3px; }
    .probe-merge-row { grid-template-columns: 1fr; }
    .probe-merge-row label { grid-column: auto; }
    .probe-primary-actions, .probe-edit-grid { grid-template-columns: 1fr; }
    .probe-primary-action, .probe-review-actions, .probe-review-actions select, .probe-review-actions button, .probe-secondary-action select, .probe-secondary-action button { width: 100%; }
    .probe-review-actions { align-items: stretch; flex-direction: column; }
    .probe-secondary-action { align-items: stretch; flex-direction: column; }
    .probe-duplicate-list li { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .probe-cockpit-mini * { animation: none !important; }
}

@media (max-width: 430px) {
    .customer-project-page .current-version-actions {
        width: 100%;
        flex-direction: column;
    }

    .customer-project-page .customer-chat-file-actions {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .customer-project-page .project-page-header {
        margin-bottom: 12px;
    }

    .customer-project-page .project-page-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        max-width: none;
    }

    .customer-project-page .project-page-title {
        font-size: 20px;
    }

    .customer-project-page .project-page-actions > * {
        width: 100%;
        text-align: center;
    }

    .customer-project-page .customer-summary-date-form input[type="date"] {
        width: 120px;
    }

    .customer-project-page .chat-message {
        padding: 8px 0;
    }

    .customer-project-page .chat-content {
        font-size: 11.5px;
    }

}

@media (max-width: 800px) {
    .portal-public-shell {
        min-height: auto;
        padding: 18px 10px;
        align-items: flex-start;
    }

    .portal-public-card {
        padding: 16px;
        border-radius: 8px;
    }

    .portal-public-brand {
        gap: 10px;
        margin-bottom: 14px;
    }

    .portal-public-brand img {
        width: 32px;
        height: 32px;
    }

    .portal-public-card h1 {
        font-size: 23px;
    }

    .portal-public-card p {
        font-size: 12.5px;
        line-height: 1.45;
    }

    .portal-public-lead {
        font-size: 14.5px !important;
    }

    .portal-public-actions,
    .portal-public-links {
        gap: 7px;
    }

    .portal-public-actions a,
    .portal-public-links a {
        flex: 1 1 130px;
        min-height: 32px;
        padding: 7px 9px;
        font-size: 11px;
    }

    .portal-footer {
        width: calc(100% - 32px);
        margin-top: 14px;
        padding: 1rem 0 1.45rem;
    }

    .portal-footer-inner {
        display: flex;
        align-items: flex-start;
    }

    .portal-footer-brand {
        font-size: 0.78rem;
    }

    .portal-footer-links {
        justify-content: flex-start;
        gap: 0.55rem 0.85rem;
        margin-top: 0.15rem;
    }

    .portal-footer-links a {
        font-size: 0.78rem;
    }
}

/* =========================================================
   Customer correction markup MVP
   ========================================================= */

.correction-confirmation {
    margin: 0 0 10px;
    padding: 9px 11px;
    border: 1px solid rgba(22, 163, 74, 0.45);
    border-radius: 7px;
    background: rgba(22, 163, 74, 0.14);
    color: #d8f3dc;
    font-size: 12px;
    font-weight: 800;
}


.pdf-correction-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    margin: 0 0 8px;
    padding: 7px 10px;
    border: 1px solid rgba(74, 158, 255, 0.55);
    border-radius: 6px;
    background: rgba(74, 158, 255, 0.12);
    color: #ffffff !important;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none !important;
}

.pdf-correction-button:hover {
    border-color: var(--blue);
    background: rgba(74, 158, 255, 0.2);
}

.correction-shell {
    width: min(1180px, 100%);
    margin: 0 auto;
    padding: 22px 16px;
}

.correction-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.correction-header img {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.correction-kicker {
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.correction-header h1 {
    margin: 0;
    color: #ffffff;
    font-size: 24px;
    line-height: 1.1;
}

.correction-header p {
    margin: 3px 0 0;
    color: var(--text-soft);
    font-size: 13px;
}

.correction-card {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel);
}

.correction-version-label {
    margin-bottom: 10px;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
}

.correction-page-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    max-width: 1040px;
    margin: -2px auto 10px;
}

.correction-page-nav button {
    width: auto;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: #2a2a2a;
    color: var(--text);
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.correction-page-nav button:disabled {
    opacity: 0.42;
    cursor: default;
}

.correction-page-label {
    min-width: 96px;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.correction-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    max-width: 1040px;
    margin: 0 auto 8px;
    color: var(--text-soft);
    font-size: 11px;
}

.correction-progress strong {
    color: #ffffff;
    font-size: 12px;
}

.correction-page-status-list {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    max-width: 1040px;
    margin: 0 auto 9px;
}

.correction-page-status {
    width: auto;
    min-height: 27px;
    padding: 4px 7px;
    border: 1px solid var(--border-soft);
    border-radius: 5px;
    background: #252525;
    color: var(--text-soft);
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.correction-page-status.is-active {
    border-color: var(--blue);
    color: #ffffff;
}

.correction-page-status.is-edited {
    border-color: rgba(22, 163, 74, 0.65);
    background: rgba(22, 163, 74, 0.13);
    color: #d8f3dc;
}

.correction-page-status.is-active.is-edited {
    border-color: var(--blue);
}

.correction-canvas-wrap {
    position: relative;
    width: min(100%, 1040px);
    max-height: calc(100vh - 250px);
    margin: 0 auto;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    overflow: hidden;
    background: #111111;
    touch-action: none;
}

.correction-canvas-wrap img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: calc(100vh - 250px);
    object-fit: contain;
    user-select: none;
    pointer-events: none;
}

.correction-canvas-wrap canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    cursor: crosshair;
    touch-action: none;
}

.correction-preview-missing {
    display: none;
    min-height: 220px;
    align-items: center;
    justify-content: center;
    padding: 18px;
    color: var(--text-soft);
    font-size: 13px;
    text-align: center;
}

.correction-tools {
    display: flex;
    gap: 7px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    margin: 10px auto;
    max-width: 1040px;
}

.correction-tool-group,
.correction-brush-group {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: rgba(0,0,0,0.16);
}

.correction-color {
    width: 24px;
    height: 24px;
    border: 2px solid transparent;
    border-radius: 999px;
    cursor: pointer;
    padding: 0;
}

.correction-color.is-active {
    border-color: #ffffff;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.16);
}

.correction-brush {
    width: auto;
    min-height: 24px;
    padding: 4px 8px;
    border: 1px solid transparent;
    border-radius: 5px;
    background: transparent;
    color: var(--text-soft);
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.correction-brush.is-active {
    border-color: var(--blue);
    background: rgba(74, 158, 255, 0.14);
    color: #ffffff;
}

.correction-reset {
    width: auto;
    min-height: 30px;
    padding: 6px 9px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: #2a2a2a;
    color: var(--text);
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.correction-comment-wrap {
    max-width: 1040px;
    margin: 0 auto;
    padding: 9px;
    border: 1px solid #e74c3c;
    border-radius: 7px;
    background: rgba(255,255,255,0.025);
}

.correction-comment-label {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 6px;
    padding-left: 9px;
    border-left: 4px solid #e74c3c;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
}

.correction-comment-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #e74c3c;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.14);
    flex: 0 0 auto;
}

.correction-card textarea {
    min-height: 74px;
    font-family: inherit;
    font-size: 13px;
}

.correction-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 1040px;
    margin: 10px auto 0;
}

.correction-action-option {
    display: flex;
    flex: 1 1 250px;
    min-width: 220px;
    flex-direction: column;
    gap: 4px;
}

.correction-action-option small {
    color: var(--text-soft);
    font-size: 10px;
    line-height: 1.35;
}

.correction-actions button,
.correction-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    width: auto;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid var(--border-soft);
    background: #333333;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.correction-action-option:first-child button {
    background: var(--blue-dark);
    border-color: var(--blue-dark);
}

.correction-actions .correction-send {
    background: var(--green);
    border-color: var(--green);
}

.correction-actions .correction-cancel {
    align-self: flex-start;
    background: #333333;
}

.correction-discard-dialog {
    width: min(360px, calc(100vw - 32px));
    padding: 18px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    background: #202020;
    color: var(--text);
}

.correction-discard-dialog::backdrop {
    background: rgba(0, 0, 0, 0.62);
}

.correction-discard-dialog p {
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 800;
}

.correction-discard-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.correction-discard-actions button {
    width: auto;
    min-height: 32px;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: #333333;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.correction-discard-actions .correction-discard-confirm {
    border-color: #8b2f2f;
    background: #7f1d1d;
}

.correction-empty {
    color: var(--text-soft);
    font-size: 13px;
}

.correction-comment-chip {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 6px;
    padding: 6px 8px;
    border-left: 4px solid currentColor;
    border-radius: 4px;
    background: rgba(255,255,255,0.04);
    color: var(--text);
    white-space: pre-wrap;
}

.correction-comment-color {
    width: 9px;
    height: 9px;
    margin-top: 3px;
    border-radius: 999px;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.12);
    flex: 0 0 auto;
}

.chat-correction-preview-link {
    display: block;
    margin: 7px 0;
}

.chat-correction-preview {
    display: block;
    max-width: min(100%, 360px);
    max-height: 260px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: #111111;
    object-fit: contain;
}

.send-saved-correction-form {
    margin: 7px 0 3px;
}

.send-saved-correction-form button {
    width: auto;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid rgba(22, 163, 74, 0.55);
    border-radius: 6px;
    background: rgba(22, 163, 74, 0.14);
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.send-saved-correction-form button:hover {
    background: rgba(22, 163, 74, 0.22);
    border-color: var(--green);
}

.correction-batch-detail-status {
    max-width: 1040px;
    margin: 0 auto 10px;
    color: var(--text-soft);
    font-size: 12px;
}

.correction-batch-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    max-width: 1040px;
    margin: 0 auto;
}

.correction-batch-detail-page {
    min-width: 0;
    padding: 9px;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: var(--panel);
}

.correction-batch-detail-page img {
    display: block;
    width: 100%;
    max-height: 360px;
    margin-top: 7px;
    border-radius: 4px;
    object-fit: contain;
    background: #111111;
}

.correction-batch-detail-meta {
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
}

.correction-batch-detail-comment {
    margin: 7px 0 0;
    color: var(--text-soft);
    font-size: 11px;
    white-space: pre-wrap;
}

@media (max-width: 800px) {
    .correction-shell {
        padding: 12px 8px;
    }

    .correction-header h1 {
        font-size: 20px;
    }

    .correction-card {
        padding: 8px;
    }

    .correction-canvas-wrap,
    .correction-canvas-wrap img {
        max-height: none;
    }

    .correction-tools {
        justify-content: flex-start;
        margin: 8px 0;
    }

    .correction-page-nav {
        gap: 6px;
        margin: -2px 0 8px;
    }

    .correction-page-nav button {
        min-height: 32px;
        padding: 6px 8px;
        font-size: 10.5px;
    }

    .correction-page-label {
        min-width: 82px;
        font-size: 11px;
    }

    .correction-progress {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
        margin-bottom: 7px;
    }

    .correction-page-status-list {
        margin-bottom: 8px;
    }

    .correction-page-status {
        min-height: 29px;
    }

    .correction-tool-group,
    .correction-brush-group {
        gap: 4px;
        padding: 3px;
    }

    .correction-color {
        width: 23px;
        height: 23px;
    }

    .correction-brush {
        min-height: 25px;
        padding: 4px 7px;
        font-size: 10.5px;
    }

    .correction-comment-wrap {
        padding: 8px;
    }

    .correction-card textarea {
        min-height: 66px;
    }

    .correction-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .correction-actions button,
    .correction-actions a {
        width: 100%;
    }

    .correction-action-option {
        min-width: 0;
    }

    .correction-actions .correction-cancel {
        align-self: stretch;
    }

    .correction-discard-actions {
        flex-direction: column;
    }

    .correction-discard-actions button {
        width: 100%;
    }

    .chat-correction-preview {
        max-height: 210px;
    }

    .send-saved-correction-form button {
        width: 100%;
    }
}
/* =========================================================
   Gemeinsame Kundenoberfläche: AE-Branding, Bewegung, Verlauf
   ========================================================= */

.portal-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: #ffffff;
}

.portal-logo img {
    display: block;
    width: 46px;
    height: 46px;
    object-fit: contain;
    flex: 0 0 auto;
}

.portal-logo-label {
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .03em;
}

.portal-logo-title {
    color: var(--text-soft);
    font-size: 14px;
    font-weight: 600;
}

.portal-public-page,
.portal-account-page {
    background: #151515;
}

.portal-public-page .portal-public-shell,
.portal-account-page .portal-public-shell {
    min-height: calc(100vh - 100px);
    padding: 28px 18px 42px;
}

.portal-public-page .portal-public-card,
.portal-account-page .portal-public-card {
    border-color: #363636;
    border-radius: 12px;
    background: #202020;
    box-shadow: 0 20px 70px rgba(0,0,0,.28), 0 0 0 1px rgba(255,255,255,.02);
}

.portal-entry-card {
    position: relative;
    overflow: hidden;
    max-width: 620px;
    padding: 34px;
}

.portal-entry-card::after {
    position: absolute;
    right: 26px;
    bottom: 22px;
    width: 72px;
    height: 1px;
    background: var(--blue);
    content: "";
    opacity: .65;
}

.portal-entry-copy {
    margin: 34px 0 0;
}

.portal-entry-eyebrow {
    margin-bottom: 8px !important;
    color: var(--blue) !important;
    font-size: 11px !important;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.portal-entry-card h1 {
    font-size: clamp(30px, 5vw, 44px);
    letter-spacing: -.02em;
}

.portal-entry-card .portal-public-lead {
    max-width: 470px;
    margin-top: 14px;
    color: #ededed !important;
    font-size: 16px !important;
    font-weight: 500;
}

.portal-entry-card .portal-public-actions {
    margin-top: 28px;
}

.portal-entry-card .portal-public-admin-link {
    margin-top: 22px;
}

.portal-account-card {
    position: relative;
    max-width: 430px;
    padding: 30px;
}

.portal-login-frame {
    position: relative;
    width: min(430px, 100%);
}

.portal-login-admin-link {
    display: block;
    width: fit-content;
    margin: 0 0 8px auto;
    padding: 4px 2px;
    color: rgba(241, 238, 232, 0.72);
    font-family: var(--font-ae-mono);
    font-size: 0.78rem;
    text-decoration: none;
}

.portal-login-admin-link:hover {
    color: #f1eee8;
    text-decoration: underline;
}

.portal-account-card .portal-logo {
    margin-bottom: 24px;
}

.portal-account-card .portal-logo img {
    width: 48px;
    height: 48px;
}

.portal-account-card .portal-logo-title {
    display: block;
    color: #ffffff;
    font-size: 23px;
}

.portal-login-tagline {
    margin: -10px 0 20px;
    color: var(--text-soft);
    font-size: 13px;
}

.portal-account-card .account-links {
    margin-top: 16px;
    font-size: 11px;
}

.portal-account-card .account-links-stack {
    display: grid;
    gap: 9px;
}

.portal-account-text-link {
    color: var(--text-muted) !important;
    font-family: var(--font-ae-mono);
    font-size: 0.78rem;
    text-align: center;
    text-decoration: none;
}

.portal-account-text-link:hover {
    color: #f1eee8 !important;
    text-decoration: underline;
}

.account-form-note {
    margin: -8px 0 20px;
    color: var(--text-soft);
    font-family: var(--font-ae-mono);
    font-size: 0.78rem;
}

.portal-account-card .account-links a {
    color: var(--text-muted);
}

.portal-login-form {
    display: grid;
    gap: 7px;
}

.portal-login-form label {
    margin-top: 10px;
    color: #b9b9b9;
    font-size: 12px;
    font-weight: 700;
}

.portal-login-form input {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid #404040;
    border-radius: 6px;
    background: #181818;
    color: #ffffff;
    font: inherit;
}

.portal-login-form button {
    width: 100%;
    min-height: 42px;
    margin-top: 14px;
    border: 0;
    border-radius: 6px;
    background: var(--blue-dark);
    color: #ffffff;
    font-weight: 800;
    cursor: pointer;
}

.portal-login-form button:hover {
    background: #086fae;
}

.portal-account-page.portal-login-motion .portal-login-form,
.portal-account-page.portal-login-motion .account-links {
    opacity: 0;
    transform: translateY(10px);
}

.portal-account-page.portal-login-motion .portal-login-form.login-content-ready,
.portal-account-page.portal-login-motion .account-links.login-content-ready {
    opacity: 1;
    transform: translateY(0);
    transition: opacity .38s ease, transform .38s ease;
}

.portal-account-page.portal-login-motion .portal-logo {
    animation: login-logo-in .34s ease both;
}

.portal-public-page .portal-public-actions a,
.portal-account-page .account-links a {
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}

.portal-public-page .portal-public-actions a:hover,
.portal-account-page .account-links a:hover {
    transform: translateY(-1px);
}

.customer-portal-nav {
    width: min(1120px, calc(100% - 36px));
    min-height: 58px;
    margin: 16px auto 0;
    padding: 8px 0 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid #303030;
}

.customer-portal-nav-brand,
.customer-portal-nav-actions,
.customer-portal-nav-actions form {
    display: flex;
    align-items: center;
}

.customer-portal-nav-brand {
    min-width: 0;
    color: #ffffff;
    text-decoration: none;
}

.customer-portal-nav-brand:hover {
    text-decoration: none;
}

.customer-portal-nav-brand .portal-logo-nav img {
    width: 42px;
    height: 42px;
}

.customer-portal-nav-brand .portal-logo-label {
    font-size: 15px;
}

.customer-portal-nav-actions {
    min-width: 0;
    gap: 9px;
}

.customer-portal-nav-greeting {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    color: #909090;
    font-family: var(--font-ae-mono);
    font-size: 11px;
    line-height: 1.35;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-portal-nav-projects,
.customer-portal-nav-logout {
    min-height: 31px;
    padding: 6px 10px;
    border: 1px solid #454545;
    border-radius: 5px;
    background: #292929;
    color: #eeeeee;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.customer-portal-nav-projects:hover,
.customer-portal-nav-logout:hover {
    border-color: var(--blue);
    color: #ffffff;
    text-decoration: none;
}

.customer-portal-nav-name {
    display: none;
    max-width: 250px;
    overflow: hidden;
    color: #a7a7a7;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.customer-overview-shell {
    width: min(1120px, calc(100% - 36px));
    margin: 22px auto 42px;
    padding: 0;
}

.token-customer-overview-page .customer-overview-shell {
    width: min(1120px, calc(100% - 36px));
    margin: 22px auto 42px;
    padding: 0;
}

.token-customer-overview-page .customer-overview-title {
    margin-bottom: 18px;
}

.token-customer-overview-page .customer-overview-title h1 {
    font-size: 30px;
}

.token-customer-overview-page .customer-project-card {
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.token-customer-overview-page .customer-project-card:hover {
    transform: translateY(-2px);
    border-color: rgba(74,158,255,.72);
    box-shadow: 0 8px 24px rgba(0,0,0,.2), 0 0 0 1px rgba(74,158,255,.08);
}

.customer-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #303030;
}

.customer-section-kicker {
    margin-bottom: 5px;
    color: var(--blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.customer-header h1 {
    margin: 0;
    color: #ffffff;
    font-size: 28px;
    line-height: 1.05;
}

.customer-intro {
    margin: 5px 0 0;
    color: var(--text-soft);
    font-size: 12px;
}

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

.customer-overview-page .project-card {
    width: 100%;
    height: 124px;
    min-height: 124px;
    padding: 12px 16px;
    margin-bottom: 0;
    border-radius: 7px;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.customer-overview-page .project-card:hover {
    transform: translateY(-1px);
    border-color: rgba(74,158,255,.62);
    box-shadow: 0 4px 14px rgba(0,0,0,.16), 0 0 0 1px rgba(74,158,255,.06);
}

.customer-overview-page .project-card.completed {
    height: 108px;
    min-height: 108px;
}

.customer-overview-page .project-info {
    max-width: 62%;
}

.customer-overview-page .project-card-side {
    min-width: 156px;
    gap: 5px;
}

.customer-overview-page .project-name {
    margin-bottom: 5px;
    font-size: 17px;
    line-height: 1.15;
}

.customer-overview-page .project-last-modified {
    margin-bottom: 2px;
    font-size: 11px;
}

.customer-overview-page .project-status-inline {
    max-width: 156px;
    padding: 5px 9px;
    border-radius: 5px;
    font-size: 10px;
    line-height: 1.2;
    text-align: right;
    white-space: normal;
}

.customer-overview-page .project-pdf-info {
    min-width: 70px;
    padding: 5px 7px;
    border-radius: 5px;
}

.customer-overview-page .project-version-badge {
    font-size: 15px;
}

.customer-overview-page .project-pdf-date,
.customer-overview-page .project-pdf-empty {
    margin-top: 3px;
    font-size: 9px;
}

.customer-project-open {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 5px;
    color: #8fc5f4;
    font-family: var(--font-ae-mono);
    font-size: 10px;
    text-decoration: none;
}

.customer-project-open:hover {
    color: #ffffff;
    text-decoration: underline;
}

.customer-overview-page .project-card.is-created {
    animation: card-arrival .72s ease both;
}

.customer-project-attention {
    display: inline-block;
    margin-top: 4px;
    padding: 3px 7px;
    border: 1px solid rgba(243,156,18,.25);
    border-radius: 4px;
    background: rgba(243,156,18,.1);
    color: #f2c477;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
}

.customer-empty {
    padding: 12px 0;
    color: #aaaaaa;
    font-size: 12px;
}

/* AE-Sekundärtypografie: dieselbe Cursor-Anmutung wie auf der Homepage. */
.customer-portal-nav-projects,
.customer-portal-nav-name,
.customer-portal-nav-logout,
.portal-account-card .portal-logo-label,
.portal-login-tagline,
.portal-login-form label,
.portal-account-card .account-links,
.customer-overview-page .customer-section-kicker,
.customer-overview-page .project-meta,
.customer-overview-page .project-last-modified,
.customer-overview-page .project-status-inline,
.customer-overview-page .project-pdf-info,
.customer-overview-page .customer-project-attention,
.customer-project-page .subtitle,
.customer-project-page .customer-summary-status,
.customer-project-page .customer-summary-date-form,
.customer-project-page .customer-project-options summary,
.customer-project-page .customer-version-details summary,
.customer-project-page .system-activities summary,
.customer-project-page .current-version-label,
.customer-project-page .current-version-name,
.customer-project-page .current-version-date,
.customer-project-page .pdf-version-badge,
.customer-project-page .pdf-current-badge,
.customer-project-page .pdf-version-date,
.customer-project-page .pdf-version-name,
.customer-project-page .current-version-open,
.customer-project-page .chat-date,
.customer-project-page .chat-day-divider,
.customer-project-page .chat-file-name,
.customer-project-page .chat-file-meta,
.customer-project-page .chat-system,
.customer-project-page .communication-composer label,
.customer-project-page .communication-attachment-row,
.customer-project-page .customer-action-hint {
    font-family: var(--font-ae-mono);
}

.portal-account-card .portal-logo-label {
    font-size: 15px;
    font-weight: 400;
}

.portal-login-tagline {
    letter-spacing: 0;
}

.portal-account-card .account-links {
    display: block;
}

.portal-login-home-link {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    border: 1px solid rgba(241, 238, 232, 0.2);
    border-radius: 6px;
    color: rgba(241, 238, 232, 0.72) !important;
    font-family: var(--font-ae-mono);
    font-size: 0.78rem;
    text-decoration: none;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.portal-login-home-link:hover {
    border-color: rgba(241, 238, 232, 0.52);
    background: rgba(241, 238, 232, 0.035);
    color: #f1eee8 !important;
    text-decoration: none;
}

.customer-project-page .chat-content {
    font-family: inherit;
}

.customer-project-page .customer-summary-date-form input[type="date"] {
    font-family: var(--font-ae-mono);
}

/* Kunden-Projektseite: Vorschau und Verlauf bilden eine gemeinsame Arbeitsfläche. */
.customer-project-page .project-page-shell {
    width: min(1120px, calc(100% - 36px));
    margin: 0 auto;
    padding: 22px 0 34px;
}

.customer-project-page .project-page-header {
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #303030;
}

.customer-project-page .project-page-title {
    font-size: 30px;
}

.customer-project-page .project-top-section {
    margin-bottom: 14px;
}

.customer-project-page .project-top-grid {
    grid-template-columns: minmax(0, 1.48fr) minmax(225px, .52fr);
    gap: 12px;
}

.customer-project-page .project-panel,
.customer-project-page #pdf-preview {
    border-color: #363636;
    border-radius: 6px;
    background: #202020;
    box-shadow: none;
}

.customer-project-page .project-panel {
    gap: 12px;
}

.customer-project-page .current-version-content {
    min-height: 250px;
    padding: 9px;
    border-color: #333333;
    border-radius: 6px;
    background: #191919;
}

.customer-project-page #pdf-preview.is-fresh .current-version-content {
    animation: version-arrival .65s ease both;
}

.customer-project-page .current-preview-trigger img {
    width: min(100%, 400px);
    max-height: 430px;
    margin-bottom: 8px;
    border-radius: 5px;
}

.customer-project-page .customer-project-options {
    border-top-color: #333333;
}

.customer-project-page .customer-project-options summary,
.customer-project-page .customer-version-details summary,
.customer-project-page .system-activities summary {
    border-color: #3a3a3a;
    border-radius: 6px;
    background: #252525;
    transition: border-color .18s ease, color .18s ease;
}

.customer-project-page .customer-project-options summary:hover,
.customer-project-page .customer-version-details summary:hover,
.customer-project-page .system-activities summary:hover {
    border-color: #555555;
    color: #ffffff;
}

.customer-project-page .section:not(.project-top-section):not(.pdf-version-section) {
    width: min(1000px, 100%);
    margin-right: auto;
    margin-left: auto;
}

.customer-project-page .communication-composer {
    margin-bottom: 10px;
    padding: 9px 10px;
    border-color: #363636;
    border-radius: 8px;
    background: #202020;
}

.customer-project-page .communication-composer textarea {
    min-height: 48px !important;
    border-radius: 6px;
    resize: vertical;
}

.customer-project-page .communication-composer .form-group button {
    min-height: 32px;
    margin-top: 6px;
    padding: 6px 12px;
    border-radius: 5px;
}

.customer-project-page .communication-attachment-row {
    gap: 7px;
    margin-top: 8px;
    padding-top: 8px;
    border-top-color: rgba(255,255,255,.07);
}

.customer-project-page .chat-container {
    width: min(100%, 1040px);
    max-height: none;
    margin: 0 auto;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
}

.customer-project-page .chat-day-divider {
    padding: 9px 0 4px;
    color: #777777;
    font-size: 10px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.customer-project-page .chat-message {
    padding: 3px 0;
    background: transparent;
    border: 0;
    font-size: 12px;
}

.customer-project-page .chat-bubble-row.customer {
    justify-content: flex-start;
}

.customer-project-page .chat-bubble-row.ae {
    justify-content: flex-end;
}

.customer-project-page .chat-bubble {
    width: fit-content;
    max-width: min(900px, 78%);
    padding: 6px 9px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 8px;
    background: #252525;
}

.customer-project-page .chat-bubble-row.ae .chat-bubble {
    border-color: rgba(74,158,255,.22);
    background: #202b38;
}

.customer-project-page .chat-header {
    justify-content: flex-start;
    gap: 8px;
    margin-bottom: 3px;
    font-size: 10px;
}

.customer-project-page .chat-bubble-meta {
    display: flex;
    align-items: baseline;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 2px;
}

.customer-project-page .chat-date {
    order: -1;
    color: #777777;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.customer-project-page .chat-content {
    overflow-wrap: anywhere;
    line-height: 1.5;
}

.customer-project-page .chat-system {
    padding: 7px 0;
    color: #777777;
    font-size: 10px;
    text-align: center;
}

.customer-project-page .chat-file {
    margin-top: 5px;
    padding: 0;
    background: transparent;
    border: 0;
}

.customer-project-page .chat-file::before {
    margin-bottom: 5px;
    border-top-color: rgba(255,255,255,.08);
}

.customer-project-page .chat-preview-trigger {
    color: #79b9f5;
}

.customer-project-page .chat-download-link {
    display: none;
}

.chat-file-row {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
}

.chat-file-row .chat-file-info {
    min-width: 0;
    flex: 1 1 auto;
}

.chat-file-row .chat-file-meta {
    overflow-wrap: anywhere;
}

.chat-file-actions {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    font-family: var(--font-ae-mono);
    font-size: 10px;
    white-space: nowrap;
}

.chat-file-preview-link,
.admin-project-page .chat-download-link {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 3px 6px;
    border: 1px solid rgba(74, 158, 255, .28);
    border-radius: 4px;
    color: var(--blue);
    text-decoration: none;
}

.chat-file-preview-link:hover,
.admin-project-page .chat-download-link:hover {
    border-color: rgba(74, 158, 255, .62);
    background: rgba(74, 158, 255, .08);
}

.admin-project-page .chat-container {
    width: min(100%, 1040px);
}

.admin-project-page .chat-message {
    padding: 3px 0;
}

.admin-project-page .chat-bubble {
    max-width: min(900px, 78%);
    padding: 6px 9px;
}

.admin-project-page .chat-content {
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

@keyframes logo-breathe {
    0%, 100% { transform: scale(1); }
    48% { transform: scale(1.05); }
}

@keyframes logo-tilt {
    0%, 100% { transform: rotate(0); }
    45% { transform: rotate(-2deg); }
    72% { transform: rotate(1deg); }
}

@keyframes logo-shift {
    0%, 100% { transform: translateX(0); }
    40% { transform: translateX(1px); }
    55% { transform: translateX(-1px); }
}

@keyframes logo-trace {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.35); }
}

@keyframes login-logo-in {
    from { opacity: 0; transform: translateY(4px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes page-enter {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes version-arrival {
    0% { border-color: rgba(74,158,255,.55); box-shadow: 0 0 0 1px rgba(74,158,255,.18); }
    100% { border-color: #333333; box-shadow: none; }
}

@keyframes card-arrival {
    from { opacity: .35; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

.logo-breathe { animation: logo-breathe .56s ease both; }
.logo-tilt { animation: logo-tilt .56s ease both; }
.logo-shift { animation: logo-shift .56s ease both; }
.logo-trace { animation: logo-trace .56s ease both; }

[data-page-enter].is-entering { opacity: 0; }
[data-page-enter].is-entered { animation: page-enter .58s ease both; }

@media (max-width: 700px) {
    .portal-public-page .portal-public-shell,
    .portal-account-page .portal-public-shell {
        align-items: flex-start;
        padding: 20px 12px 34px;
    }

    .portal-entry-card,
    .portal-account-card {
        padding: 24px 20px;
    }

    .portal-login-admin-link {
        margin-bottom: 7px;
    }

    .portal-entry-copy {
        margin-top: 26px;
    }

    .portal-entry-card h1 {
        font-size: 32px;
    }

    .customer-portal-nav {
        width: calc(100% - 20px);
        margin-top: 10px;
        min-height: 0;
        flex-wrap: wrap;
        gap: 7px 10px;
        padding: 3px 0 8px;
    }

    .customer-portal-nav-brand .portal-logo-nav img {
        width: 34px;
        height: 34px;
    }

    .customer-portal-nav-brand .portal-logo-label {
        font-size: 12px;
    }

    .customer-portal-nav-actions {
        width: auto;
        margin-left: auto;
        justify-content: flex-end;
    }

    .customer-portal-nav-greeting {
        flex-basis: 100%;
        order: 3;
        padding-top: 1px;
        text-align: left;
    }

    .customer-portal-nav-name {
        max-width: 42vw;
    }

    .customer-overview-shell,
    .customer-project-page .project-page-shell {
        width: calc(100% - 20px);
        margin-top: 18px;
    }

    .token-customer-overview-page .customer-overview-shell {
        width: calc(100% - 20px);
        margin-top: 18px;
    }

    .customer-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 14px;
        padding-bottom: 12px;
    }

    .customer-header h1 {
        font-size: 25px;
    }

    .customer-overview-page .project-card,
    .customer-overview-page .project-card.completed {
        height: 116px;
        min-height: 116px;
        padding: 10px 11px;
    }

    .customer-overview-page .project-info {
        max-width: calc(100% - 88px);
    }

    .customer-overview-page .project-card-side {
        min-width: 82px;
        width: 82px;
    }

    .customer-overview-page .project-status-inline {
        max-width: 82px;
        padding: 4px 6px;
        font-size: 9px;
    }

    .customer-overview-page .project-name {
        font-size: 14px;
    }

    .customer-overview-page .project-last-modified {
        font-size: 10px;
    }

    .customer-overview-page .project-pdf-info {
        min-width: 62px;
        padding: 4px 5px;
    }

    .customer-overview-page .project-version-badge {
        font-size: 13px;
    }

    .customer-header .customer-refresh-button {
        align-self: flex-start;
    }

    .customer-project-page .project-page-title {
        font-size: 23px;
    }

    .customer-project-page .current-preview-trigger img {
        width: min(100%, 320px);
        max-height: 360px;
    }

    .customer-project-page .project-top-grid {
        grid-template-columns: 1fr;
    }

    .customer-project-page .project-panel,
    .customer-project-page #pdf-preview {
        grid-column: 1;
        grid-row: auto;
    }

    .customer-project-page .chat-bubble {
        max-width: 96%;
    }

    .customer-project-page .chat-file-row,
    .admin-project-page .chat-file-row {
        align-items: flex-start;
    }

    .customer-project-page .chat-file-actions,
    .admin-project-page .chat-file-actions {
        gap: 5px;
    }

    .customer-project-page .communication-attachment-row {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .customer-project-page .communication-attachment-row input[type="file"] {
        width: 100%;
        flex-basis: 100%;
    }

    .customer-project-page .communication-file-submit {
        width: 100%;
        flex-basis: 100%;
    }
}

/* Context-based acquisition mail preview. */
.acquisition-mail-context { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.acquisition-mail-context-column, .acquisition-mail-observations { padding: 10px; border: 1px solid var(--deck-line-soft); background: rgba(255,255,255,.025); }
.acquisition-mail-context-column strong, .acquisition-mail-observations strong { display: block; color: var(--deck-muted); font: 10px var(--font-ae-mono); text-transform: uppercase; }
.acquisition-mail-context-column ul { display: grid; gap: 4px; margin: 7px 0 0; padding-left: 17px; color: var(--deck-text); font: 11px/1.4 var(--font-ae-mono); }
.acquisition-mail-context-column p, .acquisition-mail-observations p { margin: 7px 0 0; color: var(--deck-muted); font: 11px/1.4 var(--font-ae-mono); }
.acquisition-mail-observations { margin-top: 10px; }
.acquisition-mail-regenerate-form { display: flex; align-items: end; gap: 9px; margin-top: 12px; }
.acquisition-mail-regenerate-form label { display: grid; gap: 5px; min-width: 170px; color: var(--deck-muted); font: 11px var(--font-ae-mono); text-transform: uppercase; }
.acquisition-mail-regenerate-form select { min-height: 36px; padding: 7px; border: 1px solid var(--deck-line); border-radius: 3px; background: var(--deck-input); color: var(--deck-text); font: 12px var(--font-ae-mono); }
.acquisition-mail-alternatives { margin-top: 2px; color: var(--deck-muted); font: 11px var(--font-ae-mono); }
.acquisition-mail-alternatives summary { cursor: pointer; }
.acquisition-mail-alternatives ul { display: grid; gap: 4px; margin: 7px 0 0; padding: 0; list-style: none; }
.acquisition-subject-choice { padding: 0; border: 0; background: transparent; color: var(--deck-blue); font: 11px var(--font-ae-mono); cursor: pointer; text-align: left; }
.acquisition-subject-choice:hover { color: var(--deck-text); text-decoration: underline; }
@media (max-width: 700px) {
    .acquisition-mail-context { grid-template-columns: 1fr; }
    .acquisition-mail-regenerate-form { align-items: stretch; flex-direction: column; }
    .acquisition-mail-regenerate-form label { min-width: 0; }
    .acquisition-mail-regenerate-form button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
}
.acquisition-customer-link-panel,
.acquisition-takeover-panel,
.acquisition-duplicate-panel { margin-top: 18px; }
.acquisition-customer-link-panel .panel-heading { margin-bottom: 10px; }
.acquisition-customer-takeover-button { display: inline-flex; margin-top: 8px; }
.acquisition-existing-customer-panel select { min-width: min(100%, 380px); }
.acquisition-inline-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.acquisition-inline-actions form { margin: 0; }
.acquisition-takeover-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.acquisition-takeover-field { display: block; padding: 12px; border: 1px solid #30343a; background: rgba(255,255,255,.025); }
.acquisition-takeover-field.is-wide { grid-column: 1 / -1; }
.acquisition-takeover-field-top { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-bottom: 7px; }
.acquisition-takeover-field-top strong { color: #f1f3f5; }
.acquisition-takeover-field-top small { color: #8f99a4; font-size: 11px; }
.acquisition-takeover-field input[type="text"],
.acquisition-takeover-field input[type="email"],
.acquisition-takeover-field input[type="url"],
.acquisition-takeover-field textarea { width: 100%; }
.acquisition-takeover-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 15px; }
.acquisition-takeover-confirm-form { margin-top: 16px; padding-top: 14px; border-top: 1px solid #30343a; }
.acquisition-takeover-confirm-form .secondary-action { background: #3d4248; }
.acquisition-duplicate-list { display: grid; gap: 10px; }
.acquisition-duplicate-card { display: flex; justify-content: space-between; gap: 14px; padding: 12px; border: 1px solid #4c3e23; background: rgba(173,126,41,.08); }
.acquisition-duplicate-card > div:first-child { display: grid; gap: 3px; }
.acquisition-duplicate-card strong { color: #f5d98e; }
.acquisition-duplicate-card small, .acquisition-duplicate-card span { color: #b3bac1; font-size: 12px; }
@media (max-width: 700px) {
    .acquisition-takeover-fields { grid-template-columns: 1fr; }
    .acquisition-takeover-field.is-wide { grid-column: auto; }
    .acquisition-takeover-field-top, .acquisition-duplicate-card { flex-direction: column; align-items: stretch; }
}

/* Primary mission display: fixed-resolution LCD pixels. Scan data updates independently. */
.probe-result-data { min-width: 0; }
.probe-mission-stage { position: relative; display: block; min-height: 150px; background: #07100d; }
.probe-stage-copy { position: absolute; z-index: 4; top: 0; right: 0; bottom: 0; width: clamp(218px, 24vw, 282px); gap: 5px; padding: 13px 15px; border-left: 1px solid rgba(122, 154, 141, .28); background: linear-gradient(90deg, rgba(7, 11, 11, 0), rgba(7, 11, 11, .89) 24%, rgba(7, 11, 11, .97)); }
.probe-stage-copy h2 { font-size: 18px; }
.probe-stage-action { min-height: 0; font-size: 11px; }
.probe-stage-readouts { gap: 6px; margin-top: 4px; }
.probe-stage-readouts strong { font-size: 13px; }
.probe-stage-readouts span { font-size: 9px; }
.probe-tunnel-visual { position: relative; min-height: 150px; overflow: hidden; isolation: isolate; background: #06100d; }
.probe-tunnel-visual::before, .probe-tunnel-visual::after { content: none; }
.probe-mission-canvas { display: block; width: 100%; height: 150px; image-rendering: pixelated; image-rendering: crisp-edges; }
.probe-canvas-vignette { position: absolute; z-index: 2; inset: 0; pointer-events: none; box-shadow: inset 0 0 24px rgba(0, 0, 0, .52); background: linear-gradient(90deg, rgba(0,0,0,.12), transparent 24%, transparent 76%, rgba(0,0,0,.18)); }
.probe-cockpit-mini { height: auto; aspect-ratio: 16 / 9; overflow: hidden; background: #080b0c; }
.probe-cockpit-welding { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; opacity: .98; }
.probe-cockpit-mini::before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; box-shadow: inset 0 0 32px rgba(0, 0, 0, .34); background: linear-gradient(180deg, rgba(3, 6, 6, .06), rgba(3, 6, 6, .18)); }
.probe-cockpit-mini::after { content: none; }
body.probe-tab-hidden .probe-tunnel-visual *, body.probe-tab-hidden .probe-cockpit-mini * { animation-play-state: paused !important; }
body.probe-tab-hidden .probe-cockpit-welding { animation-play-state: paused !important; }

@media (max-width: 900px) {
    .probe-mission-stage { min-height: 0; }
    .probe-tunnel-visual { min-height: 122px; }
    .probe-mission-canvas { height: 122px; }
    .probe-stage-copy { position: relative; width: auto; min-height: 0; padding: 13px 15px; border-top: 1px solid var(--deck-line-soft); border-left: 0; background: #101716; }
}
@media (max-width: 620px) {
    .probe-tunnel-visual { min-height: 108px; }
    .probe-mission-canvas { height: 108px; }
}
@media (prefers-reduced-motion: reduce) {
    .probe-tunnel-visual *, .probe-cockpit-mini * { animation: none !important; }
    .probe-cockpit-mini { background: #080b0c url("/static/assets/mission/overview/hangar-overview-poster.webp") center / contain no-repeat; }
    .probe-cockpit-welding { display: none; }
}
