/* ===========================================================
   Anka Dashboard — sidebar + kart tabanlı panel (2026-07-21)
   app.css'teki token/renkleri kullanır; accent + koyu tema uyumlu.
   =========================================================== */
:root { --side-w: 264px; }

body.dash { background: var(--bg); }

.dash-layout { display: grid; grid-template-columns: var(--side-w) 1fr; min-height: 100vh; }

/* ---------- Sidebar ---------- */
.dash-sidebar {
    position: sticky; top: 0; align-self: start; height: 100vh;
    background: var(--card); border-right: 1px solid var(--line);
    display: flex; flex-direction: column; padding: 1.15rem .85rem 1rem; gap: .25rem;
    box-shadow: 1px 0 0 var(--line);
}
.side-logo { display: flex; align-items: center; gap: .6rem; font-weight: 800; font-size: 1.3rem; letter-spacing: -.03em; color: var(--ink); padding: .35rem .55rem 1.1rem; }
.side-logo .brand-badge { width: 36px; height: 36px; font-size: 1.05rem; box-shadow: 0 6px 16px -6px rgba(79,70,229,.5); }
.side-nav { display: flex; flex-direction: column; gap: .12rem; }
.side-nav a {
    position: relative;
    display: flex; align-items: center; gap: .7rem; padding: .6rem .7rem; border-radius: 12px;
    color: var(--ink-soft); font-weight: 500; font-size: .93rem; text-decoration: none;
    transition: background .15s, color .15s, transform .1s;
}
.side-nav a .ico { width: 22px; text-align: center; flex: 0 0 22px; font-size: 1.02rem; opacity: .9; filter: grayscale(.15); transition: filter .15s, transform .15s; }
.side-nav a:hover { background: var(--brand-soft); color: var(--brand-700); }
.side-nav a:hover .ico { transform: scale(1.08); filter: none; }
.side-nav a:active { transform: translateX(1px); }
.side-nav a.active {
    background: var(--brand-soft); color: var(--brand); font-weight: 700;
    box-shadow: inset 0 0 0 1px var(--brand-soft-2);
}
.side-nav a.active .ico { filter: none; }
/* accent gösterge çubuğu */
.side-nav a.active::before {
    content: ""; position: absolute; left: -.85rem; top: 50%; transform: translateY(-50%);
    width: 4px; height: 22px; border-radius: 0 4px 4px 0; background: var(--brand);
}
.side-badge { margin-left: auto; background: #ef4444; color: #fff; font-size: .68rem; font-weight: 800; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; display: inline-grid; place-items: center; box-shadow: 0 2px 6px -1px rgba(239,68,68,.6); }
.side-heading { font-size: .66rem; text-transform: uppercase; letter-spacing: .11em; color: var(--muted); font-weight: 700; padding: 1.15rem .75rem .35rem; }
.side-spacer { flex: 1; min-height: .5rem; }
.side-user {
    display: flex; align-items: center; gap: .65rem; padding: .55rem .6rem; border-radius: 14px; cursor: pointer;
    border: 1px solid var(--line); background: var(--bg); text-decoration: none; color: inherit;
    transition: border-color .15s, box-shadow .15s, transform .1s;
}
.side-user:hover { border-color: var(--brand-soft-2); box-shadow: 0 8px 20px -14px rgba(79,70,229,.6); transform: translateY(-1px); }
.side-user .av { width: 38px; height: 38px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; color: #fff; font-weight: 700; background: linear-gradient(135deg, var(--brand-2), var(--brand-700)); flex: 0 0 38px; }
.side-user .av img { width: 100%; height: 100%; object-fit: cover; }
.side-user .nm { font-weight: 700; font-size: .9rem; color: var(--ink); line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
.side-user .sub { font-size: .75rem; color: var(--muted); }

/* Sidebar alt aksiyon düğmeleri (tema/dil/çıkış) */
.side-actions { display: flex; gap: .4rem; padding: 0 .3rem .6rem; }
.side-actions .dash-icon-btn { flex: 1; height: 38px; }

/* ---------- Main ---------- */
/* min-width:0 → grid çocuğu (kanban vb.) geniş içerikle tüm sayfayı yatay
   kaydırmasın; kanban kendi kabında (.board overflow-x:auto) kaysın.
   (overflow-x:hidden KULLANMA — sticky sidebar'ı bozar.)
   max-width kaldırıldı → içerik tüm ekrana yayılır; ultra-geniş ekranda
   1720px'te ortalanır. */
.dash-main { padding: 1.7rem clamp(1.25rem, 2.6vw, 2.75rem) 3rem; max-width: 1720px; width: 100%; margin: 0 auto; min-width: 0; }
.dash-main .container, .dash-main .container-fluid { max-width: 100%; width: 100%; padding-left: 0; padding-right: 0; }
.dash-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.4rem; flex-wrap: wrap; }
.dh-greet { font-size: .95rem; color: var(--ink-soft); font-weight: 500; }
.dh-date { font-size: 1.7rem; font-weight: 800; letter-spacing: -.02em; color: var(--ink); margin-top: .1rem; }
.dh-actions { display: flex; align-items: center; gap: .5rem; }
.dash-icon-btn {
    width: 40px; height: 40px; border-radius: 11px; border: 1px solid var(--line); background: var(--card);
    display: grid; place-items: center; cursor: pointer; font-size: 1.05rem; color: var(--ink-soft); position: relative; text-decoration: none;
}
.dash-icon-btn:hover { background: var(--brand-soft); color: var(--brand); }
.dash-icon-btn .dot { position: absolute; top: 8px; right: 9px; width: 7px; height: 7px; border-radius: 50%; background: #ef4444; display: none; }
.plan-btn {
    display: inline-flex; align-items: center; gap: .45rem; border: none; cursor: pointer;
    background: linear-gradient(135deg, var(--brand-2), var(--brand-700)); color: #fff; font-weight: 700; font-size: .92rem;
    padding: .6rem 1.1rem; border-radius: 12px; box-shadow: 0 10px 22px -10px rgba(79,70,229,.6);
}
.plan-btn:hover { filter: brightness(1.05); }

/* ===== Proje zaman çizelgesi (başlangıç → bitiş) ===== */
.pd-timeline { margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.pd-tl-head { display: flex; align-items: center; justify-content: space-between; font-size: .82rem; font-weight: 700; color: var(--ink-soft); margin-bottom: .55rem; gap: .5rem; }
.pd-tl-head .s2 { text-align: right; }
.pd-tl-track { position: relative; height: 9px; background: var(--line); border-radius: 999px; }
.pd-tl-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; background: linear-gradient(90deg, var(--brand-2), var(--brand)); transition: width .5s ease; }
.pd-tl-today { position: absolute; top: 50%; width: 15px; height: 15px; border-radius: 50%; background: var(--brand); border: 3px solid var(--card); transform: translate(-50%, -50%); box-shadow: 0 3px 8px -1px rgba(79,70,229,.6); z-index: 1; transition: left .5s ease; }
.pd-tl-sub { text-align: center; font-size: .82rem; color: var(--muted); margin-top: .6rem; font-weight: 600; }
.pd-tl-sub b { color: var(--brand-700); }

/* ===== Proje mini takvimi (Etkinlikler sekmesi) ===== */
.pd-cal { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 1.1rem 1.2rem; margin-bottom: 1.2rem; box-shadow: var(--shadow-sm); max-width: 540px; }
.pd-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.pd-cal-title { font-weight: 800; color: var(--ink); font-size: 1.02rem; letter-spacing: -.01em; }
.pd-cal-nav { display: inline-flex; gap: .3rem; }
.pd-cal-nav button { width: 32px; height: 32px; border: none; background: var(--bg); border-radius: 10px; cursor: pointer; color: var(--ink-soft); font-weight: 800; font-size: 1rem; display: grid; place-items: center; transition: background .12s, color .12s; }
.pd-cal-nav button:hover { background: var(--brand-soft); color: var(--brand); }
.pd-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.pd-cal-dow { text-align: center; font-size: .64rem; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; padding-bottom: .35rem; }
.pd-cal-cell { position: relative; aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border-radius: 9px; font-size: .8rem; font-weight: 600; color: var(--ink-soft); }
.pd-cal-cell.other { color: var(--muted); opacity: .45; }
.pd-cal-cell.in-range { background: color-mix(in srgb, var(--pr-color) 16%, transparent); border-radius: 0; }
.pd-cal-cell.range-start { border-top-left-radius: 9px; border-bottom-left-radius: 9px; }
.pd-cal-cell.range-end { border-top-right-radius: 9px; border-bottom-right-radius: 9px; }
.pd-cal-cell.today { box-shadow: inset 0 0 0 2px var(--brand); color: var(--brand-700); font-weight: 800; }
.pd-cal-dots { display: flex; gap: 2px; height: 6px; }
.pd-cal-dots span { width: 5px; height: 5px; border-radius: 50%; }
.pd-cal-legend { display: flex; align-items: center; gap: .4rem; font-size: .76rem; color: var(--muted); margin-top: .8rem; font-weight: 600; }
.pd-cal-legend .sw { width: 22px; height: 8px; border-radius: 4px; opacity: .55; }

/* Üst aksiyon çubuğu (sidebar.js enjekte eder) — Günüm'deki gibi her sayfada */
.dash-appbar { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; margin-bottom: 1.2rem; }
.dash-appbar .dash-icon-btn { width: 42px; height: 42px; }
@media (max-width: 820px) { .dash-appbar { display: none; } }

/* ---------- Kartlar ---------- */
.dcard { background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 1.2rem 1.3rem; box-shadow: var(--shadow-sm); }
.dcard-title { font-size: .72rem; text-transform: uppercase; letter-spacing: .09em; color: var(--muted); font-weight: 700; margin-bottom: .9rem; }
.stat-row { display: grid; grid-template-columns: 1fr 1.4fr 1.2fr; gap: 1rem; margin-bottom: 1.1rem; }
.grid-2 { display: grid; grid-template-columns: 1.6fr 1fr; gap: 1rem; }

/* Gün ilerlemesi halkası */
.ring-wrap { display: flex; flex-direction: column; align-items: center; gap: .7rem; }
.ring { width: 130px; height: 130px; border-radius: 50%; display: grid; place-items: center;
    background: conic-gradient(var(--brand) calc(var(--p, 0) * 1%), var(--line) 0); }
.ring::before { content: ""; position: absolute; }
.ring .hole { width: 100px; height: 100px; border-radius: 50%; background: var(--card); display: grid; place-items: center; }
.ring .val { font-size: 1.6rem; font-weight: 800; color: var(--ink); }
.ring-sub { font-size: .82rem; color: var(--ink-soft); font-weight: 600; text-align: center; }
.mini-bar { height: 8px; border-radius: 6px; background: var(--line); overflow: hidden; }
.mini-bar > span { display: block; height: 100%; background: linear-gradient(90deg, var(--brand-2), var(--brand)); border-radius: 6px; }

/* Rutinler */
.routine-strip { display: flex; gap: .5rem; flex-wrap: wrap; }
.routine-item { display: flex; flex-direction: column; align-items: center; gap: .4rem; width: 74px; }
.routine-ico { width: 56px; height: 56px; border-radius: 16px; background: var(--brand-soft); display: grid; place-items: center; font-size: 1.5rem; position: relative; }
.routine-ico.done { background: #dcfce7; }
.routine-ico .chk { position: absolute; top: -4px; right: -4px; width: 20px; height: 20px; border-radius: 50%; background: #16a34a; color: #fff; font-size: .7rem; display: grid; place-items: center; }
.routine-name { font-size: .78rem; color: var(--ink-soft); text-align: center; }

/* Odak/haftalık bar */
.wk-num { font-size: 1.9rem; font-weight: 800; color: var(--ink); letter-spacing: -.02em; }
.wk-sub { font-size: .82rem; color: var(--muted); margin-bottom: .8rem; }
.wk-bars { display: flex; align-items: flex-end; gap: .5rem; height: 62px; }
.wk-bars .col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .35rem; height: 100%; justify-content: flex-end; }
.wk-bars .bar { width: 9px; border-radius: 6px; background: var(--brand-soft-2); min-height: 6px; }
.wk-bars .col.today .bar { background: var(--brand); }
.wk-bars .lbl { font-size: .68rem; color: var(--muted); }

/* Görev listesi */
.seg { display: inline-flex; background: var(--brand-soft); border-radius: 11px; padding: .25rem; gap: .2rem; }
.seg button { border: none; background: transparent; color: var(--ink-soft); font-size: .84rem; font-weight: 600; padding: .35rem .8rem; border-radius: 8px; cursor: pointer; }
.seg button.on { background: var(--card); color: var(--brand); box-shadow: var(--shadow-xs); }
.tsk { display: flex; align-items: center; gap: .8rem; padding: .7rem .2rem; border-bottom: 1px solid var(--line); }
.tsk:last-child { border-bottom: none; }
.tsk .cbx { width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--line-2); cursor: pointer; flex: 0 0 22px; display: grid; place-items: center; color: #fff; font-size: .8rem; background: var(--card); }
.tsk .cbx.on { background: var(--brand); border-color: var(--brand); }
.tsk .flag { color: #ef4444; font-size: .85rem; }
.tsk .tbody { flex: 1; min-width: 0; }
.tsk .ttl { font-weight: 600; font-size: .95rem; color: var(--ink); }
.tsk.done .ttl { text-decoration: line-through; color: var(--muted); }
.tsk .tmeta { font-size: .78rem; color: var(--muted); margin-top: 1px; }
.tag { font-size: .72rem; font-weight: 600; padding: .18rem .55rem; border-radius: 999px; white-space: nowrap; }
.tag.health { background: #dcfce7; color: #15803d; }
.tag.work { background: #dbeafe; color: #1d4ed8; }
.tag.gen { background: var(--brand-soft); color: var(--brand-700); }
.tsk .chev { color: var(--muted); }
.add-row { display: inline-flex; align-items: center; gap: .4rem; color: var(--brand); font-weight: 600; font-size: .88rem; cursor: pointer; background: none; border: none; padding: .7rem .2rem 0; }

/* Zaman çizelgesi */
.tl { display: flex; gap: .8rem; padding: .55rem 0; border-bottom: 1px solid var(--line); }
.tl:last-of-type { border-bottom: none; }
.tl .tm { font-size: .82rem; font-weight: 700; color: var(--ink-soft); flex: 0 0 46px; }
.tl .dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; flex: 0 0 9px; background: var(--brand); }
.tl .ev-t { font-weight: 600; font-size: .9rem; color: var(--ink); }
.tl .ev-s { font-size: .78rem; color: var(--muted); }

/* Notlar */
.note { display: flex; align-items: center; gap: .6rem; background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: .6rem .8rem; margin-bottom: .5rem; font-size: .88rem; color: var(--ink-2); }
.note .rm { margin-left: auto; color: var(--muted); cursor: pointer; border: none; background: none; font-size: 1rem; }

/* Motivasyon şeridi */
.motiv { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
    background: linear-gradient(120deg, var(--brand-soft), var(--brand-soft-2)); border: 1px solid var(--brand-soft-2);
    border-radius: 18px; padding: 1.1rem 1.4rem; margin-top: 1.1rem; }
.motiv .mt { font-weight: 700; color: var(--brand-700); font-size: 1.02rem; }
.motiv .ms { color: var(--ink-soft); font-size: .88rem; }
.motiv .mbtn { display: inline-flex; align-items: center; gap: .4rem; background: var(--card); border: 1px solid var(--line); color: var(--ink-2); border-radius: 11px; padding: .55rem .9rem; font-weight: 600; font-size: .85rem; cursor: pointer; }
.motiv .mbtn:hover { color: var(--brand); border-color: var(--brand-soft-2); }

/* ===== Motivasyon banner'ı (geniş) ===== */
.motiv-hero {
    position: relative; overflow: hidden; margin-top: 1.2rem;
    border-radius: 22px; padding: 2rem 2.4rem; min-height: 168px;
    background:
        radial-gradient(120% 140% at 0% 0%, var(--brand-soft) 0%, transparent 55%),
        linear-gradient(120deg, var(--brand-soft) 0%, var(--brand-soft-2) 55%, #ede9fe 100%);
    border: 1px solid var(--brand-soft-2);
    box-shadow: 0 22px 46px -30px rgba(79,70,229,.55);
    display: flex; align-items: center;
}
:root[data-theme="dark"] .motiv-hero {
    background: linear-gradient(120deg, #1a1f2e 0%, #201a35 60%, #241d3d 100%);
    border-color: #2b2550;
}
.motiv-hero .mh-glow { position: absolute; border-radius: 50%; filter: blur(46px); opacity: .5; pointer-events: none; }
.motiv-hero .mh-glow.g1 { width: 260px; height: 260px; right: -60px; top: -120px; background: var(--brand-2); animation: mhFloat 9s ease-in-out infinite; }
.motiv-hero .mh-glow.g2 { width: 200px; height: 200px; right: 180px; bottom: -140px; background: #a78bfa; animation: mhFloat 11s ease-in-out infinite reverse; }
@keyframes mhFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(18px); } }
.motiv-hero .mh-quotemark {
    position: absolute; left: 1.4rem; top: -1.2rem; font-size: 9rem; line-height: 1; font-weight: 800;
    color: var(--brand); opacity: .1; font-family: Georgia, "Times New Roman", serif; pointer-events: none; user-select: none;
}
.mh-inner { position: relative; z-index: 1; display: flex; align-items: center; gap: 1.5rem; width: 100%; }
.mh-badge {
    flex: 0 0 auto; width: 66px; height: 66px; border-radius: 20px; display: grid; place-items: center; font-size: 2rem;
    background: linear-gradient(135deg, #fff, var(--brand-soft)); box-shadow: 0 12px 26px -12px rgba(79,70,229,.6), inset 0 0 0 1px rgba(255,255,255,.7);
}
:root[data-theme="dark"] .mh-badge { background: linear-gradient(135deg, #2a2450, #1d1836); box-shadow: 0 12px 26px -14px #000, inset 0 0 0 1px rgba(255,255,255,.06); }
.mh-body { flex: 1; min-width: 0; }
.mh-eyebrow { font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 800; color: var(--brand); opacity: .85; margin-bottom: .35rem; }
.mh-quote { font-size: 1.55rem; line-height: 1.32; font-weight: 800; letter-spacing: -.01em; color: var(--brand-700); }
:root[data-theme="dark"] .mh-quote { color: #e9e5ff; }
.mh-author { font-size: .92rem; font-style: italic; color: var(--ink-soft); margin-top: .5rem; font-weight: 600; }
.mh-sub { font-size: .9rem; color: var(--ink-soft); margin-top: .55rem; opacity: .85; }
.mh-side { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: .6rem; }
.mh-btn {
    display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; cursor: pointer; border: none;
    background: #fff; color: var(--brand-700); font-weight: 700; font-size: .9rem; padding: .62rem 1.15rem; border-radius: 13px;
    box-shadow: 0 10px 22px -12px rgba(79,70,229,.5); transition: transform .1s, box-shadow .15s, filter .15s;
}
.mh-btn:hover { transform: translateY(-1px); filter: brightness(1.02); }
.mh-btn.ghost { background: rgba(255,255,255,.5); color: var(--brand-700); box-shadow: inset 0 0 0 1px var(--brand-soft-2); }
:root[data-theme="dark"] .mh-btn { background: #2a2450; color: #e9e5ff; }
:root[data-theme="dark"] .mh-btn.ghost { background: rgba(255,255,255,.05); color: #cfc8ff; box-shadow: inset 0 0 0 1px #3a3266; }
.mh-dots { display: flex; flex-wrap: wrap; gap: 5px; max-width: 150px; justify-content: flex-end; margin-top: .2rem; }
.mh-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--brand); opacity: .22; transition: opacity .2s, transform .2s; }
.mh-dot.on { opacity: 1; transform: scale(1.5); }
/* Söz değişince yumuşak geçiş */
.motiv-hero.swap .mh-quote, .motiv-hero.swap .mh-author, .motiv-hero.swap .mh-badge { animation: mhSwap .45s ease; }
@keyframes mhSwap { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 760px) {
    .motiv-hero { padding: 1.4rem 1.3rem; min-height: 0; }
    .mh-inner { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .mh-quote { font-size: 1.22rem; }
    .mh-side { flex-direction: row; flex-wrap: wrap; align-items: center; width: 100%; }
    .mh-dots { display: none; }
    .mh-quotemark { font-size: 6rem; top: -.6rem; }
}

/* ===== Ruh hali & enerji check-in ===== */
.mood-card { background: linear-gradient(180deg, color-mix(in srgb, var(--brand-soft) 40%, var(--card)), var(--card)); }
.mood-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; flex-wrap: wrap; }
.mood-sub { font-size: .82rem; color: var(--muted); margin-top: .25rem; max-width: 520px; }
.mood-trend { font-size: .82rem; font-weight: 700; color: var(--brand); text-decoration: none; white-space: nowrap; }
.mood-trend:hover { color: var(--brand-700); }
.mood-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; }
.mood-label { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; color: var(--ink-soft); margin-bottom: .6rem; }
.mood-faces, .energy-dots { display: flex; gap: .5rem; }
.mood-face {
    flex: 1; max-width: 60px; aspect-ratio: 1; border: 1.5px solid var(--line); border-radius: 15px; background: var(--card);
    font-size: 1.55rem; line-height: 1; cursor: pointer; display: grid; place-items: center;
    filter: grayscale(.5); opacity: .68; transition: transform .15s cubic-bezier(.2,.8,.3,1.4), background .15s, border-color .15s, filter .15s, opacity .15s, box-shadow .18s;
}
.mood-face:hover { transform: translateY(-3px); filter: none; opacity: 1; border-color: var(--brand-soft-2); }
.mood-face.on { filter: none; opacity: 1; background: var(--brand-soft); border-color: var(--brand); transform: translateY(-3px) scale(1.06); box-shadow: 0 12px 22px -10px rgba(79,70,229,.55); }
.energy-dot {
    flex: 1; max-width: 60px; height: 40px; border: 1.5px solid var(--line); border-radius: 13px; background: var(--card);
    font-weight: 800; font-size: .95rem; color: var(--muted); cursor: pointer; display: grid; place-items: center;
    transition: transform .15s cubic-bezier(.2,.8,.3,1.4), background .15s, border-color .15s, color .15s, box-shadow .18s;
}
.energy-dot:hover { transform: translateY(-2px); border-color: #fbbf24; color: #b45309; }
.energy-dot.on { background: linear-gradient(135deg, #fde68a, #f59e0b); border-color: #f59e0b; color: #7c2d12; box-shadow: 0 10px 20px -9px rgba(245,158,11,.6); }
.mood-foot { display: flex; align-items: center; gap: .6rem; margin-top: 1.2rem; flex-wrap: wrap; }
.mood-note { flex: 1; min-width: 180px; border: 1px solid var(--line); border-radius: 12px; padding: .6rem .9rem; background: var(--bg); font-size: .9rem; color: var(--ink); transition: border-color .15s, box-shadow .15s; }
.mood-note:focus { outline: none; border-color: var(--brand-2); box-shadow: 0 0 0 3px var(--brand-soft); }
.mood-save { border-radius: 12px; padding: .6rem 1.4rem; }
.mood-done { display: none; align-items: center; gap: .35rem; color: #16a34a; font-weight: 800; font-size: .88rem; }
:root[data-theme="dark"] .energy-dot:hover { color: #fbbf24; }

@media (max-width: 640px) { .mood-rows { grid-template-columns: 1fr; gap: 1.1rem; } }

/* Dashboard yerleşiminde eski sayfa footer'ı (sidebar içine taşınıyor) gizlenir */
body.dash .app-footer { display: none; }

/* ===== Proje ızgarası (premium kartlar) ===== */
.pj-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 1rem; margin-bottom: 1.6rem; }
.project-card { position: relative; overflow: hidden; border-radius: 18px !important; padding: 1.15rem 1.25rem 1.15rem 1.4rem !important; margin-bottom: 0 !important; }
.project-card::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 4px; border-radius: 0 4px 4px 0; background: var(--pj-color, var(--brand)); }
.project-card:hover { transform: translateY(-3px) !important; box-shadow: 0 18px 38px -22px rgba(15,23,42,.55) !important; border-color: var(--brand-soft-2) !important; }
.cat-group-title { display: flex; align-items: center; gap: .5rem; }
.cat-group-title::after { content: ""; flex: 1; height: 1px; background: var(--line); }

/* Mobil topbar (sidebar gizlenir) */
.dash-topbar { display: none; }

@media (max-width: 980px) {
    .stat-row { grid-template-columns: 1fr; }
    .grid-2 { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
    :root { --side-w: 0px; }
    .dash-layout { grid-template-columns: 1fr; }
    .dash-sidebar { position: fixed; left: 0; top: 0; z-index: 1200; width: 264px; transform: translateX(-100%); transition: transform .25s; box-shadow: var(--shadow-lg); }
    .dash-sidebar.open { transform: none; }
    .dash-topbar { display: flex; align-items: center; gap: .7rem; padding: .7rem 1rem; background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 100; }
    .dash-topbar .brand-badge { width: 30px; height: 30px; font-size: .95rem; }
    .dash-main { padding: 1rem; }
    .dash-header { flex-direction: column; }
    .side-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 1150; display: none; }
    .side-backdrop.show { display: block; }
}

/* Koyu tema küçük düzeltmeler */
:root[data-theme="dark"] .routine-ico.done { background: #14361f; }
:root[data-theme="dark"] .tag.health { background: #14361f; color: #86efac; }
:root[data-theme="dark"] .tag.work { background: #16263f; color: #93c5fd; }
