/* /wwwroot/assets/css/portal.css - shared GMSCC portal UI */
:root{
  --portal-blue:var(--color-dark-blue,#0C2B64);
  --portal-accent:var(--color-accent,#38A9D6);
  --portal-bg:var(--color-background,#F3F7F9);
  --portal-surface:var(--color-surface,#fff);
  --portal-text:var(--color-text,#17212B);
  --portal-muted:var(--color-text-muted,#647480);
  --portal-border:var(--color-border,#D8E2E8);
  --portal-success:var(--color-success,#2E7D5B);
  --portal-danger:var(--color-danger,#B54747);
  --portal-warning:var(--color-warning,#C58A22);
}
body.gmscc-portal{margin:0;min-height:100vh;background:var(--portal-bg);color:var(--portal-text);font-family:Arial,Helvetica,sans-serif;display:flex;flex-direction:column}
.portal-topbar{background:var(--portal-blue);color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.10)}
.portal-topbar-inner{max-width:1180px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.portal-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;min-width:0}
.portal-brand:hover{color:#fff;text-decoration:none}
.portal-brand-mark{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--portal-blue);font-weight:800;font-size:23px;flex:0 0 auto;overflow:hidden}.portal-brand-mark img{display:block;width:34px;height:34px;object-fit:contain}
.portal-brand span:last-child{display:flex;flex-direction:column;line-height:1.05}
.portal-brand strong{font-size:20px;letter-spacing:.04em}.portal-brand small{margin-top:4px;font-size:12px;font-weight:500;opacity:.82}
.portal-actions{display:flex;align-items:center;gap:15px}
.portal-language{
  position:relative;
  margin:0;
  padding:0;
  border:0;
  display:inline-flex;
  align-items:center;
  align-self:center;
}
.portal-language summary,.portal-home-link{box-sizing:border-box;height:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border:1px solid rgba(255,255,255,.35);border-radius:6px;padding:8px 12px;color:#fff;background:transparent;font-size:13px;line-height:1.2;text-decoration:none;cursor:pointer}
.portal-language summary{list-style:none;min-width:100px}
.portal-language summary::-webkit-details-marker{display:none}
.portal-language summary:hover,.portal-home-link:hover,.portal-language[open] summary{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.55);text-decoration:none}
.portal-language-menu{position:absolute;z-index:50;top:calc(100% + 8px);right:0;min-width:170px;background:#fff;border:1px solid var(--portal-border);border-radius:7px;box-shadow:0 12px 30px rgba(0,0,0,.15);padding:6px;max-height:360px;overflow:auto}
[dir=rtl] .portal-language-menu{right:auto;left:0}.portal-language-menu a{display:block;padding:8px 10px;color:var(--portal-text);text-decoration:none;border-radius:4px;font-size:13px}.portal-language-menu a:hover,.portal-language-menu a[aria-current=true]{background:var(--portal-bg);color:var(--portal-blue)}
.portal-main{width:100%;max-width:1180px;box-sizing:border-box;margin:0 auto;padding:44px 24px 60px;flex:1}.portal-auth-page .portal-main{display:flex;align-items:flex-start;justify-content:center;padding-top:64px}
.portal-auth-card{width:min(100%,520px);box-sizing:border-box;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:10px;padding:34px;box-shadow:0 14px 36px rgba(12,43,100,.07)}.portal-auth-wide{width:min(100%,760px)}
.portal-kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:700;color:var(--portal-accent)}
.portal-auth-card h1,.portal-dashboard h1{margin:0 0 12px;color:var(--portal-blue);font-size:clamp(28px,4vw,40px);line-height:1.08}.portal-auth-card>p:not(.portal-kicker){color:var(--portal-muted);line-height:1.65}
.portal-form{display:flex;flex-direction:column;gap:17px;margin-top:26px}.portal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.portal-full-row{grid-column:1/-1}
.portal-field{display:flex;flex-direction:column;gap:7px}.portal-field label{font-size:13px;font-weight:700;color:var(--portal-text)}
.portal-field input,.portal-field select{width:100%;box-sizing:border-box;border:1px solid var(--portal-border);border-radius:6px;background:#fff;color:var(--portal-text);padding:12px 13px;min-height:44px;font:inherit;outline:none}.portal-field input:focus,.portal-field select:focus{border-color:var(--portal-accent);box-shadow:0 0 0 3px rgba(56,169,214,.16)}
.portal-form-help,.portal-muted{margin:0;color:var(--portal-muted);font-size:12px;line-height:1.55}
.portal-button{appearance:none;border:0;border-radius:6px;background:var(--portal-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;font-weight:700;text-decoration:none;cursor:pointer;font-size:14px}.portal-button:hover{filter:brightness(.94);color:#fff;text-decoration:none}.portal-button-secondary{background:var(--portal-blue)}
.portal-auth-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:22px;padding-top:20px;border-top:1px solid var(--portal-border)}.portal-auth-links a,.portal-text-link{color:var(--portal-blue);font-size:13px;text-decoration:none}.portal-auth-links a:hover,.portal-text-link:hover{text-decoration:underline}
.portal-alert{border-radius:6px;padding:12px 14px;margin:18px 0;font-size:13px;line-height:1.5;border:1px solid transparent}.portal-alert-info{background:#eef7fb;border-color:#c8e8f4;color:#0B5C8E}.portal-alert-success{background:#edf7f2;border-color:#cbe7da;color:#256648}.portal-alert-warning{background:#fff8e8;border-color:#f0dda8;color:#855d16}.portal-alert-danger{background:#fff0f0;border-color:#efcaca;color:#913939}
.portal-dashboard{width:100%}.portal-dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:30px}.portal-dashboard-heading>div>p:last-child{max-width:720px;color:var(--portal-muted);line-height:1.6;margin-bottom:0}
.portal-panel-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px}.portal-panel{background:#fff;border:1px solid var(--portal-border);border-radius:10px;padding:28px}.portal-panel h2{margin:0 0 14px;color:var(--portal-blue);font-size:20px}.portal-panel p{color:var(--portal-muted);line-height:1.65}.portal-panel-empty{min-height:250px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.portal-panel-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e9f7fc;color:var(--portal-accent);font-size:24px;font-weight:800;margin-bottom:18px}
.portal-account-card dl{margin:0}.portal-account-card dl div{padding:11px 0;border-bottom:1px solid var(--portal-border)}.portal-account-card dl div:last-child{border-bottom:0}.portal-account-card dt{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--portal-muted);font-weight:700;margin-bottom:4px}.portal-account-card dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.portal-footer{border-top:1px solid var(--portal-border);background:#fff;color:var(--portal-muted);padding:18px 24px;display:flex;justify-content:space-between;gap:20px;font-size:11px}.portal-footer>div{max-width:50%}
[dir=rtl] .portal-auth-card,[dir=rtl] .portal-dashboard{text-align:right}
@media(max-width:760px){.portal-topbar-inner{padding:12px 16px;align-items:flex-start}.portal-actions{gap:8px;flex-direction:column;align-items:flex-end}.portal-main{padding:28px 16px 45px}.portal-auth-page .portal-main{padding-top:32px}.portal-auth-card{padding:24px 20px}.portal-form-grid{grid-template-columns:1fr}.portal-full-row{grid-column:auto}.portal-dashboard-heading{flex-direction:column}.portal-panel-grid{grid-template-columns:1fr}.portal-footer{flex-direction:column}.portal-footer>div{max-width:none}}
