:root {
    --ink: #e7ddc7;
    --muted: #a99b82;
    --paper: #d7c8a8;
    --paper-dark: #b7a27b;
    --black: #0a0807;
    --coal: #17120f;
    --panel: #211914;
    --panel-light: #2a211a;
    --line: #5d4937;
    --gold: #b99855;
    --gold-light: #dbc07a;
    --burgundy: #641b20;
    --burgundy-dark: #351014;
    --green: #596d3c;
    --red: #a94943;
    --blue: #61778a;
}

/* Administrátorský reset */
.button--projection {
    border-color: #80693d;
    color: #1c1309;
    background: linear-gradient(#e1c679, #9f7e3d);
    text-shadow: 0 1px rgba(255, 255, 255, .25);
}

.admin-danger-zone {
    border-color: #76353a;
}

.admin-danger-zone > .panel__head {
    border-bottom-color: #692d32;
    background: linear-gradient(#4c2024, #2c1517);
}

.reset-explainer {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.reset-explainer > div {
    padding: 9px 10px;
    border: 1px solid #593531;
    background: #211513;
}

.reset-explainer strong {
    color: #d3aa86;
    font: bold 12px Georgia, serif;
}

.reset-explainer p {
    margin: 4px 0 0;
    color: #967c6d;
    font-size: 9px;
}

.reset-form {
    display: grid;
    grid-template-columns: minmax(230px, 1fr) minmax(200px, .8fr) auto;
    gap: 10px;
    align-items: end;
    padding: 11px;
    border: 3px double #78383c;
    background: #170e0d;
}

.reset-form .field {
    margin: 0;
}

/* Projekce vyhodnocení */
body.projection-page {
    overflow: hidden;
    color: #e6dbc4;
    background: #080504;
}

.projection-shell {
    width: 100%;
    height: 100vh;
    max-width: none;
    margin: 0;
}

.projection-app {
    position: relative;
    display: grid;
    width: 100%;
    height: 100%;
    grid-template-rows: 68px minmax(0, 1fr) 76px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 18%, rgba(91, 64, 39, .3), transparent 42%),
        repeating-linear-gradient(0deg, rgba(255, 255, 255, .012) 0, rgba(255, 255, 255, .012) 1px, transparent 1px, transparent 3px),
        #0c0907;
}

.projection-app:fullscreen {
    width: 100vw;
    height: 100vh;
}

.projection-app::after {
    position: absolute;
    z-index: 30;
    inset: 0;
    box-shadow: inset 0 0 120px 35px rgba(0, 0, 0, .8);
    content: '';
    pointer-events: none;
}

.projection-header {
    position: relative;
    z-index: 50;
    display: grid;
    grid-template-columns: 280px 1fr 200px;
    align-items: center;
    padding: 0 22px;
    border-bottom: 1px solid #644932;
    background: linear-gradient(#2e2119, #17110d);
    box-shadow: 0 3px 12px #000;
}

.projection-brand span,
.projection-brand small,
.projection-header__chapter span,
.projection-header__chapter strong {
    display: block;
}

.projection-brand span {
    color: #e0ca89;
    font: normal 20px Georgia, serif;
    letter-spacing: 2px;
}

.projection-brand small,
.projection-header__chapter span {
    color: #806f58;
    font-size: 8px;
    letter-spacing: 1.2px;
}

.projection-header__chapter {
    text-align: center;
}

.projection-header__chapter strong {
    margin-top: 2px;
    color: #b8a47a;
    font: normal 13px Georgia, serif;
}

.projection-exit {
    justify-self: end;
    padding: 6px 9px;
    border: 1px solid #584431;
    color: #a49170;
    background: #17110d;
    font-size: 9px;
    text-decoration: none;
}

.projection-stage {
    position: relative;
    z-index: 10;
    min-height: 0;
    overflow: hidden;
    cursor: pointer;
}

.projection-noise {
    position: absolute;
    z-index: 25;
    inset: 0;
    opacity: .22;
    background:
        repeating-linear-gradient(90deg, transparent 0, transparent 13px, rgba(215, 192, 135, .03) 14px),
        repeating-linear-gradient(0deg, transparent 0, transparent 5px, rgba(0, 0, 0, .2) 6px);
    pointer-events: none;
}

.projection-slide {
    position: absolute;
    display: none;
    z-index: 10;
    inset: 0;
    padding: clamp(20px, 4vh, 48px) clamp(24px, 7vw, 110px);
    opacity: 0;
}

.projection-slide.is-active {
    display: block;
    opacity: 1;
    animation: projection-slide-in .65s ease-out both;
}

.projection-slide--intro {
    background:
        linear-gradient(90deg, rgba(8, 5, 3, .95), rgba(13, 8, 5, .68), rgba(8, 5, 3, .9)),
        url('/assets/images/mafia-ledger-banner.webp') center 53% / cover no-repeat;
}

.projection-slide--bellini {
    background: radial-gradient(circle at 80% 25%, rgba(142, 114, 57, .18), transparent 35%);
}

.projection-slide--moretti {
    background: radial-gradient(circle at 80% 25%, rgba(128, 39, 44, .2), transparent 35%);
}

.projection-slide__frame {
    position: relative;
    display: flex;
    width: min(1120px, 100%);
    height: 100%;
    min-height: 0;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
    padding: clamp(24px, 5vh, 58px) clamp(28px, 5vw, 68px);
    border: 1px solid #685039;
    outline: 4px double rgba(108, 81, 52, .42);
    background: linear-gradient(135deg, rgba(35, 26, 19, .95), rgba(14, 10, 8, .96));
    box-shadow: 0 18px 70px #000, inset 0 0 50px rgba(0, 0, 0, .42);
}

.projection-slide--intro .projection-slide__frame {
    border-color: #8b7040;
    background: rgba(16, 10, 7, .72);
}

.projection-slide__serial {
    position: absolute;
    top: 10px;
    right: 13px;
    color: #685a47;
    font: 9px 'Courier New', monospace;
    letter-spacing: 1px;
}

.projection-slide__content {
    position: relative;
    z-index: 2;
    max-height: 100%;
}

.projection-eyebrow {
    margin: 0 0 9px;
    color: #ae9256;
    font: bold 11px Verdana, sans-serif;
    letter-spacing: 2.2px;
}

.projection-title {
    max-width: 900px;
    margin: 0;
    color: #ead9aa;
    font: normal clamp(38px, 6vw, 76px)/1.02 Georgia, serif;
    letter-spacing: -1px;
    text-shadow: 0 3px 5px #000;
}

.projection-headline {
    margin: 14px 0 0;
    color: #bda875;
    font: italic normal clamp(20px, 2.5vw, 34px) Georgia, serif;
}

.projection-copy {
    max-width: 900px;
    margin: 16px 0 0;
    color: #b1a187;
    font: 15px/1.65 Verdana, sans-serif;
}

.projection-stamp {
    position: absolute;
    right: 30px;
    bottom: 25px;
    z-index: 4;
    max-width: 270px;
    padding: 7px 13px;
    transform: rotate(-4deg);
    border: 4px double #7f3437;
    color: #a94b4d;
    font: bold clamp(13px, 1.6vw, 21px) 'Courier New', monospace;
    letter-spacing: 1.5px;
    opacity: .78;
    text-align: center;
    text-transform: uppercase;
}

.projection-slide--bellini .projection-stamp {
    border-color: #8a713d;
    color: #af914e;
}

.projection-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    max-width: 820px;
    margin-top: 24px;
}

.projection-metric {
    min-width: 155px;
    padding: 10px 14px;
    border: 1px solid #59442f;
    background: #130f0c;
}

.projection-metric span,
.projection-metric strong {
    display: block;
}

.projection-metric span {
    color: #7f7059;
    font-size: 9px;
    letter-spacing: .6px;
    text-transform: uppercase;
}

.projection-metric strong {
    margin-top: 3px;
    color: #cbb782;
    font: normal 23px Georgia, serif;
}

.projection-metric--good strong {
    color: #b8c887;
}

.projection-metric--bad strong {
    color: #d17c70;
}

.projection-metric--gold strong {
    color: #dfc477;
}

.projection-partners {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    max-width: 920px;
    margin-top: 23px;
}

.projection-partner {
    padding: 14px 17px;
    border: 1px solid #5b4431;
    border-top: 5px solid #8d7540;
    background: #15100d;
}

.projection-partner--moretti {
    border-top-color: #7f2c31;
}

.projection-partner > span,
.projection-partner > strong,
.projection-partner > b {
    display: block;
}

.projection-partner > span {
    color: #796b57;
    font-size: 9px;
    text-transform: uppercase;
}

.projection-partner > strong {
    margin: 3px 0 8px;
    color: #d7c18a;
    font: normal clamp(23px, 3vw, 37px) Georgia, serif;
}

.projection-choice {
    padding: 6px 9px;
    border: 1px solid #5f5137;
    font: bold 13px 'Courier New', monospace;
    text-align: center;
}

.projection-choice--good {
    border-color: #647446;
    color: #c1ce99;
    background: #202817;
}

.projection-choice--bad {
    border-color: #79353a;
    color: #dc8e82;
    background: #2b1517;
}

.projection-partner dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    margin: 10px 0 0;
}

.projection-partner dl div {
    padding: 6px 8px;
    border: 1px solid #3f3127;
}

.projection-partner dt {
    color: #716451;
    font-size: 8px;
    text-transform: uppercase;
}

.projection-partner dd {
    margin: 2px 0 0;
    color: #c4b384;
    font: normal 16px Georgia, serif;
}

.projection-families {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    max-width: 800px;
    margin-top: 24px;
    padding: 1px;
    background: #5a4532;
}

.projection-family-score {
    padding: 20px;
    border-top: 5px solid #927940;
    background: #15100d;
    text-align: center;
}

.projection-family-score--moretti {
    border-top-color: #832f34;
}

.projection-family-score span,
.projection-family-score strong {
    display: block;
}

.projection-family-score span {
    color: #8a7a61;
    font-size: 10px;
    text-transform: uppercase;
}

.projection-family-score strong {
    margin-top: 5px;
    color: #d8c187;
    font: normal clamp(27px, 4vw, 45px) Georgia, serif;
}

.projection-list {
    display: grid;
    max-width: 930px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: 22px;
    padding: 1px;
    background: #49372b;
}

.projection-list__row {
    min-width: 0;
    padding: 9px 11px;
    background: #15100d;
}

.projection-list__row--bellini {
    border-left: 4px solid #8e7440;
}

.projection-list__row--moretti {
    border-left: 4px solid #7f2d32;
}

.projection-list__row span,
.projection-list__row strong {
    display: block;
}

.projection-list__row span {
    color: #bba776;
    font-size: 10px;
}

.projection-list__row strong {
    overflow: hidden;
    margin-top: 3px;
    color: #8f816b;
    font: normal 11px/1.45 Verdana, sans-serif;
    text-overflow: ellipsis;
}

.projection-ranking {
    display: grid;
    max-width: 960px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 12px;
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

.projection-ranking li {
    display: grid;
    grid-template-columns: 40px 1fr auto;
    align-items: center;
    padding: 7px 10px;
    border: 1px solid #49372b;
    background: #15100d;
}

.projection-ranking__bellini {
    border-left: 5px solid #927940 !important;
}

.projection-ranking__moretti {
    border-left: 5px solid #832f34 !important;
}

.projection-ranking li b {
    color: #9d854f;
    font: normal 19px Georgia, serif;
}

.projection-ranking li span {
    color: #d2bd84;
    font: normal 16px Georgia, serif;
}

.projection-ranking li small {
    color: #796b57;
    font-size: 8px;
}

.projection-reveal {
    opacity: 0;
}

.projection-slide.is-active .projection-reveal {
    animation: projection-reveal .52s ease-out .22s both;
}

.projection-slide.is-active .projection-headline,
.projection-slide.is-active .projection-copy {
    animation-delay: .42s;
}

.projection-slide.is-active .projection-metrics,
.projection-slide.is-active .projection-partners,
.projection-slide.is-active .projection-families,
.projection-slide.is-active .projection-list,
.projection-slide.is-active .projection-ranking {
    animation-delay: .62s;
}

.projection-slide.is-active .projection-stamp {
    animation: projection-stamp .34s ease-out .9s both;
}

.projection-controls {
    position: relative;
    z-index: 50;
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto;
    gap: 18px;
    align-items: center;
    padding: 9px 20px 15px;
    border-top: 1px solid #604832;
    background: linear-gradient(#19120e, #0d0a08);
    box-shadow: 0 -4px 14px rgba(0, 0, 0, .6);
}

.projection-controls__buttons,
.projection-controls__options {
    display: flex;
    gap: 6px;
    align-items: center;
}

.projection-controls button,
.projection-controls select {
    min-height: 31px;
    padding: 5px 10px;
    border: 1px solid #624b35;
    color: #c5b384;
    background: linear-gradient(#2b2119, #18120e);
    cursor: pointer;
    font-size: 9px;
}

.projection-controls button:hover,
.projection-controls select:hover {
    border-color: #9a7840;
    color: #edd89c;
}

.projection-controls button:disabled {
    opacity: .3;
    cursor: default;
}

.projection-controls .projection-play {
    min-width: 135px;
    border-color: #8b6c38;
    color: #171007;
    background: linear-gradient(#dcc47f, #9e7c3d);
    font-weight: bold;
}

.projection-progress-wrap {
    display: grid;
    grid-template-columns: 1fr 52px;
    gap: 9px;
    align-items: center;
}

.projection-progress {
    height: 8px;
    border: 1px solid #49382b;
    background: #080605;
}

.projection-progress span {
    display: block;
    width: 0;
    height: 100%;
    background: repeating-linear-gradient(90deg, #8c7139 0, #8c7139 16px, #b08d48 16px, #b08d48 32px);
    transition: width .35s ease;
}

.projection-progress-wrap > span {
    color: #8a7a60;
    font: 10px 'Courier New', monospace;
    text-align: right;
}

.projection-controls__options label {
    color: #776955;
    font-size: 8px;
    text-transform: uppercase;
}

.projection-controls__options select {
    min-height: 29px;
    margin-left: 4px;
}

.projection-keys {
    position: absolute;
    right: 21px;
    bottom: 2px;
    color: #51483b;
    font-size: 7px;
}

@keyframes projection-slide-in {
    from { opacity: 0; transform: scale(1.018); filter: sepia(.35) brightness(.65); }
    to { opacity: 1; transform: scale(1); filter: sepia(0) brightness(1); }
}

@keyframes projection-reveal {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes projection-stamp {
    from { opacity: 0; transform: rotate(-4deg) scale(1.45); }
    to { opacity: .78; transform: rotate(-4deg) scale(1); }
}

@media (max-width: 900px), (max-height: 680px) {
    .projection-app {
        grid-template-rows: 56px minmax(0, 1fr) 69px;
    }

    .projection-header {
        grid-template-columns: 220px 1fr 165px;
        padding: 0 12px;
    }

    .projection-brand span {
        font-size: 16px;
    }

    .projection-slide {
        padding: 16px 28px;
    }

    .projection-slide__frame {
        padding: 25px 34px;
    }

    .projection-title {
        font-size: clamp(30px, 5.3vw, 53px);
    }

    .projection-headline {
        margin-top: 9px;
        font-size: clamp(17px, 2.4vw, 25px);
    }

    .projection-copy {
        margin-top: 10px;
        font-size: 11px;
    }

    .projection-metrics,
    .projection-partners,
    .projection-list,
    .projection-ranking,
    .projection-families {
        margin-top: 13px;
    }

    .projection-partner {
        padding: 9px 12px;
    }

    .projection-partner > strong {
        font-size: 22px;
    }

    .projection-stamp {
        right: 18px;
        bottom: 15px;
    }

    .projection-controls {
        gap: 9px;
        padding-right: 10px;
        padding-left: 10px;
    }
}

@media (max-width: 720px) {
    .reset-explainer,
    .reset-form {
        grid-template-columns: 1fr;
    }

    body.projection-page {
        overflow: auto;
    }

    .projection-app {
        min-height: 100vh;
        height: auto;
        grid-template-rows: auto minmax(620px, 1fr) auto;
    }

    .projection-header {
        grid-template-columns: 1fr auto;
        gap: 8px;
        padding: 10px 12px;
    }

    .projection-header__chapter {
        display: none;
    }

    .projection-slide {
        padding: 14px;
    }

    .projection-slide__frame {
        justify-content: flex-start;
        overflow-y: auto;
        padding: 34px 21px 70px;
    }

    .projection-title {
        font-size: 35px;
    }

    .projection-partners,
    .projection-families,
    .projection-list,
    .projection-ranking {
        grid-template-columns: 1fr;
    }

    .projection-controls {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .projection-controls__buttons,
    .projection-controls__options {
        justify-content: center;
    }

    .projection-keys {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .projection-slide.is-active,
    .projection-slide.is-active .projection-reveal,
    .projection-slide.is-active .projection-stamp,
    .projection-progress span {
        animation: none;
        transition: none;
    }

    .projection-reveal {
        opacity: 1;
    }
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: #080605;
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, .012) 0, rgba(255, 255, 255, .012) 1px, transparent 1px, transparent 3px),
        radial-gradient(circle at 50% 0, #30241c 0, #110d0a 48%, #070504 100%);
    font: 12px/1.55 Verdana, Arial, sans-serif;
}

a {
    color: var(--gold-light);
}

a:hover {
    color: #fff2be;
}

button,
input,
select,
textarea {
    font: inherit;
}

img {
    max-width: 100%;
}

.skip-link {
    position: fixed;
    top: -100px;
    left: 10px;
    z-index: 9999;
    padding: 8px 12px;
    color: #111;
    background: #fff;
}

.skip-link:focus {
    top: 10px;
}

.splash-shell,
.page-shell,
.legacy-header__top,
.legacy-nav,
.account-strip,
.legacy-footer {
    width: 960px;
    max-width: calc(100% - 24px);
    margin-right: auto;
    margin-left: auto;
}

/* Veřejná předstartovní stránka */
.public-splash {
    padding: 28px 0 48px;
}

.splash {
    overflow: hidden;
    border: 1px solid #6b533d;
    outline: 5px solid rgba(0, 0, 0, .45);
    background: #17110d;
    box-shadow: 0 12px 45px #000;
}

.splash__banner {
    position: relative;
    height: 315px;
    overflow: hidden;
    border-bottom: 4px solid #4b1317;
    background: #120e0b url('/assets/images/mafia-ledger-banner.webp') center 53% / cover no-repeat;
}

.splash__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4, 2, 1, .92) 0, rgba(6, 3, 2, .48) 48%, rgba(7, 3, 2, .65) 100%);
}

.splash__masthead {
    position: absolute;
    top: 52px;
    left: 52px;
    width: 500px;
    text-shadow: 0 2px 4px #000;
}

.splash__site {
    display: inline-block;
    margin-bottom: 13px;
    padding: 3px 7px;
    border-top: 1px solid #d2b66b;
    border-bottom: 1px solid #d2b66b;
    color: #d9c28b;
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 3px;
}

.splash__masthead h1 {
    margin: 0;
    color: #efe3c7;
    font: normal 58px/1 Georgia, 'Times New Roman', serif;
    letter-spacing: 2px;
}

.splash__masthead p {
    margin: 8px 0 0 4px;
    color: #c9aa6e;
    font: italic 19px Georgia, 'Times New Roman', serif;
    letter-spacing: 3px;
}

.launch-panel {
    padding: 25px 20px 29px;
    text-align: center;
    border-bottom: 1px solid #4a392c;
    background:
        linear-gradient(#251b15, #130e0b),
        #17110d;
}

.ornament {
    margin: 0 0 5px;
    color: #6f5438;
    font-size: 8px;
    letter-spacing: 10px;
}

.launch-panel h2 {
    margin: 0 0 15px;
    color: #c7b58d;
    font: normal small-caps 18px Georgia, 'Times New Roman', serif;
    letter-spacing: 2px;
}

.countdown {
    display: flex;
    align-items: center;
    justify-content: center;
}

.countdown span {
    display: flex;
    flex-direction: column;
}

.countdown--splash span {
    min-width: 104px;
    padding: 9px 12px 8px;
    border: 1px solid #493829;
    border-top-color: #725a3f;
    background: linear-gradient(#1c1510, #0c0907);
    box-shadow: inset 0 1px rgba(255, 255, 255, .04), 0 2px 5px #000;
}

.countdown--splash strong {
    color: #e4ca83;
    font: normal 35px/1 'Courier New', monospace;
    letter-spacing: 2px;
}

.countdown--splash small {
    margin-top: 5px;
    color: #8f8067;
    font-size: 9px;
    font-weight: bold;
    text-transform: uppercase;
}

.countdown--splash i {
    padding: 0 8px;
    color: #785a36;
    font: normal 22px Georgia, serif;
}

.launch-panel__date {
    margin: 13px 0 0;
    color: #796c58;
    font-size: 9px;
    letter-spacing: 1px;
}

.rules-sheet {
    padding: 34px 46px 40px;
    color: #282016;
    border-top: 1px solid #ddcfae;
    background:
        repeating-linear-gradient(0deg, rgba(74, 49, 25, .025) 0, rgba(74, 49, 25, .025) 1px, transparent 1px, transparent 4px),
        #cdbd9b;
    box-shadow: inset 0 8px 18px rgba(45, 28, 12, .18);
}

.rules-sheet__heading {
    position: relative;
    margin-bottom: 23px;
    padding-bottom: 17px;
    text-align: center;
    border-bottom: 3px double #746044;
}

.rules-sheet__heading span {
    color: #6c1c20;
    font-size: 9px;
    font-weight: bold;
    letter-spacing: 2px;
}

.rules-sheet__heading h2 {
    margin: 3px 0 2px;
    font: normal 35px/1.1 Georgia, 'Times New Roman', serif;
}

.rules-sheet__heading p {
    margin: 5px 0 0;
    color: #5e513f;
    font: italic 14px Georgia, serif;
}

.start-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 35px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: rules;
}

.start-rules li {
    position: relative;
    min-height: 94px;
    padding: 13px 8px 14px 54px;
    border-bottom: 1px dotted #867356;
    counter-increment: rules;
}

.start-rules li::before {
    position: absolute;
    top: 13px;
    left: 4px;
    width: 36px;
    height: 36px;
    color: #d7c9a8;
    background: #4f181b;
    box-shadow: 2px 2px 0 rgba(43, 28, 16, .3);
    content: counter(rules);
    font: normal 23px/36px Georgia, serif;
    text-align: center;
}

.start-rules strong,
.start-rules span {
    display: block;
}

.start-rules strong {
    margin-bottom: 4px;
    color: #24180f;
    font: bold 15px Georgia, serif;
}

.start-rules span {
    color: #564936;
    font-size: 11px;
}

.fair-play {
    display: flex;
    gap: 18px;
    align-items: center;
    margin-top: 27px;
    padding: 14px 18px;
    border: 1px solid #917b59;
    border-left: 6px solid #5e1a1e;
    background: rgba(255, 248, 222, .27);
}

.fair-play strong {
    flex: 0 0 150px;
    font: bold 15px Georgia, serif;
    text-align: center;
}

.fair-play span {
    color: #594b38;
    font-size: 10px;
}

/* Přihlášená část ve stylu starého herního portálu */
.game-page {
    padding-bottom: 40px;
    background:
        linear-gradient(rgba(13, 9, 7, .93), rgba(13, 9, 7, .93)),
        url('/assets/images/mafia-ledger-banner.webp') center top / 1600px auto fixed no-repeat,
        #0b0806;
}

.legacy-header {
    min-width: 0;
    border-top: 5px solid #3f1115;
    border-bottom: 1px solid #0a0705;
    background: linear-gradient(#30231b, #130f0c);
    box-shadow: 0 3px 12px #000;
}

.legacy-header__top {
    display: flex;
    min-height: 76px;
    align-items: center;
}

.legacy-logo {
    display: flex;
    flex-direction: column;
    width: 310px;
    color: #e0c786;
    text-decoration: none;
    text-shadow: 1px 2px 2px #000;
}

.legacy-logo span {
    font: normal 29px/1 Georgia, serif;
    letter-spacing: 1px;
}

.legacy-logo small {
    margin-top: 5px;
    color: #88785e;
    font-size: 8px;
    letter-spacing: 2px;
}

.legacy-header__case {
    margin-left: auto;
    padding: 7px 16px;
    border-right: 1px solid #4d3b2d;
    text-align: right;
}

.legacy-header__case span,
.legacy-header__case strong {
    display: block;
}

.legacy-header__case span {
    color: #857661;
    font-size: 8px;
    letter-spacing: 1px;
}

.legacy-header__case strong {
    color: #c8ad70;
    font-size: 10px;
}

.legacy-user {
    min-width: 205px;
    padding-left: 16px;
}

.legacy-user strong,
.legacy-user span {
    display: block;
}

.legacy-user strong {
    color: #ded1b8;
}

.legacy-user span {
    color: #8e7d65;
    font-size: 8px;
}

.legacy-user form {
    display: inline;
}

.legacy-user button {
    padding: 0;
    border: 0;
    color: #aa8d57;
    background: transparent;
    cursor: pointer;
    font-size: 9px;
    text-decoration: underline;
}

.legacy-nav {
    display: flex;
    height: 34px;
    border: 1px solid #100b08;
    border-bottom: 0;
    background: linear-gradient(#5d1c22, #321014);
}

.legacy-nav a {
    display: block;
    min-width: 100px;
    padding: 8px 14px 7px;
    border-right: 1px solid #260c0f;
    border-left: 1px solid rgba(255, 255, 255, .05);
    color: #d4c6ad;
    text-align: center;
    text-decoration: none;
    text-shadow: 0 1px #000;
}

.legacy-nav a:hover,
.legacy-nav a.is-active {
    color: #fff0bd;
    background: linear-gradient(#7b2b30, #421519);
}

.legacy-nav__admin {
    margin-left: auto;
    color: #f0cc73 !important;
}

.account-strip {
    display: flex;
    min-height: 29px;
    align-items: center;
    border-right: 1px solid #49382c;
    border-left: 1px solid #49382c;
    color: #8f806b;
    background: #17120f;
}

.account-strip span {
    padding: 4px 18px;
    border-right: 1px dotted #4f3c2e;
    font-size: 9px;
}

.account-strip strong {
    color: #cfb878;
}

.page-shell {
    min-height: 520px;
    margin-top: 16px;
    padding: 16px;
    border: 1px solid #4c3a2d;
    background: rgba(22, 17, 13, .97);
    box-shadow: 0 8px 25px #000;
}

.legacy-footer {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    padding: 8px 4px;
    color: #685d4d;
    font-size: 8px;
}

/* Sdílené prvky */
h1,
h2,
h3,
p {
    margin-top: 0;
}

.page-title {
    margin: -16px -16px 16px;
    padding: 14px 17px 12px;
    border-bottom: 1px solid #584332;
    background: linear-gradient(#31251d, #211812);
}

.page-title h1 {
    margin: 0;
    color: #dcc88f;
    font: normal 25px Georgia, serif;
}

.page-title p {
    margin: 3px 0 0;
    color: #93846d;
    font-size: 10px;
}

.panel {
    margin-bottom: 14px;
    border: 1px solid #4b392c;
    background: #201914;
}

.panel__head {
    display: flex;
    min-height: 33px;
    align-items: center;
    justify-content: space-between;
    padding: 7px 10px;
    border-bottom: 1px solid #4d392b;
    color: #ccb77f;
    background: linear-gradient(#32261e, #241a15);
}

.panel__head h2,
.panel__head h3 {
    margin: 0;
    font: bold 13px Georgia, serif;
}

.panel__body {
    padding: 12px;
}

.grid-2,
.grid-3,
.dashboard-grid {
    display: grid;
    gap: 14px;
}

.grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dashboard-grid {
    grid-template-columns: 2fr 1fr;
}

.button,
button.button,
input[type='submit'] {
    display: inline-block;
    padding: 7px 13px;
    border: 1px solid #7a633e;
    border-radius: 2px;
    color: #1b120a;
    background: linear-gradient(#ddc786, #9f8249);
    box-shadow: inset 0 1px rgba(255, 255, 255, .4), 0 1px 2px #000;
    cursor: pointer;
    font-weight: bold;
    text-decoration: none;
    text-shadow: 0 1px rgba(255, 255, 255, .25);
}

.button:hover,
button.button:hover,
input[type='submit']:hover {
    color: #120b06;
    background: linear-gradient(#f0dc9b, #b39251);
}

.button--danger {
    border-color: #8b373b;
    color: #ead4c1;
    background: linear-gradient(#852a30, #47151a);
    text-shadow: 0 1px #000;
}

.button--secondary {
    border-color: #5a4938;
    color: #cbbda5;
    background: linear-gradient(#403228, #261d17);
    text-shadow: 0 1px #000;
}

.button[disabled],
button[disabled] {
    opacity: .45;
    cursor: not-allowed;
}

label {
    display: block;
    margin-bottom: 4px;
    color: #aa9a80;
    font-size: 10px;
    font-weight: bold;
}

input[type='text'],
input[type='password'],
input[type='number'],
input[type='datetime-local'],
select,
textarea {
    width: 100%;
    padding: 7px 8px;
    border: 1px solid #5c4939;
    border-top-color: #2a211b;
    color: #e1d5c0;
    background: #100d0b;
    box-shadow: inset 0 1px 3px #000;
}

textarea {
    min-height: 78px;
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #ad8b4d;
    outline: 1px solid #ad8b4d;
}

.field {
    margin-bottom: 11px;
}

.field small,
.hint,
.muted {
    color: #897b66;
    font-size: 9px;
}

.inline-form {
    display: flex;
    gap: 8px;
    align-items: end;
}

.inline-form .field {
    flex: 1;
    margin: 0;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th,
td {
    padding: 7px 8px;
    border: 1px solid #44342a;
    text-align: left;
    vertical-align: top;
}

th {
    color: #c9b47c;
    background: #30241d;
    font-size: 9px;
    text-transform: uppercase;
}

tr:nth-child(even) td {
    background: rgba(255, 255, 255, .018);
}

.badge {
    display: inline-block;
    padding: 2px 6px;
    border: 1px solid #66533e;
    color: #cdbc99;
    background: #2a211a;
    font-size: 8px;
    font-weight: bold;
    text-transform: uppercase;
}

.badge--good {
    border-color: #667749;
    color: #c1cf9b;
    background: #26301c;
}

.badge--bad {
    border-color: #84373b;
    color: #df9b9c;
    background: #391518;
}

.badge--gold {
    border-color: #9b7e43;
    color: #e4cd8e;
    background: #352b18;
}

.flash-stack {
    position: fixed;
    top: 10px;
    left: 50%;
    z-index: 2000;
    width: 600px;
    max-width: calc(100% - 20px);
    transform: translateX(-50%);
}

.flash {
    display: flex;
    justify-content: space-between;
    margin-bottom: 7px;
    padding: 10px 12px;
    border: 1px solid #736040;
    color: #21180e;
    background: #d6c28d;
    box-shadow: 0 3px 12px #000;
}

.flash--error {
    border-color: #9a4549;
    color: #f0d8d5;
    background: #6f2026;
}

.flash--success {
    border-color: #72804f;
    color: #e2e8cd;
    background: #46552f;
}

.flash button {
    border: 0;
    color: inherit;
    background: transparent;
    cursor: pointer;
    font-weight: bold;
}

.empty-state {
    padding: 18px;
    border: 1px dashed #554334;
    color: #837561;
    text-align: center;
}

.stat {
    padding: 12px;
    border: 1px solid #4f3c2e;
    background: #17120f;
}

.stat span,
.stat strong {
    display: block;
}

.stat span {
    color: #8c7d66;
    font-size: 8px;
    text-transform: uppercase;
}

.stat strong {
    margin-top: 4px;
    color: #d6be7c;
    font: normal 22px Georgia, serif;
}

@media (max-width: 720px) {
    .public-splash {
        padding-top: 8px;
    }

    .splash-shell,
    .page-shell,
    .legacy-header__top,
    .legacy-nav,
    .account-strip,
    .legacy-footer {
        max-width: calc(100% - 12px);
    }

    .splash__banner {
        height: 245px;
        background-position: 62% center;
    }

    .splash__masthead {
        top: 38px;
        left: 22px;
        width: calc(100% - 44px);
    }

    .splash__masthead h1 {
        font-size: 39px;
    }

    .splash__masthead p {
        font-size: 14px;
        letter-spacing: 2px;
    }

    .launch-panel {
        padding-right: 7px;
        padding-left: 7px;
    }

    .countdown--splash span {
        min-width: 0;
        width: 22%;
        padding-right: 2px;
        padding-left: 2px;
    }

    .countdown--splash strong {
        font-size: 25px;
    }

    .countdown--splash i {
        padding: 0 3px;
    }

    .rules-sheet {
        padding: 26px 18px 30px;
    }

    .start-rules,
    .grid-2,
    .grid-3,
    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .fair-play {
        display: block;
    }

    .fair-play strong {
        display: block;
        margin-bottom: 5px;
        text-align: left;
    }

    .legacy-header__top {
        flex-wrap: wrap;
        padding: 10px 0;
    }

    .legacy-logo {
        width: 100%;
    }

    .legacy-header__case {
        margin: 8px 0 0;
        padding-left: 0;
        text-align: left;
    }

    .legacy-user {
        margin: 8px 0 0 auto;
    }

    .legacy-nav {
        overflow-x: auto;
    }

    .legacy-nav a {
        min-width: 90px;
    }

    .account-strip {
        overflow-x: auto;
    }

    .account-strip span {
        flex: 0 0 auto;
    }

    .inline-form {
        display: block;
    }

    .inline-form .field {
        margin-bottom: 8px;
    }
}

/* Herní obrazovky */
.splash-entry {
    min-width: 220px;
    margin: 8px 0 4px;
    padding: 10px 18px;
    font-size: 13px;
}

.login-wrap {
    width: 430px;
    max-width: 100%;
    margin: 80px auto 0;
    text-align: center;
}

.login-brand span {
    color: #8d7958;
    font-size: 8px;
    letter-spacing: 3px;
}

.login-brand h1 {
    margin: 5px 0 0;
    color: #dfca8b;
    font: normal 39px Georgia, serif;
    letter-spacing: 1px;
    text-shadow: 0 2px 3px #000;
}

.login-brand p {
    margin: 2px 0 21px;
    color: #82745f;
    font: italic 13px Georgia, serif;
}

.login-box {
    border: 1px solid #6c533c;
    outline: 4px solid rgba(0, 0, 0, .4);
    text-align: left;
    box-shadow: 0 8px 30px #000;
}

.login-box__head {
    padding: 9px 13px;
    border-bottom: 1px solid #17080a;
    color: #dfc992;
    background: linear-gradient(#6e2328, #3a1115);
    font-size: 10px;
    font-weight: bold;
    letter-spacing: 1px;
}

.login-box__body {
    padding: 22px;
    background: linear-gradient(#2a2019, #17120e);
}

.login-submit {
    width: 100%;
    text-align: center;
}

.button--discord {
    border-color: #66779a;
    color: #eef1ff;
    background: linear-gradient(#7385ad, #475573);
    text-shadow: 0 1px #26304a;
}

.login-divider {
    position: relative;
    margin: 19px 0;
    border-top: 1px solid #4b3b2e;
    text-align: center;
}

.login-divider span {
    position: relative;
    top: -8px;
    padding: 0 9px;
    color: #796b58;
    background: #1f1813;
    font-size: 8px;
}

.login-hint {
    margin: 9px 0 0;
    text-align: center;
}

.login-back {
    display: inline-block;
    margin-top: 18px;
    color: #756850;
    font-size: 9px;
}

.waiting-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    padding: 24px;
    border: 1px solid #5b4534;
    background: linear-gradient(90deg, #2a1f18, #17120e);
}

.waiting-card h2 {
    margin: 9px 0 4px;
    color: #dbc483;
    font: normal 26px Georgia, serif;
}

.waiting-countdown {
    gap: 4px;
}

.waiting-countdown span {
    min-width: 62px;
    padding: 7px;
    border: 1px solid #51402f;
    background: #0f0c09;
    text-align: center;
}

.waiting-countdown strong {
    color: #d5bb76;
    font: normal 22px 'Courier New', monospace;
}

.waiting-countdown small {
    color: #776b58;
    font-size: 8px;
}

.compact-rules {
    margin: 0;
    padding-left: 24px;
}

.compact-rules li {
    padding: 5px 0 5px 4px;
    border-bottom: 1px dotted #4c3b2f;
}

.page-title--story {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.page-title--story > div:first-child {
    max-width: 690px;
}

.page-title--story h1 {
    margin-top: 7px;
}

.round-clock {
    flex: 0 0 185px;
    margin-left: 20px;
    padding: 8px;
    border: 1px solid #54412f;
    background: #130f0c;
    text-align: center;
}

.round-clock > span {
    color: #85765f;
    font-size: 8px;
    letter-spacing: 1px;
}

.round-clock .countdown {
    gap: 6px;
    margin-top: 4px;
}

.round-clock strong {
    color: #968365;
    font-size: 8px;
}

.round-clock b {
    color: #dfc77e;
    font: normal 17px 'Courier New', monospace;
}

.win-loop {
    display: flex;
    align-items: stretch;
    margin-bottom: 14px;
    border: 1px solid #55412f;
    background: #16110e;
}

.win-loop span {
    flex: 1;
    padding: 9px 8px;
    color: #9c8d73;
    text-align: center;
    font-size: 9px;
}

.win-loop b {
    color: #d6b96e;
}

.win-loop i {
    padding-top: 8px;
    color: #5d4935;
    font-style: normal;
}

.action-panel .panel__body {
    padding: 15px;
}

.action-fields {
    margin: 12px 0;
    padding: 11px;
    border: 1px solid #51402f;
    background: #17120f;
}

.mechanic-note,
.ability-callout {
    margin: 2px 0 0;
    padding: 8px 10px;
    border-left: 3px solid #785d33;
    color: #9e8e73;
    background: #211912;
    font-size: 9px;
}

.ability-callout {
    color: #c9b78e;
}

.identity-card {
    position: relative;
    margin-bottom: 14px;
    padding: 17px;
    border: 1px solid #735944;
    background: linear-gradient(135deg, #32241c, #17110d);
    box-shadow: inset 0 0 25px rgba(0, 0, 0, .45);
}

.identity-card::after {
    position: absolute;
    right: 13px;
    bottom: 12px;
    color: rgba(207, 183, 116, .08);
    content: 'CK';
    font: bold 54px Georgia, serif;
}

.family-card--bellini {
    border-left: 6px solid #8a6f38;
}

.family-card--moretti {
    border-left: 6px solid #77252a;
}

.identity-card__label {
    color: #857660;
    font-size: 8px;
    letter-spacing: 1px;
}

.identity-card h2 {
    margin: 5px 0 0;
    color: #ead8a3;
    font: normal 29px Georgia, serif;
}

.identity-card__family {
    color: #9c8054;
    font-size: 9px;
}

.identity-card hr {
    border: 0;
    border-top: 1px solid #54402f;
}

.identity-card > span:not(.identity-card__label),
.identity-card > strong {
    display: block;
}

.identity-card > span:not(.identity-card__label) {
    margin-top: 7px;
    color: #7f705c;
    font-size: 8px;
}

.identity-card > strong {
    color: #d0bb85;
    font: bold 14px Georgia, serif;
}

.identity-card p:not(.identity-card__family) {
    position: relative;
    z-index: 1;
    margin: 5px 0;
    color: #aa9a7f;
    font-size: 9px;
}

.identity-card small {
    color: #766956;
}

.inventory-list > div,
.inventory-grid > div {
    padding: 7px 0;
    border-bottom: 1px dotted #4d3b2f;
}

.inventory-list strong,
.inventory-list span,
.inventory-grid strong,
.inventory-grid span {
    display: block;
}

.inventory-list strong,
.inventory-grid strong {
    color: #c7b484;
    font-size: 10px;
}

.inventory-list span,
.inventory-grid span {
    color: #847763;
    font-size: 8px;
}

.inventory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 20px;
}

.rumor-list > div {
    display: flex;
    gap: 8px;
    padding: 5px 0;
    border-bottom: 1px dotted #49382c;
}

.rumor-list b {
    width: 20px;
    color: #806d4c;
}

.rumor-list span,
.rumor-list small {
    display: block;
}

.rumor-list small {
    color: #7f725f;
    font-size: 8px;
}

.notice-list {
    padding: 0;
}

.notice {
    display: grid;
    grid-template-columns: 74px 1fr;
    padding: 9px 12px;
    border-bottom: 1px solid #403128;
}

.notice--new {
    border-left: 4px solid #a88845;
    background: rgba(158, 126, 60, .07);
}

.notice time {
    color: #766a58;
    font-size: 8px;
}

.notice strong {
    color: #c8b78e;
}

.notice p {
    margin: 2px 0 0;
    color: #91836d;
    font-size: 9px;
}

.tiny-button {
    padding: 2px 6px;
    border: 1px solid #65513c;
    color: #c1ac78;
    background: #241b15;
    cursor: pointer;
    font-size: 8px;
}

.warning-strip,
.admin-help {
    margin-bottom: 14px;
    padding: 10px 13px;
    border: 1px solid #7b623f;
    border-left: 5px solid #a28142;
    color: #c4b492;
    background: #2a2117;
}

.warning-strip strong,
.admin-help strong {
    color: #e0ca8c;
}

.payoff-table {
    margin-bottom: 13px;
    border: 1px solid #49382d;
}

.payoff-table div {
    display: grid;
    grid-template-columns: 130px 1fr;
    padding: 6px 8px;
    border-bottom: 1px dotted #49382d;
}

.payoff-table b {
    color: #c9b682;
}

.payoff-table span {
    color: #8c7e68;
    font-size: 9px;
}

.table-scroll {
    overflow-x: auto;
}

.money-cell {
    white-space: nowrap;
    font-weight: bold;
}

.money-cell--in {
    color: #9eb276;
}

.money-cell--out {
    color: #c67973;
}

.market-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
}

.market-card {
    display: flex;
    min-height: 205px;
    flex-direction: column;
    padding: 12px;
    border: 1px solid #51402f;
    background: linear-gradient(#282019, #17120f);
}

.market-card__category {
    color: #7d6d56;
    font-size: 8px;
    text-transform: uppercase;
}

.market-card h3,
.npc-card h3 {
    margin: 5px 0;
    color: #d4c18b;
    font: bold 15px Georgia, serif;
}

.market-card > p {
    flex: 1;
    color: #94866f;
    font-size: 9px;
}

.market-card__buy {
    display: flex;
    gap: 7px;
    align-items: center;
}

.market-card__buy strong {
    color: #d3b86f;
    font-size: 13px;
}

.market-card__buy del {
    color: #806c58;
    font-size: 8px;
}

.market-card__buy form {
    margin-left: auto;
}

.market-card small {
    margin-top: 7px;
    color: #756957;
}

.npc-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.npc-card {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 10px;
    padding: 12px;
    border: 1px solid #4f3c2f;
    background: #191410;
}

.npc-card__portrait,
.family-avatar {
    display: inline-block;
    width: 50px;
    height: 58px;
    border: 1px solid #705739;
    color: #c1a86c;
    background: linear-gradient(135deg, #4b3a2b, #1d1712);
    font: normal 30px/58px Georgia, serif;
    text-align: center;
}

.npc-card h3 {
    margin: 0;
}

.npc-card__copy > span {
    color: #82735d;
    font-size: 8px;
}

.npc-quote {
    margin: 7px 0;
    color: #8f816c;
    font: italic 10px Georgia, serif;
}

.npc-service {
    margin: 8px 0;
    padding: 7px;
    border-left: 3px solid #6e552f;
    background: #241b14;
}

.npc-service strong {
    color: #d1b973;
    font-size: 10px;
}

.npc-service p {
    margin: 2px 0 0;
    color: #91836c;
    font-size: 8px;
}

.family-scoreboard {
    display: grid;
    grid-template-columns: 1fr 60px 1fr;
    align-items: stretch;
    margin-bottom: 14px;
}

.family-score {
    padding: 17px;
    border: 1px solid #5d4836;
    background: #211914;
    text-align: center;
}

.family-score--bellini {
    border-top: 4px solid #9c8044;
}

.family-score--moretti,
.family-score--opponent {
    border-top: 4px solid #75232a;
}

.family-score span,
.family-score strong,
.family-score small {
    display: block;
}

.family-score span {
    color: #82745f;
    font-size: 8px;
}

.family-score strong {
    margin: 4px 0;
    color: #d5be7c;
    font: normal 20px Georgia, serif;
}

.family-score small {
    color: #7f725f;
}

.versus {
    padding-top: 28px;
    color: #715c3f;
    font: normal 18px Georgia, serif;
    text-align: center;
}

.treasury-meter {
    height: 8px;
    margin: 11px 0 5px;
    border: 1px solid #4f3c2e;
    background: #0e0b09;
}

.treasury-meter span {
    display: block;
    width: 65%;
    height: 100%;
    background: repeating-linear-gradient(90deg, #826c39 0, #826c39 12px, #a98c4a 12px, #a98c4a 24px);
}

.success-note,
.rules-confirmed {
    padding: 9px 11px;
    border: 1px solid #627341;
    color: #b9c892;
    background: #29331e;
}

.family-members > div {
    display: grid;
    grid-template-columns: 37px 1fr auto;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px dotted #49382d;
}

.family-members .family-avatar {
    width: 29px;
    height: 29px;
    font-size: 15px;
    line-height: 29px;
}

.family-members strong {
    color: #c6b487;
}

.family-members small {
    color: #7c6e5a;
}

.rules-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    padding: 18px 22px;
    border: 1px solid #624b38;
    border-left: 6px solid #8a6e3b;
    background: linear-gradient(90deg, #2c2119, #17120f);
}

.rules-intro h2 {
    margin: 6px 0 3px;
    color: #dfc98c;
    font: normal 25px Georgia, serif;
}

.rules-intro p {
    max-width: 670px;
    margin-bottom: 3px;
    color: #aa9a7f;
}

.rules-intro small {
    color: #7f725e;
}

.family-seal {
    flex: 0 0 120px;
    margin-left: 20px;
    text-align: center;
}

.family-seal > span {
    display: block;
    width: 68px;
    height: 68px;
    margin: 0 auto 5px;
    border: 4px double #a28348;
    border-radius: 50%;
    color: #b79854;
    font: normal 38px/60px Georgia, serif;
}

.family-seal--moretti > span {
    border-color: #8d3d42;
    color: #a44d51;
}

.family-seal small {
    color: #8b7859;
    font-size: 8px;
}

.rules-grid .panel {
    margin-bottom: 0;
}

.prose p {
    color: #9d8f77;
}

.prose strong {
    color: #d2bd85;
}

.rules-accept {
    margin-top: 16px;
    padding: 16px;
    border: 1px solid #806941;
    background: #2a2117;
    text-align: center;
}

.check-line {
    display: block;
    margin-bottom: 11px;
    color: #c7b691;
    font-size: 10px;
}

.check-line input {
    width: auto;
    margin-right: 5px;
}

.rules-confirmed {
    margin-top: 15px;
    text-align: center;
}

/* Herní manuál */
.manual-section {
    scroll-margin-top: 12px;
}

.manual-section--featured {
    border-color: #795e36;
    box-shadow: 0 0 18px rgba(0, 0, 0, .32);
}

.manual-section--featured > .panel__head {
    border-bottom-color: #6e542f;
    background: linear-gradient(#40301f, #291d15);
}

.manual-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 14px;
    padding: 9px;
    border: 1px solid #57412f;
    border-top: 3px solid #7e6235;
    background: #17110e;
    box-shadow: inset 0 0 18px rgba(0, 0, 0, .35);
}

.manual-nav strong {
    flex: 0 0 100%;
    padding: 0 2px 4px;
    color: #806f56;
    font-size: 8px;
    letter-spacing: 1.4px;
}

.manual-nav a {
    padding: 4px 7px;
    border: 1px solid #49372b;
    color: #bca979;
    background: linear-gradient(#2b211a, #1e1712);
    font-size: 9px;
    text-decoration: none;
}

.manual-nav a:hover {
    border-color: #866b3d;
    color: #ead79d;
    background: #33271c;
}

.rule-callout {
    margin-bottom: 13px;
    padding: 11px 13px;
    border: 1px solid #594431;
    border-left: 5px solid #6e5634;
    background: #19130f;
}

.rule-callout--gold {
    border-color: #745a35;
    border-left-color: #b18b47;
    background: linear-gradient(90deg, #2c2117, #1a140f);
}

.rule-callout > strong,
.loyalty-box > strong {
    color: #dcc587;
    font: bold 14px Georgia, serif;
}

.rule-callout p,
.loyalty-box p {
    margin: 4px 0 0;
    color: #a5977e;
}

.manual-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 13px;
    padding: 0;
    list-style: none;
}

.manual-steps li {
    display: grid;
    min-height: 82px;
    grid-template-columns: 30px 1fr;
    gap: 7px;
    padding: 9px;
    border: 1px solid #4d3b2e;
    background: linear-gradient(#251c16, #18120f);
}

.manual-steps li > b {
    width: 27px;
    height: 27px;
    border: 2px double #8c7040;
    color: #d0b873;
    font: normal 16px/23px Georgia, serif;
    text-align: center;
}

.manual-steps span,
.manual-steps strong {
    display: block;
}

.manual-steps span {
    color: #887a66;
    font-size: 9px;
}

.manual-steps strong {
    margin-bottom: 2px;
    color: #cbb785;
    font-size: 10px;
}

.metric-guide {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 7px;
    margin-bottom: 13px;
}

.metric-guide article {
    position: relative;
    min-height: 118px;
    padding: 10px;
    border: 1px solid #4d3a2d;
    background: #19130f;
}

.metric-guide article > strong {
    display: block;
    padding-right: 25px;
    color: #c8b47d;
    font-size: 9px;
}

.metric-guide article > b {
    position: absolute;
    top: 5px;
    right: 9px;
    color: #6d5837;
    font: normal 23px Georgia, serif;
}

.metric-guide p {
    margin: 8px 0 0;
    color: #8e806b;
    font-size: 9px;
}

.round-timeline,
.walkthrough {
    border-top: 1px solid #49372c;
}

.round-timeline article,
.walkthrough article {
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 11px;
    padding: 10px;
    border-right: 1px solid #49372c;
    border-bottom: 1px solid #49372c;
    border-left: 1px solid #49372c;
    background: #19130f;
}

.round-timeline article:nth-child(even),
.walkthrough article:nth-child(even) {
    background: #211914;
}

.round-timeline article > b,
.walkthrough article > b {
    color: #b99d5e;
    font: normal 17px Georgia, serif;
    text-align: center;
}

.round-timeline strong,
.walkthrough strong {
    color: #cbb783;
}

.round-timeline p,
.walkthrough p {
    margin: 2px 0 0;
    color: #8e806b;
    font-size: 9px;
}

.round-timeline + .mechanic-note,
.walkthrough + .mechanic-note {
    margin-top: 12px;
}

.manual-table {
    width: 100%;
    border-collapse: collapse;
    color: #a59880;
    font-size: 9px;
}

.manual-table th {
    padding: 7px 8px;
    border: 1px solid #59442f;
    color: #d2bc82;
    background: linear-gradient(#33271d, #241a14);
    font-size: 8px;
    letter-spacing: .35px;
    text-align: left;
    text-transform: uppercase;
}

.manual-table td {
    padding: 8px;
    border: 1px solid #49372c;
    vertical-align: top;
}

.manual-table tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, .018);
}

.manual-table td > strong {
    color: #ccb880;
}

.manual-table .outcome-good {
    background: rgba(88, 111, 57, .13);
}

.manual-table .outcome-betray {
    background: rgba(136, 91, 31, .12);
}

.manual-table .outcome-bad {
    background: rgba(122, 43, 43, .12);
}

.table-note,
.section-lead {
    margin: 10px 0 0;
    color: #867861;
    font-size: 9px;
}

.section-lead {
    margin: 0 0 12px;
    color: #a6977d;
}

.table-category {
    display: block;
    margin-top: 2px;
    color: #726650;
    font-size: 8px;
    text-transform: uppercase;
}

.procedure-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 13px;
    padding: 0;
    list-style: none;
}

.procedure-list li {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 8px;
    padding: 9px;
    border: 1px solid #4d3b2e;
    background: #1a140f;
}

.procedure-list li > b {
    color: #ad9152;
    font: normal 18px Georgia, serif;
}

.procedure-list strong {
    color: #cdb982;
}

.procedure-list p {
    margin: 2px 0 0;
    color: #8f816a;
    font-size: 9px;
}

.procedure-list--compact {
    margin-bottom: 14px;
}

.loyalty-box {
    margin: 12px 0;
    padding: 11px 13px;
    border: 1px solid #60633f;
    border-left: 5px solid #728047;
    background: #1c2115;
}

.loyalty-box > strong {
    color: #c4ce95;
}

.example-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 11px;
}

.example-box {
    padding: 10px 11px;
    border: 1px solid #57432e;
    border-left: 4px solid #795f37;
    background: #21180f;
}

.example-box--wide {
    margin-top: 2px;
}

.example-box > span {
    display: block;
    margin-bottom: 5px;
    color: #b49b61;
    font-size: 8px;
    letter-spacing: .7px;
}

.example-box p {
    margin: 0;
    color: #998a72;
    font-size: 9px;
}

.formula-box {
    margin-bottom: 13px;
    padding: 14px;
    border: 3px double #765d38;
    background: #15100c;
    text-align: center;
}

.formula-box span,
.formula-box strong,
.formula-box small {
    display: block;
}

.formula-box span {
    color: #776a55;
    font-size: 8px;
    letter-spacing: 1.5px;
}

.formula-box strong {
    margin: 5px 0 3px;
    color: #ddc47f;
    font: normal 22px Georgia, serif;
}

.formula-box small {
    color: #867963;
}

.manual-copy-grid {
    margin-bottom: 12px;
}

.manual-copy-grid > .prose,
.manual-copy-grid > .example-box {
    min-height: 100%;
}

.manual-copy-grid .prose {
    padding: 10px 12px;
    border: 1px solid #49382c;
    background: #19130f;
}

.manual-copy-grid h3 {
    margin-bottom: 6px;
    color: #cbb783;
    font: bold 13px Georgia, serif;
}

.ledger-list {
    margin: 0;
    padding-left: 19px;
    color: #9a8c74;
}

.ledger-list li {
    padding: 3px 0;
    border-bottom: 1px dotted #413228;
}

.manual-subtitle {
    margin: 17px 0 8px;
    padding: 5px 8px;
    border-left: 4px solid #80663b;
    color: #d2bc82;
    background: #271d16;
    font: bold 13px Georgia, serif;
}

.role-manual-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.role-manual-grid article {
    min-height: 135px;
    padding: 10px;
    border: 1px solid #4d3a2d;
    background: linear-gradient(#221a14, #17120e);
}

.role-manual-grid article > span {
    color: #746854;
    font-size: 8px;
    text-transform: uppercase;
}

.role-manual-grid h3 {
    margin: 4px 0;
    color: #d0b97d;
    font: normal 16px Georgia, serif;
}

.role-manual-grid article > strong {
    color: #a9945e;
    font-size: 9px;
}

.role-manual-grid p {
    margin: 5px 0 0;
    color: #8d806a;
    font-size: 9px;
}

.role-manual-grid + .mechanic-note {
    margin-top: 12px;
}

.raid-guide {
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid #60402f;
    background: #21140f;
    text-align: center;
}

.raid-threshold {
    display: flex;
    align-items: center;
    max-width: 600px;
    margin: 0 auto 7px;
}

.raid-threshold i {
    height: 8px;
    flex: 1;
    border-top: 1px solid #5a4935;
    border-bottom: 1px solid #5a4935;
    background: repeating-linear-gradient(90deg, #453b27 0, #453b27 12px, #58492d 12px, #58492d 24px);
}

.raid-threshold i:last-of-type {
    background: repeating-linear-gradient(90deg, #702d29 0, #702d29 12px, #8b3932 12px, #8b3932 24px);
}

.raid-threshold span,
.raid-threshold strong {
    min-width: 44px;
    color: #9f8d6e;
    font: normal 14px 'Courier New', monospace;
}

.raid-threshold strong {
    color: #d07161;
}

.raid-guide p {
    margin: 0;
    color: #a28e75;
}

.walkthrough article {
    grid-template-columns: 105px 1fr;
}

.walkthrough article > b {
    font: bold 11px 'Courier New', monospace;
}

.faq-list details {
    border: 1px solid #49382c;
    border-bottom: 0;
    background: #19130f;
}

.faq-list details:last-child {
    border-bottom: 1px solid #49382c;
}

.faq-list summary {
    padding: 8px 10px;
    color: #c6b27d;
    background: linear-gradient(#2b2119, #211813);
    cursor: pointer;
    font-weight: bold;
}

.faq-list details[open] summary {
    border-bottom: 1px dotted #4c3a2d;
}

.faq-list details p {
    margin: 0;
    padding: 9px 12px 11px 27px;
    color: #958771;
}

.final-cheatsheet {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    padding: 1px;
    background: #49382c;
}

.final-cheatsheet span {
    padding: 8px 10px;
    color: #8f826c;
    background: #19130f;
    font-size: 9px;
}

.final-cheatsheet strong {
    color: #c7b27b;
}

.finale-locked,
.winner-card {
    padding: 50px 25px;
    border: 1px solid #675039;
    background: linear-gradient(rgba(15, 11, 8, .78), rgba(15, 11, 8, .92)), url('/assets/images/mafia-ledger-banner.webp') center / cover;
    text-align: center;
    box-shadow: inset 0 0 80px #000;
}

.finale-locked > span,
.winner-card > span {
    color: #a98e52;
    font-size: 9px;
    letter-spacing: 2px;
}

.finale-locked h2,
.winner-card h2 {
    margin: 7px 0;
    color: #ead7a1;
    font: normal 36px Georgia, serif;
}

.winner-card strong {
    display: block;
    margin: 13px 0;
    color: #e4c675;
    font: normal 22px Georgia, serif;
}

.winner-card blockquote {
    max-width: 650px;
    margin: 10px auto 0;
    color: #b4a58d;
    font: italic 13px Georgia, serif;
}

.finale-ranking {
    margin-top: 14px;
}

.winner-row td {
    color: #ddc681;
    background: rgba(168, 133, 55, .12) !important;
}

.admin-summary {
    margin-bottom: 14px;
}

.admin-help code {
    color: #f0d792;
    background: #15100c;
}

.admin-dates {
    margin: 0 0 12px;
}

.admin-dates div {
    display: flex;
    padding: 5px 0;
    border-bottom: 1px dotted #4a392e;
}

.admin-dates dt {
    width: 140px;
    color: #81735e;
}

.admin-dates dd {
    margin: 0;
    color: #c9b98f;
}

.admin-actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 9px;
}

.admin-actions .button {
    width: 100%;
}

.admin-player-list details {
    margin-bottom: 6px;
    border: 1px solid #4d3b30;
    background: #17120f;
}

.admin-player-list summary {
    display: grid;
    grid-template-columns: 160px 1fr 260px;
    gap: 10px;
    padding: 9px 11px;
    cursor: pointer;
    list-style-position: inside;
}

.admin-player-list summary strong {
    color: #d0bb83;
}

.admin-player-list summary span {
    color: #897b66;
    font-size: 9px;
}

.admin-player-list details form {
    padding: 12px;
    border-top: 1px solid #4d3b30;
    background: #211a15;
}

.allowlist-form {
    margin-bottom: 14px;
}

@media (max-width: 720px) {
    .login-wrap {
        margin-top: 25px;
    }

    .waiting-card,
    .page-title--story,
    .rules-intro {
        display: block;
    }

    .waiting-countdown,
    .round-clock {
        margin: 15px 0 0;
    }

    .win-loop {
        display: block;
    }

    .win-loop i {
        display: none;
    }

    .inventory-grid,
    .market-grid,
    .npc-grid {
        grid-template-columns: 1fr;
    }

    .family-scoreboard {
        grid-template-columns: 1fr;
    }

    .versus {
        padding: 6px;
    }

    .family-seal {
        margin: 16px 0 0;
    }

    .admin-player-list summary {
        grid-template-columns: 1fr;
    }

    .admin-actions {
        grid-template-columns: 1fr;
    }

    .manual-steps,
    .metric-guide,
    .procedure-list,
    .example-grid,
    .role-manual-grid,
    .final-cheatsheet {
        grid-template-columns: 1fr;
    }

    .manual-nav a {
        flex: 1 0 43%;
        text-align: center;
    }

    .round-timeline article,
    .walkthrough article {
        grid-template-columns: 58px 1fr;
    }

    .formula-box strong {
        font-size: 17px;
    }
}

/* Pozdní přepsání sdílených stylů pro administraci */
.admin-actions .button--projection {
    border-color: #80693d;
    color: #1c1309;
    background: linear-gradient(#e1c679, #9f7e3d);
    text-shadow: 0 1px rgba(255, 255, 255, .25);
}

.panel.admin-danger-zone {
    border-color: #76353a;
}

/* Globální přehrávač podkresu */
.legacy-audio[hidden] {
    display: none !important;
}

.legacy-audio {
    position: fixed;
    z-index: 2000;
    right: 10px;
    bottom: 9px;
    display: grid;
    grid-template-columns: auto 96px;
    min-height: 34px;
    overflow: hidden;
    border: 3px double #69513b;
    color: #a99b82;
    background: linear-gradient(#2b211a, #120e0b);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .8), inset 0 1px rgba(255, 255, 255, .04);
    font: 9px Arial, Helvetica, sans-serif;
}

.legacy-audio__toggle {
    display: grid;
    grid-template-columns: auto auto;
    gap: 8px;
    align-items: center;
    min-width: 158px;
    padding: 5px 9px;
    border: 0;
    border-right: 1px solid #4d3a2c;
    color: #a99b82;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.legacy-audio__toggle:hover,
.legacy-audio__toggle:focus-visible {
    color: #e4cf99;
    background: #2f241c;
    outline: 1px dotted #b99855;
    outline-offset: -3px;
}

.legacy-audio__toggle span {
    color: #8e7b62;
    font-weight: bold;
    letter-spacing: 1.3px;
}

.legacy-audio__toggle strong {
    color: #b9aa8e;
    font-size: 8px;
    letter-spacing: .3px;
    white-space: nowrap;
}

.legacy-audio.is-playing .legacy-audio__toggle strong {
    color: #9caf72;
}

.legacy-audio.is-playing .legacy-audio__toggle span::before {
    display: inline-block;
    width: 5px;
    height: 5px;
    margin-right: 5px;
    border-radius: 50%;
    background: #718a49;
    box-shadow: 0 0 5px #718a49;
    content: '';
    vertical-align: 1px;
}

.legacy-audio.is-waiting .legacy-audio__toggle strong {
    color: #d2a95e;
}

.legacy-audio.is-off {
    opacity: .72;
}

.legacy-audio__volume {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px;
    align-items: center;
    padding: 4px 7px;
}

.legacy-audio__volume span {
    color: #756551;
    font-size: 7px;
}

.legacy-audio__volume input {
    width: 58px;
    accent-color: #9e8047;
    cursor: pointer;
}

body.projection-page .legacy-audio {
    z-index: 3000;
    bottom: 7px;
}

@media (max-width: 720px) {
    .legacy-audio {
        right: 5px;
        bottom: 5px;
        grid-template-columns: auto 82px;
        max-width: calc(100vw - 10px);
    }

    .legacy-audio__toggle {
        min-width: 142px;
        padding-right: 7px;
        padding-left: 7px;
    }

    .legacy-audio__volume input {
        width: 46px;
    }
}
