:root{--ground:#fafaf6;--surface:#fff;--surface-2:#f2f3ec;--ink:#23261c;--muted:#63665a;--faint:#9a9c8f;--border:#e4e5d9;--accent:#5f811b;--accent-fill:#92c12d;--on-accent:#191a10;--accent-soft:#eaf3d6;--danger:#c8362f;--shadow:0 1px 2px #14160a0d,0 10px 30px #14160a12}@media (prefers-color-scheme:dark){:root{--ground:#15161a;--surface:#1e2024;--surface-2:#24272c;--ink:#ecede6;--muted:#a7a99d;--faint:#72746a;--border:#2e3137;--accent:#a6d13f;--accent-fill:#92c12d;--on-accent:#14160c;--accent-soft:#92c12d21;--danger:#e07a6b;--shadow:0 1px 2px #0000004d,0 12px 34px #0006}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Helvetica Neue,Helvetica,Arial,system-ui,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent-fill);outline-offset:2px;border-radius:6px}.brand{align-items:center;gap:12px;display:flex}.brand .badge{background:var(--accent-fill);width:40px;height:40px;color:var(--on-accent);box-shadow:var(--shadow);border-radius:10px;place-items:center;font-size:18px;font-weight:800;display:grid}.brand .wm{letter-spacing:-.01em;font-size:19px;font-weight:800}.brand .wm small{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600;display:block}.auth{place-items:center;min-height:100vh;padding:24px;display:grid}.auth .card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:16px;padding:30px 28px}.auth h1{letter-spacing:-.01em;margin:22px 0 4px;font-size:20px}.auth p.sub{color:var(--muted);margin:0 0 22px;font-size:13.5px}.field{margin-bottom:14px}.field label{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input{width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 12px;font-size:14px}.field input:focus{border-color:var(--accent-fill);outline:none}.btn{background:var(--accent-fill);width:100%;color:var(--on-accent);cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:10px;padding:11px 14px;font-size:14px;font-weight:600}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.6;cursor:default}.err{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:10px;margin-bottom:14px;padding:9px 12px;font-size:13px}.shell{max-width:960px;margin:0 auto;padding:28px 24px 64px}.top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.who{color:var(--muted);font-size:13px}.logout{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;padding:7px 12px;font-size:12.5px}.logout:hover{border-color:var(--accent-fill);color:var(--accent)}.launch h1{letter-spacing:-.02em;margin:34px 0 4px;font-size:26px}.launch .lead{color:var(--muted);margin:0 0 26px;font-size:14.5px}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:16px;padding:22px;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.tile:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(130% 90% at 100% 0, color-mix(in srgb,var(--accent-fill) 12%,transparent), transparent 62%);transition:opacity .18s;position:absolute;inset:0}.tile:hover{border-color:var(--accent-fill);transform:translateY(-3px);box-shadow:0 10px 30px #14160a1a}.tile:hover:after{opacity:1}.tile .ic{width:64px;height:64px;color:var(--on-accent);background:linear-gradient(135deg, var(--accent-fill), color-mix(in srgb,var(--accent-fill) 65%, #5f811b));box-shadow:0 6px 16px color-mix(in srgb,var(--accent-fill) 40%,transparent);border-radius:16px;place-items:center;display:grid}.tile .tile-body{flex:1}.tile .nm{letter-spacing:-.01em;font-size:17px;font-weight:700}.tile .role{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-top:3px;font-family:ui-monospace,monospace;font-size:11px}.empty{background:var(--surface-2);border:1px dashed var(--border);text-align:center;color:var(--muted);border-radius:14px;padding:28px;font-size:14px}.adminlink{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:9px;padding:7px 12px;font-size:12.5px}.adminlink:hover{background:var(--accent-soft)}.acces{border-collapse:collapse;background:var(--surface);border-radius:12px;width:100%;font-size:14px;overflow:hidden}.acces th,.acces td{border:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 12px}.acces thead th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11.5px;font-weight:600}.acces thead th:not(:first-child),.acces td:not(:first-child){text-align:center}.acces .u-name{font-weight:600}.acces .u-mail{color:var(--muted);font-size:12px}.acces select{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:8px;padding:6px 8px;font-size:13px}.acces select:focus{border-color:var(--accent-fill);outline:none}
