:root{--paper: #f6f6f3;--white: #fff;--ink: #171b25;--muted: #636873;--blue: #0755db;--blue-hover: #0345b5;--line: #d9dcde;--danger: #853e28;--danger-bg: #fff4ef;--danger-line: #eec5b8;--success: #39533d;--font: "Manrope", Arial, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font)}.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:40px}.login-card h1{font-size:28px;font-weight:800;letter-spacing:-1px;margin:0 0 4px}.login-card p.subtitle{color:var(--muted);margin:0 0 28px;font-size:13px}label{display:block;font-size:11px;font-weight:500;color:#3f4954;margin-bottom:8px}input{width:100%;background:#f7f9f5;border:1px solid #dce3da;border-radius:7px;padding:13px 14px;color:var(--ink);font-family:var(--font);font-size:13px;margin-bottom:18px;transition:border-color .2s,background .2s}input:focus{outline:2px solid #0755db15;outline-offset:1px;border-color:var(--blue);background:#fff}.password-field{position:relative;margin-bottom:18px}.password-field input{margin-bottom:0;padding-right:42px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;padding:8px;margin:0;width:auto;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;line-height:0}.password-toggle:hover{color:var(--ink)}button.primary{width:100%;display:inline-flex;align-items:center;justify-content:center;min-height:52px;background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:7px;padding:12px 24px;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:background .25s,box-shadow .25s}button.primary:hover{background:var(--blue-hover);box-shadow:0 7px 22px #0755db20}button.primary:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.error-box{background:var(--danger-bg);border:1px solid var(--danger-line);color:var(--danger);border-radius:7px;padding:12px 14px;font-size:12px;margin-bottom:18px;line-height:1.6}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:84px;padding-inline:32px;background:#f6f6f3ed;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.topbar .brand{font-size:28px;font-weight:800;letter-spacing:-1.5px;line-height:1}.topbar .user-email{color:var(--muted);font-size:12px;margin-right:16px}button.ghost{background:transparent;border:1px solid #bfc4cb;color:var(--ink);border-radius:7px;padding:9px 16px;font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border-color .2s}button.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,260px));align-content:start;gap:16px;padding:32px;max-width:860px;margin:0 auto;width:100%}.card{background:var(--white);border:1px solid #e0e4df;border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:6px;transition:box-shadow .4s,transform .5s var(--ease)}.card:hover{box-shadow:0 20px 50px #1f364214;transform:translateY(-6px)}.card .icon{width:44px;height:44px;border-radius:10px;background:#eef2f7;color:#2d4a73;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;margin-bottom:4px}.card h2{font-size:18px;font-weight:700;letter-spacing:-.3px;margin:0}.card p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 4px}.badge{display:inline-block;font-size:10px;font-weight:500;padding:5px 10px;border-radius:100px;width:fit-content}.badge.ready{background:#edf4ff;color:var(--blue);border:1px solid #c5d9fc}.badge.stub{background:#f0f1ee;color:var(--muted);border:1px solid #e2e5e2}.card button{margin-top:8px;align-self:stretch}
