.portal-wide{max-width:1120px}.portal-title{margin:0 0 6px}.portal-lead{color:#555;margin:0 0 16px;line-height:1.5}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:20px;gap:20px;margin:24px 0;align-items:start}.portal-card{background:#fff;border:1px solid #e3e5e8;border-radius:12px;padding:20px}.portal-narrow{max-width:560px;margin:40px auto}.portal-card h2{margin:0 0 4px;font-size:1.1rem}.portal-card-hint{margin:0 0 16px;color:#666;font-size:.88rem}.portal-form{display:flex;flex-direction:column;gap:14px}.portal-form .field{flex:none}.portal-hint{font-size:.8rem;color:#666}.portal-check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;font-weight:600;color:#333;cursor:pointer}.portal-check input{width:18px;height:18px;margin-top:1px}.portal-check small{display:block;font-weight:400;color:#666}.portal-form .submit-row{justify-content:flex-start}.portal-success{margin:0;padding:12px 14px;border-radius:8px;background:#edf7ed;border:1px solid #bfe3bf;font-size:.9rem;color:#1f4d1f;line-height:1.5}.portal-success code{display:inline-block;margin-top:6px;padding:6px 10px;background:#fff;border:1px solid #bfe3bf;border-radius:6px;font-size:.95rem;-webkit-user-select:all;-moz-user-select:all;user-select:all}.portal-toolbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-bottom:12px}.portal-tabs{display:flex;gap:6px}.portal-tabs button{padding:7px 12px;border-radius:8px;border:1px solid #d7d9dd;background:#fff;font-weight:600;font-size:.85rem;cursor:pointer}.portal-tabs button.active{background:#1a56db;border-color:#1a56db;color:#fff}.portal-search{padding:8px 10px;border:1px solid #d7d9dd;border-radius:8px;font-size:.9rem;width:min(320px,100%)}.portal-table-wrap{overflow-x:auto;position:relative}.portal-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:640px}.portal-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.02em;color:#555;padding:8px 10px;border-bottom:1px solid #e3e5e8}.portal-table td{padding:10px;border-bottom:1px solid #f0f1f3;vertical-align:middle}.portal-table tr.is-disabled td{color:#999}.portal-table .muted{color:#666}.portal-table .actions{text-align:right;white-space:nowrap}.btn-danger-outline{padding:6px 12px;border-radius:8px;border:1px solid #e0b4b4;background:#fff;color:#9b1c1c;font-weight:600;font-size:.82rem;cursor:pointer}.btn-danger-outline:disabled{opacity:.6;cursor:not-allowed}.role-chip{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#e1effe;color:#1e429f;font-size:.72rem;font-weight:700;vertical-align:middle;white-space:nowrap}.role-chip-partner{background:#efe7f7;color:#4e2a7a}.role-chip-finance{background:#fdf1e0;color:#7a4210}.role-chip-muted{background:#eef0f2;color:#444}.status-pending{color:#7a4210;font-weight:600}.portal-navlink{font-size:.85rem;font-weight:600;color:#1a56db;text-decoration:none;padding:6px 4px}.portal-navlink:hover{text-decoration:underline}.portal-split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;margin:24px 0}.portal-split>.portal-side{flex:1 1 300px;max-width:420px}.portal-split>.portal-main{flex:999 1 520px;min-width:0}@media (max-width:760px){.portal-split>.portal-side{max-width:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.portal-empty{padding:24px 0;color:#666;text-align:center}.shell{display:flex;min-height:100vh;background:#f5f6f8}.shell-nav{width:248px;flex-shrink:0;background:#f7f2e7;border-right:1px solid #ece3d1;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;gap:24px;padding:20px 14px}.shell-brand,.shell-nav{display:flex;flex-direction:column}.shell-brand{gap:8px;padding:4px 10px 0;text-decoration:none}.shell-logo{height:28px;width:auto;display:block;align-self:flex-start}.shell-brand-tag{font-family:Quicksand,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a6a3a}.shell-section{display:flex;flex-direction:column;gap:2px}.shell-section-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a7a6a;padding:0 10px 6px}.shell-link{display:flex;align-items:center;gap:12px;padding:10px;min-height:48px;border-radius:10px;color:#3b2a22;text-decoration:none}.shell-link svg{flex-shrink:0;color:#8a6a3a}.shell-link:hover{background:#efe6d4}.shell-link.is-active{background:#fff;box-shadow:0 1px 2px rgba(60,40,20,.08)}.shell-link.is-active svg{color:#1a56db}.shell-link-text{display:flex;flex-direction:column;line-height:1.25}.shell-link-text span{font-weight:600;font-size:.92rem}.shell-link.is-active .shell-link-text span{color:#1a56db}.shell-link-text small{font-size:.75rem;color:#7a6a5a}.shell-user{margin-top:auto;padding:14px 10px 4px;border-top:1px solid #e6dcc8;display:flex;flex-direction:column;gap:2px}.shell-user-name{font-weight:700;font-size:.9rem;color:#2b1d17}.shell-user-role{font-size:.78rem;color:#6b5a4a}.shell-signout{margin-top:10px;align-self:flex-start;font-size:.85rem;font-weight:600;color:#1a56db;text-decoration:none;padding:6px 0}.shell-signout:hover{text-decoration:underline}.shell-main{flex:1 1;min-width:0}.shell-content{max-width:1100px;padding:32px 40px 80px}.shell-scrim,.shell-topbar{display:none}@media (max-width:900px){.shell{flex-direction:column}.shell-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#f7f2e7;border-bottom:1px solid #ece3d1;position:-webkit-sticky;position:sticky;top:0;z-index:30}.shell-menu-btn{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid #d9ccb4;background:#fff;font-weight:600;color:#3b2a22;cursor:pointer}.shell-nav{position:fixed;top:0;left:0;bottom:0;height:auto;z-index:50;transform:translateX(-100%);transition:transform .2s ease;box-shadow:4px 0 24px rgba(0,0,0,.12)}.shell-nav.is-open{transform:none}.shell-scrim{display:block;position:fixed;inset:0;z-index:40;border:0;background:hsla(0,0%,8%,.35)}.shell-content{padding:20px 16px 64px}}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}.page-head h1{margin:0 0 4px;font-size:1.75rem}.page-head p{margin:0;color:#555;line-height:1.5}.page-head-actions{display:flex;flex-wrap:wrap;gap:10px}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:8px;font-weight:600;font-size:.92rem;cursor:pointer;text-decoration:none;border:1px solid #1a56db}.btn-primary{background:#1a56db;color:#fff}.btn-primary:hover{background:#1648b8}.btn-primary:disabled{background:#93a8d8;border-color:#93a8d8;cursor:not-allowed}.btn-secondary{background:#fff;color:#1a56db}.btn-secondary:hover{background:#eef3fd}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.stat{background:#fff;border:1px solid #e3e5e8;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:inherit;cursor:pointer}.stat:hover{border-color:#b9c8ee}.stat.is-active{border-color:#1a56db;box-shadow:inset 0 0 0 1px #1a56db}.stat-label{font-size:.78rem;color:#555}.stat-value{font-size:1.5rem;font-weight:700}.side-panel{margin:0 0 0 auto;height:100vh;max-height:100vh;width:min(460px,100vw);max-width:100vw;border:0;padding:0;background:#fff;box-shadow:-8px 0 32px rgba(0,0,0,.15)}.side-panel::-webkit-backdrop{background:hsla(0,0%,8%,.35)}.side-panel::backdrop{background:hsla(0,0%,8%,.35)}.side-panel[open]{animation:side-panel-in .18s ease-out}@keyframes side-panel-in{0%{transform:translateX(32px)}to{transform:none}}.side-panel-inner{padding:20px 24px 32px;display:flex;flex-direction:column;gap:16px}.side-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.side-panel-head h2{margin:0;font-size:1.2rem}.side-panel-close{width:44px;height:44px;border-radius:8px;border:1px solid #e3e5e8;background:#fff;color:#444;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.panel-intro{margin:0;color:#555;font-size:.9rem;line-height:1.5}.role-options{display:grid;grid-gap:8px;gap:8px;border:0;padding:0;margin:0}.role-options legend{font-size:.75rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px}.role-option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid #d7d9dd;border-radius:10px;cursor:pointer}.role-option:has(input:checked){border-color:#1a56db;background:#f3f7fe}.role-option input{margin-top:3px}.role-option strong{display:block;font-size:.92rem}.role-option small{color:#555;font-size:.8rem}.panel-actions{display:flex;gap:10px;flex-wrap:wrap}.shell-content .portal-card+.portal-card{margin-top:20px}.cell-sub{display:block;font-size:.8rem;color:#666;font-weight:400}.view-only-note{font-size:.85rem;color:#555;background:#f3f4f6;border-radius:8px;padding:8px 12px}@media (max-width:640px){.portal-table{min-width:0}.portal-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.portal-table tr{display:grid;grid-template-columns:1fr auto;grid-gap:6px 12px;gap:6px 12px;padding:12px 0;border-bottom:1px solid #f0f1f3}.portal-table td{display:block;padding:0;border:0}.portal-table td.actions{grid-column:2;grid-row:1/span 3;align-self:center}.page-head-actions{width:100%}.page-head-actions>*{flex:1 1 auto;justify-content:center}}.role-chip-personal{background:#fdf1e0;color:#7a4210}.warn-box{margin:0;padding:14px 16px;border-radius:10px;background:#fff8ec;border:1px solid #f1d3a3;color:#4d3210;font-size:.9rem;line-height:1.5}.warn-box p{margin:6px 0 0}.approvals-card{border-color:#f1d3a3;background:#fffcf6;margin-bottom:20px}.approvals-list{list-style:none;margin:0;padding:0}.approvals-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f3e6cf}.approvals-actions{display:flex;gap:8px;flex-wrap:wrap}.stat-static{cursor:default}.stat-static:hover{border-color:#e3e5e8}.stat-value-sm{font-size:1rem;padding-top:6px;overflow-wrap:anywhere}.shell-logo.shell-logo-compact{height:40px}.shell-powered{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:.7rem;color:#8a7a6a}.shell-powered img{height:14px;width:auto}