.portal-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100dvh}.portal-sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:24px 16px 20px;border-right:1px solid var(--line);background:var(--surface);overflow-y:auto;z-index:10}.portal-sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px 20px}.portal-sidebar-brand .brand-product-name{font:700 17px Manrope Variable,sans-serif;color:var(--ink);letter-spacing:-.4px}.portal-sidebar-brand .brand-product-name>span{color:var(--electric)}.portal-workspace{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:8px;border-radius:10px;background:var(--surface-raised)}.portal-workspace-avatar{width:34px;height:34px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center;font:650 11px Manrope Variable,sans-serif;text-transform:uppercase;flex-shrink:0}.portal-workspace strong{font-size:13px;display:block;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-workspace small{font-size:11px;color:var(--muted)}.portal-nav{display:flex;flex-direction:column;gap:2px;padding:8px 0;flex:1}.portal-nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;transition:all .12s ease}.portal-nav-link:hover{background:var(--surface-raised);color:var(--ink)}.portal-nav-link.is-active{background:var(--surface-raised);color:var(--blue);font-weight:600}.portal-nav-link svg{flex-shrink:0}.portal-nav-badge{margin-left:auto;background:var(--blue);color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:99px;line-height:1.6}.portal-sidebar-bottom{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:4px}.portal-sidebar-bottom>.btn{justify-content:flex-start}.portal-contact-btn,.portal-sidebar-bottom>.btn{width:100%;font-size:13px;font-weight:500;padding:9px 12px;border-radius:8px;gap:10px}.portal-contact-btn{display:flex;align-items:center;color:var(--muted);text-decoration:none;background:none;border:none;text-align:left;transition:all .12s ease}.portal-contact-btn:hover{background:var(--surface-raised);color:var(--ink)}.portal-contact-btn .portal-nav-arrow{margin-left:auto;opacity:.4}.portal-user{display:flex;align-items:center;gap:10px;padding:10px 12px}.portal-user-avatar{width:30px;height:30px;border-radius:50%;background:var(--surface-raised);color:var(--blue);display:grid;place-items:center;font:650 11px Manrope Variable,sans-serif;flex-shrink:0}.portal-user strong{font-size:12px;display:block}.portal-user small{font-size:11px;color:var(--muted)}.portal-main-area{display:flex;flex-direction:column;min-height:100dvh;min-width:0;width:100%}.portal-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:9}.portal-breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);min-width:0}.portal-breadcrumb strong{color:var(--ink);font-weight:600}.portal-topbar-actions{display:flex;align-items:center;gap:8px}.portal-mobile-menu{display:none;background:none;border:none;color:var(--ink);padding:6px}.portal-content{flex:1 0 auto;padding:28px 32px 48px;max-width:1200px;margin:0 auto}.portal-content,.portal-footer{width:100%;box-sizing:border-box}.portal-footer{margin-top:auto;border-top:1px solid var(--line);background:transparent}.portal-footer-inner,.portal-footer:not(:has(.portal-footer-inner)){width:100%;max-width:1200px;margin:0 auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-sizing:border-box;font-size:11px;color:var(--muted)}.portal-footer span{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere}.portal-footer a{color:var(--blue);text-decoration:none;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;flex-shrink:0;transition:color .15s ease}.portal-footer a:hover{color:var(--electric)}.portal-greeting{margin-bottom:24px}.portal-greeting h1{font:650 clamp(26px,3.5vw,36px)/1.15 Manrope Variable,sans-serif;letter-spacing:-1.2px}.portal-greeting h1 span{color:var(--electric)}.portal-greeting p{color:var(--muted);margin-top:6px}.portal-date{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}.portal-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:28px}.portal-kpi{padding:20px;background:var(--surface)}.portal-kpi-label{font-size:11px;color:var(--muted);font-weight:600;margin-bottom:8px}.portal-kpi-value{font:650 clamp(22px,2.5vw,30px)/1.2 Manrope Variable,sans-serif;letter-spacing:-.8px;color:var(--ink)}.portal-kpi-value.is-blue{color:var(--blue)}.portal-kpi-sub{font-size:11px;color:var(--muted);margin-top:4px}.portal-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.portal-section-head h2{font:650 19px/1.3 Manrope Variable,sans-serif;letter-spacing:-.4px}.portal-section-head a,.portal-section-head button{font-size:12px;color:var(--blue);text-decoration:none;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.portal-feed{display:flex;flex-direction:column;gap:0}.portal-feed-item{display:flex;align-items:flex-start;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.portal-feed-item:first-child{border-top:0}.portal-feed-icon{width:36px;height:36px;border-radius:8px;background:var(--surface-raised);color:var(--blue);display:grid;place-items:center;flex-shrink:0}.portal-feed-icon.is-alert{background:rgba(239,68,68,.08);color:#dc2626}.portal-feed-icon.is-done{background:rgba(16,185,129,.08);color:#047857}.portal-feed-body{flex:1;min-width:0}.portal-feed-body time{font-size:11px;color:var(--muted);display:block;margin-bottom:4px}.portal-feed-body h3{font-size:14px;font-weight:600;margin-bottom:4px}.portal-feed-body p{color:var(--muted);line-height:1.6;font-size:13px}.portal-contract-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:12px}.portal-contract-card h3{font-size:14px;font-weight:600}.portal-contract-card p{font-size:12px;color:var(--muted);margin-top:2px}.portal-contract-value{text-align:right;flex-shrink:0}.portal-contract-value strong{display:block;font:650 18px Manrope Variable,sans-serif;color:var(--ink)}.portal-contract-value small{font-size:11px;color:var(--muted)}.portal-charges{display:flex;flex-direction:column;gap:0}.portal-charge{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line);flex-wrap:wrap}.portal-charge:first-child{border-top:0}.portal-charge-info{flex:1;min-width:180px}.portal-charge-info h3{font-size:13px;font-weight:600}.portal-charge-info p{font-size:12px;color:var(--muted);margin-top:2px}.portal-charge-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.portal-charge-right strong{font:600 15px Manrope Variable,sans-serif}.portal-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px}.portal-status.is-pending{background:rgba(245,158,11,.1);color:#b45309}.portal-status.is-overdue{background:rgba(239,68,68,.1);color:#dc2626}.portal-status.is-paid{background:rgba(16,185,129,.1);color:#047857}.portal-status.is-cancelled{background:var(--surface-raised);color:var(--muted)}.portal-empty{padding:32px 0;text-align:center;color:var(--muted);line-height:1.7}.portal-empty svg{display:block;margin:0 auto 12px;opacity:.35}.portal-results-placeholder{padding:40px 28px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:center}.portal-results-placeholder svg{margin:0 auto 14px;color:var(--blue);opacity:.4}.portal-results-placeholder h2{font:650 20px Manrope Variable,sans-serif;margin-bottom:8px}.portal-results-placeholder p{color:var(--muted);max-width:480px;margin:0 auto;line-height:1.7}.portal-section{margin-bottom:36px}.portal-invoice-banner{margin-bottom:24px;padding:16px 20px;border-radius:12px;background:var(--surface-raised);border:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}.portal-invoice-banner.is-overdue{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.3)}.portal-invoice-icon{width:40px;height:40px;border-radius:10px;background:var(--surface);color:var(--blue);display:grid;place-items:center;flex-shrink:0;font-weight:700;font-size:13px}.portal-invoice-banner.is-overdue .portal-invoice-icon{background:rgba(239,68,68,.15);color:#dc2626}.portal-upsell-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:8px}.portal-upsell-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);display:flex;flex-direction:column;gap:8px;transition:border-color .15s}.portal-upsell-card:hover{border-color:var(--blue)}.portal-upsell-card h3{font-size:14px;font-weight:650}.portal-upsell-card p{font-size:12px;color:var(--muted);line-height:1.5;flex:1}.portal-upsell-icon{width:32px;height:32px;border-radius:8px;background:var(--surface-raised);color:var(--blue);display:grid;place-items:center}.portal-contact-sheet h3{font:650 18px Manrope Variable,sans-serif;margin-bottom:8px}.portal-contact-sheet p{color:var(--muted);margin-bottom:16px;line-height:1.6}.portal-contact-channels{display:flex;flex-direction:column;gap:10px;margin-top:16px}.portal-contact-channels a{font-size:13px;color:var(--blue);text-decoration:none;display:inline-flex;align-items:center;gap:6px}@media (max-width:768px){.portal-shell{grid-template-columns:1fr}.portal-sidebar{display:none}.portal-mobile-menu{display:flex}.portal-content{padding:20px 16px 40px}.portal-topbar{padding:12px 16px}.portal-footer-inner,.portal-footer:not(:has(.portal-footer-inner)){padding:16px;flex-direction:column;text-align:center;gap:10px}.portal-kpis{grid-template-columns:1fr}.portal-contract-card{flex-direction:column;align-items:flex-start}.portal-contract-value{text-align:left}.portal-upsell-grid{grid-template-columns:1fr}}.portal-mobile-nav{display:flex;flex-direction:column;gap:4px}.portal-mobile-nav .portal-nav-link{padding:12px 14px;font-size:14px}.portal-mobile-nav .portal-workspace{margin-bottom:12px}.portal-mobile-nav .portal-user{border-top:1px solid var(--line);margin-top:8px;padding-top:14px}html[data-theme=dark] .portal-upsell-card{background:var(--surface)}html[data-theme=dark] .portal-status.is-pending{background:rgba(245,158,11,.15);color:#fbbf24}html[data-theme=dark] .portal-status.is-overdue{background:rgba(239,68,68,.15);color:#f87171}html[data-theme=dark] .portal-status.is-paid{background:rgba(16,185,129,.15);color:#34d399}.portal-agency-identity{display:flex;justify-content:space-between;gap:24px;padding:20px 24px;margin-bottom:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.portal-agency-identity>div{min-width:0;max-width:65%;display:grid;align-content:start;gap:6px}.portal-agency-identity small{font-size:10px;letter-spacing:.1em;color:var(--muted)}.portal-agency-identity strong{font:700 18px/1.4 Manrope Variable,sans-serif;overflow-wrap:anywhere}.portal-agency-identity p,.portal-agency-identity span{font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere;white-space:pre-line}.portal-contact-channels a{overflow-wrap:anywhere;min-height:44px}@media(max-width:600px){.portal-agency-identity{flex-direction:column;gap:18px;padding:18px}.portal-agency-identity>div{max-width:100%}}.portal-content{overflow-wrap:anywhere}.portal-section-head{flex-wrap:wrap}.portal-contract-card>div,.portal-invoice-banner>div,.portal-invoice-banner>div>div,.portal-kpi,.portal-section-head>div{min-width:0}.portal-feed-body>a,.portal-section-head a{min-height:44px}.portal-charge-title,.portal-contract-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.portal-status{flex-shrink:0}.portal-contact-btn span,.portal-user strong{overflow-wrap:anywhere;min-width:0}.portal-bottom-nav{display:none}.portal-payment-alternative{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:14px;font-size:12px}.portal-payment-alternative .btn{flex-shrink:0}.portal-service-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}.portal-service-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}@media (max-width:960px){.portal-shell{grid-template-columns:minmax(0,1fr)}.portal-sidebar{display:none}.portal-mobile-menu{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0}.portal-topbar{padding:calc(8px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));gap:12px}.portal-breadcrumb strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-topbar-actions{flex-shrink:0}.portal-content{padding:20px max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left))}.portal-contact-btn,.portal-nav-link{min-height:48px}.portal-shell{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.portal-bottom-nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;z-index:30;inset:auto 0 0;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--surface);box-shadow:0 -4px 20px #091b3b0a}.portal-bottom-nav a,.portal-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:58px;min-width:0;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:11px;font-weight:600;text-align:center;line-height:1.4}.portal-bottom-nav a[aria-current=page]{color:var(--blue);background:var(--surface-raised)}.portal-bottom-icon{position:relative}.portal-bottom-badge{position:absolute;top:-5px;left:14px;min-width:16px;padding:1px 4px;border-radius:99px;background:var(--blue);color:#fff;font-size:9px;line-height:1.5}.portal-shell .delivery-feedback{bottom:calc(86px + env(safe-area-inset-bottom))}.portal-footer-inner{flex-wrap:wrap}}@media (max-width:600px){.portal-breadcrumb>span{display:none}.portal-greeting h1{font-size:28px}.portal-charge{align-items:stretch;flex-direction:column;gap:12px;padding:20px 0}.portal-charge-info{min-width:0}.portal-charge-right{align-items:stretch}.portal-charge-right strong{font-size:20px}.portal-invoice-banner{padding:16px}.portal-charge-right>.btn,.portal-invoice-banner>.btn,.portal-invoice-banner>div{width:100%}.portal-payment-alternative{flex-direction:column;align-items:stretch}.portal-content>.btn,.portal-section>.btn{width:100%}.portal-feed-item{gap:10px}}.portal-service-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}@media(max-width:960px){.portal-service-grid{grid-template-columns:minmax(0,1fr)}}.agency-logo{width:42px;height:42px;object-fit:contain;flex-shrink:0}.agency-brand-initials{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid;border-radius:10px;font-weight:700}.agency-brand-name{font:700 17px/1.25 Manrope Variable,sans-serif;overflow-wrap:anywhere}