.rus-page { --rus-green: #06964a; --rus-blue: #0379f6; --rus-ink: #173044; max-width: 1800px; margin: 0 auto; color: var(--rus-ink); }
.rus-page [hidden] { display: none !important; }
.rus-page .card { border: 1px solid #e2e2e2; border-radius: 9px; box-shadow: 0 2px 8px #17304405; }
.rus-page .btn { padding: .42rem .75rem; min-height: 32px; font-size: .78rem; border-radius: 6px; }
.rus-page .btn-primary { background: var(--rus-green); border-color: var(--rus-green); color: white; }
.rus-page .btn-primary:hover { background: #05793c; }
.rus-page .btn-secondary { background: #fff; color: #111; border: 1px solid #d4d4d4; }
.rus-page .btn-secondary:hover { background: #f4f4f4; }
.rus-upload { padding: .6rem .8rem;  }
.rus-upload-controls { display: flex; align-items: center; gap: .8rem; }
.rus-upload label { display: grid; gap: .15rem; flex-shrink: 0; font-size: .82rem; }
.rus-upload label strong { color: #08713c; }
.rus-upload label span { color: #62756d; font-size: .7rem; }
.rus-upload input[type=file] { flex: 1; min-width: 0; padding: 0; border: 0; background: transparent; font-size: .75rem; color: #526779; }
.rus-upload input::file-selector-button { border: 1px solid #d4d4d4; border-radius: 5px; padding: .42rem .65rem; background: #fff; color: #111; cursor: pointer; margin-right: .65rem; font: inherit; }
.rus-upload-meta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .3rem 1rem; margin-top: .55rem; padding-top: .45rem; border-top: 1px solid #eee; color: #596e7e; font-size: .7rem; font-variant-numeric: tabular-nums; }
.rus-source-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.rus-upload-age { color: #08713c; }
.rus-page [data-rus-status] { margin: .5rem .15rem; font-size: .74rem; color: #08713c; overflow-wrap: anywhere; }
.rus-page [data-rus-status]:empty { display: none; }
.rus-filters { display: flex; gap: .6rem; flex-wrap: wrap; padding: .55rem .75rem; align-items: end; margin-top: .6rem; }
.rus-filters > label, .rus-filter-field { display: grid; gap: .2rem; font-size: .7rem; font-weight: 600; flex: 1; min-width: 140px; }
.rus-filters > label:first-child { flex: 2; min-width: 220px; }
.rus-filters input, .rus-filters select { padding: .35rem .5rem; height: 32px; width: 100%; border: 1px solid #d4d4d4; border-radius: 5px; background: white; color: var(--rus-ink); font: inherit; font-size: .75rem; }
.rus-filter-field { min-width: 155px; }
.rus-multiselect { position: relative; min-width: 0; font-size: .75rem; }
.rus-multiselect > summary { display: flex; align-items: center; justify-content: space-between; gap: .5rem; height: 32px; padding: .35rem .5rem; border: 1px solid #d4d4d4; border-radius: 5px; background: #fff; cursor: pointer; font-weight: 400; list-style: none; }
.rus-multiselect > summary::-webkit-details-marker { display: none; }
.rus-multiselect > summary::after { content: '▾'; flex-shrink: 0; }
.rus-multiselect[open] > summary::after { content: '▴'; }
.rus-multiselect > summary span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rus-multiselect.has-selection > summary { border-color: var(--rus-green); background: #f2faf5; }
.rus-multiselect-panel { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; width: max(100%, 275px); max-width: calc(100vw - 32px); padding: .6rem; border: 1px solid #d4d4d4; border-radius: 7px; background: #fff; box-shadow: 0 8px 24px #17304426; }
.rus-multiselect.align-right .rus-multiselect-panel { left: auto; right: 0; }
.rus-options { max-height: min(260px, 40dvh); overflow: auto; overscroll-behavior: contain; }
.rus-options .rus-option { display: flex; align-items: center; gap: .5rem; padding: .4rem .3rem; border-radius: 4px; cursor: pointer; font-weight: 400; overflow-wrap: anywhere; }
.rus-options .rus-option:hover { background: #f2f6f4; }
.rus-options input[type=checkbox] { width: 16px; height: 16px; margin: 0; flex-shrink: 0; accent-color: var(--rus-green); }
.rus-options-empty { margin: .5rem .2rem; font-weight: 400; color: #627381; }
.rus-page.is-graphic-view .rus-filters { align-items: start; }
.rus-page.is-graphic-view .rus-filters > .btn { margin-top: 16px; }
.rus-page.is-graphic-view .rus-multiselect-panel { position: static; width: 100%; max-width: none; margin-top: 4px; box-shadow: none; }
.rus-list-heading, .rus-pagination { display: flex; align-items: center; justify-content: space-between; gap: .75rem; font-size: .72rem; }
.rus-list-heading { margin: .4rem .15rem; color: #627381; }
.rus-list-heading p { margin: 0; }
.rus-list-heading [data-rus-count] { color: #08713c; font-weight: 700; }
.rus-table-scroll { overflow-x: auto; padding: 0; }
.rus-table { border-collapse: collapse; width: 100%; font-size: .75rem; text-align: left; line-height: 1.35; }
.rus-table th { background: #f3f4f4; color: #333; font-size: .69rem; font-weight: 700; padding: .45rem .6rem; white-space: nowrap; border-bottom: 1px solid #ddd; text-align: left; }
.rus-table td { padding: .34rem .6rem; border-bottom: 1px solid #eee; vertical-align: middle; max-width: 260px; overflow-wrap: anywhere; }
.rus-table tbody > tr:nth-child(even) { background: #fafafa; }
.rus-day-row { cursor: pointer; }
.rus-table tbody > .rus-day-row:hover, .rus-table tbody > .rus-day-row:focus-visible { background: #f0f0f0; }
.rus-day-row:hover td:first-child, .rus-day-row:focus-visible td:first-child { box-shadow: inset 2px 0 #444; }
.rus-nowrap { white-space: nowrap; font-variant-numeric: tabular-nums; }
.rus-code { font-weight: 750; color: #111; white-space: nowrap; }
.rus-deleted { display: inline-block; color: #9c392d; background: #fff1ec; border-radius: 3px; font-size: .62rem; padding: .08rem .3rem; margin-left: .4rem; white-space: nowrap; }
.rus-pagination { justify-content: flex-end; padding: .6rem 0; }
.rus-modal { position: fixed; inset: 0; margin: auto; width: min(1500px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; border: 1px solid #ddd; border-radius: 12px; background: white; color: var(--rus-ink); box-shadow: 0 24px 90px #102b3f55; overflow: hidden; }
.rus-modal[open] { display: flex; flex-direction: column; }
.rus-modal::backdrop { background: #132f486b; backdrop-filter: blur(3px); }
.rus-modal-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.2rem; background: #fafafa; border-bottom: 1px solid #e4e4e4; flex-shrink: 0; }
.rus-modal-eyebrow { display: block; color: #08713c; font-size: .65rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.rus-modal-heading h2 { margin: .15rem 0 0; font-size: 1.2rem; color: #111; }
.rus-modal-heading button { flex-shrink: 0; }
.rus-modal-heading button span { font-size: 1.1rem; margin-left: .3rem; }
.rus-modal-content { padding: .8rem 1.2rem; min-height: 100px; overflow: auto; overscroll-behavior: contain; }
.rus-preview { min-width: 0; background: white; }
.rus-preview-heading { margin-bottom: .7rem; }
.rus-preview-heading p { font-size: .78rem; margin: 0; color: #425d6c; }
.rus-preview-heading strong { color: #08713c; }
.rus-reference { color: #7a8993; }
.rus-warning { background: #fff7e2; color: #76541c; padding: .5rem .7rem; border-radius: 5px; font-size: .8rem; }
.rus-observations { white-space: pre-wrap; margin: .7rem 0; line-height: 1.5; font-size: .8rem; }
.rus-preview details { border-top: 1px solid #e2e9ee; padding: .65rem 0; font-size: .8rem; }
.rus-preview summary { cursor: pointer; font-weight: 600; color: #111; }
.rus-operation-scroll { overflow-x: auto; margin-top: .6rem; }
.rus-operations td { max-width: 420px; }
.rus-operations small { display: block; color: #657888; }
.rus-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .7rem 1.2rem; margin: .8rem 0; }
.rus-facts div { min-width: 0; }
.rus-facts dt { font-size: .7rem; color: #657888; margin-bottom: .15rem; }
.rus-facts dd { margin: 0; font-size: .78rem; color: #222; white-space: pre-wrap; overflow-wrap: anywhere; }
.rus-operation-details { min-width: 185px; }
.rus-preview .rus-operation-details { border-top: 0; padding: .25rem 0; }
.rus-operation-details .rus-facts { grid-template-columns: 1fr; }
.rus-source pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 250px; overflow-y: auto; background: #f5f8fa; padding: .75rem; font-size: .7rem; }
.rus-page :is(button, input, select, summary, tr):focus-visible { outline: 2px solid #333; outline-offset: 2px; }
.rus-day-row:focus-visible { outline-offset: -2px !important; }
@media (max-width: 700px) {
    .rus-upload-controls { flex-wrap: wrap; gap: .5rem; }
    .rus-upload label { flex: 1; }
    .rus-upload input[type=file] { order: 3; flex-basis: 100%; }
    .rus-filters > label, .rus-filters > label:first-child, .rus-filter-field { min-width: 120px; }
    .rus-multiselect-panel { width: 100%; max-width: none; position: static; margin-top: 4px; box-shadow: none; }
    .rus-list-heading { flex-wrap: wrap; gap: .2rem; }
    .rus-pagination { justify-content: space-between; }
    .rus-modal { width: calc(100vw - 12px); max-height: calc(100dvh - 16px); border-radius: 8px; }
    .rus-modal-heading, .rus-modal-content { padding: .7rem; }
    .rus-modal-heading h2 { font-size: 1rem; }
}

.rus-page a { color: #111; }
.rus-modal-actions { display: flex; align-items: center; gap: .5rem; }
.rus-modal-actions { flex-wrap: wrap; justify-content: flex-end; }
.rus-import-form { padding: .7rem 1.2rem; border-bottom: 1px solid #e4e4e4; background: #fafafa; flex-shrink: 0; }
.rus-import-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.rus-import-form legend { font-weight: 650; font-size: .8rem; margin-bottom: .55rem; }
.rus-import-options { display: flex; align-items: center; gap: .6rem 1.2rem; flex-wrap: wrap; }
.rus-import-options label { display: flex; align-items: center; gap: .4rem; font-size: .8rem; cursor: pointer; }
.rus-import-options input { accent-color: #06964a; }
.rus-import-status { padding: .6rem 1.2rem; margin: 0; background: #f3f6f4; font-size: .78rem; flex-shrink: 0; }
.rus-import-status.is-error { background: #fff3ef; color: #8c2f20; }
.rus-import-status a { margin-left: .6rem; text-decoration: underline; }
.rus-export-status { margin: 0; padding: .6rem 1.2rem; color: #333; background: #f5f5f5; font-size: .78rem; flex-shrink: 0; }
.rus-export-status.is-error { background: #fff3ef; color: #8c2f20; }
@media (max-width: 550px) { .rus-modal-heading { flex-wrap: wrap; } .rus-modal-actions { margin-left: auto; } }
