.portal-main{padding:48px 0 96px;min-height:60vh}.portal-wrap{max-width:960px}.portal-head{margin-bottom:28px}.portal-head h1{margin:0;font-size:clamp(28px, 4vw, 40px);letter-spacing:-.04em}.portal-card{margin:0 0 22px;padding:22px;border-radius:20px;border:1px solid rgb(255 255 255 / .1);background:rgb(16 24 42 / .92);box-shadow:0 18px 50px rgb(0 0 0 / .28)}.portal-login{max-width:420px}.portal-lead,.portal-muted{color:var(--muted,#94a3b8)}.portal-alert{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:rgb(239 68 68 / .12);border:1px solid rgb(239 68 68 / .35);color:#fecaca}.portal-form .btn-primary{width:100%;margin-top:8px}.portal-remember{display:flex;align-items:center;gap:8px;margin:4px 0 12px;color:var(--muted,#94a3b8);font-size:14px}.portal-help{margin:16px 0 0;font-size:14px}.portal-help a{color:var(--text,#f8fafc)}.portal-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:18px;color:var(--muted,#94a3b8);font-size:14px}.portal-toolbar-actions a{color:var(--text,#f8fafc)}.portal-project-head h2{margin:0 0 4px;font-size:24px;letter-spacing:-.03em}.portal-service{margin-top:22px;padding-top:18px;border-top:1px solid rgb(255 255 255 / .08)}.portal-service h3{margin:0 0 12px;font-size:18px}.portal-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.portal-table{width:100%;border-collapse:collapse;font-size:14px}.portal-table th,.portal-table td{padding:10px 12px;text-align:left;border-bottom:1px solid rgb(255 255 255 / .08);vertical-align:top;white-space:nowrap}.portal-table th{color:var(--faint,#64748b);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.portal-kpi{font-weight:600;color:var(--text,#f8fafc)}.portal-growth{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:12px;font-weight:600}.portal-growth.is-up{color:#86efac;background:rgb(34 197 94 / .14)}.portal-growth.is-down{color:#fca5a5;background:rgb(239 68 68 / .14)}.portal-growth.is-flat{color:var(--muted,#94a3b8);background:rgb(255 255 255 / .06)}.portal-note{margin-top:4px;white-space:normal;max-width:220px;color:var(--muted,#94a3b8);font-size:12.5px;font-weight:400}.portal-file{color:#8ec4ff;font-weight:600;text-decoration:none}.portal-file:hover{text-decoration:underline}.portal-site-note{margin:16px 0 6px;padding:14px 16px;border-radius:14px;border:1px solid rgb(8 124 240 / .35);background:rgb(8 124 240 / .08)}.portal-site-note-label{margin:0 0 6px;color:var(--faint,#64748b);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.portal-site-note p:last-child{margin:0;color:var(--text,#f8fafc);line-height:1.5}.portal-audit{margin:0 0 14px;padding:14px 16px;border-radius:14px;border:1px solid rgb(8 124 240 / .4);background:rgb(8 124 240 / .1)}.portal-audit-label{margin:0 0 6px;color:var(--faint,#64748b);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.portal-audit-text{margin:0;color:var(--text,#f8fafc);line-height:1.55;font-size:15px}.portal-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.portal-highlight{padding:12px 14px;border-radius:14px;border:1px solid rgb(255 255 255 / .08);background:rgb(7 12 24 / .45)}.portal-highlight-label{margin:0 0 4px;color:var(--faint,#64748b);font-size:12px}.portal-highlight-value{margin:0 0 6px;font-size:22px;font-weight:650;letter-spacing:-.03em;color:var(--text,#f8fafc)}.portal-highlight .portal-growth{margin:0}.portal-highlight .portal-growth span{font-weight:500;opacity:.75}.portal-chart{margin:0 0 18px;padding:12px 10px 8px;border-radius:14px;border:1px solid rgb(255 255 255 / .08);background:rgb(7 12 24 / .35)}.portal-chart svg{display:block}.portal-chart-legend{display:flex;flex-wrap:wrap;gap:12px 18px;margin:4px 8px 4px;padding:0;list-style:none;color:var(--muted,#94a3b8);font-size:12.5px}.portal-chart-legend li{display:inline-flex;align-items:center;gap:6px}.portal-chart-legend span{width:10px;height:10px;border-radius:50%}@media (max-width:720px){.portal-card{padding:16px}.portal-table th,.portal-table td{padding:8px 10px}.portal-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}