*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#f4f5f7;color:#1f2430}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-card{display:flex;flex-direction:column;gap:.85rem;width:100%;max-width:22rem;padding:2rem;background:#fff;border-radius:.75rem;box-shadow:0 8px 24px #00000014;text-align:center}.auth-card h1{margin:0;font-size:1.4rem}.auth-card .subtitle{margin:0 0 .5rem;color:#6b7280;font-size:.9rem}.auth-card input{padding:.65rem .8rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}.auth-card input:focus{outline:2px solid #3056d3;border-color:transparent}.auth-card .passcode-input{text-align:center;font-size:1.6rem;letter-spacing:.6rem}.auth-card button{padding:.65rem;border:0;border-radius:.5rem;background:#3056d3;color:#fff;font-size:1rem;cursor:pointer}.auth-card button:hover{background:#2747b8}.auth-card button:disabled{opacity:.6;cursor:default}.auth-card .error{margin:0;color:#d33030;font-size:.85rem}.auth-card .bottom-link{margin-top:.5rem;font-size:.8rem;color:#6b7280;text-decoration:none}.auth-card .bottom-link:hover{text-decoration:underline}.auth-card .auth-links{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.auth-card .auth-links button{padding:0;border:0;background:none;color:#3056d3;font-size:.85rem;text-decoration:underline;cursor:pointer}.auth-card .auth-links button:hover{background:none;color:#2747b8}button.secondary{padding:.45rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;color:#3056d3;font-size:.9rem;font-weight:500;cursor:pointer}button.secondary:hover{border-color:#3056d3;background:#eef2ff}.page{width:100%;max-width:var(--page-max, 60rem);margin-inline:auto;padding:clamp(1.25rem,3.5vw,2rem) clamp(.85rem,4vw,2rem)}.page.wide{--page-max: 84rem}.page.full{--page-max: none}.table-scroll{width:100%;overflow-x:auto}.panel-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));align-items:start}.panel-grid>.span-all{grid-column:1/-1}
