/* =========================
   Orders – Theme Tokens
   ========================= */
:root {
    --ord-bg: #1a1a1a;
    --ord-card: #1a1a1a;
    --ord-card-2: #1a1a1a;
    --ord-card-border: #222732;
    --ord-line: #262b37;

    --ord-text: #e6e9ef;
    --ord-text-muted: #a6adbb;

    --ord-chip: #222632;
    --ord-chip-active: #333333;

    --ord-accent: #f6b100;
    --ord-focus: color-mix(in oklab, var(--ord-accent) 55%, transparent);

    --ord-badge-new: #3c82f6;
    --ord-badge-prog: #f59f00;
    --ord-badge-done: #30a46c;
    --ord-badge-rej: #e5484d;

    --ord-input-bg: rgba(255, 255, 255, .03);
    --ord-input-border: #2a3142;
}

body.light-mode {
    --ord-bg: #f6f7fb;
    --ord-card: #ffffff;
    --ord-card-2: #f9fafc;
    --ord-card-border: #e7e9ef;
    --ord-line: #e8ebf3;

    --ord-text: #0b1220;
    --ord-text-muted: #5b6477;

    --ord-chip: #eef0f5;
    --ord-chip-active: #e1e5ee;

    --ord-input-bg: #ffffff;
    --ord-input-border: #d7dbe4;
}

/* =========================
   Layout / Header
   ========================= */
.orders-page {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
}

.orders-header {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.orders-header h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--ord-text)
}

.orders-tools .tool-row {
    display: grid;
    grid-template-columns: 1fr 160px 170px auto;
    gap: 8px;
}

@media (max-width:820px) {
    .orders-tools .tool-row {
        grid-template-columns: 1fr 1fr
    }
}

.orders-input,
.orders-select {
    height: 36px;
    padding: 0 10px;
    border-radius: 10px;
    border: 1px solid var(--ord-card-border);
    background: var(--ord-card);
    color: var(--ord-text);
    outline: none;
}

.orders-input::placeholder {
    color: var(--ord-text-muted)
}

.orders-statusbar {
    font-size: 12px;
    color: var(--ord-text-muted);
    min-height: 18px
}

/* =========================
   Grid – breitere Karten
   ========================= */
.orders-grid {
    flex: 1 1 auto;
    display: grid;
    /* breiteres Minimum, damit Titel/URLs nicht überlaufen */
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 12px;
    overflow: auto;
    padding-bottom: 4px;
}

@media (min-width:1400px) {
    .orders-grid {
        grid-template-columns: repeat(auto-fill, minmax(420px, 1fr))
    }
}

/* =========================
   Card (Lesemodus)
   ========================= */
.order-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--ord-card);
    border: 1px solid var(--ord-card-border);
    border-radius: 14px;
    padding: 12px;
    color: var(--ord-text);
    transition: transform .15s ease, box-shadow .15s ease;
}

.order-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 18px rgba(0, 0, 0, .18)
}

.order-head {
    display: flex;
    align-items: center;
    gap: 10px
}

.order-id {
    font-weight: 700;
    opacity: .9
}

.badge {
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
    color: #fff
}

.badge.new {
    background: var(--ord-badge-new)
}

.badge.in_progress {
    background: var(--ord-badge-prog)
}

.badge.done {
    background: var(--ord-badge-done)
}

.badge.rejected {
    background: var(--ord-badge-rej)
}

/* markanter Titel + Quelle */
.meta-row--title {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .2px;
}

.meta-row--title .chip {
    font-weight: 600
}

/* generische Meta-Zeilen */
.meta-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--ord-text-muted)
}

.meta-row strong {
    color: var(--ord-text);
    font-weight: 600
}

/* Divider / Blöcke */
.order-meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    border-top: 1px dashed var(--ord-line);
    padding-top: 8px
}

.orders-empty {
    display: grid;
    place-items: center;
    color: var(--ord-text-muted);
    border: 1px dashed var(--ord-card-border);
    background: rgba(0, 0, 0, .04);
    border-radius: 12px;
    padding: 24px;
}

/* Buttons / Chips */
.order-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    border-top: 1px dashed var(--ord-line);
    padding-top: 8px;
    margin-top: 6px
}

.btn {
    height: 32px;
    border-radius: 10px;
    border: 1px solid var(--ord-card-border);
    background: var(--ord-chip);
    color: var(--ord-text);
    padding: 0 10px;
    cursor: pointer
}

.btn:hover {
    background: var(--ord-chip-active)
}

.btn.danger {
    background: #b23;
    color: #fff
}

.btn.outline {
    background: transparent;
    border: 1px solid var(--ord-card-border)
}

.chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--ord-chip);
    border: 1px solid var(--ord-card-border);
    color: var(--ord-text);
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 11px;
    white-space: nowrap
}

.meta-row .chip {
    margin: 2px 2px 0 0
}

/* Long text handling */
.order-note,
.order-url {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word
}

.order-url a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
    overflow-wrap: anywhere;
    word-break: break-word
}

/* =========================
   Edit-Modus (volle Breite, bessere Kontraste)
   ========================= */
.order-card.editing {
    /* nimmt im Grid die ganze Zeile – verhindert abgeschnittene Felder */
    grid-column: 1 / -1;
    background: var(--ord-card-2);
    border-color: color-mix(in oklab, var(--ord-accent) 35%, var(--ord-card-border));
    box-shadow: 0 0 0 2px var(--ord-focus), 0 10px 30px rgba(0, 0, 0, .25);
}

/* Kopf im Edit-Modus */
.order-card.editing .order-head .chip {
    background: transparent;
    border-color: var(--ord-card-border)
}

/* Zwei Spalten Edit-Grid */
.order-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(340px, 1fr));
    gap: 14px;
    margin: 8px 0 6px;
}

@media (max-width:980px) {
    .order-edit-grid {
        grid-template-columns: 1fr
    }
}

/* Controls */
.ctrl {
    display: flex;
    flex-direction: column;
    gap: 6px
}

.ctrl>span {
    font-size: 12px;
    color: var(--ord-text-muted)
}

.ctrl-readonly {
    padding: 10px;
    border-radius: 10px;
    background: var(--ord-card);
    border: 1px dashed var(--ord-card-border);
    color: var(--ord-text)
}

/* Inputs – hoher Kontrast & schöner Focus */
.ord-input {
    width: 100%;
    border-radius: 10px;
    border: 1px solid var(--ord-input-border);
    background: var(--ord-input-bg);
    color: var(--ord-text);
    padding: 10px 12px;
    font: inherit;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.ord-input:focus {
    border-color: var(--ord-accent);
    box-shadow: 0 0 0 3px var(--ord-focus);
    background: color-mix(in oklab, var(--ord-card) 90%, var(--ord-accent) 10%);
}

.ord-textarea {
    min-height: 110px;
    resize: vertical
}

.ord-num {
    max-width: 200px
}

.order-card.editing .order-actions {
    margin-top: 4px
}

/* =========================
   Farbe/Swatch (optional)
   ========================= */
.chip--color {
    display: inline-flex;
    align-items: center;
    gap: 6px
}

.swatch {
    inline-size: 10px;
    block-size: 10px;
    border-radius: 50%;
    background: var(--sw, transparent);
    border: 1px solid var(--ord-card-border);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06)
}

.swatch--empty {
    background:
        linear-gradient(135deg, transparent 45%, rgba(255, 255, 255, .25) 45%, rgba(255, 255, 255, .25) 55%, transparent 55%),
        linear-gradient(45deg, transparent 45%, rgba(255, 255, 255, .25) 45%, rgba(255, 255, 255, .25) 55%, transparent 55%)
}

/* =========================
   Spinner
   ========================= */
.orders-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ord-text-muted);
    padding: 6px 0
}

.spinner {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--ord-line);
    border-top-color: var(--ord-text-muted);
    animation: spin .8s linear infinite
}

@keyframes spin {
    to {
        transform: rotate(360deg)
    }
}

/* Edit: Zeile der Filament-Chips */
.chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.ctrl-readonly {
    padding: 8px 10px;
    border: 1px dashed var(--ord-card-border);
    border-radius: 8px;
    color: var(--ord-text);
    background: color-mix(in oklab, var(--ord-card) 85%, black 15%);
}

.hint {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: var(--ord-text-muted);
}

.order-card .btn[disabled] {
    opacity: .6;
    cursor: not-allowed;
    pointer-events: none;
}

/* === Darkmode: vereinheitlichte Hintergründe === */
.dark-mode .order-card,
.dark-mode .order-edit-grid,
.dark-mode .order-head,
.dark-mode .meta-row,
.dark-mode .order-meta,
.dark-mode .order-actions,
.dark-mode .orders-empty,
.dark-mode .orders-statusbar {
    background-color: var(--sidebar-bg, #2c2f33);
    /* gleiche Farbe wie Sidebar */
    border-color: var(--sidebar-bg, #2c2f33);
}

/* Optional: abgesetzte Rahmen oder Schatten reduzieren */
.dark-mode .order-card {
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Titel deutlich größer */
.order-card .order-title {
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.5rem;
}

/* Chips größer machen */
.order-card .chip {
    font-size: 0.95rem;
    white-space: nowrap;
}

/* Titel oben deutlich größer */
.orders-header h1,
.orders-header-title {
    font-size: 2rem;
    /* deutlich größer */
    font-weight: 800;
    margin-bottom: 1rem;
}

/* Suchzeile hervorheben */
#ord-q {
    background-color: var(--secondary-bg-color, #2c2f33);
    border: 1px solid var(--ws-border, #444);
    border-radius: 6px;
    padding: 0.6rem 0.8rem;
    font-size: 1rem;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1rem;
    /* Abstand zur Statuszeile */
}

/* Statuszeile normal (kein eigener Hintergrund) */
#orders-statusbar {
    background: none !important;
    border: none !important;
    padding: 0.3rem 0;
    font-size: 0.95rem;
    color: var(--ws-text-muted, #bbb);
}

/* Filterbuttons (Alle Status, Neueste zuerst) anpassen */
#ord-status,
#ord-sort {
    background-color: var(--ord-input-bg);
    border: 1px solid var(--ws-border, #444);
    color: var(--text-color, #fff);
    border-radius: 6px;
    padding: 0.5rem 0.8rem;
    font-size: 0.95rem;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
}

/* Hover-Effekt wie Sidebar-Items */
#ord-status:hover,
#ord-sort:hover {
    background-color: var(--ord-input-bg);
    border-color: var(--accent-color, #e9a624);
}

/* --- Dropdown-Innenleben dunkel wie Sidebar --- */
#ord-status,
#ord-sort {
    /* lässt Browser den Popup nativ dunkel rendern (Chromium, Safari) */
    color-scheme: dark;

    /* angleichen an Sidebar */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-color: var(--sidebar-bg, #20252f);
    color: var(--ws-text, #e8ecf6);
    border: 1px solid var(--ws-border, #3a4152);
}

/* Listeneinträge im aufgeklappten Menü */
#ord-status option,
#ord-sort option,
#ord-status optgroup,
#ord-sort optgroup {
    background-color: var(--sidebar-bg, #20252f);
    color: var(--ws-text, #e8ecf6);
}

/* ausgewählter/hover Eintrag */
#ord-status option:checked,
#ord-sort option:checked {
    background-color: var(--sidebar-active, #2a3040);
    color: #fff;
}

#ord-status option:hover,
#ord-sort option:hover {
    background-color: var(--sidebar-hover, #32394a);
}

/* Fokus-Ring im Akzentton wie Sidebar */
#ord-status:focus,
#ord-sort:focus {
    outline: 2px solid var(--accent-color, #f0b22a);
    outline-offset: 0;
    border-color: var(--accent-color, #f0b22a);
    box-shadow: 0 0 0 2px rgba(240, 178, 42, .25);
}

.orders-auth-hint {
    max-width: 720px;
    margin: 24px auto;
    padding: 18px 20px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    text-align: center;
}

.orders-auth-hint h2 {
    margin: 0 0 8px
}

.orders-auth-hint p {
    margin: 0 0 14px;
    opacity: .9
}

.orders-auth-hint .btn.btn-accent {
    display: inline-block;
    padding: 10px 16px;
    border-radius: 10px;
    background: var(--accent-color, #e9a624);
    color: #111;
    font-weight: 700;
    text-decoration: none;
}

/* =========================
   Light-Mode: native Select-Pfeile entfernen
   ========================= */

/* Pfeil in allen gängigen Browsern deaktivieren (nur Light-Mode) */
body.light-mode #ord-status,
body.light-mode #ord-sort,
body.light-mode .orders-select {
    -webkit-appearance: none !important;
    /* Safari/Chrome */
    -moz-appearance: none !important;
    /* Firefox */
    appearance: none !important;
    background-image: none !important;
    /* manche UAs malen den Pfeil als BG */
    background-repeat: no-repeat !important;
    background-position: right 0.6rem center !important;
    /* falls du später ein eigenes Icon willst */
    background-size: 0 !important;
    /* sicherheitshalber */
    padding-right: 0.8rem;
    /* Raum, falls vorher für Chevron reserviert */
}

/* Legacy Edge/IE */
body.light-mode select.orders-select::-ms-expand,
body.light-mode #ord-status::-ms-expand,
body.light-mode #ord-sort::-ms-expand {
    display: none;
}

/* sicherstellen, dass im Light-Mode kein UA-Gradient den Pfeil „andeutet“ */
body.light-mode #ord-status,
body.light-mode #ord-sort {
    background-color: var(--ord-input-bg) !important;
    border-color: var(--ws-border, #d7dbe4) !important;
    color: var(--text-color, #0b1220) !important;
}

/* Orders: Login-Button in der Auth-Hinweis-Card – Light-Mode mit weißer Schrift */
body.light-mode .orders-auth-hint .btn.btn-accent {
    color: #fff !important;
    background: var(--accent-color, #e9a624);
    border: 1px solid color-mix(in oklab, #000 12%, var(--accent-color, #e9a624));
    text-shadow: 0 1px 0 rgba(0, 0, 0, .25);
    /* bessere Lesbarkeit auf Gelb */
}

body.light-mode .orders-auth-hint .btn.btn-accent:hover {
    filter: brightness(0.95);
}

/* === Orders – Light-Mode Fixes für Suche & Dropdowns === */

/* Suche: klare Light-Optik */
body.light-mode #ord-q {
    background: #fff !important;
    color: #111 !important;
    border: 1px solid #d7dbe4 !important;
}

body.light-mode #ord-q::placeholder {
    color: #667085 !important;
    /* dezenter Placeholder */
}

/* Dropdown-Trigger (geschlossener Zustand) */
body.light-mode #ord-status,
body.light-mode #ord-sort,
body.light-mode .orders-select {
    color-scheme: light !important;
    /* wichtig: kein Dark-UI */
    background-color: #fff !important;
    color: #111 !important;
    border: 1px solid #d7dbe4 !important;
    box-shadow: none !important;
}

/* Dropdown-Popup + Einträge */
body.light-mode #ord-status option,
body.light-mode #ord-sort option,
body.light-mode #ord-status optgroup,
body.light-mode #ord-sort optgroup {
    background-color: #fff !important;
    color: #111 !important;
}

/* ausgewählter Eintrag (wo unterstützt) */
body.light-mode #ord-status option:checked,
body.light-mode #ord-sort option:checked {
    background-color: #eef2f7 !important;
    color: #111 !important;
}

/* Optional: Dark-Styles nur im Dark-Mode anwenden (verhindert künftige Konflikte) */
body:not(.light-mode) #ord-status,
body:not(.light-mode) #ord-sort {
    color-scheme: dark;
    background-color: var(--sidebar-bg, #20252f);
    color: var(--ws-text, #e8ecf6);
    border: 1px solid var(--ws-border, #3a4152);
}

body:not(.light-mode) #ord-status option,
body:not(.light-mode) #ord-sort option {
    background-color: var(--sidebar-bg, #20252f);
    color: var(--ws-text, #e8ecf6);
}

/* ===== User: Login-Hinweis (optisch wie Orders) ===== */
.user-auth-hint {
    max-width: 720px;
    margin: 24px auto;
    padding: 18px 20px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    text-align: center;
}

.user-auth-hint h2 {
    margin: 0 0 8px;
}

.user-auth-hint p {
    margin: 0 0 14px;
    opacity: .9;
}

/* Button wie in Orders */
.user-auth-hint .btn.btn-accent {
    display: inline-block;
    padding: 10px 16px;
    border-radius: 10px;
    background: var(--accent-color, #e9a624);
    color: #111;
    font-weight: 700;
    text-decoration: none;
}

/* Light-Mode: bessere Lesbarkeit wie in Orders */
body.light-mode .user-auth-hint .btn.btn-accent {
    color: #fff !important;
    background: var(--accent-color, #e9a624);
    border: 1px solid color-mix(in oklab, #000 12%, var(--accent-color, #e9a624));
    text-shadow: 0 1px 0 rgba(0, 0, 0, .25);
}

body.light-mode .user-auth-hint .btn.btn-accent:hover {
    filter: brightness(0.95);
}

/* ============================================
   1) Edit-Status: höher + sauberer Zeilenabstand
   ============================================ */

/* generisch alle Inputs in der Edit-Zeile etwas höher */
.order-card.editing .ord-input {
    min-height: 44px;
    /* Höhe */
    line-height: 1.35;
    /* kein Clipping */
    padding: 10px 12px;
    /* ruhige Innenabstände */
}