:root{--bg:#0a0b0a;--bg-glow:#12160f;--surface:#131513;--surface-2:#1b1e1a;--surface-3:#23271f;--line:#f0ffdc17;--line-strong:#f0ffdc2e;--text:#f3f6ee;--text-dim:#9ba397;--charge:#c8f732;--charge-deep:#93c400;--charge-glow:#c8f73259;--warn:#ff5a34;--warn-dim:#ff5a3421;--font-display:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "SFMono-Regular", Menlo, monospace;--radius:14px;--radius-lg:22px;--shadow:0 22px 60px -18px #000000bf;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}html{overscroll-behavior:none}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior:none;font-size:16px;line-height:1.5;overflow-x:hidden}body:before{content:"";z-index:-2;background:radial-gradient(120% 60% at 50% 118%, var(--bg-glow) 0%, transparent 60%), radial-gradient(90% 50% at 12% -10%, #14170f 0%, transparent 55%), var(--bg);position:fixed;inset:0}body:after{content:"";z-index:-1;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}button{font-family:inherit}input,button,textarea,select{font-size:16px}::selection{background:var(--charge);color:#0a0b0a}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-weight:800;line-height:1.03}p{margin:0}.eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);font-size:11px}.btn{--btn-bg:var(--charge);--btn-fg:#0b0d07;appearance:none;background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-display);letter-spacing:.01em;cursor:pointer;width:100%;transition:transform .12s var(--ease), box-shadow .2s var(--ease), background .2s;box-shadow:0 0 0 0 var(--charge-glow);border:0;border-radius:999px;padding:1.05rem 1.5rem;font-size:1.05rem;font-weight:700}.btn:hover:not(:disabled){box-shadow:0 0 34px -4px var(--charge-glow)}.btn:active:not(:disabled){transform:scale(.975)}.btn:disabled{opacity:.45;cursor:progress}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--text);border:1px solid var(--line-strong)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);box-shadow:none}.field-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.5rem;font-size:11px;display:block}.field{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;color:var(--text);font-family:var(--font-body);padding:.95rem 1rem;transition:border-color .15s,background .15s;display:block}.field:focus{border-color:var(--charge-deep);background:var(--surface-2);outline:none}.field::placeholder{color:var(--text-dim)}.field-wrap{position:relative}.field-wrap .field{padding-right:3.1rem}.field-reveal{width:3rem;height:100%;color:var(--text-dim);cursor:pointer;border-radius:0 var(--radius) var(--radius) 0;background:0 0;border:0;place-items:center;transition:color .15s;display:grid;position:absolute;top:0;right:0}.field-reveal:hover{color:var(--text)}.field-reveal:focus-visible{outline:2px solid var(--charge-deep);outline-offset:-2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.35rem}@media (width>=768px){.card{padding:1.6rem}}.card.table-wrap{padding:0}.mono{font-family:var(--font-mono)}.link{color:var(--charge);border-bottom:1px solid #0000;transition:border-color .15s}.link:hover{border-color:var(--charge-deep)}.screen{min-height:100svh;padding:max(1.5rem, env(safe-area-inset-top)) 1.25rem max(1.5rem, env(safe-area-inset-bottom));flex-direction:column;align-items:center;display:flex}.screen__inner{flex-direction:column;flex:1;width:100%;max-width:420px;display:flex}.screen__header{justify-content:space-between;align-items:center;padding-bottom:2rem;display:flex}.screen__body{flex-direction:column;flex:1;display:flex}.screen__footer{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);opacity:.7;text-align:center;padding-top:2.5rem;font-size:10.5px}@media (width>=720px){.screen{justify-content:center;padding:3rem}.screen__inner{flex:none;max-width:400px}.screen__header{justify-content:center;padding-bottom:1.5rem}.screen__body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex:none;padding:2.25rem}.screen__footer{padding-top:1.75rem}}.logo{font-family:var(--font-display);letter-spacing:-.03em;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:800;display:inline-flex}.logo__mark{border:2px solid var(--charge);border-radius:4px;flex:none;width:18px;height:24px;position:relative}.logo__mark:before{content:"";background:var(--charge);border-radius:2px 2px 0 0;width:8px;height:4px;position:absolute;top:-6px;left:50%;translate:-50%}.logo__mark:after{content:"";background:var(--charge);border-radius:1px;position:absolute;inset:4px 3px 3px}.shell{--content-pad-x:1.15rem;--content-max:1180px;--sidebar-w:0px;flex-direction:column;min-height:100svh;display:flex}.shell__sidebar{display:none}.shell__topbar{z-index:20;padding:1rem 1.15rem;padding-top:max(1rem, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.shell__menu-btn{appearance:none;cursor:pointer;background:0 0;border:0;place-items:center;width:40px;height:40px;display:grid}.burger,.burger:before,.burger:after{content:"";background:var(--text);width:20px;height:2px;transition:transform .2s var(--ease), opacity .2s;display:block}.burger{position:relative}.burger:before{position:absolute;top:-6px}.burger:after{position:absolute;top:6px}.burger.is-open{background:0 0}.burger.is-open:before{transform:translateY(6px)rotate(45deg)}.burger.is-open:after{transform:translateY(-6px)rotate(-45deg)}.shell__drawer{z-index:19;background:var(--surface);border-bottom:1px solid var(--line);animation:rise .25s var(--ease) both;flex-direction:column;gap:1.25rem;padding:.75rem 1.15rem 1.25rem;display:flex;position:sticky;top:65px}.shell__main{flex:1;min-width:0;display:flex}.shell__content{width:100%;max-width:var(--content-max);padding:1.75rem var(--content-pad-x) 5.5rem;margin:0 auto}@media (width>=768px){.shell__content{margin:0}}.appnav{flex-direction:column;gap:.15rem;display:flex}.appnav__link{color:var(--text-dim);border-radius:10px;padding:.7rem .85rem;font-size:.95rem;font-weight:600;transition:background .15s,color .15s}.appnav__link:hover{color:var(--text);background:var(--surface-2)}.appnav__link.is-active{color:var(--charge);background:var(--surface-2)}.account{flex-direction:column;gap:.85rem;display:flex}.account__meta{align-items:center;gap:.55rem;min-width:0;display:flex}.account__email{font-family:var(--font-mono);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.account__signout{appearance:none;border:1px solid var(--line-strong);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;align-self:flex-start;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s}.account__signout:hover{background:var(--surface-2)}@media (width>=768px){.shell{--content-pad-x:2.75rem;--sidebar-w:250px;flex-direction:row}.shell__topbar,.shell__drawer{display:none}.shell__sidebar{width:var(--sidebar-w);border-right:1px solid var(--line);background:color-mix(in srgb, var(--surface) 55%, transparent);flex-direction:column;flex:none;height:100dvh;padding:1.75rem 1.15rem;display:flex;position:sticky;top:0}.shell__brand{padding:0 .6rem 1.75rem}.shell__sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding-top:1.5rem}.shell__content{padding-top:2.75rem}}.role-badge{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid #0000;border-radius:5px;flex:none;padding:.2rem .45rem;font-size:10px}.role-badge--admin{color:var(--charge);background:#c8f7321a;border-color:#c8f7324d}.role-badge--user{color:var(--text-dim);background:var(--surface-2);border-color:var(--line-strong)}.page__head{margin-bottom:2rem}.page__head h1{margin-top:.35rem;font-size:clamp(2rem,7vw,2.6rem)}.page__sub{color:var(--text-dim);margin-top:.5rem}.empty-note{color:var(--text-dim)}.page__head-bar{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.icon-btn{background:var(--charge);color:#0b0d07;cursor:pointer;width:42px;height:42px;transition:transform .14s var(--ease), box-shadow .2s var(--ease);border:0;border-radius:999px;flex:none;place-items:center;margin-top:.5rem;display:grid}.icon-btn:hover{box-shadow:0 0 26px -4px var(--charge-glow)}.icon-btn:active{transform:scale(.92)}.icon-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.icon-btn__plus{width:15px;height:2.5px;transition:transform .18s var(--ease);background:currentColor;border-radius:2px;display:block;position:relative}.icon-btn__plus:before{content:"";background:currentColor;border-radius:2px;position:absolute;inset:0;transform:rotate(90deg)}.icon-btn__plus.is-x{transform:rotate(45deg)}.add-panel{animation:rise .28s var(--ease) both}.add-notice{margin-bottom:1.25rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;max-width:460px;margin-bottom:1rem;display:grid}.stat{flex-direction:column;gap:.35rem;display:flex}.stat__value{color:var(--charge);font-size:2.1rem;font-weight:700}.stat__label{letter-spacing:.04em;color:var(--text-dim);text-transform:uppercase;font-size:.8rem}.panel{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 1.25rem;max-width:640px;margin-bottom:1rem;display:flex}.panel>div{flex:240px;min-width:0}.panel>.btn{flex:none}.panel h2{font-size:1.15rem}.panel__sub{color:var(--text-dim);margin-top:.3rem;font-size:.9rem}.profile-grid{grid-template-columns:1fr;align-items:start;gap:1.25rem;max-width:900px;display:grid}@media (width>=900px){.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.profile-section{align-content:start;gap:1rem;display:grid}.profile-section h2{font-size:1.1rem}.profile-section__hint{color:var(--text-dim);margin-top:-.5rem;font-size:.9rem}.profile-section__actions{justify-content:flex-end;display:flex}.profile-section__actions .btn{width:auto;padding-inline:1.4rem}@media (width<=480px){.profile-section__actions{justify-content:stretch}.profile-section__actions .btn{width:100%}}.add-user{gap:.85rem;max-width:780px;margin-bottom:1.5rem;display:grid}.add-user__fields{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.add-user__fields>.field{flex:200px;width:auto}.add-user__role{flex:none;align-self:stretch}.add-user__desc{resize:vertical;width:100%;min-height:3rem;line-height:1.45}.add-user__hint{color:var(--text-dim);margin-top:-.3rem;font-size:.82rem;line-height:1.45}.add-user__actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;display:flex}.add-user__btn{width:auto;padding-inline:1.4rem}.add-user__fields>.field.box-slots{flex:0 0 90px}@media (width<=560px){.add-user__fields{flex-direction:column;align-items:stretch}.add-user__fields>.field,.add-user__fields>.field.box-slots{flex:none;width:100%}.add-user__role{width:100%}.add-user__actions{flex-direction:column}.add-user__btn{width:100%}}.users__search{max-width:340px;margin-bottom:1.25rem}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:420px;font-size:.92rem}.table th{text-align:left;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--line);padding:.9rem 1rem;font-size:10px}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.85rem 1rem}.table tr:last-child td{border-bottom:0}.table__role-col{width:130px}.table td.table__user{vertical-align:top}.table__user-inner{flex-direction:column;gap:.2rem;min-width:0;display:flex}.table__name{flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:600;display:flex}.table__email-sub{color:var(--text-dim);font-size:.8rem}.table__map{align-self:flex-start;font-size:.82rem}.table__desc{color:var(--text-dim);max-width:46ch;margin-top:.15rem;font-size:.82rem}.table__you{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--line-strong);border-radius:4px;padding:.1rem .3rem;font-size:9px}.table__date{color:var(--text-dim);white-space:nowrap}.table__pending{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--warn);border:1px solid #ff5a3466;border-radius:4px;padding:.1rem .3rem;font-size:9px}.table__empty{text-align:center;color:var(--text-dim);padding:2.5rem 1rem}.table__actions-col{width:1%}.table__actions{white-space:nowrap;text-align:right}.row-confirm{align-items:center;gap:.4rem;display:inline-flex}.row-action{appearance:none;border:1px solid var(--line-strong);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:7px;padding:.35rem .65rem;font-size:.8rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.row-action:hover{color:var(--text);background:var(--surface-2)}.row-action--danger{color:var(--warn);border-color:#ff5a3466}.row-action--danger:hover{background:var(--warn-dim);color:var(--warn)}.row-action:disabled{opacity:.5;cursor:progress}.role-select{appearance:none;background:var(--surface-2);border:1px solid var(--line-strong);color:var(--text);font-family:var(--font-mono);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239ba397' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;border-radius:8px;padding:.45rem 1.8rem .45rem .7rem;font-size:.82rem}.role-select:disabled{opacity:.5;cursor:progress}.pager{left:var(--sidebar-w);z-index:30;background:var(--bg);border-top:1px solid var(--line);position:fixed;bottom:0;right:0;box-shadow:0 -14px 28px -14px #0000008c}.pager__bar{max-width:var(--content-max);padding:.8rem var(--content-pad-x) calc(.8rem + env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin:0 auto;display:flex}@media (width>=768px){.pager__bar{margin:0}}.pager__info{color:var(--text-dim);font-size:.82rem}.pager__controls{gap:.6rem;display:flex}.pager__btn{width:auto;padding:.55rem 1.1rem;font-size:.85rem}.auth h1{margin-bottom:.6rem;font-size:clamp(2.2rem,9vw,2.7rem)}.auth__sub{color:var(--text-dim);margin-bottom:2rem}.auth__form{gap:1.1rem;display:grid}.auth__row{flex-direction:column;display:flex}.auth__switch{text-align:center;color:var(--text-dim);margin-top:1.75rem;font-size:.95rem}.auth__switch button{color:var(--charge);cursor:pointer;font:inherit;background:0 0;border:0;margin-left:.35rem;padding:0}.note{border-radius:var(--radius);padding:.85rem 1rem;font-size:.9rem;line-height:1.45}.note--error{background:var(--warn-dim);color:#ffb9a6;border:1px solid #ff5a3459}.note--info{color:var(--charge);background:#c8f73214;border:1px solid #c8f73247}.config-warning{border-radius:var(--radius);background:var(--warn-dim);border:1px dashed #ff5a3480;margin:2rem 0;padding:1.25rem;font-size:.9rem;line-height:1.5}.config-warning code{font-family:var(--font-mono);background:#00000059;border-radius:4px;padding:.1rem .35rem;font-size:.85em}.spinner{border:2px solid var(--line-strong);border-top-color:var(--charge);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}.fullpage-loader{justify-content:center;align-items:center;min-height:100svh;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.stagger>*{animation:rise .55s var(--ease) both}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:90ms}.stagger>:nth-child(3){animation-delay:.16s}.stagger>:nth-child(4){animation-delay:.23s}.stagger>:nth-child(5){animation-delay:.3s}.stagger>:nth-child(6){animation-delay:.37s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
