.partner-portal-page,
.partner-admin-page { margin: 0; background: #e9eae7; color: var(--partners-ink); font-family: var(--font); }
.portal-shell,
.admin-shell { min-height: calc(100vh - 136px); width: min(1320px, calc(100vw - 48px)); margin: 0 auto; padding: 70px 0 100px; }
.portal-login { width: min(520px, 100%); margin: 7vh auto; padding: 36px; border: 1px solid var(--partners-line); background: #fff; }
.portal-login > p { color: var(--partners-blue); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.portal-login h1 { margin-top: 16px; font-size: clamp(38px, 5vw, 58px); line-height: .98; letter-spacing: -.055em; }
.portal-login form { display: grid; gap: 18px; margin-top: 34px; }
.portal-login button { width: 100%; margin-top: 0; }
.portal-login > small { display: block; margin-top: 20px; color: #737879; line-height: 1.5; }
.portal-dashboard-head { display: flex; justify-content: space-between; align-items: end; gap: 30px; padding-bottom: 30px; border-bottom: 1px solid var(--partners-line); }
.portal-dashboard-head p { color: var(--partners-blue); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.portal-dashboard-head h1 { margin-top: 10px; font-size: clamp(44px, 6vw, 76px); line-height: .95; letter-spacing: -.06em; }
.portal-dashboard-head span { display: block; margin-top: 12px; color: #646a6b; }
.portal-dashboard-head > button { min-height: 40px; padding: 0 15px; border: 1px solid var(--partners-line); background: transparent; cursor: pointer; }
.portal-terms { display: grid; grid-template-columns: 1fr .75fr auto; align-items: center; gap: 30px; margin-top: 30px; padding: 28px; border: 1px solid #d3af52; background: #fff8e8; }
.portal-terms p { color: #97701a; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.portal-terms h2 { margin-top: 5px; font-size: 26px; letter-spacing: -.035em; }
.portal-terms span { display: block; margin-top: 8px; color: #6b6048; }
.portal-terms label { display: grid; grid-template-columns: 18px 1fr; gap: 9px; font-size: 13px; line-height: 1.4; }
.portal-terms label span { margin: 0; }
.portal-terms button { margin: 0; }
.portal-terms .portal-message { grid-column: 1 / -1; }
.portal-metrics { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 32px; border: 1px solid var(--partners-line); background: #fff; }
.portal-metrics article { min-height: 130px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; border-right: 1px solid var(--partners-line); }
.portal-metrics article:last-child { border-right: 0; }
.portal-metrics span { color: #727778; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.portal-metrics strong { font-size: 27px; letter-spacing: -.04em; }
.portal-register,
.portal-table-section,
.admin-panel { margin-top: 38px; padding: 34px; border: 1px solid var(--partners-line); background: #fff; }
.portal-register > header,
.portal-table-section > header,
.admin-panel > header { display: grid; grid-template-columns: .3fr 1fr 1fr; align-items: end; gap: 30px; margin-bottom: 32px; }
.portal-register > header p,
.portal-table-section > header p,
.admin-panel > header p { color: var(--partners-blue); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.portal-register > header h2,
.portal-table-section > header h2,
.admin-panel > header h2 { font-size: 34px; letter-spacing: -.045em; }
.portal-register > header span { color: #687071; line-height: 1.5; }
.portal-table-wrap { overflow-x: auto; }
.portal-table-wrap table { width: 100%; min-width: 780px; border-collapse: collapse; }
.portal-table-wrap th { padding: 12px 10px; border-bottom: 1px solid #afb4b2; color: #737879; font-size: 10px; text-align: left; text-transform: uppercase; letter-spacing: .08em; }
.portal-table-wrap td { padding: 15px 10px; border-bottom: 1px solid #e0e2df; vertical-align: top; font-size: 13px; }
.portal-table-wrap td strong { display: block; font-size: 14px; }
.portal-table-wrap td small { display: block; margin-top: 4px; color: #7a7f80; }
.portal-badge { display: inline-flex; padding: 5px 8px; border: 1px solid #cfd2d0; background: #f6f7f5; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.portal-badge.won, .portal-badge.paid, .portal-badge.active { border-color: rgba(11,123,85,.3); background: rgba(11,123,85,.09); color: #086143; }
.portal-badge.lost, .portal-badge.suspended, .portal-badge.rejected { border-color: rgba(170,39,39,.3); background: rgba(170,39,39,.08); color: #922828; }
.portal-badge.proposal, .portal-badge.meeting, .portal-badge.pending { border-color: rgba(168,106,0,.28); background: rgba(168,106,0,.08); color: #825300; }
.portal-empty { padding: 30px; border: 1px dashed #cdd0ce; color: #777c7d; text-align: center; }

.admin-metrics { grid-template-columns: repeat(6, 1fr); }
.admin-tabs { display: flex; gap: 0; margin-top: 38px; border-bottom: 1px solid var(--partners-line); }
.admin-tabs button { min-height: 44px; padding: 0 19px; border: 0; border-right: 1px solid var(--partners-line); background: transparent; cursor: pointer; color: #646a6b; font-weight: 700; }
.admin-tabs button.active { background: var(--partners-ink); color: #fff; }
.admin-panel { display: none; margin-top: 0; border-top: 0; }
.admin-panel.active { display: block; }
.admin-card-list { display: grid; gap: 16px; }
.admin-application-card { display: grid; grid-template-columns: 1fr .8fr auto; gap: 28px; padding: 24px; border: 1px solid #d9dcda; }
.admin-application-card h3 { font-size: 24px; letter-spacing: -.035em; }
.admin-application-card .meta { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 10px; color: #6f7576; font-size: 12px; }
.admin-application-card .answers { display: grid; gap: 12px; color: #555b5d; font-size: 13px; line-height: 1.5; }
.admin-application-card .answers strong { display: block; margin-bottom: 3px; color: #111; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.admin-card-actions { display: flex; flex-direction: column; gap: 9px; }
.admin-card-actions button,
.portal-table-wrap td button { min-height: 34px; padding: 0 11px; border: 1px solid #bfc3c1; background: #fff; cursor: pointer; font-size: 11px; font-weight: 700; }
.admin-card-actions .primary { border-color: var(--partners-blue); background: var(--partners-blue); color: #fff; }
.admin-global-message { position: fixed; z-index: 20; right: 24px; bottom: 24px; max-width: 520px; background: #fff !important; box-shadow: 0 16px 45px rgba(0,0,0,.15); }
.admin-dialog { width: min(580px, calc(100vw - 32px)); padding: 0; border: 1px solid #aaa; background: #fff; }
.admin-dialog::backdrop { background: rgba(0,0,0,.6); }
.admin-dialog form { padding: 28px; }
.admin-dialog header { display: grid; grid-template-columns: 1fr auto; align-items: start; padding-bottom: 18px; border-bottom: 1px solid var(--partners-line); }
.admin-dialog header p { color: var(--partners-blue); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.admin-dialog header h2 { margin-top: 6px; font-size: 30px; letter-spacing: -.04em; }
.admin-dialog header button { grid-column: 2; grid-row: 1 / 3; border: 0; background: transparent; cursor: pointer; font-size: 26px; }
#dialogFields { display: grid; gap: 17px; padding: 24px 0; }
#dialogFields label { display: grid; gap: 7px; color: #4f5557; font-size: 12px; font-weight: 700; }
#dialogFields input, #dialogFields select, #dialogFields textarea { width: 100%; min-height: 42px; padding: 10px; border: 1px solid #c9cdcb; font: inherit; }
#dialogFields textarea { min-height: 95px; resize: vertical; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }
.dialog-actions button { min-height: 40px; padding: 0 16px; border: 1px solid #bfc3c1; background: #fff; cursor: pointer; font-weight: 700; }
.dialog-actions #dialogConfirm { border-color: var(--partners-blue); background: var(--partners-blue); color: #fff; }
