:root{--navy:#0e1b2d;--navy-2:#0c1728;--field:#1b2740;--field-br:#2a3752;--field-ph:#7c8aa0;--white:#f4f7fb;--muted:#8a99ae;--muted-2:#6d7d93;--green:#34d399;--green-live:#6ee7b7;--green-soft:#e7f7ef;--green-ink:#0f5c43;--light:#f5f7fa;--ink:#0f172a;--ink-sub:#64748b;--line:#e2e8f0;--dash:#cbd5e1}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink)}a{color:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:46fr 54fr}@media (max-width:900px){.shell{grid-template-columns:1fr}}.left{background:var(--navy);color:var(--white);padding:64px 72px 40px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.left-inner{max-width:560px;width:100%}.brand{color:var(--green);font-size:12px;font-weight:700;letter-spacing:2px;margin-bottom:56px}.lead h1{font-size:44px;line-height:1.05;font-weight:800;letter-spacing:-.5px;margin:0 0 18px;color:#fff}.lead p{color:var(--muted);font-size:17px;line-height:1.6;max-width:480px;margin:0}.form{margin-top:120px;max-width:520px}.field{display:block;margin-bottom:20px}.field span{display:block;font-size:11px;letter-spacing:1.5px;color:var(--muted-2);font-weight:600;margin-bottom:9px}.field input{width:100%;background:var(--field);border:1px solid var(--field-br);border-radius:11px;padding:16px;color:var(--white);font-size:15px;outline:none}.field input::placeholder{color:var(--field-ph)}.field input:focus{border-color:#3c527a}.signin{width:100%;margin-top:6px;background:var(--field);border:1px solid var(--field-br);color:var(--white);font-size:15px;font-weight:600;padding:16px;border-radius:11px;cursor:pointer}.signin:hover{background:#22314e}.hint{font-size:13.5px;margin:16px 0 0}.hint,.left-foot{color:var(--muted-2)}.left-foot{display:flex;justify-content:space-between;align-items:center;font-size:13px;max-width:100%;padding-top:24px}.left-foot a{color:var(--muted);text-decoration:underline}.right{background:var(--light);padding:64px 72px 40px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.right-inner{width:100%}.eyebrow{color:var(--ink-sub);font-size:12px;font-weight:600;letter-spacing:2px;margin-bottom:16px}.right h2{font-size:34px;font-weight:800;letter-spacing:-.4px;margin:0 0 10px;color:var(--ink)}.sub{color:var(--ink-sub);font-size:16px;margin:0 0 34px}.grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:20px;gap:20px;max-width:1040px}.tile{aspect-ratio:1.08/1;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.tile .code{font-size:22px;font-weight:800;letter-spacing:.5px}.tile .state{font-size:11px;letter-spacing:2px;font-weight:600}.tile.live{background:var(--green-live);color:var(--green-ink)}.tile.live .state{color:#1f7a5c}.tile.soon{background:var(--green-soft);color:#2f9e77}.tile.soon .state{color:#8fc7ae}.tile.empty{border:1.5px dashed var(--dash);background:transparent}.legend{display:flex;gap:26px;color:var(--ink-sub);font-size:13.5px;padding-top:24px}.legend span{display:inline-flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:999px;display:inline-block}.dot.live{background:#10b981}.dot.soon{background:#8fe0c0}.dot.open{background:transparent;border:1.5px solid var(--dash)}@media (max-width:900px){.left,.right{min-height:auto;padding:44px 32px}.form{margin-top:48px}.grid{grid-template-columns:repeat(3,1fr)}}.err{color:#fca5a5;font-size:13.5px;margin:12px 0 0}.signin:disabled{opacity:.6;cursor:default}.signed{margin-top:120px;max-width:520px}.signed-badge{display:inline-block;background:rgba(52,211,153,.14);color:#6ee7b7;border:1px solid rgba(52,211,153,.3);font-size:11px;font-weight:700;letter-spacing:1.5px;padding:5px 12px;border-radius:999px}.signed-email{color:#f4f7fb;font-size:18px;margin:16px 0 22px}.signout{background:var(--field);border:1px solid var(--field-br);color:var(--white);font-size:14px;font-weight:600;padding:12px 20px;border-radius:11px;cursor:pointer}.signout:hover{background:#22314e}a.tile{text-decoration:none}.tile.clickable{cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.tile.clickable:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(16,185,129,.25)}