:root{
  --portal-sidebar:286px;
  --portal-bg:#f6f5f7;
  --portal-surface:#ffffff;
  --portal-soft:#f4eef4;
  --portal-primary:#6f496f;
  --portal-primary-2:#8d668e;
  --portal-ink:#241d25;
  --portal-muted:#7d7380;
  --portal-line:#ece5ec;
  --portal-success:#2f8f65;
  --portal-warning:#b9782b;
  --portal-danger:#b44b68;
  --portal-shadow:0 18px 55px rgba(52,35,55,.08);
}
body.portal-v2-auth{background:var(--portal-bg)}
.portal-v2-app{min-height:100vh;display:grid;grid-template-columns:var(--portal-sidebar) minmax(0,1fr);direction:rtl}
.portal-v2-sidebar{position:sticky;top:0;height:100vh;padding:22px 18px;background:linear-gradient(180deg,#302536 0%,#433148 58%,#503953 100%);color:#fff;display:flex;flex-direction:column;gap:18px;overflow-y:auto;z-index:1035}
.portal-v2-brand{display:flex;align-items:center;gap:12px;color:#fff;padding:4px 8px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.portal-v2-brand:hover{color:#fff}.portal-v2-brand .client-logo{background:#fff;color:var(--portal-primary);box-shadow:none}
.portal-v2-brand-copy{display:grid;line-height:1.35}.portal-v2-brand-copy strong{font-size:.95rem}.portal-v2-brand-copy small{font-size:.7rem;color:rgba(255,255,255,.62);margin-top:3px}
.portal-v2-identity{padding:15px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);border-radius:19px;display:flex;align-items:center;gap:11px}
.portal-v2-avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(145deg,#f4d7df,#d9c0dd);color:#513a55;font-weight:900;font-size:1rem}
.portal-v2-identity-copy{display:grid;min-width:0}.portal-v2-identity-copy strong{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-v2-identity-copy small{font-size:.68rem;color:rgba(255,255,255,.6);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portal-v2-nav{display:grid;gap:5px}.portal-v2-nav-label{font-size:.64rem;color:rgba(255,255,255,.45);padding:12px 12px 4px;letter-spacing:.02em}.portal-v2-nav a,.portal-v2-nav button{width:100%;display:flex;align-items:center;gap:11px;border:0;border-radius:14px;padding:11px 12px;background:transparent;color:rgba(255,255,255,.78);font-size:.78rem;font-weight:700;text-align:right;transition:.18s ease}.portal-v2-nav a:hover,.portal-v2-nav button:hover,.portal-v2-nav a.is-active{background:rgba(255,255,255,.11);color:#fff}.portal-v2-nav .nav-icon{width:29px;height:29px;border-radius:9px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-size:.85rem;flex:0 0 auto}.portal-v2-nav a.is-active .nav-icon{background:#fff;color:var(--portal-primary)}
.portal-v2-sidebar-footer{margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.portal-v2-sidebar-footer form{margin:0}.portal-v2-sidebar-footer button{cursor:pointer}
.portal-v2-main{min-width:0;display:flex;flex-direction:column}
.portal-v2-topbar{height:76px;position:sticky;top:0;z-index:1025;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--portal-line);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 clamp(18px,3vw,42px)}
.portal-v2-topbar-title{display:grid;gap:2px}.portal-v2-topbar-title strong{font-size:.92rem}.portal-v2-topbar-title small{font-size:.7rem;color:var(--portal-muted)}
.portal-v2-topbar-actions{display:flex;align-items:center;gap:10px}.portal-v2-user-chip{display:flex;align-items:center;gap:9px;padding:7px 10px 7px 13px;border:1px solid var(--portal-line);border-radius:15px;background:#fff;color:var(--portal-ink)}.portal-v2-user-chip .portal-v2-avatar{width:34px;height:34px;border-radius:11px;font-size:.75rem}.portal-v2-user-chip-copy{display:grid;line-height:1.25}.portal-v2-user-chip-copy strong{font-size:.73rem}.portal-v2-user-chip-copy small{font-size:.62rem;color:var(--portal-muted);margin-top:2px}
.portal-v2-mobile-toggle{display:none;width:42px;height:42px;border:1px solid var(--portal-line);border-radius:13px;background:#fff;color:var(--portal-primary);font-size:1.15rem}
.portal-v2-content{width:min(1360px,calc(100% - 48px));margin:30px auto 70px}
.portal-v2-content .client-shell{width:100%;margin:0}
.portal-v2-content .client-footer{padding:28px 0 0}
.portal-v2-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.portal-v2-page-head h1{font-size:clamp(1.55rem,3vw,2.25rem);margin:5px 0 6px;font-weight:900}.portal-v2-page-head p{margin:0;color:var(--portal-muted);font-size:.82rem}.portal-v2-eyebrow{font-size:.68rem;color:var(--portal-primary);font-weight:900}
.portal-v2-hero{position:relative;overflow:hidden;border:1px solid var(--portal-line);border-radius:28px;background:linear-gradient(125deg,#fff 10%,#fff7f9 58%,#eee4f0 100%);box-shadow:var(--portal-shadow);padding:30px;margin-bottom:20px}.portal-v2-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;left:-90px;top:-130px;background:rgba(111,73,111,.08)}.portal-v2-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:22px;align-items:center}.portal-v2-hero h1{font-size:clamp(1.55rem,3vw,2.25rem);font-weight:900;margin:6px 0 8px}.portal-v2-hero p{color:var(--portal-muted);margin:0;max-width:650px;line-height:1.9}.portal-v2-hero-side{display:grid;gap:9px;padding:16px;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(111,73,111,.1)}.portal-v2-hero-side span{font-size:.7rem;color:var(--portal-muted)}.portal-v2-hero-side strong{font-size:.95rem}
.portal-v2-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.portal-v2-kpi{background:#fff;border:1px solid var(--portal-line);border-radius:21px;padding:19px;box-shadow:0 10px 35px rgba(46,31,48,.04);display:grid;gap:9px}.portal-v2-kpi-top{display:flex;align-items:center;justify-content:space-between}.portal-v2-kpi-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--portal-soft);color:var(--portal-primary)}.portal-v2-kpi strong{font-size:1.55rem;font-weight:900}.portal-v2-kpi span{font-size:.7rem;color:var(--portal-muted)}
.portal-v2-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr);gap:18px;align-items:start}.portal-v2-card{background:#fff;border:1px solid var(--portal-line);border-radius:23px;padding:21px;box-shadow:0 12px 40px rgba(49,32,52,.045);margin-bottom:18px}.portal-v2-card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.portal-v2-card-head h2{font-size:1rem;font-weight:900;margin:0}.portal-v2-card-head a{font-size:.7rem;font-weight:800}.portal-v2-card-subtitle{font-size:.7rem;color:var(--portal-muted);margin-top:4px}
.portal-project-list{display:grid;gap:11px}.portal-project-item{border:1px solid var(--portal-line);border-radius:18px;padding:16px;display:grid;gap:12px;color:var(--portal-ink);background:linear-gradient(180deg,#fff,#fdfbfd)}.portal-project-item:hover{color:var(--portal-ink);border-color:#d9c8da;box-shadow:0 10px 28px rgba(63,42,65,.06)}.portal-project-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.portal-project-title{display:grid;gap:4px}.portal-project-title strong{font-size:.84rem}.portal-project-title small{font-size:.65rem;color:var(--portal-muted)}.portal-status{padding:6px 9px;border-radius:999px;background:#f2ecf3;color:var(--portal-primary);font-size:.62rem;font-weight:800;white-space:nowrap}.portal-progress-row{display:flex;align-items:center;gap:11px}.portal-progress-track{height:8px;background:#eee9ef;border-radius:999px;overflow:hidden;flex:1}.portal-progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--portal-primary),#c58aa0)}.portal-progress-value{min-width:38px;font-size:.68rem;font-weight:900;color:var(--portal-primary)}.portal-project-meta{display:flex;flex-wrap:wrap;gap:7px 15px;color:var(--portal-muted);font-size:.66rem}
.portal-v2-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-v2-quick a{border:1px solid var(--portal-line);border-radius:16px;padding:14px;background:#fdfbfd;display:grid;gap:5px;color:var(--portal-ink)}.portal-v2-quick a:hover{border-color:#d9c8da}.portal-v2-quick strong{font-size:.76rem}.portal-v2-quick span{font-size:.63rem;color:var(--portal-muted)}
.portal-empty-v2{padding:30px 18px;text-align:center;border:1px dashed #d9ceda;border-radius:18px;background:#fdfbfd;color:var(--portal-muted);font-size:.76rem}.portal-empty-v2 strong{display:block;color:var(--portal-ink);margin-bottom:5px;font-size:.85rem}
.portal-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-project-card{background:#fff;border:1px solid var(--portal-line);border-radius:22px;padding:20px;display:grid;gap:15px;box-shadow:0 10px 35px rgba(46,31,48,.04)}.portal-project-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.portal-project-card h2{font-size:.95rem;font-weight:900;margin:0 0 5px}.portal-project-card p{font-size:.67rem;color:var(--portal-muted);margin:0}.portal-project-card-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.portal-project-card-actions a{font-size:.7rem;font-weight:900}.portal-project-file-badges{display:flex;gap:6px;flex-wrap:wrap}.portal-mini-badge{padding:5px 8px;border-radius:9px;background:#f4f0f5;color:#67556a;font-size:.6rem}
.portal-detail-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;align-items:start}.portal-detail-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.portal-detail-kpi{padding:15px;border:1px solid var(--portal-line);border-radius:17px;background:#fdfbfd;display:grid;gap:5px}.portal-detail-kpi span{font-size:.62rem;color:var(--portal-muted)}.portal-detail-kpi strong{font-size:.78rem}
.portal-timeline{position:relative;display:grid;gap:0;padding-right:8px}.portal-timeline-item{position:relative;padding:0 30px 22px 0}.portal-timeline-item:before{content:"";position:absolute;right:5px;top:8px;width:10px;height:10px;border-radius:50%;background:var(--portal-primary);box-shadow:0 0 0 5px #f2eaf3}.portal-timeline-item:after{content:"";position:absolute;right:9px;top:21px;bottom:-2px;width:2px;background:#eee6ef}.portal-timeline-item:last-child:after{display:none}.portal-timeline-item strong{display:block;font-size:.76rem}.portal-timeline-item time,.portal-timeline-item p{font-size:.63rem;color:var(--portal-muted);margin:4px 0 0;line-height:1.7}
.portal-file-list{display:grid;gap:8px}.portal-file-row{padding:12px 13px;border:1px solid var(--portal-line);border-radius:14px;background:#fdfbfd;display:flex;justify-content:space-between;gap:12px}.portal-file-row strong{font-size:.7rem;word-break:break-word}.portal-file-row small{font-size:.6rem;color:var(--portal-muted);white-space:nowrap}
.portal-v2-auth-footer{display:flex;justify-content:space-between;gap:18px;padding:8px 2px;color:var(--portal-muted);font-size:.64rem}
@media(max-width:1180px){.portal-v2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-v2-grid,.portal-detail-layout{grid-template-columns:1fr}}
@media(max-width:991.98px){.portal-v2-app{display:block}.portal-v2-sidebar{display:none}.portal-v2-mobile-toggle{display:grid;place-items:center}.portal-v2-content{width:min(100% - 28px,1360px);margin-top:22px}.portal-v2-user-chip-copy{display:none}.portal-v2-topbar{height:68px;padding:0 15px}.portal-v2-offcanvas{background:linear-gradient(180deg,#302536,#503953);color:#fff}.portal-v2-offcanvas .btn-close{filter:invert(1)}.portal-v2-offcanvas .portal-v2-nav{margin-top:12px}}
@media(max-width:700px){.portal-v2-kpis,.portal-project-grid,.portal-detail-kpis{grid-template-columns:1fr}.portal-v2-hero-grid{grid-template-columns:1fr}.portal-v2-page-head{align-items:flex-start;flex-direction:column}.portal-v2-quick{grid-template-columns:1fr}.portal-v2-hero{padding:22px}.portal-v2-card{padding:16px}.portal-v2-content{width:min(100% - 18px,1360px)}.portal-v2-topbar-title small{display:none}.portal-v2-auth-footer{flex-direction:column}.portal-project-top{flex-direction:column}}
