*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:#1f2933;background:#f5f7fa;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}.login-wrap{place-items:center;min-height:100%;padding:24px 16px;display:grid}.login-card{background:#fff;border-radius:12px;width:100%;max-width:380px;padding:32px 28px;box-shadow:0 4px 24px #0f172a14}.login-card h1{margin:0 0 4px;font-size:20px}.login-card p.sub{color:#64748b;margin:0 0 24px;font-size:14px}.login-card label{color:#475569;margin-bottom:16px;font-size:13px;display:block}.login-card input{border:1px solid #cbd5e1;border-radius:8px;width:100%;margin-top:6px;padding:10px 12px;font-size:15px;display:block}.login-card input:focus{border-color:#2563eb;outline:2px solid #2563eb33}.login-card button{color:#fff;cursor:pointer;background:#1e3a8a;border:0;border-radius:8px;width:100%;padding:11px;font-size:15px}.login-card button:disabled{opacity:.6;cursor:default}.login-card .error{color:#b91c1c;margin:-4px 0 14px;font-size:13px}.shell{flex-direction:column;height:100%;display:flex}.topbar{color:#475569;background:#fff;border-bottom:1px solid #e2e8f0;justify-content:flex-end;align-items:center;gap:12px;padding:6px 16px;font-size:13px;display:flex}.topbar button{cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:4px 10px;font-size:13px}.shell iframe{border:0;flex:1;width:100%}
