/* ============================================================
   platform.css — durumlar, etkinlikler, mağaza, kredi, liderlik,
   rozetler, dosya yöneticisi, bakım ekranı ve yardımcı parçalar.
   Renkler yalnızca tokens.css değişkenlerinden gelir.
   ============================================================ */

/* ------------------------------------------------------------
   Durum şeridi (ana sayfa)
   ------------------------------------------------------------ */

.stories {
    position: relative;
    display: flex; align-items: center; gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}
.stories::before {
    content: ''; position: absolute; inset: 0;
    background: var(--grad-sheen);
    opacity: .5; pointer-events: none;
}
.stories__rail {
    display: flex; gap: var(--sp-4);
    overflow-x: auto; scrollbar-width: none;
    padding: 2px 0;
    -webkit-overflow-scrolling: touch;
}
.stories__rail::-webkit-scrollbar { display: none; }

.story-bubble {
    position: relative; z-index: 1;
    display: flex; flex-direction: column; align-items: center; gap: 7px;
    flex: none; width: 74px;
    color: var(--text-muted);
    font-size: var(--fs-3xs); font-weight: 700;
    text-align: center;
}
.story-bubble__ring {
    display: grid; place-items: center;
    width: 62px; height: 62px; border-radius: 50%;
    padding: 3px;
    background: conic-gradient(from 210deg, var(--primary), var(--accent), var(--primary-2), var(--primary));
    transition: transform var(--dur) var(--ease-spring);
}
.story-bubble--seen .story-bubble__ring {
    background: var(--border);
}
.story-bubble__ring > * {
    border: 3px solid var(--surface);
    border-radius: 50%;
    background: var(--surface-2);
}
.story-bubble:hover .story-bubble__ring { transform: scale(1.07) rotate(-3deg); }
.story-bubble span {
    max-width: 100%;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.story-bubble--new .story-bubble__ring {
    background: var(--surface-3);
    border: 2px dashed var(--border-strong);
    padding: 0;
    color: var(--primary-2);
}
.story-bubble--new:hover .story-bubble__ring { border-color: var(--primary); }
.story-bubble__count {
    position: absolute; top: -2px; right: 8px;
    min-width: 18px; height: 18px; padding: 0 5px;
    display: grid; place-items: center;
    border-radius: var(--r-pill);
    background: var(--grad-primary);
    color: #fff; font-size: 10px; font-weight: 800;
    border: 2px solid var(--surface);
}

/* Durum oluşturma kutusu */
.story-composer { display: grid; gap: var(--sp-3); }
.story-composer__preview {
    display: grid; place-items: center;
    min-height: 190px; padding: var(--sp-5);
    border-radius: var(--r-lg);
    background: var(--story-bg, var(--grad-primary));
    color: #fff; font-size: var(--fs-lg); font-weight: 700; text-align: center;
    text-shadow: 0 2px 12px rgba(0,0,0,.35);
    word-break: break-word;
}
.bg-swatches { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.bg-swatch {
    display: grid; align-content: end;
    width: 92px; height: 58px; padding: 6px;
    border-radius: var(--r-md);
    border: 2px solid transparent;
    cursor: pointer;
    transition: transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.bg-swatch span { color: #fff; font-size: var(--fs-3xs); font-weight: 700; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.bg-swatch:hover { transform: translateY(-2px); }
.bg-swatch.is-active { border-color: var(--text); }

.story-mini {
    display: grid; align-content: center;
    width: 128px; min-height: 54px; padding: 8px 10px;
    border-radius: var(--r-sm);
    color: #fff; font-size: var(--fs-3xs); font-weight: 600; line-height: 1.35;
    text-shadow: 0 1px 6px rgba(0,0,0,.45);
}

/* ------------------------------------------------------------
   Durum görüntüleyici
   ------------------------------------------------------------ */

.story-stage { display: grid; gap: var(--sp-4); justify-items: center; }

.story-viewer {
    position: relative;
    width: min(420px, 100%);
    aspect-ratio: 9 / 16;
    max-height: 78vh;
    display: grid; grid-template-rows: auto auto 1fr auto;
    border-radius: var(--r-xl);
    background: var(--story-bg, var(--grad-primary));
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    color: #fff;
}
.story-viewer::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.35), transparent 28%, transparent 62%, rgba(0,0,0,.45));
    pointer-events: none;
}
.story-viewer__progress {
    position: relative; z-index: 2;
    display: flex; gap: 4px; padding: var(--sp-3) var(--sp-3) 0;
}
.story-viewer__progress span {
    flex: 1; height: 3px; border-radius: var(--r-pill);
    background: rgba(255,255,255,.3);
}
.story-viewer__progress .is-done { background: rgba(255,255,255,.75); }
.story-viewer__progress .is-live { background: #fff; box-shadow: 0 0 10px rgba(255,255,255,.7); }

.story-viewer__head {
    position: relative; z-index: 2;
    display: flex; align-items: center; gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
}
.story-viewer__head strong { display: block; font-size: var(--fs-sm); font-weight: 700; }
.story-viewer__head span { font-size: var(--fs-3xs); opacity: .85; }
.story-viewer__head .avatar { border: 2px solid rgba(255,255,255,.7); }
.story-viewer__close {
    margin-left: auto; display: grid; place-items: center;
    width: 32px; height: 32px; border-radius: 50%;
    background: rgba(0,0,0,.25); color: #fff;
    transition: background var(--dur-fast) var(--ease);
}
.story-viewer__close:hover { background: rgba(0,0,0,.45); }

.story-viewer__body {
    position: relative; z-index: 2;
    display: grid; align-content: center; justify-items: center; gap: var(--sp-4);
    padding: var(--sp-5);
    text-align: center;
}
.story-viewer__body p {
    font-size: clamp(1.1rem, 1.6vw + .7rem, 1.7rem);
    font-weight: 700; line-height: 1.35;
    text-shadow: 0 2px 16px rgba(0,0,0,.4);
    word-break: break-word;
}
.story-viewer__foot {
    position: relative; z-index: 2;
    display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
    padding: var(--sp-3) var(--sp-4);
    font-size: var(--fs-xs); font-weight: 700;
}
.story-viewer__foot .link-btn { color: #fff; opacity: .9; }
.story-viewer__nav {
    position: absolute; top: 0; bottom: 0; z-index: 3;
    display: grid; place-items: center;
    width: 22%; color: #fff; opacity: 0;
    transition: opacity var(--dur) var(--ease);
}
.story-viewer:hover .story-viewer__nav { opacity: .85; }
.story-viewer__nav--prev { left: 0; }
.story-viewer__nav--prev .ico { transform: rotate(90deg); }
.story-viewer__nav--next { right: 0; }
.story-viewer__nav--next .ico { transform: rotate(-90deg); }
.story-viewers { width: min(420px, 100%); }

/* ------------------------------------------------------------
   Etkinlikler
   ------------------------------------------------------------ */

.event-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: var(--sp-4);
}
.event-card {
    position: relative;
    display: grid; grid-template-rows: 132px auto;
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    background: var(--surface);
    overflow: hidden;
    color: var(--text);
    box-shadow: var(--shadow-xs);
    transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.event-card:hover {
    transform: translateY(-3px);
    border-color: var(--primary);
    box-shadow: var(--shadow-md);
}
.event-card--live { border-color: var(--danger); }
.event-card__banner {
    background-size: cover; background-position: center;
    background-color: var(--surface-3);
    position: relative;
}
.event-card__banner::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 40%, var(--surface));
}
.event-card__banner--plain {
    display: grid; place-items: center;
    background: var(--grad-primary);
    color: #fff;
}
.event-card__date {
    position: absolute; top: var(--sp-3); right: var(--sp-3); z-index: 2;
    display: grid; justify-items: center;
    min-width: 54px; padding: 7px 9px;
    border-radius: var(--r-md);
    background: var(--surface-glass);
    backdrop-filter: blur(10px);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
}
.event-card__date b { font-size: var(--fs-lg); font-weight: 800; line-height: 1; }
.event-card__date i { font-style: normal; font-size: var(--fs-3xs); color: var(--text-dim); text-transform: uppercase; letter-spacing: .08em; }
.event-card__body { display: grid; gap: 6px; padding: var(--sp-4); align-content: start; }
.event-card__body strong { font-size: var(--fs-md); font-weight: 700; letter-spacing: -.01em; }
.event-card__body .muted { display: flex; align-items: center; gap: 5px; font-size: var(--fs-xs); flex-wrap: wrap; }
.event-card__meta {
    display: flex; align-items: center; gap: 5px;
    margin-top: 3px; padding-top: var(--sp-3);
    border-top: 1px solid var(--border-soft);
    color: var(--text-dim); font-size: var(--fs-xs);
}

.event-hero {
    position: relative;
    border: 1px solid var(--border);
    border-radius: var(--r-xl);
    background: var(--surface);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}
.event-hero::before {
    content: ''; position: absolute; inset: 0;
    background: var(--glow-hero);
    pointer-events: none;
}
.event-hero--banner::before {
    background-image: var(--event-banner);
    background-size: cover; background-position: center;
    opacity: .3;
}
.event-hero__inner { position: relative; padding: var(--sp-6) var(--sp-5); display: grid; gap: var(--sp-3); }
.event-hero__badges { display: flex; gap: 6px; flex-wrap: wrap; }
.event-hero__title { font-size: var(--fs-3xl); font-weight: 800; letter-spacing: -.035em; }
.event-hero__meta {
    display: flex; flex-wrap: wrap; gap: var(--sp-4);
    color: var(--text-muted); font-size: var(--fs-sm);
}
.event-hero__meta span { display: inline-flex; align-items: center; gap: 6px; }
.event-hero__meta .ico { color: var(--primary-2); }

.event-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--sp-4); align-items: start; }
.event-layout > div, .event-layout > aside { display: grid; gap: var(--sp-4); }

.attend-form { display: flex; gap: var(--sp-2); flex-wrap: wrap; }

.face-pile { display: flex; flex-wrap: wrap; gap: 7px; }
.face-pile a { transition: transform var(--dur-fast) var(--ease-spring); }
.face-pile a:hover { transform: translateY(-3px) scale(1.08); z-index: 2; }

/* ------------------------------------------------------------
   Mağaza ve krediler
   ------------------------------------------------------------ */

.balance-pill {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px var(--sp-4);
    border-radius: var(--r-pill);
    border: 1px solid var(--border);
    background: var(--surface-2);
    color: var(--text);
    font-size: var(--fs-sm); font-weight: 700;
    box-shadow: var(--inset-top);
    transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.balance-pill:hover { border-color: var(--primary); transform: translateY(-1px); }
.balance-pill .ico { color: var(--warn); }
.balance-pill b { font-size: var(--fs-md); font-variant-numeric: tabular-nums; }
.balance-pill span { color: var(--text-dim); font-weight: 600; font-size: var(--fs-xs); }

.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: var(--sp-4); }
.shop-card {
    position: relative;
    display: grid; gap: 8px; align-content: start;
    padding: var(--sp-5);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
    transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.shop-card::before {
    content: ''; position: absolute; inset-inline: 0; top: 0; height: 3px;
    background: linear-gradient(90deg, var(--shop-color, var(--primary)), transparent);
}
.shop-card:hover { transform: translateY(-3px); border-color: var(--shop-color, var(--primary)); box-shadow: var(--shadow-md); }
.shop-card--owned { opacity: .72; }
.shop-card__icon {
    display: grid; place-items: center;
    width: 44px; height: 44px; border-radius: var(--r-md);
    background: color-mix(in srgb, var(--shop-color, var(--primary)) 16%, transparent);
    color: var(--shop-color, var(--primary-2));
}
.shop-card__type {
    font-size: var(--fs-3xs); font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
    color: var(--text-faint);
}
.shop-card__title { font-size: var(--fs-md); font-weight: 700; }
.shop-card__desc { color: var(--text-dim); font-size: var(--fs-xs); min-height: 2.4em; }
.shop-card__foot {
    display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2);
    margin-top: 4px; padding-top: var(--sp-3);
    border-top: 1px solid var(--border-soft);
}
.shop-card__price {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: var(--fs-md); font-weight: 800; font-variant-numeric: tabular-nums;
}
.shop-card__price .ico { color: var(--warn); }
.shop-card__stock { color: var(--text-faint); font-size: var(--fs-3xs); }

.credit-summary {
    display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: var(--sp-4);
    padding: var(--sp-5);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--shadow-xs);
    position: relative; overflow: hidden;
}
.credit-summary::before {
    content: ''; position: absolute; inset: 0;
    background: var(--glow-head); pointer-events: none;
}
.credit-summary__main { position: relative; display: grid; gap: 3px; align-content: center; }
.credit-summary__main > span { display: inline-flex; align-items: center; gap: 7px; color: var(--text-dim); font-size: var(--fs-sm); font-weight: 700; }
.credit-summary__main > span .ico { color: var(--warn); }
.credit-summary__main strong {
    font-size: var(--fs-4xl); font-weight: 800; letter-spacing: -.04em; line-height: 1.05;
    background: var(--grad-primary);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.credit-summary__main em { font-style: normal; color: var(--text-faint); font-size: var(--fs-xs); }
.credit-summary__side {
    position: relative;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: var(--sp-3);
    align-content: center;
}
.credit-summary__side > div {
    display: grid; gap: 3px;
    padding: var(--sp-3) var(--sp-4);
    border: 1px solid var(--border-soft);
    border-radius: var(--r-md);
    background: var(--surface-2);
}
.credit-summary__side span { color: var(--text-dim); font-size: var(--fs-xs); }
.credit-summary__side b { font-size: var(--fs-lg); font-weight: 800; font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------
   Liderlik tablosu
   ------------------------------------------------------------ */

.podium {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-4);
    align-items: end;
}
.podium__place {
    position: relative;
    display: grid; justify-items: center; gap: 7px;
    padding: var(--sp-5) var(--sp-4);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    background: var(--surface);
    box-shadow: var(--shadow-xs);
    text-align: center;
    overflow: hidden;
}
.podium__place::before {
    content: ''; position: absolute; inset-inline: 0; top: 0; height: 3px;
    background: var(--podium-color, var(--border-strong));
}
.podium__place--1 { --podium-color: #f0b429; padding-block: var(--sp-6); box-shadow: var(--shadow-md), 0 0 40px -18px #f0b429; }
.podium__place--2 { --podium-color: #b6c2d1; }
.podium__place--3 { --podium-color: #cd8032; }
.podium__rank {
    display: grid; place-items: center;
    width: 26px; height: 26px; border-radius: 50%;
    background: var(--podium-color);
    color: #14161f; font-size: var(--fs-xs); font-weight: 800;
}
.podium__place .avatar { border: 3px solid var(--podium-color); }
.podium__score { font-size: var(--fs-lg); font-weight: 800; font-variant-numeric: tabular-nums; }
.podium__score i { font-style: normal; font-size: var(--fs-xs); font-weight: 600; color: var(--text-dim); }

/* ------------------------------------------------------------
   Rozetler
   ------------------------------------------------------------ */

.badge-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--sp-3); padding: var(--sp-4);
}
.badge-card {
    display: flex; align-items: flex-start; gap: var(--sp-3);
    padding: var(--sp-4);
    border: 1px solid var(--border-soft);
    border-radius: var(--r-md);
    background: var(--surface-2);
    transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.badge-card:hover { border-color: var(--badge-color, var(--primary)); transform: translateY(-2px); }
.badge-card__icon {
    display: grid; place-items: center; flex: none;
    width: 40px; height: 40px; border-radius: var(--r-md);
    background: color-mix(in srgb, var(--badge-color, var(--primary)) 18%, transparent);
    color: var(--badge-color, var(--primary-2));
}
.badge-card--legendary .badge-card__icon { box-shadow: 0 0 22px -6px var(--badge-color); }
.badge-card__body { flex: 1; min-width: 0; }
.badge-card__body strong { display: block; font-size: var(--fs-sm); font-weight: 700; }
.badge-card__body p { color: var(--text-dim); font-size: var(--fs-xs); margin-top: 2px; }
.badge-card__meta { display: block; margin-top: 5px; color: var(--text-faint); font-size: var(--fs-3xs); font-weight: 700; }

/* Profilde rozet rozetçikleri */
.badge-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.badge-pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 11px;
    border-radius: var(--r-pill);
    border: 1px solid color-mix(in srgb, var(--badge-color, var(--primary)) 45%, transparent);
    background: color-mix(in srgb, var(--badge-color, var(--primary)) 13%, transparent);
    color: var(--text);
    font-size: var(--fs-3xs); font-weight: 700;
}
.badge-pill .ico { color: var(--badge-color, var(--primary-2)); }

/* ------------------------------------------------------------
   Dosya yöneticisi
   ------------------------------------------------------------ */

.file-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: var(--sp-3); padding: var(--sp-4);
}
.file-card {
    display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: var(--sp-3);
    align-items: center;
    padding: var(--sp-3);
    border: 1px solid var(--border-soft);
    border-radius: var(--r-md);
    background: var(--surface-2);
}
.file-card--missing { border-color: color-mix(in srgb, var(--danger) 45%, transparent); }
.file-card__thumb {
    display: grid; place-items: center; gap: 3px;
    width: 62px; height: 62px;
    border-radius: var(--r-sm);
    background: var(--surface-4);
    color: var(--text-dim);
    overflow: hidden;
}
.file-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.file-card__thumb span { font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.file-card__body { display: grid; gap: 2px; min-width: 0; }
.file-card__body strong { font-size: var(--fs-xs); font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-card__body .muted { font-size: var(--fs-3xs); }

/* ------------------------------------------------------------
   Yardımcı parçalar
   ------------------------------------------------------------ */

.switch-row {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--sp-4); flex-wrap: wrap;
}
.switch-row strong { font-size: var(--fs-md); font-weight: 700; }
.switch-row p { color: var(--text-dim); font-size: var(--fs-sm); margin-top: 3px; max-width: 60ch; }

.copy-code {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 9px;
    border-radius: var(--r-sm);
    border: 1px dashed var(--border-strong);
    background: var(--surface-3);
    font: 600 var(--fs-xs)/1.4 var(--font-mono);
    color: var(--text-muted);
    cursor: pointer; user-select: all;
    transition: all var(--dur-fast) var(--ease);
}
.copy-code:hover { border-color: var(--primary); color: var(--text); }
.copy-code.is-copied { border-color: var(--success); color: var(--success); }

.api-list { display: grid; gap: 8px; margin-top: var(--sp-3); }
.api-list li { display: flex; align-items: center; gap: 8px; font-size: var(--fs-xs); color: var(--text-dim); flex-wrap: wrap; }

.prefix-stats { display: grid; gap: var(--sp-3); }
.prefix-stat { display: grid; grid-template-columns: 150px minmax(0, 1fr) 54px; gap: var(--sp-3); align-items: center; }
.prefix-stat .meter { margin: 0; }
.prefix-stat b { text-align: right; font-variant-numeric: tabular-nums; font-size: var(--fs-sm); }

.field__input--mini { padding: 6px 9px; font-size: var(--fs-xs); }

.cms-page__foot {
    padding: var(--sp-3) var(--sp-5);
    border-top: 1px solid var(--border-soft);
    color: var(--text-faint); font-size: var(--fs-xs);
}
.cms-page--full { max-width: none; }

/* Bakım ekranı */
.maintenance-card { text-align: center; display: grid; gap: var(--sp-3); justify-items: center; }
.maintenance-card__icon {
    display: grid; place-items: center;
    width: 62px; height: 62px; border-radius: var(--r-lg);
    background: var(--surface-3);
    color: var(--warn);
    box-shadow: var(--inset-top);
}
.maintenance-card .auth-card__sub { margin-bottom: 0; }
.maintenance-card__dots { display: flex; gap: 7px; margin: var(--sp-2) 0 var(--sp-4); }
.maintenance-card__dots span {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--primary);
    animation: mnt-bounce 1.3s var(--ease) infinite;
}
.maintenance-card__dots span:nth-child(2) { animation-delay: .18s; background: var(--primary-2); }
.maintenance-card__dots span:nth-child(3) { animation-delay: .36s; background: var(--accent); }

@keyframes mnt-bounce {
    0%, 70%, 100% { transform: translateY(0); opacity: .45; }
    35%           { transform: translateY(-7px); opacity: 1; }
}

/* ------------------------------------------------------------
   Duyarlı düzen
   ------------------------------------------------------------ */

@media (max-width: 1000px) {
    .event-layout { grid-template-columns: 1fr; }
    .credit-summary { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .podium { grid-template-columns: 1fr; align-items: stretch; }
    .podium__place--1 { order: -1; }
    .prefix-stat { grid-template-columns: 110px minmax(0, 1fr) 46px; }
    .story-viewer { aspect-ratio: auto; min-height: 64vh; }
    .file-grid, .badge-grid, .health-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .story-bubble__ring, .event-card, .shop-card, .badge-card, .face-pile a { transition: none; }
    .maintenance-card__dots span { animation: none; }
}

/* ============================================================
   v2 SONRASI EKLENEN ÖZELLİKLER
   Bu blok, tema v2'ye geri alındıktan sonra da çalışması gereken
   parçaları taşır: kip pencere, ek dosya kutusu, profil rozetleri,
   tema paleti önizlemesi. Tasarım dili v2 ile uyumlu tutuldu.
   ============================================================ */

/* ------------------------------------------------------------ Kip pencere */

.modal {
    width: min(460px, calc(100vw - 32px));
    max-height: 100vh;
    padding: 0; border: 0;
    border-radius: var(--r-xl);
    background: transparent;
    color: var(--text);
    overflow: visible;
}
.modal::backdrop { background: rgba(6, 8, 16, .68); backdrop-filter: blur(4px); }
.modal__box {
    display: grid; gap: var(--sp-4);
    padding: var(--sp-5);
    border: 1px solid var(--border);
    border-radius: var(--r-xl);
    background: var(--surface);
    box-shadow: var(--shadow-lg);
    animation: modal-in var(--dur) var(--ease-spring);
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.modal__head {
    position: sticky; top: calc(var(--sp-5) * -1); z-index: 2;
    display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
    background: var(--surface); padding-block: 2px; margin-block: -2px;
}
.modal__head strong { display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-md); font-weight: 700; }
.modal__head .ico { color: var(--primary-2); }
.modal__foot {
    position: sticky; bottom: calc(var(--sp-5) * -1); z-index: 2;
    display: flex; justify-content: flex-end; gap: var(--sp-2);
    background: var(--surface); padding-block: 4px; margin-block: -4px;
}
@keyframes modal-in {
    from { transform: translateY(12px) scale(.97); opacity: 0; }
    to   { transform: none; opacity: 1; }
}

/* ------------------------------------------------------------ Profilde rozet ve durumlar */

.badge-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.badge-pill {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 12px;
    border-radius: var(--r-pill);
    border: 1px solid color-mix(in srgb, var(--badge-color, var(--primary)) 45%, transparent);
    background: color-mix(in srgb, var(--badge-color, var(--primary)) 14%, transparent);
    color: var(--text);
    font-size: var(--fs-3xs); font-weight: 700;
}
.badge-pill .ico { color: var(--badge-color, var(--primary-2)); }

.profile__badges { padding: 0 var(--sp-5) var(--sp-3); }
.profile__stories { display: flex; gap: var(--sp-2); flex-wrap: wrap; padding: 0 var(--sp-5) var(--sp-4); }
.profile__stories .story-mini { transition: transform var(--dur) var(--ease-spring); }
.profile__stories .story-mini:hover { transform: translateY(-3px); }

/* ------------------------------------------------------------ Ek dosyalar */

.attachbox {
    border-top: 1px solid var(--border-soft);
    padding: var(--sp-3) var(--sp-4);
    background: var(--surface-2);
    transition: background var(--dur-fast) var(--ease);
}
.attachbox.is-drop { background: var(--primary-soft); }
.attachbox__list { display: grid; gap: 6px; }
.attachbox__item {
    display: flex; align-items: center; gap: var(--sp-3);
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--r-sm);
    background: var(--surface);
    font-size: var(--fs-xs);
}
.attachbox__item.is-busy  { opacity: .7; }
.attachbox__item.is-error { border-color: color-mix(in srgb, var(--danger) 45%, transparent); }
.attachbox__thumb {
    width: 34px; height: 34px; flex: none;
    border-radius: var(--r-xs);
    object-fit: cover;
    background: var(--surface-4);
}
.attachbox__thumb--file {
    display: grid; place-items: center;
    font-size: 9px; font-weight: 800; color: var(--text-faint); letter-spacing: .06em;
}
.attachbox__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.attachbox__size { color: var(--text-faint); font-variant-numeric: tabular-nums; }
.attachbox__err  { color: var(--danger); font-weight: 700; }
.attachbox__hint { color: var(--text-faint); font-size: var(--fs-3xs); margin-top: 7px; }

.attachments { margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px dashed var(--border); }
.attachments__label {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--text-faint); font-size: var(--fs-3xs);
    font-weight: 800; letter-spacing: var(--tracking-wide); text-transform: uppercase;
}
.attachments__grid { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-2); }
.attachment {
    display: flex; align-items: center; gap: var(--sp-2);
    padding: 8px 11px;
    border: 1px solid var(--border);
    border-radius: var(--r-md);
    background: var(--surface-2);
    color: var(--text-muted);
    transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.attachment:hover { border-color: var(--primary); color: var(--text); transform: translateY(-2px); }
.attachment__ext {
    display: grid; place-items: center;
    width: 34px; height: 34px; flex: none;
    border-radius: var(--r-xs);
    background: var(--surface-4);
    font-size: 9px; font-weight: 800; letter-spacing: .04em;
}
.attachment__meta { display: grid; gap: 1px; min-width: 0; }
.attachment__meta strong { font-size: var(--fs-xs); font-weight: 700; }
.attachment__meta em { font-style: normal; font-size: var(--fs-3xs); color: var(--text-faint); }
.attachment--image { flex-direction: column; align-items: stretch; gap: 6px; width: 148px; padding: 7px; }
.attachment--image img {
    width: 100%; height: 104px; object-fit: cover;
    border-radius: var(--r-sm);
    background: var(--surface-4);
}
.attachment--image span {
    font-size: var(--fs-3xs); text-align: center;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ------------------------------------------------------------ Tema paleti önizlemesi */

.style-card__swatch { display: flex; overflow: hidden; }
.style-card__swatch span { flex: 1; }

@media (prefers-reduced-motion: reduce) {
    .modal__box { animation: none; }
}
