.company-portfolio-page { min-height:calc(100vh - 82px); padding:34px clamp(24px,3vw,48px) 72px; background:#fff; }
.portfolio-catalog { width:100%; margin-top:30px; border:1px solid var(--cab-line-strong); border-radius:12px; background:#fff; }
.portfolio-catalog > header { display:flex; min-height:92px; padding:20px 28px; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--cab-line); }
.portfolio-catalog h2 { margin:0; color:var(--cab-ink); font-size:27px; }
.portfolio-catalog header p { margin:6px 0 0; color:var(--cab-muted); font-size:15px; }
.portfolio-catalog .cab-primary-action { min-height:48px; margin:0; border:0; cursor:pointer; }
.portfolio-help { padding:14px 28px; border-bottom:1px solid var(--cab-line); background:var(--cab-surface); }
.portfolio-help p { margin:0; color:var(--cab-copy); font-size:15px; }
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:28px; gap:20px; }
.portfolio-card { position:relative; overflow:hidden; border:1px solid var(--cab-line); border-radius:10px; background:#fff; }
.portfolio-card.is-dragging { border-color:var(--cab-brand); opacity:.56; }
.portfolio-card.is-drag-over { border-color:var(--cab-brand); background:var(--cab-soft-red); }
.portfolio-card figure { aspect-ratio:4/3; margin:0; overflow:hidden; border-bottom:1px solid var(--cab-line); background:var(--cab-surface-strong); }
.portfolio-card img { width:100%; height:100%; object-fit:cover; }
.portfolio-card-body { display:grid; min-height:112px; padding:18px; align-content:space-between; gap:16px; }
.portfolio-card h3 { margin:0; color:var(--cab-ink); font-size:18px; line-height:1.3; }
.portfolio-actions { display:flex; align-items:center; gap:7px; }
.portfolio-icon { display:inline-flex; width:38px; height:38px; padding:0; align-items:center; justify-content:center; border:1px solid var(--cab-line); border-radius:8px; background:#fff; color:var(--cab-copy); cursor:pointer; }
.portfolio-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.portfolio-icon:hover { border-color:var(--cab-line-strong); background:var(--cab-surface-strong); color:var(--cab-ink); }
.portfolio-icon.is-danger:hover { border-color:var(--cab-danger); color:var(--cab-danger); }
.portfolio-icon:disabled { color:var(--cab-disabled); opacity:.55; cursor:not-allowed; }
.portfolio-icon:focus-visible,.portfolio-dialog button:focus-visible,.portfolio-dialog input:focus,.portfolio-delete-dialog button:focus-visible { outline:2px solid var(--cab-brand); outline-offset:2px; }
.portfolio-empty { padding:56px 28px; text-align:center; }
.portfolio-empty h3 { margin:0; color:var(--cab-ink); font-size:25px; }
.portfolio-empty p { margin:12px 0 24px; color:var(--cab-copy); font-size:16px; }
.portfolio-status { min-height:22px; margin:0; padding:0 28px 18px; color:var(--cab-success); font-size:15px; font-weight:650; }
/* Модальные окна – стили в cabinet-modals.css */

.company-portfolio-page .company-completion { max-width:none; }
@media (max-width:1180px) { .company-portfolio-page { padding:26px 24px 54px; } .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .portfolio-catalog > header { padding:20px; align-items:stretch; flex-direction:column; } .portfolio-catalog > header .cab-primary-action { width:100%; } .portfolio-help { padding:14px 20px; } .portfolio-grid { grid-template-columns:1fr; padding:20px; } }
