.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.top .brand{color:#fff;text-decoration:none;min-height:44px;padding:5px 4px;border-radius:12px}
.wnav{display:flex;align-items:center;gap:6px}
.wnav a{color:#fff;text-decoration:none;font:600 14px Plex,system-ui,sans-serif;padding:8px 10px;border-radius:10px;min-height:40px;display:inline-flex;align-items:center}
.wnav a:hover{background:rgba(255,255,255,.12)}
.wnav a.lang{border:1px solid rgba(255,255,255,.35);background:#3b2f99;justify-content:center;min-width:48px}
.wnav .wacct{background:#fff;color:#2a1f6e}
.wnav .wacct:hover{background:#efedfb}
@media(max-width:480px){.wnav a:not(.lang):not(.wacct){display:none}}
.ws .hero{padding-bottom:20px;margin-bottom:6px;background:#33278a;box-shadow:0 0 0 100vmax #33278a;clip-path:inset(0 -100vmax)}
.ws .hero .acts{margin-top:2px}
.wask{display:flex;gap:8px;align-items:stretch;background:#fff;border-radius:18px;padding:8px;box-shadow:0 10px 30px rgba(20,10,80,.22);margin:10px 0 8px}
.wask textarea{flex:1;min-width:0;border:0;resize:none;font:400 16px/1.5 Plex,system-ui,sans-serif;color:var(--ink);padding:8px 10px;background:transparent;outline:none;min-height:48px}
.wask textarea::placeholder{color:#5e5b76}
.wask:focus-within{outline:3px solid #b9b0ff;outline-offset:2px}
.wgo{flex:none;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:14px;background:var(--brand);color:#fff;font:700 15px Plex,system-ui,sans-serif;padding:0 16px;min-height:48px;cursor:pointer}
.wgo:hover{background:#3d3299}
.wgo[disabled]{opacity:.7;cursor:wait}
.wroute{margin:0 0 8px;font-size:14px;color:#fff}
.wroute:empty{display:none}
.wchips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.wchip{border:1px solid #d9d4f5;background:#fff;color:#2a1f6e;border-radius:999px;padding:8px 12px;min-height:40px;font:600 13px Plex,system-ui,sans-serif;cursor:pointer;text-align:start}
.wchip:hover{background:#efedfb}
.btn.sec{background:#fff;color:var(--brand)}
.wfoot{text-align:center;padding:22px 18px 28px;color:var(--muted);font-size:14px}
.wfoot a{color:#3d3299}
#wdlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
#wdlist a{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;color:inherit;text-decoration:none;min-height:52px}
#wdlist a:hover{box-shadow:0 6px 16px rgba(40,30,110,.08)}
#wdlist .di{width:34px;height:34px;border-radius:10px;background:#2f6fde;display:grid;place-items:center;flex:none}
#wdlist .dn{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#wdlist .dm{font-size:13px;color:var(--muted)}
#wdlist .tx{display:flex;flex-direction:column;min-width:0}
@media(max-width:600px){.wchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-18px;padding-inline:18px;scroll-padding-inline:18px}.wchips::-webkit-scrollbar{display:none}.wchip{flex:none;max-width:78vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.ws .skip{position:fixed;top:12px;inset-inline-start:12px;padding:10px 14px;min-height:44px;white-space:nowrap;background:#fff;color:#2a1f6e;border-radius:10px;z-index:30;font-weight:700;transform:translateY(calc(-100% - 40px));pointer-events:none}
.ws .skip:focus{transform:none;pointer-events:auto}
.wnav a,.wnav .lang{min-height:44px}

/* sign-in page (w1020a) */
.si .sim{max-width:440px;margin:0 auto;padding:28px 18px 10px;min-height:calc(100vh - 210px)}
.sicard{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px 22px;box-shadow:0 12px 34px rgba(40,30,110,.10);animation:siin .22s ease-out both}
@keyframes siin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sicard h1{margin:0 0 6px;font:700 24px/1.35 Plex,system-ui,sans-serif;color:var(--ink)}
.sisub{margin:0 0 16px;color:var(--muted);font-size:15px;line-height:1.6}
.siseg{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--soft);border-radius:12px;padding:4px;margin-bottom:16px}
.siseg button{min-height:44px;border:0;border-radius:9px;background:transparent;color:#3d3299;font:600 15px Plex,system-ui,sans-serif;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}
.siseg button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(40,30,110,.12)}
.siform{display:grid;gap:12px}
.sirow{display:grid;gap:6px}
.sirow label{font-weight:600;font-size:14px;color:var(--ink)}
.sirow input{min-height:48px;border:1px solid #cfcae8;border-radius:12px;padding:0 14px;font:400 16px Plex,system-ui,sans-serif;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}
.sirow input:focus{outline:none;border-color:#4b3fb0;box-shadow:0 0 0 3px rgba(75,63,176,.18)}
.sierr{margin:0;color:#b42318;font-weight:600;font-size:14px}
.sibtn{display:flex;align-items:center;justify-content:center;min-height:50px;border:0;border-radius:14px;background:var(--brand);color:#fff;font:700 16px Plex,system-ui,sans-serif;cursor:pointer;text-decoration:none;transition:background .18s,transform .15s}
.sibtn:hover{background:#3d3299}.sibtn:active{transform:scale(.98)}.sibtn.busy{opacity:.75;cursor:wait}
.sifine{margin:2px 0 0;color:var(--muted);font-size:14px;line-height:1.6}
.sifine a{color:#3d3299;font-weight:600;display:inline-flex;align-items:center;min-height:44px} /* c10: a full-size tap target on phones */

/* w1020a: balanced 7-app grid, reserved heights (no layout shift), comfortable hit areas, motion */
.ws #grid{min-height:calc(128px * 4 + 36px)}
.ws #grid>.tile:last-child:nth-child(odd){grid-column:1/-1}
@media(min-width:700px){
  .ws #grid{grid-template-columns:repeat(8,minmax(0,1fr));min-height:calc(128px * 2 + 12px)}
  .ws #grid>.tile{grid-column:span 2}
  .ws #grid>.tile:nth-child(5):nth-last-child(3){grid-column:2/span 2}
  .ws #grid>.tile:last-child:nth-child(odd){grid-column:span 2}
}
.ws .tile{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.ws .tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(40,30,110,.12);border-color:#cfc8f3}
.ws .tile:active{transform:translateY(0) scale(.99)}
@media (prefers-reduced-motion:reduce){.ws .tile,.ws .tile:hover{transition:none;transform:none}}
.ws .hero h1{min-height:1.4em}
.wgo{padding:10px 18px}
.btn.sec{padding:10px 16px;min-height:44px}
.wchip{line-height:1.45;transition:background .15s,border-color .15s}
.wfoot{min-height:76px}
.ws .recent{min-height:0}
.wfoot a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.sicard,.sicard *{box-sizing:border-box}.siform,.sirow{min-width:0}.sirow input{width:100%;min-width:0}

/* c12: skip link is slid above the top edge until it gets keyboard focus (no clipping, no opacity trick) */
.skip:not(:focus){pointer-events:none}

a.tile{text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent}a.tile:focus-visible{outline:2px solid var(--brand,#4b3fb0);outline-offset:2px}
.silink{display:block;margin:14px auto 0;min-height:44px;padding:0 16px;border:0;background:none;color:#3d3299;font:600 15px Plex,system-ui,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.silink:disabled{opacity:.6}
/* ACCT hidden fix (task 6dd7d5bc): .sirow{display:grid} was overriding [hidden], so the sign-up name field showed in sign-in mode */
.sirow[hidden],.sifine[hidden]{display:none}
