:root{color-scheme:light;font-family:Noto Sans SC,Source Han Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#fff;color:#1f2328;--blue: #5aaef3;--blue-strong: #2a85e8;--gray: #333333;--line: #cccccc;--soft-line: #e7e7e7;--red: #e65a56;--green: #30a84f;--orange: #ff974c;--paper: #ffffff;--wash: #f7f9fb;--ink-muted: #666f7b;--shadow: 0 10px 30px rgba(36, 45, 56, .08)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(90deg,rgba(204,204,204,.24) 1px,transparent 1px),linear-gradient(180deg,rgba(204,204,204,.22) 1px,transparent 1px),#fff;background-size:72px 72px}button,input,select,textarea{font:inherit}button{cursor:pointer}.loading-shell{min-height:100vh;display:grid;place-items:center;color:var(--ink-muted)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(420px,100%);display:grid;gap:14px;padding:26px;border:1px solid var(--soft-line);border-radius:8px;background:#fffffff5;box-shadow:var(--shadow)}.login-mark{display:grid;place-items:center;width:42px;height:42px;color:var(--blue-strong);border:1px solid rgba(90,174,243,.42);border-radius:8px;background:#5aaef31a}.login-status{min-height:20px;color:var(--ink-muted);font-size:13px}.app-shell{min-height:100vh;display:grid;grid-template-columns:148px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--soft-line);background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:18px 12px}.brand-mark{display:flex;align-items:center;gap:8px;height:40px;padding:0 8px 20px;font-weight:700;border-bottom:1px solid var(--soft-line)}.brand-glyph{display:grid;place-items:center;width:28px;height:28px;color:var(--blue-strong);border:1px solid var(--blue);border-radius:6px}.sidebar nav{display:grid;gap:8px;margin-top:22px}.sidebar button{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:#4f5965;text-align:left}.sidebar button.active,.sidebar button:hover{color:var(--blue-strong);background:#5aaef31f;border-color:#5aaef357}.workspace{min-width:0;padding:18px 22px 28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 14px;border-bottom:1px solid var(--soft-line)}.eyebrow{margin:0 0 4px;color:var(--ink-muted);font-size:12px}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1.3}h2{font-size:18px;line-height:1.4}h3{font-size:15px}.topbar-actions{display:flex;align-items:center;gap:10px;color:var(--ink-muted)}.topbar-actions span{display:flex;align-items:center;gap:6px;white-space:nowrap}.icon-button,.text-button,.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border-radius:7px;border:1px solid var(--soft-line);background:var(--paper);color:var(--gray)}.icon-button{width:36px;padding:0}.text-button{padding:0 12px;color:var(--blue-strong)}.primary-button{padding:0 16px;border-color:var(--blue-strong);background:var(--blue-strong);color:#fff;font-weight:700}.secondary-button{padding:0 16px}button:disabled{cursor:not-allowed;opacity:.55}.status-line{min-height:34px;display:flex;align-items:center;color:var(--ink-muted);font-size:13px}.status-line[data-busy=true]{color:var(--orange)}.overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:14px}.kpi-strip{grid-column:1 / -1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--soft-line);border-radius:8px;background:#fffffff0;box-shadow:var(--shadow)}.kpi-strip article{min-width:0;padding:18px 22px;border-right:1px solid var(--soft-line)}.kpi-strip article:last-child{border-right:0}.kpi-strip span,.kpi-strip small{display:block;color:var(--ink-muted);font-size:13px}.kpi-strip strong{display:block;margin:8px 0;font-size:26px;line-height:1.1;color:var(--gray)}.panel{min-width:0;border:1px solid var(--soft-line);border-radius:8px;background:#fffffff2;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 10px;border-bottom:1px solid var(--soft-line)}.panel-head p{margin-top:4px;color:var(--ink-muted);font-size:12px}.chart-panel{min-height:420px;position:relative}.net-chart{height:342px;width:100%}.empty-chart{display:grid;place-items:center;color:var(--ink-muted);font-size:13px;background:linear-gradient(90deg,rgba(204,204,204,.35) 1px,transparent 1px),linear-gradient(180deg,rgba(204,204,204,.35) 1px,transparent 1px);background-size:56px 56px}.chart-foot{position:absolute;right:18px;bottom:12px;color:var(--ink-muted);font-size:12px}.ocr-preview{min-height:420px}.upload-ghost{margin:16px;min-height:86px;display:grid;place-items:center;gap:6px;color:var(--ink-muted);border:1px dashed var(--line);border-radius:7px;background:var(--wash)}.mini-trades,.cycle-list,.ocr-rows{display:grid;gap:8px;padding:0 16px 16px}.mini-trades article,.cycle-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid var(--soft-line)}.mini-trades strong,.cycle-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-trades small,.cycle-list small{color:var(--ink-muted)}.table-panel{min-height:340px}.review-strip,.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.review-strip{grid-column:1 / -1}.review-card{min-width:0;display:grid;grid-template-columns:66px minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--soft-line);border-radius:8px;background:var(--paper);box-shadow:var(--shadow)}.score-ring{display:grid;place-items:center;width:62px;height:62px;border:2px solid var(--blue);border-radius:50%;color:var(--blue-strong);font-size:25px;font-weight:700}.review-card strong,.review-card span,.review-card p{display:block}.review-card span{margin:4px 0;color:var(--ink-muted);font-size:12px}.review-card p{color:var(--ink-muted);font-size:13px;line-height:1.6}.score-bars{grid-column:1 / -1;display:grid;gap:5px}.score-bars span{height:5px;border-radius:999px}.score-bars span:nth-child(1){background:var(--blue)}.score-bars span:nth-child(2){background:var(--orange)}.score-bars span:nth-child(3){background:var(--green)}.entry-grid,.split-grid,.settings-grid{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:14px}.form-panel{padding-bottom:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}label{display:grid;gap:6px;color:var(--ink-muted);font-size:12px}input,select,textarea{min-width:0;width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--gray);padding:9px 10px;outline:none}textarea{min-height:104px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #5aaef329}.wide{grid-column:1 / -1}.form-panel .primary-button,.settings-grid .primary-button{margin-left:16px}.ocr-panel{padding-bottom:16px}.drop-zone{margin:16px;min-height:130px;display:grid;place-items:center;text-align:center;border:1px dashed var(--line);border-radius:8px;background:var(--wash)}.drop-zone input{display:none}.button-row{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 14px}.ocr-rows article{display:grid;grid-template-columns:86px 110px minmax(120px,1fr) 110px 110px;gap:8px;padding:10px;border:1px solid var(--soft-line);border-radius:8px;background:#fff}.data-table-wrap{overflow-x:auto;padding:0 16px 16px}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th,.data-table td{padding:12px 10px;border-bottom:1px solid var(--soft-line);text-align:left;font-size:13px;white-space:nowrap}.data-table th{color:var(--ink-muted);font-weight:400}.full-panel{min-height:580px}.settings-grid{padding:16px}.settings-grid article{display:grid;align-content:start;gap:12px}.settings-grid code{display:block;padding:10px;border:1px solid var(--soft-line);border-radius:7px;background:var(--wash);color:var(--gray)}.settings-grid p{color:var(--ink-muted);line-height:1.7}.import-box{min-height:260px;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 8px;border-radius:6px;font-size:12px;border:1px solid var(--soft-line)}.badge.green{color:var(--green);border-color:#30a84f73;background:#30a84f14}.badge.red{color:var(--red);border-color:#e65a5673;background:#e65a5614}.badge.blue{color:var(--blue-strong);border-color:#5aaef373;background:#5aaef31a}.badge.gray{color:var(--ink-muted);background:var(--wash)}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.empty-state{margin:16px;padding:28px;display:grid;place-items:center;color:var(--ink-muted);border:1px dashed var(--line);border-radius:8px;background:var(--wash)}@media(max-width:1120px){.overview-grid,.entry-grid,.split-grid,.settings-grid{grid-template-columns:1fr}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-strip article:nth-child(2n){border-right:0}.review-strip,.review-grid{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:10px;border-right:0;border-bottom:1px solid var(--soft-line);overflow:hidden}.brand-mark{height:34px;padding-bottom:8px}.sidebar nav{display:flex;overflow-x:auto;max-width:100%;margin-top:10px;padding-bottom:2px}.sidebar button{flex:0 0 auto;min-width:86px}.workspace{padding:14px 12px 22px}.topbar{align-items:flex-start;flex-direction:column}.kpi-strip{grid-template-columns:1fr}.kpi-strip article,.kpi-strip article:nth-child(2n){border-right:0;border-bottom:1px solid var(--soft-line)}.kpi-strip article:last-child{border-bottom:0}.panel-head{align-items:stretch;flex-direction:column}.form-grid{grid-template-columns:1fr}.ocr-rows article{grid-template-columns:1fr 1fr}.ocr-rows article input:nth-child(3){grid-column:1 / -1}.net-chart{height:300px}.data-table{min-width:0}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding:8px 0;border-bottom:1px solid var(--soft-line)}.data-table td{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:0;white-space:normal}.data-table td:before{content:attr(data-label);color:var(--ink-muted);font-size:12px;flex:0 0 auto}}
