:root{--bg:#eef4ff;--bg-2:#f8fbff;--surface:#fff;--text:#1f2937;--muted:#6b7280;--primary:#2f6fe0;--primary-hover:#245bc0;--border:#dbe4f3;--danger:#dc2626;--radius:20px;--shadow:0 20px 60px -20px #1e40af59;color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{background:radial-gradient(1200px 700px at 15% 10%, #dbeafe 0%, transparent 60%), radial-gradient(900px 600px at 90% 90%, #e0f2fe 0%, transparent 60%), var(--bg)}.home{flex-direction:column;min-height:100vh;display:flex;position:relative}.brand-wall{flex:1;grid-template-columns:repeat(5,1fr);grid-auto-rows:minmax(120px,1fr);gap:16px;min-height:100vh;padding:24px;display:grid}.home.has-topbar .brand-wall{min-height:auto;padding-top:8px}.brand-cell{animation:.5s both tile-in;display:flex}.brand-tile{border:1px solid var(--border);font:inherit;color:inherit;text-align:center;background:#ffffffb3;border-radius:18px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:16px 12px;transition:transform .2s,box-shadow .2s,opacity .3s,filter .3s;display:flex}.brand-wall.is-locked{pointer-events:none;-webkit-user-select:none;user-select:none}.brand-wall.is-locked .brand-tile{background:var(--surface)}.brand-tile.is-interactive{cursor:pointer;background:var(--surface)}.brand-tile.is-interactive:not(:disabled):hover,.brand-tile.is-interactive:not(:disabled):focus-visible{box-shadow:var(--shadow);border-color:#bcd0f5;outline:none;transform:translateY(-4px)}.brand-tile.is-interactive:not(:disabled):focus-visible{outline-offset:2px;outline:3px solid #93c5fd}.brand-tile.is-coming-soon{cursor:default;position:relative}.brand-tile.is-coming-soon>:not(.brand-coming-soon){filter:blur(3px);opacity:.45;-webkit-user-select:none;user-select:none}.brand-coming-soon{white-space:nowrap;background:#ffffffe6;border-radius:8px;padding:6px 12px;font-size:16px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.brand-tile.has-oneid{padding-bottom:42px;position:relative}.brand-oneid{object-fit:contain;width:30px;height:20px;position:absolute;bottom:12px;right:12px}.brand-monogram{color:#fff;letter-spacing:.5px;border-radius:16px;justify-content:center;align-items:center;font-weight:700;display:inline-flex;box-shadow:inset 0 -4px #0000001f}.brand-logo-box{justify-content:center;align-items:center;max-width:100%;display:inline-flex}.brand-logo-box.has-bg{border-radius:12px;padding:8px 14px}.brand-logo-img{object-fit:contain;max-width:min(180px,100%);max-height:100%}.brand-name{font-size:14px;font-weight:600;line-height:1.25}.brand-hint{color:var(--muted);font-size:12px}.login-overlay{z-index:10;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.login-card{background:var(--surface);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:440px;padding:40px 36px;animation:.45s cubic-bezier(.2,.8,.2,1) both card-in;display:flex;box-shadow:0 30px 80px -20px #0f172a73,0 0 0 1px #0f172a0a}.login-card h1{margin:0;font-size:28px;font-weight:600}.login-sub{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.login-sub .spinner{vertical-align:-3px;margin-right:6px}.login-foot{color:var(--muted);margin:4px 0 0;font-size:13px}.login-error{color:var(--danger);margin:0;font-size:14px}.oneid-block{flex-direction:column;align-items:center;gap:8px;margin-top:8px;display:flex}.oneid-caption{color:var(--text);font-size:14px}.oneid-mark{width:90px;height:auto;display:block}.btn-primary,.btn-ghost{width:100%;height:52px;font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;font-size:16px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;border:0}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:disabled{opacity:.75;cursor:progress}.btn-ghost{border:1.5px solid var(--border);color:var(--primary);background:0 0}.btn-ghost:hover{border-color:var(--primary)}.btn-primary:focus-visible,.btn-ghost:focus-visible{outline-offset:2px;outline:3px solid #93c5fd}.topbar .btn-ghost{width:auto;height:38px;padding:0 16px;font-size:14px}.topbar{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#f8fbffd9;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:8px 15px;display:grid;position:sticky;top:0}.topbar-brand,.topbar-ministry{align-items:center;gap:12px;min-width:0;display:flex}.topbar-brand{justify-self:start}.topbar-ministry{justify-self:end}.topbar-title{color:var(--text);margin:0;font-size:20px;font-weight:700}.topbar-gerb{object-fit:contain;flex:none;width:44px;height:44px}.topbar-emblem{width:auto;height:64px;display:block}.topbar-ministry-logo{flex:none;width:auto;height:44px}.topbar-ministry-name{white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;color:#0d2577;font-size:12px;font-weight:600;line-height:1.35}.topbar-user{align-items:center;gap:10px;display:flex}.topbar-name{font-size:14px;font-weight:500}.avatar{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-weight:600;display:inline-flex}.center-page{place-items:center;min-height:100vh;padding:16px;display:grid}.badge{color:#92400e;background:#fef3c7;border-radius:999px;padding:4px 10px;font-size:12px}.system-card{gap:12px}.system-name{color:var(--text);margin:0;font-size:14px;line-height:1.5}.system-meta{color:var(--muted);margin:0 0 8px;font-size:13px}.back-link{color:var(--primary);margin-top:4px;font-size:14px;text-decoration:none}.spinner{border:2.5px solid #fff6;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.login-sub .spinner{border-color:#c7d2fe;border-top-color:var(--primary)}.spinner.big{border-width:4px;border-color:#c7d2fe;border-top-color:var(--primary);width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes tile-in{0%{opacity:0;transform:scale(.96)}}@keyframes card-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}@media (width<=1024px){.brand-wall{grid-template-columns:repeat(4,1fr)}.topbar-emblem{display:none}}@media (width<=760px){.brand-wall{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(110px,auto);gap:10px;padding:16px}.topbar{gap:12px}.topbar-title{font-size:15px}.topbar-emblem,.topbar-ministry-name,.topbar-name{display:none}.login-card{padding:32px 20px}}@media (width<=420px){.brand-wall{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
