:root{color-scheme:dark;--green:#00a651;--green-bright:#2acb78;--red:#f02020;--ink:#03150c;--text:#f5fbf7;--muted:#a8c0b2}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0}body{display:grid;place-items:center;min-height:100vh;padding:28px;color:var(--text);background:radial-gradient(circle at 18% 8%,rgba(48,211,123,.35),transparent 35%),linear-gradient(145deg,#075c35,#053c23 48%,#03180e);font-family:Inter,"Segoe UI",Arial,sans-serif}body::before{position:fixed;inset:0;content:"";pointer-events:none;opacity:.14;background-image:linear-gradient(rgba(196,239,214,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(196,239,214,.12) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(90deg,#000,transparent 72%)}.login-shell{position:relative;width:min(1040px,100%);min-height:570px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid rgba(210,246,225,.22);border-radius:22px;background:rgba(3,25,14,.72);box-shadow:0 35px 90px rgba(0,18,8,.46),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(16px)}.brand-panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:54px;background:linear-gradient(145deg,rgba(0,166,81,.3),rgba(1,39,21,.34));border-right:1px solid rgba(210,246,225,.14)}.brand-mark{width:92px;height:78px}.brand-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.3))}.company-name{max-width:490px;margin:0 0 22px;color:#a8e5c3;font-size:.71rem;font-weight:800;line-height:1.55;letter-spacing:.13em}.brand-copy h1{margin:0;font-size:clamp(2.35rem,4.5vw,4.25rem);line-height:.98;letter-spacing:.015em;text-shadow:0 16px 38px rgba(0,0,0,.3)}.brand-note{margin:22px 0 0;color:#b8cfc2;font-size:.9rem}.technical-lines{display:flex;align-items:center;gap:5px}.technical-lines span{width:76px;height:2px;background:var(--green-bright);box-shadow:0 0 12px rgba(42,203,120,.55)}.technical-lines span:nth-child(2){width:18px;opacity:.55}.technical-lines span:nth-child(3){width:6px;background:var(--red)}.access-panel{display:flex;flex-direction:column;justify-content:center;padding:52px;background:linear-gradient(160deg,rgba(6,38,22,.96),rgba(2,20,11,.98))}.access-inner{width:min(340px,100%);margin:auto}.eyebrow{margin:0 0 14px;color:#8ce0b2;font-size:.65rem;font-weight:800;letter-spacing:.18em}.access-panel h2{margin:0;font-size:1.7rem;letter-spacing:-.035em}.access-copy{margin:13px 0 30px;color:var(--muted);font-size:.84rem;line-height:1.55}label{display:block;margin-bottom:9px;color:#dcebe3;font-size:.71rem;font-weight:700}.input-wrap{position:relative}.input-wrap input{width:100%;height:48px;padding:0 44px 0 14px;color:#fff;background:rgba(255,255,255,.055);border:1px solid rgba(185,232,205,.25);border-radius:9px;outline:0;font:600 .95rem inherit;letter-spacing:.05em;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.input-wrap input:focus{background:rgba(255,255,255,.075);border-color:var(--green-bright);box-shadow:0 0 0 3px rgba(0,166,81,.2)}.input-wrap span{position:absolute;right:15px;top:50%;width:8px;height:8px;border:2px solid #8adbad;border-radius:50%;transform:translateY(-50%);box-shadow:0 0 9px rgba(42,203,120,.45)}.login-error{min-height:20px;margin:9px 0 8px;color:#ff9b9b;font-size:.73rem;line-height:1.4}button{width:100%;height:46px;display:flex;align-items:center;justify-content:center;gap:11px;color:#fff;background:linear-gradient(100deg,#008e46,var(--green),#21b967);border:1px solid #37cf7d;border-radius:9px;box-shadow:0 10px 24px rgba(0,126,62,.25);font:800 .72rem inherit;letter-spacing:.1em;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}button:hover{transform:translateY(-2px);box-shadow:0 15px 30px rgba(0,126,62,.32);filter:brightness(1.05)}button:focus-visible{outline:2px solid #a5e9c4;outline-offset:3px}button:disabled{cursor:wait;opacity:.68;transform:none}.security-note{display:flex;align-items:center;justify-content:center;gap:8px;margin:34px 0 0;color:#6f9180;font-size:.65rem}.security-note i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px rgba(0,166,81,.75)}@media(max-width:760px){body{padding:16px}.login-shell{min-height:0;grid-template-columns:1fr}.brand-panel{min-height:260px;padding:30px;border-right:0;border-bottom:1px solid rgba(210,246,225,.14)}.brand-mark{width:67px;height:57px}.company-name{margin-bottom:12px;font-size:.57rem}.brand-copy h1{font-size:2.1rem}.brand-note{margin-top:14px;font-size:.76rem}.access-panel{padding:34px 28px}.security-note{margin-top:25px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Round 2 Fix 04.3 — prevent Vietnamese heading accents from visually colliding. */
.brand-copy h1 { line-height: 1.1; }

/* Round 2 Fix 04.4 — add a clear air gap between Vietnamese heading lines. */
.brand-copy h1 { line-height: 1.26; }
