/* Турниры и достижения */
.trn {
    --trn-ink: var(--crm-ink, rgba(0, 0, 0, .88));
    --trn-muted: var(--crm-muted, rgba(0, 0, 0, .45));
    --trn-line: var(--crm-line, #e6edf4);
    --trn-card: var(--surface, #fff);
    --trn-well: var(--crm-well, #f8fafc);
    --trn-blue: var(--crm-blue, #1677ff);
    --trn-gold: #e8a400;
    --trn-silver: #8c99a8;
    --trn-bronze: #c46b2d;
    display: flex; flex-direction: column; gap: 16px; color: var(--trn-ink);
}
.trn-muted { color: var(--trn-muted); font-size: 13px; }
.trn .is-hidden { display: none !important; }

.trn-hero {
    position: relative; overflow: hidden; display: grid; grid-template-columns: 1.3fr 1fr; gap: 20px;
    padding: 24px; border-radius: 20px; color: #fff;
    background: radial-gradient(120% 140% at 100% 0%, #3b2a00 0%, transparent 55%), linear-gradient(135deg, #111827 0%, #1f2937 60%, #3a2c06 100%);
    box-shadow: 0 12px 32px rgba(17, 24, 39, .18);
}
.trn-hero::after {
    content: '🏆'; position: absolute; right: -12px; bottom: -30px; font-size: 160px; opacity: .08; pointer-events: none;
}
.trn-hero__eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: #f5c451; font-weight: 600; }
.trn-hero h2 { margin: 6px 0 6px; font-size: 24px; color: #fff; }
.trn-hero p { margin: 0; color: rgba(255, 255, 255, .7); font-size: 14px; max-width: 420px; }
.trn-hero__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.trn-hero .btn-secondary { background: rgba(255, 255, 255, .1); color: #fff; border-color: rgba(255, 255, 255, .2); }
.trn-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-content: center; }
.trn-stat {
    padding: 12px 14px; border-radius: 14px; background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .08); display: flex; flex-direction: column;
}
.trn-stat strong { font-size: 24px; line-height: 1.1; }
.trn-stat span { font-size: 12px; color: rgba(255, 255, 255, .6); }
.trn-stat--gold strong { color: #f5c451; }

.trn-tabs { display: flex; gap: 6px; }
.trn-tab {
    padding: 8px 16px; border-radius: 999px; font-size: 14px; font-weight: 500; color: var(--trn-muted); text-decoration: none;
}
.trn-tab:hover { color: var(--trn-ink); background: var(--crm-hover, #f7faff); }
.trn-tab.is-on { background: var(--trn-card); color: var(--trn-ink); box-shadow: 0 1px 3px rgba(15, 23, 42, .08); }
.trn-tab em { font-style: normal; margin-left: 4px; padding: 0 7px; border-radius: 999px; background: var(--trn-gold); color: #fff; font-size: 12px; }

.trn-filters { display: flex; gap: 8px; flex-wrap: wrap; }
.trn-filters input, .trn-filters select {
    height: 38px; padding: 0 12px; border: 1px solid var(--trn-line); border-radius: 10px; background: var(--trn-card); font-size: 14px;
}
.trn-filters input { flex: 1; min-width: 180px; }

.trn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.trn-card {
    --medal: var(--trn-blue);
    position: relative; display: flex; gap: 14px; align-items: flex-start; padding: 16px;
    border-radius: 16px; background: var(--trn-card); border: 1px solid var(--trn-line);
    transition: transform .15s, box-shadow .15s; animation: trn-in .35s ease both;
}
.trn-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15, 23, 42, .08); }
.trn-card--gold { --medal: var(--trn-gold); }
.trn-card--silver { --medal: var(--trn-silver); }
.trn-card--bronze { --medal: var(--trn-bronze); }
.trn-card--cup { --medal: #d97706; }
.trn-card--rank { --medal: #7c3aed; }
.trn-card--award { --medal: #0ea5e9; }
.trn-card::before {
    content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; border-radius: 16px 0 0 16px; background: var(--medal);
}
.trn-medal {
    flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
    font-weight: 800; font-size: 18px; color: #fff;
    background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .55), transparent 45%), var(--medal, var(--trn-blue));
    box-shadow: 0 4px 12px color-mix(in srgb, var(--medal, #1677ff) 40%, transparent), inset 0 -2px 0 rgba(0, 0, 0, .15);
}
.trn-medal--sm { width: 30px; height: 30px; font-size: 13px; }
.trn-card__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.trn-card__title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--medal); }
.trn-card__name { font-size: 16px; }
.trn-card__photo { width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
.trn-card__edit {
    position: absolute; top: 8px; right: 10px; color: var(--trn-muted); text-decoration: none; opacity: 0; transition: opacity .15s;
}
.trn-card:hover .trn-card__edit, .trn-card__edit:focus { opacity: 1; }
@media (hover: none) { .trn-card__edit { opacity: 1; } }

.trn-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.trn-tag { padding: 2px 8px; border-radius: 999px; background: var(--trn-well); border: 1px solid var(--trn-line); font-size: 12px; color: var(--trn-muted); }
.trn-tag--muted { background: transparent; border-style: dashed; }

.trn-h { margin: 4px 0 0; font-size: 15px; }
.trn-comps { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.trn-comp {
    display: flex; gap: 14px; padding: 16px; border-radius: 16px; background: var(--trn-card);
    border: 1px solid var(--trn-line); position: relative; overflow: hidden; animation: trn-in .35s ease both;
}
.trn-comp__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .12; pointer-events: none; }
.trn-comp__date {
    flex: none; width: 56px; height: 62px; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: linear-gradient(160deg, #fff4d6, #ffe08a); color: #7a4b00; position: relative;
}
.trn-comp__date strong { font-size: 22px; line-height: 1; }
.trn-comp__date span { font-size: 12px; text-transform: uppercase; }
.trn-comp__body { position: relative; flex: 1; min-width: 0; }
.trn-comp__body h4 { margin: 0 0 2px; font-size: 16px; }
.trn-comp__desc { margin: 8px 0 0; font-size: 13px; color: var(--trn-ink); opacity: .8; }
.trn-comp__actions { display: flex; gap: 14px; margin-top: 10px; font-size: 13px; }
.trn-comp__actions a, .trn-link { color: var(--trn-blue); text-decoration: none; font-weight: 500; background: none; border: 0; padding: 0; cursor: pointer; font-size: 13px; }

.trn-list { display: flex; flex-direction: column; border: 1px solid var(--trn-line); border-radius: 14px; background: var(--trn-card); }
.trn-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid var(--trn-line); }
.trn-row:first-child { border-top: 0; }
.trn-row__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.trn-empty {
    display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
    padding: 40px 20px; border: 1px dashed var(--trn-line); border-radius: 16px; background: var(--trn-well);
}
.trn-empty__icon { font-size: 40px; }
.trn-empty p { margin: 0; max-width: 380px; color: var(--trn-muted); }

/* forms */
.trn-back { color: var(--trn-muted); text-decoration: none; font-size: 14px; }
.trn-form { display: flex; flex-direction: column; gap: 16px; max-width: 720px; }
.trn-panel { padding: 20px; border-radius: 16px; background: var(--trn-card); border: 1px solid var(--trn-line); display: flex; flex-direction: column; gap: 14px; }
.trn-panel__title { margin: 0; font-size: 17px; }
.trn-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.trn-field > label { font-size: 13px; font-weight: 600; }
.trn-field input:not([type=radio]):not([type=checkbox]):not([type=file]), .trn-field select, .trn-field textarea {
    width: 100%; padding: 9px 12px; border: 1px solid var(--trn-line); border-radius: 10px; font-size: 14px; background: var(--trn-card);
}
.trn-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.trn-error { color: #d4380d; font-size: 12px; }
.trn-alert { padding: 10px 14px; border-radius: 10px; background: #fff2e8; color: #ad4e00; font-size: 14px; }
.trn-check { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.trn-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.trn-danger { margin-left: auto; color: #cf1322; background: transparent; border: 1px solid #ffccc7; }

.trn-kinds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.trn-kind input { position: absolute; opacity: 0; pointer-events: none; }
.trn-kind span {
    display: block; text-align: center; padding: 10px 6px; border-radius: 12px; border: 1px solid var(--trn-line);
    font-size: 13px; font-weight: 600; cursor: pointer; transition: all .15s;
}
.trn-kind--gold { --medal: var(--trn-gold); }
.trn-kind--silver { --medal: var(--trn-silver); }
.trn-kind--bronze { --medal: var(--trn-bronze); }
.trn-kind--cup { --medal: #d97706; }
.trn-kind--rank { --medal: #7c3aed; }
.trn-kind--award { --medal: #0ea5e9; }
.trn-kind input:checked + span { background: var(--medal); border-color: var(--medal); color: #fff; box-shadow: 0 4px 12px color-mix(in srgb, var(--medal) 35%, transparent); }
.trn-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.trn-chip { padding: 5px 11px; border-radius: 999px; border: 1px solid var(--trn-line); background: var(--trn-well); font-size: 13px; cursor: pointer; }
.trn-chip:hover { border-color: var(--trn-blue); color: var(--trn-blue); }

.trn-picker__chosen { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid var(--trn-line); border-radius: 12px; background: var(--trn-well); }
.trn-picker__chosen strong { flex: 1; }
.trn-avatar { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--trn-blue); color: #fff; font-weight: 700; }
.trn-picker__results { list-style: none; margin: 6px 0 0; padding: 0; max-height: 260px; overflow: auto; border-radius: 12px; }
.trn-picker__results:empty { display: none; }
.trn-picker__results li { padding: 0; }
.trn-picker__results li.trn-muted { padding: 10px 12px; }
.trn-picker__results button {
    width: 100%; display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; border: 0; background: none; text-align: left; cursor: pointer; border-radius: 10px; font-size: 14px;
}
.trn-picker__results button:hover { background: var(--crm-hover, #f0f6ff); }
.trn-picker__results button span { color: var(--trn-muted); font-size: 13px; }

/* кнопка в журнале посещений */
.crm-drawer-trophy {
    flex: none; display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 9px;
    color: #b7791f; background: #fff8e6; text-decoration: none; transition: transform .15s, background .15s;
}
.crm-drawer-trophy:hover { transform: scale(1.08); background: #ffefc2; }
.crm-drawer-trophy svg { width: 17px; height: 17px; }

@keyframes trn-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
    .trn-hero { grid-template-columns: 1fr; padding: 20px; }
    .trn-field-row { grid-template-columns: 1fr; }
    .trn-kinds { grid-template-columns: repeat(2, 1fr); }
}
