:root{--primary:#003966;--secondary-main:#53ae57;--secondary-light:#a3d3ec;--surface:#fff;--background:#f4f7fb;--text:#1f2937;--muted:#6b7280;--danger:#b91c1c;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body{background:var(--background);color:var(--text);margin:0;padding:0;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}a{color:inherit}.app-body{flex-direction:column;min-height:100vh;display:flex}.app-header{padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);background:#fff;border-bottom:1px solid #e5e7eb}.app-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.app-brand{flex:1;align-items:center;gap:10px;min-width:0;text-decoration:none;display:inline-flex}.app-header-actions{flex-shrink:0;align-items:center;display:flex}.app-logo{max-width:min(160px,42vw);height:auto}.app-title{color:#003966;white-space:nowrap;text-overflow:ellipsis;max-width:min(100%,52vw);font-size:clamp(.85rem,2.8vw,1.1rem);overflow:hidden}@media (max-width:480px){.app-title{white-space:normal;max-width:100%;line-height:1.25}}.app-main{padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);flex:1}.app-main--auth-only{flex-direction:column;flex:1;min-height:100vh;padding:0;display:flex}.auth-landing{padding:max(16px, var(--safe-left)) max(16px, var(--safe-right)) max(16px, var(--safe-bottom));background:#f3f7fb;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;width:100%;min-height:100%;display:flex}@media (min-width:1024px){.auth-landing{flex-direction:row;justify-content:flex-start;align-items:stretch;gap:20px;padding:24px}}.auth-landing-card{width:100%;max-width:430px}@media (min-width:1024px){.auth-landing-card{flex:0 0 30%;max-width:none;min-height:70vh}}.container{width:min(1200px,100% - 24px);margin:0 auto}@media (min-width:600px){.container{width:min(1200px,92vw)}}.card{background:var(--surface);border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 14px #0f172a14}.button{cursor:pointer;touch-action:manipulation;border:0;border-radius:8px;min-width:44px;min-height:44px;padding:10px 14px;font-weight:600}.buttonPrimary{background:var(--primary);color:#fff}.buttonPrimary:hover{background:#012b4b}.buttonSecondary{background:var(--secondary-main);color:#fff}.buttonGhost{color:var(--primary);background:#f9fafb;border:1px solid #d1d5db}.field{flex-direction:column;gap:6px;display:flex}.field input,.field select{touch-action:manipulation;background:#fff;border:1px solid #d1d5db;border-radius:8px;min-height:44px;padding:10px 12px;font-size:16px}.fieldError{color:var(--danger);font-size:.85rem}.portal-two-col{grid-template-columns:1fr;gap:12px;display:grid}@media (min-width:640px){.portal-two-col{grid-template-columns:1fr 1fr}}@media (orientation:landscape) and (min-width:540px){.portal-two-col{grid-template-columns:1fr 1fr}}.portal-form-grid{grid-template-columns:1fr;gap:12px;display:grid}@media (min-width:600px){.portal-form-grid{grid-template-columns:1fr 1fr}}.map-panel{border-radius:12px;width:100%;height:min(380px,42vh);min-height:220px}@media (min-width:900px){.map-panel{height:380px}}
