@font-face{font-family:Roboto Flex;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/RobotoFlex-BkMMoYSa.woff2)format("woff2")}:root{--green-900:#092e21;--green-800:#124433;--green-600:#4e7366;--green-500:#009757;--olive-600:#6e752a;--olive-800:#3e4f20;--red-500:#cc3737;--ink:#1d1d1d;--gray-600:#60676f;--gray-500:#7b8695;--gray-400:#a9b0ba;--border:#d9dbe0;--border-soft:#e4e6ea;--line:#f0f1f4;--surface:#f7f8fa;--surface-2:#eef0f4;--white:#fff;--tint-green:#e7efeb;--tint-green-2:#e2f3ea;--green-700t:#0a5f38;--tint-blue:#e9effc;--blue-600:#2f57d0;--tint-blue-2:#eef2fc;--blue-800:#28407e;--tint-amber:#fdf3e3;--amber-700:#8a5a08;--tint-red:#fbe8e8;--font:"Roboto Flex", Arial, sans-serif;--r-sm:6px;--r-md:10px;--r-lg:12px;--r-xl:16px;--r-pill:50px;--sh-sm:0 2px 8px #1d1d1d0f;--sh-md:0 8px 24px #1d1d1d1a;--sh-card:0 4px 50px #3c5cce1a;--pad-x:clamp(16px, 3vw, 32px)}.btn{border-radius:var(--r-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 18px;font-family:inherit;font-size:15px;font-weight:600;line-height:1;transition:background .15s,color .15s,border-color .15s,transform 80ms,box-shadow .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--green-800);color:#fff}.btn-primary:hover{background:var(--green-900);color:#fff}.btn-ghost{color:var(--ink);border-color:var(--border);background:#fff}.btn-ghost:hover{background:var(--surface)}.btn-block{width:100%}.btn-sm{border-radius:var(--r-sm);height:40px;padding:0 14px;font-size:14px}.icon-btn{border-radius:var(--r-sm);width:40px;height:40px;color:var(--gray-600);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover{background:var(--surface);color:var(--green-800)}.avatar{--sz:40px;width:var(--sz);height:var(--sz);color:#fff;font-weight:600;font-size:calc(var(--sz) * .36);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.card{border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-sm);background:#fff}.tag{border-radius:var(--r-pill);align-items:center;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.tag-green{color:var(--green-800);background:var(--tint-green)}.tag-amber{color:var(--amber-700);background:var(--tint-amber)}.tag-blue{color:var(--blue-800);background:var(--tint-blue-2)}.tag-gray{color:var(--gray-600);background:var(--surface-2)}.role{border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:600}.role-green{color:var(--green-800);background:var(--tint-green)}.role-gray{color:var(--gray-600);background:var(--surface-2)}.screen-head h1{margin:0;font-size:26px;font-weight:600;line-height:1.2}.screen-head p{color:var(--gray-600);text-wrap:pretty;max-width:64ch;margin:6px 0 0;font-size:15px}.group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--gray-500);margin:0 0 12px;font-size:12px;font-weight:600}@media (max-width:768px){.screen-head h1{font-size:22px}.screen-head p{font-size:14px}}*{box-sizing:border-box}html,body,#app{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5}#app{flex-direction:column;display:flex;overflow:hidden}a{color:var(--green-800);text-decoration:none}a:hover{color:var(--green-900)}button{font-family:inherit}:focus-visible{outline:2px solid var(--green-800);outline-offset:2px}::selection{background:var(--green-800);color:#fff}@keyframes ah-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes ah-pulse{0%{box-shadow:0 0 #12443366}70%{box-shadow:0 0 0 6px #12443300}to{box-shadow:0 0 #12443300}}.reveal{animation:.42s cubic-bezier(.22,1,.36,1) both ah-rise}.auth-enter-active,.auth-leave-active{transition:opacity .3s,transform .3s}.auth-enter-from{opacity:0;transform:scale(.99)}.auth-leave-to{opacity:0;transform:scale(1.01)}.tab-enter-active,.tab-leave-active{transition:opacity .2s,transform .2s}.tab-enter-from{opacity:0;transform:translateY(8px)}.tab-leave-to{opacity:0;transform:translateY(-6px)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
