:root {
    --bg: #f3f5f2;
    --surface: #ffffff;
    --surface-soft: #f8faf7;
    --surface-strong: #102a27;
    --ink: #172522;
    --muted: #697773;
    --line: #dfe6e2;
    --brand: #0f766e;
    --brand-strong: #0a5c56;
    --brand-soft: #dff4ef;
    --accent: #d9a441;
    --danger: #b42318;
    --success: #13795b;
    --shadow-sm: 0 8px 24px rgba(26, 54, 48, 0.07);
    --shadow-lg: 0 28px 70px rgba(17, 44, 39, 0.14);
    --radius-sm: 10px;
    --radius-md: 18px;
    --radius-lg: 28px;
    --sidebar-width: 256px;
    --topbar-height: 76px;
    color-scheme: light;
}

[data-theme="dark"] {
    --bg: #0f1716;
    --surface: #16201e;
    --surface-soft: #1b2825;
    --surface-strong: #dff4ef;
    --ink: #edf5f2;
    --muted: #9baaa6;
    --line: #2b3936;
    --brand: #43b7a8;
    --brand-strong: #78d1c5;
    --brand-soft: #193b36;
    --shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.22);
    --shadow-lg: 0 28px 70px rgba(0, 0, 0, 0.35);
    color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: "Aptos", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

button, input, select { font: inherit; }
textarea { font: inherit; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--brand) 55%, white);
    outline-offset: 3px;
}

.skip-link {
    position: fixed;
    z-index: 100;
    left: 1rem;
    top: -5rem;
    padding: .7rem 1rem;
    border-radius: var(--radius-sm);
    background: var(--surface-strong);
    color: var(--surface);
    text-decoration: none;
}
.skip-link:focus { top: 1rem; }

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

h1, h2, h3, .brand strong {
    margin: 0;
    font-family: "Aptos Display", "Segoe UI", system-ui, sans-serif;
    letter-spacing: -.035em;
}
p { margin: 0; }

.app-shell { min-height: 100vh; }

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 30;
    display: flex;
    width: var(--sidebar-width);
    flex-direction: column;
    padding: 1.4rem 1rem 1.1rem;
    overflow-y: auto;
    background: #0d2926;
    color: #dcebe7;
    border-right: 1px solid rgba(255,255,255,.06);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: .8rem;
    color: inherit;
    text-decoration: none;
}
.brand-mark {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 13px;
    background: #e7b857;
    color: #17322e;
    font-family: "Manrope", sans-serif;
    font-size: 1.25rem;
    font-weight: 800;
    box-shadow: inset 0 0 0 4px rgba(255,255,255,.2);
}
.brand strong { display: block; font-size: 1.18rem; }
.brand small { display: block; margin-top: -.1rem; color: #89a39e; font-size: .72rem; letter-spacing: .05em; }

.primary-nav { display: grid; gap: .18rem; margin-top: 2rem; }
.nav-eyebrow {
    margin: 1rem .7rem .35rem;
    color: #708f89;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.nav-item {
    display: flex;
    min-height: 42px;
    align-items: center;
    gap: .75rem;
    padding: .62rem .75rem;
    border-radius: 11px;
    color: #b9cec9;
    font-size: .88rem;
    font-weight: 500;
    text-decoration: none;
}
.nav-item > span:first-child { width: 19px; color: #83a39d; text-align: center; font-size: 1.02rem; }
.nav-item.active { background: rgba(255,255,255,.1); color: white; box-shadow: inset 3px 0 #e7b857; }
.nav-item.active > span:first-child { color: #f0c775; }
.nav-disabled { cursor: not-allowed; opacity: .68; }
.nav-item em { margin-left: auto; color: #6e928b; font-size: .58rem; font-style: normal; letter-spacing: .05em; text-transform: uppercase; }

.sidebar-footer {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-top: auto;
    padding: .9rem .7rem .2rem;
    border-top: 1px solid rgba(255,255,255,.08);
}
.sidebar-footer strong, .sidebar-footer small { display: block; }
.sidebar-footer strong { color: #cde0dc; font-size: .75rem; }
.sidebar-footer small { color: #718d88; font-size: .67rem; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #55c59f; box-shadow: 0 0 0 5px rgba(85,197,159,.12); }

.app-stage { min-height: 100vh; margin-left: var(--sidebar-width); }
.topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    height: var(--topbar-height);
    align-items: center;
    justify-content: space-between;
    padding: 0 clamp(1.2rem, 3vw, 2.6rem);
    background: color-mix(in srgb, var(--surface) 92%, transparent);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(16px);
}
.workspace-switcher, .topbar-actions, .user-menu { display: flex; align-items: center; }
.workspace-switcher { gap: .65rem; }
.workspace-avatar, .user-avatar {
    display: grid;
    place-items: center;
    border-radius: 11px;
    font-weight: 700;
}
.workspace-avatar { width: 36px; height: 36px; background: var(--brand-soft); color: var(--brand-strong); }
.workspace-switcher small, .workspace-switcher strong, .user-copy small, .user-copy strong { display: block; }
.workspace-switcher small, .user-copy small { color: var(--muted); font-size: .68rem; }
.workspace-switcher strong, .user-copy strong { font-size: .8rem; }
.topbar-actions { gap: .55rem; }
.icon-button, .notification-button {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--surface);
    color: var(--ink);
    cursor: pointer;
}
.notification-button { position: relative; font-size: 1.25rem; }
.notification-button { text-decoration: none; }
.notification-count { position: absolute; top: -7px; right: -7px; display: grid; min-width: 21px; height: 21px; place-items: center; padding: 0 5px; border: 2px solid var(--surface); border-radius: 999px; background: var(--danger); color: #fff; font-size: .58rem; font-weight: 900; line-height: 1; }
.notification-count[hidden] { display: none; }
.user-menu { gap: .65rem; margin-left: .4rem; padding-left: .9rem; border-left: 1px solid var(--line); }
.user-avatar { width: 36px; height: 36px; background: var(--surface-strong); color: var(--surface); }
.text-button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: .75rem; }
.mobile-menu { display: none; }
.topbar-context { display: flex; align-items: center; gap: .7rem; }
.topbar-create {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: .35rem;
    padding: .55rem .75rem;
    border-radius: 10px;
    background: var(--brand-soft);
    color: var(--brand-strong);
    font-size: .72rem;
    font-weight: 800;
    text-decoration: none;
}

/* Görevler ve hatırlatmalar */
.task-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.task-metric { padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-sm); }
.task-metric small, .task-metric strong, .task-metric span { display: block; }
.task-metric small { color: var(--muted); font-size: .62rem; font-weight: 800; }
.task-metric strong { margin-top: .2rem; font-family: "Manrope", sans-serif; font-size: 1.5rem; }
.task-metric span { color: var(--muted); font-size: .58rem; }
.task-metric.in-progress { border-top: 3px solid var(--brand); }
.task-metric.completed { border-top: 3px solid var(--success); }
.task-metric.overdue { border-top: 3px solid var(--danger); }
.task-filter { display: grid; grid-template-columns: minmax(160px, .35fr) minmax(260px, 1fr) auto; gap: .7rem; align-items: end; margin-bottom: 1rem; padding: .85rem 1rem; }
.task-filter label { display: block; margin-bottom: .3rem; color: var(--muted); font-size: .62rem; font-weight: 800; }
.task-board { display: grid; grid-template-columns: repeat(6, minmax(280px, 1fr)); gap: .85rem; padding-bottom: .65rem; overflow-x: auto; scroll-snap-type: x proximity; }
.task-column { min-width: 0; padding: .7rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-soft); scroll-snap-align: start; }
.task-column > header { display: flex; justify-content: space-between; gap: .6rem; align-items: center; padding: .2rem .2rem .7rem; }
.task-column h2 { font-size: .78rem; }
.task-column header p { margin-top: .1rem; color: var(--muted); font-size: .54rem; }
.task-column header > span { display: grid; min-width: 27px; height: 27px; place-items: center; border-radius: 9px; background: var(--surface); font-size: .62rem; font-weight: 900; }
.task-column.status-6 { background: color-mix(in srgb, var(--danger) 5%, var(--surface)); }
.task-column-list { display: grid; gap: .65rem; }
.task-card { padding: .85rem; border-radius: 13px; }
.task-card[draggable="true"] { cursor: grab; transition: opacity .18s, transform .18s, box-shadow .18s; }
.task-card[draggable="true"]:active { cursor: grabbing; }
.task-card.is-dragging { opacity: .42; transform: rotate(1deg) scale(.985); }
.task-card.is-saving { opacity: .58; pointer-events: none; }
.task-column.is-drop-target { border-color: var(--brand); background: color-mix(in srgb, var(--brand-soft) 72%, var(--surface)); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--brand) 24%, transparent); }
.task-card.priority-4 { border-left: 3px solid var(--danger); }
.task-card.priority-3 { border-left: 3px solid var(--accent); }
.task-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem; color: var(--muted); font-size: .55rem; }
.priority-chip { padding: .18rem .35rem; border-radius: 6px; background: var(--brand-soft); color: var(--brand); font-weight: 900; }
.task-card h3 { margin-top: .55rem; font-size: .78rem; line-height: 1.4; }
.task-description { display: -webkit-box; margin-top: .35rem; overflow: hidden; color: var(--muted); font-size: .6rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.task-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin-top: .7rem; }
.task-facts div { min-width: 0; padding: .4rem; border-radius: 8px; background: var(--surface-soft); }
.task-facts dt { color: var(--muted); font-size: .49rem; }
.task-facts dd { margin: .12rem 0 0; overflow: hidden; font-size: .56rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.task-documents { display: grid; gap: .3rem; margin-top: .6rem; }
.task-documents a { display: flex; justify-content: space-between; gap: .4rem; overflow: hidden; color: var(--brand); font-size: .55rem; text-decoration: none; }
.task-documents small { color: var(--muted); white-space: nowrap; }
.task-quick-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .7rem; padding-top: .6rem; border-top: 1px solid var(--line); }
.task-status-form { margin: 0; }
.task-status-form button { min-width: 0; padding: .38rem .52rem; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); cursor: pointer; font-size: .54rem; font-weight: 800; }
.task-status-form button:hover { border-color: var(--brand); color: var(--brand); }
.task-status-form button.complete { border-color: color-mix(in srgb, var(--success) 35%, var(--line)); color: var(--success); }
.task-column-empty { display: grid; min-height: 90px; place-items: center; color: var(--muted); font-size: .58rem; text-align: center; }
.task-planning-block { padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.task-planning-block .form-grid { margin-top: .8rem; }
.task-advanced { padding: .85rem 1rem; border: 1px dashed var(--line); border-radius: 13px; }
.task-advanced summary { cursor: pointer; font-size: .67rem; font-weight: 900; }
.task-advanced .form-grid { margin-top: .8rem; }

@media (max-width: 900px) {
    .task-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .task-filter { grid-template-columns: 1fr 1fr; }
    .task-filter button { grid-column: 1 / -1; }
}
@media (max-width: 540px) {
    .task-metrics, .task-filter { grid-template-columns: 1fr; }
    .task-filter button { grid-column: auto; }
    .task-board { grid-template-columns: repeat(6, minmax(86vw, 1fr)); }
}
.sidebar-backdrop { display: none; }
.status-dot.pending { background: #d5a43e; box-shadow: 0 0 0 5px rgba(213,164,62,.12); }
.is-online .status-dot { background: #55c59f; box-shadow: 0 0 0 5px rgba(85,197,159,.12); }
.is-offline .status-dot { background: #ef6b61; box-shadow: 0 0 0 5px rgba(239,107,97,.12); }

.main-content { max-width: 1540px; margin: 0 auto; padding: clamp(1.5rem, 3.2vw, 3rem); }
.page-guide { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; align-items: center; margin-bottom: 1rem; padding: .75rem .9rem; border: 1px solid color-mix(in srgb, var(--brand) 20%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--brand-soft) 38%, var(--surface)); box-shadow: 0 6px 20px rgba(26,54,48,.035); }
.page-guide-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; background: var(--brand); color: white; font-family: Georgia, serif; font-size: .8rem; font-weight: 800; }
.page-guide p { min-width: 0; font-size: .72rem; line-height: 1.5; }
.page-guide strong { margin-right: .45rem; color: var(--brand-strong); }
.page-guide span:not(.page-guide-icon) { color: var(--muted); }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.page-heading h1 { max-width: 700px; font-size: clamp(1.75rem, 3vw, 2.65rem); line-height: 1.12; }
.page-heading p:not(.eyebrow) { max-width: 690px; margin-top: .65rem; color: var(--muted); }
.eyebrow { margin-bottom: .5rem; color: var(--brand); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow.light { color: #a9d8d0; }

.primary-button {
    display: inline-flex;
    min-height: 45px;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    padding: .72rem 1.05rem;
    border: 0;
    border-radius: 12px;
    background: var(--brand);
    color: white;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--brand) 23%, transparent);
    cursor: pointer;
}
.primary-button:hover { background: var(--brand-strong); }
.primary-button:disabled { cursor: not-allowed; opacity: .55; box-shadow: none; }
.primary-button.full { width: 100%; margin-top: .35rem; }
.primary-button.is-loading, .secondary-button.is-loading {
    position: relative;
    color: transparent !important;
}
.primary-button.is-loading::after, .secondary-button.is-loading::after {
    position: absolute;
    width: 18px;
    height: 18px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    color: white;
    content: "";
    animation: button-spin .7s linear infinite;
}
.secondary-button.is-loading::after { color: var(--brand); }
@keyframes button-spin { to { transform: rotate(360deg); } }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.metric-card, .panel {
    border: 1px solid var(--line);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}
.metric-card { min-height: 150px; padding: 1.15rem 1.2rem; border-radius: var(--radius-md); }
.metric-card.featured { background: var(--surface-strong); color: var(--surface); border-color: transparent; }
[data-theme="dark"] .metric-card.featured { color: #18302c; }
.metric-label { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .78rem; font-weight: 600; }
.featured .metric-label, .featured p { color: color-mix(in srgb, var(--surface) 65%, transparent); }
[data-theme="dark"] .featured .metric-label, [data-theme="dark"] .featured p { color: #4d6a65; }
.metric-value { display: block; margin-top: 1.15rem; font-family: "Manrope", sans-serif; font-size: clamp(1.55rem, 2.4vw, 2.05rem); letter-spacing: -.04em; }
.metric-card p { margin-top: .25rem; color: var(--muted); font-size: .75rem; }
.metric-icon, .trend { display: grid; min-width: 27px; height: 27px; place-items: center; border-radius: 9px; background: var(--surface-soft); }
.featured .metric-icon { background: rgba(255,255,255,.1); }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr); gap: 1rem; margin-top: 1rem; }
.panel { border-radius: var(--radius-md); padding: 1.3rem; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.panel-header h2 { font-size: 1.05rem; }
.filter-pill { padding: .4rem .65rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .68rem; }
.chart-empty { position: relative; display: grid; min-height: 275px; place-items: center; align-content: center; padding: 2rem; overflow: hidden; text-align: center; }
.chart-empty strong, .empty-state strong { font-family: "Manrope", sans-serif; font-size: .95rem; }
.chart-empty p, .empty-state p { max-width: 410px; margin-top: .35rem; color: var(--muted); font-size: .78rem; }
.chart-lines { position: absolute; inset: 1.3rem 0 0; display: grid; align-content: space-evenly; opacity: .65; }
.chart-lines i { height: 1px; background: var(--line); }
.empty-symbol { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: .75rem; border-radius: 15px; background: var(--brand-soft); color: var(--brand); font-size: 1.35rem; }
.chart-empty > *:not(.chart-lines) { position: relative; }

.progress-ring { display: grid; width: 44px; height: 44px; place-items: center; border: 4px solid var(--line); border-top-color: var(--brand); border-radius: 50%; color: var(--muted); font-size: .62rem; font-weight: 800; }
.setup-list { display: grid; gap: .1rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.setup-list li { display: flex; align-items: center; gap: .75rem; padding: .8rem 0; border-top: 1px solid var(--line); }
.step-number { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: .72rem; font-weight: 700; }
.setup-list strong, .setup-list p { display: block; }
.setup-list strong { font-size: .78rem; }
.setup-list p { color: var(--muted); font-size: .68rem; }
.step-state { margin-left: auto; color: var(--brand); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.empty-state { display: grid; min-height: 180px; place-items: center; align-content: center; text-align: center; }
.insight-panel { background: #16423d; color: white; border-color: transparent; }
.insight-panel h2 { max-width: 500px; font-size: 1.35rem; }
.insight-panel > p:not(.eyebrow) { max-width: 560px; margin-top: .65rem; color: #b9d1cc; font-size: .82rem; }
.privacy-note { display: inline-block; margin-top: 1.5rem; color: #8fb8b0; font-size: .66rem; }

/* Kimlik ekranları */
.auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(420px, 1.05fr) minmax(480px, .95fr); }
.auth-visual { position: relative; display: flex; min-height: 100vh; flex-direction: column; justify-content: space-between; padding: clamp(2rem, 5vw, 5rem); overflow: hidden; background: #0c302c; color: white; }
.auth-visual::before, .auth-visual::after { position: absolute; content: ""; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.auth-visual::before { width: 620px; height: 620px; right: -290px; top: -240px; }
.auth-visual::after { width: 360px; height: 360px; left: -170px; bottom: -130px; }
.auth-brand { position: relative; z-index: 2; align-self: flex-start; }
.auth-message { position: relative; z-index: 2; max-width: 690px; margin: auto 0; }
.auth-message h1 { font-size: clamp(2.3rem, 5vw, 4.5rem); line-height: 1.03; }
.auth-message > p:last-child { max-width: 550px; margin-top: 1.3rem; color: #a9c5c0; font-size: 1.05rem; }
.ambient-card { position: absolute; z-index: 2; min-width: 220px; padding: 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(255,255,255,.07); box-shadow: 0 20px 50px rgba(0,0,0,.15); backdrop-filter: blur(12px); }
.ambient-card span, .ambient-card strong { display: block; }
.ambient-card span { color: #94b7b0; font-size: .68rem; }
.ambient-card strong { margin-top: .2rem; font-size: .78rem; }
.ambient-card i { display: block; width: 72%; height: 4px; margin-top: .8rem; border-radius: 8px; background: #e7b857; }
.card-one { right: 8%; bottom: 9%; transform: rotate(-2deg); }
.card-two { right: 2%; top: 18%; transform: rotate(3deg); }
.register-visual .auth-message { margin-bottom: 16%; }
.auth-form-wrap { display: grid; min-height: 100vh; place-items: center; padding: clamp(1.5rem, 5vw, 5rem); background: var(--surface); }
.auth-form-card { width: min(100%, 440px); }
.auth-result-wrap { display: grid; width: min(100% - 2rem, 760px); min-height: 100vh; grid-column: 1 / -1; place-content: center; gap: 1.2rem; margin: 0 auto; padding: clamp(1rem, 5vw, 4rem); }
.auth-result-card { padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-lg); }
.auth-result-card h1 { margin-top: .45rem; font-size: clamp(1.8rem, 5vw, 3rem); }
.auth-result-card > p:not(.eyebrow) { max-width: 620px; margin-top: .7rem; color: var(--muted); line-height: 1.65; }
.auth-result-card .result-detail { padding-top: .85rem; border-top: 1px solid var(--line); font-size: .75rem; }
.compact-result-card { width: min(100%, 560px); justify-self: center; }
.result-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.4rem; }
.result-warning { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: .7rem; border-radius: 19px; background: color-mix(in srgb, var(--accent) 18%, var(--surface)); color: #87620e; font-size: 1.5rem; font-weight: 900; }
.register-card { width: min(100%, 510px); }
.auth-form-heading h2 { font-size: clamp(1.7rem, 3vw, 2.35rem); }
.auth-form-heading > p:last-child { margin-top: .55rem; color: var(--muted); }
.stack-form { display: grid; gap: .45rem; margin-top: 2rem; }
.stack-form label { margin-top: .45rem; color: var(--ink); font-size: .76rem; font-weight: 700; }
.stack-form input, .stack-form select {
    width: 100%;
    min-height: 48px;
    padding: .75rem .85rem;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--surface-soft);
    color: var(--ink);
    transition: border-color .2s, box-shadow .2s;
}
.stack-form input:focus, .stack-form select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-soft); }
.label-row { display: flex; align-items: center; justify-content: space-between; margin-top: .45rem; }
.label-row label { margin: 0; }
.label-row span { color: var(--muted); font-size: .65rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.form-grid > div { display: grid; gap: .45rem; }
.field-error { min-height: .9rem; color: var(--danger); font-size: .67rem; }
.alert { margin-bottom: .4rem; padding: .75rem .85rem; border-radius: 11px; font-size: .76rem; }
.alert:empty { display: none; }
.error-alert { background: #fff0ee; color: var(--danger); }

/* Hesap güvenliği merkezi */
.security-heading { align-items: flex-end; }
.security-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 1rem; }
.security-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.security-section { min-width: 0; }
.security-list { display: grid; gap: .65rem; margin-top: 1rem; }
.security-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .85rem; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.security-row.current { border-color: color-mix(in srgb, var(--brand) 42%, var(--line)); background: color-mix(in srgb, var(--brand) 7%, var(--surface)); }
.security-device-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 13px; background: var(--brand-soft); color: var(--brand); font-weight: 900; }
.security-copy { min-width: 0; }
.security-copy > div { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.security-copy p, .security-copy small { display: block; color: var(--muted); }
.security-copy p { margin-top: .2rem; font-size: .7rem; }
.security-copy small { margin-top: .2rem; font-size: .58rem; }
.security-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem; }
.danger-text { color: var(--danger); }
.danger-button { border-color: color-mix(in srgb, var(--danger) 35%, var(--line)); color: var(--danger); }
.security-note { display: flex; gap: .8rem; align-items: center; margin-top: 1rem; }
.security-note p { margin-top: .25rem; color: var(--muted); font-size: .72rem; }
@media (max-width: 980px) { .security-grid { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .security-metrics { grid-template-columns: 1fr; } .security-row { grid-template-columns: 42px minmax(0, 1fr); } .security-row > form, .security-actions { grid-column: 2; justify-content: flex-start; } }
.success-alert { background: var(--brand-soft); color: var(--success); }
[data-theme="dark"] .error-alert { background: #3b2220; }
.auth-alternative { margin-top: 1.35rem; color: var(--muted); text-align: center; font-size: .78rem; }
.auth-alternative a { color: var(--brand); font-weight: 700; }
.security-caption { margin-top: 2.1rem; color: var(--muted); text-align: center; font-size: .66rem; }
.simple-state { display: grid; min-height: 100vh; place-items: center; align-content: center; padding: 2rem; text-align: center; }
.simple-state h1 { font-size: 2rem; }
.simple-state > p:not(.eyebrow) { max-width: 520px; margin: .75rem 0 1.2rem; color: var(--muted); }
.error-page-state { min-height: calc(100vh - var(--topbar-height)); }
.error-page-state .request-reference { margin-top: 0; padding: .55rem .7rem; border-radius: 9px; background: var(--surface-soft); font-size: .65rem; }

@media (max-width: 1120px) {
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-grid { grid-template-columns: 1fr; }
    .auth-shell { grid-template-columns: .85fr 1.15fr; }
    .ambient-card { display: none; }
    .auth-message h1 { font-size: clamp(2.2rem, 5vw, 3.3rem); }
}

@media (max-width: 820px) {
    .sidebar { transform: translateX(-102%); transition: transform .24s ease; box-shadow: var(--shadow-lg); }
    .sidebar.open { transform: translateX(0); }
    .sidebar-backdrop:not([hidden]) { position: fixed; inset: 0; z-index: 25; display: block; border: 0; background: rgba(5, 20, 18, .55); backdrop-filter: blur(2px); }
    body.menu-open { overflow: hidden; }
    .app-stage { margin-left: 0; }
    .mobile-menu { display: grid; }
    .workspace-switcher { display: none; }
    .topbar { justify-content: space-between; }
    .user-copy { display: none; }
    .page-heading { align-items: flex-start; flex-direction: column; }
    .auth-shell { grid-template-columns: 1fr; }
    .auth-visual { display: none; }
    .auth-form-wrap { min-height: 100vh; }
}

@media (max-width: 560px) {
    .main-content { padding: 1.2rem; }
    .topbar { padding: 0 1rem; }
    .metric-grid { grid-template-columns: 1fr; }
    .user-menu { padding-left: .45rem; }
    .topbar-create span:last-child { display: none; }
    .form-grid { grid-template-columns: 1fr; }
    .auth-form-wrap { padding: 1.4rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Öğrenci, grup ve belge yönetimi */
.page-actions, .form-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .65rem; }
.secondary-button {
    display: inline-flex; min-height: 45px; align-items: center; justify-content: center; gap: .5rem;
    padding: .7rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface);
    color: var(--ink); font-weight: 700; text-decoration: none; cursor: pointer;
}
.secondary-button:hover { border-color: var(--brand); color: var(--brand); }
.secondary-button.full { width: 100%; }
.text-link, .back-link, .row-action { color: var(--brand); font-weight: 700; text-decoration: none; }
.back-link { display: inline-block; margin-bottom: 1rem; font-size: .78rem; }
.education-metrics { margin-bottom: 1rem; }
.overdue-card { border-color: color-mix(in srgb, var(--danger) 28%, var(--line)); }
.status-badge { display: inline-flex; align-items: center; width: max-content; padding: .28rem .52rem; border-radius: 999px; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.status-badge.success { background: color-mix(in srgb, var(--success) 13%, var(--surface)); color: var(--success); }
.status-badge.danger { background: color-mix(in srgb, var(--danger) 12%, var(--surface)); color: var(--danger); }
.status-badge.warning { background: color-mix(in srgb, var(--accent) 18%, var(--surface)); color: #87620e; }
.status-badge.large { padding: .55rem .8rem; font-size: .72rem; }
.education-layout, .student-layout, .review-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 1rem; align-items: start; }
.education-main, .education-side, .student-main, .student-side { display: grid; gap: 1rem; }
.section-header { margin-bottom: 1rem; }
.section-header h2, .quick-form-panel h2, .upload-panel h2, .confirmation-panel h2 { font-size: 1.12rem; }
.empty-state.compact { min-height: 150px; }
.group-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.group-card { padding: 1rem; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.group-card-top { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.group-code { color: var(--brand); font-size: .65rem; font-weight: 800; letter-spacing: .08em; }
.group-card h3 { margin-top: .8rem; font-size: .98rem; }
.group-card > p { margin-top: .25rem; color: var(--muted); font-size: .7rem; }
.progress-track { height: 6px; margin: 1rem 0; overflow: hidden; border-radius: 999px; background: var(--line); }
.progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 0; }
.mini-stats div { min-width: 0; }
.mini-stats dt { color: var(--muted); font-size: .58rem; }
.mini-stats dd { margin: .15rem 0 0; overflow: hidden; font-size: .68rem; font-weight: 800; text-overflow: ellipsis; }
.responsive-table { width: 100%; overflow-x: auto; }
.responsive-table table { width: 100%; border-collapse: collapse; font-size: .75rem; }
.responsive-table th { padding: .65rem .75rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .62rem; text-align: left; text-transform: uppercase; letter-spacing: .05em; }
.responsive-table td { padding: .8rem .75rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.responsive-table tbody tr:last-child td { border-bottom: 0; }
.responsive-table td strong, .responsive-table td small { display: block; }
.responsive-table td small { margin-top: .15rem; color: var(--muted); }
.money-line { display: block; white-space: nowrap; }
.compact-form, .entity-form { display: grid; gap: .55rem; }
.compact-form { margin-top: 1.1rem; }
.compact-form label, .entity-form label { margin-top: .4rem; color: var(--ink); font-size: .7rem; font-weight: 800; }
.compact-form input, .compact-form select, .compact-form textarea,
.entity-form input, .entity-form select, .entity-form textarea {
    width: 100%; min-height: 44px; padding: .68rem .75rem; border: 1px solid var(--line); border-radius: 10px;
    background: var(--surface-soft); color: var(--ink); resize: vertical;
}
.compact-form input:focus, .compact-form select:focus, .compact-form textarea:focus,
.entity-form input:focus, .entity-form select:focus, .entity-form textarea:focus { outline: 0; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-soft); }
.compact-form button:disabled { cursor: not-allowed; opacity: .5; }
.panel-copy { margin-top: .4rem; color: var(--muted); font-size: .75rem; }
.form-page { width: min(100%, 920px); margin: 0 auto; }
.form-page-header { margin-bottom: 1.5rem; }
.form-page-header h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.form-page-header > p:last-child { margin-top: .55rem; color: var(--muted); }
.entity-form { padding: clamp(1.2rem, 3vw, 2rem); gap: .8rem; }
.form-section { display: grid; gap: .6rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.form-section h2 { font-size: .95rem; }
.form-grid.three { grid-template-columns: 1.2fr .8fr .8fr; }
.form-actions { margin-top: .7rem; }
.profile-monogram { display: grid; width: 76px; height: 76px; place-items: center; border-radius: 24px; background: var(--surface-strong); color: var(--surface); font-family: "Manrope", sans-serif; font-size: 1.8rem; font-weight: 800; }
.dropzone { display: grid; min-height: 145px; place-items: center; align-content: center; padding: 1.2rem; border: 1px dashed color-mix(in srgb, var(--brand) 55%, var(--line)); border-radius: 15px; background: var(--brand-soft); color: var(--brand); text-align: center; cursor: pointer; }
.dropzone strong, .dropzone small { display: block; }
.dropzone small { margin-top: .25rem; color: var(--muted); font-weight: 500; }
.upload-symbol { display: grid; width: 38px; height: 38px; place-items: center; margin-bottom: .5rem; border-radius: 12px; background: var(--surface); font-size: 1.2rem; }
.selected-file { min-height: 1rem; color: var(--muted); font-size: .66rem; text-align: center; }
.contact-card dl, .detail-list { display: grid; gap: .7rem; margin: 1rem 0 0; }
.contact-card dl div, .detail-list div { display: grid; grid-template-columns: 1fr 1.3fr; gap: .7rem; padding-top: .65rem; border-top: 1px solid var(--line); }
.contact-card dt, .detail-list dt { color: var(--muted); font-size: .65rem; }
.contact-card dd, .detail-list dd { margin: 0; overflow-wrap: anywhere; font-size: .7rem; font-weight: 700; text-align: right; }
.student-note { margin-top: 1rem; padding: .8rem; border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: .72rem; }
.payment-timeline { display: grid; }
.teacher-list { display: grid; }
.teacher-list > div { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: .65rem; align-items: center; padding: .7rem 0; border-top: 1px solid var(--line); }
.teacher-list strong, .teacher-list small { display: block; }
.teacher-list strong { font-size: .72rem; }
.teacher-list small { margin-top: .1rem; overflow: hidden; color: var(--muted); font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.payment-row { display: grid; grid-template-columns: 42px 1fr auto auto; gap: .75rem; align-items: center; padding: .8rem 0; border-top: 1px solid var(--line); text-decoration: none; }
.payment-row:hover { color: var(--brand); }
.payment-row strong, .payment-row small { display: block; }
.payment-row small { color: var(--muted); font-size: .65rem; }
.file-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 11px; background: var(--brand-soft); color: var(--brand); font-size: .62rem; font-weight: 900; }
.review-layout { grid-template-columns: minmax(0, 1fr) 390px; }
.review-document { min-height: 520px; }
.analysis-wait { display: grid; min-height: 400px; place-items: center; align-content: center; text-align: center; }
.analysis-wait > p { max-width: 440px; margin-top: .4rem; color: var(--muted); font-size: .78rem; }
.analysis-wait dl { display: flex; gap: 2rem; margin-top: 1.2rem; }
.analysis-wait dt { color: var(--muted); font-size: .6rem; }
.analysis-wait dd { margin: .15rem 0 0; font-size: .7rem; font-weight: 800; }
.scan-animation { display: grid; width: 64px; height: 64px; place-items: center; margin-bottom: 1rem; border: 1px solid var(--line); border-radius: 20px; background: var(--brand-soft); color: var(--brand); font-size: 1.6rem; }
.ocr-summary { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1rem; margin-top: 1.2rem; }
.ocr-hero { display: grid; min-height: 210px; place-items: center; align-content: center; border-radius: 18px; background: var(--surface-strong); color: var(--surface); text-align: center; }
.ocr-hero > span { font-size: .7rem; opacity: .7; }
.ocr-hero strong { margin-top: .35rem; font-family: "Manrope", sans-serif; font-size: clamp(1.7rem, 3vw, 2.6rem); }
.ocr-hero small { margin-top: .5rem; opacity: .7; }
.candidate-list { margin-top: 1.2rem; }
.candidate-list h3 { margin-bottom: .5rem; font-size: .85rem; }
.candidate-list > div { display: grid; grid-template-columns: 150px 1fr; gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--line); font-size: .7rem; }
.candidate-list span { color: var(--muted); }
.check-row { display: flex !important; align-items: flex-start; gap: .7rem; margin-top: .8rem !important; padding: .8rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); cursor: pointer; }
.check-row input { width: 18px; min-height: 18px; flex: 0 0 auto; }
.check-row strong, .check-row small { display: block; }
.check-row small { margin-top: .15rem; color: var(--muted); font-weight: 500; }
.income-fields { display: grid; gap: .55rem; padding: .8rem; border-left: 3px solid var(--brand); background: var(--surface-soft); }
.income-fields[hidden] { display: none; }
.confirmed-state { display: grid; min-height: 340px; place-items: center; align-content: center; text-align: center; }
.confirmed-state > strong { font-family: "Manrope", sans-serif; font-size: 1.8rem; }
.confirmed-state > p { margin: .3rem 0 .8rem; color: var(--muted); }
.error-state-card { display: grid; min-height: 320px; place-items: center; align-content: center; text-align: center; }
.error-state-card p { margin-top: .4rem; color: var(--muted); }
.account-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.account-card { min-height: 190px; padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-sm); }
.account-top { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .68rem; }
.currency-chip { padding: .3rem .5rem; border-radius: 999px; background: var(--brand-soft); color: var(--brand); font-weight: 900; }
.account-card h2 { margin-top: 1.2rem; font-size: .95rem; }
.account-card > strong { display: block; margin-top: .35rem; font-family: "Manrope", sans-serif; font-size: 1.55rem; }
.account-card > p { margin-top: .3rem; color: var(--muted); font-size: .68rem; }
.empty-account { display: grid; min-height: 300px; grid-column: 1 / -1; place-items: center; align-content: center; text-align: center; }
.empty-account p { max-width: 430px; margin: .4rem 0 1rem; color: var(--muted); }
.large-dropzone { min-height: 220px; }
.review-notice { display: flex; gap: .8rem; padding: .8rem; border-radius: 12px; background: var(--brand-soft); color: var(--brand); font-size: .72rem; }
.review-notice span { color: var(--muted); }

@media (max-width: 1180px) {
    .education-layout, .student-layout, .review-layout { grid-template-columns: 1fr; }
    .education-side, .student-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .page-actions { justify-content: flex-start; }
    .group-card-grid, .education-side, .student-side, .ocr-summary { grid-template-columns: 1fr; }
    .mini-stats { grid-template-columns: 1fr; }
    .form-grid.three { grid-template-columns: 1fr; }
    .payment-row { grid-template-columns: 40px 1fr auto; }
    .payment-row > span:last-child { display: none; }
    .candidate-list > div { grid-template-columns: 1fr; gap: .2rem; }
    .account-grid { grid-template-columns: 1fr; }
}

/* Gruplu notlar */
.notes-heading { align-items: center; }
.note-search { display: flex; align-items: center; gap: .55rem; padding: .45rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.note-search > input[type="text"], .note-search > input:not([type]) { min-width: min(30vw, 310px); min-height: 42px; padding: .65rem .75rem; border: 0; background: transparent; color: var(--ink); }
.inline-check { display: inline-flex !important; width: auto !important; align-items: center; gap: .45rem; color: var(--muted) !important; font-size: .7rem; cursor: pointer; }
.inline-check input { width: 17px !important; min-height: 17px !important; margin: 0; }
.note-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 1rem; }
.notes-layout { display: grid; grid-template-columns: 285px minmax(0, 1fr); gap: 1rem; align-items: start; }
.notes-sidebar, .notes-main { display: grid; gap: 1rem; }
.note-group-list { display: grid; gap: .3rem; }
.note-group-list a { display: grid; grid-template-columns: 13px 1fr auto; gap: .65rem; align-items: center; padding: .68rem .72rem; border-radius: 10px; color: var(--muted); font-size: .72rem; text-decoration: none; }
.note-group-list a:hover, .note-group-list a.selected { background: var(--brand-soft); color: var(--brand-strong); }
.note-group-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.note-group-list small { font-weight: 800; }
.note-color { width: 11px; height: 11px; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.note-color.default { background: var(--brand); }
.note-composer { border-top: 4px solid var(--brand); }
.note-card-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.note-card { position: relative; overflow: hidden; }
.note-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--brand); content: ""; }
.note-card.low::before { background: #8ca39e; }
.note-card.high::before { background: var(--accent); }
.note-card.critical::before { background: var(--danger); }
.note-card.archived { opacity: .72; }
.note-card > header, .note-card > footer, .note-card-labels { display: flex; align-items: center; gap: .45rem; }
.note-card > header, .note-card > footer { justify-content: space-between; }
.note-card > header time { color: var(--muted); font-size: .62rem; }
.note-card h3 { margin-top: 1rem; font-size: 1rem; }
.note-content { margin-top: .55rem; color: var(--muted); font-size: .76rem; white-space: pre-line; overflow-wrap: anywhere; }
.note-reminder { margin-top: .8rem; color: var(--brand); font-size: .68rem; font-weight: 800; }
.note-context { display: inline-flex; margin-top: .75rem; color: var(--brand); font-size: .68rem; font-weight: 800; text-decoration: none; }
.advanced-fields { margin-top: .45rem; padding: .75rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.advanced-fields summary { color: var(--brand); font-size: .7rem; font-weight: 800; cursor: pointer; }
.advanced-fields[open] { display: grid; gap: .45rem; }
.note-card > footer { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); }
.note-editor { flex: 1; }
.note-editor summary { width: max-content; color: var(--brand); font-size: .7rem; font-weight: 800; cursor: pointer; }
.note-editor[open] { width: 100%; }
.note-editor[open] + form { display: none; }
.note-editor .compact-form { padding: .8rem; border-radius: 12px; background: var(--surface-soft); }

@media (max-width: 1180px) {
    .notes-layout { grid-template-columns: 230px minmax(0, 1fr); }
    .note-card-list { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .notes-heading { align-items: stretch; }
    .note-search { width: 100%; flex-wrap: wrap; }
    .note-search > input[type="text"], .note-search > input:not([type]) { min-width: 0; flex: 1 1 180px; }
    .notes-layout { grid-template-columns: 1fr; }
    .note-group-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .note-metrics { grid-template-columns: 1fr; }
    .note-group-list { grid-template-columns: 1fr; }
}

/* Öğrenci dekont portalı */
.invitation-panel { border-top: 4px solid var(--accent); }
.invitation-result-page { padding-top: clamp(1rem, 5vw, 4rem); }
.invitation-result { display: grid; justify-items: start; gap: .7rem; padding: clamp(1.4rem, 4vw, 2.6rem); }
.invitation-result h1 { max-width: 700px; font-size: clamp(1.65rem, 3vw, 2.45rem); }
.success-mark { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: .4rem; border-radius: 19px; background: var(--brand-soft); color: var(--success); font-size: 1.55rem; font-weight: 900; }
.secure-link-box { display: grid; width: 100%; gap: .45rem; margin: 1rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.secure-link-box label { font-size: .7rem; font-weight: 800; }
.secure-link-box > div { display: flex; gap: .55rem; }
.secure-link-box input { min-width: 0; flex: 1; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); }
.secure-link-box small { color: var(--muted); font-size: .65rem; }
.portal-shell { display: grid; width: min(100%, 760px); min-height: 100vh; place-content: center; gap: 1rem; padding: clamp(1rem, 4vw, 3rem); }
.portal-brand { display: flex; align-items: center; gap: .75rem; justify-self: center; }
.portal-brand strong, .portal-brand small { display: block; }
.portal-brand small { color: var(--muted); font-size: .68rem; }
.portal-card { padding: clamp(1.35rem, 5vw, 3rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-lg); }
.portal-card > h1 { font-size: clamp(1.8rem, 5vw, 3rem); }
.portal-card > p:not(.eyebrow) { margin-top: .7rem; color: var(--muted); }
.portal-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin: 1.5rem 0 0; }
.portal-summary div { padding: .8rem; border-radius: 12px; background: var(--surface-soft); }
.portal-summary dt { color: var(--muted); font-size: .62rem; }
.portal-summary dd { margin: .25rem 0 0; font-size: .75rem; font-weight: 800; }
.portal-form { margin-top: 1.2rem; padding: 0; border: 0; box-shadow: none; }
.portal-security { color: var(--muted); font-size: .65rem; text-align: center; }
.portal-state { display: grid; min-height: 360px; place-items: center; align-content: center; text-align: center; }
.portal-state > p:not(.eyebrow) { max-width: 520px; }

@media (max-width: 560px) {
    .secure-link-box > div { align-items: stretch; flex-direction: column; }
    .portal-summary { grid-template-columns: 1fr; }
    .portal-card { border-radius: var(--radius-md); }
}

/* Bildirim merkezi */
.notification-layout, .notification-list { display: grid; gap: 1rem; }
.notification-summary { display: flex; align-items: center; gap: 1rem; }
.notification-summary strong { font-family: "Manrope", sans-serif; }
.notification-summary p { margin-top: .2rem; color: var(--muted); font-size: .72rem; }
.notification-orb { display: grid; width: 58px; height: 58px; flex: 0 0 auto; place-items: center; border-radius: 18px; background: var(--surface-strong); color: var(--surface); font-family: "Manrope", sans-serif; font-size: 1.3rem; font-weight: 900; }
.notification-item { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 1rem; align-items: start; }
.notification-item.unread { border-left: 4px solid var(--brand); background: color-mix(in srgb, var(--brand-soft) 45%, var(--surface)); }
.notification-type { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; background: var(--brand-soft); color: var(--brand); font-size: 1rem; font-weight: 900; }
.notification-title { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.notification-title h2 { font-size: .92rem; }
.notification-item p { margin-top: .35rem; color: var(--muted); font-size: .75rem; }
.notification-item time { display: inline-block; margin-top: .55rem; color: var(--muted); font-size: .62rem; }
.notification-actions { display: grid; justify-items: end; gap: .4rem; }
.action-as-link { border: 0; background: transparent; cursor: pointer; font-size: .7rem; }

@media (max-width: 720px) {
    .notification-item { grid-template-columns: 42px minmax(0, 1fr); }
    .notification-actions { grid-column: 2; grid-auto-flow: column; justify-content: start; justify-items: start; }
}

/* Birleşik Vitrin */
.home-heading { align-items: center; }
.metric-link { color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.metric-link:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--brand) 35%, var(--line)); box-shadow: var(--shadow-lg); }
.service-banner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: center;
    margin-bottom: 1rem;
    padding: .9rem 1rem;
    border: 1px solid color-mix(in srgb, var(--danger) 25%, var(--line));
    border-radius: 14px;
    background: color-mix(in srgb, var(--danger) 7%, var(--surface));
}
.service-banner-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 11px; background: color-mix(in srgb, var(--danger) 14%, var(--surface)); color: var(--danger); font-weight: 900; }
.service-banner strong { font-size: .8rem; }
.service-banner p { margin-top: .18rem; color: var(--muted); font-size: .7rem; }
.home-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr); gap: 1rem; margin-top: 1rem; align-items: start; }
.home-activity-panel, .home-accounts-panel { min-width: 0; }
.activity-list, .balance-list, .compact-notification-list { display: grid; }
.activity-row {
    display: grid;
    grid-template-columns: 42px minmax(140px, 1fr) auto auto;
    gap: .75rem;
    align-items: center;
    padding: .78rem 0;
    border-top: 1px solid var(--line);
    color: inherit;
    text-decoration: none;
}
.activity-row:hover .activity-copy strong { color: var(--brand); }
.activity-icon, .account-symbol { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 12px; background: var(--brand-soft); color: var(--brand); font-size: .72rem; font-weight: 900; }
.activity-copy strong, .activity-copy small, .balance-row strong, .balance-row small { display: block; }
.activity-copy strong, .activity-amount { font-size: .75rem; }
.activity-copy small, .balance-row small { margin-top: .12rem; color: var(--muted); font-size: .62rem; }
.activity-amount { font-weight: 800; white-space: nowrap; }
.quick-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.quick-action-grid a { display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: .6rem; align-items: center; min-height: 66px; padding: .65rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); color: inherit; text-decoration: none; }
.quick-action-grid a:hover { border-color: var(--brand); background: var(--brand-soft); }
.quick-action-grid a > span { display: grid; width: 34px; height: 34px; grid-row: 1 / 3; place-items: center; border-radius: 10px; background: var(--surface); color: var(--brand); font-weight: 900; }
.quick-action-grid strong { align-self: end; font-size: .7rem; }
.quick-action-grid small { align-self: start; color: var(--muted); font-size: .58rem; }
.balance-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .75rem 0; border-top: 1px solid var(--line); }
.balance-row > span:nth-child(2) strong { font-size: .75rem; }
.balance-value { text-align: right; }
.balance-value strong { font-size: .78rem; }
.compact-notification { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: .55rem; padding: .72rem 0; border-top: 1px solid var(--line); color: inherit; text-decoration: none; }
.compact-notification > span:first-child { color: var(--muted); font-size: .58rem; }
.compact-notification.unread > span:first-child { color: var(--brand); }
.compact-notification strong, .compact-notification small { display: block; }
.compact-notification strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.compact-notification small { margin-top: .15rem; color: var(--muted); font-size: .6rem; }
.setup-panel .setup-list li > a { margin-left: auto; color: var(--brand); font-size: .65rem; font-weight: 800; text-decoration: none; }
.setup-list li.done .step-number { background: var(--brand-soft); color: var(--success); }
.login-api-status { display: flex; align-items: center; gap: .7rem; margin-top: 1.2rem; padding: .72rem .8rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.login-api-status strong, .login-api-status small { display: block; }
.login-api-status strong { font-size: .7rem; }
.login-api-status small { margin-top: .05rem; color: var(--muted); font-size: .62rem; }
.login-api-status.is-offline { border-color: color-mix(in srgb, var(--danger) 28%, var(--line)); }

@media (max-width: 1120px) {
    .home-dashboard-grid { grid-template-columns: 1fr; }
    .quick-action-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .quick-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .activity-row { grid-template-columns: 40px minmax(0, 1fr) auto; }
    .activity-row .status-badge { display: none; }
    .service-banner { grid-template-columns: auto minmax(0, 1fr); }
    .service-banner > a { grid-column: 2; width: max-content; }
}

@media (max-width: 460px) {
    .quick-action-grid { grid-template-columns: 1fr; }
    .activity-row { grid-template-columns: 38px minmax(0, 1fr); }
    .activity-amount { grid-column: 2; }
}

/* Genel finans ve kişi deneyimi */
.finance-filter { display: grid; grid-template-columns: repeat(4, minmax(120px, .7fr)) minmax(190px, 1.2fr) auto; gap: .7rem; align-items: end; margin-bottom: 1rem; padding: 1rem; }
.finance-filter label, .compact-form label { display: block; margin-bottom: .3rem; color: var(--muted); font-size: .64rem; font-weight: 800; }
.finance-filter input, .finance-filter select { min-width: 0; }
.finance-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.finance-metric { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: .8rem; align-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-sm); }
.finance-metric > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; font-weight: 900; }
.finance-metric.income > span { background: color-mix(in srgb, var(--success) 14%, var(--surface)); color: var(--success); }
.finance-metric.expense > span { background: color-mix(in srgb, var(--danger) 12%, var(--surface)); color: var(--danger); }
.finance-metric.net > span, .finance-metric.savings > span { background: var(--brand-soft); color: var(--brand); }
.finance-metric small, .finance-metric strong, .finance-metric p { display: block; }
.finance-metric small { color: var(--muted); font-size: .62rem; font-weight: 800; }
.finance-metric strong { margin-top: .15rem; font-family: "Manrope", sans-serif; font-size: 1.2rem; }
.finance-metric p { margin-top: .14rem; color: var(--muted); font-size: .6rem; }
.finance-visual-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(330px, .7fr); gap: 1rem; margin-top: 1rem; }
.finance-chart-panel, .category-chart-panel { min-width: 0; }
.chart-legend { display: flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .62rem; }
.income-dot, .expense-dot { display: inline-block; width: 8px; height: 8px; margin-left: .4rem; border-radius: 50%; background: var(--success); }
.expense-dot { background: var(--danger); }
.finance-chart { display: block; width: 100%; height: 280px; margin-top: .8rem; }
.chart-empty { display: grid; min-height: 280px; place-items: center; align-content: center; gap: .4rem; color: var(--muted); text-align: center; }
.chart-empty > span { font-size: 2rem; }
.chart-empty strong { color: var(--text); }
.chart-empty p { font-size: .68rem; }
.chart-empty.compact { min-height: 180px; }
.category-visual { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 1rem; align-items: center; margin-top: 1rem; }
.donut-chart { display: grid; width: 126px; height: 126px; place-items: center; border-radius: 50%; background: var(--line); position: relative; }
.donut-chart::after { position: absolute; width: 72px; height: 72px; border-radius: 50%; background: var(--surface); content: ""; }
.donut-chart > span { z-index: 1; font-family: "Manrope", sans-serif; font-size: 1.2rem; font-weight: 900; text-align: center; }
.donut-chart small { display: block; color: var(--muted); font-family: inherit; font-size: .55rem; font-weight: 600; }
.category-bars { display: grid; gap: .62rem; }
.category-bars > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; position: relative; padding-bottom: .38rem; overflow: hidden; }
.category-bars span { overflow: hidden; font-size: .63rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.category-bars i, .category-chip i { display: inline-block; width: 8px; height: 8px; margin-right: .35rem; border-radius: 50%; }
.category-bars strong { font-size: .62rem; }
.category-bars b { position: absolute; bottom: 0; left: 0; height: 3px; max-width: 100%; border-radius: 2px; }
.finance-data-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .55fr); gap: 1rem; margin-top: 1rem; align-items: start; }
.finance-side-stack { display: grid; gap: 1rem; }
.responsive-table { width: 100%; overflow-x: auto; }
.finance-table { width: 100%; min-width: 900px; border-collapse: collapse; }
.finance-table th { padding: .65rem .55rem; color: var(--muted); font-size: .58rem; text-align: left; text-transform: uppercase; }
.finance-table td { padding: .78rem .55rem; border-top: 1px solid var(--line); vertical-align: middle; }
.finance-table td > strong, .finance-table td > small { display: block; }
.finance-table td > strong { max-width: 230px; overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.finance-table td > small { margin-top: .16rem; color: var(--muted); font-size: .56rem; }
.category-chip { display: inline-flex; align-items: center; font-size: .64rem; font-weight: 800; }
.attachment-pill { display: inline-flex; padding: .25rem .4rem; border-radius: 7px; background: var(--surface-soft); font-size: .6rem; }
.money-cell { font-size: .72rem; font-weight: 900; text-align: right; white-space: nowrap; }
.money-cell small { display: inline !important; color: inherit !important; }
.income-text { color: var(--success); }
.expense-text { color: var(--danger); }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .65rem; }
.pagination a { color: var(--brand); font-weight: 800; text-decoration: none; }
.source-list { display: grid; }
.source-list > div { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: .5rem; align-items: center; padding: .6rem 0; border-top: 1px solid var(--line); }
.source-list > div span { margin: 0; }
.source-list strong, .source-list b { font-size: .64rem; }
.muted-copy, .form-hint { color: var(--muted); font-size: .65rem; }
.form-hint a { color: var(--brand); }
.category-create summary { cursor: pointer; font-size: .7rem; font-weight: 900; }
.category-create form { display: grid; gap: .65rem; margin-top: .8rem; }
.contact-search { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .7rem; align-items: center; margin-bottom: 1rem; padding: .8rem 1rem; }
.contact-search label { font-size: .68rem; font-weight: 800; }
.contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.contact-card { min-width: 0; }
.contact-card > header { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: .7rem; align-items: center; }
.contact-avatar { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 14px; background: var(--brand-soft); color: var(--brand); font-family: "Manrope", sans-serif; font-weight: 900; }
.contact-card h2 { font-size: .85rem; }
.contact-card header p { margin-top: .12rem; color: var(--muted); font-size: .6rem; }
.contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 1rem 0 0; }
.contact-details div { min-width: 0; padding: .55rem; border-radius: 10px; background: var(--surface-soft); }
.contact-details dt { color: var(--muted); font-size: .55rem; }
.contact-details dd { margin: .15rem 0 0; overflow: hidden; font-size: .65rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.contact-details a { color: inherit; text-decoration: none; }
.contact-documents { display: grid; gap: .35rem; margin-top: .8rem; }
.contact-documents a { display: flex; justify-content: space-between; gap: .5rem; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: 9px; color: inherit; font-size: .62rem; text-decoration: none; }
.contact-documents small { color: var(--muted); white-space: nowrap; }
.contact-note { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .64rem; }
.custom-fields-editor { padding: 1rem; border: 1px dashed var(--line); border-radius: 14px; background: var(--surface-soft); }
.custom-fields-editor h2 { font-size: .82rem; }
[data-custom-fields] { display: grid; gap: .5rem; margin-top: .7rem; }
.custom-field-row { display: grid; grid-template-columns: minmax(120px, .6fr) minmax(160px, 1fr) 36px; gap: .5rem; }
.custom-field-row button { border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--danger); cursor: pointer; }

@media (max-width: 1180px) {
    .finance-filter { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .finance-visual-grid, .finance-data-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    .finance-filter, .finance-metrics, .contact-grid { grid-template-columns: 1fr 1fr; }
    .finance-filter .finance-search, .finance-filter button { grid-column: 1 / -1; }
    .category-visual { grid-template-columns: 1fr; justify-items: center; }
    .category-bars { width: 100%; }
    .contact-search { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .finance-filter, .finance-metrics, .contact-grid, .contact-details { grid-template-columns: 1fr; }
    .contact-card > header { grid-template-columns: 42px minmax(0, 1fr); }
    .contact-card > header .status-badge { grid-column: 2; width: max-content; }
    .custom-field-row { grid-template-columns: 1fr 36px; }
    .custom-field-row input:nth-child(2) { grid-row: 2; }
    .custom-field-row button { grid-column: 2; grid-row: 1 / 3; }
}

/* Fatura ve abonelik merkezi */
.billing-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.billing-metric { padding: 1rem 1.1rem; border: 1px solid var(--line); border-top: 3px solid var(--brand); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-sm); }
.billing-metric.danger { border-top-color: var(--danger); }.billing-metric.success { border-top-color: var(--success); }
.billing-metric small, .billing-metric strong, .billing-metric span { display: block; }.billing-metric small { color: var(--muted); font-size: .6rem; font-weight: 800; }.billing-metric strong { margin-top: .18rem; font-family: "Manrope", sans-serif; font-size: 1.35rem; }.billing-metric span { color: var(--muted); font-size: .56rem; }
.billing-search { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .7rem; align-items: center; margin-bottom: 1rem; padding: .8rem 1rem; }.billing-search label { font-size: .65rem; font-weight: 800; }
.billing-visual { margin-bottom: 1rem; }.bill-progress-chart { display: grid; gap: .7rem; margin-top: 1rem; }.bill-progress-chart > div { display: grid; grid-template-columns: minmax(130px, .45fr) minmax(160px, 1fr) auto; gap: .8rem; align-items: center; }.bill-progress-chart span strong, .bill-progress-chart span small { display: block; }.bill-progress-chart span strong { overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }.bill-progress-chart span small { color: var(--muted); font-size: .54rem; }.bill-progress-chart i { height: 9px; overflow: hidden; border-radius: 99px; background: var(--surface-soft); }.bill-progress-chart b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), var(--success)); }.bill-progress-chart em { min-width: 120px; font-size: .58rem; font-style: normal; font-weight: 800; text-align: right; }
.billing-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); gap: 1rem; align-items: start; }.billing-main, .billing-side { min-width: 0; }.bill-list, .subscription-list { display: grid; gap: .8rem; margin-top: .8rem; }
.bill-card { padding: 1rem; }.bill-card.status-5 { border-left: 4px solid var(--danger); }.bill-card.status-4 { opacity: .78; }.bill-card > header { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: .7rem; align-items: center; }.bill-symbol { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: var(--brand-soft); color: var(--brand); font-weight: 900; }.bill-card h3, .subscription-card h3 { font-size: .78rem; }.bill-card header p, .subscription-card header p { margin-top: .1rem; color: var(--muted); font-size: .57rem; }.bill-card dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin: .8rem 0 0; }.bill-card dl div { padding: .5rem; border-radius: 9px; background: var(--surface-soft); }.bill-card dt { color: var(--muted); font-size: .5rem; }.bill-card dd { margin: .14rem 0 0; overflow: hidden; font-size: .6rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.bill-reference { margin-top: .55rem; color: var(--muted); font-size: .56rem; }
.billing-documents { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .6rem; }.billing-documents a { max-width: 100%; overflow: hidden; padding: .3rem .45rem; border-radius: 7px; background: var(--surface-soft); color: var(--brand); font-size: .54rem; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.bill-payment { margin-top: .7rem; padding-top: .6rem; border-top: 1px solid var(--line); }.bill-payment summary { width: max-content; color: var(--brand); cursor: pointer; font-size: .6rem; font-weight: 900; }.bill-payment form { display: grid; grid-template-columns: repeat(4, minmax(100px, 1fr)) auto; gap: .5rem; align-items: end; margin-top: .6rem; }.bill-payment label { display: block; margin-bottom: .25rem; color: var(--muted); font-size: .5rem; font-weight: 800; }.bill-payment input, .bill-payment select, .bill-payment button { min-width: 0; padding: .48rem; font-size: .56rem; }
.billing-side .section-header a { color: var(--brand); font-size: .62rem; font-weight: 900; text-decoration: none; }.subscription-card > header { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: .6rem; align-items: center; }.subscription-card > header > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 11px; background: var(--brand-soft); color: var(--brand); font-weight: 900; }.subscription-card > strong, .subscription-card > small { display: block; }.subscription-card > strong { margin-top: .7rem; font-size: .75rem; }.subscription-card > small { margin-top: .1rem; color: var(--muted); font-size: .57rem; }.mini-empty { color: var(--muted); font-size: .63rem; }

@media (max-width: 1080px) { .billing-layout { grid-template-columns: 1fr; }.subscription-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }.bill-payment form { grid-template-columns: repeat(2, minmax(0, 1fr)); }.bill-payment button { grid-column: 1 / -1; } }
@media (max-width: 760px) { .billing-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }.bill-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }.bill-progress-chart > div { grid-template-columns: minmax(110px, .5fr) 1fr; }.bill-progress-chart em { grid-column: 2; text-align: left; }.billing-search { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .billing-metrics, .subscription-list, .bill-payment form { grid-template-columns: 1fr; }.bill-card > header { grid-template-columns: 40px minmax(0, 1fr); }.bill-card > header .status-badge { grid-column: 2; width: max-content; }.bill-payment button { grid-column: auto; } }

/* Bütçe, hedef ve borç/alacak planlama merkezi */
.planning-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.planning-metrics article { padding:1rem 1.1rem; border:1px solid var(--line); border-top:3px solid var(--brand); border-radius:var(--radius-md); background:var(--surface); box-shadow:var(--shadow-sm); }
.planning-metrics article.danger { border-top-color:var(--danger); }.planning-metrics small,.planning-metrics strong,.planning-metrics span{display:block}.planning-metrics small{color:var(--muted);font-size:.6rem;font-weight:800}.planning-metrics strong{margin-top:.18rem;font-family:"Manrope",sans-serif;font-size:1.35rem}.planning-metrics span{color:var(--muted);font-size:.56rem}
.planning-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:center;margin-bottom:1rem;padding:.8rem 1rem}.planning-search label{font-size:.65rem;font-weight:800}
.currency-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.2rem}.currency-plan header{display:flex;align-items:center;justify-content:space-between}.currency-plan header strong{font-size:1rem}.currency-plan header span,.currency-plan small{color:var(--muted);font-size:.54rem}.currency-plan>div{margin-top:.8rem}.currency-plan>div>b{float:right;font-size:.58rem}.currency-plan i,.budget-progress i,.budget-lines i,.goal-card>i,.obligation-card>i{display:block;height:8px;overflow:hidden;border-radius:99px;background:var(--surface-soft)}.currency-plan i{clear:both;margin-top:.35rem}.currency-plan em,.budget-progress em,.budget-lines em,.goal-card em,.obligation-card em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),#38bdf8)}.currency-plan em.goal,.goal-card em{background:linear-gradient(90deg,#8b5cf6,#ec4899)}.currency-plan footer{display:flex;justify-content:space-between;gap:.5rem;margin-top:.8rem;padding-top:.65rem;border-top:1px solid var(--line);font-size:.58rem}
.planning-section{margin-top:1.2rem}.planning-section .section-header a,.planning-columns .section-header a{color:var(--brand);font-size:.62rem;font-weight:900;text-decoration:none}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.8rem}.budget-card{border-left:4px solid var(--success)}.budget-card.warning{border-left-color:#f59e0b}.budget-card.critical{border-left-color:var(--danger)}.budget-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.budget-card h3,.goal-card h3,.obligation-card h3{font-size:.78rem}.budget-card header p,.goal-card header p,.obligation-card header p{margin-top:.1rem;color:var(--muted);font-size:.55rem}.budget-progress{display:grid;grid-template-columns:1fr auto;gap:.35rem;margin-top:.8rem}.budget-progress span b{font-size:.75rem}.budget-progress span small{color:var(--muted);font-size:.55rem}.budget-progress>strong{font-size:.65rem}.budget-progress i{grid-column:1/-1}.budget-insight{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.7rem}.budget-insight span{padding:.55rem;border-radius:9px;background:var(--surface-soft)}.budget-insight small,.budget-insight strong{display:block}.budget-insight small{color:var(--muted);font-size:.5rem}.budget-insight strong{margin-top:.12rem;font-size:.65rem}.budget-lines{display:grid;gap:.55rem;margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--line)}.budget-lines>div{display:grid;grid-template-columns:minmax(100px,.6fr) 1fr auto;gap:.55rem;align-items:center}.budget-lines span b,.budget-lines span small{display:block}.budget-lines span b{font-size:.58rem}.budget-lines span small{color:var(--muted);font-size:.48rem}.budget-lines strong{font-size:.53rem;white-space:nowrap}
.planning-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem;align-items:start}.goal-list,.obligation-list{display:grid;gap:.8rem;margin-top:.8rem}.goal-card>header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.goal-card>header>div{display:flex;align-items:center;gap:.55rem}.goal-icon{display:grid;width:36px;height:36px;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-weight:900}.goal-card>header>strong{font-size:.7rem}.goal-card>i,.obligation-card>i{margin-top:.7rem}.goal-amount{margin-top:.5rem}.goal-amount b{font-size:.7rem}.goal-amount span,.goal-card>small{color:var(--muted);font-size:.55rem}
.obligation-card.kind-1{border-left:3px solid var(--danger)}.obligation-card.kind-2{border-left:3px solid var(--success)}.obligation-card.status-4{background:color-mix(in srgb,var(--danger) 5%,var(--surface))}.obligation-card>header{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:.55rem;align-items:center}.obligation-card>header>span{display:grid;width:32px;height:32px;place-items:center;border-radius:10px;background:var(--surface-soft);font-weight:900}.obligation-card>header>strong{font-size:.65rem;white-space:nowrap}.obligation-meta{display:flex;justify-content:space-between;gap:.5rem;margin-top:.55rem;color:var(--muted);font-size:.53rem}
.planning-action{margin-top:.7rem;padding-top:.6rem;border-top:1px solid var(--line)}.planning-action summary{width:max-content;color:var(--brand);cursor:pointer;font-size:.58rem;font-weight:900}.planning-action form{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr)) auto;gap:.45rem;align-items:end;margin-top:.55rem}.planning-action input,.planning-action select,.planning-action button{min-width:0;padding:.46rem;font-size:.54rem}.planning-documents{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.65rem}.planning-documents a{max-width:100%;overflow:hidden;padding:.3rem .45rem;border-radius:7px;background:var(--surface-soft);color:var(--brand);font-size:.53rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}
.budget-line-editor{padding:1rem;border:1px dashed var(--line);border-radius:14px;background:var(--surface-soft)}[data-budget-lines]{display:grid;gap:.55rem}.budget-line-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.6fr) minmax(100px,.4fr) 36px;gap:.5rem;margin-top:.55rem}.budget-line-row button{border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--danger);cursor:pointer}
@media(max-width:1100px){.currency-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-columns{grid-template-columns:1fr}.planning-action form{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-action button{grid-column:1/-1}}
@media(max-width:760px){.planning-metrics,.budget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-search{grid-template-columns:1fr}.currency-plan-grid{grid-template-columns:1fr}.budget-line-row{grid-template-columns:1fr 1fr 36px}.budget-line-row select{grid-column:1/-1}.budget-line-row button{grid-column:3;grid-row:2}}
@media(max-width:520px){.planning-metrics,.budget-grid,.planning-action form{grid-template-columns:1fr}.budget-lines>div{grid-template-columns:1fr auto}.budget-lines i{grid-column:1/-1}.obligation-card>header{grid-template-columns:32px minmax(0,1fr)}.obligation-card>header>strong{grid-column:2}.planning-action button{grid-column:auto}}

/* Güvenilir gerçek zamanlı bildirim ve tercih merkezi */
.notification-settings-form{display:grid;gap:1.1rem}.notification-schedule-panel,.notification-topic-panel{padding:1.35rem}.notification-settings-form .field-help{margin:.85rem 0 0;color:var(--muted);font-size:.65rem;line-height:1.6}.notification-preference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.notification-preference-card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:center;padding:1rem;border:1px solid var(--line);border-radius:17px;background:var(--surface-soft);cursor:pointer;transition:border-color .2s,transform .2s,background .2s}.notification-preference-card:hover{transform:translateY(-1px);border-color:var(--brand)}.notification-preference-card>input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.preference-switch{position:relative;width:42px;height:24px;border-radius:999px;background:var(--line);transition:background .2s}.preference-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .2s}.notification-preference-card>input:checked+.preference-switch{background:var(--brand)}.notification-preference-card>input:checked+.preference-switch::after{transform:translateX(18px)}.notification-preference-card>input:focus-visible+.preference-switch{outline:3px solid color-mix(in srgb,var(--brand) 32%,transparent);outline-offset:3px}.notification-preference-card strong,.notification-preference-card small{display:block}.notification-preference-card small{margin-top:.28rem;color:var(--muted);font-size:.59rem;line-height:1.45}.notification-security-note{display:flex;gap:.8rem;align-items:flex-start;margin-top:1rem;padding:1rem;border-radius:15px;background:var(--brand-soft);color:var(--text)}.notification-security-note>span{color:var(--brand)}.notification-security-note p{margin:0;font-size:.65rem;line-height:1.55}.live-connection-state{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto;color:var(--muted);font-size:.58rem;font-weight:800}.live-connection-state i{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 4px color-mix(in srgb,#f59e0b 15%,transparent)}.live-connection-state.is-live{color:#15803d}.live-connection-state.is-live i{background:#22c55e;box-shadow:0 0 0 4px color-mix(in srgb,#22c55e 16%,transparent);animation:live-pulse 1.8s infinite}.realtime-toast-stack{position:fixed;z-index:1200;right:22px;top:82px;display:grid;gap:.65rem;width:min(390px,calc(100vw - 32px));pointer-events:none}.realtime-toast{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:start;padding:1rem;border:1px solid color-mix(in srgb,var(--brand) 42%,var(--line));border-radius:17px;background:var(--surface);box-shadow:0 20px 55px rgba(15,23,42,.19);animation:toast-in .25s ease-out}.realtime-toast>span:first-child{color:var(--brand);font-size:.7rem;margin-top:.25rem}.realtime-toast strong,.realtime-toast small{display:block}.realtime-toast small{margin-top:.25rem;color:var(--muted);font-size:.6rem;line-height:1.45}.realtime-toast button{border:0;background:none;color:var(--muted);font-size:1.25rem;cursor:pointer;line-height:1}.heading-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.heading-actions form{margin:0}@keyframes live-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,#22c55e 3%,transparent)}}@keyframes toast-in{from{opacity:0;transform:translateY(-10px) scale(.98)}}
@media(max-width:760px){.notification-preference-grid{grid-template-columns:1fr}.notification-schedule-panel .three-columns{grid-template-columns:1fr}.realtime-toast-stack{right:16px;top:72px}.live-connection-state{width:100%;margin:.4rem 0 0}}
@media(prefers-reduced-motion:reduce){.live-connection-state.is-live i,.realtime-toast{animation:none}}

/* Parola sifirlama ve degistirme (Faz 11) */
.label-row .inline-link{color:var(--brand);font-size:.62rem;font-weight:800;text-decoration:none}.label-row .inline-link:hover{text-decoration:underline}
.panel-caption{max-width:760px;margin:.6rem 0 0;color:var(--muted);font-size:.68rem;line-height:1.6}
.password-change-panel{margin-top:1rem}.password-change-form{margin-top:1rem}.password-change-form .form-grid{margin-top:0}.password-change-form>button{width:max-content;margin-top:.9rem}
@media(max-width:760px){.password-change-form>button{width:100%}}

/* Herkese acik vitrin sitesi (Faz 12). Tum renkler tema token'larindan gelir; koyu tema kendiliginden dogru calisir. */
.vitrin-page{display:flex;min-height:100vh;flex-direction:column;background:var(--bg)}
.vitrin-main{flex:1}
.vitrin-header{position:sticky;top:0;z-index:60;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px)}
.vitrin-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;max-width:1200px;margin:0 auto;padding:.85rem clamp(1rem,4vw,2rem)}
.vitrin-header .brand small{color:var(--muted)}
.vitrin-nav{display:flex;gap:.35rem}
.vitrin-nav a{padding:.5rem .75rem;border-radius:10px;color:var(--muted);font-size:.72rem;font-weight:700;text-decoration:none;transition:color .15s,background .15s}
.vitrin-nav a:hover{color:var(--ink);background:var(--surface-soft)}
.vitrin-nav a[aria-current="page"]{color:var(--brand);background:var(--brand-soft)}
.vitrin-header-actions{display:flex;align-items:center;gap:.55rem}
.vitrin-nav-toggle{display:none}
.ghost-button{display:inline-flex;align-items:center;gap:.45rem;padding:.62rem 1.05rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:.72rem;font-weight:800;text-decoration:none;cursor:pointer;transition:border-color .15s,transform .15s}
.ghost-button:hover{border-color:var(--brand);transform:translateY(-1px)}
.primary-button.compact{padding:.62rem 1.05rem;font-size:.72rem}

/* Hero */
.vitrin-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(2rem,5vw,4rem);align-items:center;max-width:1280px;margin:0 auto;padding:clamp(3.2rem,7vw,6.3rem) clamp(1rem,4vw,2.5rem) clamp(2.6rem,5vw,4.5rem)}
.vitrin-hero::before{content:"";position:absolute;z-index:-1;top:6%;right:3%;width:min(48vw,620px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--brand) 18%,transparent),transparent 68%);filter:blur(5px);pointer-events:none}
.vitrin-hero-copy h1{max-width:620px;font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.08;letter-spacing:-.02em}
.vitrin-hero-copy h1 em{position:relative;color:var(--brand);font-style:normal;white-space:nowrap}.vitrin-hero-copy h1 em::after{content:"";position:absolute;z-index:-1;right:-.04em;bottom:.02em;left:-.04em;height:.24em;border-radius:999px;background:color-mix(in srgb,var(--accent) 35%,transparent);transform:rotate(-1deg)}
.vitrin-release{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1rem;padding:.35rem .65rem;border:1px solid color-mix(in srgb,var(--brand) 26%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--brand-soft) 42%,var(--surface));color:var(--muted);font-size:.62rem;font-weight:750}.vitrin-release span{padding:.18rem .42rem;border-radius:999px;background:var(--brand);color:#fff;font-size:.54rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.vitrin-lead{max-width:640px;margin-top:1rem;color:var(--muted);font-size:clamp(.85rem,1.4vw,1rem);line-height:1.7}
.vitrin-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.vitrin-hero-proof{display:flex;flex-wrap:wrap;gap:1.1rem;margin:1.7rem 0 0;padding:0;list-style:none}
.vitrin-hero-proof li{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.66rem;font-weight:700}
.vitrin-hero-proof span{color:var(--accent)}

/* CSS ile cizilen urun onizlemesi; ekran goruntusu yerine tema uyumlu canli mock */
.vitrin-hero-visual{position:relative;transform:perspective(1100px) rotateY(-2.5deg) rotateX(1deg);transform-origin:center;transition:transform .35s ease}.vitrin-hero-visual:hover{transform:perspective(1100px) rotateY(0) rotateX(0) translateY(-4px)}
.vitrin-mock{display:grid;grid-template-columns:52px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}
.vitrin-mock-rail{display:grid;gap:.6rem;justify-items:center;padding:1rem .6rem;background:var(--surface-strong)}
.vitrin-mock-rail i{width:22px;height:22px;border-radius:8px;background:rgba(255,255,255,.14)}
.vitrin-mock-rail i.dot{background:var(--accent)}
[data-theme="dark"] .vitrin-mock-rail i{background:rgba(15,32,29,.35)}
.vitrin-mock-body{display:grid;gap:.8rem;padding:1.1rem}
.vitrin-mock-topbar{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}
.vitrin-mock-topbar b{font-size:.8rem}
.vitrin-mock-topbar span{color:var(--muted);font-size:.58rem}
.vitrin-mock-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.vitrin-mock-metrics>div{display:grid;gap:.15rem;padding:.65rem .7rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.vitrin-mock-metrics small{color:var(--muted);font-size:.5rem;font-weight:700}
.vitrin-mock-metrics strong{font-size:.78rem}
.vitrin-mock-metrics em{font-size:.5rem;font-style:normal;font-weight:800}
.vitrin-mock-metrics em.up{color:var(--success)}
.vitrin-mock-metrics em.down{color:var(--danger)}
.vitrin-mock-chart{position:relative;padding:.7rem .7rem .5rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);color:var(--brand)}
.vitrin-mock-chart svg{display:block;width:100%;height:76px}
.vitrin-mock-chart span{display:block;margin-top:.35rem;color:var(--muted);font-size:.52rem;font-weight:700}
.vitrin-mock-rows{display:grid;gap:.45rem}
.vitrin-mock-rows>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:center;padding:.5rem .6rem;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.vitrin-mock-rows i{display:grid;width:24px;height:24px;place-items:center;border-radius:8px;font-size:.6rem;font-style:normal;font-weight:800}
.vitrin-mock-rows i.tone-task{background:var(--brand-soft);color:var(--brand)}
.vitrin-mock-rows i.tone-bill{background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent)}
.vitrin-mock-rows i.tone-note{background:var(--surface-soft);color:var(--muted)}
.vitrin-mock-rows span{overflow:hidden;font-size:.62rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.vitrin-mock-rows b{color:var(--muted);font-size:.55rem;white-space:nowrap}
.vitrin-mock-toast{position:absolute;right:-14px;bottom:-18px;display:flex;gap:.6rem;align-items:flex-start;max-width:270px;padding:.8rem .95rem;border:1px solid color-mix(in srgb,var(--brand) 42%,var(--line));border-radius:15px;background:var(--surface);box-shadow:var(--shadow-lg)}
.vitrin-mock-toast>span:first-child{margin-top:.1rem;color:var(--brand)}
.vitrin-mock-toast strong{display:block;font-size:.62rem}
.vitrin-mock-toast small{display:block;margin-top:.15rem;color:var(--muted);font-size:.55rem;line-height:1.45}
.vitrin-proofbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1160px;margin:0 auto 2rem;padding:0 clamp(1rem,4vw,2rem)}.vitrin-proofbar>div{display:grid;gap:.16rem;padding:1rem 1.15rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 75%,transparent)}.vitrin-proofbar>div:first-child{border-left:1px solid var(--line);border-radius:16px 0 0 16px}.vitrin-proofbar>div:last-child{border-right:1px solid var(--line);border-radius:0 16px 16px 0}.vitrin-proofbar strong{font-size:.82rem}.vitrin-proofbar span{color:var(--muted);font-size:.58rem;line-height:1.45}

/* Tek cumlelik urun tanimi bandi */
.vitrin-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.vitrin-strip p{max-width:900px;margin:0 auto;padding:clamp(1.4rem,3vw,2.2rem) clamp(1rem,4vw,2rem);color:var(--muted);font-size:clamp(.82rem,1.5vw,1rem);line-height:1.75;text-align:center}
.vitrin-strip strong{color:var(--ink)}

/* Ortak bolum iskeleti */
.vitrin-section{max-width:1200px;margin:0 auto;padding:clamp(2.2rem,5vw,4rem) clamp(1rem,4vw,2rem)}
.vitrin-section-heading{max-width:720px;margin-bottom:2rem}
.vitrin-section-heading h2{font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.15;letter-spacing:-.015em}
.vitrin-section-heading p:not(.eyebrow){margin-top:.7rem;color:var(--muted);line-height:1.7}

/* Modul kartlari */
.vitrin-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.vitrin-module-grid.full-tour{max-width:1200px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem) clamp(2.2rem,5vw,4rem);grid-template-columns:repeat(2,minmax(0,1fr))}
.vitrin-module-card{display:grid;gap:.5rem;align-content:start;padding:1.3rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s}
.vitrin-module-card:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow-sm)}
.module-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:var(--brand-soft);color:var(--brand);font-size:1rem;font-weight:800}
.vitrin-module-card strong{font-size:.85rem}
.vitrin-module-card p{color:var(--muted);font-size:.68rem;line-height:1.6}
.vitrin-module-card em{margin-top:.2rem;color:var(--brand);font-size:.64rem;font-style:normal;font-weight:800}

/* Kullanim senaryolari */
.vitrin-scenario-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.vitrin-scenario-card{display:grid;gap:.6rem;align-content:start;padding:1.6rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.vitrin-scenario-card.featured{border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:linear-gradient(160deg,var(--brand-soft),var(--surface) 55%)}
.vitrin-scenario-card h3{font-size:1.05rem}
.vitrin-scenario-card ul{display:grid;gap:.45rem;margin:.3rem 0 .6rem;padding:0;list-style:none}
.vitrin-scenario-card li{position:relative;padding-left:1.1rem;color:var(--muted);font-size:.7rem;line-height:1.6}
.vitrin-scenario-card li::before{content:"✓";position:absolute;left:0;color:var(--brand);font-weight:800}
.vitrin-scenario-card .ghost-button{width:max-content}

/* Guvenlik bandi: koyu yuzeyle vurgulanir, tokenlarla iki temada da okunur kalir */
.vitrin-security-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--bg)}
[data-theme="dark"] .vitrin-security-band{color:#0f1716}
.vitrin-security-band .eyebrow{color:var(--accent)}
.vitrin-security-copy h2{font-size:clamp(1.4rem,2.8vw,2rem);line-height:1.18}
.vitrin-security-copy p{margin-top:.7rem;opacity:.82;font-size:.78rem;line-height:1.7}
.vitrin-security-copy .primary-button{margin-top:1.3rem}
.vitrin-security-list{display:grid;gap:.8rem;margin:0;padding:0;list-style:none}
.vitrin-security-list li{display:flex;gap:.7rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid color-mix(in srgb,currentColor 14%,transparent);border-radius:14px;background:color-mix(in srgb,currentColor 6%,transparent)}
.vitrin-security-list span{margin-top:.1rem;color:var(--accent)}
.vitrin-security-list strong{display:block;font-size:.72rem}
.vitrin-security-list small{display:block;margin-top:.2rem;opacity:.75;font-size:.62rem;line-height:1.5}

/* Bildirim tanitimi */
.vitrin-notify-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
.vitrin-notify-grid article{display:grid;gap:.45rem;align-content:start;padding:1.2rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.vitrin-notify-grid article>span{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-weight:800}
.vitrin-notify-grid strong{font-size:.76rem}
.vitrin-notify-grid p{color:var(--muted);font-size:.64rem;line-height:1.6}

/* SSS */
.vitrin-faq-list{display:grid;gap:.6rem;max-width:820px}
.vitrin-faq-list.standalone{margin:0 auto;padding:0 clamp(1rem,4vw,2rem) clamp(2.2rem,5vw,4rem)}
.vitrin-faq-item{border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.vitrin-faq-item summary{padding:1rem 1.15rem;font-size:.78rem;font-weight:800;cursor:pointer;list-style:none}
.vitrin-faq-item summary::-webkit-details-marker{display:none}
.vitrin-faq-item summary::after{content:"+";float:right;color:var(--brand);font-weight:800}
.vitrin-faq-item[open] summary::after{content:"−"}
.vitrin-faq-item p{padding:0 1.15rem 1rem;color:var(--muted);font-size:.7rem;line-height:1.7}
.vitrin-faq-more{margin-top:1.2rem}
.vitrin-faq-more a{color:var(--brand);font-size:.72rem;font-weight:800;text-decoration:none}
.vitrin-faq-more a:hover{text-decoration:underline}

/* Kapanis CTA */
.vitrin-cta{max-width:820px;margin:0 auto;padding:clamp(2.2rem,5vw,4rem) clamp(1rem,4vw,2rem) clamp(3rem,6vw,5rem);text-align:center}
.vitrin-cta h2{font-size:clamp(1.6rem,3.4vw,2.4rem);letter-spacing:-.015em}
.vitrin-cta p{max-width:560px;margin:.8rem auto 0;color:var(--muted);line-height:1.7}
.vitrin-cta .vitrin-hero-actions{justify-content:center}

/* Ozellik sayfasi sablonu */
.vitrin-feature-hero{max-width:860px;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,4vw,2rem) clamp(1.5rem,3vw,2.5rem)}
.vitrin-feature-hero h1{font-size:clamp(1.9rem,4vw,3rem);line-height:1.1;letter-spacing:-.02em}
.vitrin-feature-hero a{color:var(--brand)}
.vitrin-highlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;max-width:1200px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem) clamp(1.5rem,3vw,2.5rem)}
.vitrin-highlight-card{display:grid;gap:.5rem;align-content:start;padding:1.3rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.vitrin-highlight-card strong{font-size:.8rem}
.vitrin-highlight-card p{color:var(--muted);font-size:.68rem;line-height:1.6}
.vitrin-highlight-card a{color:var(--brand);font-weight:700}
.vitrin-feature-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start;max-width:1100px;margin:0 auto;padding:clamp(1.8rem,4vw,3rem) clamp(1rem,4vw,2rem)}
.vitrin-feature-section.alt{border-block:1px solid var(--line);background:var(--surface)}
.vitrin-feature-copy h2{font-size:clamp(1.3rem,2.6vw,1.85rem);line-height:1.2}
.vitrin-feature-copy p{margin-top:.7rem;color:var(--muted);font-size:.78rem;line-height:1.75}
.vitrin-feature-bullets{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}
.vitrin-feature-bullets li{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem .85rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:.7rem;line-height:1.55}
.vitrin-feature-section.alt .vitrin-feature-bullets li{background:var(--surface-soft)}
.vitrin-feature-bullets span{color:var(--brand);font-weight:800}

/* Footer */
.vitrin-footer{border-top:1px solid var(--line);background:var(--surface)}
.vitrin-footer-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.9fr);gap:clamp(1.5rem,4vw,3rem);max-width:1200px;margin:0 auto;padding:clamp(2rem,4vw,3rem) clamp(1rem,4vw,2rem)}
.vitrin-footer-brand p{max-width:340px;margin-top:1rem;color:var(--muted);font-size:.68rem;line-height:1.65}
.vitrin-footer-brand .brand small{color:var(--muted)}
.vitrin-footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.vitrin-footer-columns>div{display:grid;gap:.45rem;align-content:start}
.vitrin-footer-columns strong{margin-bottom:.3rem;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}
.vitrin-footer-columns a{color:var(--muted);font-size:.7rem;text-decoration:none}
.vitrin-footer-columns a:hover{color:var(--brand)}
.vitrin-footer-legal{display:flex;justify-content:space-between;gap:1rem;max-width:1200px;margin:0 auto;padding:1rem clamp(1rem,4vw,2rem) 1.4rem;border-top:1px solid var(--line);color:var(--muted);font-size:.62rem}

/* Duyarli kirilimlar */
@media(max-width:1080px){
    .vitrin-hero{grid-template-columns:1fr;padding-bottom:3.5rem}
    .vitrin-hero-visual{max-width:640px}
    .vitrin-module-grid,.vitrin-notify-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .vitrin-security-band{grid-template-columns:1fr}
}
@media(max-width:860px){
    .vitrin-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;gap:.2rem;padding:.8rem clamp(1rem,4vw,2rem) 1rem;border-bottom:1px solid var(--line);background:var(--bg);box-shadow:var(--shadow-lg)}
    .vitrin-nav.open{display:flex}
    .vitrin-nav-toggle{display:inline-grid}
    .vitrin-header-actions .ghost-button{display:none}
    .vitrin-scenario-grid,.vitrin-highlight-grid,.vitrin-feature-section,.vitrin-module-grid.full-tour{grid-template-columns:1fr}
    .vitrin-feature-section.alt{padding-block:2rem}
    .vitrin-footer-inner{grid-template-columns:1fr}
    .vitrin-mock-toast{position:static;margin-top:.8rem;max-width:none}
    .vitrin-proofbar{grid-template-columns:repeat(2,minmax(0,1fr))}.vitrin-proofbar>div,.vitrin-proofbar>div:first-child,.vitrin-proofbar>div:last-child{border:1px solid var(--line);border-radius:13px}
}
@media(max-width:620px){
    .vitrin-module-grid,.vitrin-notify-grid{grid-template-columns:1fr}
    .vitrin-mock-metrics{grid-template-columns:1fr 1fr}
    .vitrin-footer-columns{grid-template-columns:1fr 1fr}
    .vitrin-footer-legal{flex-direction:column;gap:.3rem}
    .vitrin-hero-actions .primary-button,.vitrin-hero-actions .ghost-button{width:100%;justify-content:center}
    .vitrin-hero-copy h1 em{white-space:normal}.vitrin-proofbar{grid-template-columns:1fr;gap:.45rem}
}
@media(max-width:460px){
    .vitrin-header-inner{gap:.45rem;padding-inline:.75rem}
    .vitrin-header .brand{gap:.5rem}
    .vitrin-header .brand small{display:none}
    .vitrin-header-actions{gap:.35rem}
    .vitrin-header-actions .primary-button{padding:.65rem .75rem;font-size:.6rem}
}


/* Iki adimli dogrulama (Faz 13) */
.mfa-code-input{max-width:260px;font-size:1.05rem;letter-spacing:.35em;font-variant-numeric:tabular-nums}
.mfa-status-banner{display:flex;gap:.8rem;align-items:center;margin-top:1rem}
.mfa-status-banner p{margin-top:.2rem;color:var(--muted);font-size:.68rem}
.mfa-status-banner a{margin-left:auto;white-space:nowrap}
.mfa-status-banner.is-enabled{border-left:3px solid var(--success)}
.mfa-secret-box{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin:.9rem 0;padding:.9rem 1rem;border:1px dashed var(--line);border-radius:13px;background:var(--surface-soft)}
.mfa-secret{font-family:Consolas,'Cascadia Mono',monospace;font-size:.82rem;letter-spacing:.14em;word-break:break-all}
.mfa-step-two{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.mfa-inline-form{display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-end;margin-top:.9rem}
.mfa-inline-form>div{display:grid;gap:.3rem;min-width:220px}
.mfa-recovery-panel{border-left:3px solid var(--accent)}
.mfa-recovery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:.9rem 0;padding:0;list-style:none}
.mfa-recovery-grid li{padding:.55rem .4rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);text-align:center}
.mfa-recovery-grid code{font-family:Consolas,'Cascadia Mono',monospace;font-size:.68rem;letter-spacing:.06em}
@media(max-width:900px){.mfa-recovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mfa-status-banner{flex-wrap:wrap}.mfa-status-banner a{margin-left:0;width:100%;text-align:center}}

/* Takvim modulu (Faz 14) */
.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.calendar-nav{display:flex;align-items:center;gap:.8rem}
.calendar-nav .secondary-button{padding:.5rem .8rem}
.calendar-month-title{min-width:220px;font-size:1.15rem;text-align:center;text-transform:capitalize}
.calendar-toolbar-side{display:flex;align-items:center;gap:1rem}
.calendar-legend{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.62rem;font-weight:700}
.legend-dot{width:10px;height:10px;border-radius:4px}
.legend-event{background:var(--brand)}
.legend-task{background:var(--accent)}
.legend-bill{background:#2563eb}
.calendar-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,1fr);gap:1rem;align-items:start}
.calendar-grid-panel{padding:1rem}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.calendar-grid+.calendar-grid{margin-top:.35rem}
.calendar-grid-header{margin-bottom:.4rem}
.calendar-dayname{padding:.2rem .4rem;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.calendar-cell{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.3rem;min-height:92px;padding:.45rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-decoration:none;transition:border-color .15s,transform .15s;overflow:hidden;cursor:pointer}
.calendar-cell:hover{border-color:var(--brand);transform:translateY(-1px)}
.calendar-cell.muted{background:var(--surface-soft);opacity:.55}
.calendar-cell.today .calendar-daynumber{background:var(--brand);color:#fff}
.calendar-cell.selected{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.calendar-daynumber{display:grid;width:26px;height:26px;place-items:center;border-radius:9px;color:inherit;font-size:.66rem;font-weight:800;text-decoration:none}
.calendar-chips{display:grid;gap:.22rem;align-content:start;min-width:0}
.calendar-chip{--chip-color:var(--brand);display:block;width:100%;overflow:hidden;padding:.16rem .38rem;border:0;border-left:3px solid var(--chip-color);border-radius:6px;background:color-mix(in srgb,var(--chip-color) 12%,var(--surface));color:var(--ink);font:inherit;font-size:.55rem;font-style:normal;font-weight:600;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.calendar-chip.chip-task{--chip-color:var(--accent)}
.calendar-chip.chip-bill{--chip-color:#2563eb}
.calendar-chip.overdue{--chip-color:var(--danger)}
.calendar-chip.chip-more{border-left-color:transparent;background:var(--surface-soft);color:var(--muted);text-align:center}
.calendar-day-panel{position:sticky;top:calc(var(--topbar-height) + 1rem)}
.calendar-day-panel h2{text-transform:capitalize}
.calendar-empty{display:grid;justify-items:center;gap:.5rem;padding:2rem 1rem;color:var(--muted);text-align:center;font-size:.7rem}
.calendar-day-list{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}
.calendar-day-item{--chip-color:var(--brand);display:flex;gap:.7rem;align-items:flex-start;justify-content:space-between;padding:.7rem .8rem;border:1px solid var(--line);border-left:3px solid var(--chip-color);border-radius:12px;background:var(--surface-soft)}
.calendar-day-item.source-task{--chip-color:var(--accent)}
.calendar-day-item.source-bill{--chip-color:#2563eb}
.calendar-day-item.overdue{--chip-color:var(--danger)}
.calendar-day-copy strong{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.7rem}
.calendar-day-copy small{display:block;margin-top:.2rem;color:var(--muted);font-size:.58rem;line-height:1.5}
.calendar-day-side{display:grid;justify-items:end;gap:.3rem}
.calendar-time{color:var(--muted);font-size:.6rem;font-weight:800;white-space:nowrap}
.status-badge.danger{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}
.calendar-allday-toggle{display:inline-flex;gap:.5rem;align-items:center;margin:.3rem 0;font-size:.7rem;cursor:pointer}
.calendar-color-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem}
.calendar-color-option{display:inline-flex;gap:.4rem;align-items:center;padding:.4rem .6rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:.62rem}
.calendar-color-option input{position:absolute;opacity:0;pointer-events:none}
.calendar-color-option i{width:14px;height:14px;border-radius:5px;background:var(--swatch)}
.calendar-color-option:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 20%,transparent)}
@media(max-width:1100px){.calendar-layout{grid-template-columns:1fr}.calendar-day-panel{position:static}}
@media(max-width:700px){.calendar-cell{min-height:64px;padding:.3rem}.calendar-chip{display:none}.calendar-chips::after{content:"";display:block}.calendar-cell:not(.muted):has(.calendar-chip)::after{content:"●";color:var(--brand);font-size:.5rem;text-align:center}.calendar-month-title{min-width:0}}

/* Raporlama merkezi (Faz 15) */
.report-filter-panel{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}
.report-period-shortcuts{display:flex;flex-wrap:wrap;gap:.4rem}
.report-period-chip{padding:.5rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.66rem;font-weight:800;text-decoration:none;transition:border-color .15s,color .15s,background .15s}
.report-period-chip:hover{border-color:var(--brand);color:var(--ink)}
.report-period-chip.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.report-custom-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin:0}
.report-custom-range>div{display:grid;gap:.25rem}
.report-custom-range label{color:var(--muted);font-size:.58rem;font-weight:800}
.report-period-caption{margin:1rem 0;color:var(--muted);font-size:.68rem}
.report-period-caption strong{color:var(--ink);text-transform:capitalize}
.report-metrics{margin-bottom:1rem}
.report-change{margin-top:.35rem;font-size:.6rem;font-weight:800}
.report-change.positive{color:var(--success)}
.report-change.negative{color:var(--danger)}
.report-change.neutral{color:var(--muted)}
.report-section{margin-bottom:1rem}
.report-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.report-monthly-table{width:100%;margin-top:1rem;border-collapse:collapse;font-size:.66rem}
.report-monthly-table th,.report-monthly-table td{padding:.55rem .5rem;border-bottom:1px solid var(--line);text-align:left}
.report-monthly-table thead th{color:var(--muted);font-size:.56rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.report-monthly-table tbody th{font-weight:700;text-transform:capitalize;white-space:nowrap}
.report-monthly-table .numeric{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.report-monthly-table .numeric.positive{color:var(--success)}
.report-monthly-table .numeric.negative{color:var(--danger)}
.report-bar-pair{display:grid;gap:.2rem;min-width:110px}
.report-bar{display:block;height:7px;border-radius:4px;min-width:2px}
.report-bar.income{background:var(--success)}
.report-bar.expense{background:var(--danger)}
.report-breakdown-list{display:grid;gap:.8rem;margin:1rem 0 0;padding:0;list-style:none}
.report-breakdown-list li{--bar-color:var(--danger)}
.report-breakdown-list.income li{--bar-color:var(--success)}
.report-breakdown-head{display:flex;justify-content:space-between;gap:.7rem;font-size:.68rem}
.report-breakdown-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.report-breakdown-head span{font-variant-numeric:tabular-nums;white-space:nowrap}
.report-share-track{display:block;height:8px;margin:.32rem 0 .22rem;border-radius:5px;background:var(--surface-soft);overflow:hidden}
.report-share-track i{display:block;height:100%;min-width:2px;border-radius:5px;background:var(--bar-color)}
.report-breakdown-list small{color:var(--muted);font-size:.56rem}
.report-party-list{display:grid;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}
.report-party-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .8rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);font-size:.66rem}
.report-party-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.report-party-list b{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.report-party-list small{grid-column:1/-1;color:var(--muted);font-size:.54rem}
.report-note{display:flex;gap:.8rem;align-items:flex-start;margin-top:1rem}
.report-note p{margin-top:.25rem;color:var(--muted);font-size:.66rem;line-height:1.6}
.empty-state-card{display:grid;justify-items:center;gap:.6rem;padding:2.5rem 1.5rem;text-align:center}
.empty-state-card p{max-width:520px;color:var(--muted);font-size:.7rem;line-height:1.6}
@media(max-width:900px){.report-columns{grid-template-columns:1fr}.report-filter-panel{flex-direction:column;align-items:stretch}.report-monthly-table{font-size:.6rem}.report-bar-pair{min-width:70px}}
@media(max-width:620px){.report-monthly-table thead th:last-child,.report-monthly-table tbody td:last-child{display:none}}

/* Genel arama ve komut paleti (Faz 16) */
.topbar-search{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);font-size:.68rem;font-weight:700;text-decoration:none;cursor:pointer;transition:border-color .15s,color .15s}
.topbar-search:hover{border-color:var(--brand);color:var(--ink)}
.topbar-search kbd{padding:.1rem .3rem;border:1px solid var(--line);border-radius:5px;background:var(--surface-soft);font-family:inherit;font-size:.55rem}
.search-hint{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.62rem;font-weight:700;white-space:nowrap}
.search-hint kbd{padding:.14rem .34rem;border:1px solid var(--line);border-radius:5px;background:var(--surface-soft);font-family:inherit;font-size:.58rem}
.search-form-panel{display:grid;gap:1rem}
.search-main-form{display:flex;gap:.6rem;margin:0}
.search-main-form input{flex:1;min-width:0}
.search-module-filter{display:flex;flex-wrap:wrap;gap:.4rem}
.search-filter-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.64rem;font-weight:800;text-decoration:none;transition:border-color .15s,color .15s,background .15s}
.search-filter-chip:hover{border-color:var(--brand);color:var(--ink)}
.search-filter-chip.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.search-filter-chip i{font-style:normal}
.search-result-caption{margin:1rem 0;color:var(--muted);font-size:.68rem}
.search-more-note{color:var(--accent);font-weight:700}
.search-results-panel{padding:.5rem}
.search-result-list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}
.search-result-item{--tone:var(--brand);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.75rem .85rem;border-radius:12px;transition:background .15s}
.search-result-item:hover{background:var(--surface-soft)}
.search-result-item+.search-result-item{border-top:1px solid var(--line)}
.search-result-item.tone-note{--tone:#7c3aed}
.search-result-item.tone-task{--tone:var(--brand)}
.search-result-item.tone-contact{--tone:#2563eb}
.search-result-item.tone-transaction{--tone:var(--success)}
.search-result-item.tone-bill{--tone:var(--accent)}
.search-result-item.tone-calendar{--tone:#0891b2}
.search-result-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--tone) 14%,var(--surface));color:var(--tone);font-size:.8rem}
.search-result-head{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.search-result-head strong{font-size:.72rem}
.search-result-copy p{margin:.22rem 0 0;overflow:hidden;color:var(--muted);font-size:.63rem;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}
.search-result-copy small{display:block;margin-top:.2rem;color:var(--muted);font-size:.56rem}
.search-note{display:flex;gap:.8rem;align-items:flex-start;margin-top:1rem}
.search-note p{margin-top:.25rem;color:var(--muted);font-size:.66rem;line-height:1.6}

/* Komut paleti */
body.palette-open{overflow:hidden}
/* HTML hidden niteliğinin bileşenin grid kuralı tarafından ezilmesini önler; palet yalnızca kullanıcı isteğiyle görünür. */
.command-palette[hidden]{display:none}
.command-palette{position:fixed;inset:0;z-index:1300;display:grid;place-items:start center;padding:min(14vh,120px) 1rem 1rem}
.command-palette-backdrop{position:fixed;inset:0;border:0;background:rgba(8,20,18,.55);backdrop-filter:blur(3px);cursor:pointer}
.command-palette-dialog{position:relative;display:grid;width:min(640px,100%);max-height:70vh;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg)}
.command-palette-input{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.6rem;align-items:center;padding:.9rem 1rem;border-bottom:1px solid var(--line)}
.command-palette-input>span:first-child{color:var(--brand);font-size:.9rem}
.command-palette-input input{border:0;background:none;font-size:.85rem;outline:none;padding:0}
.command-palette-input kbd{padding:.14rem .38rem;border:1px solid var(--line);border-radius:5px;background:var(--surface-soft);color:var(--muted);font-family:inherit;font-size:.55rem}
.command-palette-results{overflow-y:auto;padding:.4rem}
.command-palette-hint{margin:0;padding:1.4rem 1rem;color:var(--muted);font-size:.68rem;text-align:center}
.command-palette-row{--tone:var(--brand);display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:center;padding:.6rem .7rem;border-radius:10px;color:inherit;text-decoration:none}
.command-palette-row:hover,.command-palette-row.active{background:var(--surface-soft)}
.command-palette-row.active{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);outline-offset:-2px}
.command-palette-row.tone-note{--tone:#7c3aed}
.command-palette-row.tone-task{--tone:var(--brand)}
.command-palette-row.tone-contact{--tone:#2563eb}
.command-palette-row.tone-transaction{--tone:var(--success)}
.command-palette-row.tone-bill{--tone:var(--accent)}
.command-palette-row.tone-calendar{--tone:#0891b2}
.command-palette-row i{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--tone) 14%,var(--surface));color:var(--tone);font-style:normal;font-size:.68rem}
.command-palette-copy{display:grid;min-width:0}
.command-palette-copy strong{overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}
.command-palette-copy small{overflow:hidden;color:var(--muted);font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}
.command-palette-footer{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;padding:.6rem 1rem;border-top:1px solid var(--line);background:var(--surface-soft);color:var(--muted);font-size:.57rem;font-weight:700}
.command-palette-footer kbd{margin-right:.15rem;padding:.1rem .3rem;border:1px solid var(--line);border-radius:4px;background:var(--surface);font-family:inherit;font-size:.54rem}
.command-palette-footer a{margin-left:auto;color:var(--brand);text-decoration:none}
@media(max-width:760px){.topbar-search-label,.topbar-search kbd{display:none}.search-main-form{flex-direction:column}.search-result-item{grid-template-columns:auto minmax(0,1fr)}.search-result-item>.text-button{grid-column:2}.command-palette{padding-top:6vh}}

/* ==========================================================================
   Faz 22 — Uygulama tasarım sistemi
   Bu katman mevcut modül sınıflarını korur; böylece bütün ekranlar tek tek
   kırılmadan aynı yüzey, tipografi, boşluk ve responsive davranışı paylaşır.
   ========================================================================== */
:root {
    --bg: #f3f7f5;
    --surface: #ffffff;
    --surface-soft: #f1f6f4;
    --surface-strong: #0b302c;
    --ink: #10231f;
    --muted: #64766f;
    --line: #dbe7e2;
    --brand: #0b887b;
    --brand-strong: #076c63;
    --brand-soft: #dff5ef;
    --accent: #f1b955;
    --danger: #c43f36;
    --success: #168365;
    --shadow-sm: 0 10px 32px rgba(15, 61, 52, .065);
    --shadow-lg: 0 28px 80px rgba(9, 44, 38, .16);
    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 30px;
    --sidebar-width: 272px;
    --topbar-height: 72px;
}

[data-theme="dark"] {
    --bg: #081310;
    --surface: #101e1a;
    --surface-soft: #162823;
    --surface-strong: #d9f5ed;
    --ink: #eff8f5;
    --muted: #9eb0aa;
    --line: #263a34;
    --brand: #43c4b3;
    --brand-strong: #73d7ca;
    --brand-soft: #153b34;
    --danger: #f1786d;
    --success: #50c99e;
}

body.app-page {
    background:
        radial-gradient(circle at 78% -20%, color-mix(in srgb, var(--brand) 9%, transparent), transparent 36rem),
        var(--bg);
}

/* Ortak kabuk: menü sabit kalır, içerik yüzeyi ise geniş ekranlarda gereksiz yere uzamaz. */
.sidebar {
    padding: 1.25rem .95rem 1rem;
    background:
        radial-gradient(circle at 20% 0, rgba(54, 181, 160, .16), transparent 17rem),
        linear-gradient(180deg, #092a26 0%, #071f1c 100%);
    border-right-color: rgba(255, 255, 255, .075);
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.16) transparent;
}
.brand { padding: .2rem .45rem; }
.brand-mark {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 15px;
    background: linear-gradient(145deg, #f4ca72, #dda43d);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.55), 0 10px 26px rgba(0,0,0,.2);
}
.brand strong { font-size: 1.12rem; }
.brand small { margin-top: .08rem; color: #8caaa3; font-size: .7rem; }
.primary-nav { gap: .15rem; margin-top: 1.55rem; }
.nav-eyebrow { margin: 1rem .7rem .38rem; color: #658b83; font-size: .64rem; letter-spacing: .16em; }
.nav-item {
    position: relative;
    min-height: 43px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: #b8cec8;
    font-size: .84rem;
    transition: color .18s ease, background .18s ease, transform .18s ease;
}
.nav-item:hover { background: rgba(255,255,255,.055); color: #fff; transform: translateX(2px); }
.nav-item.active {
    border-color: rgba(255,255,255,.075);
    background: linear-gradient(90deg, rgba(67,196,179,.2), rgba(255,255,255,.07));
    box-shadow: inset 3px 0 #f1b955, 0 8px 22px rgba(0,0,0,.1);
}
.sidebar-footer { margin-top: 1.25rem; padding-top: 1rem; }

.topbar {
    padding-inline: clamp(1rem, 2.5vw, 2.5rem);
    background: color-mix(in srgb, var(--surface) 86%, transparent);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--line) 70%, transparent);
    backdrop-filter: blur(22px) saturate(145%);
}
.workspace-avatar, .user-avatar { border-radius: 13px; }
.workspace-switcher strong, .user-copy strong { font-size: .82rem; }
.topbar-actions { gap: .5rem; }
.icon-button, .notification-button, .topbar-search {
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.icon-button:hover, .notification-button:hover, .topbar-search:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--brand) 45%, var(--line));
    background: var(--surface-soft);
}
.topbar-create { min-height: 40px; padding-inline: .9rem; border-radius: 12px; box-shadow: 0 8px 22px color-mix(in srgb, var(--brand) 12%, transparent); }
.user-menu { max-width: 300px; }
.user-copy { min-width: 0; }
.user-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.main-content { width: 100%; max-width: 1600px; padding: clamp(1.4rem, 2.8vw, 2.7rem); }
.page-heading { margin-bottom: 1.6rem; }
.page-heading h1 { max-width: 820px; font-size: clamp(2rem, 3vw, 3rem); line-height: 1.07; }
.page-heading p:not(.eyebrow) { max-width: 760px; font-size: .94rem; line-height: 1.65; }
.eyebrow { margin-bottom: .45rem; font-size: .66rem; letter-spacing: .16em; }
.panel, .metric-card, .task-metric, .finance-metric {
    border-color: color-mix(in srgb, var(--line) 90%, transparent);
    box-shadow: var(--shadow-sm);
}
.panel { border-radius: var(--radius-md); padding: clamp(1.1rem, 1.8vw, 1.55rem); }
.panel-header h2 { font-size: 1.15rem; letter-spacing: -.025em; }
.panel-header p:not(.eyebrow), .panel-copy { margin-top: .3rem; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.metric-card { min-height: 156px; padding: 1.25rem; border-radius: var(--radius-md); }
.metric-label { font-size: .78rem; }
.metric-card p, .metric-footer { font-size: .72rem; }
.primary-button, .secondary-button { border-radius: 13px; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.primary-button:hover, .secondary-button:hover { transform: translateY(-1px); }
.text-link { color: var(--brand); font-size: .72rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.text-link:hover { color: var(--brand-strong); }
.empty-state { padding: 1.4rem; }
.empty-state strong { font-size: 1rem; }
.empty-state p { font-size: .76rem; line-height: 1.55; }
.empty-symbol { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 10%, transparent); }

/* Form ve veri yüzeyleri bütün modüllerde aynı okunabilir ölçüyü kullanır. */
.app-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.app-page select,
.app-page textarea {
    min-height: 46px;
    border-radius: 12px;
    color: var(--ink);
    font-size: .86rem;
}
.app-page textarea { min-height: 112px; }
.app-page textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: .8rem .9rem;
    overflow-x: hidden;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: linear-gradient(180deg, var(--surface), var(--surface-soft));
    box-shadow: inset 0 1px 2px rgba(17,44,39,.035);
    color: var(--ink);
    resize: vertical;
    line-height: 1.65;
    transition: height .12s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.app-page textarea:hover { border-color: color-mix(in srgb, var(--brand) 35%, var(--line)); }
.app-page textarea:focus { outline: 0; border-color: var(--brand); background: var(--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-soft) 80%, transparent), inset 0 1px 2px rgba(17,44,39,.025); }
.app-page textarea:disabled { cursor: not-allowed; opacity: .62; }
.calendar-cell.is-drop-target { border-color: var(--brand); background: color-mix(in srgb, var(--brand-soft) 70%, var(--surface)); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--brand) 24%, transparent); }
.calendar-chip[draggable="true"] { cursor: grab; }
.calendar-chip.is-dragging, .calendar-chip.is-saving { opacity: .42; }
.app-page textarea::placeholder,
.app-page input::placeholder { color: color-mix(in srgb, var(--muted) 74%, transparent); }
.textarea-counter {
    display: block;
    margin: .3rem .15rem 0 auto;
    color: var(--muted);
    font-size: .61rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
}
.app-page label { font-size: .76rem; }
.app-page table { width: 100%; border-spacing: 0; font-size: .78rem; }
.app-page th { color: var(--muted); font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.app-page th, .app-page td { padding-block: .85rem; }
.status-badge { border-radius: 999px; font-size: .61rem; }

/* Dashboard kahraman alanı: ana aksiyonları ve günün durumunu tek odakta toplar. */
.dashboard-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: end;
    min-height: 292px;
    margin-bottom: 1rem;
    padding: clamp(1.6rem, 3vw, 2.7rem);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 28px;
    background:
        radial-gradient(circle at 82% 15%, rgba(61, 203, 183, .2), transparent 19rem),
        linear-gradient(125deg, #0a302c 0%, #0a2623 55%, #071d1b 100%);
    color: #f4fbf8;
    box-shadow: 0 28px 65px rgba(8, 45, 39, .18);
}
.dashboard-hero-orbit { position: absolute; border: 1px solid rgba(255,255,255,.07); border-radius: 50%; pointer-events: none; }
.orbit-one { width: 430px; height: 430px; top: -270px; right: 10%; }
.orbit-two { width: 260px; height: 260px; right: -120px; bottom: -160px; }
.dashboard-hero-copy, .dashboard-hero-pulse { position: relative; z-index: 1; }
.dashboard-hero h1 { max-width: 760px; font-size: clamp(2.15rem, 4vw, 4rem); line-height: 1.02; letter-spacing: -.052em; }
.dashboard-hero-copy > p:not(.eyebrow) { max-width: 680px; margin-top: .85rem; color: #a9c3bd; font-size: .96rem; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1.4rem; }
.hero-primary { background: linear-gradient(135deg, #28ad9d, #0b887b); box-shadow: 0 12px 30px rgba(9,112,100,.35); }
.hero-primary:hover { background: linear-gradient(135deg, #38bfaf, #0b887b); }
.hero-secondary { display: inline-flex; min-height: 45px; align-items: center; gap: .55rem; padding: .7rem 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 13px; color: #e2f0ec; font-size: .78rem; font-weight: 750; text-decoration: none; }
.hero-secondary:hover { background: rgba(255,255,255,.07); }
.dashboard-hero-pulse { display: grid; gap: .55rem; padding: .65rem; border: 1px solid rgba(255,255,255,.1); border-radius: 20px; background: rgba(255,255,255,.055); box-shadow: inset 0 1px 0 rgba(255,255,255,.07); backdrop-filter: blur(15px); }
.dashboard-hero-pulse > div { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: .7rem; align-items: center; min-height: 58px; padding: .55rem .65rem; border-radius: 14px; }
.dashboard-hero-pulse > div + div { border-top: 1px solid rgba(255,255,255,.08); }
.pulse-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 13px; color: #7de0d1; background: rgba(45,190,169,.13); font-weight: 900; }
.pulse-icon.alert { color: #f4ca72; background: rgba(241,185,85,.12); }
.dashboard-hero-pulse small, .dashboard-hero-pulse strong { display: block; }
.dashboard-hero-pulse small { color: #88a9a2; font-size: .63rem; }
.dashboard-hero-pulse strong { margin-top: .08rem; overflow: hidden; color: #f1f8f6; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }

/* KPI kartlarında renk yalnız anlam taşır; metin kontrastı her temada korunur. */
.home-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-metrics .metric-card { position: relative; overflow: hidden; }
.home-metrics .metric-card::before { position: absolute; inset: auto 0 0; height: 3px; content: ""; background: var(--card-tone, var(--brand)); }
.home-metrics .metric-card::after { position: absolute; width: 110px; height: 110px; right: -55px; top: -55px; border-radius: 50%; background: color-mix(in srgb, var(--card-tone, var(--brand)) 9%, transparent); content: ""; }
.metric-income { --card-tone: var(--success); }
.metric-expense { --card-tone: var(--danger); }
.metric-contacts { --card-tone: #327bc4; }
.metric-agenda { --card-tone: #a56bd6; }
.home-metrics .metric-icon { position: relative; z-index: 1; background: color-mix(in srgb, var(--card-tone) 11%, var(--surface)); color: var(--card-tone); }
.home-metrics .metric-value { margin-top: 1rem; font-size: clamp(1.7rem, 2.5vw, 2.3rem); }
.metric-footer { display: flex; justify-content: space-between; gap: .5rem; margin-top: .35rem; color: var(--muted); }
.metric-footer span:last-child { color: var(--card-tone); font-weight: 800; }

.home-insight-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(310px, .65fr);
    gap: 1rem;
    margin-top: 1rem;
    align-items: start;
}
.cashflow-panel, .quick-actions-panel { min-width: 0; }
.cashflow-content { display: grid; grid-template-columns: minmax(0, 1fr) 176px; gap: 1.2rem; margin-top: 1.1rem; }
.cashflow-chart { position: relative; display: flex; gap: clamp(.3rem, .8vw, .8rem); height: 270px; padding: 10px .35rem 0; overflow: hidden; border-bottom: 1px solid var(--line); }
.cashflow-grid-lines { position: absolute; inset: 10px 0 28px; display: grid; align-content: space-between; pointer-events: none; }
.cashflow-grid-lines i { width: 100%; border-top: 1px dashed var(--line); }
.cashflow-column { position: relative; z-index: 1; display: grid; min-width: 18px; height: 100%; flex: 1; grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, 1fr) 25px; gap: 3px; align-items: end; }
.cashflow-column > span { width: 100%; min-height: 5px; border-radius: 5px 5px 2px 2px; transition: filter .18s ease, transform .18s ease; }
.cashflow-column:hover > span { filter: saturate(1.25); transform: scaleX(1.08); }
.income-bar { height: var(--income-height); background: linear-gradient(180deg, #41c6a0, #168365); }
.expense-bar { height: var(--expense-height); background: linear-gradient(180deg, #f48c82, #c43f36); }
.cashflow-column small { grid-column: 1 / -1; align-self: end; overflow: hidden; color: var(--muted); font-size: .54rem; text-align: center; white-space: nowrap; }
.cashflow-summary { display: grid; align-content: start; justify-items: center; gap: .9rem; padding: 1rem; border-radius: 17px; background: var(--surface-soft); }
.savings-gauge { display: grid; width: 112px; height: 112px; place-items: center; border-radius: 50%; background: conic-gradient(var(--brand) calc(var(--gauge-value) * 1%), var(--line) 0); }
.savings-gauge::before { width: 84px; height: 84px; border-radius: 50%; background: var(--surface); content: ""; }
.savings-gauge > span { position: absolute; text-align: center; }
.savings-gauge strong, .savings-gauge small { display: block; }
.savings-gauge strong { font-size: 1.25rem; letter-spacing: -.04em; }
.savings-gauge small { color: var(--muted); font-size: .58rem; }
.chart-legend { display: flex; gap: .8rem; color: var(--muted); font-size: .62rem; }
.chart-legend span { display: flex; align-items: center; gap: .3rem; }
.chart-legend i { width: 7px; height: 7px; border-radius: 50%; }
.income-dot { background: var(--success); }
.expense-dot { background: var(--danger); }
.cashflow-summary dl { display: grid; width: 100%; gap: .55rem; margin: 0; }
.cashflow-summary dl > div { display: flex; justify-content: space-between; gap: .5rem; padding-top: .55rem; border-top: 1px solid var(--line); font-size: .64rem; }
.cashflow-summary dt { color: var(--muted); }
.cashflow-summary dd { margin: 0; font-weight: 800; }
.cashflow-empty { display: grid; grid-template-columns: minmax(160px, .8fr) minmax(180px, 1fr); gap: 1rem; align-items: center; min-height: 270px; padding: 1.2rem; border: 1px dashed var(--line); border-radius: 17px; background: linear-gradient(135deg, var(--surface-soft), transparent); }
.cashflow-empty > .secondary-button { grid-column: 2; justify-self: start; }
.cashflow-empty strong { font-size: .92rem; }
.cashflow-empty p { margin-top: .35rem; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.empty-chart-visual { display: flex; height: 140px; gap: .4rem; align-items: end; padding: 1rem; border-bottom: 1px solid var(--line); }
.empty-chart-visual i { flex: 1; height: var(--bar-height); border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 55%, var(--surface)), color-mix(in srgb, var(--brand) 20%, var(--surface))); }

.quick-actions-panel .quick-action-grid { grid-template-columns: 1fr; margin-top: 1rem; }
.quick-actions-panel .quick-action-grid a { min-height: 62px; padding: .65rem .75rem; background: transparent; }
.quick-actions-panel .quick-action-grid a:hover { transform: translateX(3px); }
.quick-action-grid strong { font-size: .74rem; }
.quick-action-grid small { font-size: .62rem; }

.dashboard-detail-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .7fr); gap: 1rem; margin-top: 1rem; align-items: start; }
.dashboard-side-stack { display: grid; gap: 1rem; min-width: 0; }
.activity-row { grid-template-columns: 42px minmax(140px, 1fr) auto auto; padding-block: .86rem; }
.activity-icon.income { color: var(--success); background: color-mix(in srgb, var(--success) 11%, var(--surface)); }
.activity-icon.expense { color: var(--danger); background: color-mix(in srgb, var(--danger) 10%, var(--surface)); }
.activity-copy strong, .activity-amount { font-size: .78rem; }
.activity-copy small, .balance-row small { font-size: .64rem; }
.compact-notification strong { font-size: .74rem; }
.compact-notification small { font-size: .62rem; }

.setup-panel-modern { margin-top: 1rem; }
.setup-progress-copy { min-width: 95px; text-align: right; }
.setup-progress-copy strong, .setup-progress-copy span { display: block; }
.setup-progress-copy strong { color: var(--brand); font-size: 1.25rem; }
.setup-progress-copy span { color: var(--muted); font-size: .6rem; }
.setup-progress-track { height: 7px; margin-top: 1rem; overflow: hidden; border-radius: 999px; background: var(--surface-soft); }
.setup-progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), #55caa9); }
.setup-panel-modern .setup-list { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .6rem; margin-top: 1rem; }
.setup-panel-modern .setup-list li { position: relative; display: grid; grid-template-columns: 32px minmax(0,1fr); gap: .6rem; align-items: start; padding: .85rem; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.setup-panel-modern .setup-list li > a { grid-column: 2; margin: .15rem 0 0; }
.setup-panel-modern .setup-list p { margin-top: .18rem; line-height: 1.45; }

/* Geniş tabletlerde içerik tek kolona iner; navigasyon masaüstü yoğunluğunu korur. */
@media (max-width: 1260px) {
    .home-insight-grid { grid-template-columns: 1fr; }
    .quick-actions-panel .quick-action-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .quick-actions-panel .quick-action-grid a:hover { transform: translateY(-2px); }
    .dashboard-detail-grid { grid-template-columns: 1fr; }
    .dashboard-side-stack { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .setup-panel-modern .setup-list { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

@media (max-width: 1080px) {
    .dashboard-hero { grid-template-columns: 1fr; }
    .dashboard-hero-pulse { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .dashboard-hero-pulse > div { grid-template-columns: 36px minmax(0,1fr); }
    .dashboard-hero-pulse > div + div { border-top: 0; border-left: 1px solid rgba(255,255,255,.08); }
    .pulse-icon { width: 35px; height: 35px; }
    .home-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* 960 px altında yan menü çekmeceye dönüşür; içerik ve arka plan aynı anda kaymaz. */
@media (max-width: 960px) {
    .sidebar { transform: translateX(-102%); transition: transform .24s ease; box-shadow: var(--shadow-lg); }
    .sidebar.open { transform: translateX(0); }
    .sidebar-backdrop:not([hidden]) { position: fixed; inset: 0; z-index: 25; display: block; border: 0; background: rgba(5,20,18,.6); backdrop-filter: blur(4px); }
    body.menu-open { overflow: hidden; }
    .app-stage { margin-left: 0; }
    .mobile-menu { display: grid; }
    .workspace-switcher { display: none; }
}

@media (max-width: 760px) {
    .dashboard-hero { min-height: 0; border-radius: 22px; }
    .dashboard-hero h1 { font-size: clamp(2rem, 9vw, 3rem); }
    .dashboard-hero-pulse { grid-template-columns: 1fr; }
    .dashboard-hero-pulse > div + div { border-top: 1px solid rgba(255,255,255,.08); border-left: 0; }
    .cashflow-content { grid-template-columns: 1fr; }
    .cashflow-summary { grid-template-columns: auto 1fr; align-items: center; justify-items: start; }
    .cashflow-summary dl { grid-column: 1 / -1; }
    .cashflow-empty { grid-template-columns: 1fr; text-align: center; }
    .cashflow-empty > .secondary-button { grid-column: 1; justify-self: center; }
    .quick-actions-panel .quick-action-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .dashboard-side-stack { grid-template-columns: 1fr; }
    .setup-panel-modern .setup-list { grid-template-columns: 1fr 1fr; }
    .activity-row { grid-template-columns: 40px minmax(0,1fr) auto; }
    .activity-row .status-badge { display: none; }
}

@media (max-width: 560px) {
    .main-content { padding: 1rem; }
    .topbar { padding-inline: .75rem; }
    .topbar-actions { gap: .35rem; }
    .topbar-search, .icon-button, .notification-button { width: 38px; padding-inline: 0; }
    .user-menu { margin-left: 0; padding-left: .35rem; }
    .user-menu form { display: none; }
    .dashboard-hero { padding: 1.25rem; }
    .hero-actions > * { width: 100%; justify-content: center; }
    .home-metrics { grid-template-columns: 1fr; }
    .home-metrics .metric-card { min-height: 140px; }
    .cashflow-chart { gap: .25rem; height: 230px; }
    .cashflow-column small { writing-mode: vertical-rl; transform: rotate(180deg); }
    .quick-actions-panel .quick-action-grid { grid-template-columns: 1fr; }
    .setup-panel-modern .setup-list { grid-template-columns: 1fr; }
    .setup-panel-modern .panel-header { align-items: flex-start; }
    .activity-row { grid-template-columns: 38px minmax(0,1fr); }
    .activity-amount { grid-column: 2; }
}

/* ================================================================
   Faz 23 · QHD / ultra geniş ekran ve yaşayan arayüz katmanı
   Ölçek transform ile değil gerçek ölçülerle büyütülür; böylece sabit
   navigasyon, tablolar ve formlar her çözünürlükte keskin kalır.
   ================================================================ */

/* MVC sayfa değişimlerinde SPA benzeri, fakat navigasyonu engellemeyen ilerleme çizgisi. */
.route-progress {
    position: fixed;
    inset: 0 0 auto;
    z-index: 2000;
    height: 3px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
}
.route-progress span {
    display: block;
    width: 100%;
    height: 100%;
    transform: scaleX(.04);
    transform-origin: left;
    background: linear-gradient(90deg, #f0b854, #37c7b4 52%, #65dfc8);
    box-shadow: 0 0 18px rgba(55,199,180,.7);
}
.route-progress[data-state="loading"] { opacity: 1; }
.route-progress[data-state="loading"] span { animation: route-loading 8s cubic-bezier(.12,.68,.18,1) forwards; }
.route-progress[data-state="complete"] { opacity: 1; }
.route-progress[data-state="complete"] span { transform: scaleX(1); transition: transform .18s ease; }
.route-progress[data-state="idle"] { opacity: 0; }
@keyframes route-loading { from { transform: scaleX(.04); } to { transform: scaleX(.88); } }

/* Uygulama arka planındaki ışık lekeleri geniş boşlukları bilinçli bir sahneye dönüştürür. */
.app-stage {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--brand) 8%, transparent), transparent 24rem),
        radial-gradient(circle at 12% 74%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 28rem),
        var(--bg);
}
.main-content { position: relative; z-index: 1; }
.topbar { transition: box-shadow .22s ease, background .22s ease, border-color .22s ease; }
.topbar.is-scrolled {
    border-bottom-color: color-mix(in srgb, var(--brand) 18%, var(--line));
    background: color-mix(in srgb, var(--surface) 93%, transparent);
    box-shadow: 0 12px 35px rgba(12,54,48,.09);
}

/* Tüm modül başlıkları aynı güçlü hiyerarşiye, fakat tema uyumlu renklere sahip olur. */
.app-page .page-heading {
    position: relative;
    min-height: 176px;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: clamp(1.35rem, 2.4vw, 2.25rem);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--brand) 16%, var(--line));
    border-radius: clamp(20px, 2vw, 28px);
    background:
        radial-gradient(circle at 90% 5%, color-mix(in srgb, var(--brand) 13%, transparent), transparent 17rem),
        linear-gradient(135deg, color-mix(in srgb, var(--surface) 96%, var(--brand)), var(--surface));
    box-shadow: 0 18px 55px rgba(14,70,61,.08);
}
.app-page .page-heading::before,
.app-page .page-heading::after {
    position: absolute;
    border: 1px solid color-mix(in srgb, var(--brand) 12%, transparent);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}
.app-page .page-heading::before { width: 260px; height: 260px; right: -105px; top: -150px; }
.app-page .page-heading::after { width: 120px; height: 120px; right: 14%; bottom: -88px; }
.app-page .page-heading > * { position: relative; z-index: 1; }
.app-page .page-heading h1 { text-wrap: balance; }
.app-page .page-heading .heading-actions,
.app-page .page-heading > .primary-button,
.app-page .page-heading > .secondary-button { flex: 0 0 auto; }

/* Veri yüzeyleri, kartlar ve boş durumlar bütün modüllerde aynı görsel kaliteyi kullanır. */
.app-page .panel,
.app-page .metric-card,
.app-page .task-metric,
.app-page .finance-metric,
.app-page .billing-metric,
.app-page .planning-metrics > article {
    position: relative;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.app-page .panel::before {
    position: absolute;
    inset: -1px 12% auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--brand) 24%, transparent), transparent);
    content: "";
    pointer-events: none;
}
.app-page .empty-state {
    border-radius: calc(var(--radius-md) - 4px);
    background: radial-gradient(circle at 50% 15%, color-mix(in srgb, var(--brand) 6%, transparent), transparent 11rem);
}
.app-page .empty-symbol { animation: empty-symbol-float 4s ease-in-out infinite; }
@keyframes empty-symbol-float { 50% { transform: translateY(-4px); } }

@media (hover: hover) {
    .app-page .panel:hover { border-color: color-mix(in srgb, var(--brand) 22%, var(--line)); box-shadow: 0 16px 42px rgba(14,62,54,.1); }
    .app-page .metric-card:hover,
    .app-page .task-metric:hover,
    .app-page .finance-metric:hover,
    .app-page .billing-metric:hover,
    .app-page .planning-metrics > article:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--brand) 27%, var(--line)); box-shadow: 0 18px 42px rgba(14,62,54,.11); }
}

/* Tablo ve form ritmi; uzun veri listeleri fare, klavye ve dokunmada rahat taranır. */
.app-page :is(.responsive-table, .finance-table, .report-monthly-table) tbody tr { transition: background .16s ease; }
.app-page :is(.responsive-table, .finance-table, .report-monthly-table) tbody tr:hover { background: color-mix(in srgb, var(--brand) 5%, var(--surface)); }
.app-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.app-page select:focus,
.app-page textarea:focus {
    border-color: color-mix(in srgb, var(--brand) 65%, var(--line));
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 11%, transparent);
}
.task-filter > div,
.task-filter :is(input, select),
.billing-search input,
.planning-search input,
.finance-filter :is(input, select) { width: 100%; min-width: 0; }
@media (min-width: 901px) {
    .task-filter { grid-template-columns: minmax(170px, 240px) minmax(320px, 1fr) auto; }
}
.app-page :is(.primary-button, .secondary-button, .ghost-button, .topbar-create, .quick-action-grid a) { position: relative; overflow: hidden; }
.button-ripple {
    position: absolute;
    z-index: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255,255,255,.38);
    pointer-events: none;
    transform: translate(-50%,-50%) scale(0);
    animation: button-ripple .62s ease-out;
}
@keyframes button-ripple { to { opacity: 0; transform: translate(-50%,-50%) scale(18); } }

/* JavaScript yalnız animasyonu zenginleştirir; gecikme olsa bile 1.4 saniyelik emniyet açılışı vardır. */
.ui-reveal { opacity: 0; transform: translateY(14px); }
.ui-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
    transition: opacity .48s ease var(--reveal-delay, 0ms), transform .48s cubic-bezier(.2,.72,.2,1) var(--reveal-delay, 0ms);
}

/* Önceki fazlardan kalan aşırı küçük modül metinlerini erişilebilir ortak tabana yükseltir. */
.app-page :is(.task-metric small, .task-filter label, .finance-filter label, .compact-form label,
    .finance-metric small, .billing-metric small, .planning-metrics small, .billing-search label,
    .planning-search label, .calendar-legend, .report-period-chip, .search-filter-chip) { font-size: .71rem; }
.app-page :is(.task-metric span, .task-column header p, .task-card-meta, .task-description,
    .task-facts dd, .task-documents a, .task-status-form select, .task-status-form button,
    .finance-metric p, .finance-table td > small, .contact-card header p, .contact-details dd,
    .billing-metric span, .bill-card header p, .bill-card dd, .subscription-card header p,
    .planning-metrics span, .budget-card header p, .goal-card header p, .obligation-card header p,
    .notification-preference-card small, .panel-caption, .muted-copy, .form-hint) { font-size: .68rem; line-height: 1.5; }
.app-page :is(.task-facts dt, .task-status-form label, .contact-details dt, .bill-card dt,
    .bill-payment label, .budget-insight small, .budget-lines span small) { font-size: .62rem; }
.app-page :is(.task-column h2, .task-card h3, .bill-card h3, .subscription-card h3,
    .budget-card h3, .goal-card h3, .obligation-card h3) { font-size: .84rem; }
.app-page :is(.responsive-table, .finance-table, .report-monthly-table) { font-size: .74rem; }
.app-page :is(.responsive-table, .finance-table, .report-monthly-table) th { font-size: .65rem; }
.app-page .status-badge { font-size: .67rem; }
.app-page :is(.mini-empty, .currency-plan header span, .currency-plan small, .currency-plan footer,
    .planning-section .section-header a, .planning-columns .section-header a,
    .billing-side .section-header a, .calendar-dayname, .calendar-chip, .calendar-day-copy small,
    .calendar-time, .report-breakdown-list small, .report-party-list small,
    .search-result-copy small, .notification-item time, .compact-notification small,
    .balance-row small, .activity-copy small) { font-size: .68rem; line-height: 1.5; }
.app-page .mini-empty { min-height: 88px; padding: 1.2rem; }

/* Kahraman alanının ışığı işaretçiyi izler; veri ve metin katmanları sabit kalır. */
.dashboard-hero {
    --hero-pointer-x: 82%;
    --hero-pointer-y: 15%;
    background:
        radial-gradient(circle at var(--hero-pointer-x) var(--hero-pointer-y), rgba(70,220,197,.24), transparent 20rem),
        linear-gradient(125deg, #0a302c 0%, #0a2623 55%, #071d1b 100%);
    transition: box-shadow .25s ease;
}
.dashboard-hero:hover { box-shadow: 0 32px 78px rgba(8,45,39,.24); }

/* Vitrin alt sayfaları da panel kadar canlıdır; içerik kartı bütün anonim rotalarda ortak kullanılır. */
.vitrin-main {
    display: flow-root;
    background:
        radial-gradient(circle at 86% 6%, color-mix(in srgb, var(--brand) 8%, transparent), transparent 28rem),
        radial-gradient(circle at 8% 62%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 25rem);
}
.vitrin-feature-hero {
    position: relative;
    width: min(calc(100% - 2rem), 1050px);
    margin: clamp(1.5rem, 4vw, 3.5rem) auto 1rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--brand) 16%, var(--line));
    border-radius: clamp(22px, 2.4vw, 32px);
    background:
        radial-gradient(circle at 88% 4%, color-mix(in srgb, var(--brand) 15%, transparent), transparent 19rem),
        linear-gradient(135deg, color-mix(in srgb, var(--surface) 97%, var(--brand)), var(--surface));
    box-shadow: 0 22px 65px rgba(14,70,61,.09);
}
.vitrin-feature-hero::after {
    position: absolute;
    width: 260px;
    height: 260px;
    right: -120px;
    bottom: -180px;
    border: 1px solid color-mix(in srgb, var(--brand) 16%, transparent);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}
.vitrin-feature-hero > * { position: relative; z-index: 1; }
.vitrin-feature-hero h1 { text-wrap: balance; }
.vitrin-module-card { position: relative; overflow: hidden; }
.vitrin-module-card::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: linear-gradient(180deg, var(--brand), color-mix(in srgb, var(--accent) 65%, var(--brand)));
    content: "";
    opacity: .72;
}
.vitrin-highlight-card { transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
@media (hover: hover) {
    .vitrin-highlight-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--brand) 35%, var(--line)); box-shadow: var(--shadow-sm); }
}

/* Büyük masaüstünde vitrin de küçük bir merkez kolonuna sıkışmaz. */
@media (min-width: 1800px) {
    html { font-size: 17px; }
    :root {
        --sidebar-width: 294px;
        --topbar-height: 78px;
        --radius-md: 20px;
        --radius-lg: 30px;
    }
    .sidebar { padding: 1.5rem 1.1rem 1.15rem; }
    .brand-mark { width: 46px; height: 46px; }
    .nav-eyebrow { font-size: .69rem; }
    .nav-item { min-height: 47px; font-size: .9rem; }
    .sidebar-footer strong { font-size: .8rem; }
    .sidebar-footer small { font-size: .72rem; }
    .topbar { padding-inline: clamp(1.8rem, 2.8vw, 3.4rem); }
    .main-content { max-width: 1800px; padding: 3rem clamp(2.5rem, 3.5vw, 4rem); }
    .app-page .page-heading { min-height: 192px; }
    .app-page .page-heading h1 { max-width: 980px; }
    .panel { padding: clamp(1.35rem, 1.8vw, 1.8rem); }
    .metric-card { min-height: 168px; }
    .dashboard-hero { min-height: 324px; }
    .task-board { grid-template-columns: repeat(6, minmax(300px, 1fr)); }
    .cashflow-chart { height: 292px; }
    .vitrin-header-inner,
    .vitrin-hero,
    .vitrin-section,
    .vitrin-module-grid.full-tour,
    .vitrin-highlight-grid,
    .vitrin-footer-inner,
    .vitrin-footer-legal { max-width: 1480px; }
    .vitrin-feature-section { max-width: 1360px; }
    .vitrin-feature-hero { max-width: 1050px; }
    .vitrin-section-heading { max-width: 850px; }
}

/* 27 inç QHD ve ultra geniş ekranlarda içerik ekranın yaklaşık %84'ünü kullanır. */
@media (min-width: 2300px) {
    html { font-size: 18px; }
    :root {
        --sidebar-width: 320px;
        --topbar-height: 84px;
        --radius-md: 22px;
        --radius-lg: 32px;
    }
    .sidebar { padding: 1.65rem 1.25rem 1.25rem; }
    .brand-mark { width: 50px; height: 50px; border-radius: 15px; }
    .primary-nav { margin-top: 2.1rem; }
    .nav-eyebrow { margin-top: 1.1rem; font-size: .7rem; }
    .nav-item { min-height: 49px; padding-inline: .85rem; font-size: .9rem; }
    .topbar { padding-inline: 3rem; }
    .main-content { max-width: 2140px; padding: 3.25rem 4rem 4rem; }
    .app-page .page-heading { min-height: 206px; padding: 2.45rem; }
    .app-page .page-heading h1 { max-width: 1080px; font-size: clamp(2.35rem, 2.8vw, 3.35rem); }
    .dashboard-hero { min-height: 350px; padding: 3rem; grid-template-columns: minmax(0, 1.35fr) minmax(390px, .65fr); }
    .dashboard-hero h1 { max-width: 900px; }
    .home-insight-grid { grid-template-columns: minmax(0, 1.8fr) minmax(360px, .62fr); }
    .dashboard-detail-grid { grid-template-columns: minmax(0, 1.6fr) minmax(360px, .62fr); }
    .task-board { grid-template-columns: repeat(6, minmax(320px, 1fr)); }
    .vitrin-header-inner,
    .vitrin-hero,
    .vitrin-section,
    .vitrin-module-grid.full-tour,
    .vitrin-highlight-grid,
    .vitrin-footer-inner,
    .vitrin-footer-legal { max-width: 1760px; }
    .vitrin-feature-section { max-width: 1580px; }
}

/* ==========================================================================
   Faz 28 — Sade günlük çalışma kabuğu
   Navigasyon ve yüzeyler gösterişten arındırılır; ana ekran en sık kullanılan
   not, fatura, görev ve takvim akışlarını ilk odakta toplar.
   ========================================================================== */
:root {
    --bg: #f5f7f5;
    --surface: #ffffff;
    --surface-soft: #f6f8f6;
    --surface-strong: #15342f;
    --ink: #17241f;
    --muted: #6c7873;
    --line: #e2e8e4;
    --brand: #167c70;
    --brand-strong: #0d665d;
    --brand-soft: #e4f3ef;
    --accent: #c88a32;
    --danger: #b5473f;
    --success: #247b5d;
    --shadow-sm: 0 1px 2px rgba(18, 43, 36, .035), 0 8px 24px rgba(18, 43, 36, .035);
    --shadow-lg: 0 18px 48px rgba(18, 43, 36, .14);
    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --sidebar-width: 238px;
    --topbar-height: 64px;
}

[data-theme="dark"] {
    --bg: #0d1512;
    --surface: #131e1a;
    --surface-soft: #18241f;
    --surface-strong: #dcefe9;
    --ink: #edf4f1;
    --muted: #9ba9a3;
    --line: #293832;
    --brand: #57b9aa;
    --brand-strong: #78cfc2;
    --brand-soft: #193b34;
    --danger: #ec8077;
    --success: #69c8a3;
}

body.app-page { background: var(--bg); }
.app-stage { background: var(--bg); }

.subscription-card-shell { display: grid; gap: .35rem; }
.subscription-card-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    margin: 0;
    padding-inline: .35rem;
    position: relative;
    z-index: 1;
}
.subscription-card-actions form { margin: 0; }
.subscription-card-actions .text-button { padding: .28rem .35rem; cursor: pointer; }
.enrollment-list { display: grid; margin-top: .65rem; }
.enrollment-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, .55fr) auto;
    gap: .8rem;
    align-items: center;
    padding: .75rem 0;
    border-top: 1px solid var(--line);
}
.enrollment-row strong, .enrollment-row small { display: block; }
.enrollment-row strong { font-size: .76rem; }
.enrollment-row small { margin-top: .12rem; color: var(--muted); font-size: .62rem; }
.enrollment-row form { margin: 0; }
@media (max-width: 680px) {
    .enrollment-row { grid-template-columns: 1fr; }
    .enrollment-row .card-actions { justify-content: flex-start; }
}

/* İnce, açık renkli kabuk; aynı işin ekleme bağlantıları menüyü tekrar doldurmaz. */
.sidebar {
    padding: 1rem .8rem .8rem;
    background: var(--surface);
    color: var(--ink);
    border-right: 1px solid var(--line);
    scrollbar-color: color-mix(in srgb, var(--muted) 32%, transparent) transparent;
}
.brand { gap: .7rem; padding: .15rem .45rem .65rem; }
.brand-mark {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 10px;
    background: var(--brand);
    color: #fff;
    font-size: 1rem;
    box-shadow: none;
}
.brand strong { color: var(--ink); font-size: 1.03rem; letter-spacing: -.025em; }
.brand small { margin-top: 0; color: var(--muted); font-size: .66rem; letter-spacing: .015em; }
.primary-nav { gap: .08rem; margin-top: .45rem; }
.nav-eyebrow { margin: .85rem .65rem .28rem; color: var(--muted); font-size: .61rem; letter-spacing: .11em; }
.nav-item {
    min-height: 38px;
    gap: .65rem;
    padding: .48rem .65rem;
    border: 1px solid transparent;
    border-radius: 9px;
    color: color-mix(in srgb, var(--ink) 82%, var(--muted));
    font-size: .78rem;
    transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.nav-item > span:first-child { width: 18px; color: var(--muted); font-size: .9rem; }
.nav-item:hover { transform: none; background: var(--surface-soft); color: var(--ink); }
.nav-item.active {
    border-color: color-mix(in srgb, var(--brand) 12%, var(--line));
    background: var(--brand-soft);
    color: var(--brand-strong);
    box-shadow: none;
}
.nav-item.active > span:first-child { color: var(--brand); }
.nav-more { margin-top: .75rem; padding-top: .55rem; border-top: 1px solid var(--line); }
.nav-more summary {
    display: grid;
    min-height: 38px;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    padding: .48rem .65rem;
    border-radius: 9px;
    color: color-mix(in srgb, var(--ink) 82%, var(--muted));
    cursor: pointer;
    list-style: none;
}
.nav-more summary::-webkit-details-marker { display: none; }
.nav-more summary:hover { background: var(--surface-soft); }
.nav-more summary > span { color: var(--muted); text-align: center; transition: transform .15s ease; }
.nav-more[open] summary > span { transform: rotate(45deg); }
.nav-more summary strong { font-size: .76rem; font-weight: 600; }
.nav-more summary small { color: var(--muted); font-size: .52rem; }
.nav-more > div { display: grid; gap: .08rem; margin-top: .15rem; padding-left: .35rem; }
.sidebar-footer { margin-top: auto; padding: .75rem .55rem .15rem; border-top-color: var(--line); }
.sidebar-footer strong { color: var(--ink); font-size: .69rem; }
.sidebar-footer small { color: var(--muted); font-size: .62rem; }

.topbar {
    padding-inline: clamp(.85rem, 2vw, 1.6rem);
    background: color-mix(in srgb, var(--surface) 96%, transparent);
    border-bottom-color: var(--line);
    box-shadow: none;
    backdrop-filter: blur(18px);
}
.topbar.is-scrolled { border-bottom-color: var(--line); background: color-mix(in srgb, var(--surface) 98%, transparent); box-shadow: 0 6px 18px rgba(18,43,36,.045); }
.workspace-avatar { width: 32px; height: 32px; border-radius: 9px; }
.workspace-switcher { gap: .55rem; }
.workspace-switcher small, .user-copy small { font-size: .62rem; }
.workspace-switcher strong, .user-copy strong { font-size: .74rem; }
.topbar-actions { gap: .4rem; }
.icon-button, .notification-button { width: 36px; height: 36px; border-radius: 9px; box-shadow: none; }
.topbar-create { min-height: 36px; padding: .48rem .7rem; border-radius: 9px; box-shadow: none; cursor: pointer; list-style: none; }
.topbar-create::-webkit-details-marker,
.account-menu-summary::-webkit-details-marker,
.page-guide summary::-webkit-details-marker { display: none; }
.topbar-create-menu, .account-menu { position: relative; }
.topbar-create-menu[open] .topbar-create { background: color-mix(in srgb, var(--brand-soft) 78%, var(--surface)); }
.account-menu { margin-left: .2rem; }
.account-menu-summary {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: .55rem;
    padding-left: .55rem;
    border-left: 1px solid var(--line);
    cursor: pointer;
    list-style: none;
}
.account-menu-summary .user-avatar { width: 34px; height: 34px; border-radius: 9px; }
.account-menu-summary .user-copy { max-width: 190px; min-width: 0; }
.account-menu-summary .user-copy strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-menu-chevron { color: var(--muted); font-size: .7rem; transition: transform .15s ease; }
.account-menu[open] .account-menu-chevron { transform: rotate(180deg); }
.topbar-popover {
    position: absolute;
    z-index: 80;
    top: calc(100% + .55rem);
    right: 0;
    display: grid;
    width: 260px;
    padding: .4rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: var(--shadow-lg);
}
.topbar-popover a,
.topbar-popover button {
    display: grid;
    width: 100%;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: .6rem;
    align-items: center;
    padding: .58rem .62rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    text-align: left;
    text-decoration: none;
}
.topbar-popover a:hover, .topbar-popover button:hover { background: var(--surface-soft); }
.topbar-popover a > span:first-child, .topbar-popover button > span:first-child { color: var(--brand); text-align: center; }
.topbar-popover strong, .topbar-popover small { display: block; }
.topbar-popover strong { font-size: .72rem; }
.topbar-popover small { margin-top: .08rem; color: var(--muted); font-size: .62rem; }
.topbar-popover form { margin: .15rem 0 0; padding-top: .15rem; border-top: 1px solid var(--line); }

/* Açıklama gerektiğinde açılır; her sayfanın üstünde kalıcı bir bilgi kartı oluşturmaz. */
.page-guide {
    display: block;
    margin: 0 0 .8rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.page-guide summary { display: flex; align-items: center; gap: .55rem; width: fit-content; color: var(--muted); cursor: pointer; list-style: none; }
.page-guide-icon { width: 22px; height: 22px; border-radius: 7px; font-size: .65rem; }
.page-guide summary strong { color: var(--ink); font-size: .68rem; }
.page-guide-prompt { color: var(--muted); font-size: .66rem; }
.page-guide[open] summary { color: var(--brand); }
.page-guide > p { max-width: 860px; margin: .5rem 0 0 1.8rem; padding: .65rem .75rem; border-left: 2px solid var(--brand-soft); color: var(--muted); font-size: .7rem; line-height: 1.55; }

/* Ortak yüzeyler ve başlıklar tüm modüllerde daha narin bir ritim kullanır. */
.main-content { max-width: 1360px; padding: clamp(1rem, 2vw, 1.7rem); }
.app-page .page-heading {
    min-height: 0;
    align-items: flex-end;
    margin-bottom: 1rem;
    padding: .3rem 0 1rem;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.app-page .page-heading::before, .app-page .page-heading::after { display: none; }
.app-page .page-heading h1 { max-width: 760px; font-size: clamp(1.45rem, 2vw, 2rem); line-height: 1.16; }
.app-page .page-heading p:not(.eyebrow) { max-width: 700px; font-size: .82rem; line-height: 1.55; }
.eyebrow { margin-bottom: .28rem; font-size: .61rem; letter-spacing: .12em; }
.panel, .metric-card, .task-metric, .finance-metric { border-color: var(--line); box-shadow: var(--shadow-sm); }
.panel { padding: .9rem; border-radius: 12px; }
.app-page .form-page { width: min(100%, 840px); }
.app-page .form-page-header { margin-bottom: 1rem; }
.app-page .form-page-header h1 { font-size: clamp(1.5rem, 2.2vw, 2.05rem); line-height: 1.16; }
.app-page .entity-form { padding: clamp(1rem, 2vw, 1.45rem); }
.metric-card { min-height: 128px; padding: 1rem; border-radius: var(--radius-md); }
.app-page .panel::before { display: none; }
.primary-button, .secondary-button, .ghost-button { min-height: 40px; border-radius: 9px; box-shadow: none; font-size: .76rem; }
.primary-button:hover, .secondary-button:hover { transform: none; }
.app-page input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.app-page select,
.app-page textarea { min-height: 42px; border-radius: 9px; font-size: .8rem; }
@media (hover: hover) {
    .app-page .panel:hover { transform: none; border-color: color-mix(in srgb, var(--brand) 16%, var(--line)); box-shadow: var(--shadow-sm); }
    .app-page .metric-card:hover,
    .app-page .task-metric:hover,
    .app-page .finance-metric:hover,
    .app-page .billing-metric:hover,
    .app-page .planning-metrics > article:hover { transform: none; border-color: color-mix(in srgb, var(--brand) 20%, var(--line)); box-shadow: var(--shadow-sm); }
}

/* Ana sayfa: önce günlük yakalama, sonra yalnız gerekli özetler. */
.home-dashboard { display: grid; gap: .85rem; }
.home-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    padding: .4rem 0 .65rem;
}
.home-date { margin-bottom: .25rem; color: var(--brand); font-size: .66rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.home-intro h1 { font-size: clamp(1.85rem, 3vw, 2.65rem); line-height: 1.08; letter-spacing: -.045em; }
.home-intro > div:first-child > p:last-child { max-width: 680px; margin-top: .45rem; color: var(--muted); font-size: .82rem; }
.home-intro-status { display: flex; flex: 0 0 auto; gap: .4rem; }
.home-intro-status a {
    display: grid;
    min-width: 112px;
    padding: .6rem .75rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    text-decoration: none;
}
.home-intro-status strong { color: var(--brand-strong); font-size: 1rem; }
.home-intro-status span { color: var(--muted); font-size: .61rem; }
.home-service-banner { margin: 0; }

.quick-capture { display: grid; gap: .9rem; padding: 1rem; }
.quick-note-capture { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 1rem; align-items: center; }
.quick-capture-heading { display: flex; align-items: center; gap: .65rem; }
.quick-capture-icon { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: var(--brand-soft); color: var(--brand); }
.quick-capture-heading h2 { font-size: .9rem; }
.quick-capture-heading p { margin-top: .1rem; color: var(--muted); font-size: .64rem; }
.quick-note-form { display: grid; grid-template-columns: minmax(130px, .42fr) minmax(220px, 1fr) auto; gap: .5rem; }
.quick-note-form input { width: 100%; min-width: 0; }
.daily-action-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; padding-top: .9rem; border-top: 1px solid var(--line); }
.daily-action-links a {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    padding: .62rem .7rem;
    border: 1px solid transparent;
    border-radius: 10px;
    background: var(--surface-soft);
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease;
}
.daily-action-links a:hover { border-color: var(--line); background: var(--surface); }
.daily-action-links strong, .daily-action-links small { display: block; }
.daily-action-links strong { font-size: .72rem; }
.daily-action-links small { margin-top: .08rem; color: var(--muted); font-size: .61rem; }
.daily-action-links a > span:last-child { color: var(--muted); font-size: .74rem; }
.daily-action-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.daily-action-icon.bill { background: color-mix(in srgb, var(--accent) 13%, var(--surface)); color: var(--accent); }
.daily-action-icon.task { background: color-mix(in srgb, #5c77c8 11%, var(--surface)); color: #536fbd; }
.daily-action-icon.calendar { background: color-mix(in srgb, #8a62b8 11%, var(--surface)); color: #7e59aa; }

.home-focus-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .62fr); gap: .85rem; align-items: start; }
.home-panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.home-panel-header h2 { font-size: 1rem; }
.home-panel-header p:not(.eyebrow) { max-width: 560px; margin-top: .18rem; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.home-agenda-list { display: grid; margin-top: .7rem; }
.home-agenda-item {
    display: grid;
    grid-template-columns: 58px 34px minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    min-height: 61px;
    padding: .45rem .25rem;
    border-top: 1px solid var(--line);
    color: var(--ink);
    text-decoration: none;
}
.home-agenda-item time { display: grid; justify-items: center; color: var(--muted); font-variant-numeric: tabular-nums; }
.home-agenda-item time strong { font-size: .74rem; }
.home-agenda-item time small { font-size: .56rem; text-transform: uppercase; }
.home-agenda-marker { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 9px; background: var(--surface-soft); color: var(--brand); font-size: .75rem; }
.home-agenda-item.task .home-agenda-marker { color: #536fbd; }
.home-agenda-item.bill .home-agenda-marker { color: var(--accent); }
.home-agenda-copy { min-width: 0; }
.home-agenda-copy strong, .home-agenda-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-agenda-copy strong { font-size: .74rem; }
.home-agenda-copy small { margin-top: .08rem; color: var(--muted); font-size: .62rem; }
.home-agenda-arrow { color: var(--muted); font-size: .72rem; }
.home-agenda-item:hover .home-agenda-copy strong { color: var(--brand-strong); }
.home-agenda-item.overdue .home-agenda-marker, .home-agenda-item.overdue .home-agenda-copy small { color: var(--danger); }

.finance-snapshot-list { display: grid; gap: 0; margin: .75rem 0 0; }
.finance-snapshot-list > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--line); }
.finance-snapshot-list dt { color: var(--muted); font-size: .66rem; }
.finance-snapshot-list dd { margin: 0; font-size: .84rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.finance-snapshot-list .net { margin-top: .15rem; padding: .7rem .65rem; border: 0; border-radius: 9px; background: var(--surface-soft); }
.finance-snapshot-list .net dd { font-size: 1rem; }
.finance-snapshot-meta { display: flex; gap: .5rem; margin-top: .7rem; color: var(--muted); font-size: .61rem; }
.finance-snapshot-meta span { flex: 1; padding: .45rem .5rem; border: 1px solid var(--line); border-radius: 8px; text-align: center; }
.finance-snapshot-meta strong { color: var(--ink); }
.finance-snapshot-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: .65rem; }
.finance-snapshot-actions a { padding: .5rem; border: 1px solid var(--line); border-radius: 8px; color: var(--brand-strong); font-size: .66rem; font-weight: 750; text-align: center; text-decoration: none; }
.finance-snapshot-actions a:hover { background: var(--brand-soft); }

.home-lower-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr); gap: .85rem; align-items: start; }
.home-transaction-list, .home-note-list { display: grid; margin-top: .65rem; }
.home-transaction-list > a {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    min-height: 56px;
    padding: .42rem .1rem;
    border-top: 1px solid var(--line);
    text-decoration: none;
}
.transaction-direction { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; font-size: .72rem; }
.transaction-direction.income { background: color-mix(in srgb, var(--success) 11%, var(--surface)); color: var(--success); }
.transaction-direction.expense { background: color-mix(in srgb, var(--danger) 10%, var(--surface)); color: var(--danger); }
.home-transaction-list a > span:nth-child(2) { min-width: 0; }
.home-transaction-list strong, .home-transaction-list small { display: block; }
.home-transaction-list a > span:nth-child(2) strong,
.home-transaction-list a > span:nth-child(2) small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-transaction-list strong { font-size: .71rem; }
.home-transaction-list small { margin-top: .08rem; color: var(--muted); font-size: .6rem; }
.transaction-amount { text-align: right; font-size: .72rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.transaction-amount small { font-size: .55rem; }
.home-note-list > a {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    min-height: 58px;
    padding: .45rem .1rem;
    border-top: 1px solid var(--line);
    text-decoration: none;
}
.home-note-pin { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: var(--brand-soft); color: var(--brand); font-size: .65rem; }
.home-note-list a > span:nth-child(2) { min-width: 0; }
.home-note-list strong, .home-note-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-note-list strong { font-size: .71rem; }
.home-note-list small { margin-top: .08rem; color: var(--muted); font-size: .6rem; }
.home-note-list time { color: var(--muted); font-size: .58rem; }
.home-empty-state { display: flex; min-height: 120px; align-items: center; gap: .8rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.home-empty-state > span { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; border-radius: 10px; background: var(--brand-soft); color: var(--brand); }
.home-empty-state > div { flex: 1; }
.home-empty-state strong { font-size: .76rem; }
.home-empty-state p { margin-top: .15rem; color: var(--muted); font-size: .64rem; }
.home-empty-state.compact { min-height: 100px; }

@media (max-width: 1120px) {
    .quick-note-capture { grid-template-columns: 1fr; gap: .65rem; }
    .home-focus-grid { grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); }
    .home-lower-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .home-intro { align-items: flex-start; flex-direction: column; gap: .8rem; }
    .home-intro-status { width: 100%; }
    .home-intro-status a { flex: 1; }
    .quick-note-form { grid-template-columns: 1fr 1fr; }
    .quick-note-form button { grid-column: 1 / -1; }
    .daily-action-links { grid-template-columns: 1fr; }
    .home-focus-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .main-content { padding: .85rem; }
    .topbar { padding-inline: .6rem; }
    .topbar-actions { gap: .28rem; }
    .topbar-create { width: 36px; justify-content: center; padding-inline: 0; }
    .topbar-create > span:last-child, .account-menu-summary .user-copy, .account-menu-chevron { display: none; }
    .account-menu { margin-left: 0; }
    .account-menu-summary { padding-left: .3rem; border-left: 0; }
    .topbar-popover { position: fixed; top: calc(var(--topbar-height) - .15rem); right: .6rem; width: min(280px, calc(100vw - 1.2rem)); }
    .topbar-create-popover { right: 3.2rem; }
    .page-guide-prompt { display: none; }
    .home-intro { padding-top: .1rem; }
    .home-intro h1 { font-size: 1.75rem; }
    .home-intro-status a { min-width: 0; padding: .5rem .6rem; }
    .quick-note-form { grid-template-columns: 1fr; }
    .quick-note-form button { grid-column: auto; }
    .home-panel-header { align-items: flex-start; }
    .home-agenda-item { grid-template-columns: 49px 30px minmax(0, 1fr); gap: .5rem; }
    .home-agenda-arrow { display: none; }
    .home-agenda-marker { width: 29px; height: 29px; }
    .home-transaction-list > a { grid-template-columns: 30px minmax(0, 1fr); }
    .transaction-amount { grid-column: 2; text-align: left; }
    .home-empty-state { align-items: flex-start; flex-wrap: wrap; }
    .home-empty-state .secondary-button { width: 100%; }
}

@media (min-width: 1800px) {
    :root { --sidebar-width: 248px; --topbar-height: 68px; }
    .main-content { max-width: 1640px; padding: 2.2rem 2.6rem; }
    .nav-item { min-height: 40px; font-size: .8rem; }
}

@media (max-width: 760px) {
    .app-page .page-heading {
        min-height: 0;
        align-items: flex-start;
        padding: 1.25rem;
        border-radius: 20px;
    }
    .app-page .page-heading::before { right: -180px; }
    .app-page .page-heading > :is(.primary-button, .secondary-button) { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .ui-reveal, .ui-reveal.is-visible { opacity: 1; transform: none; transition: none; }
    .app-page .empty-symbol, .route-progress[data-state="loading"] span { animation: none; }
    .button-ripple { display: none; }
}

/* Faz 24 · etkileşimli rapor grafiği */
.report-chart-wrap {
    position: relative;
    min-width: 0;
    margin: .85rem 0 1.35rem;
    padding: clamp(.65rem, 1.3vw, 1rem);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--brand) 13%, var(--line));
    border-radius: 18px;
    background:
        radial-gradient(circle at 90% 0, color-mix(in srgb, var(--brand) 11%, transparent), transparent 17rem),
        color-mix(in srgb, var(--surface) 96%, var(--brand));
}
.report-chart {
    display: block;
    width: 100%;
    height: clamp(310px, 24vw, 370px);
    outline: 0;
}
.report-chart:focus-visible {
    border-radius: 12px;
    box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--brand) 34%, transparent);
}
.report-chart-tooltip {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 4;
    display: grid;
    width: min(330px, calc(100% - 20px));
    gap: .18rem;
    padding: .65rem .75rem;
    border: 1px solid color-mix(in srgb, var(--brand) 25%, var(--line));
    border-radius: 13px;
    background: color-mix(in srgb, var(--surface) 95%, transparent);
    box-shadow: 0 14px 38px rgba(7,44,38,.16);
    pointer-events: none;
    backdrop-filter: blur(14px);
}
.report-chart-tooltip[hidden] { display: none; }
.report-chart-tooltip strong { color: var(--text); font-size: .76rem; }
.report-chart-tooltip span { color: var(--muted); font-size: .65rem; line-height: 1.45; }

/* Faz 24 · oturum içi PDF ve görsel görüntüleyici */
.document-viewer-heading {
    position: relative;
    display: flex;
    min-height: 176px;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: flex-end;
    margin-bottom: 1rem;
    padding: clamp(1.25rem, 2.3vw, 2rem);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--brand) 18%, var(--line));
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--brand) 18%, transparent), transparent 18rem),
        linear-gradient(135deg, color-mix(in srgb, var(--surface) 97%, var(--brand)), var(--surface));
    box-shadow: var(--shadow-sm);
}
.document-viewer-heading::after {
    position: absolute;
    width: 210px;
    height: 210px;
    right: -95px;
    top: -140px;
    border: 1px solid color-mix(in srgb, var(--brand) 20%, transparent);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}
.document-viewer-heading > * { position: relative; z-index: 1; }
.document-viewer-heading h1 {
    max-width: 850px;
    margin: .3rem 0 .45rem;
    overflow: hidden;
    font-family: "Manrope", sans-serif;
    font-size: clamp(1.45rem, 2.4vw, 2.35rem);
    line-height: 1.1;
    text-overflow: ellipsis;
    text-wrap: balance;
}
.document-viewer-heading p:not(.eyebrow) { max-width: 760px; margin: 0; color: var(--muted); }
.document-viewer-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; align-items: center; }
.document-viewer-state {
    display: inline-flex;
    min-height: 39px;
    gap: .45rem;
    align-items: center;
    padding: .48rem .68rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: color-mix(in srgb, var(--surface) 90%, transparent);
    color: var(--muted);
    font-size: .67rem;
    font-weight: 800;
}
.document-viewer-state i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--warning);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--warning) 15%, transparent);
}
.document-viewer-state.is-ready i { background: var(--success); box-shadow: 0 0 0 5px color-mix(in srgb, var(--success) 15%, transparent); }
.document-viewer-shell {
    position: relative;
    min-height: clamp(570px, 68vh, 940px);
    padding: 0;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--brand) 16%, var(--line));
    background: color-mix(in srgb, var(--surface-soft) 90%, #101c19);
}
.document-viewer-shell:fullscreen { width: 100vw; height: 100vh; border: 0; border-radius: 0; }
.document-viewer-frame { display: block; width: 100%; min-height: inherit; height: 100%; border: 0; background: var(--surface-soft); }
.document-viewer-loading {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: .6rem;
    padding: 2rem;
    background:
        radial-gradient(circle at center, color-mix(in srgb, var(--brand) 11%, var(--surface)), var(--surface) 58%);
    text-align: center;
    transition: opacity .25s ease;
}
.document-viewer-loading[hidden] { display: none; }
.document-viewer-loading > span {
    width: 42px;
    height: 42px;
    border: 3px solid color-mix(in srgb, var(--brand) 20%, var(--line));
    border-top-color: var(--brand);
    border-radius: 50%;
    animation: document-spin .8s linear infinite;
}
.document-viewer-loading strong { font-family: "Manrope", sans-serif; font-size: 1rem; }
.document-viewer-loading small { color: var(--muted); }
.document-viewer-fallback { display: grid; min-height: 560px; place-content: center; justify-items: center; gap: .6rem; padding: 2rem; text-align: center; }
.document-viewer-fallback > span { color: var(--brand); font-size: 2.4rem; }
.document-viewer-fallback h2 { margin: 0; font-family: "Manrope", sans-serif; }
.document-viewer-fallback p { max-width: 480px; margin: 0 0 .5rem; color: var(--muted); }
.document-security-note { display: flex; gap: .45rem; align-items: center; margin: .8rem .2rem 0; color: var(--muted); font-size: .68rem; }
.document-security-note span { color: var(--brand); }
@keyframes document-spin { to { rotate: 360deg; } }

@media (max-width: 900px) {
    .document-viewer-heading { align-items: flex-start; flex-direction: column; }
    .document-viewer-actions { width: 100%; justify-content: flex-start; }
    .document-viewer-shell { min-height: 68vh; }
}
@media (max-width: 560px) {
    .report-chart-wrap { margin-inline: -.35rem; padding: .3rem; border-radius: 14px; }
    .report-chart { height: 300px; }
    .document-viewer-actions > :is(.primary-button, .secondary-button) { flex: 1; justify-content: center; }
    .document-viewer-state { width: 100%; justify-content: center; }
    .document-viewer-shell { margin-inline: -.55rem; border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .document-viewer-loading > span { animation: none; }
}

/* Faz 27 · anlaşılır bütçe kalemleri ve ortak düzenleme eylemleri */
.budget-line-labels {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(120px, .6fr) minmax(100px, .4fr) 36px;
    gap: .5rem;
    margin-top: .75rem;
    padding-inline: .1rem;
    color: var(--muted);
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.budget-number-field { position: relative; min-width: 0; }
.budget-number-field > input { width: 100%; }
.budget-number-field > span:not(.field-validation-valid):not(.field-validation-error) { pointer-events: none; }
.suffix-percent > span:first-of-type {
    position: absolute;
    top: 50%;
    right: .7rem;
    color: var(--muted);
    transform: translateY(-50%);
}
.suffix-percent > input { padding-right: 2rem; }
.field-help { display: block; margin-top: .3rem; color: var(--muted); font-size: .64rem; line-height: 1.55; }
.field-error, .field-validation-error { color: var(--danger); font-size: .62rem; font-weight: 700; }
.card-actions, .row-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.card-actions { justify-content: space-between; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.card-actions form { margin: 0; }
.row-actions { min-width: max-content; }
.text-button { padding: .45rem .25rem; border: 0; background: transparent; color: var(--brand); font: inherit; font-size: .65rem; font-weight: 800; cursor: pointer; }
.text-button.danger { color: var(--danger); }
.success-text { color: var(--success); }
.narrow-form-shell { width: min(100%, 1040px); margin-inline: auto; }
.entry-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.entry-steps li { display: grid; grid-template-columns: 34px 1fr; gap: .1rem .65rem; align-items: center; padding: .75rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.entry-steps li > span { grid-row: 1 / 3; display: grid; width: 32px; height: 32px; place-items: center; border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: .72rem; font-weight: 900; }
.entry-steps li.active { border-color: color-mix(in srgb, var(--brand) 40%, var(--line)); background: color-mix(in srgb, var(--brand-soft) 55%, var(--surface)); }
.entry-steps li.active > span { background: var(--brand); color: #fff; }
.entry-steps strong { font-size: .7rem; }
.entry-steps small { color: var(--muted); font-size: .57rem; }

@media (max-width: 760px) {
    .entry-steps { grid-template-columns: 1fr; }
    .budget-line-labels { display: none; }
    .budget-number-field::before { display: block; margin-bottom: .28rem; color: var(--muted); font-size: .56rem; font-weight: 800; }
    .budget-number-field:nth-child(2)::before { content: "Harcama limiti"; }
    .budget-number-field:nth-child(3)::before { content: "Uyarı yüzdesi"; }
}

/* Faz 28 mobil başlık düzeltmesi: önceki responsive katmanın kart görünümünü geri getirmesini engeller. */
@media (max-width: 760px) {
    .app-page .page-heading { padding: .2rem 0 .9rem; border-radius: 0; }
}

/* Faz 28 · TCMB günlük gösterge kuru ve rapor görüntüleme para birimi */
.exchange-rate-panel {
    overflow: hidden;
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--brand) 13%, transparent), transparent 44%),
        var(--surface);
}
.exchange-rate-panel .section-header { align-items: flex-start; }
.exchange-rate-disclaimer {
    margin: -.25rem 0 .8rem;
    color: var(--muted);
    font-size: .6rem;
    line-height: 1.55;
}
.exchange-rate-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
}
.exchange-rate-strip > div {
    min-width: 0;
    padding: .65rem;
    border: 1px solid color-mix(in srgb, var(--brand) 12%, var(--line));
    border-radius: 12px;
    background: color-mix(in srgb, var(--brand-soft) 38%, var(--surface));
}
.exchange-rate-strip :is(small, strong, span) { display: block; }
.exchange-rate-strip small { color: var(--muted); font-size: .52rem; font-weight: 800; }
.exchange-rate-strip strong { margin-top: .14rem; overflow: hidden; font-family: "Manrope", sans-serif; font-size: .76rem; text-overflow: ellipsis; }
.exchange-rate-strip span { margin-top: .05rem; color: var(--brand); font-size: .5rem; font-weight: 900; }
.exchange-converter { margin-top: .8rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.exchange-converter > label { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .56rem; font-weight: 800; }
.exchange-converter-row {
    display: grid;
    grid-template-columns: minmax(72px, 1fr) 64px auto 64px minmax(86px, auto);
    gap: .35rem;
    align-items: center;
}
.exchange-converter-row :is(input, select) { min-width: 0; padding: .5rem .45rem; font-size: .62rem; }
.exchange-converter-row > span { color: var(--muted); font-size: .7rem; }
.exchange-converter-row output { color: var(--brand); font-size: .63rem; font-weight: 900; text-align: right; white-space: nowrap; }
.exchange-rate-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .55rem;
    margin-top: .7rem;
    color: var(--muted);
    font-size: .51rem;
    line-height: 1.45;
}
.exchange-rate-meta span:not(:last-child)::after { margin-left: .55rem; color: var(--line-strong, var(--line)); content: "·"; }
.exchange-rate-empty { padding: .8rem; border: 1px dashed var(--line); border-radius: 12px; background: var(--surface-soft); }
.exchange-rate-empty strong { font-size: .68rem; }
.exchange-rate-empty p { margin-top: .25rem; color: var(--muted); font-size: .59rem; line-height: 1.55; }
.finance-metric strong > small { display: inline; margin-left: .14rem; font-family: inherit; font-size: .52em; }
.report-export-action { display: grid; justify-items: end; gap: .35rem; }
.report-export-action small { max-width: 250px; color: var(--muted); font-size: .56rem; line-height: 1.45; text-align: right; }
.report-currency-field select { min-width: 170px; }
.report-context-line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .45rem 1rem; margin: 1rem 0; }
.report-context-line .report-period-caption { margin: 0; }
.report-rate-caption { margin: 0; color: var(--muted); font-size: .62rem; line-height: 1.55; }
.report-rate-caption strong { color: var(--brand); }
.report-rate-caption.warning { color: #87620e; }

/* PDF/dekont tutarını kullanıcının girdiği değerle görünür fakat sakin biçimde karşılaştırır. */
.document-amount-check {
    margin: .85rem 0;
    padding: .85rem;
    border: 1px solid var(--line);
    border-left-width: 3px;
    border-radius: 12px;
    background: var(--surface-soft);
}
.document-amount-check.is-match { border-left-color: var(--success); }
.document-amount-check.needs-review { border-left-color: var(--accent); }
.document-amount-check > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .65rem;
}
.document-amount-check h3 { margin: 0; font-size: .82rem; }
.document-amount-check .form-hint { margin: .65rem 0 0; }
.amount-check-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
}
.amount-check-grid > div {
    min-width: 0;
    padding: .62rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
}
.amount-check-grid small,
.amount-check-grid strong { display: block; }
.amount-check-grid small { color: var(--muted); font-size: .54rem; font-weight: 750; }
.amount-check-grid strong { margin-top: .18rem; overflow-wrap: anywhere; font-size: .7rem; }
.bill-document-check {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    margin-top: .7rem;
    padding: .62rem .7rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-soft);
}
.bill-document-check > span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 8px;
    background: var(--surface);
    color: var(--muted);
    font-size: .7rem;
    font-weight: 900;
}
.bill-document-check strong,
.bill-document-check small { display: block; }
.bill-document-check strong { font-size: .65rem; }
.bill-document-check small { margin-top: .12rem; color: var(--muted); font-size: .54rem; line-height: 1.45; }
.bill-document-check > b { color: var(--muted); font-size: .62rem; white-space: nowrap; }
.bill-document-check.is-match { border-color: color-mix(in srgb, var(--success) 32%, var(--line)); }
.bill-document-check.is-match > span { color: var(--success); }
.bill-document-check.needs-review { border-color: color-mix(in srgb, var(--accent) 38%, var(--line)); }
.bill-document-check.needs-review > span { color: var(--accent); }
.bill-document-check.is-pending { border-style: dashed; }
.currency-view-toggle {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-height: 40px;
    padding: .28rem .35rem .28rem .6rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
}
.currency-view-toggle label { margin: 0; color: var(--muted); font-size: .58rem; white-space: nowrap; }
.currency-view-toggle select { width: 70px; min-height: 30px !important; padding: .3rem .4rem; border: 0; background: var(--surface-soft); font-size: .65rem !important; font-weight: 850; }
.currency-view-toggle button { min-height: 30px; padding: .3rem .5rem; border: 0; border-radius: 7px; background: var(--brand-soft); color: var(--brand-strong); font-size: .58rem; font-weight: 850; cursor: pointer; }
.current-rate-note { margin: -.35rem 0 1rem; color: var(--muted); font-size: .58rem; line-height: 1.5; }
.currency-equivalent { display: block; margin-top: .08rem; color: var(--muted); font-size: .52rem; font-weight: 650; white-space: nowrap; }

@media (max-width: 620px) {
    .exchange-rate-strip { grid-template-columns: 1fr 1fr; }
    .exchange-rate-strip > div:last-child { grid-column: 1 / -1; }
    .exchange-converter-row { grid-template-columns: minmax(76px, 1fr) 64px auto 64px; }
    .exchange-converter-row output { grid-column: 1 / -1; padding-top: .2rem; text-align: left; }
    .report-export-action { justify-items: start; width: 100%; }
    .report-export-action small { text-align: left; }
    .report-custom-range > div, .report-custom-range button { width: 100%; }
    .report-context-line { display: grid; }
    .amount-check-grid { grid-template-columns: 1fr; }
    .bill-document-check { grid-template-columns: 26px minmax(0, 1fr); }
    .bill-document-check > b { grid-column: 2; }
}

.currency-valuation-card {
    display: grid;
    gap: .7rem;
    margin-top: .2rem;
    padding: .8rem;
    border: 1px solid color-mix(in srgb, var(--brand) 22%, var(--line));
    border-radius: 12px;
    background: color-mix(in srgb, var(--brand-soft) 38%, var(--surface));
}
.currency-valuation-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; }
.currency-valuation-card h3 { font-size: .76rem; }
.currency-valuation-card input[readonly] { background: var(--surface); color: var(--ink); font-variant-numeric: tabular-nums; }
.currency-valuation-card > p { margin: 0; color: var(--muted); font-size: .59rem; line-height: 1.55; }
.currency-valuation-card.is-unavailable { border-color: color-mix(in srgb, var(--warning) 45%, var(--line)); background: color-mix(in srgb, var(--warning) 8%, var(--surface)); }
.currency-valuation-card.is-unavailable > p { color: #87620e; }

/* Finans satırları: fiziksel miktar, birim fiyat ve bütün kur karşılıkları. */
@media (min-width: 1181px) {
    .app-page .review-layout { grid-template-columns: minmax(0, 1fr) minmax(440px, 500px); gap: 1.25rem; }
    .app-page .confirmation-panel { position: sticky; top: 86px; max-height: calc(100vh - 105px); overflow: auto; }
}
.line-detail-fields { display: grid; grid-template-columns: .8fr 1.1fr 1fr; gap: .65rem; padding: .85rem; border: 1px solid color-mix(in srgb, var(--brand) 30%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--brand) 7%, var(--surface)); }
.line-detail-fields[hidden], .line-total-summary[hidden] { display: none; }
.line-total-summary { margin: -.2rem 0 .25rem; padding: .65rem .75rem; border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: .7rem; line-height: 1.5; }
.line-total-summary strong { color: var(--ink); }
.currency-cross-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin-top: .65rem; }
.currency-cross-grid article { padding: .7rem; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.currency-cross-grid small, .currency-cross-grid strong { display: block; }
.currency-cross-grid small { color: var(--muted); font-size: .62rem; }
.currency-cross-grid strong { margin-top: .2rem; font-size: .8rem; font-variant-numeric: tabular-nums; }
.field-help.field-error { color: var(--danger); }
.transaction-line-detail { color: var(--brand) !important; font-weight: 800; }

/* Faz 32: serbest metinden atomik çoklu finans kaydı ve görünür inceleme kuyruğu */
.bulk-finance-page, .bulk-review-page, .pending-finance-page { max-width: 1520px; margin: 0 auto; }
.bulk-entry-header { max-width: 920px; }
.bulk-entry-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .72fr); gap: 1.15rem; align-items: start; }
.bulk-paste-card { padding: clamp(1.1rem, 2vw, 1.7rem); border-color: color-mix(in srgb, var(--brand) 28%, var(--line)); background: linear-gradient(145deg, color-mix(in srgb, var(--brand-soft) 45%, var(--surface)) 0%, var(--surface) 45%); }
.bulk-paste-label, .bulk-paste-label > div { display: flex; align-items: center; gap: .65rem; }
.bulk-paste-label { justify-content: space-between; margin-bottom: .7rem; }
.bulk-paste-label label { margin: 0; color: var(--ink); font-size: .82rem; font-weight: 850; }
.bulk-paste-label > span { color: var(--muted); font-size: .64rem; font-weight: 750; }
.bulk-step { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: var(--brand); color: #fff; font-size: .7rem; font-weight: 900; }
.bulk-step.muted { background: var(--brand-soft); color: var(--brand); }
.bulk-paste-card textarea { width: 100%; min-height: 390px; padding: 1.1rem; border: 1px solid color-mix(in srgb, var(--brand) 24%, var(--line)); border-radius: 16px; background: color-mix(in srgb, var(--surface) 92%, transparent); font-family: "Manrope", sans-serif; font-size: .82rem; line-height: 1.8; resize: vertical; box-shadow: inset 0 1px 3px rgba(14, 52, 45, .04); }
.bulk-paste-card textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 12%, transparent); outline: none; }
.bulk-defaults { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: .85rem; }
.bulk-defaults label { display: block; margin-bottom: .3rem; color: var(--ink); font-size: .66rem; font-weight: 800; }
.bulk-defaults :is(input, select) { width: 100%; }
.bulk-defaults small { display: block; margin-top: .26rem; color: var(--muted); font-size: .58rem; }
.bulk-accuracy-note { display: grid; grid-template-columns: 34px 1fr; gap: .65rem; align-items: start; margin: .9rem 0; padding: .8rem; border-radius: 12px; background: color-mix(in srgb, var(--success) 8%, var(--surface)); }
.bulk-accuracy-note > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--success) 15%, var(--surface)); color: var(--success); font-weight: 900; }
.bulk-accuracy-note p { margin: 0; color: var(--muted); font-size: .64rem; line-height: 1.6; }
.bulk-accuracy-note strong { color: var(--ink); }
.bulk-preview-button { display: flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; }
.bulk-preview-button span { font-size: 1rem; }
.bulk-guide-stack { display: grid; gap: 1rem; position: sticky; top: 1rem; }
.bulk-example-card, .bulk-flow-card { padding: 1.1rem; }
.bulk-example-card header { display: flex; gap: .7rem; align-items: center; }
.bulk-example-card h2 { margin: .08rem 0 0; font-size: .94rem; }
.bulk-example-lines { display: grid; gap: .48rem; margin-top: .9rem; }
.bulk-example-lines span { display: grid; grid-template-columns: 62px 1fr; gap: .6rem; align-items: center; padding: .57rem .62rem; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); font-size: .64rem; }
.bulk-example-lines i { color: var(--brand); font-style: normal; font-size: .58rem; font-weight: 900; text-transform: uppercase; }
.bulk-flow-card ol { display: grid; gap: .8rem; margin: .85rem 0 0; padding: 0; list-style: none; }
.bulk-flow-card li { display: grid; grid-template-columns: 30px 1fr; gap: .65rem; align-items: center; }
.bulk-flow-card li > span { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--brand); font-size: .62rem; font-weight: 900; }
.bulk-flow-card li strong, .bulk-flow-card li small { display: block; }
.bulk-flow-card li strong { font-size: .68rem; }
.bulk-flow-card li small { margin-top: .1rem; color: var(--muted); font-size: .57rem; }
.pending-shortcut { display: grid; grid-template-columns: 38px 1fr auto; gap: .7rem; align-items: center; padding: .9rem 1rem; color: inherit; text-decoration: none; }
.pending-shortcut > span:first-child { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; background: color-mix(in srgb, var(--accent) 12%, var(--surface)); color: var(--accent); }
.pending-shortcut strong, .pending-shortcut small { display: block; }
.pending-shortcut strong { font-size: .7rem; }
.pending-shortcut small { margin-top: .12rem; color: var(--muted); font-size: .58rem; }
.pending-shortcut b { color: var(--brand); }

.bulk-review-heading .back-link, .pending-heading .back-link { display: inline-flex; margin-bottom: .6rem; }
.bulk-review-summary { display: grid; grid-template-columns: .65fr .65fr 1.6fr 1fr; gap: .8rem; margin-bottom: 1rem; }
.bulk-review-summary article { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: .65rem; align-items: center; min-height: 78px; padding: .85rem; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-sm); }
.bulk-review-summary article > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; background: var(--brand-soft); color: var(--brand); font-weight: 900; }
.bulk-review-summary .income-symbol { background: color-mix(in srgb, var(--success) 12%, var(--surface)); color: var(--success); }
.bulk-review-summary .expense-symbol { background: color-mix(in srgb, var(--danger) 10%, var(--surface)); color: var(--danger); }
.bulk-review-summary small, .bulk-review-summary strong { display: block; }
.bulk-review-summary small { color: var(--muted); font-size: .58rem; font-weight: 750; }
.bulk-review-summary strong { margin-top: .12rem; font-size: .76rem; font-variant-numeric: tabular-nums; }
.bulk-warning summary { cursor: pointer; font-weight: 800; }
.bulk-warning ul { margin: .6rem 0 0 1rem; }
.bulk-warning li { margin-top: .25rem; font-size: .65rem; }
.bulk-row-list { display: grid; gap: .85rem; }
.bulk-transaction-row { --row-tone: var(--danger); overflow: hidden; padding: 0; border-left: 4px solid var(--row-tone); transition: opacity .18s ease, transform .18s ease; }
.bulk-transaction-row.income { --row-tone: var(--success); }
.bulk-transaction-row.excluded { opacity: .48; filter: grayscale(.35); }
.bulk-transaction-row > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; align-items: center; padding: .7rem .85rem; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--row-tone) 4%, var(--surface)); }
.bulk-transaction-row header code { min-width: 0; overflow: hidden; color: var(--muted); font-family: inherit; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.bulk-include-toggle { display: flex; gap: .45rem; align-items: center; margin: 0; cursor: pointer; }
.bulk-include-toggle input { width: 16px; height: 16px; accent-color: var(--row-tone); }
.bulk-include-toggle strong { color: var(--row-tone); font-size: .63rem; }
.bulk-remove-button { color: var(--muted); font-size: .58rem; }
.bulk-row-warning { margin: .65rem .85rem 0; padding: .55rem .65rem; border-radius: 9px; background: color-mix(in srgb, var(--warning, #d97706) 9%, var(--surface)); color: #9a5b08; font-size: .61rem; font-weight: 750; }
.bulk-row-primary, .bulk-row-secondary { display: grid; gap: .65rem; padding: .8rem .85rem 0; }
.bulk-row-primary { grid-template-columns: minmax(110px, .5fr) minmax(230px, 1.7fr) minmax(145px, .65fr) minmax(160px, .7fr); }
.bulk-row-secondary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bulk-row-primary label, .bulk-row-secondary label, .bulk-row-details label { display: block; margin-bottom: .28rem; color: var(--muted); font-size: .58rem; font-weight: 800; }
.bulk-row-primary :is(input, select), .bulk-row-secondary :is(input, select), .bulk-row-details input { width: 100%; min-width: 0; }
.amount-field > span { display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.amount-field > span:focus-within { border-color: var(--brand); }
.amount-field > span input { border: 0; box-shadow: none; }
.amount-field > span select { width: auto; min-width: 74px; border: 0; border-left: 1px solid var(--line); border-radius: 0 9px 9px 0; box-shadow: none; color: var(--row-tone); font-size: .61rem; font-weight: 800; }
.bulk-row-details { margin: .75rem .85rem .85rem; padding-top: .65rem; border-top: 1px dashed var(--line); }
.bulk-row-details summary { cursor: pointer; color: var(--brand); font-size: .6rem; font-weight: 800; }
.bulk-row-details[open] { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; }
.bulk-row-details[open] summary { grid-column: 1 / -1; }
.bulk-row-details small { display: block; margin-top: .25rem; color: var(--muted); font-size: .53rem; line-height: 1.45; }
.bulk-save-bar { position: sticky; z-index: 5; bottom: .7rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .8rem 1rem; border-color: color-mix(in srgb, var(--brand) 30%, var(--line)); box-shadow: 0 18px 50px rgba(15, 61, 53, .16); }
.bulk-save-bar > div { display: flex; align-items: center; gap: .65rem; }
.bulk-save-bar > div:first-child > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: color-mix(in srgb, var(--success) 12%, var(--surface)); color: var(--success); font-weight: 900; }
.bulk-save-bar p, .bulk-save-bar strong, .bulk-save-bar small { display: block; margin: 0; }
.bulk-save-bar strong { font-size: .68rem; }
.bulk-save-bar small { margin-top: .1rem; color: var(--muted); font-size: .55rem; }

.pending-summary-strip { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }
.pending-summary-strip span { display: flex; align-items: baseline; gap: .4rem; }
.pending-summary-strip strong { color: var(--brand); font-size: 1.2rem; }
.pending-summary-strip small, .pending-summary-strip p { color: var(--muted); font-size: .61rem; }
.pending-summary-strip p { margin: 0; }
.pending-draft-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
.pending-draft-card { --draft-tone: var(--danger); display: flex; flex-direction: column; min-height: 310px; padding: 1rem; border-top: 3px solid var(--draft-tone); }
.pending-draft-card.income { --draft-tone: var(--success); }
.pending-draft-card > header { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.pending-type { color: var(--draft-tone); font-size: .62rem; font-weight: 900; }
.pending-draft-card h2 { margin: 1rem 0 .3rem; font-size: .9rem; }
.pending-amount { color: var(--ink); font-family: "Manrope", sans-serif; font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.pending-amount small { color: var(--draft-tone); font-size: .55em; }
.pending-draft-card dl { display: grid; gap: 0; margin: 1rem 0; }
.pending-draft-card dl > div { display: flex; justify-content: space-between; gap: .7rem; padding: .47rem 0; border-top: 1px solid var(--line); }
.pending-draft-card dt, .pending-draft-card dd { font-size: .59rem; }
.pending-draft-card dt { color: var(--muted); }
.pending-draft-card dd { max-width: 62%; margin: 0; overflow: hidden; color: var(--ink); font-weight: 700; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.pending-draft-card > footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: auto; }
.pending-draft-card > footer form { margin: 0; }
.pending-empty > div { display: flex; justify-content: center; gap: .6rem; }

@media (max-width: 1100px) {
    .bulk-entry-layout { grid-template-columns: 1fr; }
    .bulk-guide-stack { grid-template-columns: 1fr 1fr; position: static; }
    .pending-shortcut { grid-column: 1 / -1; }
    .bulk-review-summary { grid-template-columns: 1fr 1fr; }
    .bulk-row-primary { grid-template-columns: 1fr 2fr; }
    .bulk-row-secondary { grid-template-columns: 1fr 1fr; }
    .bulk-row-details[open] { grid-template-columns: 1fr 1fr 1fr; }
    .pending-draft-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .bulk-defaults, .bulk-guide-stack, .bulk-review-summary, .bulk-row-primary, .bulk-row-secondary,
    .bulk-row-details[open], .pending-draft-grid { grid-template-columns: 1fr; }
    .bulk-transaction-row > header { grid-template-columns: 1fr auto; }
    .bulk-transaction-row header code { grid-column: 1 / -1; grid-row: 2; }
    .bulk-save-bar, .pending-summary-strip { align-items: stretch; flex-direction: column; }
    .bulk-save-bar > div:last-child { display: grid; grid-template-columns: 1fr 1.3fr; width: 100%; }
    .pending-heading .page-actions { width: 100%; }
    .pending-draft-card { min-height: 0; }
}
.line-detail-edit { margin-top: .85rem; padding: .85rem; border-radius: 13px; background: var(--surface-soft); }

/* Bütçe ve hedefler: banka uygulaması yoğunluğunda tablo ve açılır işlem katmanı. */
.planning-hero { padding: 1.3rem; border: 1px solid color-mix(in srgb, var(--brand) 24%, var(--line)); border-radius: 22px; background: linear-gradient(130deg, color-mix(in srgb, var(--brand) 11%, var(--surface)), var(--surface) 58%); }
.planning-currency-overview { margin-bottom: 1rem; }
.planning-summary-table, .planning-data-table, .planning-inner-table { width: 100%; border-collapse: collapse; }
.planning-summary-table th, .planning-data-table th, .planning-inner-table th { padding: .7rem .75rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .66rem; font-weight: 900; letter-spacing: .025em; text-align: left; white-space: nowrap; }
.planning-summary-table td, .planning-data-table td, .planning-inner-table td { padding: .82rem .75rem; border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent); font-size: .72rem; vertical-align: middle; }
.planning-summary-table td > strong, .planning-summary-table td > small, .planning-data-table td > strong, .planning-data-table td > small { display: block; }
.planning-summary-table td > small, .planning-data-table td > small { margin-top: .18rem; color: var(--muted); font-size: .62rem; line-height: 1.35; }
.planning-summary-table tbody tr:hover, .planning-data-table tbody tr:hover { background: color-mix(in srgb, var(--brand) 4%, var(--surface)); }
.currency-code-pill { display: inline-flex !important; width: 48px; height: 30px; align-items: center; justify-content: center; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.planning-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) 190px auto; gap: .8rem; align-items: end; margin: 1rem 0 1.35rem; padding: .9rem; }
.planning-toolbar label { display: block; margin-bottom: .35rem; color: var(--muted); font-size: .65rem; font-weight: 850; }
.planning-jump-links { display: flex; gap: .45rem; align-items: center; justify-content: flex-end; }
.planning-jump-links a { display: inline-flex; align-items: center; gap: .4rem; padding: .62rem .72rem; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); font-size: .66rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.planning-jump-links a:hover { border-color: var(--brand); color: var(--brand); }
.planning-jump-links span { display: inline-grid; min-width: 20px; height: 20px; place-items: center; border-radius: 99px; background: var(--brand-soft); color: var(--brand); font-size: .58rem; }
.planning-table-card { padding: 0; overflow: visible; }
.planning-table-card > .responsive-table { min-height: 120px; }
.planning-data-table { min-width: 980px; }
.planning-data-table [hidden] { display: none; }
.table-progress { display: grid; grid-template-columns: minmax(82px, 1fr) auto; gap: .45rem; align-items: center; min-width: 130px; }
.table-progress span { display: block; height: 7px; overflow: hidden; border-radius: 99px; background: var(--surface-soft); }
.table-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), #38bdf8); }
.table-progress.goal i { background: linear-gradient(90deg, #8b5cf6, #ec4899); }
.table-progress strong { font-size: .65rem; }
.planning-row-details { position: relative; display: inline-block; margin-top: .42rem; }
.planning-row-details > summary { color: var(--brand); cursor: pointer; font-size: .64rem; font-weight: 900; list-style: none; white-space: nowrap; }
.planning-row-details > summary::after { content: "  ›"; }
.planning-row-details[open] > summary::after { content: "  ×"; }
.planning-detail-panel { position: absolute; z-index: 40; right: 0; top: calc(100% + .5rem); width: min(760px, calc(100vw - 330px)); max-height: 70vh; overflow: auto; padding: 1rem; border: 1px solid color-mix(in srgb, var(--brand) 28%, var(--line)); border-radius: 16px; background: var(--surface); box-shadow: 0 24px 70px rgba(4, 29, 24, .22); }
.planning-detail-panel > p { margin: 0 0 .75rem; color: var(--muted); font-size: .7rem; }
.planning-detail-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin-bottom: .8rem; }
.planning-detail-metrics span { padding: .7rem; border-radius: 11px; background: var(--surface-soft); }
.planning-detail-metrics small, .planning-detail-metrics strong { display: block; }
.planning-detail-metrics small { color: var(--muted); font-size: .6rem; }
.planning-detail-metrics strong { margin-top: .2rem; font-size: .73rem; }
.planning-inner-table { margin-top: .3rem; border: 1px solid var(--line); border-radius: 12px; }
.planning-inner-table th, .planning-inner-table td { padding: .58rem; font-size: .64rem; }
.planning-inline-form { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)) auto; gap: .55rem; align-items: end; margin-top: .85rem; padding: .8rem; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }
.planning-inline-form label { display: block; margin-bottom: .28rem; color: var(--muted); font-size: .59rem; font-weight: 800; }
.planning-inline-form input, .planning-inline-form select, .planning-inline-form button { min-width: 0; font-size: .63rem; }
.obligation-kind { display: inline-flex; padding: .38rem .55rem; border-radius: 9px; font-size: .64rem; font-weight: 900; }
.obligation-kind.kind-1 { background: color-mix(in srgb, var(--danger) 11%, var(--surface)); color: var(--danger); }
.obligation-kind.kind-2 { background: color-mix(in srgb, var(--success) 11%, var(--surface)); color: var(--success); }
.planning-no-results { margin-top: 1rem; text-align: center; }
.report-range-hint { grid-column: 1 / -1; margin: .2rem 0 0; color: var(--brand); }

@media (max-width: 1180px) {
    .planning-toolbar { grid-template-columns: 1fr 180px; }
    .planning-jump-links { grid-column: 1 / -1; justify-content: flex-start; }
    .planning-detail-panel { width: min(700px, calc(100vw - 80px)); }
}
@media (max-width: 760px) {
    .line-detail-fields, .currency-cross-grid, .planning-detail-metrics { grid-template-columns: 1fr; }
    .planning-toolbar { grid-template-columns: 1fr; }
    .planning-jump-links { grid-column: auto; overflow-x: auto; justify-content: flex-start; }
    .planning-detail-panel { position: fixed; inset: auto 12px 12px; width: auto; max-height: 76vh; }
    .planning-inline-form { grid-template-columns: 1fr 1fr; }
    .planning-inline-form button { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
    .planning-inline-form { grid-template-columns: 1fr; }
    .planning-inline-form button { grid-column: auto; }
}

/* Piyasa nabzı: muhasebe ekranının en altında, resmî kur ile dış piyasa grafiğini
   kaynaklarını karıştırmadan yan yana gösterir. */
.market-pulse {
    position: relative;
    margin-top: 1.25rem;
    overflow: hidden;
    background:
        radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--brand) 16%, transparent), transparent 34%),
        linear-gradient(145deg, color-mix(in srgb, var(--surface) 94%, var(--brand-soft)), var(--surface));
}
.market-pulse::before {
    position: absolute;
    inset: 0;
    pointer-events: none;
    content: "";
    opacity: .28;
    background-image: linear-gradient(color-mix(in srgb, var(--brand) 10%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--brand) 10%, transparent) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(to bottom, black, transparent 72%);
}
.market-pulse > * { position: relative; z-index: 1; }
.market-pulse-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.market-pulse-header h2 { margin-top: .18rem; font-size: clamp(1rem, 1.6vw, 1.45rem); }
.market-pulse-header p:not(.eyebrow) { max-width: 720px; margin-top: .28rem; color: var(--muted); font-size: .67rem; line-height: 1.55; }
.live-signal {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: .3rem;
    border-radius: 999px;
    background: var(--success);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 52%, transparent);
    animation: market-signal 2s infinite;
}
.market-update-state {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .58rem;
    border: 1px solid color-mix(in srgb, var(--success) 25%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--success) 8%, var(--surface));
    color: var(--success);
    font-size: .57rem;
    font-weight: 850;
    white-space: nowrap;
}
.market-update-state time { color: var(--muted); font-variant-numeric: tabular-nums; }
.market-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .65rem; margin-bottom: .8rem; }
.market-section-heading span { color: var(--brand-strong); font-size: .52rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.market-section-heading h3 { margin-top: .1rem; font-size: .84rem; }
.market-section-heading > small { max-width: 180px; color: var(--muted); font-size: .51rem; line-height: 1.45; text-align: right; }
.market-source-note { margin: .65rem 0 0; color: var(--muted); font-size: .51rem; line-height: 1.5; }

@keyframes market-signal {
    70% { box-shadow: 0 0 0 7px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}
@media (max-width: 620px) {
    .market-pulse-header,
    .market-section-heading { display: grid; }
    .market-update-state { justify-self: start; }
    .market-section-heading > small { max-width: none; text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    .live-signal { animation: none; }
}

/* Finans kuru ve piyasa merkezi: d&#305;&#351; iframe yerine yerel, h&#305;zl&#305; ve her temada
   ayn&#305; tasar&#305;m dilini kullanan kur kar&#351;&#305;la&#351;t&#305;rmas&#305;. */
.finance-filter { grid-template-columns: repeat(5, minmax(108px, .7fr)) minmax(180px, 1.15fr) auto; }
.finance-view-context {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .75rem;
    align-items: center;
    margin: -.35rem 0 1rem;
    color: var(--muted);
    font-size: .62rem;
}
.finance-view-context p { margin: 0; }
.finance-view-context strong { color: var(--ink); }
.archived-transaction-row { opacity: .78; }
.finance-row-actions { gap: .38rem; }
.finance-row-actions form { margin: 0; }
.finance-row-actions button { padding: 0; border: 0; background: none; cursor: pointer; font-size: .62rem; font-weight: 850; }
.finance-pending-link { display: inline-flex; align-items: center; gap: .42rem; }
.finance-pending-link span { display: grid; min-width: 20px; height: 20px; padding: 0 .3rem; place-items: center; border-radius: 999px; background: var(--accent); color: #fff; font-size: .55rem; font-weight: 900; }

.market-rate-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(125px, .65fr)) minmax(190px, 1.05fr);
    gap: .65rem;
    margin-bottom: .75rem;
}
.market-rate-tile,
.market-rate-source {
    min-width: 0;
    padding: .78rem .85rem;
    border: 1px solid color-mix(in srgb, var(--brand) 18%, var(--line));
    border-radius: 14px;
    background: color-mix(in srgb, var(--surface) 93%, var(--brand-soft));
    transition: transform .22s ease, border-color .22s ease, background .22s ease;
}
.market-rate-tile > span,
.market-rate-source > span { display: flex; align-items: center; gap: .35rem; color: var(--muted); font-size: .52rem; font-weight: 850; letter-spacing: .04em; }
.market-rate-tile > span i { width: 6px; height: 6px; border-radius: 50%; background: var(--success); box-shadow: 0 0 10px color-mix(in srgb, var(--success) 60%, transparent); }
.market-rate-tile strong { display: block; margin: .28rem 0 .1rem; font-size: clamp(.84rem, 1.2vw, 1.08rem); font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.market-rate-tile small,
.market-rate-source small { display: block; color: var(--muted); font-size: .5rem; line-height: 1.45; }
.market-rate-source { display: grid; align-content: center; }
.market-rate-source strong { margin: .25rem 0 .12rem; overflow: hidden; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
.market-rate-tile.just-updated { border-color: color-mix(in srgb, var(--brand) 68%, var(--line)); background: var(--brand-soft); transform: translateY(-2px); }

.market-native-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: .75rem; }
.market-native-chart-card,
.market-converter-card {
    min-width: 0;
    padding: .9rem;
    border: 1px solid color-mix(in srgb, var(--brand) 16%, var(--line));
    border-radius: 15px;
    background: color-mix(in srgb, var(--surface) 93%, transparent);
}
.market-target-control { display: flex; align-items: center; gap: .4rem; margin: 0; }
.market-target-control > span { color: var(--muted); font-size: .5rem; font-weight: 800; }
.market-target-control select { min-height: 32px !important; width: 72px; padding: .3rem .45rem; border-radius: 9px; font-size: .58rem !important; font-weight: 850; }
.market-column-chart { position: relative; height: 225px; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(180deg, color-mix(in srgb, var(--brand-soft) 32%, var(--surface)), var(--surface)); }
.market-chart-grid { position: absolute; inset: 1.5rem .9rem 2.1rem; display: grid; align-content: space-between; pointer-events: none; }
.market-chart-grid i { display: block; border-top: 1px dashed color-mix(in srgb, var(--line) 88%, transparent); }
.market-chart-columns { position: relative; z-index: 1; display: grid; height: 100%; grid-template-columns: repeat(3, 1fr); gap: clamp(.6rem, 3vw, 2.2rem); padding: .75rem clamp(1rem, 5vw, 3.8rem) .65rem; }
.market-chart-column { display: grid; min-width: 0; grid-template-rows: 24px minmax(0, 1fr) 18px 14px; justify-items: center; align-items: end; }
.market-chart-column output { align-self: center; color: var(--ink); font-size: .52rem; font-weight: 850; font-variant-numeric: tabular-nums; white-space: nowrap; }
.market-chart-column > i { position: relative; display: flex; width: min(46px, 68%); height: 100%; align-items: end; overflow: hidden; border-radius: 10px 10px 4px 4px; background: color-mix(in srgb, var(--brand) 7%, var(--surface-soft)); }
.market-chart-column > i > span { width: 100%; height: var(--bar-height); min-height: 0; border-radius: 10px 10px 4px 4px; background: linear-gradient(180deg, #69d7c7 0%, var(--brand) 58%, var(--brand-strong) 100%); box-shadow: 0 -8px 24px color-mix(in srgb, var(--brand) 22%, transparent); transition: height .7s cubic-bezier(.2,.82,.2,1); }
.market-chart-column:nth-child(2) > i > span { background: linear-gradient(180deg, #f2cf83, #c8902d); }
.market-chart-column:nth-child(3) > i > span { background: linear-gradient(180deg, #8ab6e8, #3979ba); }
.market-chart-column > strong { font-size: .66rem; }
.market-chart-column > small { color: var(--muted); font-size: .48rem; }

.market-official-chip { padding: .28rem .42rem; border-radius: 999px; background: var(--brand-soft); color: var(--brand-strong) !important; letter-spacing: .06em !important; }
.market-converter-form { display: grid; grid-template-columns: minmax(70px, 1fr) 74px 30px 74px; gap: .45rem; align-items: end; }
.market-converter-form label { min-width: 0; margin: 0; }
.market-converter-form label > span { display: block; margin-bottom: .25rem; color: var(--muted); font-size: .5rem; font-weight: 800; }
.market-converter-form input,
.market-converter-form select { width: 100%; min-height: 38px !important; padding: .42rem .5rem; border-radius: 10px; font-size: .65rem !important; }
.market-converter-form button { display: grid; width: 30px; height: 38px; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); color: var(--brand-strong); cursor: pointer; font-size: .9rem; }
.market-converter-result { display: block; margin-top: .7rem; padding: .8rem; border-radius: 13px; background: linear-gradient(135deg, var(--brand-soft), color-mix(in srgb, var(--surface) 88%, var(--brand-soft))); }
.market-converter-result small,
.market-converter-result strong { display: block; }
.market-converter-result small { color: var(--muted); font-size: .5rem; }
.market-converter-result strong { margin-top: .2rem; color: var(--brand-strong); font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.market-quick-links { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin-top: .7rem; }
.market-quick-links > span { width: 100%; color: var(--muted); font-size: .49rem; font-weight: 800; }
.market-quick-links a { padding: .32rem .44rem; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-soft); color: var(--muted); font-size: .49rem; font-weight: 800; text-decoration: none; }
.market-quick-links a:hover { border-color: color-mix(in srgb, var(--brand) 50%, var(--line)); color: var(--brand-strong); }

@media (max-width: 1180px) {
    .finance-filter { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .market-rate-strip { grid-template-columns: repeat(3, 1fr); }
    .market-rate-source { grid-column: 1 / -1; }
    .market-native-grid { grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); }
}
@media (max-width: 820px) {
    .finance-filter { grid-template-columns: 1fr 1fr; }
    .finance-filter .finance-search,
    .finance-filter button { grid-column: 1 / -1; }
    .market-native-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .finance-filter { grid-template-columns: 1fr; }
    .finance-view-context { display: grid; }
    .market-rate-strip { grid-template-columns: 1fr; }
    .market-rate-source { grid-column: auto; }
    .market-column-chart { height: 205px; }
    .market-chart-columns { gap: .55rem; padding-inline: .8rem; }
    .market-converter-form { grid-template-columns: minmax(84px, 1fr) 70px 30px 70px; }
}
@media (max-width: 410px) {
    .market-converter-form { grid-template-columns: 1fr 1fr; }
    .market-converter-form button { grid-column: 1 / -1; width: 100%; height: 32px; }
}
@media (prefers-reduced-motion: reduce) {
    .market-rate-tile,
    .market-chart-column > i > span { transition: none; }
}
