.portal-shell{min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-base);padding:48px 24px 96px}.portal-inner{max-width:1080px;margin:0 auto}.portal-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:40px}.portal-title{font-family:var(--font-display);font-size:1.9rem;font-weight:700;letter-spacing:-.02em}.portal-subtitle{color:var(--muted);margin-top:6px;font-size:.95rem}.portal-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border-accent);color:var(--accent-3)}.portal-badge.errored{color:#f87171;border-color:rgba(248,113,113,.4)}.portal-badge.sent{color:#34d399;border-color:rgba(52,211,153,.4)}.portal-badge.approved{color:var(--accent-warm);border-color:rgba(245,158,11,.4)}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:28px}.portal-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:26px 28px}.portal-card h2{font-family:var(--font-display);font-size:1.05rem;font-weight:600;margin-bottom:18px}.portal-stats{display:flex;gap:28px;flex-wrap:wrap}.portal-stat .value{font-family:var(--font-display);font-size:1.7rem;font-weight:700}.portal-stat .label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;margin-top:2px}.portal-delta{font-size:.85rem;margin-left:6px}.portal-delta.up{color:#34d399}.portal-delta.down{color:#f87171}.portal-table{width:100%;border-collapse:collapse;font-size:.9rem}.portal-table th{text-align:left;color:var(--muted);font-weight:500;font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;padding:8px 12px 8px 0}.portal-table td,.portal-table th{border-bottom:1px solid var(--border)}.portal-table td{padding:10px 12px 10px 0}.portal-table td.num,.portal-table th.num{text-align:right}.portal-empty,.portal-muted{color:var(--muted)}.portal-empty{font-size:.9rem;padding:12px 0}.portal-login{display:flex;align-items:center;justify-content:center}.portal-login-card{width:100%;max-width:400px;padding:40px}.portal-login-form{margin-top:24px;display:grid;gap:16px}.portal-field{display:grid;gap:6px}.portal-field span{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.portal-field input,.portal-field select,.portal-field textarea{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);padding:12px 14px;font-size:.95rem;font-family:var(--font-base)}.portal-field input:focus,.portal-field textarea:focus{outline:none;border-color:var(--border-accent)}.portal-field textarea{resize:vertical}.portal-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);padding:12px 18px;font-size:.95rem;font-weight:600;font-family:var(--font-base);cursor:pointer}.portal-btn:disabled{opacity:.6;cursor:default}.portal-btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 14px;font-size:.85rem;font-family:var(--font-base);cursor:pointer}.portal-alert{background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.35);border-radius:var(--radius-md);color:#f87171;padding:12px 14px;font-size:.9rem}