/* YANG QUANT · 深空量化终端 */
:root {
  --q-bg:#060a11; --q-panel:rgba(13,21,34,.78); --q-panel-solid:#0d1522;
  --q-line:rgba(127,166,216,.15); --q-line-strong:rgba(96,178,255,.32);
  --q-ink:#e9f2ff; --q-muted:#91a4bd; --q-soft:#60738c;
  --q-cyan:#4cdbff; --q-blue:#438cff; --q-lime:#a8f45b; --q-violet:#9b7bff;
  --q-red:#ff667d; --q-green:#3ee6a3; --q-amber:#ffc65c;
  --q-shadow:0 24px 70px rgba(0,7,18,.55);
  --q-mono:ui-monospace,"SF Mono","JetBrains Mono",Consolas,monospace;
  --q-sans:"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;
}
.quant-shell,.quant-shell *{box-sizing:border-box}
.quant-auth-page,.quant-auth-page *{box-sizing:border-box}
html{scroll-behavior:smooth}
body.quant-shell{margin:0!important;padding:0!important;min-height:100vh;color:var(--q-ink)!important;background:radial-gradient(ellipse 70% 45% at 12% -8%,rgba(49,142,255,.18),transparent 58%),radial-gradient(ellipse 55% 40% at 92% 8%,rgba(168,244,91,.09),transparent 56%),linear-gradient(180deg,#060a11 0%,#070c15 50%,#05080e 100%)!important;font-family:var(--q-sans);overflow-x:hidden}
body.quant-shell::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(120,164,214,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(120,164,214,.055) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(ellipse at 50% 0%,#000 15%,transparent 78%)}
body.quant-shell::after{content:"";position:fixed;right:-160px;bottom:-220px;z-index:-1;width:620px;height:620px;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(67,140,255,.12),transparent 68%)}
.quant-nav{position:sticky;top:0;z-index:2000;display:flex;align-items:center;gap:24px;width:100%;min-height:68px;padding:10px clamp(16px,3vw,42px);border-bottom:1px solid rgba(127,166,216,.13);background:rgba(5,10,17,.78);box-shadow:0 12px 40px rgba(0,4,12,.28);backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2)}
.quant-brand{display:flex;align-items:center;gap:11px;color:var(--q-ink);text-decoration:none;white-space:nowrap}
.quant-brand-logo{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(76,219,255,.28);border-radius:12px;color:#061018;background:linear-gradient(135deg,var(--q-lime),var(--q-cyan));box-shadow:0 0 24px rgba(76,219,255,.24);font-family:var(--q-mono);font-size:15px;font-weight:900}
.quant-brand b{display:block;color:#f4f9ff;font-size:14px;font-weight:800;letter-spacing:.12em}
.quant-brand small{display:block;margin-top:2px;color:var(--q-soft);font-family:var(--q-mono);font-size:8px;letter-spacing:.16em}
.quant-nav-links{display:flex;align-items:center;gap:5px;flex:1}
.quant-nav-links a,.quant-nav-user a{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid transparent;border-radius:10px;color:#91a4bd;font-size:12px;font-weight:650;text-decoration:none;transition:color .2s ease,background .2s ease,border-color .2s ease}
.quant-nav-links a:hover,.quant-nav-user a:hover{color:var(--q-cyan);background:rgba(76,219,255,.065);border-color:rgba(76,219,255,.12)}
.quant-nav-links a.active{color:#eaffff;background:rgba(76,219,255,.1);border-color:rgba(76,219,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.quant-nav-links a.active::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--q-lime);box-shadow:0 0 10px var(--q-lime)}
.quant-nav-user{display:flex;align-items:center;gap:6px}
.quant-user-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid rgba(127,166,216,.14);border-radius:999px;color:#c7d7ea;background:rgba(255,255,255,.035);font-size:11px;font-weight:650}
.quant-user-dot{width:7px;height:7px;border-radius:50%;background:var(--q-lime);box-shadow:0 0 10px rgba(168,244,91,.7)}
.quant-nav-toggle{display:none;margin-left:auto;width:38px;height:38px;border:1px solid var(--q-line);border-radius:11px;color:var(--q-ink);background:rgba(255,255,255,.04);font-size:18px}
.quant-main{width:min(100%,1460px);margin:0 auto;padding:clamp(18px,3vw,38px) clamp(14px,3vw,34px) 64px}
.quant-footer{width:min(100%,1460px);margin:0 auto;padding:0 24px 30px;color:#4d6078;font-family:var(--q-mono);font-size:9px;letter-spacing:.08em;text-align:center}
/* legacy page panels */
.quant-shell .container,.quant-shell .container-fluid{width:min(100%,1460px)!important;max-width:1460px!important;margin:0 auto!important;padding:12px 0 28px!important;background:transparent!important}
.quant-shell .card,.quant-shell .strategy-card,.quant-shell .table-card,.quant-shell .date-picker,.quant-shell .chart-wrapper,.quant-shell .modal-content,.quant-shell .panel,.quant-shell .cardx,.quant-shell .col-md-6>.card,.quant-shell .col-lg-4>.card{color:var(--q-ink)!important;background:linear-gradient(145deg,rgba(16,27,44,.83),rgba(9,16,27,.76))!important;border:1px solid var(--q-line)!important;border-radius:18px!important;box-shadow:var(--q-shadow),inset 0 1px 0 rgba(255,255,255,.04)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);overflow:hidden}
.quant-shell .card-header{color:var(--q-ink)!important;background:linear-gradient(100deg,rgba(33,83,153,.75),rgba(18,38,65,.74) 55%,rgba(30,72,64,.68))!important;border:0!important;border-bottom:1px solid rgba(76,219,255,.13)!important;padding:15px 20px!important}
.quant-shell .card-header span,.quant-shell .card-header h1,.quant-shell .card-header h2,.quant-shell .card-header h3,.quant-shell .card-header h4{color:#f3f9ff!important}
.quant-shell .card-header .badge{color:#dff8ff!important;background:rgba(76,219,255,.13)!important;border:1px solid rgba(76,219,255,.18)}
.quant-shell .card-body,.quant-shell .card-body *{color:inherit}
.quant-shell .text-muted,.quant-shell .muted,.quant-shell small.text-muted{color:var(--q-soft)!important}
.quant-shell h1,.quant-shell h2,.quant-shell h3,.quant-shell h4,.quant-shell h5{color:var(--q-ink)}
.quant-shell .table{color:var(--q-ink)!important;background:transparent!important;border-color:var(--q-line)!important}
.quant-shell .table>:not(caption)>*>*{color:#bdcde0!important;background-color:transparent!important;border-color:rgba(127,166,216,.1)!important}
.quant-shell .table thead th,.quant-shell .table th{color:#7e94af!important;background:rgba(11,22,37,.94)!important;border-bottom:1px solid rgba(76,219,255,.16)!important;font-family:var(--q-mono);font-size:10px!important;font-weight:700!important;letter-spacing:.06em;text-transform:uppercase}
.quant-shell .table tbody tr{background:transparent!important;transition:background .18s ease}
.quant-shell .table tbody tr:nth-of-type(even){background:rgba(255,255,255,.018)!important}
.quant-shell .table tbody tr:hover{background:rgba(76,219,255,.06)!important}
.quant-shell .table tbody tr:hover td{color:#eff9ff!important}
.quant-shell .table-responsive,.quant-shell .table-wrapper{border-color:var(--q-line)!important}
.quant-shell .stock-code,.quant-shell .num{color:#cce7ff!important;font-family:var(--q-mono)!important}
.quant-shell .up{color:var(--q-red)!important}.quant-shell .down{color:var(--q-green)!important}.quant-shell .flat{color:var(--q-muted)!important}
.quant-shell .form-control,.quant-shell .form-select,.quant-shell input[type=text],.quant-shell input[type=number],.quant-shell input[type=date]{color:#e7f2ff!important;background:rgba(255,255,255,.045)!important;border:1px solid rgba(127,166,216,.18)!important;border-radius:10px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important}
.quant-shell .form-control:focus,.quant-shell .form-select:focus,.quant-shell input:focus{border-color:rgba(76,219,255,.52)!important;box-shadow:0 0 0 3px rgba(76,219,255,.1)!important}
.quant-shell .form-control::placeholder,.quant-shell input::placeholder{color:#5f7188!important}.quant-shell label{color:var(--q-muted)!important}
.quant-shell .btn{border-radius:10px!important;font-weight:700!important}
.quant-shell .btn-primary,.quant-shell .btn-purple,.quant-shell .btn-info,.quant-shell .btn-success{color:#071018!important;background:linear-gradient(135deg,var(--q-cyan),#78b5ff)!important;border:0!important;box-shadow:0 8px 22px rgba(76,219,255,.18)!important}
.quant-shell .btn-warning,.quant-shell .btn-stop{color:#1d1706!important;background:var(--q-amber)!important;border:0!important}
.quant-shell .btn-danger{color:#fff!important;background:rgba(255,102,125,.82)!important;border:0!important}
.quant-shell .btn-outline-primary,.quant-shell .btn-outline-secondary,.quant-shell .btn-kline{color:var(--q-cyan)!important;border:1px solid rgba(76,219,255,.28)!important;background:rgba(76,219,255,.055)!important}
.quant-shell .btn-outline-primary:hover,.quant-shell .btn-kline:hover{color:#071018!important;background:var(--q-cyan)!important}
.quant-shell .alert{color:#dcecff;background:rgba(67,140,255,.1);border-color:rgba(67,140,255,.22)}.quant-shell .badge{font-family:var(--q-mono)}
.quant-shell .progress{background:rgba(255,255,255,.06)!important}.quant-shell .progress-bar{background:linear-gradient(90deg,var(--q-blue),var(--q-cyan))!important}
.quant-shell .pagination .page-link{color:#9eb4ce;background:rgba(255,255,255,.04);border-color:var(--q-line)}.quant-shell .pagination .active .page-link{color:#071018;background:var(--q-cyan);border-color:var(--q-cyan)}
.quant-shell .flatpickr-calendar{color:var(--q-ink);background:#101c2d;border:1px solid var(--q-line-strong);box-shadow:var(--q-shadow)}.quant-shell .flatpickr-day{color:#b9cbe0}.quant-shell .flatpickr-day:hover,.quant-shell .flatpickr-day.selected{color:#061018;background:var(--q-cyan);border-color:var(--q-cyan)}.quant-shell .flatpickr-months .flatpickr-month,.quant-shell .flatpickr-current-month,.quant-shell .flatpickr-weekday{color:#a9bfd8;fill:#a9bfd8}
/* auth */
body.quant-auth-page{margin:0;min-height:100vh;color:var(--q-ink);background:#060a11;font-family:var(--q-sans)}
.quant-auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(410px,.85fr);padding:14px;background:radial-gradient(circle at 90% 5%,rgba(255,255,255,.06),transparent 30rem),#080d16}
.quant-auth-visual{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:calc(100vh - 28px);padding:38px 44px 30px;overflow:hidden;border:1px solid rgba(76,219,255,.12);border-radius:30px;background:#070c14;box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04)}
.quant-auth-visual::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(rgba(116,167,220,.06) 1px,transparent 1px) 0 0/54px 54px,linear-gradient(90deg,rgba(116,167,220,.06) 1px,transparent 1px) 0 0/54px 54px;mask-image:radial-gradient(80% 80% at 55% 45%,#000 20%,transparent 90%)}
.quant-auth-visual::after{content:"";position:absolute;width:420px;height:420px;right:-100px;top:80px;border-radius:50%;background:radial-gradient(circle,rgba(76,219,255,.17),transparent 67%)}
.quant-auth-copy{position:relative;z-index:1;width:min(780px,100%);margin:auto 0;padding:60px 0 40px}
.quant-auth-kicker,.quant-eyebrow{display:block;color:var(--q-cyan);font-family:var(--q-mono);font-size:10px;font-weight:800;letter-spacing:.18em}
.quant-auth-copy h1{margin:18px 0;color:#f3f8ff;font-size:clamp(42px,5vw,76px);line-height:1.02;letter-spacing:-.06em;font-weight:800}.quant-auth-copy h1 em{color:var(--q-lime);font-style:normal}
.quant-auth-copy p{max-width:560px;margin:0;color:#8ea2bb;font-size:14px;line-height:1.8}
.quant-auth-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;max-width:680px;margin-top:32px}
.quant-auth-feature{padding:14px;border:1px solid var(--q-line);border-radius:15px;background:rgba(255,255,255,.032)}.quant-auth-feature b{display:block;color:#dceeff;font-size:12px}.quant-auth-feature small{display:block;margin-top:5px;color:#677a93;font-size:10.5px;line-height:1.45}
.quant-auth-brand{position:relative;z-index:1;display:flex;align-items:center;gap:11px}.quant-auth-foot{position:relative;z-index:1;display:flex;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid rgba(127,166,216,.1);color:#5f728b;font-family:var(--q-mono);font-size:9px;letter-spacing:.08em}
.quant-auth-panel{display:grid;place-items:center;padding:34px clamp(20px,4vw,64px)}
.quant-auth-card{width:100%;max-width:420px;padding:32px;border:1px solid rgba(127,166,216,.16);border-radius:24px;background:linear-gradient(145deg,rgba(17,29,47,.92),rgba(9,16,27,.92));box-shadow:var(--q-shadow),inset 0 1px 0 rgba(255,255,255,.055);backdrop-filter:blur(24px)}
.quant-auth-card-top{display:flex;justify-content:space-between;gap:10px;color:#637791;font-family:var(--q-mono);font-size:9px;letter-spacing:.12em}.quant-auth-secure{padding:4px 8px;border:1px solid rgba(168,244,91,.2);border-radius:999px;color:var(--q-lime);background:rgba(168,244,91,.07)}
.quant-auth-title{margin:25px 0 6px;color:#f2f8ff;font-size:29px;font-weight:800;letter-spacing:-.04em}.quant-auth-sub{margin:0;color:#71859e;font-size:12.5px;line-height:1.6}
.quant-auth-form{display:grid;gap:15px;margin-top:26px}.quant-field{display:grid;gap:7px;color:#8ea2bb;font-size:11.5px;font-weight:650}.quant-field input{width:100%;height:45px;padding:0 13px;border:1px solid rgba(127,166,216,.18);border-radius:12px;outline:0;color:#eaf4ff;background:rgba(255,255,255,.035);font:inherit;font-size:13px}.quant-field input:focus{border-color:rgba(76,219,255,.55);box-shadow:0 0 0 3px rgba(76,219,255,.09)}
.quant-auth-submit{width:100%;height:47px;margin-top:3px;border:1px solid transparent;border-radius:12px;color:#061018;background:linear-gradient(135deg,var(--q-cyan),#a6e9ff);box-shadow:0 10px 28px rgba(76,219,255,.2);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.quant-auth-submit:hover{filter:brightness(1.06);transform:translateY(-1px)}
.quant-auth-message{margin-top:17px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.55}.quant-auth-message.error{color:#ff9cac;background:rgba(255,102,125,.1);border:1px solid rgba(255,102,125,.18)}.quant-auth-message.ok{color:#bfffa1;background:rgba(168,244,91,.08);border:1px solid rgba(168,244,91,.17)}
.quant-auth-links{display:flex;justify-content:space-between;gap:14px;margin-top:20px;color:#647891;font-size:11.5px}.quant-auth-links a{color:var(--q-cyan);text-decoration:none;font-weight:700}.quant-auth-copyright{margin:22px 0 0;padding-top:15px;border-top:1px solid var(--q-line);color:#465a72;font-family:var(--q-mono);font-size:8.5px;text-align:center;letter-spacing:.08em}
/* dashboard */
.q-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;padding:34px;border:1px solid var(--q-line);border-radius:26px;overflow:hidden;background:radial-gradient(70% 100% at 93% 0%,rgba(76,219,255,.15),transparent 58%),radial-gradient(50% 90% at 5% 100%,rgba(168,244,91,.08),transparent 65%),linear-gradient(135deg,rgba(16,28,46,.9),rgba(8,15,26,.86));box-shadow:var(--q-shadow),inset 0 1px 0 rgba(255,255,255,.05)}
.q-hero::after{content:"";position:absolute;right:-80px;top:-100px;width:450px;height:450px;border:1px solid rgba(76,219,255,.1);border-radius:50%;box-shadow:0 0 0 54px rgba(76,219,255,.025),0 0 0 108px rgba(76,219,255,.018);pointer-events:none}
.q-hero h1{position:relative;z-index:1;margin:13px 0 10px;color:#f4f9ff;font-size:clamp(42px,5vw,72px);font-weight:850;line-height:1.02;letter-spacing:-.065em}.q-hero h1 em{color:var(--q-cyan);font-style:normal}.q-hero p{position:relative;z-index:1;max-width:650px;margin:0;color:#869bb5;font-size:14px;line-height:1.75}
.q-hero-tags{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.q-hero-tags span{padding:6px 10px;border:1px solid var(--q-line);border-radius:999px;color:#8ea2bb;background:rgba(255,255,255,.03);font-family:var(--q-mono);font-size:9px;letter-spacing:.05em}
.q-market-card{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:20px;border:1px solid rgba(76,219,255,.16);border-radius:20px;background:rgba(4,10,18,.42)}.q-market-card small{color:#61768f;font-family:var(--q-mono);font-size:9px;letter-spacing:.12em}.q-market-card b{margin-top:10px;color:#f5faff;font-family:var(--q-mono);font-size:34px;font-weight:700}.q-market-card span{margin-top:4px;color:#8095ad;font-size:11.5px}
.q-market-bar{display:flex;height:6px;margin-top:17px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.06)}.q-market-bar i{display:block;height:100%}.q-market-bar .up{background:var(--q-red)}.q-market-bar .down{background:var(--q-green)}
.q-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:15px}.q-stat{padding:18px;border:1px solid var(--q-line);border-radius:18px;background:rgba(13,23,38,.67);box-shadow:0 12px 30px rgba(0,5,14,.22)}.q-stat-label{color:#6e829b;font-family:var(--q-mono);font-size:9px;letter-spacing:.08em}.q-stat-value{display:block;margin-top:8px;color:#f0f8ff;font-family:var(--q-mono);font-size:28px;font-weight:750}.q-stat-foot{display:block;margin-top:5px;color:#51657e;font-size:10.5px}
.q-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:15px;margin-top:15px}.q-panel{padding:21px;border:1px solid var(--q-line);border-radius:21px;background:rgba(13,23,38,.68);box-shadow:0 16px 38px rgba(0,5,14,.22)}.q-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.q-panel-head h2{margin:0;color:#eaf5ff;font-size:16px;font-weight:760}.q-panel-head p{margin:4px 0 0;color:#637790;font-size:10.5px}.q-panel-head a{color:var(--q-cyan);font-size:10.5px;font-weight:700;text-decoration:none}
.q-table{width:100%;border-collapse:collapse;font-size:11.5px}.q-table th{padding:8px 9px;border-bottom:1px solid var(--q-line);color:#60758e;font-family:var(--q-mono);font-size:8.5px;text-align:left;letter-spacing:.07em}.q-table td{padding:11px 9px;border-bottom:1px solid rgba(127,166,216,.075);color:#9db1c8}.q-table tr:last-child td{border-bottom:0}.q-table .code{color:#d8eaff;font-family:var(--q-mono);font-weight:650}.q-table .pct-up{color:var(--q-red);font-family:var(--q-mono)}.q-table .pct-down{color:var(--q-green);font-family:var(--q-mono)}
.q-actions{display:grid;gap:9px}.q-action{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--q-line);border-radius:13px;color:inherit;background:rgba(255,255,255,.025);text-decoration:none;transition:transform .2s ease,background .2s ease,border-color .2s ease}.q-action:hover{transform:translateY(-2px);border-color:rgba(76,219,255,.23);background:rgba(76,219,255,.055)}.q-action-ico{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--q-cyan);background:rgba(76,219,255,.09)}.q-action b{display:block;color:#dcecff;font-size:11.5px}.q-action small{display:block;margin-top:2px;color:#5f738c;font-size:9.5px}.q-action span:last-child{color:#58708a}
.q-strategy-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.q-strategy{padding:13px;border:1px solid var(--q-line);border-radius:13px;background:rgba(255,255,255,.025)}.q-strategy small{display:block;color:#677c94;font-size:9.5px}.q-strategy b{display:block;margin-top:4px;color:var(--q-lime);font-family:var(--q-mono);font-size:20px}
/* admin */
.q-admin-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:28px 30px;border:1px solid var(--q-line);border-radius:24px;background:radial-gradient(65% 100% at 94% 0%,rgba(155,123,255,.16),transparent 57%),linear-gradient(135deg,rgba(16,28,46,.9),rgba(8,15,26,.86));box-shadow:var(--q-shadow)}.q-admin-hero h1{margin:10px 0 7px;color:#f3f9ff;font-size:clamp(34px,4vw,54px);font-weight:820;letter-spacing:-.055em}.q-admin-hero p{margin:0;color:#7d92ab;font-size:13px}.q-admin-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid rgba(168,244,91,.18);border-radius:999px;color:var(--q-lime);background:rgba(168,244,91,.06);font-size:11px;white-space:nowrap}
.q-admin-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:15px;margin-top:15px}.q-user-table{width:100%;border-collapse:collapse;font-size:11.5px}.q-user-table th{padding:8px;border-bottom:1px solid var(--q-line);color:#627790;font-family:var(--q-mono);font-size:8.5px;text-align:left}.q-user-table td{padding:11px 8px;border-bottom:1px solid rgba(127,166,216,.075);color:#9cafc5}.q-user-table tr:last-child td{border-bottom:0}
.q-auth-status{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:9.5px;font-weight:700}.q-auth-status.active{color:var(--q-lime);background:rgba(168,244,91,.08)}.q-auth-status.pending{color:var(--q-amber);background:rgba(255,198,92,.08)}.q-auth-status.disabled{color:var(--q-red);background:rgba(255,102,125,.08)}
.q-user-actions{display:flex;flex-wrap:wrap;gap:4px}.q-user-actions form{display:inline}.q-mini-btn{height:27px;padding:0 8px;border:1px solid var(--q-line);border-radius:8px;color:#8fa4bd;background:rgba(255,255,255,.025);font:inherit;font-size:9.5px;cursor:pointer}.q-mini-btn:hover{color:var(--q-cyan);border-color:rgba(76,219,255,.26)}.q-mini-btn.danger{color:#ff8da0}.q-reset-form{display:inline-flex;gap:4px;align-items:center}.q-reset-form input{width:105px;height:27px;padding:0 7px;border:1px solid var(--q-line);border-radius:8px;color:var(--q-ink);background:rgba(255,255,255,.03);font:inherit;font-size:9.5px}
.q-admin-ops{display:grid;gap:9px}.q-admin-op{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--q-line);border-radius:12px;background:rgba(255,255,255,.025)}.q-admin-op b{display:block;color:#d8e8fa;font-size:11px}.q-admin-op small{display:block;margin-top:2px;color:#5d718a;font-size:9.5px}.q-admin-op button,.q-admin-op a{flex:0 0 auto;text-decoration:none}
/* kline modal */
#klineOverlay{background:rgba(2,6,12,.78)!important;backdrop-filter:blur(14px)}#klineOverlay>div{background:#0d1726!important;border:1px solid rgba(76,219,255,.17);box-shadow:0 28px 80px rgba(0,0,0,.55)!important}#klineTitle{color:#eaf5ff!important}#klineOverlay button{color:#9eb4cd!important;background:rgba(255,255,255,.045)!important;border-color:rgba(127,166,216,.16)!important}#klineInfo{color:#91a8c2!important}#klineInfo b{color:#eaf5ff}#klineSearchInput{color:#e8f3ff!important;background:rgba(255,255,255,.04)!important;border-color:rgba(127,166,216,.17)!important}#klineSearchResults{background:#111e31!important;border-color:rgba(127,166,216,.17)!important}.kline-result{color:#b8cbe0!important;border-color:rgba(127,166,216,.08)!important}.kline-result:hover{background:rgba(76,219,255,.06)!important}.kperiod{color:#8ca1ba!important;background:rgba(255,255,255,.03)!important;border-color:rgba(127,166,216,.16)!important}.kperiod:hover{border-color:var(--q-cyan)!important}
.q-reveal{opacity:0;transform:translateY(15px);transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1)}.q-reveal.is-visible{opacity:1;transform:none}
@media(max-width:1120px){.quant-nav{gap:12px}.quant-nav-links a{padding:8px 9px}.q-hero{grid-template-columns:1fr}.q-market-card{max-width:340px}.q-grid,.q-admin-grid{grid-template-columns:1fr}}
@media(max-width:900px){.quant-auth-shell{grid-template-columns:1fr;padding:0}.quant-auth-visual{display:none}.quant-auth-panel{min-height:100vh;padding:24px 15px;background:radial-gradient(circle at 50% 0%,rgba(76,219,255,.12),transparent 28rem),#070c14}.quant-nav-toggle{display:block}.quant-nav-links{position:absolute;top:68px;left:12px;right:12px;display:none;flex-direction:column;align-items:stretch;padding:10px;border:1px solid var(--q-line);border-radius:16px;background:rgba(6,12,21,.97);box-shadow:var(--q-shadow)}.quant-nav-links.open{display:flex}.quant-nav-links a{padding:11px 12px}.quant-nav-user .quant-user-chip{display:none}.q-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.quant-nav{min-height:62px;padding:9px 12px}.quant-brand small{display:none}.quant-nav-user>a:not(:last-child){display:none}.quant-main{padding:14px 10px 50px}.q-hero{padding:23px 19px;border-radius:20px}.q-hero h1{font-size:42px}.q-stats{gap:9px}.q-stat{padding:14px}.q-stat-value{font-size:23px}.q-panel{padding:16px}.q-strategy-row{grid-template-columns:1fr}.q-admin-hero{flex-direction:column;padding:21px}.q-user-table{min-width:680px}.q-admin-users{overflow-x:auto}}
@media(prefers-reduced-motion:reduce){.quant-shell *,.quant-auth-page *{transition:none!important;animation:none!important;scroll-behavior:auto!important}.q-reveal{opacity:1;transform:none}}

/* ── 指数轮播 ─────────────────────────────────────────────── */
.q-index-widget{position:relative;z-index:1;display:flex;flex-direction:column;min-height:255px;padding:16px;border:1px solid rgba(95,231,255,.16);border-radius:20px;background:linear-gradient(160deg,rgba(5,13,24,.82),rgba(10,24,38,.62));box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 36px rgba(0,4,14,.22);overflow:hidden}
.q-index-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.q-index-head small{display:block;color:#5b718b;font-family:var(--q-mono);font-size:8px;letter-spacing:.13em}
.q-index-head b{display:block;margin-top:5px;color:#eaf6ff;font-size:17px}
.q-index-quote{text-align:right}.q-index-quote strong{display:block;color:#f4faff;font-family:var(--q-mono);font-size:24px;line-height:1}.q-index-quote span{display:block;margin-top:5px;font-family:var(--q-mono);font-size:11px;font-weight:700}.q-index-quote .up{color:var(--q-red)}.q-index-quote .down{color:var(--q-green)}
#indexChart{width:100%;height:145px;margin-top:7px;cursor:zoom-in}
.q-index-tabs{display:flex;gap:5px;margin-top:5px}.q-index-tabs button{flex:1;padding:6px 4px;border:1px solid rgba(127,166,216,.12);border-radius:8px;color:#61758e;background:rgba(255,255,255,.025);font:inherit;font-size:9px;cursor:pointer;white-space:nowrap}.q-index-tabs button.active{color:#071018;background:var(--q-cyan);border-color:var(--q-cyan);font-weight:800}
.q-index-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 8px;margin-top:7px;color:#546a83;font-family:var(--q-mono);font-size:8px}.q-index-hint{color:var(--q-cyan);font-weight:700}.q-index-hint:hover{text-decoration:underline}
.q-index-widget.is-fallback #indexChart{display:none}

/* ── 股票筛选条件 / 按钮可读性 ────────────────────────────── */
.quant-shell .filter-card{background:linear-gradient(145deg,rgba(16,27,44,.83),rgba(9,16,27,.76))!important;border:1px solid var(--q-line)!important;border-radius:18px!important;box-shadow:var(--q-shadow)!important}
.quant-shell .fgroup-title{color:#d8e8f8!important}.quant-shell .fgroup-title i{color:var(--q-cyan)!important}
.quant-shell .cond-item label{background:rgba(255,255,255,.04)!important;border:1px solid rgba(127,166,216,.18)!important;color:#a9bdd4!important;font-weight:600!important;box-shadow:none!important}
.quant-shell .cond-item label:hover{border-color:rgba(95,231,255,.38)!important;color:#e1f6ff!important;background:rgba(95,231,255,.07)!important}
.quant-shell .cond-item input:checked+label{background:linear-gradient(135deg,var(--q-cyan),#9feaff)!important;border-color:var(--q-cyan)!important;color:#061018!important;font-weight:800!important;box-shadow:0 8px 20px rgba(95,231,255,.18)!important}
.quant-shell .btn-screen{color:#061018!important;background:linear-gradient(135deg,var(--q-lime),var(--q-cyan))!important;border:0!important;box-shadow:0 9px 24px rgba(95,231,255,.16)!important}
.quant-shell .btn-screen:hover{filter:brightness(1.05);transform:translateY(-1px)}
.quant-shell .btn-screen:disabled{opacity:.55;cursor:not-allowed}
.quant-shell .btn-clear{color:#9eb4ca!important;background:rgba(255,255,255,.035)!important;border:1px solid rgba(127,166,216,.18)!important}
.quant-shell .result-summary{color:#8da3bb!important}.quant-shell .result-summary b{color:var(--q-lime)!important}
.quant-shell .muted-tip{color:#647990!important}.quant-shell .head-note{color:#71879e!important}

/* ── 我的自选 / 策略分析 ─────────────────────────────────── */
.watchlist-page{max-width:1240px;margin:0 auto}.q-watch-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:27px 29px;border:1px solid var(--q-line);border-radius:24px;background:radial-gradient(65% 100% at 94% 0%,rgba(168,244,91,.13),transparent 58%),linear-gradient(135deg,rgba(16,28,46,.9),rgba(8,15,26,.86));box-shadow:var(--q-shadow)}
.q-watch-hero h1{margin:10px 0 8px;color:#f3f9ff;font-size:clamp(34px,4vw,52px);font-weight:820;letter-spacing:-.055em}.q-watch-hero p{margin:0;color:#7e93ac;font-size:13px;line-height:1.7}
.q-watch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.q-watch-actions button{height:36px;padding:0 14px;border:1px solid rgba(95,231,255,.2);border-radius:10px;color:#c7ecf7;background:rgba(95,231,255,.055);font:inherit;font-size:11px;font-weight:700;cursor:pointer}.q-watch-actions button.primary{color:#061018;background:linear-gradient(135deg,var(--q-lime),var(--q-cyan));border:0}.q-watch-actions button:hover{transform:translateY(-1px)}
.q-watch-count{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid rgba(168,244,91,.16);border-radius:14px;background:rgba(168,244,91,.055);white-space:nowrap}.q-watch-count b{color:#eaffd7;font-family:var(--q-mono);font-size:26px}.q-watch-count span{color:#799067;font-size:10px}
.q-watch-table{width:100%;border-collapse:collapse;font-size:11.5px}.q-watch-table th{padding:8px 9px;border-bottom:1px solid var(--q-line);color:#60758e;font-family:var(--q-mono);font-size:8.5px;text-align:left}.q-watch-table td{padding:11px 9px;border-bottom:1px solid rgba(127,166,216,.075);color:#9db1c8}.q-watch-table tr:last-child td{border-bottom:0}.q-watch-code{color:#e1f1ff;font-family:var(--q-mono);font-weight:700}.q-watch-actions-cell{display:flex;gap:5px;flex-wrap:wrap}.q-watch-actions-cell button{padding:4px 8px;border:1px solid var(--q-line);border-radius:7px;color:#8fa6bd;background:rgba(255,255,255,.025);font:inherit;font-size:9px;cursor:pointer}.q-watch-actions-cell button:hover{color:var(--q-cyan);border-color:rgba(95,231,255,.3)}.q-watch-actions-cell button.danger{color:#ff8ca0}
.q-analysis-results{display:grid;gap:12px;margin-top:15px}.q-analysis-card{padding:18px;border:1px solid var(--q-line);border-radius:18px;background:linear-gradient(145deg,rgba(15,28,47,.84),rgba(8,16,28,.8));box-shadow:0 14px 30px rgba(0,5,16,.25)}.q-analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.q-analysis-head h3{margin:0;color:#e8f6ff;font-size:16px}.q-analysis-head small{display:block;margin-top:3px;color:#61768f;font-size:10px}.q-analysis-score{color:var(--q-lime);font-family:var(--q-mono);font-size:22px;font-weight:800}.q-analysis-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.q-analysis-meta span{padding:5px 8px;border:1px solid var(--q-line);border-radius:999px;color:#7f95ad;font-size:9.5px}.q-analysis-summary{margin:12px 0 0;color:#a8bdd1;font-size:11.5px}.q-signal-list{display:grid;gap:6px;margin-top:11px}.q-signal{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.025);color:#70849c;font-size:10px}.q-signal.hit{border:1px solid rgba(168,244,91,.16);background:rgba(168,244,91,.06);color:#bfffa0}.q-signal b{color:#dfefff;font-size:10.5px}.q-analysis-empty{padding:28px;border:1px dashed var(--q-line-strong);border-radius:14px;color:#5e738b;text-align:center;font-size:11px}
@media(max-width:900px){.q-watch-hero{flex-direction:column}.q-watch-count{align-self:flex-start}.q-watch-table{min-width:720px}.q-watch-panel{overflow-x:auto}}
@media(max-width:620px){.q-index-widget{min-height:230px}#indexChart{height:125px}.q-watch-hero{padding:21px}.q-analysis-card{padding:15px}}


/* ── 背景主题选择 ──────────────────────────────────────────── */
.quant-theme-picker{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid rgba(127,166,216,.14);border-radius:999px;color:#7f95ae;background:rgba(255,255,255,.035);font-size:10px}
.quant-theme-picker i{font-style:normal;color:var(--q-cyan)}
.quant-theme-picker select{border:0;outline:0;color:inherit;background:transparent;font:inherit;font-weight:650;cursor:pointer}
.quant-theme-picker option{color:#1a2432;background:#fff}

/* ── 暖黄护眼主题 ─────────────────────────────────────────── */
html[data-theme="warm"]{
  --q-ink:#3f3423;--q-muted:#786747;--q-soft:#9a865f;--q-line:rgba(160,120,46,.17);--q-line-strong:rgba(171,125,38,.27);
  --q-cyan:#b27618;--q-blue:#a96f16;--q-lime:#5f8e20;--q-red:#cf4f60;--q-green:#218c69;
  --q-shadow:0 20px 54px rgba(104,76,28,.1);color-scheme:light;
}
html[data-theme="warm"] body.quant-shell{
  color:#3f3423!important;
  background:radial-gradient(ellipse 65% 42% at 8% -5%,rgba(236,190,93,.2),transparent 60%),radial-gradient(ellipse 50% 38% at 95% 5%,rgba(218,166,69,.11),transparent 58%),linear-gradient(160deg,#fbf6e9 0%,#f5ebd0 52%,#efe1bb 100%)!important;
}
html[data-theme="warm"] body.quant-shell::before{background-image:linear-gradient(rgba(144,106,39,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(144,106,39,.045) 1px,transparent 1px)}
html[data-theme="warm"] body.quant-shell::after{background:radial-gradient(circle,rgba(213,163,63,.08),transparent 68%)}
html[data-theme="warm"] .quant-nav{background:rgba(42,33,19,.9)!important;border-bottom-color:rgba(215,174,92,.16)!important}
html[data-theme="warm"] .quant-nav-links a.active{color:#fff4d7!important;background:rgba(222,174,70,.12)!important;border-color:rgba(222,174,70,.2)!important}
html[data-theme="warm"] .quant-nav-links a.active::before{background:#f0bd5a;box-shadow:0 0 9px rgba(240,189,90,.5)}
html[data-theme="warm"] .q-hero{background:radial-gradient(65% 100% at 94% 0%,rgba(237,190,90,.22),transparent 58%),linear-gradient(135deg,rgba(255,253,246,.96),rgba(249,240,217,.9))!important;border-color:rgba(196,153,66,.18)!important;box-shadow:0 18px 45px rgba(104,76,28,.1)!important}
html[data-theme="warm"] .q-hero h1{color:#4a3920!important}
html[data-theme="warm"] .q-hero p{color:#887451!important}
html[data-theme="warm"] .q-hero-tags span{color:#806b47!important;background:rgba(255,252,244,.75)!important;border-color:#e5d4ac!important}
html[data-theme="warm"] .q-index-widget{background:linear-gradient(160deg,rgba(255,252,244,.94),rgba(249,239,214,.82))!important;border-color:#e5d4ac!important;box-shadow:0 12px 28px rgba(104,76,28,.08)!important}
html[data-theme="warm"] .q-index-head b{color:#4b3a20!important}
html[data-theme="warm"] .q-index-head small,html[data-theme="warm"] .q-index-meta{color:#9a855e!important}
html[data-theme="warm"] .q-index-quote strong{color:#4b3a20!important}
html[data-theme="warm"] .q-index-tabs button{color:#8a744f!important;background:#fffaf0!important;border-color:#e4d3ae!important}
html[data-theme="warm"] .q-index-tabs button.active{color:#fff!important;background:#b77a1d!important;border-color:#b77a1d!important}
html[data-theme="warm"] .q-stat,html[data-theme="warm"] .q-panel,html[data-theme="warm"] .q-analysis-card,html[data-theme="warm"] .q-watch-hero{background:rgba(255,253,247,.9)!important;border-color:#e5d5b4!important;box-shadow:0 12px 30px rgba(104,76,28,.075)!important}
html[data-theme="warm"] .q-stat-label,html[data-theme="warm"] .q-stat-foot,html[data-theme="warm"] .q-panel-head p,html[data-theme="warm"] .q-analysis-head small,html[data-theme="warm"] .q-watch-hero p{color:#927c56!important}
html[data-theme="warm"] .q-stat-value,html[data-theme="warm"] .q-panel-head h2,html[data-theme="warm"] .q-analysis-head h3,html[data-theme="warm"] .q-watch-hero h1{color:#4a3920!important}
html[data-theme="warm"] .q-table th,html[data-theme="warm"] .q-watch-table th{color:#846d46!important;border-color:#e8d9b8!important}
html[data-theme="warm"] .q-table td,html[data-theme="warm"] .q-watch-table td{border-color:#eee2c9!important;color:#6f5b3b!important}
html[data-theme="warm"] .q-table .code,html[data-theme="warm"] .q-watch-code{color:#765019!important}
html[data-theme="warm"] .q-action,html[data-theme="warm"] .q-admin-op,html[data-theme="warm"] .q-strategy{background:#fdf8ec!important;border-color:#e7d7b5!important}
html[data-theme="warm"] .q-action b,html[data-theme="warm"] .q-admin-op b{color:#4b3b23!important}
html[data-theme="warm"] .q-action small,html[data-theme="warm"] .q-admin-op small{color:#927c57!important}
html[data-theme="warm"] .q-admin-op .q-auth-status{color:#477a1b!important;background:#edf6dc!important}
html[data-theme="warm"] .q-auth-status.pending{color:#99650f!important;background:#fff1d3!important}
html[data-theme="warm"] .q-auth-status.disabled{color:#b5484d!important;background:#fde8e8!important}
html[data-theme="warm"] .q-analysis-meta span,html[data-theme="warm"] .q-signal{background:#fdf8ec!important;border-color:#e7d7b5!important;color:#7e6947!important}
html[data-theme="warm"] .q-signal.hit{background:#f1f7e4!important;border-color:#d9e7ba!important;color:#4f761f!important}
html[data-theme="warm"] .q-signal b{color:#4e3c22!important}
html[data-theme="warm"] .q-analysis-summary{color:#6d593b!important}
html[data-theme="warm"] .q-watch-actions button,html[data-theme="warm"] .q-mini-btn{color:#725b37!important;background:#fffaf0!important;border-color:#e4d3ad!important}
html[data-theme="warm"] .q-watch-actions button.primary{color:#fff!important;background:linear-gradient(135deg,#d3972e,#b77718)!important;border:0!important}
html[data-theme="warm"] .q-watch-count{background:#edf6dc!important;border-color:#d5e6b4!important}
html[data-theme="warm"] .q-watch-count b{color:#4f781d!important}
html[data-theme="warm"] .q-index-widget.is-fallback{background:#fffaf0!important}

/* 暖黄主题覆盖独立业务页 */
html[data-theme="warm"] .quant-shell{color:#3f3423!important}
html[data-theme="warm"] .quant-shell .container,html[data-theme="warm"] .quant-shell .container-fluid{background:transparent!important}
html[data-theme="warm"] .quant-shell .card,html[data-theme="warm"] .quant-shell .strategy-card,html[data-theme="warm"] .quant-shell .filter-card,html[data-theme="warm"] .quant-shell .table-card,html[data-theme="warm"] .quant-shell .date-picker,html[data-theme="warm"] .quant-shell .chart-wrapper,html[data-theme="warm"] .quant-shell .card-form,html[data-theme="warm"] .quant-shell .tool-result{background:linear-gradient(145deg,rgba(255,253,247,.96),rgba(250,242,223,.9))!important;border-color:#e5d5b4!important;box-shadow:0 12px 30px rgba(104,76,28,.075)!important}
html[data-theme="warm"] .quant-shell .card-header{background:linear-gradient(100deg,#f2dfb5,#f8eed9)!important;border-bottom-color:#e5d5b4!important}
html[data-theme="warm"] .quant-shell .card-header span,html[data-theme="warm"] .quant-shell h1,html[data-theme="warm"] .quant-shell h2,html[data-theme="warm"] .quant-shell h3,html[data-theme="warm"] .quant-shell h4{color:#4a3920!important}
html[data-theme="warm"] .quant-shell .text-muted,html[data-theme="warm"] .quant-shell .head-note,html[data-theme="warm"] .quant-shell .muted-tip,html[data-theme="warm"] .quant-shell .result-summary{color:#8f7a54!important}
html[data-theme="warm"] .quant-shell .table{background:transparent!important}
html[data-theme="warm"] .quant-shell .table> :not(caption)>*>*{color:#5f4d31!important;background-color:transparent!important;border-color:#eee2c9!important}
html[data-theme="warm"] .quant-shell .table thead th{color:#806941!important;background:#f7edd7!important;border-bottom-color:#decba4!important}
html[data-theme="warm"] .quant-shell .table tbody tr:nth-of-type(even){background:#fdf8ed!important}
html[data-theme="warm"] .quant-shell .table tbody tr:hover{background:rgba(47,125,87,.12)!important}
html[data-theme="warm"] .quant-shell .table tbody tr:hover td{color:#4a3920!important}
html[data-theme="warm"] .quant-shell .form-control,html[data-theme="warm"] .quant-shell .form-select,html[data-theme="warm"] .quant-shell input[type=text],html[data-theme="warm"] .quant-shell input[type=number],html[data-theme="warm"] .quant-shell input[type=date]{color:#4a3920!important;background:#fffdf8!important;border-color:#decba4!important}
html[data-theme="warm"] .quant-shell label{color:#786747!important}
html[data-theme="warm"] .quant-shell .btn-clear{color:#725b37!important;background:#fffaf0!important;border-color:#e3d1aa!important}
html[data-theme="warm"] .quant-shell .btn-primary,html[data-theme="warm"] .quant-shell .btn-screen{color:#fff!important;background:linear-gradient(135deg,#a9630d,#764209)!important;border:0!important}
html[data-theme="warm"] .quant-shell .cond-item label{color:#765f3b!important;background:#fffdf8!important;border-color:#e4d3ae!important}
html[data-theme="warm"] .quant-shell .cond-item input:checked+label{color:#fff!important;background:#b9791b!important;border-color:#b9791b!important;box-shadow:0 7px 18px rgba(173,112,20,.17)!important}
html[data-theme="warm"] .quant-shell .btn-kline{color:#8c5d12!important;background:#fffaf0!important;border-color:#d7b97b!important}
html[data-theme="warm"] .quant-shell .flatpickr-calendar{background:#fffdf8;border-color:#e0cca3}
html[data-theme="warm"] .quant-shell .flatpickr-day{color:#6f5d3c}html[data-theme="warm"] .quant-shell .flatpickr-day:hover,html[data-theme="warm"] .quant-shell .flatpickr-day.selected{color:#fff;background:#b9791b;border-color:#b9791b}
html[data-theme="warm"] .quant-shell .flatpickr-months .flatpickr-month,html[data-theme="warm"] .quant-shell .flatpickr-current-month,html[data-theme="warm"] .quant-shell .flatpickr-weekday{color:#7a633d;fill:#7a633d}

/* ── Boss 绿主题 ───────────────────────────────────────────── */
html[data-theme="bossgreen"]{--q-ink:#1f3a2e;--q-muted:#5d7468;--q-soft:#82998d;--q-line:rgba(36,117,79,.14);--q-line-strong:rgba(36,117,79,.23);--q-violet:#6b5aa0;--q-cyan:#24754f;--q-blue:#2f7d57;--q-lime:#2f7d4f;--q-red:#b94f5b;--q-green:#167a54;--q-shadow:0 18px 48px rgba(24,74,51,.1);color-scheme:light}
html[data-theme="bossgreen"] body.quant-shell{color:#1f3a2e!important;background:radial-gradient(ellipse 65% 42% at 8% -5%,rgba(123,181,146,.18),transparent 60%),radial-gradient(ellipse 50% 38% at 95% 5%,rgba(157,199,170,.12),transparent 58%),linear-gradient(160deg,#f2f9f4 0%,#e7f2eb 52%,#dcece1 100%)!important}
html[data-theme="bossgreen"] body.quant-shell::before{background-image:linear-gradient(rgba(45,113,78,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(45,113,78,.045) 1px,transparent 1px)}
html[data-theme="bossgreen"] body.quant-shell::after{background:radial-gradient(circle,rgba(62,145,101,.09),transparent 68%)}
html[data-theme="bossgreen"] .q-hero{background:radial-gradient(65% 100% at 94% 0%,rgba(105,180,137,.17),transparent 58%),linear-gradient(135deg,rgba(255,255,255,.95),rgba(235,246,239,.92))!important;border-color:rgba(123,157,184,.18)!important;box-shadow:0 18px 45px rgba(43,58,74,.08)!important}
html[data-theme="bossgreen"] .q-hero h1{color:#1f3a2e!important}html[data-theme="bossgreen"] .q-hero p{color:#627b6d!important}html[data-theme="bossgreen"] .q-hero-tags span{color:#627b6d!important;background:rgba(255,255,255,.75)!important;border-color:#d4e4da!important}
html[data-theme="bossgreen"] .q-index-widget,html[data-theme="bossgreen"] .q-stat,html[data-theme="bossgreen"] .q-panel,html[data-theme="bossgreen"] .q-analysis-card,html[data-theme="bossgreen"] .q-watch-hero{background:rgba(255,255,255,.9)!important;border-color:#d4e4da!important;box-shadow:0 12px 30px rgba(43,58,74,.07)!important}
html[data-theme="bossgreen"] .q-index-head b,html[data-theme="bossgreen"] .q-index-quote strong,html[data-theme="bossgreen"] .q-stat-value,html[data-theme="bossgreen"] .q-panel-head h2,html[data-theme="bossgreen"] .q-analysis-head h3,html[data-theme="bossgreen"] .q-watch-hero h1{color:#20372d!important}
html[data-theme="bossgreen"] .q-stat-label,html[data-theme="bossgreen"] .q-stat-foot,html[data-theme="bossgreen"] .q-panel-head p,html[data-theme="bossgreen"] .q-analysis-head small,html[data-theme="bossgreen"] .q-watch-hero p{color:#748b7f!important}
html[data-theme="bossgreen"] .q-action,html[data-theme="bossgreen"] .q-admin-op,html[data-theme="bossgreen"] .q-strategy,html[data-theme="bossgreen"] .q-analysis-meta span,html[data-theme="bossgreen"] .q-signal{background:#f2f9f4!important;border-color:#d4e4da!important;color:#5e7869!important}
html[data-theme="bossgreen"] .q-table th,html[data-theme="bossgreen"] .q-watch-table th{color:#637d6e!important;border-color:#dbe8df!important}
html[data-theme="bossgreen"] .q-table td,html[data-theme="bossgreen"] .q-watch-table td{border-color:#e5efe8!important;color:#5b7566!important}
html[data-theme="bossgreen"] .quant-shell .card,html[data-theme="bossgreen"] .quant-shell .strategy-card,html[data-theme="bossgreen"] .quant-shell .filter-card,html[data-theme="bossgreen"] .quant-shell .table-card,html[data-theme="bossgreen"] .quant-shell .date-picker,html[data-theme="bossgreen"] .quant-shell .chart-wrapper,html[data-theme="bossgreen"] .quant-shell .card-form,html[data-theme="bossgreen"] .quant-shell .tool-result{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(240,249,243,.92))!important;border-color:#d4e4da!important;box-shadow:0 12px 30px rgba(24,74,51,.07)!important}
html[data-theme="bossgreen"] .quant-shell .card-header{background:linear-gradient(100deg,#dcefe3,#edf7f0)!important;border-bottom-color:#d4e4da!important}
html[data-theme="bossgreen"] .quant-shell h1,html[data-theme="bossgreen"] .quant-shell h2,html[data-theme="bossgreen"] .quant-shell h3,html[data-theme="bossgreen"] .quant-shell .card-header span{color:#20372d!important}
html[data-theme="bossgreen"] .quant-shell .table> :not(caption)>*>*{color:#5d6d7e!important;background-color:transparent!important;border-color:#e5efe8!important}
html[data-theme="bossgreen"] .quant-shell .table thead th{color:#637d6e!important;background:#edf6f0!important}
html[data-theme="bossgreen"] .quant-shell .form-control,html[data-theme="bossgreen"] .quant-shell input,html[data-theme="bossgreen"] .quant-shell select{color:#1f3a2e!important;background:#fff!important;border-color:#d0e1d7!important}
html[data-theme="bossgreen"] .quant-shell .cond-item label{color:#5b7467!important;background:#f2f9f4!important;border-color:#d0e1d7!important}
html[data-theme="bossgreen"] .quant-shell .cond-item input:checked+label{color:#fff!important;background:#2f7d57!important;border-color:#2f7d57!important}
html[data-theme="bossgreen"] .quant-shell .btn-screen,html[data-theme="bossgreen"] .quant-shell .btn-primary{color:#fff!important;background:#2f7d57!important;border:0!important}
html[data-theme="bossgreen"] .quant-nav{background:rgba(8,32,24,.92)!important;border-bottom-color:rgba(84,190,141,.18)!important}
html[data-theme="bossgreen"] .quant-shell .table tbody tr:hover{background:rgba(47,125,87,.13)!important}
html[data-theme="bossgreen"] .quant-shell .table tbody tr:hover td{color:#1f3a2e!important}

/* ── 登录 / 注册主题与主题切换 ───────────────────────────── */
.quant-auth-brand-copy b{display:block;color:#f4f9ff;letter-spacing:.12em}
.quant-auth-brand-copy small{display:block;color:#60738c;font-family:var(--q-mono);font-size:8px;letter-spacing:.16em}
.quant-auth-panel{position:relative}
.quant-auth-theme{position:absolute;z-index:3;top:22px;right:26px;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--q-line);border-radius:999px;color:var(--q-muted);background:rgba(255,255,255,.035);font-family:var(--q-mono);font-size:9px;letter-spacing:.08em}
.quant-auth-theme select{border:0;outline:0;color:inherit;background:transparent;font:inherit;font-weight:700;cursor:pointer}
.quant-auth-theme option{color:#1a2432;background:#fff}
html[data-theme="warm"] body.quant-auth-page{color:#3f3423;background:linear-gradient(160deg,#fbf6e9,#efe1bb)}
html[data-theme="warm"] .quant-auth-shell{background:radial-gradient(ellipse 70% 45% at 90% 5%,rgba(236,190,93,.2),transparent 34rem),linear-gradient(155deg,#f8f0dc,#ead9b0)}
html[data-theme="warm"] .quant-auth-visual{border-color:#dfcaa0;background:radial-gradient(ellipse 75% 70% at 90% 15%,rgba(225,174,65,.2),transparent 55%),linear-gradient(145deg,#fffdf7,#f3e7c8);box-shadow:0 30px 80px rgba(104,76,28,.15),inset 0 1px 0 #fff}
html[data-theme="warm"] .quant-auth-visual::before{background:linear-gradient(rgba(145,103,34,.05) 1px,transparent 1px) 0 0/54px 54px,linear-gradient(90deg,rgba(145,103,34,.05) 1px,transparent 1px) 0 0/54px 54px}
html[data-theme="warm"] .quant-auth-visual::after{background:radial-gradient(circle,rgba(224,172,62,.2),transparent 67%)}
html[data-theme="warm"] .quant-auth-brand-copy b{color:#4a3920}
html[data-theme="warm"] .quant-auth-brand-copy small{color:#9a855e}
html[data-theme="warm"] .quant-auth-copy h1{color:#4a3920}
html[data-theme="warm"] .quant-auth-copy h1 em{color:#b77718}
html[data-theme="warm"] .quant-auth-copy p{color:#806d4c}
html[data-theme="warm"] .quant-auth-feature{border-color:#e5d4ac;background:rgba(255,253,247,.72)}
html[data-theme="warm"] .quant-auth-feature b{color:#4a3920}
html[data-theme="warm"] .quant-auth-feature small{color:#927c57}
html[data-theme="warm"] .quant-auth-foot{border-top-color:#dfcaa0;color:#9a855e}
html[data-theme="warm"] .quant-auth-card{border-color:#e1cea7;background:linear-gradient(145deg,rgba(255,253,247,.96),rgba(249,240,218,.95));box-shadow:0 24px 65px rgba(104,76,28,.15),inset 0 1px 0 #fff}
html[data-theme="warm"] .quant-auth-card-top{color:#9a855e}
html[data-theme="warm"] .quant-auth-secure{color:#5f8e20;background:#f0f7e4;border-color:#d7e6bb}
html[data-theme="warm"] .quant-auth-title{color:#4a3920}
html[data-theme="warm"] .quant-auth-sub{color:#927c57}
html[data-theme="warm"] .quant-field{color:#806d4c}
html[data-theme="warm"] .quant-field input{color:#3f3423;background:#fffdf8;border-color:#dfcaa0}
html[data-theme="warm"] .quant-field input:focus{border-color:#bd851f;box-shadow:0 0 0 3px rgba(189,133,31,.11)}
html[data-theme="warm"] .quant-auth-submit{color:#fff;background:linear-gradient(135deg,#a9630d,#764209);box-shadow:0 10px 28px rgba(118,74,12,.22)}
html[data-theme="warm"] .quant-auth-links{color:#927c57}
html[data-theme="warm"] .quant-auth-links a{color:#a56812}
html[data-theme="warm"] .quant-auth-copyright{border-top-color:#e3d2ae;color:#a08b65}
html[data-theme="warm"] .quant-auth-theme{border-color:#dfcaa0;color:#806d4c;background:rgba(255,253,247,.82)}
html[data-theme="bossgreen"] body.quant-auth-page{color:#1f3a2e;background:linear-gradient(160deg,#f2f9f4,#dcece1)}
html[data-theme="bossgreen"] .quant-auth-shell{background:radial-gradient(ellipse 70% 45% at 90% 5%,rgba(143,190,221,.18),transparent 34rem),linear-gradient(155deg,#edf6f0,#e3ebf1)}
html[data-theme="bossgreen"] .quant-auth-visual{border-color:#cfe1d6;background:radial-gradient(ellipse 75% 70% at 90% 15%,rgba(97,171,129,.18),transparent 55%),linear-gradient(145deg,#fff,#eaf5ee);box-shadow:0 30px 80px rgba(43,58,74,.12),inset 0 1px 0 #fff}
html[data-theme="bossgreen"] .quant-auth-visual::before{background:linear-gradient(rgba(45,113,78,.05) 1px,transparent 1px) 0 0/54px 54px,linear-gradient(90deg,rgba(45,113,78,.05) 1px,transparent 1px) 0 0/54px 54px}
html[data-theme="bossgreen"] .quant-auth-visual::after{background:radial-gradient(circle,rgba(83,163,117,.19),transparent 67%)}
html[data-theme="bossgreen"] .quant-auth-brand-copy b{color:#1f3a2e}
html[data-theme="bossgreen"] .quant-auth-brand-copy small{color:#82998d}
html[data-theme="bossgreen"] .quant-auth-copy h1{color:#1f3a2e}
html[data-theme="bossgreen"] .quant-auth-copy h1 em{color:#24754f}
html[data-theme="bossgreen"] .quant-auth-copy p{color:#5d7468}
html[data-theme="bossgreen"] .quant-auth-feature{border-color:#d4e4da;background:rgba(255,255,255,.75)}
html[data-theme="bossgreen"] .quant-auth-feature b{color:#1f3a2e}
html[data-theme="bossgreen"] .quant-auth-feature small{color:#748b7f}
html[data-theme="bossgreen"] .quant-auth-foot{border-top-color:#d4e4da;color:#82998d}
html[data-theme="bossgreen"] .quant-auth-card{border-color:#d0e1d7;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(243,248,251,.96));box-shadow:0 24px 65px rgba(43,58,74,.12),inset 0 1px 0 #fff}
html[data-theme="bossgreen"] .quant-auth-card-top{color:#82998d}
html[data-theme="bossgreen"] .quant-auth-title{color:#1f3a2e}
html[data-theme="bossgreen"] .quant-auth-sub{color:#748b7f}
html[data-theme="bossgreen"] .quant-field{color:#5d7468}
html[data-theme="bossgreen"] .quant-field input{color:#1f3a2e;background:#fff;border-color:#d0e1d7}
html[data-theme="bossgreen"] .quant-field input:focus{border-color:#4a9270;box-shadow:0 0 0 3px rgba(74,146,112,.12)}
html[data-theme="bossgreen"] .quant-auth-submit{color:#fff;background:linear-gradient(135deg,#34825b,#24754f);box-shadow:0 10px 28px rgba(55,127,196,.18)}
html[data-theme="bossgreen"] .quant-auth-links{color:#748b7f}
html[data-theme="bossgreen"] .quant-auth-links a{color:#24754f}
html[data-theme="bossgreen"] .quant-auth-copyright{border-top-color:#dde9e1;color:#8fa196}
html[data-theme="bossgreen"] .quant-auth-theme{border-color:#d0e1d7;color:#5d7468;background:rgba(255,255,255,.82)}
@media(max-width:900px){.quant-auth-theme{top:18px;right:20px}}

/* K线弹窗：主题联动与区间按钮 */
.kperiod.active{color:#061018!important;background:#5fe7ff!important;border-color:#5fe7ff!important;font-weight:750}
.krange.active{color:#061018!important;background:#5fe7ff!important;border-color:#5fe7ff!important;font-weight:750}
html[data-theme="warm"] #klineOverlay{background:rgba(58,43,20,.55)!important}
html[data-theme="warm"] #klineOverlay>div{background:#fffaf0!important;border-color:#dfcaa0!important;box-shadow:0 28px 80px rgba(75,55,24,.25)!important}
html[data-theme="warm"] #klineTitle{color:#4a3920!important}
html[data-theme="warm"] #klineOverlay button{color:#725b37!important;background:#f7edd7!important;border-color:#dfcaa0!important}
html[data-theme="warm"] #klineInfo{color:#806d4c!important}
html[data-theme="warm"] #klineInfo b{color:#4a3920}
html[data-theme="warm"] #klineSearchInput{color:#3f3423!important;background:#fffdf8!important;border-color:#dfcaa0!important}
html[data-theme="warm"] #klineSearchResults{background:#fffdf8!important;border-color:#dfcaa0!important}
html[data-theme="warm"] .kline-result{color:#5f4d31!important;border-color:#eee2c9!important}
html[data-theme="warm"] .kline-result:hover{background:#f8edcf!important}
html[data-theme="warm"] .kperiod,html[data-theme="warm"] .krange{color:#806941!important;background:#fffaf0!important;border-color:#dfcaa0!important}
html[data-theme="warm"] .kperiod.active,html[data-theme="warm"] .krange.active{color:#fff!important;background:#8f5a0f!important;border-color:#8f5a0f!important}
html[data-theme="warm"] #klineHistoryRange{color:#927c57!important}
html[data-theme="bossgreen"] #klineOverlay{background:rgba(19,49,34,.42)!important}
html[data-theme="bossgreen"] #klineOverlay>div{background:#fff!important;border-color:#d0e1d7!important;box-shadow:0 28px 80px rgba(24,74,51,.22)!important}
html[data-theme="bossgreen"] #klineTitle{color:#1f3a2e!important}
html[data-theme="bossgreen"] #klineOverlay button{color:#5d7468!important;background:#edf6f0!important;border-color:#d0e1d7!important}
html[data-theme="bossgreen"] #klineInfo{color:#5d7468!important}
html[data-theme="bossgreen"] #klineInfo b{color:#1f3a2e}
html[data-theme="bossgreen"] #klineSearchInput{color:#1f3a2e!important;background:#fff!important;border-color:#d0e1d7!important}
html[data-theme="bossgreen"] #klineSearchResults{background:#fff!important;border-color:#d0e1d7!important}
html[data-theme="bossgreen"] .kline-result{color:#5d6d7e!important;border-color:#e5efe8!important}
html[data-theme="bossgreen"] .kline-result:hover{background:#edf6f0!important}
html[data-theme="bossgreen"] .kperiod,html[data-theme="bossgreen"] .krange{color:#5d7468!important;background:#f2f9f4!important;border-color:#d0e1d7!important}
html[data-theme="bossgreen"] .kperiod.active,html[data-theme="bossgreen"] .krange.active{color:#fff!important;background:#2f7d57!important;border-color:#2f7d57!important}
html[data-theme="bossgreen"] #klineHistoryRange{color:#748b7f!important}

/* ── 可读性增强：文字更大、更黑、更清晰 ───────────────────── */
body.quant-shell,body.quant-auth-page{font-size:15.5px}
tr[data-copy-code]{cursor:pointer}
.quant-shell .table,.quant-shell .q-table,.quant-shell .q-watch-table{font-size:14.5px!important}
.quant-shell .table th,.quant-shell .table td,.quant-shell .q-table th,.quant-shell .q-table td,.quant-shell .q-watch-table th,.quant-shell .q-watch-table td{font-size:13.5px!important}
.quant-shell .table td,.quant-shell .q-table td,.quant-shell .q-watch-table td{padding-top:.62rem!important;padding-bottom:.62rem!important}
.quant-shell .q-panel-head p,.quant-shell .q-stat-label,.quant-shell .q-stat-foot,.quant-shell .q-analysis-head small,.quant-shell .q-analysis-meta span,.quant-shell .q-signal,.quant-shell .q-strategy small,.quant-shell .q-hero p,.quant-shell .q-hero-tags span{font-size:13px!important;color:var(--q-muted)!important}
.quant-shell .q-action b{font-size:14.5px!important}
.quant-shell .q-action small{font-size:12.5px!important;color:var(--q-muted)!important}
.quant-shell .btn-kline,.quant-shell .q-mini-btn,.quant-shell .q-watch-actions button,.quant-shell .btn{font-size:13px!important}
.quant-shell .form-control,.quant-shell .form-select,.quant-shell input,.quant-shell select,.quant-shell textarea{font-size:14px!important}
.quant-shell .quant-nav-links a{font-size:13.5px!important}
.quant-shell .text-muted,.quant-shell .muted-tip,.quant-shell .head-note,.quant-shell .foot-note,.quant-shell .q-analysis-empty{color:var(--q-muted)!important;font-weight:600;font-size:13.5px!important}
.quant-shell .q-panel-head h2,.quant-shell .q-watch-hero h1{font-size:18px!important}
.quant-auth-page .quant-field input,.quant-auth-page .quant-auth-submit,.quant-auth-page .quant-auth-copy p{font-size:15px!important}
html[data-theme="warm"] .quant-shell .text-muted,html[data-theme="warm"] .quant-shell .muted-tip,html[data-theme="warm"] .quant-shell .head-note,html[data-theme="warm"] .quant-shell .foot-note,html[data-theme="warm"] .quant-shell .q-analysis-empty{color:#5c4930!important}
html[data-theme="warm"] .quant-shell .q-panel-head p,html[data-theme="warm"] .quant-shell .q-stat-label,html[data-theme="warm"] .quant-shell .q-stat-foot,html[data-theme="warm"] .quant-shell .q-hero p{color:#5c4930!important}
html[data-theme="bossgreen"] .quant-shell .text-muted,html[data-theme="bossgreen"] .quant-shell .muted-tip,html[data-theme="bossgreen"] .quant-shell .head-note,html[data-theme="bossgreen"] .quant-shell .foot-note,html[data-theme="bossgreen"] .quant-shell .q-analysis-empty{color:#3c5d4d!important}
html[data-theme="dark"] .quant-shell .text-muted,html[data-theme="dark"] .quant-shell .muted-tip,html[data-theme="dark"] .quant-shell .head-note,html[data-theme="dark"] .quant-shell .foot-note,html[data-theme="dark"] .quant-shell .q-analysis-empty{color:#b8c9de!important}

/* ── 第二层可读性：非涨跌文字统一高对比，辅助文字不再发灰 ─── */
.quant-shell .table td:not(.up):not(.down):not(.flat):not(.text-muted),
.quant-shell .q-table td:not(.pct-up):not(.pct-down):not(.text-muted),
.quant-shell .q-watch-table td:not(.text-muted){color:var(--q-ink)!important}
.quant-shell .q-index-meta,.quant-shell .quant-footer,.quant-shell .q-analysis-summary{color:var(--q-muted)!important;font-size:12px!important}
.quant-shell .q-analysis-head h3,.quant-shell .q-analysis-card h3{font-size:15px!important}
.quant-shell .q-watch-table td,.quant-shell .q-table td{font-weight:550}

/* 首页全局股票搜索 */
.q-hero-search{position:relative;max-width:560px;margin:22px 0 0}
.q-hero-search input{width:100%;height:46px;padding:0 16px;border:1px solid var(--q-line-strong);border-radius:14px;outline:0;background:rgba(255,255,255,.65);color:var(--q-ink);font-size:15px;box-shadow:var(--q-shadow)}
.q-hero-search input::placeholder{color:var(--q-muted)}
.q-hero-search-results{position:absolute;top:54px;left:0;right:0;z-index:60;display:none;max-height:320px;overflow:auto;border:1px solid var(--q-line-strong);border-radius:14px;background:var(--q-panel-solid);box-shadow:var(--q-shadow)}
.q-search-empty{padding:12px;color:var(--q-muted);font-size:13px;text-align:center}
.q-search-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 14px;border:0;border-bottom:1px solid var(--q-line);background:transparent;color:var(--q-ink);font-size:14px;cursor:pointer;text-align:left}
.q-search-item:hover{background:rgba(95,231,255,.07)}
.q-search-item b{font-weight:700}
.q-search-item span{font-family:var(--q-mono);color:var(--q-muted);font-size:12px}

