/* Кабинет партнёра, страница статуса заказа, общие бейджи статусов */
.cab { max-width: 980px; padding-block: 28px 60px; min-height: 60vh }
.cab h1 { font-size: clamp(24px, 3.2vw, 32px); margin: 0 0 8px }
.cab h2 { font-size: 19px; margin: 0 0 12px }
.cab-head { margin-left: auto; display: flex; align-items: center; gap: 10px }
.cab-head .who { font-size: 14px; color: var(--muted) }
@media (max-width: 640px) { .cab-head .who { display: none } }
.cab-card { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 22px; margin: 0 0 16px }
.cab-card.narrow { max-width: 520px; margin-inline: auto }
.cab-card form { display: grid; gap: 12px; margin-top: 14px }
.cab-card .btn { justify-self: start }
.cab .f { display: grid; gap: 6px; font-size: 14px; font-weight: 500 }
.cab .f input { border: 1.5px solid var(--line); border-radius: 10px; padding: 12px 14px; font-size: 16px; background: #fff; width: 100% }
.cab .f input:focus { border-color: var(--gold); outline: none }
.cab .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px }
@media (max-width: 640px) { .cab .row2 { grid-template-columns: 1fr } }
.row-inn { grid-template-columns: 1fr auto; align-items: end; display: grid; gap: 12px }
.row-invite { grid-template-columns: 1fr 1fr 1fr auto !important; align-items: end }
@media (max-width: 760px) { .row-invite { grid-template-columns: 1fr !important } }
.cab .consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px }
.cab .consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--gold-2) }
.cab .consent a, .cab-alt .link, .cab a:not(.btn) { color: var(--gold-2) }
.cab-alt { margin: 16px 0 0; font-size: 14px; color: var(--muted) }
.cab .err { background: #fdecea; color: var(--err); border-radius: 10px; padding: 10px 14px; font-size: 14px }
.ok-box { background: #e9f5ee; color: var(--ok); border-radius: 10px; padding: 10px 14px; font-size: 14px }
.org-box { margin: 14px 0; padding: 14px 16px; background: var(--gold-soft); border-radius: 12px; display: grid; gap: 4px }
.org-box small { color: var(--muted); font-size: 13px }
.pill { justify-self: start; background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 600 }
.cab-hello { display: flex; gap: 16px; justify-content: space-between; align-items: center; flex-wrap: wrap; margin-bottom: 18px }
.cab-hello .eyebrow { margin: 0 0 4px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-2); font-weight: 600 }
.cab-hello p { margin: 0 }
.bad { color: var(--err) }
.cab-tabs { margin-bottom: 16px }
.empty { text-align: center; padding: 36px 22px }
.small { font-size: 13px }
/* заказы */
.order { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; margin: 0 0 10px; overflow: hidden }
.order-head { all: unset; box-sizing: border-box; cursor: pointer; width: 100%; display: grid; grid-template-columns: 64px 92px 1fr auto auto; gap: 12px; align-items: center; padding: 14px 18px; font-size: 14px }
.order-head:focus-visible { outline: 3px solid #e2b85c; outline-offset: -3px }
.o-num { font-weight: 700 } .o-date { color: var(--muted) } .o-what { overflow: hidden; text-overflow: ellipsis; white-space: nowrap } .o-sum { font-weight: 700 }
@media (max-width: 700px) { .order-head { grid-template-columns: auto 1fr auto; } .o-date, .o-what { display: none } }
.order-body { padding: 0 18px 16px; border-top: 1px solid var(--line) }
.st-lines { margin: 10px 0; padding-left: 18px; font-size: 14px } .st-lines li { margin: 2px 0; list-style: none; margin-left: -18px }
/* статусы */
.st-badge { display: inline-block; border-radius: 999px; padding: 4px 12px; font-size: 12.5px; font-weight: 600; white-space: nowrap; background: #eee; color: #444 }
.s-new { background: #e8f0fe; color: #1a56c4 } .s-layout { background: #fff4d6; color: #8a5a00 } .s-payment { background: #fde9d8; color: #a2470b }
.s-production { background: #efe7fb; color: #5b2fa6 } .s-ready { background: #e2f5e9; color: #1e7a45 } .s-shipped { background: #def4f4; color: #116a6a }
.s-done { background: #ececec; color: #555 } .s-cancelled { background: #fdecea; color: #b3261e }
.st-card { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 20px 22px; margin: 16px 0 }
.st-card .st-badge { font-size: 15px; padding: 6px 14px; margin-bottom: 8px }
.st-flow { list-style: none; padding: 0; margin: 14px 0 4px; display: flex; flex-wrap: wrap; gap: 6px; counter-reset: s }
.st-flow li { counter-increment: s; font-size: 12.5px; padding: 6px 10px; border-radius: 8px; background: var(--bg); color: var(--muted) }
.st-flow li::before { content: counter(s) ". " }
.st-flow li.done { background: var(--gold-soft); color: var(--gold-2) }
.st-flow li.on { background: var(--grad); color: #fff; font-weight: 600 }
/* реквизиты и команда */
.rekv { display: grid; grid-template-columns: 110px 1fr; gap: 6px 14px; font-size: 14px; margin: 0 0 8px } .rekv dt { color: var(--muted) } .rekv dd { margin: 0 }
.team { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 14px; display: block; overflow-x: auto }
.team th, .team td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top }
.team small { display: block; color: var(--muted) }
/* баннер партнёра на главной */
.partner-bar { background: var(--dark); color: #f3ead9; font-size: 14px }
.partner-bar .wrap { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding-block: 8px; flex-wrap: wrap }
.partner-bar a { color: #e8cf9b }
/* карточка заказа клиента (orderview.js) */
.ov { display: grid; gap: 14px }
.ov-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start }
.ov-head h2 { margin: 0 }
.ov-chips { display: flex; gap: 6px; flex-wrap: wrap }
.chip-st { font-size: 13px; background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 5px 11px }
.ov-main { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 14px 18px; font-size: 16px }
.ov-main.need { border-color: var(--gold); background: var(--gold-soft) }
.ov-block { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px }
.ov-block h3 { margin: 0 0 10px; font-size: 16px }
.ov-block summary { cursor: pointer; font-weight: 600; min-height: 32px }
.ov-layout { display: block; max-width: 100%; max-height: 520px; border-radius: 10px; border: 1px solid var(--line); background: #fff; margin-bottom: 10px }
.ov-actions { margin: 12px 0 }
.ov-rev { display: grid; gap: 10px; margin-top: 8px }
.ov-rev textarea, .cab textarea { border: 1.5px solid var(--line); border-radius: 10px; padding: 10px 12px; font: inherit; min-height: 80px; width: 100%; background: #fff }
.ov-confirm { background: #fff4d6; border-radius: 10px; padding: 10px 14px }
.ov-hist { padding-left: 18px; margin: 8px 0 0 }
.ov input[type=file] { font-size: 15px; max-width: 100% }
.ov .btn { min-height: 44px }
.cab-sub { font-size: 16px; margin: 18px 0 10px; color: var(--muted) }
.o-what small { display: block; font-size: 12.5px; white-space: normal }
.need-txt { color: var(--gold-2); font-weight: 600 }
.s-prep { background: #fff4d6; color: #8a5a00 } .s-ready_to_produce { background: #fde9d8; color: #a2470b } .s-issued { background: #def4f4; color: #116a6a }
.s-completed { background: #ececec; color: #555 } .s-paused { background: #fdecea; color: #8a2a1e }
.ov-rev .btn, .ov form .btn { justify-self: start }
