* {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    min-height: 100%;
    font-family: "Malgun Gothic", "Apple SD Gothic Neo", Arial, sans-serif;
    color: #1f2937;
}

body {
    min-height: 100vh;
}

/* 로그인 */
.login-body {
    background: #efe9dc;
}

.login-hero {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    background:
        radial-gradient(circle at 20% 25%, rgba(255,255,255,.95), transparent 28%),
        radial-gradient(circle at 12% 70%, rgba(156,94,32,.42), transparent 30%),
        linear-gradient(120deg, #e7c77e 0%, #f8ead1 45%, #fffaf0 100%);
}

.login-hero::before,
.login-hero::after {
    content: "";
    position: absolute;
    border: 5px solid rgba(177,124,25,.45);
    border-left: none;
    border-bottom: none;
    border-radius: 50%;
    transform: rotate(-12deg);
}

.login-hero::before {
    width: 70vw;
    height: 58vw;
    right: -20vw;
    top: -10vw;
}

.login-hero::after {
    width: 90vw;
    height: 36vw;
    left: -26vw;
    bottom: -25vw;
}

.login-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(71,42,13,.10), rgba(255,255,255,.08));
}

.top-clock {
    position: absolute;
    z-index: 3;
    top: 4.5vh;
    left: 50%;
    transform: translateX(-50%);
    background: #173b82;
    color: white;
    padding: 10px 18px;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .5px;
    box-shadow: 0 3px 12px rgba(0,0,0,.12);
}

.top-clock span {
    margin-right: 10px;
}

.login-card {
    position: absolute;
    z-index: 3;
    width: min(560px, 92vw);
    right: 8vw;
    top: 51%;
    transform: translateY(-42%);
    background: rgba(255,250,242,.95);
    border: 2px solid #d9b770;
    padding: 34px 34px 28px;
    box-shadow: 9px 10px 0 rgba(145,111,52,.18);
}

.login-card h1 {
    margin: 0;
    text-align: center;
    color: #1d3f8f;
    font-size: 34px;
}

.title-line {
    height: 2px;
    margin: 20px 0 30px;
    background: #e6d6b5;
}

.form-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}

.form-row label {
    color: #8c6c2c;
    font-size: 20px;
    font-weight: 700;
}

.form-row input {
    width: 100%;
    height: 48px;
    border: 2px solid #ccb06f;
    background: white;
    padding: 0 12px;
    font-size: 17px;
    outline: none;
}

.form-row input:focus {
    border-color: #9c7628;
    box-shadow: 0 0 0 3px rgba(183,138,44,.12);
}

.login-button {
    width: 100%;
    height: 58px;
    border: 0;
    margin-top: 12px;
    background: #b78a2c;
    color: white;
    font-size: 22px;
    font-weight: 700;
    cursor: pointer;
}

.login-button:hover {
    background: #956c1f;
}

.alert {
    padding: 12px 14px;
    margin-bottom: 20px;
    border-radius: 4px;
    font-size: 15px;
}

.alert.error {
    background: #fff0f0;
    color: #a61b1b;
    border: 1px solid #f1b9b9;
}

.status-text {
    margin-top: 14px;
    text-align: right;
    color: #8a7c67;
    font-size: 12px;
}

/* 공통 업무 화면 */
.app-body {
    background: #f3f6fb;
}

.app-header {
    min-height: 50px;
    background: #1d3477;
    color: white;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 22px;
    gap: 20px;
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

.brand {
    font-size: 20px;
    font-weight: 800;
}

.header-right {
    display: flex;
    align-items: center;
    gap: 16px;
    white-space: nowrap;
}

.clock-label {
    font-size: 17px;
    font-weight: 700;
}

.user-name {
    padding: 7px 10px;
    background: rgba(255,255,255,.12);
    border-radius: 5px;
}

.logout-link {
    color: white;
    text-decoration: none;
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 5px;
}

.main-wrap {
    width: min(1500px, 96%);
    margin: 0 auto;
    padding: 12px 0 45px;
}

.page-title h1 {
    margin: 0 0 4px;
    font-size: 30px;
    color: #1d3477;
}

.page-title p {
    margin: 0 0 24px;
    color: #6b7280;
    font-size: 18px;
}

.menu-section,
.content-card {
    background: white;
    border: 1px solid #cfd6e4;
    box-shadow: 0 4px 18px rgba(31,41,55,.05);
}

.menu-section {
    padding: 24px;
}

.section-title {
    font-size: 22px;
    font-weight: 800;
    margin-bottom: 20px;
    color: #111827;
    padding-bottom: 12px;
    border-bottom: 1px solid #d7dce5;
}

.menu-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(190px, 1fr));
    gap: 16px;
}

.menu-button {
    display: flex;
    min-height: 64px;
    align-items: center;
    justify-content: center;
    padding: 12px 16px;
    border: 1px solid #9da7b8;
    box-shadow: 0 2px 0 rgba(0,0,0,.10);
    text-decoration: none;
    font-size: 18px;
    font-weight: 800;
    text-align: center;
    transition: transform .12s ease, box-shadow .12s ease;
}

.menu-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 12px rgba(0,0,0,.10);
}

.menu-button.blue { background: #e3f2fd; color: #0d47a1; }
.menu-button.green { background: #e8f5e9; color: #1b5e20; }
.menu-button.purple { background: #f3e5f5; color: #6a1b9a; }
.menu-button.orange { background: #fff4df; color: #e65100; }
.menu-button.yellow { background: #fffde7; color: #b45f00; }

.excluded-note {
    margin-top: 24px;
    padding: 13px 15px;
    background: #f8fafc;
    border-left: 4px solid #94a3b8;
    color: #596273;
}

.back-link {
    display: inline-block;
    margin-bottom: 16px;
    color: #1d4ed8;
    text-decoration: none;
    font-weight: 700;
}

.content-card {
    padding: 30px;
}

.content-card h1 {
    margin-top: 0;
    color: #1d3477;
}

.muted {
    color: #6b7280;
}

@media (max-width: 1050px) {
    .menu-grid {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    .login-card {
        right: 4vw;
    }
}

@media (max-width: 680px) {
    .top-clock {
        top: 18px;
        font-size: 16px;
        padding: 8px 12px;
    }

    .login-card {
        position: relative;
        top: auto;
        right: auto;
        transform: none;
        margin: 100px auto 30px;
        padding: 26px 20px 22px;
    }

    .login-card h1 {
        font-size: 29px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .form-row label {
        font-size: 17px;
    }

    .app-header {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px 18px;
    }

    .brand {
        font-size: 20px;
    }

    .header-right {
        width: 100%;
        justify-content: space-between;
        gap: 8px;
        font-size: 13px;
    }

    .clock-label {
        font-size: 14px;
    }

    .user-name {
        display: none;
    }

    .menu-grid {
        grid-template-columns: 1fr;
    }

    .menu-button {
        min-height: 58px;
        font-size: 17px;
    }

    .main-wrap {
        width: 94%;
        padding-top: 20px;
    }
}


/* ============================================================
   년성적 종합조회
   ============================================================ */
.yearly-wrap {
    width: min(1760px, 98%);
}

.yearly-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 14px;
}

.yearly-toolbar h1 {
    margin: 4px 0 0;
    color: #1d3477;
    font-size: 30px;
}

.query-card,
.status-card,
.result-card {
    background: #fff;
    border: 1px solid #cfd6e4;
    box-shadow: 0 3px 14px rgba(31,41,55,.045);
    margin-bottom: 12px;
}

.query-card {
    padding: 18px;
}

.status-card {
    padding: 12px 18px;
}

.result-card {
    padding: 16px;
}

.section-title.compact {
    font-size: 18px;
    margin-bottom: 14px;
    padding-bottom: 9px;
}

.section-title.no-margin {
    margin: 0;
    padding: 0;
    border: 0;
}

.yearly-form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 10px 12px;
}

.yearly-form label {
    display: grid;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    color: #25324a;
}

.yearly-form label span {
    white-space: nowrap;
}

.yearly-form select,
.yearly-form input[type="number"] {
    height: 40px;
    min-width: 98px;
    border: 1px solid #aeb8c8;
    border-radius: 3px;
    background: #fff;
    padding: 0 10px;
    font-size: 15px;
    color: #1f2937;
}

.yearly-form .stat-select select {
    min-width: 205px;
}

.yearly-form .font-control input {
    width: 68px;
    min-width: 68px;
}

.action-btn {
    height: 40px;
    min-width: 76px;
    border: 0;
    border-radius: 3px;
    padding: 0 14px;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    cursor: pointer;
}

.action-btn.primary { background: #1b2a6b; }
.action-btn.indigo { background: #3949ab; }
.action-btn.gray { background: #777; }
.action-btn.slate { background: #455a64; }

.status-line {
    color: #1b2a6b;
    font-weight: 800;
    font-size: 14px;
}

.yearly-error {
    margin: 10px 0 0;
}

.result-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.export-actions {
    display: flex;
    gap: 8px;
}

.small-btn {
    border: 1px solid #8391a8;
    background: #f7f9fc;
    color: #1f3d75;
    border-radius: 3px;
    padding: 7px 12px;
    font-weight: 700;
    cursor: pointer;
}

.table-scroll {
    width: 100%;
    overflow: auto;
    border: 1px solid #cfd5df;
    max-height: calc(100vh - 365px);
    min-height: 260px;
}

.yearly-table {
    --yearly-font-size: 14px;
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    table-layout: auto;
    font-size: var(--yearly-font-size);
    background: #fff;
}

.yearly-table th,
.yearly-table td {
    min-width: 105px;
    padding: .62em .72em;
    border-right: 1px solid #d8dde6;
    border-bottom: 1px solid #d8dde6;
    text-align: center;
    white-space: nowrap;
}

.yearly-table th:first-child,
.yearly-table td:first-child {
    min-width: 135px;
}

.yearly-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #e8edf8;
    color: #172554;
    font-weight: 900;
    cursor: pointer;
    user-select: none;
}

.yearly-table tbody tr:nth-child(odd) {
    background: #f8f9fb;
}

.yearly-table tbody tr:nth-child(even) {
    background: #fff;
}

.yearly-table tbody tr:hover {
    background: #fff7d6;
}

.sort-mark {
    color: #7b8799;
    font-size: .85em;
}

.empty-result {
    min-height: 220px;
    display: grid;
    place-items: center;
    color: #7b8494;
    background: #fafbfc;
    border: 1px dashed #cdd4df;
}

@media (max-width: 900px) {
    .yearly-wrap {
        width: 96%;
    }

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

    .yearly-form label,
    .yearly-form .stat-select,
    .yearly-form .font-control {
        width: 100%;
    }

    .yearly-form select,
    .yearly-form input[type="number"],
    .yearly-form .stat-select select {
        width: 100%;
        min-width: 0;
    }

    .action-btn {
        width: 100%;
    }

    .table-scroll {
        max-height: none;
        min-height: 220px;
    }
}

@media (max-width: 560px) {
    .yearly-form {
        grid-template-columns: 1fr;
    }

    .yearly-toolbar h1 {
        font-size: 25px;
    }

    .result-head {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* 2026-08-10 상단 타이틀 영역 압축 */
.yearly-wrap {
    padding-top: 8px;
}

.yearly-toolbar {
    margin-bottom: 6px;
    align-items: center;
}

.yearly-toolbar .back-link {
    margin-bottom: 3px;
    font-size: 14px;
}

.yearly-toolbar h1 {
    margin: 0;
    font-size: 25px;
    line-height: 1.2;
}

.query-card {
    padding: 13px 16px;
    margin-bottom: 8px;
}

.query-card .section-title.compact {
    margin-bottom: 9px;
    padding-bottom: 6px;
}

.status-card {
    padding: 8px 16px;
    margin-bottom: 8px;
}

.result-card {
    padding: 12px;
}

@media (max-width: 680px) {
    .app-header {
        min-height: 48px;
        padding: 10px 14px;
    }

    .brand {
        font-size: 18px;
    }

    .main-wrap {
        padding-top: 8px;
    }

    .yearly-toolbar h1 {
        font-size: 21px;
    }
}


/* 선택된 화면 표시 */
.selected-screen-nav {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.selected-screen-nav .back-link {
    margin: 0;
}

.selected-screen-badge {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 3px 10px;
    border-radius: 3px;
    background: #e8eefb;
    border: 1px solid #b8c6e8;
    color: #1d3477;
    font-size: 13px;
    font-weight: 800;
}

.yearly-toolbar {
    margin-bottom: 5px;
}

@media (max-width: 680px) {
    .selected-screen-nav {
        gap: 7px;
    }

    .selected-screen-badge {
        font-size: 12px;
        padding: 2px 7px;
    }
}


/* ============================================================
   경주 출전조회
   ============================================================ */
.race-entry-wrap {
    width: min(1820px, 99%);
    padding-top: 8px;
}

.race-entry-nav {
    margin-bottom: 5px;
}

.race-entry-query {
    padding: 12px 14px;
    margin-bottom: 7px;
}

.race-entry-form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 8px 10px;
}

.race-entry-form label {
    display: grid;
    gap: 5px;
    color: #25324a;
    font-size: 13px;
    font-weight: 800;
}

.race-entry-form input[type="date"],
.race-entry-form input[type="number"],
.race-entry-form select {
    height: 38px;
    min-width: 105px;
    border: 1px solid #aeb8c8;
    border-radius: 3px;
    background: white;
    padding: 0 9px;
    font-size: 14px;
}

.race-entry-form input[type="date"] {
    min-width: 145px;
}

.race-entry-form .font-control input {
    width: 64px;
    min-width: 64px;
}

.race-entry-form .action-btn {
    height: 38px;
}

.action-btn.race-move {
    min-width: 105px;
    background: #f5f5f5;
    border: 1px solid #b7bec9;
    color: #26355a;
}

.action-btn.race-move:disabled {
    color: #a6acb6;
    background: #f1f1f1;
    cursor: default;
}

.race-entry-status {
    padding: 7px 14px;
    margin-bottom: 7px;
}

.race-entry-result {
    padding: 10px 12px;
    margin-bottom: 7px;
}

.entry-count {
    color: #5b6577;
    font-size: 13px;
    font-weight: 700;
}

.race-entry-table-scroll {
    min-height: 180px;
    max-height: 38vh;
}

.race-entry-table th,
.race-entry-table td {
    min-width: 66px;
    padding: .52em .62em;
}

.race-entry-table th:nth-child(2),
.race-entry-table td:nth-child(2) {
    min-width: 125px;
}

.race-entry-table th:nth-child(9),
.race-entry-table td:nth-child(9),
.race-entry-table th:nth-child(10),
.race-entry-table td:nth-child(10),
.race-entry-table th:nth-child(11),
.race-entry-table td:nth-child(11) {
    min-width: 95px;
}

.race-entry-table th:nth-child(12),
.race-entry-table td:nth-child(12) {
    min-width: 140px;
}

.race-entry-table th:nth-child(13),
.race-entry-table td:nth-child(13) {
    min-width: 120px;
}

.race-entry-table th:nth-child(17),
.race-entry-table td:nth-child(17) {
    min-width: 210px;
}

.race-entry-table tbody tr {
    cursor: pointer;
}

.race-entry-table tbody tr.win-rank-1 {
    background: #ffe6e6;
}

.race-entry-table tbody tr.win-rank-2 {
    background: #e6f0ff;
}

.race-entry-table tbody tr.win-rank-3 {
    background: #eeeeee;
}

.race-entry-table tbody tr.selected,
.race-entry-table tbody tr.selected:hover {
    outline: 2px solid #1d4ed8;
    outline-offset: -2px;
    background: #fff6c7;
}

.race-empty {
    min-height: 150px;
}

.horse-detail-card {
    padding: 10px 12px 14px;
}

.hidden {
    display: none !important;
}

.entry-detail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.selected-horse-title {
    color: #0d47a1;
    font-weight: 900;
    font-size: 16px;
}

.detail-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid #bcc6d6;
    margin-bottom: 9px;
}

.detail-tab {
    border: 1px solid #bcc6d6;
    border-bottom: 0;
    background: #eef2f7;
    color: #334155;
    padding: 7px 15px;
    font-weight: 800;
    cursor: pointer;
}

.detail-tab.active {
    background: #1d3477;
    color: #fff;
}

.detail-panel {
    display: none;
}

.detail-panel.active {
    display: block;
}

.profile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid #cbd3df;
    border-left: 1px solid #cbd3df;
}

.profile-item {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    min-height: 42px;
}

.profile-label,
.profile-value {
    display: flex;
    align-items: center;
    border-right: 1px solid #cbd3df;
    border-bottom: 1px solid #cbd3df;
    padding: 7px 10px;
}

.profile-label {
    justify-content: center;
    background: #eef4f8;
    color: #17365d;
    font-weight: 900;
}

.profile-value {
    background: #fff;
}

.profile-item:nth-child(7) .profile-label,
.profile-item:nth-child(8) .profile-label,
.profile-item:nth-child(9) .profile-label,
.profile-item:nth-child(7) .profile-value,
.profile-item:nth-child(8) .profile-value,
.profile-item:nth-child(9) .profile-value {
    color: #d32f2f;
    font-weight: 900;
}

.detail-table-scroll {
    max-height: 315px;
    min-height: 160px;
}

.detail-history-table {
    font-size: 13px;
}

.detail-empty {
    grid-column: 1 / -1;
    min-height: 90px;
    display: grid;
    place-items: center;
    color: #788395;
    background: #fafbfc;
    padding: 16px;
}

.error-text {
    color: #b42318;
}

@media (max-width: 900px) {
    .race-entry-form {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .race-entry-form label,
    .race-entry-form input[type="date"],
    .race-entry-form input[type="number"],
    .race-entry-form select,
    .race-entry-form .action-btn {
        width: 100%;
        min-width: 0;
    }

    .profile-grid {
        grid-template-columns: 1fr;
    }

    .race-entry-table-scroll {
        max-height: none;
    }
}

@media (max-width: 560px) {
    .race-entry-form {
        grid-template-columns: 1fr;
    }

    .entry-detail-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .selected-horse-title {
        font-size: 14px;
    }

    .profile-item {
        grid-template-columns: 95px minmax(0, 1fr);
    }
}


/* ============================================================
   경주 출전조회 - 하단 10개 탭
   ============================================================ */
.ten-tabs {
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    white-space: nowrap;
    scrollbar-width: thin;
    padding-bottom: 1px;
}

.ten-tabs .detail-tab {
    flex: 0 0 auto;
    min-width: 108px;
    padding: 7px 11px;
    font-size: 13px;
}

.all-tab-content {
    min-height: 250px;
}

.tab-subtitle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 34px;
    margin-bottom: 7px;
    padding: 5px 9px;
    background: #f5f7fb;
    border-left: 4px solid #1d3477;
    color: #172554;
    font-size: 14px;
    font-weight: 900;
}

.tab-subtitle span {
    color: #64748b;
    font-size: 12px;
}

.all-tabs-table-scroll {
    min-height: 205px;
    max-height: 330px;
}

.result-rank-1 { background: #ffe6e6 !important; }
.result-rank-2 { background: #e6f0ff !important; }
.result-rank-3 { background: #eeeeee !important; }

.profile-item.emphasized .profile-label,
.profile-item.emphasized .profile-value {
    color: #d32f2f;
    font-weight: 900;
}

.dashboard-summary-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    border: 1px solid #cbd5e1;
    margin-bottom: 8px;
}

.dashboard-summary-row > div {
    min-height: 48px;
    padding: 8px 10px;
    border-right: 1px solid #d7dee9;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.dashboard-summary-row > div:last-child {
    border-right: 0;
}

.horse-chip {
    display: inline-flex;
    width: 31px;
    height: 31px;
    align-items: center;
    justify-content: center;
    margin-right: 5px;
    border: 2px solid #1d3477;
    border-radius: 50%;
    background: white;
    color: #172554;
    font-weight: 900;
}

.no-horse {
    color: #9ca3af;
}

.dashboard-items {
    border: 1px solid #cbd5e1;
}

.dashboard-item {
    display: grid;
    grid-template-columns: 55px minmax(320px, 1fr) minmax(250px, 1fr);
    min-height: 39px;
    border-bottom: 1px solid #d9e0ea;
}

.dashboard-item:last-child {
    border-bottom: 0;
}

.dashboard-item > div {
    display: flex;
    align-items: center;
    padding: 5px 10px;
}

.dashboard-no {
    justify-content: center;
    background: #e0f2fe;
    color: #0369a1;
    font-weight: 900;
}

.dashboard-text {
    font-weight: 700;
}

.dashboard-item.warning .dashboard-text {
    color: #d32f2f;
    font-weight: 900;
}

.dashboard-horses {
    border-left: 1px solid #d9e0ea;
}

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

.flow-card {
    border: 1px solid #cbd5e1;
    background: #fff;
}

.flow-title {
    padding: 7px 10px;
    background: #eef4f8;
    color: #17365d;
    font-weight: 900;
}

.flow-stats,
.flow-recent {
    padding: 7px 10px;
    border-top: 1px solid #e1e6ed;
}

.memo-top5 {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 10px;
    border: 1px solid #cbd5e1;
    margin-bottom: 8px;
}

.memo-layout {
    display: grid;
    grid-template-columns: minmax(350px, 430px) 1fr;
    gap: 10px;
}

.memo-reference {
    border: 1px solid #cbd5e1;
}

.memo-ref-row {
    display: grid;
    grid-template-columns: 110px 1fr;
    min-height: 43px;
    border-bottom: 1px solid #d8dee8;
}

.memo-ref-row:last-child {
    border-bottom: 0;
}

.memo-ref-row b,
.memo-ref-row span {
    display: flex;
    align-items: center;
    padding: 7px 10px;
}

.memo-ref-row b {
    justify-content: center;
    background: #f5f7fb;
    border-right: 1px solid #d8dee8;
}

.memo-editor textarea {
    width: 100%;
    min-height: 205px;
    resize: vertical;
    border: 1px solid #aeb8c8;
    padding: 10px;
    font-family: "Malgun Gothic", sans-serif;
    font-size: 15px;
}

.memo-actions {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 7px;
    flex-wrap: wrap;
}

.memo-actions .action-btn {
    height: 36px;
}

#memoStatus {
    color: #64748b;
    font-size: 12px;
}

@media (max-width: 900px) {
    .dashboard-summary-row {
        grid-template-columns: 1fr;
    }
    .dashboard-summary-row > div {
        border-right: 0;
        border-bottom: 1px solid #d7dee9;
    }
    .dashboard-summary-row > div:last-child {
        border-bottom: 0;
    }
    .dashboard-item {
        grid-template-columns: 45px minmax(220px, 1fr) minmax(180px, 1fr);
    }
    .flow-grid {
        grid-template-columns: 1fr;
    }
    .memo-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .all-tab-content {
        min-height: 210px;
    }
    .dashboard-item {
        grid-template-columns: 38px minmax(210px, 1fr) minmax(145px, 1fr);
        font-size: 12px;
    }
    .ten-tabs .detail-tab {
        min-width: 95px;
        font-size: 12px;
    }
}


/* ============================================================
   경주 출전조회 글자크기 14 기준 통일
   웹에서는 Android의 sp 대신 CSS px를 사용합니다.
   ============================================================ */
.race-entry-wrap,
.race-entry-wrap input,
.race-entry-wrap select,
.race-entry-wrap button,
.race-entry-wrap textarea,
.race-entry-wrap table,
.race-entry-wrap th,
.race-entry-wrap td,
.race-entry-wrap .detail-tab,
.race-entry-wrap .tab-subtitle,
.race-entry-wrap .profile-label,
.race-entry-wrap .profile-value,
.race-entry-wrap .dashboard-item,
.race-entry-wrap .flow-card,
.race-entry-wrap .memo-ref-row,
.race-entry-wrap .selected-horse-title,
.race-entry-wrap .entry-count,
.race-entry-wrap .status-line {
    font-size: 14px !important;
}

.race-entry-table,
.detail-history-table {
    --yearly-font-size: 14px !important;
    font-size: 14px !important;
}

.race-entry-form label,
.race-entry-form label span {
    font-size: 14px !important;
}

.ten-tabs .detail-tab {
    font-size: 14px !important;
}

.dashboard-no,
.dashboard-text,
.dashboard-horses {
    font-size: 14px !important;
}

.horse-chip {
    font-size: 14px !important;
}

#entryFontSize {
    font-size: 14px !important;
}


/* ============================================================
   마번 색상 - 기존 Python 달려라경마와 동일한 계열
   ============================================================ */
.horse-chip {
    width: 31px;
    height: 31px;
    border-radius: 50%;
    border-width: 2px;
    border-style: solid;
    font-weight: 900;
    line-height: 1;
    box-shadow: none;
}

/* 1 백색 */
.horse-chip.horse-no-1 {
    background: #ffffff !important;
    border-color: #111111 !important;
    color: #111111 !important;
}

/* 2 황색 */
.horse-chip.horse-no-2 {
    background: #ffd928 !important;
    border-color: #17428c !important;
    color: #0a2d72 !important;
}

/* 3 적색 */
.horse-chip.horse-no-3 {
    background: #ef3d35 !important;
    border-color: #ef3d35 !important;
    color: #ffffff !important;
}

/* 4 흑색 */
.horse-chip.horse-no-4 {
    background: #222222 !important;
    border-color: #222222 !important;
    color: #ffffff !important;
}

/* 5 청색 */
.horse-chip.horse-no-5 {
    background: #008cd6 !important;
    border-color: #006aa7 !important;
    color: #ffffff !important;
}

/* 6 녹색 */
.horse-chip.horse-no-6 {
    background: #36a852 !important;
    border-color: #27833d !important;
    color: #ffffff !important;
}

/* 7 갈색 */
.horse-chip.horse-no-7 {
    background: #795548 !important;
    border-color: #5d4037 !important;
    color: #ffffff !important;
}

/* 8 분홍색 */
.horse-chip.horse-no-8 {
    background: #f48fb1 !important;
    border-color: #1976d2 !important;
    color: #ffffff !important;
}

/* 9 보라색 */
.horse-chip.horse-no-9 {
    background: #9c27b0 !important;
    border-color: #7b1fa2 !important;
    color: #ffffff !important;
}

/* 10 하늘색 */
.horse-chip.horse-no-10 {
    background: #00a9e8 !important;
    border-color: #0086bc !important;
    color: #ffffff !important;
}

/* 11 백색 + 하늘색 외곽선 */
.horse-chip.horse-no-11 {
    background: #ffffff !important;
    border-color: #00a9e8 !important;
    color: #00a9e8 !important;
}

/* 12 연두색 */
.horse-chip.horse-no-12 {
    background: #8bc34a !important;
    border-color: #689f38 !important;
    color: #ffffff !important;
}

/* 13 주황색 */
.horse-chip.horse-no-13 {
    background: #ff9800 !important;
    border-color: #ef6c00 !important;
    color: #ffffff !important;
}

/* 14 회색 */
.horse-chip.horse-no-14 {
    background: #9e9e9e !important;
    border-color: #616161 !important;
    color: #ffffff !important;
}

.horse-chip.horse-no-default {
    background: #ffffff !important;
    border-color: #1d3477 !important;
    color: #172554 !important;
}


/* ============================================================
   최근경주흐름 - 기존 Python 화면 스타일
   ============================================================ */
.recent-flow-python {
    width: 100%;
    border: 1px solid #cfd7e3;
    background: #fff;
}

.flow-python-row {
    display: grid;
    grid-template-columns: 165px minmax(0, 1fr);
    min-height: 78px;
    border-bottom: 1px solid #d9e0e9;
}

.flow-python-row:last-child {
    border-bottom: 0;
}

.flow-python-label {
    display: flex;
    align-items: center;
    padding: 10px 14px;
    color: #0b2f7a;
    font-weight: 900;
    white-space: nowrap;
    background: #fff;
    border-right: 1px solid #d9e0e9;
}

.flow-python-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    background: #fff;
}

.flow-python-items {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: max-content;
    min-width: 100%;
    padding: 11px 10px 8px;
}

.flow-race-token {
    flex: 0 0 auto;
    width: 62px;
    text-align: center;
}

.flow-horse-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 36px;
    margin-bottom: 1px;
}

.flow-horse-circle {
    display: inline-flex;
    width: 29px;
    height: 29px;
    align-items: center;
    justify-content: center;
    border: 1px solid #aab2bd;
    border-radius: 50%;
    background: #fff;
    color: #111;
    font-size: 14px !important;
    font-weight: 900;
    line-height: 1;
}

.flow-rank-underline {
    position: absolute;
    bottom: 0;
    left: 4px;
    right: 4px;
    height: 4px;
    background: transparent;
}

/* 1위: 빨간 원 + 빨간 밑줄 */
.flow-race-token.flow-rank-1 .flow-horse-circle {
    background: #e10600 !important;
    border-color: #e10600 !important;
    color: #fff !important;
}
.flow-race-token.flow-rank-1 .flow-rank-underline {
    background: #e10600;
}

/* 2위: 파란 원 + 파란 밑줄 */
.flow-race-token.flow-rank-2 .flow-horse-circle {
    background: #147bd1 !important;
    border-color: #147bd1 !important;
    color: #fff !important;
}
.flow-race-token.flow-rank-2 .flow-rank-underline {
    background: #147bd1;
}

/* 3위: 흰 원/검정 테두리 + 검정 밑줄 */
.flow-race-token.flow-rank-3 .flow-horse-circle {
    background: #fff !important;
    border: 2px solid #111 !important;
    color: #111 !important;
}
.flow-race-token.flow-rank-3 .flow-rank-underline {
    background: #111;
}

/* 4위 이하: 흰 원 */
.flow-race-token.flow-rank-other .flow-horse-circle {
    background: #fff !important;
    border: 1px solid #aab2bd !important;
    color: #111 !important;
}

.flow-race-caption {
    height: 18px;
    color: #4b5563;
    font-size: 11px !important;
    line-height: 16px;
    white-space: nowrap;
    letter-spacing: -0.3px;
}

.flow-python-empty {
    display: flex;
    align-items: center;
    min-height: 50px;
    color: #9aa3ad;
    padding: 0 12px;
}

/* 최근경주흐름에서는 마번 고유색보다 순위색을 우선 사용 */
.flow-race-token.flow-rank-1 .flow-horse-circle,
.flow-race-token.flow-rank-2 .flow-horse-circle,
.flow-race-token.flow-rank-3 .flow-horse-circle,
.flow-race-token.flow-rank-other .flow-horse-circle {
    box-shadow: none !important;
}

@media (max-width: 700px) {
    .flow-python-row {
        grid-template-columns: 115px minmax(0, 1fr);
    }

    .flow-python-label {
        padding: 8px;
        font-size: 12px !important;
    }

    .flow-race-token {
        width: 58px;
    }

    .flow-python-items {
        gap: 6px;
    }
}


/* ============================================================
   경주메모 - 기존 Python 화면과 동일한 배치
   ============================================================ */
.race-memo-python {
    width: 100%;
    background: #f7f7f7;
    border: 1px solid #aeb5bf;
    padding: 8px;
    font-size: 14px !important;
}

.memo-python-top {
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: 48px;
    margin-bottom: 7px;
    padding: 2px 4px;
}

.memo-python-top5 {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 315px;
}

.memo-python-top5-title {
    color: #123f98;
    font-size: 18px !important;
    font-weight: 900;
    white-space: nowrap;
}

.memo-python-top5-horses,
.memo-python-rank-horses {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.memo-python-top-actions {
    display: flex;
    align-items: center;
    gap: 5px;
}

.memo-python-btn {
    min-width: 92px;
    height: 37px;
    padding: 0 14px;
    border: 1px solid #40495a;
    color: #fff;
    font-size: 14px !important;
    font-weight: 900;
    cursor: pointer;
}

.memo-python-btn.save {
    background: #1d3477;
}

.memo-python-btn.load {
    background: #3e555d;
}

.memo-python-btn.clear {
    background: #777;
}

.memo-python-main {
    display: grid;
    grid-template-columns: 440px minmax(400px, 1fr);
    gap: 8px;
    min-height: 280px;
}

.memo-python-fieldset {
    margin: 0;
    padding: 8px;
    border: 1px solid #9299a4;
    background: #fff;
}

.memo-python-fieldset legend {
    padding: 0 6px;
    color: #111827;
    font-size: 14px !important;
    font-weight: 900;
}

.memo-python-rank-table {
    border: 1px solid #9097a0;
}

.memo-python-rank-row {
    display: grid;
    grid-template-columns: 122px minmax(0, 1fr);
    min-height: 47px;
    border-bottom: 1px solid #777;
}

.memo-python-rank-row:last-child {
    border-bottom: 0;
}

.memo-python-rank-label {
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #777;
    font-size: 15px !important;
    font-weight: 900;
    background: #fff;
}

.memo-python-rank-horses {
    padding: 6px 10px;
}

.memo-label-win {
    color: #c04a00;
    background: #fff0df;
}

.memo-label-place {
    color: #15731b;
    background: #effce9;
}

.memo-label-quinella {
    color: #0757b8;
    background: #e8f4ff;
}

.memo-label-leader {
    color: #8b6400;
    background: #fffbea;
}

.memo-label-tip {
    color: #6a0dad;
    background: #f8eaff;
}

.memo-horse-chip {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border: 2px solid #222;
    border-radius: 50%;
    font-size: 14px !important;
    font-weight: 900;
    line-height: 1;
}

/* Python 마번 원색 */
.memo-horse-chip.horse-no-1 { background:#fff; color:#111; border-color:#111; }
.memo-horse-chip.horse-no-2 { background:#ffd928; color:#0a2d72; border-color:#17428c; }
.memo-horse-chip.horse-no-3 { background:#ef3d35; color:#fff; border-color:#ef3d35; }
.memo-horse-chip.horse-no-4 { background:#222; color:#fff; border-color:#222; }
.memo-horse-chip.horse-no-5 { background:#008cd6; color:#fff; border-color:#006aa7; }
.memo-horse-chip.horse-no-6 { background:#36a852; color:#fff; border-color:#27833d; }
.memo-horse-chip.horse-no-7 { background:#795548; color:#fff; border-color:#5d4037; }
.memo-horse-chip.horse-no-8 { background:#f48fb1; color:#fff; border-color:#1976d2; }
.memo-horse-chip.horse-no-9 { background:#9c27b0; color:#fff; border-color:#7b1fa2; }
.memo-horse-chip.horse-no-10 { background:#00a9e8; color:#fff; border-color:#0086bc; }
.memo-horse-chip.horse-no-11 { background:#fff; color:#00a9e8; border-color:#00a9e8; }
.memo-horse-chip.horse-no-12 { background:#8bc34a; color:#fff; border-color:#689f38; }
.memo-horse-chip.horse-no-13 { background:#ff9800; color:#fff; border-color:#ef6c00; }
.memo-horse-chip.horse-no-14 { background:#9e9e9e; color:#fff; border-color:#616161; }

.memo-no-data {
    color: #9ca3af;
}

.memo-python-note {
    display: flex;
    flex-direction: column;
}

.memo-python-note textarea {
    flex: 1;
    width: 100%;
    min-height: 230px;
    resize: vertical;
    border: 0;
    outline: none;
    padding: 8px;
    background: #fff;
    color: #222;
    font-family: "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
    font-size: 14px !important;
}

.memo-python-note textarea::placeholder {
    color: #9ca3af;
}

.memo-python-status {
    min-height: 18px;
    padding-top: 4px;
    color: #6b7280;
    font-size: 11px !important;
}

@media (max-width: 900px) {
    .memo-python-top {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .memo-python-top5 {
        min-width: 0;
        width: 100%;
    }

    .memo-python-main {
        grid-template-columns: 1fr;
    }

    .memo-python-top-actions {
        width: 100%;
        overflow-x: auto;
    }
}

@media (max-width: 560px) {
    .memo-python-rank-row {
        grid-template-columns: 105px minmax(0, 1fr);
    }

    .memo-python-rank-label {
        font-size: 13px !important;
    }

    .memo-python-btn {
        min-width: 82px;
        padding: 0 9px;
    }
}


/* ============================================================
   최근경주흐름 최신 표시 병합
   ============================================================ */
.flow-python-label {
    font-size: 12px !important;
}
.flow-race-token {
    width: 54px !important;
}
.flow-horse-wrap {
    width: 27px !important;
    height: 31px !important;
}
.flow-horse-circle {
    width: 25px !important;
    height: 25px !important;
    font-size: 12px !important;
    border-width: 1px !important;
}
.flow-race-token.flow-rank-3 .flow-horse-circle {
    border-width: 2px !important;
}
.flow-rank-underline {
    left: 3px !important;
    right: 3px !important;
    height: 3px !important;
}
.flow-race-caption {
    min-width: 44px;
    text-align: center;
    white-space: nowrap;
    font-size: 12px !important;
    line-height: 15px !important;
    height: 17px !important;
    letter-spacing: -0.4px;
}
.flow-python-items {
    gap: 5px !important;
    padding: 9px 8px 7px !important;
}
.flow-python-row {
    min-height: 66px !important;
}

/* ============================================================
   경주메모 Python 화면 강제 적용
   ============================================================ */
.race-memo-python {
    width: 100%;
    background: #f7f7f7;
    border: 1px solid #9aa0a9;
    padding: 6px 8px 8px;
}

.memo-python-top {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    min-height: 46px !important;
    margin-bottom: 5px !important;
}

.memo-python-top5 {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 310px;
}

.memo-python-top5-title {
    color: #0b43a6 !important;
    font-size: 18px !important;
    font-weight: 900 !important;
}

.memo-python-top-actions {
    display: flex !important;
    gap: 5px !important;
}

.memo-python-btn {
    min-width: 96px !important;
    height: 38px !important;
    padding: 0 14px !important;
    color: #fff !important;
    border: 1px solid #3f4652 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}
.memo-python-btn.save { background: #1d3477 !important; }
.memo-python-btn.load { background: #41575d !important; }
.memo-python-btn.clear { background: #777 !important; }

.memo-python-main {
    display: grid !important;
    grid-template-columns: 440px minmax(420px, 1fr) !important;
    gap: 8px !important;
    min-height: 270px !important;
}

.memo-python-fieldset {
    border: 1px solid #8f959d !important;
    background: #fff !important;
    margin: 0 !important;
    padding: 8px !important;
}
.memo-python-fieldset legend {
    font-size: 14px !important;
    font-weight: 900 !important;
    color: #111 !important;
    padding: 0 5px !important;
}

.memo-python-rank-table {
    border: 1px solid #777 !important;
}
.memo-python-rank-row {
    display: grid !important;
    grid-template-columns: 122px minmax(0, 1fr) !important;
    min-height: 47px !important;
    border-bottom: 1px solid #777 !important;
}
.memo-python-rank-row:last-child {
    border-bottom: 0 !important;
}
.memo-python-rank-label {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-right: 1px solid #777 !important;
    font-size: 15px !important;
    font-weight: 900 !important;
}
.memo-python-rank-horses {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 6px 10px !important;
    flex-wrap: wrap !important;
}

.memo-label-win { color:#bf4b00 !important; background:#fff0df !important; }
.memo-label-place { color:#14721b !important; background:#effce9 !important; }
.memo-label-quinella { color:#0757b8 !important; background:#e8f4ff !important; }
.memo-label-leader { color:#8b6800 !important; background:#fffbea !important; }
.memo-label-tip { color:#6a0dad !important; background:#f8eaff !important; }

.memo-horse-chip {
    display:inline-flex !important;
    width:30px !important;
    height:30px !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:50% !important;
    border:2px solid #222 !important;
    font-size:14px !important;
    font-weight:900 !important;
    line-height:1 !important;
}
.memo-horse-chip.horse-no-1 { background:#fff !important; color:#111 !important; border-color:#111 !important; }
.memo-horse-chip.horse-no-2 { background:#ffd928 !important; color:#0a2d72 !important; border-color:#17428c !important; }
.memo-horse-chip.horse-no-3 { background:#ef3d35 !important; color:#fff !important; border-color:#ef3d35 !important; }
.memo-horse-chip.horse-no-4 { background:#222 !important; color:#fff !important; border-color:#222 !important; }
.memo-horse-chip.horse-no-5 { background:#008cd6 !important; color:#fff !important; border-color:#006aa7 !important; }
.memo-horse-chip.horse-no-6 { background:#36a852 !important; color:#fff !important; border-color:#27833d !important; }
.memo-horse-chip.horse-no-7 { background:#795548 !important; color:#fff !important; border-color:#5d4037 !important; }
.memo-horse-chip.horse-no-8 { background:#f48fb1 !important; color:#fff !important; border-color:#1976d2 !important; }
.memo-horse-chip.horse-no-9 { background:#9c27b0 !important; color:#fff !important; border-color:#7b1fa2 !important; }
.memo-horse-chip.horse-no-10 { background:#00a9e8 !important; color:#fff !important; border-color:#0086bc !important; }
.memo-horse-chip.horse-no-11 { background:#fff !important; color:#00a9e8 !important; border-color:#00a9e8 !important; }
.memo-horse-chip.horse-no-12 { background:#8bc34a !important; color:#fff !important; border-color:#689f38 !important; }
.memo-horse-chip.horse-no-13 { background:#ff9800 !important; color:#fff !important; border-color:#ef6c00 !important; }
.memo-horse-chip.horse-no-14 { background:#9e9e9e !important; color:#fff !important; border-color:#616161 !important; }

.memo-python-note {
    display:flex !important;
    flex-direction:column !important;
}
.memo-python-note textarea {
    flex:1 !important;
    width:100% !important;
    min-height:230px !important;
    resize:vertical !important;
    border:0 !important;
    outline:none !important;
    padding:8px !important;
    font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif !important;
    font-size:14px !important;
}

@media (max-width: 900px) {
    .memo-python-main {
        grid-template-columns:1fr !important;
    }
}


/* ============================================================
   최근10회전적 순위별 ROW 색상 - 기존 Python 화면과 동일한 계열
   ============================================================ */
.detail-history-table tbody tr.recent10-rank-1 > td {
    background: #ffe4e4 !important;   /* 1위: 연한 빨강 */
}

.detail-history-table tbody tr.recent10-rank-2 > td {
    background: #e6f0ff !important;   /* 2위: 연한 파랑 */
}

.detail-history-table tbody tr.recent10-rank-3 > td {
    background: #eeeeee !important;   /* 3위: 연한 회색 */
}

/* 마우스를 올려도 순위색 유지 */
.detail-history-table tbody tr.recent10-rank-1:hover > td {
    background: #ffd9d9 !important;
}

.detail-history-table tbody tr.recent10-rank-2:hover > td {
    background: #dbe9ff !important;
}

.detail-history-table tbody tr.recent10-rank-3:hover > td {
    background: #e5e5e5 !important;
}


/* ============================================================
   대시보드 추천/결과마번 - Python과 동일한 3라인 표시
   ============================================================ */
.dashboard-summary-row {
    display: none !important;
}

.dashboard-summary-python {
    width: 100%;
    margin-bottom: 8px;
    border: 1px solid #cbd5e1;
    background: #fff;
}

.dashboard-summary-line {
    display: grid;
    grid-template-columns: minmax(330px, 42%) minmax(0, 1fr);
    min-height: 45px;
    border-bottom: 1px solid #cbd5e1;
}

.dashboard-summary-line:last-child {
    border-bottom: 0;
}

.dashboard-summary-label {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    color: #0b2f7a;
    font-size: 14px !important;
    font-weight: 900;
    white-space: nowrap;
    background: #f8fbff;
}

.dashboard-summary-horses {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 6px 14px;
    border-left: 1px solid #cbd5e1;
    flex-wrap: wrap;
}

.dashboard-summary-horses .horse-chip {
    margin-right: 0;
}

@media (max-width: 760px) {
    .dashboard-summary-line {
        grid-template-columns: 1fr;
    }

    .dashboard-summary-label {
        justify-content: flex-start;
        border-bottom: 1px solid #e0e6ef;
    }

    .dashboard-summary-horses {
        border-left: 0;
    }
}


/* 2026-08-10 웹 MDI / 공통 상단 메뉴 */
.main-link {
    color: #fff;
    text-decoration: none;
    padding: 8px 13px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 5px;
    font-weight: 700;
    background: rgba(255,255,255,.08);
}
.main-link:hover, .main-link.active { background: rgba(255,255,255,.18); }
.menu-breadcrumb {
    color: #173b82;
    font-weight: 800;
    padding: 0 10px;
    border-left: 1px solid #c9d4e7;
}
.result-screen-nav {
    margin: 0 0 10px 0;
}
/* MDI iframe 안에서는 자식화면의 공통 헤더/메뉴복귀줄을 숨김 */
.mdi-frame .app-header,
.mdi-frame .selected-screen-nav { display: none !important; }
.mdi-frame .main-wrap,
.mdi-frame .result-main { margin-top: 0 !important; padding-top: 10px !important; }

/* ============================================================
   2026-08-10 대시보드 3라인/1~16번 정렬 보정
   - 추천/결과 3라인의 마번 시작선과 1~16번 마번 시작선을 동일 위치로 정렬
   - 1~16번 번호칸 우측 경계선을 왼쪽으로 이동
   ============================================================ */
.dashboard-summary-line {
    grid-template-columns: 56% minmax(0, 1fr) !important;
}

.dashboard-item {
    grid-template-columns: 48px calc(56% - 48px) minmax(0, 1fr) !important;
}

.dashboard-no {
    padding-left: 4px !important;
    padding-right: 4px !important;
}

.dashboard-horses {
    border-left: 1px solid #cbd5e1 !important;
    padding-left: 14px !important;
}

@media (max-width: 760px) {
    .dashboard-summary-line {
        grid-template-columns: 1fr !important;
    }

    .dashboard-item {
        grid-template-columns: 42px minmax(0, 1fr) !important;
    }

    .dashboard-horses {
        grid-column: 2;
        border-left: 0 !important;
        border-top: 1px solid #e0e6ef;
    }
}
