:root{--ink:#12172a;--muted:#566080;--line:#d9deec;--bg:#f2f4fa;--card:#fff;--field:#fff;--acc:#3b63f5;--acc-ink:#fff;--ok:#0fa478;--ok-bg:#e6f7f0;--warn:#b45309;--warn-bg:#fdf3e6;--danger:#c2392f;--danger-bg:#fdecea;--shadow:0 24px 60px -30px rgba(20,30,70,.35);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#eef1fa;--muted:#8c97b5;--line:#262f52;--bg:#0b0f1e;--card:#131a30;--field:#0f1529;--acc:#7c9bff;--acc-ink:#0b1024;--ok:#34d399;--ok-bg:#10231c;--warn:#eab86a;--warn-bg:#2a2011;--danger:#f2897d;--danger-bg:#2a1513;--shadow:0 24px 60px -30px rgba(0,0,0,.6);color-scheme:dark}}:root[data-theme=dark]{--ink:#eef1fa;--muted:#8c97b5;--line:#262f52;--bg:#0b0f1e;--card:#131a30;--field:#0f1529;--acc:#7c9bff;--acc-ink:#0b1024;--ok:#34d399;--ok-bg:#10231c;--warn:#eab86a;--warn-bg:#2a2011;--danger:#f2897d;--danger-bg:#2a1513;--shadow:0 24px 60px -30px rgba(0,0,0,.6);color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:DM Sans,-apple-system,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.5;transition:background .25s ease,color .25s ease}a{color:var(--acc)}h1,h2,h3{font-family:Bricolage Grotesque,-apple-system,Segoe UI,sans-serif;letter-spacing:-.02em;margin:0}.page{min-height:100dvh;align-items:center;justify-content:center;padding:32px 16px}.card,.page{display:flex}.card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:32px;flex-direction:column;gap:16px;box-shadow:var(--shadow);animation:cardIn .5s cubic-bezier(.2,.8,.2,1) both}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;font-family:Bricolage Grotesque,sans-serif}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.field input,.field select,.field textarea{width:100%;height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--field);color:var(--ink);font:inherit;transition:border-color .2s,box-shadow .2s}.field textarea{height:auto;padding:10px 12px;min-height:120px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 18%,transparent)}.btn{height:44px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,opacity .18s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn.pri{background:var(--acc);border-color:var(--acc);color:var(--acc-ink)}.btn.pri:hover:not(:disabled){box-shadow:0 10px 24px -10px var(--acc)}.btn.danger{background:var(--danger-bg);border-color:color-mix(in srgb,var(--danger) 35%,var(--line));color:var(--danger)}.btn.ok{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 35%,var(--line));color:var(--ok)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.block{width:100%}.btn.sm{height:34px;padding:0 12px;font-size:13px}.msg{font-size:13.5px;margin:0}.msg.error{color:var(--danger);animation:shake .4s}.msg.ok{color:var(--ok)}.hint{font-size:13px;margin:0}.divider,.hint{color:var(--muted)}.divider{display:flex;align-items:center;gap:10px;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:999px}.pill.active{background:var(--ok-bg);color:var(--ok)}.pill.pending{background:var(--warn-bg);color:var(--warn)}.pill.denied,.pill.disabled{background:var(--danger-bg);color:var(--danger)}.pill.ticket-open{background:var(--warn-bg);color:var(--warn)}.pill.ticket-processing{background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc)}.pill.ticket-resolved{background:var(--ok-bg);color:var(--ok)}table{width:100%;border-collapse:collapse;font-size:13.5px}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11.5px;letter-spacing:.04em}tr:last-child td{border-bottom:none}.mono,code{font-family:JetBrains Mono,ui-monospace,Menlo,monospace}.otp{display:flex;gap:8px}.otp input{width:46px;height:54px;text-align:center;font-size:24px;font-weight:600;border-radius:10px;border:1px solid var(--line);background:var(--field);color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .15s;font-family:JetBrains Mono,monospace}.otp input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 18%,transparent)}.otp input.filled{animation:pop .22s ease;border-color:var(--acc)}.theme-toggle{position:fixed;top:16px;right:16px;z-index:40;width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .2s ease}.theme-toggle:hover{transform:scale(1.06)}.theme-toggle svg{transition:transform .4s cubic-bezier(.4,1.4,.5,1),opacity .3s}@keyframes cardIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes burst{0%{opacity:.8;transform:scale(.85)}to{opacity:0;transform:scale(2.4)}}.rise{opacity:0;animation:fadeUp .5s cubic-bezier(.2,.8,.2,1) both}.pop{animation:pop .5s ease}.spinner-ring{width:40px;height:40px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--acc);animation:spin .8s linear infinite;margin:8px 0}.success-badge{position:relative;width:96px;height:96px}.success-badge svg{width:96px;height:96px;overflow:visible}.success-badge .c{fill:color-mix(in srgb,var(--ok) 14%,transparent);stroke:var(--ok);stroke-width:4;stroke-dasharray:264;stroke-dashoffset:264;transform:rotate(-90deg);transform-origin:50% 50%;animation:draw .7s cubic-bezier(.6,0,.2,1) .1s forwards}.success-badge .t{fill:none;stroke:var(--ok);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:52;stroke-dashoffset:52;animation:draw .4s cubic-bezier(.6,0,.2,1) .75s forwards}.success-badge .burst{position:absolute;inset:0;border-radius:50%;border:2px solid var(--ok);opacity:0;animation:burst 1.1s ease-out .9s}.grant-check{animation:cardIn .5s cubic-bezier(.3,1.4,.5,1) both}.reg-steps{display:flex;gap:6px}.reg-steps span{height:4px;flex:1 1;border-radius:999px;background:var(--line);transition:background .3s ease}.reg-steps span.on{background:var(--acc)}@keyframes stepInFwd{0%{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}@keyframes stepInBack{0%{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}.step-in-fwd{animation:stepInFwd .35s cubic-bezier(.2,.8,.2,1) both}.step-in-back{animation:stepInBack .35s cubic-bezier(.2,.8,.2,1) both}.session-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field)}.session-dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex:none}.session-dot.on{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 20%,transparent)}.ticket-toolbar{display:flex;gap:6px;flex-wrap:wrap}.ticket-toolbar .btn.sm{min-width:34px;padding:0 10px}.ticket-msg :is(p){margin:0 0 8px}.ticket-msg :is(p):last-child{margin-bottom:0}.ticket-msg h1{font-size:19px;margin:4px 0 8px}.ticket-msg h2{font-size:16.5px;margin:4px 0 8px}.ticket-msg ol,.ticket-msg ul{margin:0 0 8px;padding-left:20px}.ticket-msg small{color:var(--muted)}.ticket-msg a{word-break:break-word}@media (max-width:480px){.page{padding:20px 12px}.card{padding:22px 18px;gap:14px}.otp{gap:5px}.otp input{width:38px;height:46px;font-size:20px}.theme-toggle{top:10px;right:10px;width:36px;height:36px}table{font-size:13px}td,th{padding:8px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}