.thumb-link[data-v-f3cde415]{display:inline-block;line-height:0}.thumb[data-v-f3cde415]{width:56px;height:56px;object-fit:cover;border-radius:4px;border:1px solid var(--border, #ddd);background:#f6f6f6}:root{--bg: #eef2f6;--bg-deep: #0b1f33;--panel: rgba(255, 255, 255, .88);--panel-solid: #ffffff;--ink: #122033;--muted: #5d6b7c;--line: rgba(18, 32, 51, .1);--bull: #0f8a5f;--bear: #c43c3c;--accent: #e85d04;--accent-2: #1b6ca8;--shadow: 0 18px 50px rgba(11, 31, 51, .12);--radius: 18px;--mono: "JetBrains Mono", ui-monospace, monospace;--sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:var(--sans);color:var(--ink);background:radial-gradient(1200px 500px at 10% -10%,rgba(27,108,168,.18),transparent 60%),radial-gradient(900px 420px at 90% 0%,rgba(232,93,4,.14),transparent 55%),linear-gradient(180deg,#f7f9fc 0%,var(--bg) 100%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.page{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 64px}.hero{position:relative;overflow:hidden;border-radius:28px;padding:40px 36px 36px;color:#f4f7fb;background:linear-gradient(135deg,#0b1f33eb,#1b6ca8c7),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");box-shadow:var(--shadow);margin-bottom:24px}.hero:after{content:"";position:absolute;inset:auto -10% -40% 40%;height:180%;background:radial-gradient(circle,rgba(232,93,4,.35),transparent 55%);pointer-events:none}.brand{font-size:clamp(2rem,5vw,3.2rem);font-weight:900;letter-spacing:.04em;margin:0 0 10px;position:relative;z-index:1}.hero p{margin:0;max-width:36rem;color:#f4f7fbd1;line-height:1.6;position:relative;z-index:1}.hero-actions{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:10px 18px;cursor:pointer;background:var(--accent);color:#fff;font-weight:700;transition:transform .15s ease,opacity .15s ease}.btn:hover{transform:translateY(-1px)}.btn.ghost{background:#ffffff1f;border:1px solid rgba(255,255,255,.28)}.btn.secondary{background:var(--accent-2)}.btn.danger{background:var(--bear)}.btn.small{padding:6px 12px;font-size:13px}.panel{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:18px}.panel h2{margin:0 0 14px;font-size:1.15rem}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar input,.toolbar select,.form input,.form select,.form textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;min-width:140px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.mono{font-family:var(--mono)}.up{color:var(--bear);font-weight:700}.down{color:var(--bull);font-weight:700}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}.tag.buy,.tag.bullish{background:#c43c3c1f;color:var(--bear)}.tag.sell,.tag.bearish,.tag.ok,.tag.connectivity_ok{background:#0f8a5f1f;color:var(--bull)}.tag.bad_sign,.tag.not_found,.tag.no_secret,.tag.reject{background:#c43c3c1f;color:var(--bear)}.nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.nav a{padding:8px 14px;border-radius:999px;background:#ffffffb3;border:1px solid var(--line);font-weight:600;font-size:14px}.nav a.router-link-active{background:var(--bg-deep);color:#fff;border-color:transparent}.muted{color:var(--muted)}.teachers{display:flex;flex-wrap:wrap;gap:6px}.chip{background:#1b6ca81a;color:var(--accent-2);border-radius:8px;padding:2px 8px;font-size:12px}.chip.bear{background:#0f8a5f1a;color:var(--bull)}.form{display:grid;gap:12px;max-width:520px}.form label{display:grid;gap:6px;font-size:13px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width: 800px){.grid-2{grid-template-columns:1fr}.hero{padding:28px 20px}}.stat-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--panel-solid);border-radius:16px;padding:16px;border:1px solid var(--line)}.stat .n{font-family:var(--mono);font-size:1.5rem;font-weight:700}.stat .l{color:var(--muted);font-size:12px;margin-top:4px}@media (max-width: 900px){.stat-row{grid-template-columns:repeat(2,1fr)}}.login-box{width:min(420px,100%);margin:80px auto;background:var(--panel-solid);border-radius:24px;padding:28px;box-shadow:var(--shadow);border:1px solid var(--line)}.login-box h1{margin:0 0 8px;font-size:1.6rem}.err{color:var(--bear);font-size:13px;margin-top:8px}.ok{color:var(--bull);font-size:13px}.truncate{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-cell{max-width:420px;white-space:pre-wrap;word-break:break-word;line-height:1.45;font-size:13px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0b1f337a;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{width:min(480px,100%);background:#fff;border-radius:20px;padding:22px 22px 18px;box-shadow:var(--shadow);border:1px solid var(--line)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.modal-head h3{margin:0;font-size:1.2rem}.modal-close{border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;color:var(--ink)!important;font-size:14px!important}.check-row input{width:auto;min-width:0}.form textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;resize:vertical;min-height:96px;width:100%}
