@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800;900&family=Barlow:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* ==========================================
   guggbyte.com Brand — dark by default
   Palette: #0A0C14 (bg), #FFE600 (brand), #0D1B4B (navy)
   Fonts: Barlow Condensed (display), Barlow (body), IBM Plex Mono (mono)
   ========================================== */

:root {
    --brand-color: #FFE600;
    --guggbyte-orange: #FFE600;        /* brand yellow — fills, borders, buttons */
    --guggbyte-orange-light: #fff176;
    --guggbyte-dark: #c9b600;
    --brand-ink: #0D1B4B;              /* brand colour usable as text on light bg */
    --navy: #0D1B4B;
    --bg: #ffffff;
    --surface: #ffffff;
    --surface-2: #f5f5f5;
    --border: #dedede;
    --border-subtle: #ececec;
    --text: #1c2033;
    --text-muted: #5a6070;
    --text-subtle: #9090a0;
    --success: #27ae60;
    --danger: #e74c3c;
    --warning-light: #e67e22;
    --info: #2980b9;
    --font-display: 'Barlow Condensed', sans-serif;
    --font-body: 'Barlow', sans-serif;
    --font-mono: 'IBM Plex Mono', monospace;
}

[data-theme="dark"] {
    --brand-ink: #FFE600;             /* yellow reads on dark bg */
    --bg: #0A0C14;
    --surface: #161929;
    --surface-2: #1e2235;
    --border: #2a2f48;
    --border-subtle: #21263c;
    --text: #e8eaf0;
    --text-muted: #8b90a8;
    --text-subtle: #4a5070;
}


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

body {
    font-family: 'Barlow', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

/* ── Navbar ── */
.navbar {
    background: var(--surface);
    color: var(--text);
    padding: 0 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 62px;
    border-bottom: 2px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.navbar a { color: var(--text); text-decoration: none; }

.navbar-brand {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--text);
}

.navbar-logo { height: 34px; width: auto; }

.navbar-nav {
    display: flex;
    gap: .2rem;
    align-items: center;
    font-size: .875rem;
}

.navbar-nav > a {
    padding: .4rem .9rem;
    border-radius: 4px;
    color: var(--text-muted);
    font-weight: 500;
    transition: color .15s, background .15s;
}

.navbar-nav > a:hover {
    color: var(--text);
    background: var(--surface-2);
}

.navbar-nav > a.nav-active {
    color: var(--brand-ink);
    background: rgba(255,230,0,.07);
    font-weight: 600;
}

/* Navbar User Dropdown */
#userDropdown > a {
    padding: .4rem .9rem;
    border-radius: 4px;
    color: var(--text-muted);
    font-weight: 500;
    transition: color .15s, background .15s;
    cursor: pointer;
}

#userDropdown > a:hover { color: var(--text); background: var(--surface-2); }

#userDropdownMenu {
    background: var(--surface) !important;
    border: 1px solid var(--border) !important;
    border-radius: 6px !important;
    box-shadow: 0 6px 20px rgba(0,0,0,.12) !important;
    overflow: hidden !important;
    min-width: 200px;
}

#userDropdownMenu a {
    color: var(--text-muted) !important;
    font-size: .875rem;
    padding: .65rem 1rem !important;
    display: block !important;
    text-decoration: none !important;
    transition: background .12s, color .12s;
    border-bottom: 1px solid var(--border-subtle);
}

#userDropdownMenu a:last-child { border-bottom: none; }

#userDropdownMenu a:hover {
    background: var(--surface-2) !important;
    color: var(--text) !important;
    text-decoration: none !important;
}

#userDropdownMenu .dropdown-danger { color: var(--danger) !important; }
#userDropdownMenu .dropdown-danger:hover {
    background: rgba(231,76,60,.08) !important;
    color: #c0392b !important;
}

/* ── Container ── */
.container { width: 94%; max-width: 1600px; margin: 2rem auto; padding: 0 0 2rem; }

/* ── Cards ── */
.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    transition: border-color .2s, box-shadow .2s;
}

.card:hover {
    border-color: #c8c8d8;
    box-shadow: 0 3px 10px rgba(0,0,0,.09);
}

.card h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: .02em;
    margin-bottom: 1rem;
    color: var(--text);
}

/* ── Stats Grid ── */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.stat-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.4rem;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    transition: border-color .2s, transform .2s, box-shadow .2s;
}

.stat-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(to right, var(--guggbyte-orange-light), var(--guggbyte-orange));
}

.stat-card:hover {
    border-color: var(--guggbyte-orange);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(255,230,0,.12);
}

@media (prefers-reduced-motion: reduce) {
    .stat-card:hover { transform: none; }
    .stat-card { transition: border-color .2s; }
    .btn { transition: none; }
    .card { transition: none; }
}

.stat-card .number {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--brand-ink);
    line-height: 1;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}

.stat-card .label {
    color: var(--text-muted);
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .1em;
    font-weight: 600;
    margin-top: .35rem;
}

/* ── Tables ── */
table { width: 100%; border-collapse: collapse; }

th, td { padding: .75rem 1rem; text-align: left; border-bottom: 1px solid var(--border-subtle); }

th {
    background: var(--surface-2);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--text-muted);
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--border);
}

tr:hover td { background: rgba(255,230,0,.05); }
tr[data-href] { cursor: pointer; }

/* ── Badges ── */
.badge {
    display: inline-block;
    padding: .22em .65em;
    border-radius: 4px;
    font-size: .71rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    border: 1px solid transparent;
}

.badge-geplant    { background: #f0f0f5; color: #5a6070; border-color: #d0d0e0; }
.badge-arbeit     { background: #eaf2fb; color: #2471a3; border-color: #aed6f1; }
.badge-abgeschlossen { background: #eafaf1; color: #1e8449; border-color: #a9dfbf; }
.badge-pausiert   { background: #fef9e7; color: #9a7d0a; border-color: #f9e79f; }
.badge-offen      { background: #f0f0f5; color: #5a6070; border-color: #d0d0e0; }
.badge-erledigt   { background: #eafaf1; color: #1e8449; border-color: #a9dfbf; }
.badge-blockiert  { background: #fdf0ee; color: #c0392b; border-color: #f1948a; }
.badge-niedrig    { background: #f0f0f5; color: #5a6070; border-color: #d0d0e0; }
.badge-normal     { background: #eaf2fb; color: #2471a3; border-color: #aed6f1; }
.badge-hoch       { background: #fef5ee; color: #d35400; border-color: #f0b27a; }
.badge-dringend   { background: #fdf0ee; color: #c0392b; border-color: #f1948a; }
.badge-admin      { background: #fef5ee; color: #d35400; border-color: #f0b27a; }
.badge-benutzer   { background: #f0f0f5; color: #5a6070; border-color: #d0d0e0; }
.badge-extern     { background: #eef4fb; color: #1a6aaa; border-color: #aacde8; }
.badge-aktiv      { background: #eafaf1; color: #1e8449; border-color: #a9dfbf; }
.badge-inaktiv    { background: #fdf0ee; color: #c0392b; border-color: #f1948a; }
.badge-buchhaltung { background: #fef9e7; color: #9a7d0a; border-color: #f9e79f; }

/* ── Forms ── */
.form-group { margin-bottom: 1.2rem; }

.form-group label {
    display: block;
    font-weight: 600;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: .4rem;
    color: var(--text-muted);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: .6rem .9rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 5px;
    font-size: .95rem;
    font-family: inherit;
    color: var(--text);
    transition: border-color .15s, box-shadow .15s;
}

.form-group select { color: var(--text); background: var(--surface); }

.form-group textarea { resize: vertical; min-height: 90px; }

.form-group input[type="checkbox"],
.form-group input[type="radio"] {
    width: auto; padding: 0; border: none; box-shadow: none;
    min-height: unset; display: inline-block; vertical-align: middle;
    accent-color: var(--guggbyte-orange);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--guggbyte-orange);
    box-shadow: 0 0 0 3px rgba(255,230,0,.15);
    background: var(--surface);
}

/* ── Buttons ── */
.btn {
    display: inline-block;
    padding: .5rem 1.25rem;
    border: 1px solid transparent;
    border-radius: 4px;
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: all .15s;
    letter-spacing: .02em;
    line-height: 1.5;
}

.btn-primary {
    background: linear-gradient(to bottom, var(--guggbyte-orange-light) 0%, var(--guggbyte-orange) 100%);
    color: #0A0C14;
    border-color: var(--guggbyte-orange);
    font-weight: 700;
}
.btn-primary:hover {
    background: #fff176;
    border-color: var(--guggbyte-dark);
    color: #0A0C14;
    box-shadow: 0 2px 12px rgba(255,230,0,.35);
}

.btn-secondary {
    background: linear-gradient(to bottom, var(--surface) 0%, var(--surface-2) 100%);
    color: var(--text);
    border-color: var(--border);
}
.btn-secondary:hover {
    background: var(--surface-2);
    color: var(--brand-ink);
    border-color: var(--guggbyte-orange);
}

.btn-danger {
    background: linear-gradient(to bottom, #e74c3c 0%, #c0392b 100%);
    color: #fff;
    border-color: #c0392b;
}
.btn-danger:hover {
    background: #c0392b;
    border-color: #a93226;
    color: #fff;
}

.btn-sm { padding: .28rem .7rem; font-size: .8rem; }

/* ── Alerts ── */
.alert {
    padding: .85rem 1rem;
    border-radius: 5px;
    margin-bottom: 1rem;
    font-size: .9rem;
    border: 1px solid transparent;
    border-left: 4px solid transparent;
}
.alert-error   { background: #fdf0ee; color: #922b21; border-color: #f1948a; border-left-color: #c0392b; }
.alert-success { background: #eafaf1; color: #1d6a3b; border-color: #a9dfbf; border-left-color: #27ae60; }
.alert-info    { background: #eaf3fb; color: #1a5276; border-color: #aed6f1; border-left-color: #2980b9; }

/* ── Auth Pages ── */
.auth-container {
    max-width: 440px;
    margin: 5rem auto;
    padding: 0 1rem;
}

.auth-container .card {
    padding: 2.5rem;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0,0,0,.1);
}
.auth-logo { display: block; margin: 0 auto 1.5rem; max-width: 160px; height: auto; }

.auth-container h1 {
    text-align: center;
    margin-bottom: 1.5rem;
    color: var(--text);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: .03em;
}

.auth-links { text-align: center; margin-top: 1rem; font-size: .9rem; }
.auth-links a { color: var(--brand-ink); }

/* ── Gantt ── */
.gantt-container { overflow-x: auto; overflow-y: hidden; width: 100%; }
.gantt-container svg { width: 100% !important; min-width: 0; }
.gantt-view-buttons { display: flex; gap: .5rem; }
.bar-project .bar-progress { fill: var(--guggbyte-orange); }
.bar-project .bar { fill: rgba(255,230,0,.15); stroke: var(--guggbyte-orange); }
.bar-task-offen .bar-progress { fill: #2980b9; }
.bar-task-offen .bar { fill: rgba(41,128,185,.15); stroke: #2980b9; }
.bar-task-in-arbeit .bar-progress { fill: #2980b9; }
.bar-task-in-arbeit .bar { fill: rgba(41,128,185,.15); stroke: #2980b9; }
.bar-task-erledigt .bar-progress { fill: #27ae60; }
.bar-task-erledigt .bar { fill: rgba(39,174,96,.15); stroke: #27ae60; }
.bar-task-blockiert .bar-progress { fill: #e74c3c; }
.bar-task-blockiert .bar { fill: rgba(231,76,60,.15); stroke: #e74c3c; }

/* ── 2FA Banner ── */
.tfa-banner {
    background: #fef9e7;
    border-bottom: 2px solid #f9e79f;
    padding: 1rem 2rem;
    text-align: center;
    color: #7d6608;
}

@keyframes blink-red { 0%,100% { color: #e74c3c; } 50% { color: transparent; } }
.tfa-icon { animation: blink-red 1s step-start infinite; font-size: 2rem; line-height: 1; }

/* ── Dev Mode Banner ── */
@keyframes blink-bug { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
.dev-banner-icon { animation: blink-bug .8s step-start infinite; font-size: 1.6rem; line-height: 1; vertical-align: middle; margin-right: .4rem; }
.dev-banner-box {
    background: #fff176;
    border: 2px solid #f9a825;
    border-radius: 6px;
    padding: 1rem 1.5rem;
    margin: 1.5rem auto 1rem;
    max-width: 900px;
    text-align: center;
    color: #5a3e00;
    font-size: .92rem;
}

/* ── Footer ── */
.site-footer {
    text-align: center;
    padding: 1.2rem 1rem;
    margin-top: 3rem;
    color: var(--text-subtle);
    font-size: .78rem;
    border-top: 1px solid var(--border);
    background: var(--surface);
}

.site-footer a { color: var(--text-subtle); text-decoration: none; }
.site-footer a:hover { color: var(--brand-ink); }
.site-footer a.footer-brand { color: var(--brand-ink); font-weight: 600; }
.site-footer a.footer-brand:hover { text-decoration: underline; }

/* ── Bug Report ── */
#bugReportBtn {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 1200;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    border: none;
    background: var(--guggbyte-orange);
    color: #0A0C14;
    font-size: 1.4rem;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,.3);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .15s, box-shadow .15s;
}
#bugReportBtn:hover { transform: scale(1.1); box-shadow: 0 4px 14px rgba(0,0,0,.35); }
#bugReportOverlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 1300;
}
#bugReportModal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1400;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1.5rem;
    width: min(460px, 92vw);
    box-shadow: 0 8px 32px rgba(0,0,0,.25);
}

/* ── Headings ── */
h1 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.7rem;
    font-weight: 700;
    letter-spacing: .02em;
    margin-bottom: 1.5rem;
    color: var(--text);
}

h2 { font-family: 'Barlow Condensed', sans-serif; font-weight: 600; }
h3, h4 { font-family: 'Barlow Condensed', sans-serif; }

/* ── Links ── */
a { color: var(--brand-ink); }
a:hover { color: var(--guggbyte-dark); }

/* ── Table overflow wrapper ── */
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ── Empty state ── */
.empty-state {
    text-align: center;
    padding: 2.5rem 1rem;
    color: var(--text-muted);
}
.empty-state p { margin-bottom: 1rem; font-size: .95rem; }

/* ── Focus states (keyboard nav) ── */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--guggbyte-orange);
    outline-offset: 2px;
}

/* ── Theme Toggle ── */
.theme-toggle {
    background: none;
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    font-size: 1.15rem;
    line-height: 1;
    padding: .3rem .5rem;
    color: var(--text-muted);
    transition: color .15s, border-color .15s, background .15s;
    display: flex;
    align-items: center;
}
.theme-toggle:hover {
    color: var(--brand-ink);
    border-color: var(--guggbyte-orange);
    background: rgba(255,230,0,.07);
}

/* Dark mode overrides for hard-coded colors */
[data-theme="dark"] .tfa-banner {
    background: #3a3520;
    border-bottom-color: #6b5e20;
    color: #d4c860;
}
[data-theme="dark"] .dev-banner-box {
    background: #3a2e00;
    border-color: #cc7a00;
    color: #ffc107;
}
[data-theme="dark"] .card:hover {
    border-color: #4a4a68;
}
[data-theme="dark"] .badge-geplant    { background: #2a2a48; color: #a0a0b8; border-color: #3a3a58; }
[data-theme="dark"] .badge-arbeit     { background: #1a2a40; color: #5dade2; border-color: #2a4060; }
[data-theme="dark"] .badge-abgeschlossen { background: #1a3a28; color: #58d68d; border-color: #2a5a40; }
[data-theme="dark"] .badge-pausiert   { background: #3a3520; color: #d4c860; border-color: #5a5030; }
[data-theme="dark"] .badge-offen      { background: #2a2a48; color: #a0a0b8; border-color: #3a3a58; }
[data-theme="dark"] .badge-erledigt   { background: #1a3a28; color: #58d68d; border-color: #2a5a40; }
[data-theme="dark"] .badge-blockiert  { background: #3a1a1a; color: #f1948a; border-color: #5a2a2a; }
[data-theme="dark"] .badge-niedrig    { background: #2a2a48; color: #a0a0b8; border-color: #3a3a58; }
[data-theme="dark"] .badge-normal     { background: #1a2a40; color: #5dade2; border-color: #2a4060; }
[data-theme="dark"] .badge-hoch       { background: #3a2a1a; color: #f0b27a; border-color: #5a4030; }
[data-theme="dark"] .badge-dringend   { background: #3a1a1a; color: #f1948a; border-color: #5a2a2a; }
[data-theme="dark"] .badge-admin      { background: #3a2a1a; color: #f0b27a; border-color: #5a4030; }
[data-theme="dark"] .badge-benutzer   { background: #2a2a48; color: #a0a0b8; border-color: #3a3a58; }
[data-theme="dark"] .badge-extern     { background: #1a2a3a; color: #7ab8e8; border-color: #2a4a6a; }
[data-theme="dark"] .badge-aktiv      { background: #1a3a28; color: #58d68d; border-color: #2a5a40; }
[data-theme="dark"] .badge-inaktiv    { background: #3a1a1a; color: #f1948a; border-color: #5a2a2a; }
[data-theme="dark"] .badge-buchhaltung { background: #3a3520; color: #d4c860; border-color: #5a5030; }
[data-theme="dark"] .alert-error   { background: #3a1a1a; color: #f1948a; border-color: #5a2a2a; border-left-color: #c0392b; }
[data-theme="dark"] .alert-success { background: #1a3a28; color: #58d68d; border-color: #2a5a40; border-left-color: #27ae60; }
[data-theme="dark"] .alert-info    { background: #1a2a40; color: #5dade2; border-color: #2a4060; border-left-color: #2980b9; }
[data-theme="dark"] .auth-container .card { box-shadow: 0 4px 20px rgba(0,0,0,.3); }

/* Dark mode: table row backgrounds */
[data-theme="dark"] tr[data-root] { background: var(--surface-2) !important; }
[data-theme="dark"] tr:hover td { background: rgba(255,230,0,.08); }

/* Dark mode: all input, select, textarea fields */
[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea {
    background: var(--surface-2) !important;
    color: var(--text) !important;
    border-color: var(--border) !important;
}
[data-theme="dark"] input:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] textarea:focus {
    background: var(--surface) !important;
}

/* Dark mode: kanban */
[data-theme="dark"] .kanban-column { background: var(--surface-2); }
[data-theme="dark"] .kanban-card { background: var(--surface); color: var(--text); box-shadow: 0 1px 3px rgba(0,0,0,.25); }
[data-theme="dark"] .kanban-card:hover { box-shadow: 0 3px 8px rgba(0,0,0,.35); }
[data-theme="dark"] .kanban-count { background: rgba(255,255,255,.1); color: var(--text-muted); }
[data-theme="dark"] .kanban-quick-add { border-top-color: var(--border); }
[data-theme="dark"] .kanban-add-list { border-color: var(--border); }
[data-theme="dark"] .kanban-checklist-bar { background: var(--border); }
[data-theme="dark"] .modal-box { background: var(--surface); color: var(--text); }
[data-theme="dark"] .kanban-card-title { color: var(--text); }

/* Dark mode: FullCalendar */
[data-theme="dark"] .fc {
    color: var(--text);
}
[data-theme="dark"] .fc-scrollgrid,
[data-theme="dark"] .fc-scrollgrid td,
[data-theme="dark"] .fc-scrollgrid th {
    border-color: var(--border) !important;
}
[data-theme="dark"] .fc-col-header-cell {
    background: var(--surface-2);
}
[data-theme="dark"] .fc-col-header-cell-cushion {
    color: var(--text) !important;
}
[data-theme="dark"] .fc-daygrid-day {
    background: var(--surface);
}
[data-theme="dark"] .fc-daygrid-day.fc-day-other {
    background: var(--surface-2);
}
[data-theme="dark"] .fc-day-today {
    background: rgba(255, 230, 0, 0.1) !important;
}
[data-theme="dark"] .fc-daygrid-day-number {
    color: var(--text) !important;
}
[data-theme="dark"] .fc-day-other .fc-daygrid-day-number {
    color: var(--text-muted) !important;
}
[data-theme="dark"] .fc-toolbar-title {
    color: var(--text);
}
[data-theme="dark"] .fc-list-day-cushion {
    background: var(--surface-2) !important;
    color: var(--text) !important;
}
[data-theme="dark"] .fc-list-event:hover td {
    background: var(--surface-2) !important;
}
[data-theme="dark"] .fc-list-day-text,
[data-theme="dark"] .fc-list-day-side-text {
    color: var(--text) !important;
}
[data-theme="dark"] .fc-list-empty {
    background: var(--surface);
    color: var(--text-muted);
}
[data-theme="dark"] .fc-timegrid-slot,
[data-theme="dark"] .fc-timegrid-slot-label {
    border-color: var(--border) !important;
    color: var(--text-muted);
}
[data-theme="dark"] .fc-timegrid-col {
    background: var(--surface);
}
[data-theme="dark"] .fc-timegrid-now-indicator-line {
    border-color: var(--guggbyte-orange);
}
[data-theme="dark"] .fc-event,
[data-theme="dark"] .fc-event *,
[data-theme="dark"] .fc-event-main,
[data-theme="dark"] .fc-event-title,
[data-theme="dark"] .fc-event-time {
    color: #fff !important;
}
[data-theme="light"] .fc-event,
[data-theme="light"] .fc-event *,
[data-theme="light"] .fc-event-main,
[data-theme="light"] .fc-event-title,
[data-theme="light"] .fc-event-time {
    color: #000 !important;
}
.fc-daygrid-event {
    white-space: normal !important;
    height: auto !important;
    min-height: 1.4em;
}
.fc-daygrid-event-harness {
    height: auto !important;
}
.fc-event-title,
.fc-event-title-container {
    white-space: normal !important;
    overflow: visible !important;
    word-break: break-word;
    line-height: 1.3;
}

/* Dark mode: Gantt */
[data-theme="dark"] .gantt-container { background: var(--surface); }
[data-theme="dark"] .gantt .grid-header { fill: var(--surface-2); stroke: var(--border); }
[data-theme="dark"] .gantt .grid-row { fill: var(--surface); }
[data-theme="dark"] .gantt .grid-row:nth-child(even) { fill: var(--surface-2); }
[data-theme="dark"] .gantt .row-line { stroke: var(--border); }
[data-theme="dark"] .gantt .tick { stroke: var(--border); }
[data-theme="dark"] .gantt .lower-text, [data-theme="dark"] .gantt .upper-text { fill: var(--text-muted); }

/* ── Hamburger button (hidden on desktop) ── */
.navbar-burger {
    display: none;
    background: none;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 1.4rem;
    padding: .2rem .5rem;
    cursor: pointer;
    color: var(--text);
    line-height: 1;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .navbar { padding: 0 1rem; flex-wrap: wrap; height: auto; min-height: 56px; }
    .navbar-burger { display: block; }
    .brand-text { font-size: .95rem; }
    .navbar-logo { height: 28px; }
    .navbar-nav {
        display: none;
        width: 100%;
        flex-direction: column;
        gap: 0;
        padding: .5rem 0;
        border-top: 1px solid var(--border);
        font-size: .9rem;
    }
    .navbar-nav.nav-open { display: flex; }
    .navbar-nav > a { padding: .5rem .5rem; border-radius: 0; }
    .navbar-nav .theme-toggle { align-self: flex-start; margin: .3rem .5rem; }
    #userDropdown { padding: .3rem .5rem; }
    #userDropdownMenu { position: static !important; box-shadow: none !important; border: none !important; border-top: 1px solid var(--border) !important; border-radius: 0 !important; }

    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    table { font-size: .85rem; }
    th, td { padding: .5rem .6rem; }

    .container { width: 100%; padding: 0 .75rem 2rem; margin-top: 1rem; }

    h1 { font-size: 1.3rem; }

    /* Kanban mobile: single column scroll */
    .kanban-board { flex-direction: column; }
    .kanban-column { flex: 0 0 auto; width: 100%; }
    .kanban-add-list { flex: 0 0 auto; width: 100%; min-height: 80px; }

    /* View nav buttons wrap */
    .view-nav { flex-wrap: wrap; }
}

@media (max-width: 480px) {
    .stats-grid { grid-template-columns: 1fr 1fr; gap: .6rem; }
    .stat-card { padding: 1rem; }
    .stat-card .number { font-size: 2rem; }
    .brand-text { display: none; }
}
