:root{--c-primary:#1e3a8a;--c-primary-bright:#06b6d4;--c-text:#0f172a;--c-text-sub:#64748b;--c-bg:#fff;--c-bg-soft:#f5f8ff;--border:#e2e8f0;--grad:linear-gradient(120deg,#1e3a8a,#06b6d4)}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;color:var(--c-text);background:radial-gradient(1200px 500px at 85% -10%,rgba(6,182,212,.07),transparent 60%),radial-gradient(1000px 500px at -10% 110%,rgba(30,58,138,.07),transparent 60%),linear-gradient(180deg,#fff,#f5f8ff);overflow:hidden}#__next{height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}.topbar{height:7vh;min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:hsla(0,0%,100%,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:relative;flex-shrink:0;z-index:10}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--grad);opacity:.85}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand img{height:40px;width:auto;display:block}.brand-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}.brand-cn{font-size:17px;font-weight:700;letter-spacing:.5px;color:var(--c-text);white-space:nowrap}.brand-en{font-size:11px;color:var(--c-text-sub);letter-spacing:.4px;white-space:nowrap}.topbar-links{display:flex;align-items:center;gap:22px}.topbar-links a.plain{font-size:14px;color:var(--c-primary);cursor:pointer;transition:opacity .2s}.topbar-links a.plain:hover{opacity:.72}.btn-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 22px;border-radius:999px;background:#1e40af;background:linear-gradient(120deg,#1e3a8a,#06b6d4);border:1px solid #1e3a8a;color:#fff!important;font-size:14px;font-weight:600;letter-spacing:1px;cursor:pointer;box-shadow:0 4px 14px rgba(6,132,196,.28);transition:transform .15s,box-shadow .15s}.btn-pill:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(6,132,196,.36)}.btn-user{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--c-text);cursor:pointer;padding:5px 12px;border-radius:999px;transition:background .2s}.btn-user:hover{background:rgba(30,58,138,.06)}.avatar{width:26px;height:26px;border-radius:50%;background:#1e3a8a;background:linear-gradient(135deg,#1e3a8a,#06b6d4);color:#fff;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center}.stage{flex:1 1;display:flex;min-height:0}.sidebar{width:15%;min-width:180px;background:hsla(0,0%,100%,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-right:1px solid var(--border);padding:10px 0;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto}.nav-group{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;font-size:14px;font-weight:600;color:var(--c-primary);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .18s}.nav-group:hover{background:rgba(30,58,138,.06)}.nav-group .arrow{font-size:10px;color:#94a3b8;margin-left:6px;flex-shrink:0}.nav-sub{display:block;padding:9px 16px 9px 36px;font-size:13px;color:#475569;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-left:3px solid transparent;transition:all .15s}.nav-sub:hover{background:rgba(30,58,138,.05);color:#334155}.nav-sub.active{background:rgba(30,58,138,.08);border-left:3px solid var(--c-primary);color:var(--c-primary);font-weight:500}.main{flex:1 1;min-width:0;overflow-y:auto;padding:0}.guest{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.guest-logo{height:110px;filter:drop-shadow(0 10px 30px rgba(30,58,138,.18))}.guest-cn{font-size:30px;font-weight:700;letter-spacing:2px}.guest-en{letter-spacing:1px}.guest-en,.guest-line{font-size:14px;color:var(--c-text-sub)}.guest-line{margin-top:4px}.guest-entry{margin-top:14px;display:flex;gap:14px;align-items:center}.guest-entry .hint{font-size:12.5px;color:#94a3b8}.auth-mask{position:fixed;inset:0;background:rgba(15,23,42,.32);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50}.auth-mask,.dash{display:flex;align-items:center;justify-content:center}.dash{height:100%;flex-direction:column;gap:16px;text-align:center}.dash h2{font-size:24px;font-weight:700;color:var(--c-text)}.dash .sub{font-size:14px;color:var(--c-text-sub)}.dash .tip{margin-top:10px;font-size:12.5px;color:#94a3b8;padding:8px 18px;border:1px dashed var(--border);border-radius:999px;background:hsla(0,0%,100%,.6)}.auth-card{width:400px;background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:18px;padding:36px 38px 30px;box-shadow:0 24px 60px rgba(15,23,42,.18);animation:pop .22s ease-out}@keyframes pop{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.auth-title{font-size:20px;font-weight:700;margin-bottom:4px}.auth-sub{font-size:12.5px;color:var(--c-text-sub);margin-bottom:22px}.form-row{margin-bottom:16px}.form-row label{display:block;font-size:13px;color:#475569;margin-bottom:7px}.form-row input{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:10px;font-size:14.5px;background:#fff;color:var(--c-text);outline:none;transition:border .18s,box-shadow .18s}.form-row input:focus{border-color:var(--c-primary-bright);box-shadow:0 0 0 3px rgba(6,182,212,.14)}.form-actions{display:flex;gap:12px;margin-top:22px}.btn{flex:1 1;padding:11px 0;border-radius:10px;font-size:15px;cursor:pointer;border:1px solid var(--border);background:#fff;color:#334155;transition:all .18s}.btn:hover{background:#f8fafc}.btn.primary{background:#1e40af;background:linear-gradient(120deg,#1e3a8a,#06b6d4);border:1px solid #1e3a8a;color:#fff;font-weight:600;letter-spacing:2px;box-shadow:0 5px 16px rgba(6,132,196,.28)}.btn.primary:hover{box-shadow:0 7px 20px rgba(6,132,196,.36)}.btn:disabled{opacity:.55;cursor:not-allowed}.auth-switch{margin-top:18px;font-size:13px;color:var(--c-text-sub);text-align:center}.auth-switch a{color:var(--c-primary);cursor:pointer;margin:0 4px}.auth-switch a:hover{text-decoration:underline}.msg{font-size:13px;margin-top:4px;min-height:18px}.msg.err{color:#dc2626}.msg.ok{color:#059669}.code-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:7px 12px;font-size:12.5px;border:none;border-radius:8px;background:rgba(30,58,138,.08);color:var(--c-primary);cursor:pointer;white-space:nowrap}.code-btn:disabled{opacity:.5;cursor:not-allowed}.input-wrap{position:relative}.contact-card{width:360px}.contact-line{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--c-bg-soft);margin-top:14px;word-break:break-all}.contact-line .icon{font-size:18px}.page-pad{padding:34px 44px;max-width:980px}.page-title{font-size:22px;font-weight:700;margin-bottom:6px}.page-desc{font-size:13.5px;color:var(--c-text-sub);margin-bottom:26px}.card{background:hsla(0,0%,100%,.85);border:1px solid var(--border);border-radius:14px;padding:24px 26px;margin-bottom:20px;box-shadow:0 6px 24px rgba(15,23,42,.05)}.card h3{font-size:16px;margin-bottom:16px;color:var(--c-primary)}.row-flex{display:flex;gap:14px;align-items:center}.row-flex .grow{flex:1 1}.badge{display:inline-block;padding:2px 10px;font-size:12px;border-radius:999px;background:rgba(6,182,212,.12);color:#0e7490}.badge.admin{background:rgba(30,58,138,.12);color:var(--c-primary)}.badge.off{background:#f1f5f9;color:#64748b}table.plain-table{width:100%;border-collapse:collapse;font-size:14px}table.plain-table th{text-align:left;font-size:12.5px;color:var(--c-text-sub);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--border)}table.plain-table td{padding:10px;border-bottom:1px solid #f1f5f9;color:#334155}.op{font-size:13px;color:var(--c-primary);cursor:pointer;margin-right:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.op:hover{text-decoration:underline}.op.danger{color:#dc2626}.op:disabled{opacity:.5;cursor:not-allowed}.switch{position:relative;display:inline-block;width:40px;height:22px}.switch input{opacity:0;width:0;height:0}.slider{inset:0;cursor:pointer;background:#cbd5e1;border-radius:999px}.slider,.slider:before{position:absolute;transition:.2s}.slider:before{content:"";width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.25)}.switch input:checked+.slider{background:#1e3a8a;background:linear-gradient(90deg,#1e3a8a,#06b6d4)}.switch input:checked+.slider:before{transform:translateX(18px)}