:root{--brand:#43b649;--brand-dark:#2f8a35;--brand-light:#6ed374;--brand-tint:#e8f7e9;--brand-contrast:#fff;--text:#1f2937;--text-muted:#6b7280;--bg:#f7f9f7;--surface:#fff;--border:#e5e7eb;--danger:#dc2626;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 12px #10182814;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:var(--brand-dark);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:#111827;margin:0 0 12px}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}button{font:inherit;cursor:pointer;background:var(--brand);color:var(--brand-contrast);border:none;border-radius:6px;padding:10px 16px;transition:background .15s}button:hover{background:var(--brand-dark)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{color:var(--brand-dark);border:1px solid var(--border);background:0 0}button.secondary:hover{background:var(--brand-tint)}input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);border-radius:6px;width:100%;padding:10px 12px;line-height:1.2}input[type=checkbox],input[type=radio]{width:auto;margin:0}select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%236b7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5l5 5 5-5'/></svg>");background-position:right 10px center;background-repeat:no-repeat;padding:8px 32px 8px 12px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}label{color:var(--text-muted);margin-bottom:6px;font-size:14px;display:block}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:8px;padding:24px}.error{color:var(--danger);margin-top:8px;font-size:14px}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:10;justify-content:space-between;align-items:center;padding:14px 28px;display:flex;position:sticky;top:0}.brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand:hover{text-decoration:none}.brand-logo{width:auto;height:32px;display:block}.brand-tag{color:var(--text);border-left:1px solid var(--border);letter-spacing:.02em;padding-left:10px;font-size:13px;font-weight:600}.brand-tenant{color:var(--text-muted);border-left:1px solid var(--border);letter-spacing:.01em;padding-left:10px;font-size:12px}.header-right{align-items:center;gap:14px;display:flex}.api-status{background:#9ca3af;border-radius:50%;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 3px #9ca3af2e}.api-status-up{background:#16a34a;box-shadow:0 0 0 3px #16a34a2e}.api-status-down{background:#dc2626;box-shadow:0 0 0 3px #dc26262e}.user-name{color:var(--text-muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.user-role{text-transform:uppercase;letter-spacing:.05em;background:var(--brand-tint);color:var(--brand-dark);border-radius:999px;padding:2px 8px;font-size:11px}.app-body{flex:1;min-height:0;display:flex}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:6px;width:220px;padding:20px 14px;display:flex;overflow-y:auto}.nav-section{flex-direction:column;gap:4px;margin-top:14px;display:flex}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px;padding:0 12px;font-size:11px}.nav-link{color:var(--text);border-radius:6px;padding:8px 12px;font-size:14px;text-decoration:none;transition:background .12s,color .12s;display:block}.nav-link:hover{background:var(--brand-tint);text-decoration:none}.nav-link.active{background:var(--brand);color:var(--brand-contrast)}.nav-link.active:hover{background:var(--brand-dark)}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:28px;overflow-x:auto}.portal-page{color:#1f2937;background:#f4f6f5;justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}.portal-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:100%;max-width:420px;padding:32px;box-shadow:0 6px 24px #0000000f}.portal-card-wide{max-width:560px}.portal-brand{color:#43b649;margin:0 0 20px;font-size:18px;font-weight:700}.portal-card h2{margin:0 0 8px;font-size:22px}.portal-card h3{margin:0 0 6px;font-size:15px}.portal-muted{color:#6b7280;font-size:14px;line-height:1.5}.portal-form{flex-direction:column;gap:16px;margin-top:20px;display:flex}.portal-form label{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.portal-form input{font:inherit;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px}.portal-form input:focus{border-color:#43b649;outline:none;box-shadow:0 0 0 3px #43b64926}.portal-btn{font:inherit;color:#fff;cursor:pointer;background:#43b649;border:none;border-radius:8px;padding:11px 16px;font-weight:600}.portal-btn:hover:not(:disabled){background:#389a3d}.portal-btn:disabled{opacity:.6;cursor:not-allowed}.portal-btn-link{text-align:center;margin-top:16px;text-decoration:none;display:inline-block}.portal-link-btn{color:#43b649;font:inherit;cursor:pointer;background:0 0;border:none;margin-top:16px;padding:0;font-weight:600}.portal-link-btn:hover{text-decoration:underline}.portal-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;font-size:13px}.portal-home-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.portal-status{background:#f0fdf2;border:1px solid #bbf7c7;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:20px 0;padding:16px;display:flex}.portal-status-label{color:#15803d;font-size:13px;font-weight:600}.portal-status-pill{color:#fff;background:#43b649;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}.portal-next{margin-top:20px}.portal-next p{margin:0;font-size:14px;line-height:1.55}.portal-next-muted{border-top:1px solid #eef0ef;padding-top:16px}
