@import '../../../../styles/design-tokens'; // Постоянная боковая панель (всегда открыта). Раскладку колонок задаёт корень; // здесь — только внутреннее оформление панели. .panel { display: flex; flex-direction: column; height: 100%; background: $white; border: 1px solid $gray-200; border-radius: $r-lg; box-shadow: $sh-1; overflow: hidden; } .header { display: flex; align-items: center; justify-content: space-between; gap: $sp-2; padding: $sp-4 $sp-5; border-bottom: 1px solid $gray-200; } .collapseToggle { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; padding: 0; border: 1px solid $gray-300; border-radius: $r-sm; background: $white; color: $navy-700; cursor: pointer; transition: .16s; &:hover { border-color: $gold-400; color: $gold-600; } } .panelCollapsed { align-items: center; padding: $sp-3 0; } .title { font-family: $font-serif; font-size: 18px; color: $navy-900; } .searchWrap { padding: $sp-3 $sp-5 0; } .search { width: 100%; padding: 8px 12px; border: 1px solid $gray-300; border-radius: $r-sm; background: $white; font-family: $font-sans; font-size: $fs-sm; color: $gray-900; transition: .18s; @include input-focus-gold; &::placeholder { color: $gray-400; } } .body { flex: 1; overflow-y: auto; padding: $sp-5; font-size: $fs-sm; } .empty, .error { color: $gray-500; } .error { color: $red-500; } .section + .section { margin-top: $sp-6; padding-top: $sp-6; border-top: 1px solid $gray-200; } .sectionTitle { font-family: $font-sans; font-size: $fs-caption; font-weight: 600; color: $gray-500; text-transform: uppercase; letter-spacing: .04em; margin-bottom: $sp-4; } .pager { display: flex; align-items: center; gap: 4px; margin-top: $sp-3; flex-wrap: wrap; } .pagerBtn { min-width: 24px; height: 24px; padding: 0 6px; border: 1px solid $gray-200; border-radius: $r-sm; background: $white; color: $gray-700; font-family: $font-sans; font-size: $fs-caption; cursor: pointer; transition: .16s; &:hover:not(:disabled) { border-color: $gold-400; color: $gold-600; } &:disabled { opacity: .4; cursor: default; } } .pagerBtnActive { background: $navy-800; border-color: $navy-800; color: $white; &:hover { border-color: $navy-800 !important; color: $white !important; } } .pagerEllipsis { color: $gray-400; font-size: $fs-caption; padding: 0 2px; } .list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: $sp-2; } .item { display: flex; align-items: center; justify-content: space-between; gap: $sp-2; padding: $sp-2 $sp-3; border: 1px solid $gray-200; border-radius: $r-sm; background: $gray-50; text-decoration: none; transition: .16s; &:hover { border-color: $gold-400; background: $gold-50; } } .itemMain { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow: hidden; } .itemType { color: $gold-600; font-size: $fs-caption; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; } .itemTitle { color: $gray-900; font-size: $fs-sm; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .itemAuthor { color: $gray-500; font-size: $fs-caption; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .itemDate { color: $gray-400; font-size: $fs-caption; } .status { flex-shrink: 0; padding: 2px 8px; border-radius: $r-full; font-size: $fs-caption; font-weight: 500; white-space: nowrap; } .statusDraft { background: $gray-100; color: $gray-700; } .statusOnApproval { background: $gold-100; color: $gold-600; } .statusApproved { background: $green-50; color: $green-600; } .statusRejected { background: $red-50; color: $red-500; } .statusReturned { background: $blue-50; color: $blue-600; } .statusDefault { background: $gray-100; color: $gray-500; }