:root { color-scheme:inherit; --paper:var(--hud-surface-2); --white:var(--hud-surface); --cream:var(--hud-accent-soft); --yellow:var(--hud-accent); --ink:var(--hud-text); --muted:var(--hud-muted); --line:var(--hud-surface-2); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--hud-surface-2); font:14px/1.55 Inter,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; text-underline-offset:4px; }
button,input { font:inherit; }
button,a,input,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--hud-accent); outline-offset:4px; }
button { cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
.entry-brand { display:inline-flex; align-items:center; gap:13px; }
.entry-brand strong { display:grid; place-items:center; width:52px; height:38px; border:1px solid currentColor; border-radius:12px; font-size:20px; letter-spacing:-.04em; font-weight:650; }
.entry-brand span { font-size:12px; font-weight:550; }
.entry-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:0; border-radius:11px; background:var(--ink); color:white; padding:11px 20px; font-weight:600; transition:background-color 140ms,transform 140ms; }
.entry-button:hover { background:var(--hud-text); }
.entry-button:active { transform:translateY(1px); }
.entry-error { color:var(--hud-danger); font-size:13px; padding:10px 0; }
.entry-error:empty { display:none; }
.login-page { min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:32px; }
.login-wrap { display:grid; grid-template-columns:1fr 1fr; width:min(1040px,100%); min-height:620px; padding:10px; background:var(--hud-surface); border-radius:28px; box-shadow:0 18px 70px #20292312; }
.login-welcome { display:flex; flex-direction:column; position:relative; overflow:hidden; border-radius:20px; padding:34px; background:var(--yellow); }
.welcome-copy { margin-top:72px; position:relative; z-index:1; }
.welcome-copy h1 { margin:0; font-size:48px; line-height:1.08; font-weight:550; letter-spacing:-.04em; }
.welcome-copy p { margin:22px 0 0; font-size:15px; color:var(--hud-text); line-height:1.7; }
.welcome-mark { margin:24px -10px 10px auto; width:225px; opacity:.36; }
.welcome-mark svg { display:block; width:100%; stroke:var(--hud-accent); stroke-width:1.2; }
.welcome-footer { font-size:11px; margin-top:auto; color:var(--hud-text); }
.login-card { align-self:center; padding:48px; }
.login-card h2 { font-size:28px; line-height:1.2; font-weight:600; letter-spacing:-.035em; margin:0 0 10px; }
.login-card .intro { color:var(--muted); margin:0 0 32px; font-size:13px; }
.field { margin:0 0 21px; }
.field label { display:block; font-size:12px; font-weight:550; margin-bottom:8px; }
.input-box { position:relative; }
.input-box input { width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--hud-control-line); border-radius:10px; background:var(--hud-surface); color:var(--ink); transition:border-color 140ms,background-color 140ms; }
.input-box input:hover { border-color:var(--hud-muted); }
.input-box input:focus { border-color:var(--hud-accent); background:var(--hud-surface); }
.input-box input::placeholder { color:var(--hud-muted); }
.input-box input[type=password],.input-box input[name=senha] { padding-right:82px; }
.toggle-pass { position:absolute; right:7px; top:6px; min-height:36px; border:0; background:transparent; color:var(--muted); border-radius:7px; padding:6px; font-size:12px; }
.toggle-pass:hover { background:var(--paper); }
.login-card .entry-button { width:100%; margin-top:5px; }
.login-help { margin-top:28px; font-size:12px; color:var(--muted); }
.login-help summary { cursor:pointer; padding:5px 0; }
.login-help p { margin:8px 0 0; max-width:38ch; }
.entry-footer { margin:32px 0 0; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
.portal-wrap { max-width:1320px; margin:24px auto; padding:0 32px 24px; background:var(--paper); border-radius:24px; box-shadow:0 16px 60px #2029230c; }
.portal-header { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.portal-header nav { display:flex; gap:6px; align-items:center; }
.portal-header nav a,.portal-header nav button { padding:9px 14px; min-height:38px; border:0; border-radius:9px; font-size:12px; background:transparent; color:var(--ink); }
.portal-header nav a:hover,.portal-header nav button:hover { background:var(--hud-surface-2); }
.portal-intro { margin:38px 0 26px; }
.portal-intro h1 { font-size:32px; font-weight:550; letter-spacing:-.035em; line-height:1.2; margin:0 0 8px; }
.portal-intro p { margin:0; color:var(--muted); font-size:13px; }
.portal-main { display:grid; grid-template-columns:1.35fr 1fr; gap:18px; }
.portal-feature { border-radius:16px; background:var(--yellow); padding:32px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:28px; min-height:256px; }
.portal-feature h2 { font-size:30px; font-weight:550; letter-spacing:-.035em; margin:0 0 12px; }
.portal-feature p { max-width:36ch; color:var(--hud-text); font-size:14px; margin:0; }
.portal-shortcuts { background:var(--hud-surface); border-radius:16px; padding:6px 24px; }
.portal-shortcuts a { display:flex; justify-content:space-between; gap:20px; align-items:center; min-height:80px; border-bottom:1px solid var(--line); }
.portal-shortcuts a:last-child { border-bottom:0; }
.portal-shortcuts strong { display:block; font-size:15px; font-weight:600; }
.portal-shortcuts small { display:block; color:var(--muted); margin-top:3px; font-size:12px; }
.portal-shortcuts .shortcut-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--paper); transition:background-color 140ms,transform 140ms; }
.shortcut-icon svg { width:16px; height:16px; }
.portal-shortcuts a:hover .shortcut-icon { background:var(--yellow); transform:translateX(2px); }
.portal-section { margin-top:28px; }
.portal-section h2 { font-size:14px; font-weight:600; margin:0 0 12px; }
.portal-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.portal-links a { display:block; padding:20px; background:var(--hud-surface); border:1px solid transparent; border-radius:12px; transition:border-color 140ms,background-color 140ms; }
.portal-links a:hover { border-color:var(--hud-control-line); background:var(--hud-surface); }
.portal-links strong { font-size:14px; font-weight:600; }
.portal-links p { color:var(--muted); font-size:12px; margin:5px 0 0; }
.portal-more { padding:16px 0; border-bottom:1px solid var(--line); }
.portal-more summary { cursor:pointer; font-size:13px; font-weight:550; }
.portal-more .portal-links { margin-top:16px; }
@media(max-width:1100px) { .portal-wrap { margin:16px; padding:0 24px 24px; }.login-card { padding:34px; }.welcome-copy h1 { font-size:42px; } }
@media(max-width:700px) {
 .login-page { padding:16px; }.login-wrap { grid-template-columns:1fr; min-height:0; max-width:480px; padding:8px; border-radius:22px; }.login-welcome { min-height:155px; padding:22px; border-radius:15px; }.login-welcome .entry-brand span { font-size:11px; }.welcome-copy { margin-top:26px; }.welcome-copy h1 { font-size:28px; }.welcome-copy h1 br { display:none; }.welcome-copy p,.welcome-mark,.welcome-footer { display:none; }.login-card { padding:32px 22px; }.login-card h2 { font-size:25px; }.input-box input { font-size:16px; }
 .portal-wrap { margin:0; padding:0 18px 22px; border-radius:0; }.portal-header { min-height:68px; gap:10px; }.portal-header .entry-brand span { display:none; }.portal-header nav { gap:0; }.portal-header nav a,.portal-header nav button { padding:9px 10px; }.portal-intro { margin:28px 0 22px; }.portal-intro h1 { font-size:27px; }.portal-main,.portal-links { grid-template-columns:1fr; }.portal-feature { min-height:220px; padding:26px; }.portal-feature h2 { font-size:27px; }.portal-shortcuts { padding:4px 22px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media(forced-colors:active) { .login-wrap,.portal-wrap { box-shadow:none; border:1px solid CanvasText; }.entry-button,.input-box input,.portal-links a,.shortcut-icon,.login-welcome { border:1px solid ButtonText; } }

body { background:var(--hud-backdrop); background-attachment:fixed; color:var(--hud-text); }
.login-wrap,.portal-wrap { background:var(--hud-glass); border:1px solid var(--hud-border); border-radius:32px; box-shadow:var(--hud-shadow); backdrop-filter:blur(20px) saturate(125%); -webkit-backdrop-filter:blur(20px) saturate(125%); }
.login-wrap { width:min(1040px,100%); min-height:600px; gap:10px; }
.login-welcome { background:radial-gradient(ellipse at 5% 0,#38BDF847,transparent 65%),linear-gradient(145deg,#173E65,#061A2D); color:#F7FBFD; border:1px solid #7DD3FC40; border-radius:24px; }
.entry-brand img { width:48px; height:48px; border-radius:50%; }
.welcome-copy h1 { font-weight:550; }
.welcome-copy p,.welcome-footer { color:#B2CADB; }
.welcome-mark { opacity:.8; }
.welcome-mark svg { stroke:#7DD3FC; filter:drop-shadow(0 0 12px #38BDF870); }
.login-card { position:relative; padding:36px 42px; }
.entry-appearance { margin:0 0 28px auto; display:flex; width:max-content; }
.input-box input { background:var(--hud-surface); color:var(--hud-text); border-color:var(--hud-control-line); border-radius:14px; }
.input-box input:focus { border-color:var(--hud-accent); outline:2px solid var(--hud-accent); outline-offset:2px; }
.input-box input::placeholder { color:var(--hud-muted); }
.entry-button { background:var(--hud-accent); color:var(--hud-on-accent); border-radius:14px; box-shadow:0 5px 18px #1384BD28,inset 0 1px 0 #FFFFFF30; }
.entry-button:hover { background:var(--hud-accent); filter:brightness(1.08); transform:translateY(-1px); }
.portal-wrap { width:min(1180px,calc(100% - 64px)); margin:32px auto; }
.portal-header { gap:14px; }
.portal-header [data-appearance-control] { margin-left:auto; }
.portal-feature { color:var(--hud-text); background:var(--hud-accent-soft); border:1px solid var(--hud-border); border-radius:24px; }
.portal-feature p { color:var(--hud-muted); }
.portal-shortcuts,.portal-links a { background:var(--hud-surface); border:1px solid var(--hud-border); border-radius:22px; box-shadow:inset 0 1px 0 var(--hud-highlight); }
.portal-links a:hover { border-color:var(--hud-accent); transform:translateY(-2px); }
@media(max-width:700px) {
  .login-page { padding:12px; }.login-wrap { min-height:0; max-width:480px; border-radius:26px; }
  .login-welcome { padding:20px; min-height:160px; }.welcome-copy { margin-top:22px; }.welcome-copy h1 { font-size:27px; }
  .login-card { padding:16px 20px 24px; }.entry-appearance { margin-bottom:20px; }.login-card h2 { font-size:25px; }
  .portal-wrap { width:calc(100% - 20px); margin:10px auto; padding:0 18px 22px; border-radius:26px; }.portal-header { flex-wrap:wrap; padding:12px 0; }.portal-header nav { margin-left:auto; }
}
@media(prefers-reduced-motion:reduce) { .entry-button:hover,.portal-links a:hover { transform:none; } }
@media(prefers-reduced-transparency:reduce),(forced-colors:active) { .login-wrap,.portal-wrap { background:var(--hud-paper); backdrop-filter:none; -webkit-backdrop-filter:none; } }
