.ob-wrap{position:relative;min-height:100dvh;overflow:hidden;background:#1878b8;display:flex;flex-direction:column}.ob-sky{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#2f93cf,#1878b8 34%,#12608f 62%,#0d3a63)}.ob-isle{position:absolute;left:0;right:0;bottom:26%;width:100%;height:84px;opacity:.42}.ob-isle path{fill:#0d3a63;fill-opacity:.55}.ob-stage{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;padding:22px 24px 30px;max-width:560px;width:100%;margin:0 auto}.ob-brand{color:#fff;font-weight:700;font-size:15px;letter-spacing:2px;text-shadow:0 1px 6px rgba(6,34,62,.45)}.ob-sentence{margin:40px 0 0;color:#fff;font-size:26px;font-weight:900;line-height:1.68;letter-spacing:.5px;text-shadow:0 4px 26px rgba(8,40,74,.34),0 1px 3px rgba(8,40,74,.3)}.ob-clause{white-space:nowrap}.ob-blank{display:inline;padding:2px 4px;margin:0 1px;font:inherit;color:#ffe9a8;cursor:pointer;background:none;border:none;border-bottom:2.5px dashed rgba(255,233,168,.55);text-shadow:inherit;transition:all .15s}.ob-blank:hover{border-bottom-color:#ffe9a8}.ob-blank.filled{border-bottom-style:solid;border-bottom-color:#ffe9a8}.ob-blank.open{background:#ffe9a82e;border-radius:6px 6px 0 0;border-bottom-color:#ffe9a8}.ob-panel{margin-top:26px;flex:1}.ob-opts{display:flex;flex-wrap:wrap;gap:9px}.ob-opt{font-family:inherit;cursor:pointer;transition:all .15s;border-radius:14px;border:1px solid rgba(255,255,255,.3);background:#ffffff24;color:#eaf4fb;font-size:15px;font-weight:500}.ob-opt:hover:not(:disabled){background:#ffffff38}.ob-opt.on{background:#fff;color:var(--hong, #1e9bf0);font-weight:700;border:2px solid var(--hong, #1e9bf0);box-shadow:0 8px 22px #051c3647}.ob-roles{gap:12px}.ob-role{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:22px 12px;border-radius:20px}.ob-role b{font-size:18px;font-weight:700;letter-spacing:1px}.ob-role em{font-style:normal;font-size:12px;opacity:.72}.ob-nick{display:flex;gap:10px}.ob-nick input{flex:1;min-width:0;height:54px;padding:0 20px;font-size:16px;font-family:inherit;color:#1a1a1a;border:2px solid rgba(255,255,255,.5);border-radius:999px;background:#ffffffeb;outline:none;box-shadow:0 2px 12px #051c362e}.ob-nick input::placeholder{color:#8a9aa8;font-size:14.5px}.ob-nick-ok{flex:none;width:54px;height:54px;border:none;border-radius:50%;background:var(--hong, #1e9bf0);color:#fff;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 4px 16px #0f7fd680}.ob-nick-ok:disabled{opacity:.45;cursor:not-allowed}.ob-grades{display:flex;flex-direction:column;gap:16px}.ob-gband{display:flex;flex-direction:column;gap:8px}.ob-gband-t{color:#a9cbe6;font-size:11.5px;font-weight:700;letter-spacing:3px}.ob-g{flex:1;min-width:62px;height:46px}.ob-editions{display:flex;flex-direction:column;gap:14px}.ob-ed{flex:1;min-width:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:62px;border-radius:16px}.ob-ed em{font-style:normal;font-size:11px;opacity:.8;letter-spacing:.5px}.ob-ed.off,.ob-ed:disabled{background:#ffffff0f;color:#7fa8c8;border:1.5px dashed rgba(255,255,255,.28);cursor:not-allowed}.ob-note{margin:0;color:#8fb2ce;font-size:11.5px;line-height:1.7}.ob-note.warn{color:#ffc9c9}.ob-err{margin-top:14px;padding:10px 14px;border-radius:12px;background:#ff50502e;color:#ffd9d9;font-size:13px}.ob-foot{margin-top:22px;display:flex;flex-direction:column;align-items:center;gap:12px}.ob-go{width:100%;height:54px;border:none;border-radius:999px;background:var(--hong, #1e9bf0);color:#fff;font-size:16.5px;font-weight:700;letter-spacing:3px;font-family:inherit;cursor:pointer;box-shadow:0 6px 22px #0f7fd680;transition:opacity .15s}.ob-go:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.ob-hint{color:#8fb2ce;font-size:12px;letter-spacing:.3px}@media (max-width: 380px){.ob-stage{padding:20px 18px 26px}.ob-sentence{font-size:24px;line-height:1.72;margin-top:38px}.ob-g{min-width:56px}}@media (min-width: 560px){.ob-sentence{font-size:32px}}:root{--hong: #1e9bf0;--hong-dark: #0f7fd6;--love: #ff2e4d;--bg: #f7f7f7;--card: #ffffff;--text: #1a1a1a;--muted: #8a8a8a;--border: #ececec;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.auth-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:380px;background:var(--card);border-radius:16px;padding:32px 24px;box-shadow:0 4px 24px #0000000f}.auth-card h1{font-size:24px;color:var(--hong);margin-bottom:4px}.auth-card .sub{font-size:13px;color:var(--muted);margin-bottom:24px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field input{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--border);border-radius:10px;outline:none;transition:border-color .15s}.field input:focus{border-color:var(--hong)}.btn{width:100%;padding:13px;font-size:16px;font-weight:600;color:#fff;background:var(--hong);border:none;border-radius:10px;cursor:pointer;transition:background .15s}.btn:hover{background:var(--hong-dark)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border);padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;width:auto}.msg{font-size:13px;margin-bottom:12px;padding:10px 12px;border-radius:8px}.msg.error{background:#fff0f2;color:#d81e3a}.msg.ok{background:#f0fbf3;color:#1a9e4b}.switch{margin-top:20px;text-align:center;font-size:13px;color:var(--muted)}.beian-footer{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:20px 16px 24px;font-size:12px;color:#a8a8a8;line-height:1.8}.beian-footer a{color:#a8a8a8;text-decoration:none}.beian-footer a:hover{color:var(--hong, #1e9bf0)}@media print{.beian-footer{display:none}}
