@layer legacy, framework;
@layer legacy {
:root{--ink:#14201b;--muted:#68776f;--line:#d8e1dc;--paper:#f2f5f1;--card:#fff;--green:#153e33;--green2:#225a49;--gold:#b78324;--soft:#f7edcf;--red:#aa4542;--shadow:0 18px 48px rgba(21,62,51,.085)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:radial-gradient(circle at 82% -10%,#e4ece5 0,transparent 31%),var(--paper);font-family:Microsoft YaHei UI,PingFang SC,Segoe UI,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(183,131,36,.25);outline-offset:2px}.hide{display:none!important}.boot{min-height:100vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.boot span{width:74px;height:74px;border-radius:25px;background:var(--green);color:#e7ca7d;display:grid;place-items:center;margin:auto;font:700 25px Georgia;box-shadow:var(--shadow)}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:linear-gradient(180deg,#173f34,#12342b);color:#eef5f1;padding:32px 21px;z-index:20;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:14px;padding:0 11px 31px;border-bottom:1px solid #ffffff18}.mark{width:46px;height:46px;border:1px solid #d8b766;border-radius:50%;display:grid;place-items:center;color:#e7ca7d;font:700 15px Georgia}.brand b{display:block;font-size:17px;letter-spacing:.18em}.brand small{display:block;color:#acc2b8;font-size:10px;letter-spacing:.26em;margin-top:3px}.nav{display:grid;gap:8px;margin-top:26px}.nav button{min-height:48px;border:0;border-radius:10px;background:transparent;color:#afc4ba;text-align:left;padding:12px 15px;font-weight:650}.nav button:hover,.nav button.active{background:#ffffff1c;color:#fff;box-shadow:inset 3px 0 #d8b766}.nav i{display:inline-block;width:24px;font-style:normal;font-size:18px}.sidefoot{margin-top:auto;padding:16px 10px 0;border-top:1px solid #ffffff18;color:#a9beb5;font-size:11px}.cloud-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d8b766;margin-right:7px}.cloud-dot.ok{background:#65c29c}.cloud-dot.off{background:#d9827d}.workspace{margin-left:248px;min-height:100vh}.topbar{height:116px;padding:0 48px;background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:15}.eyebrow,.label{color:#839088;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.topbar h1{font-family:Bahnschrift,Microsoft YaHei UI,sans-serif;font-size:27px;margin:7px 0 0}.actions{display:flex;gap:10px}.primary,.secondary{height:44px;border-radius:9px;padding:0 17px;font-size:13px;font-weight:700}.primary{border:0;background:var(--green);color:#fff;box-shadow:0 7px 18px #153e3328}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.primary:hover{background:var(--green2)}.page{padding:35px 48px 60px;max-width:1540px;margin:auto}.card{background:var(--card);border:1px solid #dbe3de;border-radius:16px;box-shadow:var(--shadow)}.statusline{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;color:var(--muted);font-size:12px}.statuspill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:99px;background:#e8eeea}.hero{display:grid;grid-template-columns:2fr 1fr;gap:20px}.equity{padding:30px;min-height:360px}.cardhead{display:flex;justify-content:space-between}.big{font:700 50px Bahnschrift SemiCondensed,Arial Narrow,sans-serif;margin:9px 0}.positive{color:#2d785d!important}.negative{color:var(--red)!important}.badge{height:max-content;background:var(--soft);color:#76591e;border-radius:10px;padding:12px 15px;text-align:right}.badge small,.badge b{display:block}.badge b{font:700 17px monospace}.chart{height:210px;display:flex;align-items:end;gap:7px;margin-top:25px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 46px,#edf0ed 47px)}.chart i{flex:1;min-width:7px;background:linear-gradient(#bd8e31,#ead7a4);border-radius:5px 5px 0 0}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px}.metric{padding:24px;min-height:170px}.metric:last-child{grid-column:1/-1}.metric span{color:var(--muted);font-size:12px;font-weight:700}.metric strong{display:block;font:700 38px Bahnschrift SemiCondensed,sans-serif;margin-top:13px}.metric small{display:block;color:#849189;margin-top:15px}.section{margin-top:20px;overflow:hidden}.sectionhead{display:flex;align-items:center;justify-content:space-between;padding:25px 27px 18px}.sectionhead h2{font-size:21px;margin:6px 0}.search{width:250px;height:42px;border:1px solid var(--line);border-radius:9px;padding:0 12px;background:#f8faf8}.tablewrap{overflow:auto}table{width:100%;min-width:850px;border-collapse:collapse}th{text-align:left;background:#fafbfa;color:#87938d;padding:13px 19px;border-block:1px solid #edf0ed;font-size:10px;letter-spacing:.1em}td{padding:17px 19px;border-bottom:1px solid #edf0ed;font-size:13px}tbody tr{cursor:pointer}tbody tr:hover{background:#fcfaf4}td small{display:block;color:#8d9993;font-size:10px;margin-top:3px}.side,.tag{display:inline-block;border-radius:6px;padding:5px 8px;font-size:10px;font-weight:800}.buy{background:#e7f2ec;color:#287155}.sell{background:#f6e8e7;color:#a14e49}.grade{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f4eddc;color:#80621f;font-weight:800}.empty{padding:55px;text-align:center;color:#839088}.playbook-grid,.indicator-groups,.analytics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.playbook{padding:27px;position:relative;overflow:hidden}.playbook:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--gold)}.playbook-top{display:flex;justify-content:space-between;align-items:center}.edit{height:34px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:#f8faf8;font-size:11px;font-weight:700}.playbook h3{font-size:20px;margin:24px 0}.pbmetrics{display:grid;grid-template-columns:repeat(3,1fr);padding:16px 0;border-block:1px solid var(--line)}.pbmetrics small,.pbmetrics b{display:block}.rules p{font-size:13px}.rules i{color:#3d8067;font-style:normal;margin-right:7px}.indicator-library{margin-top:28px}.framework-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px}.framework-head h2{margin:6px 0}.framework-head p{margin:0;color:var(--muted);font-size:13px}.indicator-group{padding:21px}.indicator-group header{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px}.indicator-group header span{background:var(--soft);color:#76591e;padding:4px 7px;border-radius:5px;font-size:10px}.indicator-group>p{color:var(--muted);font-size:12px}.indicator-token{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid #edf0ed;font-size:12px}.indicator-token small{color:var(--muted)}.analytics-grid{grid-template-columns:1fr 1fr}.analytics-grid .card{padding:26px}.analytics-row{display:grid;grid-template-columns:120px 1fr 80px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #edf0ed}.bar{height:7px;background:#edf0ed;border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}.overlay{position:fixed;inset:0;background:#071b145f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:50}.modal,.drawer{background:#fff;overflow:auto}.modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(740px,calc(100% - 30px));max-height:92vh;border-radius:18px;padding:30px}.drawer{position:absolute;right:0;top:0;bottom:0;width:min(980px,calc(100% - 48px));padding:31px 34px}.modalhead{display:flex;justify-content:space-between;align-items:flex-start}.modalhead h2{font-size:25px;margin:6px 0}.close{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:22px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.formgrid label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px}.formgrid input,.formgrid select,.formgrid textarea,.field{height:44px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:0 11px;color:var(--ink)}.formgrid textarea{height:90px;padding:11px;resize:vertical}.full{grid-column:1/-1}.formactions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.danger{margin-right:auto;color:var(--red);border-color:#e8c7c5}.trade-result{display:flex;justify-content:space-between;align-items:center;margin:20px -34px 0;padding:20px 34px;background:#f7f9f6}.trade-result strong{font-size:24px}.trade-result small{display:block}.review-section{padding:20px 0;border-bottom:1px solid var(--line)}.review-section h3{font-size:15px;margin:0 0 12px}.exit-row,.indicator-row{display:grid;gap:8px;background:#f7f9f6;border-radius:9px;padding:10px;margin-top:8px}.exit-row{grid-template-columns:1fr 1fr .8fr 34px}.indicator-row{grid-template-columns:1.25fr .65fr .85fr 1.3fr;align-items:center}.exit-row input,.indicator-row input,.indicator-row select{height:39px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:0 8px;min-width:0}.remove{border:0;border-radius:7px;background:#f3e4e3;color:var(--red)}.subaction{height:36px;border:1px dashed #bdc9c2;border-radius:7px;background:#fff;padding:0 11px;margin-top:10px}.shots{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shot-slot{border:1px solid var(--line);border-radius:10px;padding:12px;background:#f9faf8}.shot-slot header{display:flex;justify-content:space-between}.shot-slot p{font-size:11px;color:var(--muted)}.shot-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.shot{position:relative;aspect-ratio:16/10;border-radius:7px;overflow:hidden;background:#e8eeea}.shot img{width:100%;height:100%;object-fit:cover}.shot button{position:absolute;right:4px;top:4px;width:26px;height:26px;border:0;border-radius:50%;background:#15211dcc;color:#fff}.notearea{width:100%;min-height:120px;border:1px solid var(--line);border-radius:8px;padding:11px}.toast{position:fixed;right:25px;bottom:25px;background:var(--green);color:#fff;padding:13px 17px;border-radius:10px;z-index:80;box-shadow:var(--shadow)}.offline-banner{position:fixed;left:50%;bottom:20px;transform:translate(-50%);background:#76591e;color:#fff;padding:9px 13px;border-radius:99px;z-index:70;font-size:11px}@media(max-width:1100px){.sidebar{width:215px}.workspace{margin-left:215px}.topbar,.page{padding-left:30px;padding-right:30px}.playbook-grid,.indicator-groups,.hero{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(3,1fr)}.metric:last-child{grid-column:auto}}@media(max-width:720px){body{padding-bottom:76px}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:70px;padding:8px 10px;display:block}.brand,.sidefoot{display:none}.nav{display:grid;grid-template-columns:repeat(5,1fr);margin:0;gap:4px}.nav button{min-height:54px;padding:5px;text-align:center;font-size:10px}.nav i{display:block;width:auto;font-size:18px}.workspace{margin:0}.topbar{height:96px;padding:14px 17px}.topbar h1{font-size:20px;max-width:210px}.actions .secondary{display:none}.page{padding:22px 13px 38px}.metrics{grid-template-columns:1fr 1fr}.metric:last-child{grid-column:1/-1}.formgrid{grid-template-columns:1fr}.full{grid-column:auto}.drawer{padding:22px}.trade-result{margin-inline:-22px;padding-inline:22px}.indicator-row{grid-template-columns:1fr 1fr}.indicator-row>div{grid-column:1/-1}.shots,.analytics-grid{grid-template-columns:1fr}}@media(max-width:430px){.metrics{grid-template-columns:1fr}.metric:last-child{grid-column:auto}.big{font-size:39px}.actions .primary{padding:0 12px}.exit-row{grid-template-columns:1fr 1fr}.exit-row .remove{grid-column:1/-1;height:34px}.modal{padding:21px}.framework-head{align-items:flex-start;gap:10px}.framework-head .edit{white-space:nowrap}}.rangebar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.rangebar>small{color:var(--muted);white-space:nowrap}.range-tabs{display:flex;gap:6px;margin-top:7px}.range-tabs button{height:38px;padding:0 17px;border:1px solid var(--line);border-radius:9px;background:#f8faf8;color:var(--muted);font-weight:700}.range-tabs button.active{background:var(--green);border-color:var(--green);color:#fff}.custom-range{display:flex;align-items:flex-end;gap:9px}.custom-range label{display:grid;gap:4px;color:var(--muted);font-size:11px}.custom-range input{height:38px;border:1px solid var(--line);border-radius:8px;padding:0 9px;background:#fbfcfb}@media(max-width:720px){.rangebar{align-items:stretch;flex-direction:column;gap:10px}.rangebar>small{white-space:normal}.custom-range{align-items:flex-end}.custom-range label{flex:1}.custom-range input{width:100%}}.shot-actions{display:flex;gap:6px}.shot-actions .subaction{flex:1;padding-inline:7px}.link-shot{display:grid;place-items:center;background:linear-gradient(135deg,#173f34,#2d6b57)}.link-shot a{color:#fff;text-decoration:none;font-size:11px;font-weight:800;text-align:center;padding:20px}.link-shot button{position:absolute;right:4px;top:4px;width:26px;height:26px;border:0;border-radius:50%;background:#071b14b8;color:#fff}.account-btn{height:44px;border:1px solid #d5b86b;border-radius:9px;padding:0 14px;background:#fffaf0;color:#73571e;font-size:12px;font-weight:800}.identity-mini{width:100%;margin-top:13px;padding:12px;border:1px solid #ffffff1c;border-radius:10px;background:#ffffff0b;color:#fff;text-align:left}.identity-mini b,.identity-mini small{display:block}.identity-mini small{margin-top:3px;color:#9eb6ab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-modal{width:min(540px,calc(100% - 30px))}.identity-card{margin:24px 0;padding:23px;border:1px solid #d8e1dc;border-radius:14px;background:linear-gradient(145deg,#f7faf7,#edf3ee)}.identity-card.anonymous{border-color:#e5d3a3;background:linear-gradient(145deg,#fffbf0,#f8edcf)}.identity-card span,.identity-card b{display:block}.identity-card span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em}.identity-card b{margin-top:8px;font-size:18px}.identity-card p{margin:9px 0 0;color:var(--muted);font-size:13px}.auth-field{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:700}.auth-field input{height:48px;border:1px solid var(--line);border-radius:9px;background:#fbfcfb;padding:0 13px}.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.auth-help{display:block;margin-top:12px;color:var(--muted)}.mail-sent{padding:20px;border-radius:12px;background:#edf5f0;color:#285d49}.mail-sent b{font-size:18px}.mail-sent p{margin-bottom:0}.pwa-btn{height:44px;border:1px solid #d7b65e;border-radius:9px;padding:0 15px;background:#fff8e5;color:#6e541c;font-size:12px;font-weight:850;box-shadow:inset 0 -2px #e9d38f}.pwa-btn:hover{background:#f8ebc8}.pwa-btn.installed{border-color:var(--line);background:#edf2ee;color:#617168;box-shadow:none;cursor:default}.install-modal{width:min(560px,calc(100% - 30px))}.install-mark{width:74px;height:74px;margin:24px auto 17px;border:1px solid #d3af53;border-radius:24px;background:var(--green);color:#e8c970;display:grid;place-items:center;font:800 20px Georgia;box-shadow:0 13px 32px #153e332e}.install-intro{max-width:440px;margin:0 auto 22px;color:var(--muted);text-align:center}.install-steps{margin:0;padding:0;list-style:none;counter-reset:install}.install-steps li{counter-increment:install;display:grid;grid-template-columns:38px 1fr;gap:0 12px;padding:14px 0;border-top:1px solid var(--line)}.install-steps li:before{content:counter(install);grid-row:1/3;width:34px;height:34px;border-radius:50%;background:var(--soft);color:#76591e;display:grid;place-items:center;font:800 12px monospace}.install-steps b,.install-steps span{display:block}.install-steps span{color:var(--muted);font-size:12px;margin-top:2px}@media(max-width:720px){.account-btn{width:44px;padding:0;font-size:0}.account-btn:before{content:"☁";font-size:17px}.auth-actions{grid-template-columns:1fr}.account-modal{padding:23px}}@media(max-width:1320px){.pwa-btn{width:44px;padding:0;font-size:0}.pwa-btn:before{content:"⇩";font-size:18px}.topbar h1{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.mt5-btn{height:44px;border:1px solid #cda952;border-radius:9px;padding:0 15px;background:linear-gradient(135deg,#183f34,#245b4b);color:#fff;font-size:12px;font-weight:800;box-shadow:0 7px 18px #153e3322}.mt5-modal{width:min(1080px,calc(100% - 30px))}.mt5-flow{display:grid;grid-template-columns:repeat(3,1fr);margin:23px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.mt5-flow div{display:flex;align-items:center;gap:9px;padding:12px 15px;background:#f8faf8;border-right:1px solid var(--line)}.mt5-flow div:last-child{border:0}.mt5-flow i{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#dfe8e3;color:#315d4d;font-style:normal;font-size:11px;font-weight:800}.mt5-flow.done div:first-child i{background:var(--green);color:#fff}.mt5-stage{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mt5-stage label{position:relative}.mt5-stage input{position:absolute;opacity:0}.mt5-stage span{display:block;padding:17px;border:1px solid var(--line);border-radius:12px;background:#fafbfa}.mt5-stage b,.mt5-stage small{display:block}.mt5-stage small{margin-top:4px;color:var(--muted)}.mt5-stage input:checked+span{border-color:#b68a2d;background:#fff8e8;box-shadow:inset 0 0 0 1px #b68a2d}.mt5-drop{min-height:170px;margin-top:12px;border:2px dashed #b8c6be;border-radius:14px;background:linear-gradient(#f9fbf9,#f1f5f1);display:grid;place-content:center;text-align:center;padding:25px;cursor:pointer}.mt5-drop.ready{border-color:#b68a2d;background:#fff9ea}.mt5-drop input{position:absolute;opacity:0;pointer-events:none}.mt5-drop b{font-size:18px}.mt5-drop span{margin-top:5px;color:var(--muted);font-size:12px}.mt5-privacy{margin-top:10px;padding:10px 12px;border-radius:8px;background:#eef3ef;color:#52665c;font-size:12px}.ocr-working{text-align:center;padding:35px 15px}.scan-mark{width:84px;height:84px;border-radius:25px;margin:0 auto 24px;display:grid;place-items:center;background:var(--green);color:#edcf79;font:800 18px monospace;box-shadow:0 0 0 10px #edf3ef}.ocr-working h2{margin:10px}.ocr-working p{color:var(--muted)}.ocr-bar{height:8px;margin-top:24px;border-radius:99px;overflow:hidden;background:#e5ebe7}.ocr-bar i{display:block;width:5%;height:100%;background:linear-gradient(90deg,#b78324,#e1c97f);transition:width .25s}.mt5-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 15px;border-radius:9px;background:#edf4ef}.mt5-summary span{color:var(--muted);font-size:12px}.mt5-table{margin-top:12px;overflow:auto;border:1px solid var(--line);border-radius:10px}.mt5-head,.mt5-row{display:grid;grid-template-columns:45px 55px 120px 75px 75px 105px 105px 125px 105px 90px;gap:6px;align-items:center;min-width:970px}.mt5-head{padding:9px 8px;background:#f0f4f1;color:#718078;font-size:10px;font-weight:800}.mt5-row{padding:7px 8px;border-top:1px solid #edf0ed}.mt5-row input,.mt5-row select{height:38px;min-width:0;border:1px solid var(--line);border-radius:6px;background:#fff;padding:0 7px;font-size:12px}.mt5-check{display:grid;place-items:center}.mt5-check input{width:20px}.mt5-review-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.mt5-empty{padding:38px;text-align:center;border:1px dashed var(--line);border-radius:12px}.mt5-empty p{color:var(--muted)}.ocr-raw{margin-top:13px;color:var(--muted);font-size:12px}.ocr-raw summary{cursor:pointer;font-weight:700}.ocr-raw pre{max-height:180px;overflow:auto;padding:12px;border-radius:8px;background:#111a16;color:#c7d8cf;white-space:pre-wrap}.ocr-raw h4{margin-bottom:5px}.review-section .exit-row:before{align-self:center;color:#819087;font-size:9px;font-weight:800}.review-section #entryRows .exit-row:before{content:"IN"}.review-section #exitRows .exit-row:before{content:"OUT"}.review-section .exit-row{grid-template-columns:28px 1fr 1fr .8fr 34px}@media(max-width:720px){.mt5-btn{width:44px;padding:0;font-size:0}.mt5-btn:before{content:"▣";font-size:17px}.mt5-modal{padding:20px}.mt5-stage{grid-template-columns:1fr}.mt5-flow div{justify-content:center;padding:10px 5px}.mt5-flow b{font-size:11px}.mt5-summary{align-items:flex-start;flex-direction:column;gap:4px}.mt5-review-actions{display:grid;grid-template-columns:1fr 1fr}.mt5-review-actions .primary{grid-column:1/-1}.review-section .exit-row{grid-template-columns:25px 1fr 1fr}.review-section .exit-row .remove{grid-column:2/-1}.ocr-working{padding:25px 5px}}@media(max-width:720px){.topbar>div:first-child{min-width:0}.topbar h1{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.actions{gap:5px}.actions #addBtn{width:44px;padding:0;font-size:0}.actions #addBtn:before{content:"+";font-size:20px}}.calendar-card{margin-top:20px;padding:0;overflow:hidden}.calendar-toolbar{min-height:82px;padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav h2{min-width:138px;margin:0 4px;font-size:20px}.calendar-nav button{height:36px;min-width:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:800}.calendar-nav .this-month{padding:0 12px;color:var(--muted);font-size:11px}.calendar-month-stat{display:flex;align-items:baseline;gap:10px;text-align:right}.calendar-month-stat span,.calendar-month-stat small{color:var(--muted);font-size:11px}.calendar-month-stat strong{font:750 21px Bahnschrift,Arial Narrow,sans-serif}.calendar-hint{padding:8px 20px;background:#fafbf9;color:#88938d;font-size:10px;text-align:right}.calendar-scroll{overflow-x:auto;padding:0 15px 16px;scrollbar-color:#b9c5be transparent}.calendar-layout{display:grid;grid-template-columns:minmax(720px,1fr) 145px;gap:12px;min-width:880px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekdays{padding:7px 0}.calendar-weekdays span{text-align:center;color:#728078;font-size:10px;font-weight:800}.calendar-day{position:relative;min-height:106px;border:1px solid #e0e6e2;border-radius:8px;background:#f7f9f7;color:var(--ink);padding:10px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;transition:transform .14s,border-color .14s,box-shadow .14s}.calendar-day.blank{background:#fff;border-color:#edf0ed}.calendar-day:disabled{cursor:default}.calendar-day.active-day{background:rgba(78,163,131,var(--heat));border-color:#a8d2c1;cursor:pointer}.calendar-day.loss{background:rgba(210,83,81,var(--heat));border-color:#e1aaa8}.calendar-day.active-day:hover{z-index:2;transform:translateY(-2px);border-color:#b78324;box-shadow:0 9px 22px #153e3317}.calendar-day .day-number{position:absolute;right:8px;top:6px;color:#66736d;font:700 10px monospace}.calendar-day strong{font:750 17px Bahnschrift,Arial Narrow,sans-serif}.calendar-day small,.calendar-day em{color:#617169;font-size:10px;font-style:normal}.calendar-day .rest-mark{color:#c4ccc7}.calendar-day.today:after{content:"今天";position:absolute;left:7px;top:6px;padding:2px 5px;border-radius:99px;background:var(--green);color:#fff;font-size:8px;font-weight:800}.calendar-weeks{display:grid;grid-template-rows:repeat(var(--weeks),1fr);gap:4px;padding-top:34px}.calendar-week{min-height:106px;border:1px solid var(--line);border-radius:9px;padding:13px 11px;background:#fff;display:flex;flex-direction:column;justify-content:center}.calendar-week span,.calendar-week small{color:var(--muted);font-size:10px}.calendar-week strong{font:750 17px Bahnschrift,Arial Narrow,sans-serif;margin:4px 0}.calendar-week:last-child{margin-bottom:0}@media(max-width:720px){.calendar-toolbar{align-items:flex-start;flex-direction:column;padding:15px}.calendar-month-stat{width:100%;justify-content:space-between;text-align:left}.calendar-month-stat span{display:none}.calendar-hint{text-align:left;padding-inline:15px}.calendar-scroll{padding-left:10px}.calendar-layout{grid-template-columns:700px 135px;min-width:847px}.calendar-day,.calendar-week{min-height:98px}.calendar-nav h2{min-width:126px;font-size:18px}}.calendar-card+.hero{margin-top:20px}@media(min-width:721px){.nav button{font-size:17px;font-weight:780;letter-spacing:.015em}.nav i{width:28px;font-size:19px}.actions .account-btn,.actions .mt5-btn,.actions .secondary,.actions #addBtn{font-size:14px;font-weight:800;letter-spacing:.01em}.actions .pwa-btn{font-weight:850;letter-spacing:.01em}}@media(min-width:1321px){.actions .pwa-btn{font-size:14px}}.sidefoot{font-size:12px;font-weight:700}.rangebar .label{font-size:12px;font-weight:900;letter-spacing:.12em}.range-tabs button{font-size:14px;font-weight:800;color:#4f5f57}.rangebar>small{font-size:12px;font-weight:650}.calendar-nav .this-month{font-size:12px;font-weight:800;color:#4f5f57}@media(max-width:720px){.nav button{font-size:12px;font-weight:800;letter-spacing:.01em}.nav i{font-size:19px}.range-tabs button{font-size:14px}}.review-help,.analytics-note{margin:-5px 0 14px;color:var(--muted);font-size:12px}.emotion-field,.custom-mistakes{display:grid;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.emotion-field select,.custom-mistakes input{width:100%;height:44px;border:1px solid var(--line);border-radius:9px;background:#fbfcfb;padding:0 12px;color:var(--ink)}.mistake-picker{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.mistake-check{position:relative;cursor:pointer}.mistake-check input{position:absolute;opacity:0;pointer-events:none}.mistake-check span{min-height:36px;display:flex;align-items:center;padding:0 12px;border:1px solid #d8e1dc;border-radius:99px;background:#f8faf8;color:#526158;font-size:12px;font-weight:750;transition:background .15s,border-color .15s,color .15s,transform .15s}.mistake-check:hover span{transform:translateY(-1px);border-color:#c3ad71}.mistake-check input:checked+span{border-color:#b78324;background:#f7edcf;color:#76591e;box-shadow:inset 0 0 0 1px #d8b766}.mistake-check input:focus-visible+span{outline:3px solid rgba(183,131,36,.25);outline-offset:2px}.behavior-card{position:relative;overflow:hidden}.behavior-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#d8b766,#3f8069)}.behavior-card .analytics-row:last-child{border-bottom:0}.psych-row{grid-template-columns:minmax(110px,1fr) 100px 95px}.psych-row span{color:var(--muted);font-size:12px}.analytics-empty{margin-top:15px;padding:22px;border:1px dashed #cbd6cf;border-radius:10px;background:#f8faf8;color:var(--muted);font-size:12px;text-align:center}@media(max-width:430px){.mistake-picker{gap:7px}.mistake-check span{min-height:34px;padding-inline:10px;font-size:11px}.psych-row{grid-template-columns:1fr 82px 86px}}.mobile-quick-actions{display:none}@media(max-width:720px){body{padding-bottom:142px}.topbar{height:76px;padding:9px 14px}.topbar .eyebrow{font-size:9px;letter-spacing:.12em}.topbar h1{max-width:190px;margin-top:3px;font-size:18px}.actions #mt5Btn,.actions #addBtn{display:none}.page{padding:14px 10px 26px}.mobile-quick-actions{position:fixed;left:12px;right:12px;bottom:78px;z-index:25;display:grid;grid-template-columns:1fr 1.2fr;gap:7px;padding:6px;border:1px solid #d8e1dc;border-radius:15px;background:#fffffff2;box-shadow:0 12px 34px #102f2733;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-quick-actions button{height:44px;border-radius:10px;font-size:13px;font-weight:850;letter-spacing:.01em}.mobile-quick-actions i{margin-right:6px;font-style:normal;font-size:17px}.quick-mt5{border:1px solid #cda952;background:#fffaf0;color:#73571e}.quick-add{border:0;background:var(--green);color:#fff;box-shadow:0 6px 15px #153e3328}.rangebar{margin-bottom:11px;padding:11px 12px;gap:8px;border-radius:12px}.range-tabs{margin-top:5px}.range-tabs button{height:35px;padding-inline:14px}.rangebar>small{font-size:11px}.statusline{margin-bottom:11px;font-size:11px}.statuspill{padding:5px 8px}.calendar-card{margin-top:11px}.calendar-toolbar{min-height:0;padding:11px 12px;gap:10px}.calendar-nav{gap:6px}.calendar-nav button{height:34px;min-width:34px}.calendar-nav h2{min-width:120px;margin-inline:2px;font-size:18px}.calendar-month-stat{gap:7px}.calendar-hint{padding:6px 12px}.calendar-scroll{padding:0 8px 10px}.calendar-layout{grid-template-columns:650px 125px;gap:8px;min-width:783px}.calendar-day,.calendar-week{min-height:88px}.calendar-week{padding:9px}.calendar-weeks{padding-top:31px}.calendar-card+.hero{margin-top:12px}.hero,.metrics,.playbook-grid,.indicator-groups,.analytics-grid{gap:12px}.equity{min-height:286px;padding:20px}.big{font-size:42px}.chart{height:165px;margin-top:16px}.metric{min-height:132px;padding:17px}.metric strong{font-size:33px;margin-top:8px}.metric small{margin-top:9px}.section{margin-top:12px}.sectionhead{display:grid;grid-template-columns:1fr;padding:17px 18px 13px;gap:9px}.sectionhead h2{margin:3px 0;font-size:20px;white-space:nowrap}.sectionhead .search{width:100%;height:39px}.playbook{padding:20px}.playbook h3{margin:18px 0}.framework-head{margin-bottom:11px}.indicator-library{margin-top:20px}.indicator-group,.analytics-grid .card{padding:18px}.analytics-row{padding:11px 0}.drawer{padding:18px 18px 28px}.modal{padding:20px}.modalhead h2{margin-top:3px;font-size:22px}.trade-result{margin:15px -18px 0;padding:15px 18px}.review-section{padding:15px 0}.review-section h3{margin-bottom:10px}.indicator-row{gap:7px;margin-top:6px;padding:8px}.indicator-row input,.indicator-row select{height:38px}.formgrid{gap:10px;margin-top:14px}.formgrid input,.formgrid select,.field{height:41px}.shots{gap:8px}.shot-slot{padding:10px}.formactions{margin-top:15px}}@media(max-width:370px){.topbar h1{max-width:150px;font-size:17px}.mobile-quick-actions{left:8px;right:8px}.mobile-quick-actions button{font-size:12px}.range-tabs button{padding-inline:11px}}.starter-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:15px 17px;border:1px solid #dec985;border-radius:14px;background:linear-gradient(120deg,#fffaf0,#f5edda);box-shadow:0 10px 28px #76591e12}.starter-banner>div{display:flex;align-items:center;gap:12px;min-width:0}.starter-banner b{font-size:14px}.starter-banner p{margin:2px 0 0;color:#6e6652;font-size:11px}.starter-badge,.demo-head,.demo-inline{display:inline-flex;align-items:center;border-radius:99px;background:#b78324;color:#fff;font-size:9px;font-weight:850;letter-spacing:.08em;white-space:nowrap}.starter-badge{height:30px;padding:0 10px}.starter-banner button{height:38px;flex:none;border:1px solid #b78324;border-radius:9px;background:#fff;color:#76591e;padding:0 13px;font-size:11px;font-weight:800}.starter-banner button:hover{background:#153e33;border-color:#153e33;color:#fff}.demo-inline{margin-left:6px;padding:2px 6px;vertical-align:2px}.demo-head{margin:5px 0 0;padding:3px 7px}.demo-shot-guide{grid-column:1/-1;min-height:84px;border:1px dashed #c9b477;border-radius:8px;background:#fffaf0;display:grid;place-content:center;text-align:center;color:#76591e}.demo-shot-guide b,.demo-shot-guide span{display:block}.demo-shot-guide span{margin-top:3px;font-size:10px;color:#8a7953}@media(max-width:720px){.starter-banner{align-items:stretch;flex-direction:column;gap:10px;margin-bottom:11px;padding:12px}.starter-banner>div{align-items:flex-start}.starter-banner b{font-size:13px}.starter-banner p{line-height:1.45}.starter-badge{height:26px;padding-inline:8px}.starter-banner button{width:100%;height:36px}}.mt5-batch-decision{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;margin-top:10px;padding:12px 15px;border:1px solid #d5bd78;border-radius:10px;background:linear-gradient(100deg,#fff9e9,#fffdf7);color:#24483d}.mt5-batch-decision>b{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.mt5-batch-decision span{font-size:14px;font-weight:700}.mt5-batch-decision strong{color:#9d6d11;font-size:17px}.mt5-batch-decision small{justify-self:end;color:#6f766f;font-size:11px}.mt5-head,.mt5-row{grid-template-columns:34px 45px 72px 120px 75px 75px 105px 105px 125px 112px 112px 105px 100px;min-width:1290px}.mt5-index{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e9eeeb;color:#56675e;font:800 11px/1 monospace}.mt5-row .m-batch{border-color:#cfb05c;background:#fff9e8;color:#7a5611;font-weight:800;text-align:center}@media(max-width:720px){.mt5-batch-decision{grid-template-columns:1fr auto}.mt5-batch-decision small{grid-column:1/-1;justify-self:start;line-height:1.45}}.mt5-drop-icon{width:38px;height:38px;margin:0 auto 9px;display:grid;place-items:center;border-radius:50%;background:#e2ebe6;color:#315d4d;font:800 20px/1 monospace;transition:transform .18s,background .18s,color .18s}.mt5-drop.dragging{border-color:#b78324;background:#fff7df;box-shadow:0 0 0 4px #d7b76225}.mt5-drop.dragging .mt5-drop-icon,.mt5-drop.ready .mt5-drop-icon{transform:translateY(3px);background:#153e33;color:#f3d57a}.mt5-drop.ready span{max-width:720px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-actions{align-items:stretch}.auth-choice{height:auto;min-height:68px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:11px 14px;text-align:left}.auth-choice b,.auth-choice span{display:block}.auth-choice b{font-size:13px}.auth-choice span{margin-top:4px;font-size:10px;font-weight:600;opacity:.72}.auth-restore-only{width:100%;margin-top:8px;border:0;background:transparent;color:#7d8881;padding:8px;font-size:10px;text-decoration:underline;text-underline-offset:3px}.transfer-working{padding:23px;border:1px solid #d8c27f;border-radius:12px;background:#fffaf0;text-align:center;color:#24483d}.transfer-working i{width:28px;height:28px;margin:0 auto 10px;display:block;border:3px solid #d9cfad;border-top-color:#153e33;border-radius:50%;animation:transfer-spin .8s linear infinite}.transfer-working b,.transfer-working p{display:block}.transfer-working p{margin:6px 0 0;color:#6d766f;font-size:11px}@keyframes transfer-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.transfer-working i{animation:none}}.mt5-evidence{background:#f7faf8;margin:0 -10px;padding-inline:10px}.evidence-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.evidence-head h3{margin-bottom:4px}.evidence-head p{margin:0;color:var(--muted);font-size:11px}.evidence-head>span{flex:none;border-radius:99px;background:#e3ebe6;color:#345f50;padding:5px 9px;font-size:10px;font-weight:800}.evidence-grid{display:grid;gap:8px;margin-top:12px}.evidence-shot{position:relative;display:grid;grid-template-columns:74px 1fr 30px;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}.evidence-shot img{width:74px;height:54px;border-radius:6px;object-fit:cover;background:#e8eeea}.evidence-shot b,.evidence-shot small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.evidence-shot b{font-size:11px}.evidence-shot small{margin-top:3px;color:var(--muted);font-size:9px}.evidence-shot button{width:28px;height:28px;border:0;border-radius:50%;background:#273a33;color:#fff}@media(max-width:720px){.calendar-card{width:100%;overflow:hidden}.calendar-toolbar{display:grid;grid-template-columns:1fr;padding:12px;gap:9px}.calendar-nav{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}.calendar-nav h2{min-width:0;margin:0;text-align:center;font-size:17px;align-self:center}.calendar-nav .this-month{grid-column:1/-1;width:100%;height:30px}.calendar-month-stat{width:100%;display:grid;grid-template-columns:1fr auto;gap:3px 9px;align-items:end;text-align:left}.calendar-month-stat strong{justify-self:end;font-size:18px}.calendar-month-stat small{grid-column:1/-1}.calendar-hint{padding:6px 12px;text-align:left}.calendar-scroll{width:100%;overflow:hidden;padding:0 7px 9px}.calendar-layout{display:block;width:100%;min-width:0}.calendar-layout>div{width:100%;min-width:0}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{padding:6px 0 4px}.calendar-weekdays span{font-size:8px}.calendar-day{min-width:0;min-height:61px;padding:18px 2px 5px;align-items:center;justify-content:flex-end;text-align:center;border-radius:6px;overflow:hidden}.calendar-day .day-number{right:5px;top:4px;font-size:9px}.calendar-day strong{width:100%;overflow:hidden;font-size:clamp(7px,2.35vw,10px);line-height:1.15;white-space:nowrap;text-overflow:clip}.calendar-day .trade-count{font-size:0;line-height:1.1}.calendar-day .trade-count:before{content:attr(data-count) "笔";font-size:8px}.calendar-day em,.calendar-day .rest-mark{display:none}.calendar-day.today:after{left:4px;top:4px;padding:1px 3px;font-size:6px}.calendar-weeks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px 0 0}.calendar-week{min-height:58px;padding:8px;border-radius:7px}.calendar-week strong{margin:2px 0;font-size:14px}.calendar-week span,.calendar-week small{font-size:8px}}@media(max-width:370px){.calendar-day{min-height:57px}.calendar-day strong{font-size:7px}}body{font-size:16px}.eyebrow,.label{font-size:12px}.topbar h1{font-size:29px}.primary,.secondary,.account-btn,.mt5-btn,.pwa-btn{font-size:14px}.statusline{font-size:13px}.sectionhead h2{font-size:24px}.search{font-size:14px}th{padding:15px 19px;font-size:12px;letter-spacing:.07em}td{padding:19px;font-size:15px}td small{font-size:12px;margin-top:4px}.side,.tag{font-size:12px;padding:5px 9px}.grade{width:33px;height:33px;font-size:14px}.metric span,.metric small{font-size:13px}.playbook h3{font-size:22px}.rules p{font-size:15px}.edit{font-size:13px}.framework-head p{font-size:14px}.indicator-group>p{font-size:14px}.indicator-group header span{font-size:12px}.indicator-token,.analytics-row{font-size:14px}.calendar-nav h2{font-size:22px}.calendar-nav .this-month,.calendar-month-stat span,.calendar-month-stat small{font-size:13px}.calendar-month-stat strong{font-size:23px}.calendar-hint,.calendar-weekdays span,.calendar-day .day-number{font-size:12px}.calendar-day strong{font-size:19px}.calendar-day small,.calendar-day em,.calendar-week span,.calendar-week small{font-size:12px}.calendar-week strong{font-size:19px}.modalhead h2{font-size:27px}.formgrid label{font-size:13px}.formgrid input,.formgrid select,.formgrid textarea,.field,.notearea{font-size:15px}.review-section h3{font-size:17px}.review-help,.analytics-note{font-size:14px}.emotion-field,.custom-mistakes{font-size:13px}.mistake-check span{font-size:14px}.subaction,.shot-slot p,.link-shot a{font-size:13px}.identity-card span{font-size:12px}.identity-card p,.auth-field,.mt5-flow b{font-size:14px}.mt5-stage small,.mt5-drop span,.mt5-privacy,.mt5-summary span{font-size:13px}.mt5-head{font-size:12px}.mt5-row input,.mt5-row select{font-size:14px}.ocr-raw,.evidence-head p,.evidence-shot b{font-size:13px}.evidence-shot small{font-size:11px}.batch-review{border-bottom-color:#dbc079}.batch-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.batch-title h3{margin-top:5px}.batch-rule{padding:5px 9px;border:1px solid #ddc06f;border-radius:99px;background:#fff8e7;color:#76591e;font-size:12px;font-weight:800;white-space:nowrap}.batch-totals{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:13px;padding:13px 14px;border:1px solid #e1c875;border-radius:10px 10px 0 0;background:#fffaf0}.batch-totals b{font-size:15px}.batch-totals span{color:var(--muted);font-size:13px}.batch-totals strong{font-size:16px}.batch-list{border:1px solid #e1c875;border-top:0;border-radius:0 0 10px 10px;overflow:hidden}.batch-deal{width:100%;display:grid;grid-template-columns:29px 1fr 1fr .75fr 1fr 50px;align-items:center;gap:8px;padding:12px 10px;border:0;border-top:1px solid #ebe2c9;background:#fff;color:var(--ink);text-align:left}.batch-deal:first-child{border-top:0}.batch-deal:hover{background:#fffdf7}.batch-deal.current{background:#f0f6f2;box-shadow:inset 3px 0 var(--green)}.batch-deal small,.batch-deal b{display:block}.batch-deal small{color:var(--muted);font-size:11px}.batch-deal b{font-size:14px}.batch-deal>strong{text-align:right;font-size:14px}.batch-deal i{color:#7d8982;font-size:11px;font-style:normal;text-align:right}.batch-index{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#f2ead4;color:#73591e;font-size:11px;font-weight:900}.batch-review>p{margin:10px 0 0;color:var(--muted);font-size:12px}@media(max-width:720px){body{font-size:16px}.topbar .eyebrow{font-size:10px}.topbar h1{font-size:20px}.nav button{font-size:13px}.mobile-quick-actions button{font-size:14px}.rangebar .label{font-size:13px}.rangebar>small,.statusline{font-size:12px}.sectionhead h2{font-size:22px}.modalhead h2{font-size:24px}.calendar-nav h2{font-size:18px}.calendar-month-stat strong{font-size:19px}.calendar-month-stat small,.calendar-hint{font-size:11px}.calendar-weekdays span{font-size:9px}.calendar-day .day-number{font-size:10px}.calendar-day strong{font-size:clamp(8px,2.55vw,11px)}.calendar-day .trade-count:before{font-size:9px}.calendar-week strong{font-size:15px}.calendar-week span,.calendar-week small{font-size:9px}.batch-deal{grid-template-columns:27px 1fr 1fr 52px;padding:11px 8px}.batch-deal>span:nth-child(4){display:none}.batch-deal>strong{text-align:right}.batch-deal i{display:none}.batch-totals{gap:8px}.batch-totals b{font-size:14px}.batch-totals strong{font-size:15px}}@media(max-width:370px){.calendar-day strong{font-size:8px}}.trade-screenshots-top{padding-top:24px}.trade-screenshots-top>h3{margin-bottom:4px}.trade-screenshots-top .shot{aspect-ratio:16/9;background:#14201b}.trade-screenshots-top .shot img{object-fit:contain;cursor:zoom-in}.structured-review-section{padding-top:24px}.structured-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.structured-review-head h3{margin-top:5px}.structured-review-head>span{padding:5px 9px;border-radius:99px;background:#e8f0eb;color:#426354;font-size:12px;font-weight:800}.structured-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.structured-review-grid label{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbf9}.structured-review-grid label:focus-within{border-color:#c19a42;box-shadow:0 0 0 3px #d9bd7221}.structured-review-grid .review-wide{grid-column:1/-1}.structured-review-grid b{font-size:14px}.structured-review-grid small{min-height:36px;color:var(--muted);font-size:12px}.structured-review-grid textarea{width:100%;min-height:90px;padding:10px;border:1px solid #dbe3de;border-radius:8px;background:#fff;resize:vertical;font-size:14px;line-height:1.55}.ocr-deal-editor{background:#fbfcfa}.ocr-deal-entry{margin-top:18px;padding:19px 16px 12px;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0}.ocr-deal-exit{padding:12px 16px 19px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px}.ocr-deal-entry h3{font-size:18px}.ocr-deal-editor h4{margin:13px 0 5px;font-size:13px;color:#53665c}.ocr-editor-help{margin:5px 0 0;color:var(--muted);font-size:12px}.ocr-deal-exit #saveExecution{border-style:solid;border-color:#b78d32;background:#fff9e9;color:#71571f;font-weight:800}.entry-decision-card{overflow:hidden;border:1px solid #ccd9d2;border-radius:13px;background:#fff;box-shadow:0 8px 24px #173f3409}.structured-review-grid .entry-logic-field{padding:15px;border:0;border-radius:0;background:linear-gradient(135deg,#fbfcfa,#f4f8f5)}.structured-review-grid .entry-logic-field:focus-within{box-shadow:inset 4px 0 #c59c40}.structured-review-grid .entry-logic-field small{min-height:0}.entry-confirmation{padding:14px 15px 15px;border-top:1px solid #dbe4de;background:#fff}.entry-confirmation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:11px}.entry-confirmation-head>div:first-child{display:grid;gap:3px}.entry-confirmation-head small{min-height:0}.decision-flow{display:flex;align-items:center;gap:6px;white-space:nowrap}.decision-flow span{padding:5px 8px;border-radius:99px;background:#eaf2ed;color:#315f4d;font-size:10px;font-weight:850}.decision-flow i{color:#b58c34;font-style:normal}.entry-indicator-list{display:grid;gap:7px}.entry-indicator-list .indicator-row{position:relative;grid-template-columns:minmax(185px,1.35fr) minmax(88px,.58fr) minmax(120px,.78fr) minmax(180px,1.2fr);gap:8px;margin:0;padding:9px 10px 9px 13px;border:1px solid #e1e7e3;border-radius:9px;background:#f8faf8}.entry-indicator-list .indicator-row:before{content:"";position:absolute;inset:7px auto 7px 0;width:3px;border-radius:0 4px 4px 0;background:#789d8c}.entry-indicator-list .indicator-row[data-phase=opportunity]:before{background:#c49b3e}.entry-indicator-list .indicator-row[data-phase=trigger]:before{background:#315d85}.entry-indicator-list .indicator-row>div{display:grid;gap:2px;min-width:0}.entry-indicator-list .indicator-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.entry-indicator-list .indicator-row small{min-height:0;color:#708078;font-size:10px;font-weight:750}.entry-indicator-list .indicator-row input,.entry-indicator-list .indicator-row select{height:38px}@media(max-width:720px){.structured-review-grid{grid-template-columns:1fr}.structured-review-grid .review-wide{grid-column:auto}.structured-review-grid small{min-height:0}.structured-review-head{align-items:flex-start}.trade-screenshots-top{padding-top:18px}.ocr-deal-entry,.ocr-deal-exit{padding-inline:12px}.entry-confirmation{padding:12px}.entry-confirmation-head{display:grid;gap:9px}.decision-flow{justify-content:flex-start}.entry-indicator-list .indicator-row{grid-template-columns:1fr 1fr;padding:10px 10px 10px 13px}.entry-indicator-list .indicator-row>div{grid-column:1/-1}.entry-indicator-list .indicator-row .check-note{grid-column:1/-1}.entry-indicator-list .indicator-row b{white-space:normal}.structured-review-grid .entry-logic-field{padding:13px}}.batch-inline{display:inline-flex;align-items:center;margin-left:7px;padding:3px 7px;border-radius:99px;background:#fff4d7;color:#735719;font-size:10px;font-weight:850;vertical-align:2px;white-space:nowrap}.batch-head-badge{display:inline-flex;margin-left:9px;padding:4px 8px;border:1px solid #d9bd72;border-radius:99px;background:#fff8e7;color:#735719;font-size:11px;font-weight:850;vertical-align:3px}.batch-trade-row td{background:#fffefa}.batch-trade-row:hover td{background:#fff9e8}.batch-deal{grid-template-columns:29px 1fr 1fr .75fr 1fr;cursor:default}.batch-deal:hover{background:#fff}.batch-deal>strong{text-align:right}.batch-review>p{font-size:13px;line-height:1.55}.batch-title h3{font-size:18px}.batch-totals b{font-size:16px}@media(max-width:720px){.batch-inline{display:flex;width:max-content;margin:5px 0 0}.batch-head-badge{font-size:10px}.batch-deal{grid-template-columns:27px 1fr 1fr 62px}.batch-deal>span:nth-child(4){display:none}.batch-title{align-items:center}.batch-rule{font-size:10px}.batch-review>p{font-size:12px}}.review-grade-final{display:grid;gap:12px;margin-top:14px;padding:16px;border:1px solid #d8c384;border-radius:11px;background:linear-gradient(135deg,#fffaf0,#f7f4ea)}.review-grade-field{display:grid;grid-template-columns:1fr minmax(190px,230px);align-items:center;gap:16px;color:var(--ink);font-size:0}.review-grade-field>span{display:grid;gap:4px}.review-grade-field b{font-size:15px}.review-grade-field small{color:var(--muted);font-size:12px;line-height:1.45}.review-grade-field select{width:100%;height:44px;padding:0 11px;border:1px solid #cdb46c;border-radius:8px;background:#fff;color:var(--ink);font-size:14px;font-weight:800}.grade-assessment{display:grid;grid-template-columns:auto 48px 1fr;align-items:center;gap:12px;padding:12px 13px;border:1px solid #e2ddce;border-radius:10px;background:#fff}.grade-suggest-label{align-self:start;padding-top:4px;color:#7c867f;font-size:10px;font-weight:900;letter-spacing:.12em}.grade-assessment>strong{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:#e9eeeb;color:#607067;font-family:Georgia,serif;font-size:22px}.grade-assessment>div{display:grid;gap:4px}.grade-assessment>div>b{font-size:14px}.grade-assessment ul{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:12px;line-height:1.45}.grade-assessment li:before{content:"·";margin-right:5px;color:#ae8b38;font-weight:900}.grade-assessment.grade-A>strong{background:#dceee4;color:#0d6846}.grade-assessment.grade-B>strong{background:#f3ead4;color:#8b6818}.grade-assessment.grade-C>strong{background:#f5dddd;color:#a42d29}.grade-override{width:max-content;padding:2px 7px;border-radius:99px;background:#f4ead0;color:#755a19;font-size:11px;font-weight:800}.grade-auto{justify-self:end;margin:0;border-style:solid;border-color:#baa15d;background:#fffdf7;color:#6f571d;font-weight:800}.grade.pending{width:auto;min-width:58px;padding:0 8px;border-radius:99px;background:#eef1ef;color:#6d7872;font-size:11px;white-space:nowrap}@media(max-width:720px){.review-grade-final{padding:13px}.review-grade-field{grid-template-columns:1fr}.review-grade-field select{font-size:15px}.grade-assessment{grid-template-columns:42px 1fr}.grade-suggest-label{grid-column:1/-1;padding:0}.grade-assessment ul{display:grid;gap:2px}.grade-auto{width:100%;justify-self:stretch}}@media(max-width:720px){.topbar>div:first-child{flex:1;min-width:0;padding-right:10px}.topbar h1{max-width:none;font-size:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar h1:after{content:attr(data-mobile-title);font:850 19px/1.2 Bahnschrift,Microsoft YaHei UI,sans-serif;letter-spacing:.04em}.topbar .actions{flex:none;gap:6px}.topbar .actions .account-btn,.topbar .actions .pwa-btn{width:42px;height:42px;padding:0;font-size:0}.topbar .actions .account-btn:before{content:"☁";font-size:18px}.topbar .actions .pwa-btn:before{content:"⇩";font-size:18px}.topbar .actions .pwa-btn.installed{display:none}}@media(max-width:720px)and (display-mode:standalone){body{padding-bottom:calc(142px + env(safe-area-inset-bottom))}.topbar{height:calc(76px + max(env(safe-area-inset-top),18px));padding-top:calc(9px + max(env(safe-area-inset-top),18px))}.sidebar{height:calc(70px + env(safe-area-inset-bottom));padding-bottom:calc(8px + env(safe-area-inset-bottom))}.mobile-quick-actions{bottom:calc(78px + env(safe-area-inset-bottom))}}.password-explain{margin:22px 0 16px;padding:18px;border:1px solid #d7c27f;border-radius:13px;background:linear-gradient(145deg,#fffaf0,#f4f7f3)}.password-explain b{font-size:16px}.password-explain p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.6}#passwordSetupForm{display:grid;gap:12px}.account-actions{flex-wrap:wrap}.account-actions #passwordSetupBtn{border-color:#c9af64;color:#6e571d}@media(max-width:720px){.password-explain{margin-top:15px;padding:15px}.account-actions{display:grid;grid-template-columns:1fr 1fr}.account-actions .danger{grid-column:1/-1;margin:0}.account-actions button{width:100%}}.sync-mini{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#ffffff0a;color:inherit;text-align:left}.sync-mini b{font-size:13px}.sync-mini small{grid-column:2;color:var(--muted);font-size:11px}.full-backup{width:100%;margin:0 0 16px}.safety-actions{display:flex;gap:10px;margin-bottom:22px}.trash-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.trash-row div{display:grid;gap:3px}.trash-row small{color:var(--muted)}.pnl-warning .m-pnl{border-color:#d29d2f;background:#fff8e7}.pnl-warning .m-pnl:focus{box-shadow:0 0 0 3px #d29d2f26}@media(max-width:720px){.safety-actions{display:grid}.trash-row{align-items:flex-start}.data-safety-modal{width:min(100%,96vw)}}.trade-create-modal{width:min(880px,calc(100% - 30px))}.create-execution-section{padding:19px 0}.create-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.create-section-head h3{margin:0 0 4px;font-size:18px}.create-section-head h3 span{display:inline-flex;margin-left:6px;padding:3px 7px;border-radius:99px;background:#eef2ef;color:#65746c;font-size:10px;vertical-align:2px}.create-section-head p{margin:0;color:var(--muted);font-size:13px}.create-section-head .subaction{flex:none;margin-top:0;border-style:solid;border-color:#c8d2cc;font-weight:750}.trade-create-modal .exit-row{grid-template-columns:1fr 1.2fr .8fr 38px}.trade-create-modal #newEntryRows .exit-row:before,.trade-create-modal #newExitRows .exit-row:before{align-self:center;color:#819087;font-size:10px;font-weight:850}.trade-create-modal #newEntryRows .exit-row:before{content:"IN"}.trade-create-modal #newExitRows .exit-row:before{content:"OUT"}.trade-create-modal .exit-row{grid-template-columns:30px 1fr 1.2fr .8fr 38px}.optional-exits{border-bottom:0}.create-note{display:grid;gap:7px;margin-top:4px;color:var(--muted);font-size:13px}.create-note textarea{min-height:96px;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;color:var(--ink);font-size:15px;resize:vertical}.batch-inline.partial{background:#e8f0eb;color:#426354}@media(max-width:720px){.trade-create-modal{width:calc(100% - 18px);max-height:calc(100vh - 18px);padding:20px 17px}.trade-create-modal .formgrid{grid-template-columns:1fr}.create-section-head{display:grid;gap:10px}.create-section-head .subaction{width:100%}.trade-create-modal .exit-row{grid-template-columns:26px 1fr 1fr}.trade-create-modal .exit-row .entry-size,.trade-create-modal .exit-row .exit-size{grid-column:2/3}.trade-create-modal .exit-row .remove{grid-column:3/4;height:39px}.create-section-head p{font-size:12px}}.new-evidence-section{margin:20px 0 6px;padding:17px;border:1px solid #dce3df;border-radius:13px;background:linear-gradient(145deg,#f7faf8,#fff)}.new-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.new-evidence-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;transition:border-color .15s,background .15s}.new-evidence-card.dragging{border-color:#b68a2d;background:#fff9e9}.new-evidence-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.new-evidence-card header div{display:flex;align-items:center;gap:7px}.new-evidence-card header b{font-size:14px}.new-evidence-card header span{padding:3px 7px;border-radius:99px;background:#e8f0eb;color:#426354;font-size:10px;font-weight:850}.new-evidence-clear{border:0;background:transparent;color:var(--red);font-size:11px}.new-evidence-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;min-height:54px;margin:10px 0;padding:6px;border:1px dashed #c7d1cb;border-radius:8px;background:#f7f9f7;overflow:hidden}.new-evidence-preview>span{grid-column:1/-1;align-self:center;text-align:center;color:#89958e;font-size:11px}.new-evidence-preview img{width:100%;height:54px;border-radius:5px;background:#13201a;object-fit:contain}.new-evidence-picker{display:flex;align-items:center;justify-content:center;height:37px;border:1px solid #bcc9c1;border-radius:7px;background:#fff;color:#183f34;font-size:12px;font-weight:800;cursor:pointer}.new-evidence-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.new-tv-link{width:100%;height:39px;margin-top:7px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#fbfcfb;color:var(--ink);font-size:12px}.new-tv-link:focus{border-color:#c09a42;outline:0;box-shadow:0 0 0 3px #d9bd7221}.new-evidence-card.has-files .new-evidence-preview{border-style:solid;background:#14201b}@media(max-width:720px){.new-evidence-section{margin-top:15px;padding:13px}.new-evidence-grid{gap:8px}.new-evidence-card{padding:9px}.new-evidence-card header b{font-size:13px}.new-evidence-preview{grid-template-columns:repeat(2,1fr);min-height:49px}.new-evidence-preview img{height:49px}.new-evidence-picker{font-size:11px}.new-tv-link{font-size:11px;padding-inline:7px}}@media(max-width:390px){.new-evidence-grid{grid-template-columns:1fr}.new-evidence-preview{grid-template-columns:repeat(3,1fr)}}.new-evidence-card>button.new-evidence-picker{width:100%}.trade-log-tools{display:flex;align-items:center;gap:9px}.trade-log-tools .secondary{white-space:nowrap}.trade-log-tools .secondary.active{border-color:#c4932f;background:#fff8e8;color:#755615}.bulk-delete-bar{position:sticky;top:116px;z-index:12;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 27px;border-block:1px solid #ead8a5;background:#fff9e9f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 7px 18px #6f552214}.bulk-delete-bar label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800}.bulk-delete-bar input,.trade-select{width:20px;height:20px;accent-color:var(--green)}.bulk-delete-bar strong{margin-right:auto;color:#76591e;font-size:12px}.bulk-delete-bar .danger{margin:0;background:#fff;color:var(--red)}.bulk-delete-bar .danger:not(:disabled):hover{background:#a9433f;border-color:#a9433f;color:#fff}.bulk-delete-bar button:disabled{cursor:not-allowed;opacity:.48}.trade-select-cell{width:70px;text-align:center}.bulk-select-table tbody tr.bulk-selected{background:#fff8e8;box-shadow:inset 4px 0 #c3912f}.bulk-select-table tbody tr:hover{background:#fffaf0}.trade-view-switch{display:flex;gap:4px;padding:3px;border:1px solid #dcc47f;border-radius:10px;background:#fff}.trade-view-switch button{height:36px;border:0;border-radius:7px;padding:0 12px;background:transparent;color:#6d6655;font-size:12px;font-weight:850;white-space:nowrap}.trade-view-switch button.active{background:var(--green);color:#fff;box-shadow:0 4px 10px #153e3324}.trade-view-switch small{margin-left:4px;color:inherit;font-size:9px;opacity:.75}.deal-audit-table{min-width:1180px}.deal-audit-table .mt5-ticket{font:800 13px ui-monospace,SFMono-Regular,Consolas,monospace;color:#275f4c}.deal-audit-table .broker-audit-time{color:#96732a;font-size:9px}.deal-prices b{font:800 12px ui-monospace,SFMono-Regular,Consolas,monospace}.deal-status{display:inline-flex;padding:4px 7px;border-radius:99px;background:#edf1ee;color:#637169;font-size:10px;font-weight:800}.deal-status.open{background:#fff2c8;color:#805f16}.deal-status.partial{background:#e8f0eb;color:#426354}.trade-date-filter{display:flex;align-items:end;gap:5px;padding:3px;border:1px solid #dcc47f;border-radius:10px;background:#fff}.trade-date-filter label{display:grid;gap:1px}.trade-date-filter label span{color:#85775a;font-size:8px;line-height:1}.trade-date-filter input{width:122px;height:32px;border:0;background:#faf8f1;padding:0 7px;color:var(--ink);font-size:11px}.trade-date-filter i{align-self:center;color:#9c8d6b;font-size:10px;font-style:normal}.trade-date-filter button{height:32px;border:0;border-radius:7px;padding:0 9px;background:#f4efe1;color:#72591e;font-size:10px;font-weight:850}.trade-date-filter button.active{background:#e2e9e5;color:#426354}.actions .header-bulk-toggle{border-color:#d2ad54;background:#fff9e9;color:#73571e}.actions .header-bulk-cancel{border-color:#cbd6d0}.actions .header-bulk-confirm{margin:0;border-color:#c7615b;background:#fff3f1;color:#a43e39}.actions .header-bulk-confirm:not(:disabled):hover{background:#a9433f;color:#fff}.actions .header-bulk-confirm:disabled{cursor:not-allowed;opacity:.5}@media(max-width:720px){.trade-log-tools{display:grid;grid-template-columns:1fr auto}.trade-log-tools .search{min-width:0}.trade-log-tools .secondary{height:39px;padding-inline:12px}.bulk-delete-bar{top:76px;display:grid;grid-template-columns:1fr auto;padding:10px 14px;gap:8px}.trade-view-switch,.trade-date-filter{grid-column:1/-1}.trade-view-switch{display:grid;grid-template-columns:1fr 1fr}.trade-date-filter{display:grid;grid-template-columns:1fr auto 1fr auto auto}.trade-date-filter label{min-width:0}.trade-date-filter input{width:100%;min-width:0}.bulk-delete-bar strong{text-align:right}.bulk-delete-bar button{width:100%;margin:0}.bulk-delete-bar .danger{grid-column:1/-1}.trade-select-cell{width:58px;padding-inline:12px}}.mobile-sync{display:none;position:relative;width:44px;height:44px;border:1px solid #cdd9d2;border-radius:11px;background:#fff;color:#315d4d;font-size:18px}.mobile-sync.ok{color:#0c7857;background:#edf8f3}.mobile-sync.off{color:#a13f38;background:#fff2f1}.mobile-sync b{position:absolute;right:-4px;top:-4px;min-width:19px;height:19px;padding:0 4px;border-radius:99px;background:#b8811f;color:#fff;font-size:10px;line-height:19px}.update-ready{position:fixed;right:18px;bottom:18px;z-index:100;display:grid;gap:2px;min-width:240px;padding:13px 16px;border:1px solid #d3b55e;border-radius:12px;background:#173f34;color:#fff;text-align:left;box-shadow:0 18px 42px #0b261d42}.update-ready span{color:#cfe0d8;font-size:11px}.mt5-field{display:block;min-width:0}.mt5-field>small,.mt5-check>small{display:none}.mt5-field input,.mt5-field select{width:100%}.mt5-index{display:grid;gap:3px}.mt5-index em{color:#a23f35;font-size:8px;font-style:normal;line-height:1}.mt5-index em.corrected{color:#24755c}.mt5-row.pnl-corrected{box-shadow:inset 3px 0 #4a997c}.mt5-row.possible-duplicate{background:#fff8e8;box-shadow:inset 3px 0 #c3912f}.batch-deal{width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.batch-deal:hover,.batch-deal:focus-visible{background:#edf5f0;outline:2px solid #d1ad52;outline-offset:-2px}.batch-deal i{color:#916a16;font-size:11px;font-style:normal;font-weight:850}.mt5-field.session select,.session-edit-field select{border-color:#b99037;background:#fffaf0;font-weight:800;color:#694f17}.session-edit-field>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.session-edit-field small{color:#96732a;font-size:10px;font-weight:700}.mt5-batch-edit-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;padding:11px;border:1px solid #d8bd6c;border-radius:10px;background:#fffaf0}.mt5-batch-edit-field label{display:grid;gap:7px;color:#694f17;font-size:12px;font-weight:800}.mt5-batch-edit-field input{width:100%;border-color:#b99037;background:#fff;font-weight:800;color:#694f17}.mt5-batch-edit-field .subaction{height:42px;margin:0;border-style:solid;border-color:#b99037;background:#fff;color:#694f17}.mt5-batch-edit-field>small{grid-column:1/-1;color:#806c3c;font-size:10px;line-height:1.45}.mt5-timezone-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:12px 0;padding:12px 15px;border:1px solid #dfc678;border-radius:10px;background:#fffaf0;color:#654e18}.mt5-timezone-note b{white-space:nowrap}.mt5-timezone-note span{color:#7b6940;font-size:12px;text-align:right}.timezone-migration{margin-top:18px;padding:17px;border:1px solid #dfc678;border-radius:12px;background:#fffaf0}.timezone-migration-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.timezone-migration-head h3{margin:0}.timezone-migration-head p{margin:4px 0;color:#6f654e;font-size:12px}.timezone-migration-head>span{padding:5px 9px;border-radius:99px;background:#f1dfaa;color:#6d5218;font-size:11px;font-weight:800;white-space:nowrap}.timezone-preview{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px;border-radius:8px;background:#fff}.timezone-preview i{color:#a17820}.timezone-preview strong{color:#28644f}.timezone-migration>button{width:100%;margin-top:8px}.timezone-complete{margin-top:11px;padding:10px;border-radius:8px;background:#e9f4ee;color:#246049;font-weight:800}.timezone-undo{color:#805c15}.account-pre-sync{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 13px;border:1px solid #a9cfbd;border-radius:10px;background:#edf7f2}.account-pre-sync.pending{border-color:#dfc678;background:#fffaf0}.account-pre-sync b,.account-pre-sync small{display:block}.account-pre-sync small{margin-top:2px;color:#65756d;font-size:11px}.account-pre-sync button{flex:0 0 auto}.safe-merge-button{width:100%;height:auto;min-height:58px;margin-top:13px;padding:11px 15px;text-align:left}.safe-merge-button b,.safe-merge-button span{display:block}.safe-merge-button b{font-size:15px}.safe-merge-button span{margin-top:2px;color:#c9ddd4;font-size:11px}.account-more{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfa}.account-more summary{padding:12px 14px;color:#68776f;font-size:12px;font-weight:800;cursor:pointer}.account-more>button{width:calc(100% - 20px);margin:0 10px 9px}.account-more .auth-choice{height:auto;min-height:48px;text-align:left}.account-more .auth-choice b,.account-more .auth-choice span{display:block}.account-more .auth-choice span{color:#76847d;font-size:10px}.danger-link{color:#9f4842}.trade-screenshots-top .shots{gap:14px}.trade-screenshots-top .shot-slot{min-width:0;padding:15px;overflow:hidden;background:#fbfcfa}.trade-screenshots-top .shot-grid{grid-template-columns:minmax(0,1fr);margin-top:12px}.tv-preview{grid-column:auto;min-width:0;min-height:0;aspect-ratio:auto!important;overflow:visible;background:transparent;border-radius:10px}.tv-preview a{position:relative;inset:auto;display:block;width:100%;aspect-ratio:16/10;border:1px solid #d7e0db;border-radius:10px;background:#f0f4f1;color:#fff;text-decoration:none;overflow:hidden;box-shadow:0 7px 18px #163b300d}.tv-preview img,.trade-screenshots-top .tv-preview img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;transition:transform .2s}.tv-preview:hover img{transform:scale(1.006)}.tv-preview a>span{position:absolute;inset:auto 0 0;padding:28px 12px 10px;background:linear-gradient(transparent,#071b14d9);text-align:left;transition:opacity .18s}.tv-preview a b,.tv-preview a small{display:block}.tv-preview a small{margin-top:2px;color:#d4e2dc;font-size:11px}.tv-preview .tv-preview-error{display:none}.tv-preview.loaded .tv-preview-label{opacity:0}.tv-preview.loaded:hover .tv-preview-label,.tv-preview.loaded:focus-within .tv-preview-label{opacity:1}.tv-preview.fallback a{display:grid;place-items:center;background:#10251e}.tv-preview.fallback .tv-preview-label{display:none}.tv-preview.fallback .tv-preview-error{display:block;position:static;padding:16px;background:none;text-align:center}.tv-preview.fallback a b{font-size:15px}.trade-screenshots-top .tv-preview>button{z-index:2;top:8px;right:8px;border:1px solid #ffffff59;box-shadow:0 3px 9px #06171038}.trade-screenshots-top .shot-actions{gap:8px;margin-top:2px}.trade-screenshots-top .shot-actions .subaction{margin-top:8px;background:#fff;font-weight:750}@media(max-width:720px){.mt5-timezone-note{align-items:flex-start;flex-direction:column;gap:3px}.mt5-timezone-note span{text-align:left;font-size:12px}.account-pre-sync{align-items:stretch;flex-direction:column}.account-pre-sync button{width:100%}.safe-merge-button{min-height:62px}.mt5-batch-edit-field{grid-template-columns:1fr}.mt5-batch-edit-field .subaction{width:100%}.mt5-batch-edit-field>small{grid-column:auto}.mobile-sync{display:inline-grid;place-items:center;flex:0 0 44px}.topbar .actions{gap:7px}.overlay{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-sizing:border-box}.modal{position:relative;left:auto;top:auto;transform:none;width:100%;max-height:calc(100dvh - max(16px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));margin:auto;border-radius:16px;padding:18px}.drawer{position:relative;inset:auto;width:100%;height:calc(100dvh - max(16px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));padding:18px 18px calc(24px + env(safe-area-inset-bottom));border-radius:16px}.modalhead{position:sticky;top:-18px;z-index:5;margin:-18px -18px 12px;padding:18px;background:#fffffff2;border-bottom:1px solid #e2e8e4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modalhead .close,.close{width:44px;height:44px;flex:0 0 44px}.subaction,.new-evidence-picker{min-height:44px}.shot button,.link-shot button,.evidence-shot button{width:44px;height:44px;right:2px;top:2px}.remove{min-height:44px}.mt5-modal.review{padding:14px}.mt5-table{overflow:visible;border:0;background:transparent}.mt5-head{display:none}.mt5-row{min-width:0;display:grid;grid-template-columns:58px 1fr 1fr;gap:10px;margin:10px 0;padding:14px;border:1px solid #d8e1dc;border-radius:14px;background:#fff;box-shadow:0 7px 20px #133a2f0b}.mt5-row:first-child{border-top:1px solid #d8e1dc}.mt5-index{grid-column:1;grid-row:1;align-content:center}.mt5-index b{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#173f34;color:#fff}.mt5-check{grid-column:2;grid-row:1;display:flex;align-items:center;gap:8px;justify-content:flex-start}.mt5-check>small,.mt5-field>small{display:block;margin-bottom:5px;color:#708078;font-size:10px;font-weight:800;letter-spacing:.04em}.mt5-check input{width:24px;height:24px}.mt5-field{grid-column:auto}.mt5-field.batch{grid-column:3;grid-row:1}.mt5-field:nth-of-type(3),.mt5-field:nth-of-type(8),.mt5-field:nth-of-type(9),.mt5-field:nth-of-type(10),.mt5-field.session{grid-column:1/-1}.mt5-field.session{padding:10px;border:1px solid #e0c474;border-radius:10px;background:#fffaf0}.mt5-row input,.mt5-row select{height:44px;font-size:16px}.mt5-row.possible-duplicate{border-color:#d2aa4d}.mt5-review-actions{position:sticky;bottom:0;z-index:4;margin:16px -14px -14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#fffffff0;border-top:1px solid #dfe6e2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast,.offline-banner{left:12px;right:12px;bottom:calc(144px + env(safe-area-inset-bottom));transform:none;text-align:center}.toast{right:12px}.update-ready{left:12px;right:12px;bottom:calc(144px + env(safe-area-inset-bottom))}.tv-preview a small{font-size:11px}}@media(max-width:520px){.trade-screenshots-top .shots{grid-template-columns:1fr}.trade-screenshots-top .shot-slot{padding:13px}.tv-preview a{aspect-ratio:16/10}}.tv-link-dialog{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:18px;background:#071b1478;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tv-link-panel{width:min(480px,100%);padding:24px;border:1px solid #d5dfd9;border-radius:16px;background:#fff;box-shadow:0 24px 70px #071b1440}.tv-link-panel h3{margin:7px 0 4px;font-size:22px}.tv-link-panel p{margin:0 0 16px;color:var(--muted);font-size:13px}.tv-link-input{width:100%;height:48px;padding:0 13px;border:1px solid #cbd8d1;border-radius:10px;background:#fbfcfb;color:var(--ink);font-size:15px}.tv-link-input:focus{outline:0;border-color:#b58b32;box-shadow:0 0 0 4px #d4b45f24}.tv-link-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.tv-link-actions button{min-width:106px;height:44px}@media(max-width:520px){.tv-link-dialog{align-items:end;padding:10px 10px calc(10px + env(safe-area-inset-bottom))}.tv-link-panel{padding:20px 16px;border-radius:16px}.tv-link-actions{display:grid;grid-template-columns:1fr 1fr}.tv-link-actions button{width:100%;min-width:0}}.entry-groups-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.entry-group-card{min-width:0;padding:14px;border:1px solid #d8e1dc;border-radius:12px;background:#fafbf9}.entry-group-card header{display:grid;grid-template-columns:32px 1fr;gap:9px;align-items:end}.entry-group-index{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#173f34;color:#fff;font-size:12px;font-weight:850}.entry-group-card label{display:grid;gap:5px;color:#66776e;font-size:11px;font-weight:750}.entry-group-card select,.entry-group-card input,.entry-group-card textarea,.entry-group-select{width:100%;border:1px solid #d5dfd9;border-radius:8px;background:#fff;color:var(--ink)}.entry-group-card select,.entry-group-card input,.entry-group-select{height:40px;padding:0 9px}.entry-group-logic{margin-top:11px}.entry-group-logic textarea{min-height:72px;padding:9px;resize:vertical;font-size:13px;line-height:1.45}.entry-group-fields{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:8px;margin-top:10px}.entry-group-card .add-group-fill{width:100%;margin-top:10px}.entry-group-section>.review-help{margin:0 0 12px}.entry-fills-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 8px}.entry-fills-title b{font-size:14px}.entry-fills-title span{color:var(--muted);font-size:11px}.entry-fill-row.grouped{grid-template-columns:minmax(170px,1.25fr) minmax(145px,1fr) minmax(120px,.9fr) minmax(82px,.55fr) 38px;align-items:end}.entry-fill-field{display:grid;min-width:0;gap:5px;color:#708078;font-size:10px;font-weight:800}.entry-fill-field>span{padding-left:2px}.entry-fill-field input,.entry-fill-field select{width:100%;min-width:0}.entry-fill-row.grouped .remove{height:39px}.trade-create-modal #newEntryRows .entry-fill-row.grouped:before{display:none}.trade-create-modal .entry-fill-row.grouped{grid-template-columns:minmax(170px,1.25fr) minmax(145px,1fr) minmax(120px,.9fr) minmax(82px,.55fr) 38px}.entry-risk-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.entry-risk-strip span{display:grid;gap:3px;padding:10px 12px;border:1px solid #dce4df;border-radius:10px;background:#fff;color:#65766d;font-size:10px}.entry-risk-strip b,.entry-risk-strip strong{color:#14231e;font-size:15px}.entry-risk-strip strong{color:#9a6c13}.add-entry-group{width:100%;margin-top:10px;border-color:#c6a756;background:#fffaf0;color:#76591e;font-weight:800}@media(max-width:720px){.entry-groups-list{grid-template-columns:1fr}.entry-group-fields{grid-template-columns:1fr 1fr}.entry-group-fields label:last-child{grid-column:1/-1}.entry-fill-row.grouped,.trade-create-modal .entry-fill-row.grouped{grid-template-columns:1fr 1fr;padding:12px}.entry-fill-row.grouped .entry-fill-field.group{grid-column:1/-1}.entry-fill-row.grouped .entry-fill-field.size{grid-column:1}.trade-create-modal .entry-fill-row.grouped .entry-size{grid-column:auto}.entry-fill-row.grouped .remove,.trade-create-modal .entry-fill-row.grouped .remove{grid-column:2;align-self:end;min-height:39px}.entry-risk-strip{grid-template-columns:1fr 1fr}.entry-risk-strip span:last-child{grid-column:1/-1}.entry-fills-title{align-items:flex-start;flex-direction:column;gap:2px}}.review-section #entryRows .entry-fill-row.grouped:before,.trade-create-modal #newEntryRows .entry-fill-row.grouped:before{content:none!important;display:none!important}.quick-trade-modal{width:min(760px,calc(100% - 30px))}.quick-trade-core{margin-top:18px;padding:18px;border:1px solid #d8e2dc;border-radius:15px;background:linear-gradient(145deg,#f7faf8,#fff)}.quick-main-fields{display:grid;grid-template-columns:1fr 1.35fr;gap:12px}.quick-main-fields label,.quick-stop-field{display:grid;gap:6px;color:#66776e;font-size:12px;font-weight:800}.quick-main-fields select,.quick-stop-field input{width:100%;height:46px;padding:0 12px;border:1px solid #cad7d0;border-radius:9px;background:#fff;color:var(--ink);font-size:16px}.quick-entry-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 8px}.quick-entry-title>div{display:flex;align-items:center;gap:9px}.quick-entry-title b{font-size:16px}.quick-entry-title small{color:var(--muted);font-size:12px}.quick-step{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:900}.quick-entry-rows{display:grid;gap:8px}.quick-entry-rows .entry-fill-row.grouped{grid-template-columns:minmax(0,1fr) 130px 44px;padding:12px;align-items:end}.quick-entry-rows .entry-fill-field.group,.quick-entry-rows .entry-fill-field:has(.entry-time){display:none}.quick-entry-rows .entry-fill-field{font-size:11px}.quick-entry-rows .entry-fill-field input{height:44px;font-size:16px}.quick-entry-rows .entry-fill-row:first-child .remove{visibility:hidden}.quick-entry-rows .remove{grid-column:auto!important;width:44px;height:44px!important;align-self:end}.quick-stop-field{width:min(240px,100%);margin-top:12px}.quick-stop-field input{font-variant-numeric:tabular-nums}.quick-entry-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.quick-entry-actions .subaction{margin:0;min-height:42px;font-weight:800}.quick-entry-actions .addon{border-style:solid;border-color:#c3a251;background:#fffaf0;color:#74581b}.quick-disclosure{margin-top:12px;border:1px solid #dce4df;border-radius:12px;background:#fff;overflow:hidden}.quick-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 17px;cursor:pointer;list-style:none}.quick-disclosure>summary::-webkit-details-marker{display:none}.quick-disclosure>summary span{display:grid;gap:2px}.quick-disclosure>summary b{font-size:15px}.quick-disclosure>summary small{color:var(--muted);font-size:12px}.quick-disclosure>summary i{color:#8a6a22;font-size:12px;font-style:normal;font-weight:800}.quick-disclosure[open]>summary{border-bottom:1px solid #e2e8e4;background:#fafbf9}.quick-disclosure[open]>summary i{font-size:0}.quick-disclosure[open]>summary i:after{content:"收起";font-size:12px}.quick-disclosure .new-evidence-section{margin:0;padding:15px;border:0;border-radius:0;background:#fff}.quick-advanced-body{padding:0 17px 17px}.quick-advanced-body>.formgrid{margin-top:17px}.quick-advanced-body .create-note{margin-top:17px}.quick-form-actions{position:sticky;bottom:-30px;z-index:3;margin:18px -30px -30px;padding:14px 30px;background:#fffffff2;border-top:1px solid #e1e7e3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(max-width:720px){.quick-trade-modal{width:100%}.quick-trade-core{padding:14px}.quick-main-fields{grid-template-columns:1fr 1fr;gap:9px}.quick-main-fields select,.quick-stop-field input{height:48px;font-size:16px}.quick-entry-title{align-items:flex-start}.quick-entry-title small{max-width:150px;text-align:right}.quick-entry-rows .entry-fill-row.grouped{grid-template-columns:minmax(0,1fr) 94px 44px;padding:10px}.quick-entry-rows .entry-fill-field input{height:46px}.quick-stop-field{width:100%}.quick-entry-actions{display:grid;grid-template-columns:1fr 1fr}.quick-entry-actions .subaction{width:100%;padding-inline:8px;font-size:12px}.quick-disclosure>summary{padding:14px}.quick-advanced-body{padding:0 14px 14px}.quick-form-actions{bottom:-18px;margin:16px -18px -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom))}.quick-form-actions .primary{flex:1}}@media(max-width:390px){.quick-main-fields{grid-template-columns:1fr}.quick-entry-title{display:grid}.quick-entry-title small{max-width:none;text-align:left}.quick-entry-rows .entry-fill-row.grouped{grid-template-columns:minmax(0,1fr) 82px 42px}}.drawer-save-status{position:sticky;bottom:0;z-index:2;margin:14px 0 -8px;padding:8px 11px;border:1px solid #d7e2dc;border-radius:9px;background:#f2f7f4;color:#3c6254;font-size:12px;font-weight:750;text-align:center}.drawer-save-status.save-confirmed{border-color:#9bc8b3;background:#eaf6f0;color:#165a43;font-size:13px;box-shadow:0 8px 22px #173f3414}.drawer-save-status.save-error{border-color:#dca9a4;background:#fff1f0;color:#9c342d}.build-version{display:block;margin-top:10px;color:#78998a;font:700 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em;text-align:center}.top-build{display:inline-flex;align-items:center;margin-left:6px;padding:2px 5px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font:700 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;vertical-align:middle}.execution-draft-notice{display:flex;align-items:center;gap:10px;margin:8px 0 13px;padding:10px 12px;border:1px solid #d8bd76;border-left:4px solid #b98727;border-radius:9px;background:#fffaf0;color:#6f5724}.execution-draft-notice b{flex:0 0 auto;font-size:12px}.execution-draft-notice span{font-size:11px;line-height:1.45}.entry-group-section:has(.execution-draft-notice) .entry-risk-strip:after{content:"以上为上次完整资料的统计";grid-column:1/-1;color:#8a7650;font-size:10px;text-align:right}@media(max-width:720px){.execution-draft-notice{align-items:flex-start;flex-direction:column;gap:2px;padding:10px}.execution-draft-notice span{font-size:12px}}.mt5-modal.ocr-modal{width:min(660px,calc(100% - 30px));padding:34px}.ocr-modal .ocr-working{padding:16px 10px 8px}.ocr-modal .scan-mark{width:72px;height:72px;margin-bottom:24px;border-radius:22px;font-size:19px;box-shadow:0 0 0 9px #edf3ef}.ocr-modal .label{color:#71827a}.ocr-modal h2{margin:12px 0 6px;font-size:28px}.ocr-lead{min-height:44px;margin:0 auto;max-width:520px;font-size:14px;line-height:1.55}.ocr-modal .ocr-bar{height:10px;margin:28px 0 14px;background:#e2e9e5}.ocr-modal .ocr-bar i{width:3%;background:linear-gradient(90deg,#b78324,#e1c97f 46%,#2f735e)}.ocr-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ocr-steps span{position:relative;padding:10px 8px;border:1px solid #dbe4df;border-radius:9px;background:#f7f9f7;color:#75847c;font-size:11px;font-weight:800}.ocr-steps span:before{content:"○";margin-right:6px}.ocr-steps span.current{border-color:#c8a350;background:#fff9e9;color:#72571c}.ocr-steps span.current:before{content:"●";color:#bc8b25}.ocr-steps span.done{border-color:#aed0c1;background:#edf6f1;color:#275f4c}.ocr-steps span.done:before{content:"✓";color:#247056}.ocr-meta{display:flex;justify-content:space-between;gap:12px;margin:13px 2px 0;color:#7b8982;font-size:11px}.ocr-cancel{margin-top:22px;min-width:128px}.ocr-error-modal{width:min(640px,calc(100% - 30px))}.ocr-error-card{margin:18px 0;padding:18px;border-left:4px solid #bb8b2c;border-radius:10px;background:#fff8e8}.ocr-error-card b{font-size:15px}.ocr-error-card p{margin:6px 0 0;color:#66766e;line-height:1.55}.ocr-error-modal .formactions{flex-wrap:wrap}.ocr-error-modal #retryMt5{min-width:130px}@media(max-width:720px){.mt5-modal.ocr-modal{padding:24px 18px}.ocr-modal .ocr-working{padding:10px 0 4px}.ocr-modal .scan-mark{width:62px;height:62px;margin-bottom:20px}.ocr-modal h2{font-size:23px}.ocr-lead{font-size:13px}.ocr-steps{gap:5px}.ocr-steps span{padding:9px 4px;font-size:10px}.ocr-steps span:before{display:block;margin:0 0 3px}.ocr-meta{display:grid;justify-content:center;text-align:center;gap:3px}.ocr-error-modal .formactions{display:grid;grid-template-columns:1fr 1fr}.ocr-error-modal #manualMt5{grid-column:1/-1}.ocr-error-modal #retryMt5{min-width:0}}@media(prefers-reduced-motion:reduce){.ocr-bar i{transition:none}}.lab-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:182px;padding:31px 34px;border-radius:18px;overflow:hidden;background:linear-gradient(117deg,#102f27,#173f34 60%,#6d541f 155%);color:#fff;box-shadow:0 22px 52px #153e3329}.lab-hero:after{content:"R";position:absolute;right:145px;top:-54px;color:#ffffff08;font:900 210px/1 Bahnschrift,Arial Narrow,sans-serif;transform:rotate(8deg)}.lab-hero .label{color:#d8bf7a}.lab-hero h2{position:relative;margin:8px 0 5px;font:750 34px/1.15 Bahnschrift,Microsoft YaHei UI,sans-serif}.lab-hero p{position:relative;margin:0;color:#c6d7cf}.lab-new{position:relative;z-index:1;min-width:164px;height:54px;border:1px solid #e5cf91;border-radius:11px;background:#fff8e6;color:#644b16;font-weight:900;box-shadow:0 10px 26px #071b1433}.lab-new span{margin-right:8px;font-size:20px}.lab-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.lab-metrics article{min-height:118px;padding:19px 21px;border:1px solid var(--line);border-radius:14px;background:#fff}.lab-metrics small,.lab-metrics span{display:block;color:var(--muted)}.lab-metrics small{font-size:11px;font-weight:800;letter-spacing:.08em}.lab-metrics strong{display:block;margin:5px 0 2px;font:800 30px Bahnschrift,Arial Narrow,sans-serif}.lab-metrics span{font-size:11px}.lab-ledger{overflow:hidden}.lab-list{border-top:1px solid #edf0ed}.lab-row{width:100%;display:grid;grid-template-columns:145px 200px minmax(210px,1fr) 100px;gap:16px;align-items:center;padding:17px 24px;border:0;border-bottom:1px solid #edf0ed;background:#fff;color:var(--ink);text-align:left}.lab-row:hover{background:#fcfaf4}.lab-row b,.lab-row small{display:block}.lab-row small{margin-top:2px;color:var(--muted);font-size:11px}.lab-logic{overflow:hidden;color:#4f6057;text-overflow:ellipsis;white-space:nowrap}.lab-outcome{text-align:right}.lab-empty{padding:65px 20px;text-align:center}.lab-empty b{font-size:18px}.lab-empty p{color:var(--muted)}.lab-drawer{width:min(1040px,calc(100% - 48px));background:#fcfdfb}.lab-form-intro{margin:4px 0 0;color:var(--muted)}.lab-form-section{padding:23px 0;border-bottom:1px solid var(--line)}.lab-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:13px}.lab-section-title b{font-size:16px}.lab-section-title span{color:var(--muted);font-size:11px}.lab-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lab-form-grid label,.lab-price-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:750}.lab-form-grid input,.lab-form-grid select,.lab-price-grid input,.lab-exit-price input,.lab-note input{width:100%;height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 11px;color:var(--ink)}.lab-logic-input{width:100%;min-height:86px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;resize:vertical}.lab-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.lab-indicators{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.lab-indicators summary{padding:13px 14px;font-weight:800;cursor:pointer}.lab-indicators summary span{float:right;color:var(--muted);font-size:11px;font-weight:600}.lab-indicators>div{padding:0 12px 12px}.lab-indicators label{display:grid;grid-template-columns:1fr 145px;align-items:center;gap:12px;padding:9px;border-top:1px solid #edf0ed}.lab-indicators b,.lab-indicators small{display:block}.lab-indicators small{color:var(--muted);font-size:10px}.lab-indicators select{height:36px;border:1px solid var(--line);border-radius:7px;background:#fbfcfb;padding:0 8px}.lab-evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.lab-evidence{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.lab-evidence header{display:flex;justify-content:space-between}.lab-evidence header b,.lab-evidence header small{display:block}.lab-evidence header small{color:var(--muted);font-size:10px}.lab-evidence header>span{color:#8d7336;font-size:10px;font-weight:800}.lab-evidence-preview{height:155px;margin:10px 0;border:1px dashed #bdcbc3;border-radius:9px;background:#f3f6f3;display:grid;place-items:center;overflow:hidden;text-align:center}.lab-evidence-preview>div b{display:block;color:#9aaa9f;font:900 28px monospace}.lab-evidence-preview small{color:var(--muted)}.lab-evidence-preview img{width:100%;height:100%;object-fit:contain;background:#10231d}.lab-evidence-preview a{position:relative;width:100%;height:100%;display:block}.lab-evidence-preview a span{position:absolute;left:9px;bottom:8px;padding:4px 7px;border-radius:5px;background:#0b1d17d9;color:#fff;font-size:10px}.lab-evidence-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lab-evidence-actions label span,.lab-evidence-actions button{height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font-size:11px;font-weight:750}.lab-evidence-actions label{cursor:pointer}.lab-evidence-actions button:disabled{opacity:.38;cursor:default}.lab-link-input{width:100%;height:39px;margin-top:7px;border:1px solid var(--line);border-radius:7px;padding:0 9px;font-size:11px}.lab-result-picker{display:flex;flex-wrap:wrap;gap:7px}.lab-result-picker label{cursor:pointer}.lab-result-picker input{position:absolute;opacity:0}.lab-result-picker span{min-width:88px;height:39px;display:grid;place-items:center;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:12px;font-weight:800}.lab-result-picker input:checked+span{border-color:#b78324;background:#f7edcf;color:#76591e;box-shadow:inset 0 0 0 1px #d8b766}.lab-exit-price,.lab-note{display:grid;gap:5px;margin-top:12px;color:var(--muted);font-size:11px;font-weight:750}.lab-overlay .formactions{position:sticky;bottom:-31px;margin:0 -34px -31px;padding:14px 34px;background:#fffffff2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(max-width:1100px){.lab-metrics{grid-template-columns:1fr 1fr}.lab-row{grid-template-columns:125px 170px 1fr 90px}}@media(max-width:720px){.nav{grid-template-columns:repeat(6,1fr)}.nav button{font-size:11px}.lab-hero{min-height:0;padding:21px;display:grid}.lab-hero:after{right:-10px;top:-35px;font-size:150px}.lab-hero h2{font-size:27px}.lab-hero p{max-width:270px;font-size:12px}.lab-new{width:100%;height:48px}.lab-metrics{grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.lab-metrics article{min-height:101px;padding:14px}.lab-metrics strong{font-size:26px}.lab-ledger .sectionhead{padding-bottom:11px}.lab-row{grid-template-columns:1fr auto;gap:6px 12px;padding:14px 16px}.lab-row .lab-date{grid-column:1}.lab-row .lab-logic{grid-column:1/-1;grid-row:3}.lab-row .lab-outcome{grid-column:2;grid-row:1/3}.lab-drawer{width:100%;padding:18px 15px 26px}.lab-form-section{padding:18px 0}.lab-section-title{display:grid;gap:2px}.lab-form-grid{grid-template-columns:1fr 1fr}.lab-form-grid label:nth-child(4),.lab-form-grid label:nth-child(5){grid-column:1/-1}.lab-evidence-grid{grid-template-columns:1fr}.lab-evidence-preview{height:170px}.lab-indicators label{grid-template-columns:1fr 110px}.lab-overlay .formactions{bottom:-26px;margin:0 -15px -26px;padding:10px 15px;display:grid;grid-template-columns:1fr 1fr}.lab-overlay .formactions .danger{grid-column:1/-1;width:100%}.lab-overlay .formactions .primary{grid-column:2}.lab-result-picker span{min-width:78px}.mobile-quick-actions .quick-add span{font-size:13px}}@media(max-width:390px){.nav button{font-size:10px}.lab-metrics,.lab-form-grid{grid-template-columns:1fr}.lab-form-grid label:nth-child(4),.lab-form-grid label:nth-child(5){grid-column:auto}.lab-price-grid{grid-template-columns:1fr 1fr}.lab-price-grid label:last-child{grid-column:1/-1}.lab-result-picker span{min-width:72px}}.lab-quick-actions{grid-template-columns:1fr!important}.lab-drawer{overflow-x:hidden}@media(min-width:361px)and (max-width:390px){.lab-metrics,.lab-form-grid{grid-template-columns:1fr 1fr}.lab-form-grid label:nth-child(4),.lab-form-grid label:nth-child(5){grid-column:1/-1}}

@media (max-width: 720px) {
  .calendar-day .trade-count::before {
    content: attr(data-batches) "批·" attr(data-deals) "成";
  }
}

.playbook-library-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.playbook-library-head > div {
  min-width: 0;
}

.playbook-library-head p {
  max-width: 680px;
  margin: 8px 0 0;
  color: var(--muted, #6f7f79);
  line-height: 1.55;
}

.playbook-add {
  flex: 0 0 auto;
  min-height: 44px;
  padding-inline: 20px;
}

.playbook-top {
  align-items: flex-start;
  gap: 12px;
}

.playbook-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}

.playbook .playbook-actions button {
  min-width: 38px;
  min-height: 34px;
  margin: 0;
  padding: 6px 10px;
  border: 1px solid #cfdbd6;
  border-radius: 10px;
  background: #fff;
  color: #143e33;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.playbook .playbook-actions button:hover {
  border-color: #8eaaa1;
  background: #f2f7f5;
}

.playbook .playbook-actions button:disabled {
  opacity: .32;
  cursor: default;
}

.playbook .playbook-actions .edit {
  background: #143e33;
  border-color: #143e33;
  color: #fff;
}

.playbook.inactive {
  border-style: dashed;
  background: #f7f8f7;
}

.playbook.inactive > :not(.playbook-top),
.playbook.inactive .playbook-top > .label {
  opacity: .58;
}

@media (max-width: 720px) {
  .playbook-library-head {
    align-items: stretch;
    flex-direction: column;
    gap: 14px;
  }

  .playbook-add {
    width: 100%;
  }

  .playbook-top {
    display: grid;
    grid-template-columns: 1fr;
  }

  .playbook-actions {
    justify-content: flex-start;
  }

  .playbook .playbook-actions button {
    min-height: 40px;
    padding-inline: 12px;
  }
}

.lab-core-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.indicator-token {
  align-items: flex-start;
  gap: 14px;
}

.indicator-token > span {
  min-width: 0;
}

.indicator-token b,
.indicator-token em {
  display: block;
}

.indicator-token em {
  margin-top: 3px;
  color: #71817a;
  font-size: 11px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.45;
}

.indicator-token small {
  flex: 0 0 auto;
  padding-top: 1px;
}

.mt5-batch-edit-field.batch-sequence-card {
  grid-template-columns: 1fr;
  align-items: stretch;
}

.batch-sequence-card .weekly-batch-number input[readonly] {
  border-color: #b99037;
  background: #fff;
  color: #173f34;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .04em;
}

.batch-sequence-card > small {
  grid-column: auto;
  margin-top: -2px;
}

.batch-group-advanced {
  overflow: hidden;
  border-top: 1px solid #e6d39d;
}

.batch-group-advanced > summary {
  padding: 10px 0 2px;
  color: #6f5724;
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
}

.batch-group-advanced > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  padding-top: 10px;
}

.batch-group-advanced > div > small {
  grid-column: 1 / -1;
  color: #806c3c;
  font-size: 10px;
  line-height: 1.45;
}

.lab-core-grid label:nth-child(n + 3) {
  margin-top: 4px;
}

.framework-editor-modal {
  width: min(980px, calc(100vw - 32px));
  max-width: 980px;
  max-height: 92vh;
  overflow: auto;
}

.framework-meta {
  margin-bottom: 18px;
}

#indicatorGroupsEditor {
  display: grid;
  gap: 16px;
}

.framework-edit-group {
  overflow: hidden;
  border: 1px solid #d3ded9;
  border-left: 4px solid #c9972b;
  border-radius: 16px;
  background: #f8faf8;
}

.framework-edit-group > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px;
  border-bottom: 1px solid #dce4e0;
  background: #fff;
}

.framework-edit-group > header > div:first-child {
  display: grid;
  gap: 4px;
}

.framework-order-actions,
.framework-item-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.framework-order-actions button,
.framework-item-actions button {
  min-width: 36px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #cbd8d2;
  border-radius: 9px;
  background: #fff;
  color: #143e33;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.framework-order-actions button:disabled,
.framework-item-actions button:disabled {
  opacity: .3;
  cursor: default;
}

.framework-order-actions .danger,
.framework-item-actions .danger {
  border-color: #edd0cf;
  color: #af403d;
}

.framework-group-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 16px 18px 8px;
}

.framework-group-fields .full {
  grid-column: 1 / -1;
}

.framework-group-fields label,
.framework-indicator-row label {
  display: grid;
  gap: 6px;
  color: #62736d;
  font-size: 12px;
  font-weight: 700;
}

.framework-group-fields input,
.framework-indicator-row input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #cfdad5;
  border-radius: 10px;
  background: #fff;
  color: #10251f;
  font: inherit;
  font-size: 15px;
  padding: 9px 11px;
}

.framework-indicator-list {
  display: grid;
  gap: 8px;
  padding: 8px 18px;
}

.framework-indicator-row {
  display: grid;
  grid-template-columns: 30px minmax(220px, 1fr) minmax(120px, 180px) auto;
  align-items: end;
  gap: 10px;
  padding: 10px;
  border: 1px solid #e0e7e3;
  border-radius: 12px;
  background: #fff;
}

.framework-drag-index {
  align-self: center;
  color: #9a741d;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.framework-add-indicator {
  margin: 4px 18px 16px;
}

.framework-add-group {
  width: 100%;
  margin-top: 16px;
  min-height: 46px;
}

@media (max-width: 720px) {
  .lab-core-grid,
  .framework-group-fields {
    grid-template-columns: 1fr;
  }

  .framework-group-fields .full {
    grid-column: auto;
  }

  .framework-edit-group > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .framework-order-actions {
    width: 100%;
    flex-wrap: wrap;
  }

  .framework-indicator-row {
    grid-template-columns: 28px 1fr;
    align-items: start;
  }

  .framework-indicator-row label,
  .framework-indicator-row .framework-item-actions {
    grid-column: 2;
  }

  .framework-item-actions button {
    min-height: 40px;
  }

  .batch-group-advanced > div {
    grid-template-columns: 1fr;
  }

  .batch-group-advanced > div > small {
    grid-column: auto;
  }
}

/* v43 batch worksheet */
.bulk-review-page{min-width:0;padding-bottom:96px}.bulk-review-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:18px}.bulk-review-hero h2{font-size:clamp(25px,3vw,38px);line-height:1.08;margin:7px 0 9px}.bulk-review-hero p{max-width:760px;margin:0;color:#718079;font-size:14px;line-height:1.65}.bulk-review-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.bulk-review-stats span{display:flex;align-items:baseline;gap:6px;padding:10px 13px;border:1px solid #d8e2dd;border-radius:12px;background:#fff;color:#65736d;white-space:nowrap}.bulk-review-stats b{font:700 18px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#153f35}.bulk-review-stats .needs-work{background:#fff8e9;border-color:#e7c76f;color:#815e13}.bulk-review-stats .needs-work b{color:#9b6e0d}.bulk-review-stats .draft-count{background:#edf7f2;border-color:#b9d8cb}.bulk-review-toolbar{padding:14px;margin-bottom:10px}.bulk-review-filters,.bulk-apply-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bulk-review-filters>input{flex:1 1 260px;min-width:180px;height:42px}.bulk-filter-tabs{display:flex;border:1px solid #d4dfda;border-radius:10px;overflow:hidden}.bulk-filter-tabs button{border:0;border-right:1px solid #d4dfda;border-radius:0;background:#fff;padding:10px 13px;color:#4d5d56}.bulk-filter-tabs button:last-child{border-right:0}.bulk-filter-tabs button.active{background:#123f35;color:#fff}.bulk-filter-tabs small{opacity:.72}.bulk-mode-switch{display:grid;gap:1px;text-align:left;border:1px solid #c99d32;background:#fffaf0;color:#724f08;border-radius:10px;padding:7px 13px}.bulk-mode-switch span{font-weight:800}.bulk-mode-switch small{font-size:11px}.bulk-apply-bar{border-top:1px solid #e3eae6;margin-top:12px;padding-top:12px}.bulk-apply-bar label{display:flex;align-items:center;gap:7px;font-weight:700}.bulk-apply-bar strong{margin-right:auto;color:#1f5b4c}.bulk-apply-bar select{width:auto;min-width:120px;height:38px}.bulk-apply-bar button{height:38px}.bulk-sheet-help{display:flex;justify-content:space-between;gap:20px;color:#708078;font-size:12px;padding:0 4px 9px}.bulk-sheet-card{min-width:0;padding:0;overflow:hidden;border-color:#cddbd4}.bulk-sheet-scroll{max-width:100%;overflow:auto;overscroll-behavior:contain;max-height:calc(100vh - 285px)}.bulk-sheet{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.bulk-sheet.full{min-width:3100px}.bulk-sheet.quick{min-width:1120px}.bulk-sheet th{position:sticky;top:0;z-index:4;height:48px;padding:8px 10px;background:#ecf2ef;border-right:1px solid #dce5e0;border-bottom:1px solid #cad8d1;color:#52645c;text-align:left;font-size:11px;letter-spacing:.02em;white-space:nowrap}.bulk-sheet td{height:66px;padding:7px 8px;border-right:1px solid #e1e8e4;border-bottom:1px solid #e3e9e6;background:#fff;vertical-align:top}.bulk-sheet tr:nth-child(even) td{background:#fbfcfb}.bulk-sheet tr.has-draft td{background:#fffaf0}.bulk-sheet tr.has-draft td:first-child{box-shadow:inset 3px 0 #c89627}.bulk-sheet input,.bulk-sheet select,.bulk-sheet textarea{width:100%;min-width:118px;border:1px solid transparent;border-radius:7px;background:transparent;padding:8px;color:#12231e;font:inherit}.bulk-sheet textarea{min-width:190px;max-width:240px;min-height:48px;resize:vertical;line-height:1.45}.bulk-sheet input:hover,.bulk-sheet select:hover,.bulk-sheet textarea:hover{border-color:#c6d6ce;background:#fff}.bulk-sheet input:focus,.bulk-sheet select:focus,.bulk-sheet textarea:focus{outline:2px solid #d9b45b;outline-offset:0;border-color:#d9b45b;background:#fff}.bulk-sheet .bulk-check{width:48px;min-width:48px;text-align:center}.bulk-sheet .bulk-check input{width:17px;min-width:17px;height:17px;margin-top:7px}.bulk-sheet .bulk-identity{width:154px;min-width:154px}.bulk-identity b,.bulk-identity small{display:block}.bulk-identity small{margin:3px 0;color:#72817a}.bulk-identity button{border:0;background:transparent;color:#1b6b57;font-weight:800;padding:0;font-size:11px}.bulk-readonly{min-width:118px}.bulk-readonly span,.bulk-readonly strong{display:block;width:max-content}.bulk-readonly strong{margin-top:8px}.bulk-setup select{min-width:150px}.bulk-entry-logic textarea{min-width:220px}.bulk-indicator-head{max-width:148px}.bulk-indicator-head b,.bulk-indicator-head small{display:block;max-width:130px;overflow:hidden;text-overflow:ellipsis}.bulk-indicator-head small{margin-top:2px;color:#7b8983}.bulk-indicator-cell select{min-width:106px}.bulk-progress{min-width:92px}.bulk-progress b,.bulk-progress small{display:block}.bulk-progress span{display:block;width:78px;height:5px;border-radius:9px;background:linear-gradient(90deg,#1c6d58 var(--progress),#e2e9e5 var(--progress));margin:7px 0}.bulk-progress small{color:#74817b}.sticky-check{position:sticky!important;left:0;z-index:6!important}.sticky-identity{position:sticky!important;left:48px;z-index:5!important;box-shadow:7px 0 14px -13px #153f35}.bulk-sheet thead .sticky-check,.bulk-sheet thead .sticky-identity{z-index:8!important;background:#e7efeb}.bulk-empty{text-align:center!important;padding:42px!important;color:#75827c}.bulk-save-dock{position:fixed;z-index:30;left:calc(210px + 28px);right:28px;bottom:18px;display:flex;align-items:center;gap:12px;padding:12px 14px 12px 18px;border:1px solid #b9cec4;border-radius:15px;background:rgba(247,250,248,.95);box-shadow:0 18px 44px rgba(13,50,40,.2);backdrop-filter:blur(14px)}.bulk-save-dock>div{margin-right:auto}.bulk-save-dock b,.bulk-save-dock small{display:block}.bulk-save-dock small{margin-top:3px;color:#6f7f77}.bulk-save-dock button{min-height:42px}.nav button[data-view="bulk-review"] i{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.nav button[data-view="bulk-review"].active{box-shadow:inset 3px 0 #d5ad4b}

@media (max-width: 980px){.bulk-review-hero{align-items:flex-start;flex-direction:column}.bulk-review-stats{justify-content:flex-start}.bulk-sheet-scroll{max-height:none}.bulk-save-dock{left:16px;right:16px;bottom:78px}.bulk-review-page{padding-bottom:150px}}
@media (max-width: 720px){.bulk-review-page{margin:0 -2px}.bulk-review-hero h2{font-size:26px}.bulk-review-hero p{font-size:13px}.bulk-review-stats{width:100%}.bulk-review-stats span{flex:1;justify-content:center}.bulk-review-toolbar{padding:10px}.bulk-review-filters{align-items:stretch}.bulk-filter-tabs{width:100%;overflow:auto}.bulk-filter-tabs button{flex:1;white-space:nowrap}.bulk-mode-switch{width:100%}.bulk-apply-bar{align-items:stretch}.bulk-apply-bar label{width:100%}.bulk-apply-bar strong{width:100%;margin:0}.bulk-apply-bar select{flex:1;min-width:0}.bulk-apply-bar button{width:100%}.bulk-sheet-help{display:block;line-height:1.5}.bulk-sheet-help span{display:block}.bulk-sheet.full{min-width:3000px}.bulk-sheet.quick{min-width:1040px}.bulk-sheet .bulk-identity{width:138px;min-width:138px}.bulk-save-dock{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bulk-save-dock>div{grid-column:1/-1}.bulk-save-dock button{width:100%;padding:10px 8px}.bulk-save-dock small{font-size:10px}}

/* v44 TradingView worksheet columns */
.bulk-sheet.full{min-width:4050px}.bulk-tv-head{min-width:226px}.bulk-tv-head b,.bulk-tv-head small{display:block}.bulk-tv-head small{margin-top:2px;color:#7b8983}.bulk-tv-cell input{min-width:220px;color:#1b6b57}.bulk-tv-cell input::placeholder{color:#9aa7a1}@media (max-width:720px){.bulk-sheet.full{min-width:3950px}}

/* v45 compact grouped worksheet: review, indicators and TradingView links stay near the frozen trade columns */
.bulk-section-tabs{display:flex;align-items:center;gap:4px;width:max-content;margin:12px 0 2px;padding:4px;border:1px solid #d5e0da;border-radius:12px;background:#edf3f0}.bulk-section-tabs button{min-height:34px;padding:7px 16px;border:0;border-radius:8px;background:transparent;color:#52635b;font-weight:750}.bulk-section-tabs button:hover{background:#fff}.bulk-section-tabs button.active{background:#153f35;color:#fff;box-shadow:0 4px 10px rgba(21,63,53,.16)}
.bulk-sheet.full.compact{width:100%;min-width:1120px;table-layout:fixed}.bulk-sheet.full.compact th:nth-child(3),.bulk-sheet.full.compact td:nth-child(3){width:118px}.bulk-sheet.full.compact .bulk-group-head{width:auto}.bulk-sheet.full.compact .bulk-group-cell{width:auto;padding:8px;vertical-align:top}.bulk-sheet.full.compact .bulk-progress{width:92px}.bulk-sheet.full.compact input,.bulk-sheet.full.compact select,.bulk-sheet.full.compact textarea{min-width:0;max-width:none}.bulk-sheet.full.compact textarea{min-height:39px;height:39px;padding:7px 8px;resize:vertical;line-height:1.3}.bulk-review-field-grid,.bulk-indicator-grid,.bulk-tv-grid{display:grid;gap:7px}.bulk-review-field-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bulk-indicator-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bulk-tv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-mini-field{display:grid;align-content:start;gap:4px;min-width:0;margin:0;padding:6px 7px;border:1px solid #e0e8e4;border-radius:8px;background:#f8faf9}.bulk-mini-field>span{display:block;min-width:0;color:#617169;font-size:10px;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-mini-field>span small{margin-left:4px;color:#8a9891;font:inherit}.bulk-mini-field.wide{grid-column:span 2}.bulk-mini-field input,.bulk-mini-field select,.bulk-mini-field textarea{width:100%;border-color:#d6e1db;background:#fff}.bulk-tv-grid input{color:#1b6b57}.bulk-tv-grid input::placeholder{color:#9aa7a1}
@media (max-width:980px){.bulk-sheet.full.compact{min-width:920px}.bulk-review-field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bulk-indicator-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bulk-section-tabs{max-width:100%;overflow:auto}}
@media (max-width:720px){.bulk-section-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.bulk-section-tabs button{padding:8px 6px;font-size:12px}.bulk-sheet.full.compact{min-width:760px}.bulk-sheet.full.compact .bulk-check{width:40px;min-width:40px}.bulk-sheet.full.compact .bulk-identity{width:112px;min-width:112px}.bulk-sheet.full.compact .sticky-identity{left:40px}.bulk-sheet.full.compact th:nth-child(3),.bulk-sheet.full.compact td:nth-child(3){width:88px}.bulk-sheet.full.compact .bulk-progress{width:66px}.bulk-review-field-grid,.bulk-indicator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-tv-grid{grid-template-columns:1fr}.bulk-mini-field.wide{grid-column:span 2}}
@media (max-width:720px){.bulk-sheet-scroll:has(.bulk-sheet.full.compact){overflow-x:hidden}.bulk-sheet.full.compact{display:block;width:100%;min-width:0!important;background:#f2f6f4}.bulk-sheet.full.compact thead{display:none}.bulk-sheet.full.compact tbody{display:grid;gap:9px;padding:8px}.bulk-sheet.full.compact tr{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:start;border:1px solid #d7e2dc;border-radius:12px;background:#fff;overflow:hidden}.bulk-sheet.full.compact td{display:block;width:auto!important;min-width:0!important;height:auto;padding:8px;border:0;background:#fff!important}.bulk-sheet.full.compact .sticky-check,.bulk-sheet.full.compact .sticky-identity{position:static!important;left:auto!important;box-shadow:none}.bulk-sheet.full.compact .bulk-check{grid-column:1;grid-row:1;padding:12px 5px 6px 11px}.bulk-sheet.full.compact .bulk-identity{grid-column:2;grid-row:1;padding:10px 6px}.bulk-sheet.full.compact .bulk-readonly{grid-column:3;grid-row:1;display:flex;align-items:center;gap:7px;min-width:0;padding:10px 10px 6px 4px;text-align:right}.bulk-sheet.full.compact .bulk-readonly strong{margin:0}.bulk-sheet.full.compact .bulk-group-cell{grid-column:1/-1;grid-row:2;padding:7px 9px 9px;border-top:1px solid #e3ebe7;background:#fbfcfb!important}.bulk-sheet.full.compact .bulk-progress{grid-column:1/-1;grid-row:3;display:flex;align-items:center;gap:8px;padding:7px 10px;border-top:1px solid #e3ebe7}.bulk-sheet.full.compact .bulk-progress b,.bulk-sheet.full.compact .bulk-progress small{display:inline}.bulk-sheet.full.compact .bulk-progress span{flex:1;width:auto;margin:0}.bulk-tv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-mini-field{padding:5px 6px}.bulk-mini-field input,.bulk-mini-field select,.bulk-mini-field textarea{font-size:12px}.bulk-empty{grid-column:1/-1!important}}

/* v46: dense summary rows with one full-width inline editor */
.bulk-sheet.full.expandable{width:100%;min-width:1000px;table-layout:fixed}.bulk-sheet.full.expandable th:nth-child(3),.bulk-sheet.full.expandable td:nth-child(3){width:106px}.bulk-sheet.full.expandable th:nth-child(4),.bulk-sheet.full.expandable td:nth-child(4){width:132px}.bulk-sheet.full.expandable th:nth-child(5),.bulk-sheet.full.expandable td:nth-child(5){width:104px}.bulk-sheet.full.expandable th:nth-child(6),.bulk-sheet.full.expandable td:nth-child(6){width:82px}.bulk-sheet.full.expandable th:nth-child(7),.bulk-sheet.full.expandable td:nth-child(7){width:auto}.bulk-sheet.full.expandable th:nth-child(8),.bulk-sheet.full.expandable td:nth-child(8){width:82px}.bulk-sheet.full.expandable th:nth-child(9),.bulk-sheet.full.expandable td:nth-child(9){width:88px}.bulk-sheet.full.expandable .bulk-main-row td{height:70px;vertical-align:middle}.bulk-sheet.full.expandable .bulk-main-row textarea{min-width:0;max-width:none;min-height:46px;height:46px;resize:vertical}.bulk-expand-cell button{width:100%;min-height:38px;padding:7px 8px;border:1px solid #b9cec4;border-radius:8px;background:#edf6f2;color:#155442;font-weight:800}.bulk-main-row.is-expanded .bulk-expand-cell button{border-color:#d4ad4d;background:#fff8e8;color:#7b570b}.bulk-detail-row>td{height:auto!important;padding:0!important;background:#f3f7f5!important;border-bottom:1px solid #cbd9d2}.bulk-inline-detail{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:10px 12px 13px;border-left:3px solid #d3aa43}.bulk-detail-section{min-width:0;padding:9px;border:1px solid #d9e3de;border-radius:10px;background:#fff}.bulk-detail-section:first-child{grid-column:1/-1}.bulk-detail-section>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px}.bulk-detail-section>header b{font-size:12px;color:#143f34}.bulk-detail-section>header small{color:#84918b;font-size:10px}.bulk-detail-row .bulk-review-field-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bulk-detail-row .bulk-indicator-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.bulk-detail-row .bulk-tv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-detail-row input,.bulk-detail-row select,.bulk-detail-row textarea{min-width:0;max-width:none}.bulk-detail-row textarea{min-height:39px;height:39px;padding:7px 8px;resize:vertical;line-height:1.3}
@media (max-width:720px){.bulk-sheet-scroll:has(.bulk-sheet.full.expandable){overflow-x:hidden}.bulk-sheet.full.expandable{display:block;width:100%;min-width:0!important;background:#f2f6f4}.bulk-sheet.full.expandable thead{display:none}.bulk-sheet.full.expandable tbody{display:grid;gap:8px;padding:8px}.bulk-sheet.full.expandable tr{border:1px solid #d7e2dc;border-radius:12px;background:#fff;overflow:hidden}.bulk-sheet.full.expandable .bulk-main-row{display:grid;grid-template-columns:34px minmax(0,1.4fr) minmax(0,1fr) auto;align-items:start}.bulk-sheet.full.expandable .bulk-main-row td{display:block;width:auto!important;min-width:0!important;height:auto;padding:7px;border:0;background:#fff!important}.bulk-sheet.full.expandable .sticky-check,.bulk-sheet.full.expandable .sticky-identity{position:static!important;left:auto!important;box-shadow:none}.bulk-sheet.full.expandable .bulk-check{grid-column:1;grid-row:1;padding:12px 5px 5px 11px}.bulk-sheet.full.expandable .bulk-identity{grid-column:2/4;grid-row:1;padding:10px 5px}.bulk-sheet.full.expandable .bulk-readonly{grid-column:4;grid-row:1;display:flex;align-items:center;gap:6px;padding:10px 9px 5px 3px;text-align:right}.bulk-sheet.full.expandable .bulk-readonly strong{margin:0}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(4){grid-column:1/3;grid-row:2}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(5){grid-column:3;grid-row:2}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(6){grid-column:4;grid-row:2}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(7){grid-column:1/-1;grid-row:3}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(8){grid-column:1/3;grid-row:4}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(9){grid-column:3/-1;grid-row:4;display:flex;align-items:center;gap:7px}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(9) span{flex:1;width:auto;margin:0}.bulk-sheet.full.expandable .bulk-main-row textarea{width:100%;min-height:38px;height:38px}.bulk-sheet.full.expandable .bulk-detail-row{display:block}.bulk-sheet.full.expandable .bulk-detail-row>td{display:block;width:100%!important}.bulk-inline-detail{grid-template-columns:1fr;padding:9px;border-left:0;border-top:3px solid #d3aa43}.bulk-detail-section:first-child{grid-column:auto}.bulk-detail-row .bulk-review-field-grid,.bulk-detail-row .bulk-indicator-grid,.bulk-detail-row .bulk-tv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-detail-row .bulk-mini-field.wide{grid-column:span 2}}

/* v47: summary is read-only; editing lives in the full-width expansion and the page owns vertical scrolling */
.bulk-sheet-scroll:has(.bulk-sheet.full.expandable){max-height:none;overflow-x:hidden;overflow-y:visible}.bulk-sheet.full.expandable .bulk-main-row td{height:58px}.bulk-entry-preview{vertical-align:middle!important}.bulk-entry-preview span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#263a33;font-size:12px;line-height:1.35}.bulk-entry-preview span.empty{color:#98a49e}.bulk-sheet.full.expandable th:nth-child(8),.bulk-sheet.full.expandable td:nth-child(8){width:94px}.bulk-expand-cell button{white-space:nowrap}
@media (max-width:720px){.bulk-sheet.full.expandable .bulk-main-row td{height:auto}.bulk-entry-preview{padding:7px 10px!important;border-top:1px solid #e5ece8!important;border-bottom:1px solid #e5ece8!important;background:#f8faf9!important}.bulk-entry-preview span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bulk-sheet.full.expandable .bulk-main-row td:nth-child(8){width:auto!important}}

.bulk-excel-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:16px 0;padding:20px 22px;border-color:#d8c184;background:linear-gradient(135deg,#fffdf7 0%,#f4f8f5 100%)}
.bulk-excel-panel h3{margin:4px 0 6px;font-size:20px}
.bulk-excel-panel p{margin:0;color:#66766f;max-width:720px;line-height:1.55}
.bulk-excel-actions{display:flex;gap:10px;flex:0 0 auto}
.bulk-excel-actions button{min-height:44px;white-space:nowrap}
@media(max-width:760px){.bulk-excel-panel{align-items:stretch;flex-direction:column;padding:16px}.bulk-excel-actions{display:grid;grid-template-columns:1fr}.bulk-excel-actions button{width:100%}}


}
@layer framework {
/* Canonical application frame and trading workbench.
   Build places this file in @layer framework after @layer legacy.
   Keep shell geometry here; feature styles must not reposition the shell. */

:root {
  --gd-nav-width: 200px;
  --gd-gutter: clamp(20px, 2vw, 36px);
  --gd-header-height: 88px;
  --gd-bottom-nav: 72px;
  --ink: #17241f;
  --muted: #65756c;
  --line: #d7e1db;
  --paper: #f5f8f6;
  --card: #fff;
  --green: #153e33;
  --green2: #245e4c;
  --gold: #b88b2b;
  --red: #ab4945;
  --shadow: 0 3px 16px #173e3306;
}

*, *::before, *::after { box-sizing: border-box; }
html { width: 100%; min-width: 0; background: var(--paper); scroll-padding-block: 100px 24px; }
body { width: 100%; min-width: 0; margin: 0; padding: 0; background: var(--paper); color: var(--ink); font: 14px/1.5 "Microsoft YaHei UI", "PingFang SC", "Segoe UI", sans-serif; }
#app, .shell, .workspace, .page { min-width: 0; max-width: 100%; }
[hidden] { display: none !important; }
button, input, select, textarea, summary { font: inherit; }
button, summary { touch-action: manipulation; }
button:disabled { cursor: default; opacity: .48; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid #b88b2b80; outline-offset: 3px; }
input, select, textarea { min-width: 0; max-width: 100%; color: var(--ink); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--green); }
input[type="number"], input[type="time"], input[type="date"], .positive, .negative { font-variant-numeric: tabular-nums; }
img, svg, video, canvas { max-width: 100%; }
small { font-size: 12px; }
.card { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.label, .eyebrow { font-size: 12px; letter-spacing: .08em; }
.primary, .secondary, .subaction, .edit, .settings-button { min-height: 44px; height: auto; padding: 10px 14px; border-radius: 8px; font-size: 13px; font-weight: 650; line-height: 1.3; }
.primary { box-shadow: none; }
.secondary, .settings-button { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.subaction { margin-top: 8px; background: #fff; }
.danger { margin-right: 0; }

/* Four stable destinations; the sidebar width is owned by a single variable. */
.shell { display: grid; grid-template-columns: var(--gd-nav-width) minmax(0, 1fr); min-height: 100dvh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; flex-direction: column; width: var(--gd-nav-width); height: 100dvh; padding: 28px 16px 20px; background: var(--green); }
.brand { display: flex; align-items: center; gap: 10px; padding: 0 4px 24px; }
.brand > div { min-width: 0; }
.brand b { font-size: 14px; letter-spacing: .07em; }
.brand small { font-size: 12px; letter-spacing: 0; }
.mark { flex: 0 0 38px; width: 38px; height: 38px; font-size: 13px; }
.nav { display: grid; gap: 6px; margin-top: 22px; }
.nav button { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 48px; padding: 12px; text-align: left; font-size: 14px; color: #c8d9d1; }
.nav i { display: inline-block; width: 20px; margin: 0; font-size: 19px; text-align: center; }
.nav button.active { color: #fff; background: #ffffff12; box-shadow: inset 3px 0 #d8b766; }
.sidefoot { display: block; padding: 16px 4px 0; font-size: 12px; }
.sidefoot button { max-width: 100%; }
.sidefoot small { font-size: 12px; overflow-wrap: anywhere; }
.build-version { font-size: 12px; letter-spacing: .04em; }
.workspace { grid-column: 2; width: auto; min-height: 100dvh; margin: 0; }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 20px; width: 100%; height: auto; min-height: var(--gd-header-height); padding: 14px var(--gd-gutter); background: #fffffff7; border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.page-heading { flex: 0 1 auto; min-width: 0; padding: 0; }
.page-heading .eyebrow { font-size: 11px; }
.topbar h1 { max-width: none; margin: 3px 0 0; color: var(--ink); font: 750 26px/1.15 Bahnschrift, "Microsoft YaHei UI", sans-serif; white-space: normal; overflow: visible; text-overflow: clip; letter-spacing: 0; }
.topbar h1::after { content: none; }
.top-build { margin-left: 6px; padding: 2px 5px; font-size: 10px; }
.actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; max-width: none; overflow: visible; }
.actions .primary, .actions .secondary, .actions #addBtn, .actions #mt5Btn { display: inline-flex; align-items: center; justify-content: center; width: auto; min-height: 44px; padding: 10px 14px; font-size: 13px; }
.actions #addBtn::before { content: none; }
.settings-button { flex: 0 0 auto; min-width: 44px; }
.compact-sync { max-width: 200px; color: var(--muted); font-size: 12px; text-align: right; line-height: 1.4; }
.compact-sync.error, .compact-sync.off { color: #925122; }
.page { width: 100%; max-width: none; margin: 0; padding: 24px var(--gd-gutter) 40px; }
.page > * { min-width: 0; max-width: 100%; }
.mobile-quick-actions { display: none; }

/* Native disclosure menus. Their panels do not participate in page width. */
.action-menu { position: relative; min-width: 0; }
.action-menu > summary { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); cursor: pointer; list-style: none; white-space: nowrap; font-size: 13px; font-weight: 650; }
.action-menu > summary::-webkit-details-marker { display: none; }
.action-menu > summary::after { content: "⌄"; color: var(--muted); line-height: 1; }
.action-menu[open] > summary { border-color: #89aa99; background: #f0f6f2; }
.menu-panel { position: absolute; z-index: 40; top: calc(100% + 7px); right: 0; display: grid; gap: 5px; width: max-content; min-width: 208px; max-width: min(360px, calc(100vw - 24px)); max-height: min(65dvh, 520px); overflow: auto; padding: 8px; border: 1px solid #cbdad1; border-radius: 11px; background: #fff; box-shadow: 0 12px 35px #173e3326; }
.action-menu:not([open]) > .menu-panel { display: none; }
.menu-panel > button, .menu-panel > a { display: flex; align-items: center; min-height: 44px; width: 100%; padding: 10px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--ink); font-size: 13px; font-weight: 600; line-height: 1.4; text-align: left; text-decoration: none; white-space: normal; }
.menu-panel > button:hover, .menu-panel > a:hover { background: #eef5f0; }
.menu-panel .danger { color: var(--red); }
.menu-panel label { display: grid; gap: 5px; min-width: 0; font-size: 12px; color: var(--muted); }
.menu-panel input, .menu-panel select { width: 100%; min-height: 44px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.trade-filter-menu .menu-panel { width: 300px; }
.trade-date-filter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 8px; padding: 0; border: 0; }
.trade-date-filter i { display: none; }
.trade-date-filter label { min-width: 0; }
.trade-date-filter input, .trade-date-filter button { width: 100%; min-height: 44px; }

/* Trading: compact summaries at left; one shared review surface at right. */
.trade-workbench { width: 100%; min-width: 0; }
.trade-workbench-hero { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 14px; padding: 0; }
.trade-workbench-hero h2, .trade-workbench-hero .label { display: none; }
.trade-workbench-hero p { margin: 0; color: var(--muted); font-size: 13px; }
.trade-workbench-stats { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--muted); }
.trade-workbench-stats span { display: inline-flex; gap: 5px; align-items: baseline; padding: 0; border: 0; border-radius: 0; background: none; white-space: nowrap; }
.trade-workbench-stats b { color: var(--ink); font-size: 14px; }
.trade-workbench-stats .needs-work { color: #886319; }
.trade-workbench-controls { position: relative; z-index: 10; margin-bottom: 16px; padding: 10px; border-radius: 10px; }
.trade-workbench-search { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(94px, auto) minmax(112px, auto) auto auto; align-items: center; gap: 8px; padding: 0; }
.trade-workbench-search .search, #tradeDisplaySelect, #tradeStatusFilter { width: 100%; height: 44px; min-width: 0; margin: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 13px; }
.trade-workbench-search .search { background: #f8faf8; }
.trade-workbench-batch { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.trade-workbench-batch strong { margin-right: auto; color: var(--green2); font-size: 13px; }
.trade-workbench-batch select { width: auto; min-width: 108px; min-height: 44px; padding: 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font-size: 13px; }
.trade-workbench-batch button { min-height: 44px; font-size: 13px; }
.trade-workbench-grid { display: grid; grid-template-columns: minmax(300px, 34%) minmax(0, 1fr); align-items: start; gap: 16px; }
.trade-ledger { position: sticky; top: calc(var(--gd-header-height) + 16px); min-width: 0; overflow: hidden; }
.trade-ledger > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.trade-ledger > header b, .trade-ledger > header small { display: block; }
.trade-ledger > header b { font-size: 14px; }
.trade-ledger > header small, .trade-ledger > header > span { color: var(--muted); font-size: 12px; }
.bulk-select-all { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin: 0; font-size: 12px; }
.bulk-select-all input, .trade-ledger-check input { width: 17px; height: 17px; margin: 0; }
.trade-ledger-list { max-height: calc(100dvh - var(--gd-header-height) - 108px); overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-gutter: stable; }
.trade-ledger-group { min-width: 0; border-bottom: 1px solid #e5ebe7; background: #fff; }
.trade-ledger-group:last-child { border-bottom: 0; }
.trade-ledger-group.expanded { background: #f7faf8; }
.trade-ledger-item { position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr) 40px; align-items: stretch; border-left: 3px solid transparent; }
.trade-ledger-item:hover { background: #f7faf8; }
.trade-ledger-item.active { border-left-color: var(--green2); background: #edf5ef; }
.trade-ledger-item.has-draft { border-left-color: var(--gold); }
.trade-ledger-check { display: flex; align-items: flex-start; justify-content: center; min-width: 0; min-height: 44px; padding-top: 18px; }
.trade-ledger-select { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px 8px; width: 100%; min-width: 0; padding: 12px 2px 12px 0; border: 0; border-radius: 0; background: transparent; color: var(--ink); text-align: left; }
.trade-ledger-select > * { min-width: 0; }
.trade-ledger-date b, .trade-ledger-date small { display: block; }
.trade-ledger-date b { font-size: 14px; font-weight: 750; font-variant-numeric: tabular-nums; }
.trade-ledger-date small, .trade-ledger-meta small, .trade-ledger-progress small { color: var(--muted); font-size: 12px; }
.trade-ledger-batch { align-self: start; padding: 3px 6px; border-radius: 5px; background: #e5eee8; color: #365c49; font: 650 12px/1.4 Consolas, ui-monospace, monospace; }
.trade-ledger-side { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.trade-ledger-side .side { padding: 3px 6px; font-size: 12px; font-style: normal; }
.trade-ledger-side strong { font-size: 14px; font-variant-numeric: tabular-nums; }
.trade-ledger-meta { text-align: right; }
.trade-ledger-meta em, .trade-ledger-meta small { display: block; }
.trade-ledger-meta em { max-width: 132px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-style: normal; }
.trade-ledger-progress { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; }
.trade-ledger-progress i, .trade-review-result i { display: block; flex: 1; height: 3px; border-radius: 4px; background: linear-gradient(90deg, var(--green2) var(--progress), #dfe8e2 var(--progress)); }
.trade-ledger-progress small { white-space: nowrap; }
.trade-ledger-actions { display: flex; align-items: center; justify-content: center; }
.trade-ledger-open { display: grid; place-items: center; width: 38px; min-height: 44px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--green2); font-size: 17px; }
.trade-ledger-collapse { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: calc(100% - 24px); min-height: 48px; margin: 0 12px 10px; padding: 7px 10px; border: 1px solid #9cbaa9; border-radius: 8px; background: #f5f9f6; color: var(--green); text-align: left; }
.trade-ledger-collapse b { font-size: 13px; font-weight: 750; }
.trade-ledger-collapse .batch-summary-pnl { margin-left: 4px; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.trade-ledger-collapse .batch-summary-pnl.loss { color: var(--red); }
.trade-ledger-collapse .batch-summary-pnl.gain { color: #2d785d; }
.trade-ledger-collapse .batch-summary-meta { color: #586c60; font-size: 11px; line-height: 1.35; }
.trade-ledger-collapse[aria-expanded="true"] { border-color: var(--green); background: var(--green); color: #fff; }
.trade-ledger-collapse[aria-expanded="true"] .batch-summary-pnl { color: #fff; }
.trade-ledger-collapse[aria-expanded="true"] .batch-summary-meta { color: #d8e9df; }
.trade-ledger-group.expanded > .trade-ledger-deals { margin-left: 12px; border-left: 3px solid var(--green); }
.trade-ledger-deals { min-width: 0; padding: 8px 10px 10px 16px; border-top: 1px dashed #cddbd2; }
.trade-ledger-deals > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; color: var(--muted); font-size: 12px; }
.trade-deal-mini { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; width: 100%; min-width: 0; min-height: 66px; margin-top: 6px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); text-align: left; }
.trade-deal-mini span, .trade-deal-mini b, .trade-deal-mini small { display: block; min-width: 0; }
.trade-deal-mini b { font-size: 12px; font-weight: 650; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.trade-deal-mini small { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.trade-deal-time { grid-column: 1; }
.trade-deal-price { grid-column: 1; grid-row: 2; }
.trade-deal-mini > strong { grid-column: 2; grid-row: 1; align-self: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.trade-deal-mini > i { grid-column: 2; grid-row: 2; align-self: end; color: var(--green2); font-style: normal; text-align: right; }
.compact-batch .trade-batch-row { grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; min-height: 76px; padding-right: 7px; }
.compact-batch .trade-ledger-check { align-items: center; padding: 0; }
.compact-batch .batch-review-select { display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; gap: 7px; min-height: 76px; padding: 10px 7px 10px 0; }
.compact-batch .batch-summary-primary, .compact-batch .batch-summary-secondary { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 8px; min-width: 0; }
.compact-batch .batch-summary-date { font-size: 12px; font-weight: 750; white-space: nowrap; }
.compact-batch .trade-ledger-batch { align-self: center; padding: 2px 4px; font-size: 11px; white-space: nowrap; }
.compact-batch .side { padding: 2px 4px; font-size: 11px; font-style: normal; white-space: nowrap; }
.compact-batch .batch-summary-pnl { margin-left: auto; font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.compact-batch .batch-summary-pnl.loss { color: var(--red); }
.compact-batch .batch-summary-pnl.gain { color: #2d785d; }
.compact-batch .batch-summary-secondary { color: #586c60; font-size: 11px; line-height: 1.5; }
.compact-batch .batch-summary-meta { display: inline-flex; gap: 6px; white-space: nowrap; }
.compact-batch .batch-summary-time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.compact-raw .trade-ledger-open { width: 28px; }
.compact-raw .trade-batch-row { min-height: 60px; }
.compact-raw .batch-review-select { gap: 4px; min-height: 60px; padding-top: 6px; padding-bottom: 6px; }
.compact-batch .batch-summary-setup { overflow-wrap: anywhere; }
.compact-batch .batch-summary-session, .compact-batch .batch-summary-progress { white-space: nowrap; }
.compact-batch .batch-summary-progress { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }
.compact-batch .batch-summary-progress i { width: 20px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--green2) var(--progress), #dfe8e2 var(--progress)); }
.compact-batch .batch-inline-summary { display: flex; align-items: center; width: auto; min-width: 0; min-height: 44px; margin: 0; padding: 0; border: 0; border-radius: 6px; background: transparent; }
.compact-batch .batch-inline-summary .disclosure-state { min-width: 52px; min-height: 34px; padding: 4px; gap: 3px; font-size: 11px; white-space: nowrap; }
.compact-batch.expanded .trade-batch-row, .compact-batch.expanded .batch-inline-summary { background: var(--green); }
.compact-batch.expanded .batch-review-select, .compact-batch.expanded .batch-summary-pnl { color: #fff; }
.compact-batch.expanded .batch-summary-secondary { color: #d8e9df; }
.compact-batch.expanded .trade-ledger-batch { background: #d8e9df; }
.compact-batch .batch-review-select:focus-visible, .compact-batch .batch-inline-summary:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
@media (max-width: 390px) {
  .compact-batch .trade-batch-row { grid-template-columns: 24px minmax(0, 1fr) auto; padding-right: 5px; }
  .compact-batch .batch-review-select { padding-right: 6px; }
  .compact-batch .batch-summary-primary, .compact-batch .batch-summary-secondary { gap: 5px 6px; }
}
.trade-ledger-empty { display: grid; gap: 8px; padding: 42px 18px; color: var(--muted); font-size: 13px; text-align: center; }
.trade-ledger-empty b { color: var(--ink); }

/* Review fields use a common control scale; screenshots come before the text. */
.trade-review-inspector { min-width: 0; overflow: visible; }
.trade-review-inspector.empty { display: grid; gap: 8px; min-height: 360px; padding: 24px; place-content: center; text-align: center; }
.trade-review-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 18px; border-bottom: 1px solid var(--line); border-radius: 12px 12px 0 0; background: #fbfdfb; }
.trade-review-header h3 { margin: 5px 0 4px; font: 750 20px/1.35 Bahnschrift, "Microsoft YaHei UI", sans-serif; overflow-wrap: anywhere; }
.trade-review-kicker { font-size: 12px; color: #82631e; }
.trade-review-header p { margin: 0; font-size: 12px; color: var(--muted); }
.trade-review-header > strong { align-self: center; font: 750 23px/1.2 Bahnschrift, sans-serif; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.trade-review-header > button:not(.trade-review-back) { justify-self: end; grid-column: 2; font-size: 12px; }
@media (min-width: 1200px) {
  .trade-review-header { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; }
  .trade-review-header > button:not(.trade-review-back) { grid-column: 3; }
}
.trade-review-result { display: grid; gap: 5px; text-align: right; }
.trade-review-result strong { font: 750 23px/1.2 Bahnschrift, sans-serif; font-variant-numeric: tabular-nums; }
.trade-review-result span { font-size: 12px; color: var(--muted); }
.trade-review-back { display: none; }
.trade-review-core { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.trade-review-layout { display: flex; flex-direction: column; min-width: 0; }
.trade-review-block { min-width: 0; padding: 18px; border-bottom: 1px solid var(--line); }
.trade-review-block.chart-copy { order: -2; }
.trade-review-block.entry-copy, .trade-review-block.entry-decision { order: -1; }
.trade-review-block > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.trade-review-block > header b { display: block; color: var(--ink); font-size: 15px; }
.trade-review-block > header span, .trade-review-block > header small { color: var(--muted); font-size: 12px; letter-spacing: 0; }
.trade-review-field-grid, .trade-review-links, .trade-review-indicators { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; min-width: 0; }
.trade-review-field-grid .wide, .trade-review-field-grid .full { grid-column: 1 / -1; }
.trade-review-inspector .bulk-mini-field { display: grid; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; color: #4f6458; font-size: 12px; font-weight: 650; }
.trade-review-inspector .bulk-mini-field > span { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; overflow-wrap: anywhere; }
.trade-review-inspector .bulk-mini-field > span small { float: none; flex: 0 0 auto; color: var(--muted); font-size: 12px; }
.trade-review-inspector .bulk-mini-field :is(input, select, textarea) { width: 100%; min-width: 0; max-width: 100%; padding: 10px; border: 1px solid #ccd9d1; border-radius: 7px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 400; }
.trade-review-inspector .bulk-mini-field :is(input, select) { height: 44px; }
.trade-review-inspector .bulk-mini-field textarea { height: 76px; min-height: 76px; resize: vertical; line-height: 1.6; }
.trade-review-indicators { margin-top: 14px; gap: 10px 14px; }
.trade-review-indicators .bulk-mini-field { padding: 10px; border: 1px solid #e1e9e3; border-radius: 8px; background: #f8fbf8; }
.trade-review-indicators.indicator-checklist { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.indicator-check-help, .indicator-group-hint { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.indicator-check-group { min-width: 0; border-left: 3px solid #ccd9d1; padding-left: 10px; }
.indicator-check-group h4 { margin: 0 0 5px; font-size: 13px; color: var(--green); }
.indicator-check-group[data-indicator-group="environment"] { border-color: var(--gold); }
.indicator-check-group[data-indicator-group="pullback"] { border-color: var(--green2); }
.indicator-check-items { display: grid; gap: 2px; }
.indicator-check-row { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto auto; align-items: center; gap: 7px; min-height: 44px; margin: 0; padding: 6px; border-bottom: 1px solid #e5ede8; border-radius: 5px; cursor: pointer; }
.indicator-check-row input { width: 18px; height: 18px; margin: 0; accent-color: var(--green); }
.indicator-check-row input:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.indicator-check-name { font-size: 12px; font-weight: 650; overflow-wrap: anywhere; }
.indicator-check-row small { font-size: 10px; color: var(--muted); max-width: 75px; overflow-wrap: anywhere; }
.indicator-check-status { font-size: 10px; color: var(--muted); white-space: nowrap; }
.indicator-check-row[data-status="matched"] { background: #eaf4ee; }
.indicator-check-row[data-status="matched"] .indicator-check-status { color: var(--green); }
.indicator-check-row[data-status="missed"] .indicator-check-status { color: var(--red); }
.indicator-check-row[data-status="neutral"] .indicator-check-status { color: #8a6728; }
.indicator-check-details { margin-top: 3px; }
.indicator-check-details > summary { min-height: 36px; padding: 8px 6px; font-size: 11px; color: var(--muted); cursor: pointer; }
.indicator-check-details > summary span { margin-left: 8px; font-size: 10px; }
.indicator-detail-items { display: grid; gap: 12px; padding: 8px; background: #f5f8f6; border-radius: 6px; }
.indicator-detail-item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; min-width: 0; }
.indicator-detail-item > b { font-size: 12px; }
.indicator-checklist .indicator-detail-item .bulk-mini-field { padding: 0; border: 0; background: transparent; }
.trade-review-links input { text-overflow: ellipsis; }
.workbench-chart-card { min-width: 0; }
.chart-link-mode { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; margin-top: 12px; font-size: 12px; }
.chart-link-mode select { min-width: 0; width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--green); font: inherit; }
.chart-link-mode select:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.chart-mode-help { margin: 7px 0 14px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.trade-review-links.multi-chart-links { grid-template-columns: minmax(0, 1fr); }
.multi-chart-links .workbench-chart-preview[data-state="loaded"] .workbench-chart-image { aspect-ratio: auto; }
.multi-chart-links .workbench-chart-preview[data-state="loaded"] img { height: auto; max-height: none; }
.shot-slot.multi-chart-slot { grid-column: 1 / -1; }
.workbench-chart-preview { margin-top: 8px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #f5f8f6; }
.workbench-chart-preview[hidden] { display: none; }
.workbench-chart-image { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; background: #edf2ef; color: var(--muted); text-decoration: none; }
.workbench-chart-image img { display: block; width: 100%; height: 100%; min-width: 0; max-height: 100%; object-fit: contain; opacity: 0; }
.workbench-chart-preview[data-state="loaded"] img { opacity: 1; }
.workbench-chart-message { padding: 16px; margin: 0; font-size: 12px; font-weight: 400; line-height: 1.6; text-align: center; }
.workbench-chart-image .workbench-chart-message { position: absolute; inset: 0; display: grid; place-items: center; }
.workbench-chart-preview[data-state="loaded"] .workbench-chart-message { display: none; }
.workbench-chart-preview footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; padding: 0 10px; background: #fff; }
.workbench-chart-preview footer a, .workbench-chart-retry { display: inline-flex; align-items: center; min-height: 40px; padding: 0; border: 0; background: transparent; color: var(--green2); font-size: 12px; text-decoration: none; }
.workbench-chart-retry[hidden] { display: none; }
.workbench-chart-preview a:focus-visible, .workbench-chart-retry:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.trade-review-block.grade-copy { background: #fbfcfa; }
.trade-grade-row { display: grid; grid-template-columns: minmax(110px, 150px) minmax(0, 1fr) auto; align-items: center; gap: 14px; background: #fbfcfa; }
.trade-grade-row > span { color: var(--muted); font-size: 12px; line-height: 1.6; }
.text-action { min-height: 44px; padding: 9px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--green2); font-size: 13px; font-weight: 650; }
.text-action:hover { background: #edf4ef; }
.text-action.danger { color: var(--red); }
.trade-editor-savebar { position: sticky; bottom: 0; z-index: 8; display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--line); border-radius: 0 0 12px 12px; background: #fffffff7; backdrop-filter: blur(8px); }
.trade-editor-savebar > div { flex: 1; min-width: 0; }
.trade-editor-savebar b, .trade-editor-savebar small { display: block; font-size: 12px; line-height: 1.5; }
.trade-editor-savebar small { color: var(--muted); }
.trade-editor-savebar button { flex: 0 0 auto; }

/* Dialog and fill geometry is independent from desktop navigation width. */
.overlay { display: flex; align-items: center; justify-content: center; padding: 20px; overflow: hidden; }
.modal, .drawer, .lab-drawer, .mt5-modal { position: relative; inset: auto; transform: none; width: min(920px, 100%); min-width: 0; max-width: 100%; height: auto; max-height: calc(100dvh - 40px); margin: 0; padding: 24px; border-radius: 14px; overflow: auto; overscroll-behavior: contain; }
.drawer, .lab-drawer { width: min(1180px, 100%); }
.quick-trade-modal { width: min(760px, 100%); }
.account-modal, .settings-modal, .install-modal { width: min(580px, 100%); }
.modalhead { gap: 14px; }
.modalhead > div { min-width: 0; }
.modalhead h2 { margin-top: 3px; font-size: 24px; line-height: 1.3; overflow-wrap: anywhere; }
.modalhead p { font-size: 13px; }
.close { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; }
.formgrid, .structured-review-grid, .entry-groups-list { min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.formgrid label, .entry-group-card label, .entry-fill-field, .auth-field { min-width: 0; font-size: 12px; }
.formgrid input, .formgrid select, .formgrid textarea, .entry-group-card input, .entry-group-card select { min-width: 0; width: 100%; font-size: 14px; }
.entry-fill-row.grouped, .trade-create-modal .entry-fill-row.grouped { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr) minmax(70px, .65fr) 44px; align-items: end; }
.entry-fill-row .entry-fill-field { min-width: 0; }
.entry-fill-row input, .entry-fill-row select { width: 100%; min-width: 0; height: 44px; font-size: 14px; }
.entry-fill-row .remove, .exit-row .remove { width: 44px; height: 44px; }
.quick-entry-rows .entry-fill-row.grouped { grid-template-columns: minmax(0, 1fr) 120px 44px; }
.quick-entry-rows .entry-fill-field.group, .quick-entry-rows .entry-fill-field:has(.entry-time) { display: none; }
.exit-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(70px, .7fr) 44px; }
.exit-row input { min-width: 0; height: 44px; font-size: 14px; }
.entry-group-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.entry-risk-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.entry-risk-strip span { min-width: 0; font-size: 12px; }
.entry-fills-title { align-items: start; }
.entry-fills-title span { font-size: 12px; }
.trade-result { margin: 20px -24px 0; padding: 18px 24px; gap: 15px; }
.trade-result strong { flex-shrink: 0; }
.review-section { min-width: 0; }
.review-section h3 { font-size: 16px; }
.indicator-row { grid-template-columns: minmax(0, 1.2fr) minmax(80px, .6fr) minmax(110px, .8fr) minmax(0, 1fr); }
.indicator-row input, .indicator-row select { min-width: 0; height: 44px; font-size: 13px; }
.formactions { display: flex; flex-wrap: wrap; gap: 8px; }
.quick-form-actions, .lab-overlay .formactions { bottom: -24px; margin: 18px -24px -24px; padding: 14px 24px; }
.formactions .danger { margin-right: auto; }
.shots, .trade-screenshots-top .shots, .new-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.shot-slot, .new-evidence-card, .lab-evidence { min-width: 0; }
.shot-grid, .trade-screenshots-top .shot-grid { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; }
.shot, .tv-preview, .tv-preview a { min-width: 0; max-width: 100%; }
.shot img, .trade-screenshots-top .shot img { display: block; width: 100%; object-fit: contain; }
.shot-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.shot-actions > button { flex: 1 1 110px; min-height: 44px; padding: 8px; font-size: 12px; }
.shot > button { width: 36px; height: 36px; }
.settings-list, .excel-tools { display: grid; gap: 8px; margin-top: 20px; }
.settings-list > button, .excel-tools > button, .settings-list .action-menu { width: 100%; min-height: 48px; margin: 0; text-align: left; }
.settings-list button { display: grid; gap: 4px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font-size: 14px; }
.settings-list button:hover { border-color: #91ae9e; background: #f4f8f5; }
.modal.excel-tools { margin: 0; gap: 12px; }
.settings-list button small { display: block; color: var(--muted); font-size: 12px; font-weight: 400; }
.settings-modal .compact-sync { display: block; max-width: none; margin-top: 12px; text-align: left; }

/* Other destinations keep their feature content within the same frame. */
.sectionhead { gap: 16px; padding: 18px 20px; }
.page > .sectionhead { padding: 0 0 18px; }
.sectionhead h2 { margin: 3px 0; font-size: 21px; }
.sectionhead p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.tablewrap, .mt5-table { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.tablewrap table { min-width: 760px; }
.rangebar, .statusline, .framework-head { flex-wrap: wrap; gap: 12px; }
.rangebar { padding: 14px; }
.range-tabs { flex-wrap: wrap; }
.range-tabs button { min-height: 44px; height: auto; }
.custom-range, .custom-range label { min-width: 0; }
.hero { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.hero > *, .metrics > *, .lab-metrics > *, .playbook-grid > *, .analytics-grid > * { min-width: 0; }
.playbook-grid, .indicator-groups { grid-template-columns: repeat(auto-fit, minmax(min(290px, 100%), 1fr)); gap: 16px; }
.playbook { padding: 20px; overflow: visible; }
.playbook:has(.action-menu[open]) { z-index: 12; }
.playbook h3 { margin-block: 18px; }
.playbook-actions { display: flex; gap: 6px; }
.playbook-actions .menu-panel { min-width: 190px; }
.indicator-token { gap: 10px; }
.indicator-token > span { min-width: 0; overflow-wrap: anywhere; }
.indicator-token small { flex-shrink: 0; font-size: 12px; }
.indicator-token em { font-size: 12px; }
.analytics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.analytics-grid .card { padding: 20px; }
.analytics-row { grid-template-columns: minmax(80px, 1fr) minmax(0, 1fr) auto; font-size: 13px; }
.analytics-row > * { min-width: 0; overflow-wrap: anywhere; }
.lab-hero { min-height: 0; padding: 22px; box-shadow: none; }
.lab-hero h2 { font-size: 27px; }
.lab-hero p { font-size: 14px; }
.lab-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lab-metrics article { min-width: 0; padding: 16px; }
.lab-metrics small, .lab-metrics span { font-size: 12px; }
.lab-row { grid-template-columns: 130px minmax(110px, .8fr) minmax(0, 1fr) 90px; gap: 12px; padding: 15px 18px; }
.lab-row > * { min-width: 0; }
.lab-row small { font-size: 12px; }
.lab-form-grid, .lab-price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lab-evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lab-section-title, .lab-evidence header { flex-wrap: wrap; }
.lab-form-grid label, .lab-price-grid label, .lab-section-title span { font-size: 12px; }
.lab-result-picker span { min-height: 44px; }
.lab-indicators select, .lab-evidence-actions label span, .lab-evidence-actions button { min-height: 44px; font-size: 12px; }
.framework-edit-group, .framework-group-fields, .framework-indicator-row { min-width: 0; }
.framework-item-actions button, .framework-order-actions button { min-height: 44px; min-width: 36px; }
.toast { max-width: min(440px, calc(100vw - 24px)); font-size: 13px; overflow-wrap: anywhere; pointer-events: none; }
.offline-banner { max-width: calc(100vw - 24px); width: max-content; font-size: 12px; text-align: center; }
/* The persistent header already reports local/cloud state; no duplicate badge
   should cover the editor's save receipt or a phone's bottom controls. */
.shell:has(#compactSyncStatus) ~ .offline-banner { display: none; }

@media (min-width: 901px) and (max-width: 1279px) {
  :root { --gd-nav-width: 76px; --gd-gutter: 20px; }
  .sidebar { padding: 22px 8px; }
  .brand { justify-content: center; padding: 0 0 20px; }
  .brand > div, .sidefoot { display: none; }
  .nav button { flex-direction: column; justify-content: center; gap: 3px; min-height: 66px; padding: 10px 4px; text-align: center; font-size: 12px; }
  .nav i { width: auto; font-size: 21px; }
  .compact-sync { max-width: 150px; }
  .trade-workbench-grid { grid-template-columns: minmax(290px, 34%) minmax(0, 1fr); gap: 12px; }
  .trade-review-core { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trade-review-header > button:not(.trade-review-back) { grid-column: 1 / -1; }
  .trade-review-links, .trade-review-indicators { grid-template-columns: minmax(0, 1fr); }
  .trade-grade-row { grid-template-columns: minmax(110px, .8fr) minmax(0, 1fr); }
  .trade-grade-row > button { grid-column: 1 / -1; justify-self: end; }
}

@media (max-width: 1100px) {
  .hero { grid-template-columns: minmax(0, 1fr); }
  .metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metric:last-child { grid-column: auto; }
  .lab-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-fill-row.grouped, .trade-create-modal .entry-fill-row.grouped { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr) minmax(70px, .6fr) 44px; }
  .quick-entry-rows .entry-fill-row.grouped { grid-template-columns: minmax(0, 1fr) 110px 44px; }
}

/* Tablet and phone share one navigation switch and one editing surface. */
@media (max-width: 900px) {
  :root { --gd-gutter: 16px; --gd-header-height: 90px; }
  html { scroll-padding-top: 104px; scroll-padding-bottom: calc(var(--gd-bottom-nav) + 16px + env(safe-area-inset-bottom)); }
  body { padding: 0; }
  .shell { display: block; padding-bottom: calc(var(--gd-bottom-nav) + env(safe-area-inset-bottom)); }
  .sidebar { position: fixed; inset: auto 0 0; width: 100%; height: calc(var(--gd-bottom-nav) + env(safe-area-inset-bottom)); padding: 6px 10px calc(6px + env(safe-area-inset-bottom)); border-top: 1px solid #cbdad1; background: #fafffc; box-shadow: 0 -4px 20px #173e3308; }
  .brand, .sidefoot { display: none; }
  .nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin: 0; }
  .nav button { flex-direction: column; justify-content: center; gap: 2px; min-height: 58px; padding: 5px; border-radius: 8px; color: #60776a; font-size: 12px; text-align: center; }
  .nav i { display: block; width: auto; font-size: 21px; }
  .nav button.active { color: var(--green); background: #e7f1ea; box-shadow: none; }
  .workspace { min-height: 100dvh; margin: 0; width: 100%; max-width: 100%; }
  .topbar { gap: 12px; min-height: calc(var(--gd-header-height) + env(safe-area-inset-top)); padding: calc(10px + env(safe-area-inset-top)) var(--gd-gutter) 24px; }
  .topbar h1 { margin: 0; font-size: 23px; }
  .page-heading .eyebrow { display: none; }
  .actions { position: static; flex: 0 1 auto; gap: 6px; }
  .actions .primary, .actions .secondary, .actions #addBtn, .actions #mt5Btn { min-height: 44px; padding: 9px 11px; font-size: 13px; }
  .compact-sync { position: absolute; right: var(--gd-gutter); bottom: 5px; max-width: calc(100% - 32px); font-size: 12px; line-height: 16px; }
  .topbar .action-menu { position: static; }
  .topbar .menu-panel { top: calc(100% - 4px); right: var(--gd-gutter); width: min(320px, calc(100vw - 32px)); }
  .page { padding: 16px var(--gd-gutter) 26px; }
  .trade-workbench-hero { margin-bottom: 12px; }
  .trade-workbench-hero > div:first-child { display: none; }
  .trade-workbench-grid { display: block; }
  .trade-workbench-controls { margin-bottom: 12px; }
  .trade-workbench-search { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto auto; }
  .trade-workbench-search .search { grid-column: 1 / -1; }
  .trade-workbench-search .action-menu { position: static; }
  .trade-workbench-search .menu-panel { top: calc(100% + 6px); right: 0; width: min(360px, 100%); max-width: 100%; }
  .trade-ledger { position: static; width: 100%; max-height: none; }
  .trade-ledger-list { display: block; max-height: none; overflow: visible; scrollbar-gutter: auto; }
  .trade-ledger-item { grid-template-columns: 42px minmax(0, 1fr) 44px; }
  .trade-ledger-open { width: 44px; }
  .trade-ledger-select { gap: 5px 12px; padding: 12px 0; }
  .trade-ledger-meta em { max-width: min(44vw, 270px); }
  .trade-deal-mini { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
  .trade-deal-price { grid-column: 2; grid-row: 1; }
  .trade-deal-mini > strong { grid-column: 3; grid-row: 1; }
  .trade-deal-mini > i { display: none; }
  .trade-workbench:not(.editor-open) .trade-review-inspector { display: none; }
  .trade-workbench.editor-open .trade-ledger, .trade-workbench.editor-open .trade-workbench-controls, .trade-workbench.editor-open .trade-workbench-hero { display: none; }
  .trade-workbench.editor-open .trade-review-inspector { display: block; }
  .trade-review-back { display: inline-flex; align-items: center; justify-content: flex-start; grid-column: 1 / -1; min-height: 44px; width: max-content; padding: 8px 0; border: 0; background: transparent; color: var(--green2); font-size: 14px; font-weight: 650; }
  .trade-review-header { padding: 14px; }
  .trade-review-header h3 { font-size: 20px; }
  .trade-review-core { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 14px; }
  .trade-review-block { padding: 16px 14px; }
  .trade-review-inspector .bulk-mini-field :is(input, select, textarea) { font-size: 16px; }
  .trade-review-indicators, .trade-review-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trade-editor-savebar { padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); }
  .shell:has(.trade-workbench.editor-open) { padding-bottom: 0; }
  .shell:has(.trade-workbench.editor-open) .sidebar, .shell:has(.trade-workbench.editor-open) .topbar .action-menu, .shell:has(.trade-workbench.editor-open) .topbar #addBtn { display: none; }
  .settings-list button, .excel-tools button { font-size: 16px; }
  .analytics-grid { grid-template-columns: minmax(0, 1fr); }
  .lab-row { grid-template-columns: minmax(0, 1fr) auto; }
  .lab-row .lab-logic { grid-column: 1 / -1; grid-row: 3; }
  .lab-row .lab-outcome { grid-column: 2; grid-row: 1 / 3; }
  .toast { bottom: calc(var(--gd-bottom-nav) + 12px + env(safe-area-inset-bottom)); right: 12px; }
  .offline-banner { bottom: calc(var(--gd-bottom-nav) + 12px + env(safe-area-inset-bottom)); }
  body:has(.trade-workbench.editor-open) .toast, body:has(.trade-workbench.editor-open) .offline-banner { bottom: calc(86px + env(safe-area-inset-bottom)); }
}

@media (max-width: 600px) {
  :root { --gd-gutter: 12px; }
  .settings-button { padding: 10px; }
  .action-menu > summary { padding: 10px; font-size: 13px; }
  .trade-workbench-stats { gap: 10px; }
  .trade-workbench-search { gap: 6px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) auto auto; }
  .trade-workbench-search :is(input, select) { font-size: 16px; }
  .trade-workbench-search .search { font-size: 16px; }
  .trade-workbench-batch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trade-workbench-batch strong { grid-column: 1 / -1; margin: 0; }
  .trade-workbench-batch select, .trade-workbench-batch button { min-width: 0; width: 100%; font-size: 14px; }
  .trade-review-header { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .trade-review-header > button:not(.trade-review-back) { grid-column: 1 / -1; justify-self: stretch; }
  .trade-review-result strong { font-size: 21px; }
  .trade-review-header > strong { font-size: 21px; }
  .trade-review-core { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trade-review-field-grid, .trade-review-links { grid-template-columns: minmax(0, 1fr); }
  .trade-review-block > header { align-items: flex-start; flex-wrap: wrap; gap: 4px; }
  .trade-review-inspector .bulk-mini-field textarea { min-height: 92px; }
  .trade-review-indicators { gap: 8px; }
  .trade-review-indicators .bulk-mini-field { padding: 8px; }
  .trade-review-indicators .bulk-mini-field > span { flex-direction: column; align-items: flex-start; gap: 2px; }
  .trade-grade-row { grid-template-columns: minmax(100px, .7fr) minmax(0, 1fr); gap: 10px; }
  .trade-grade-row > button { grid-column: 1 / -1; justify-self: end; }
  .trade-editor-savebar { flex-wrap: wrap; gap: 8px; }
  .trade-editor-savebar > div { flex-basis: 100%; }
  .trade-editor-savebar button { flex: 1; }
  .overlay { padding: 8px; padding-top: max(8px, env(safe-area-inset-top)); }
  .modal, .drawer, .lab-drawer, .mt5-modal { width: 100%; max-height: calc(100dvh - max(16px, env(safe-area-inset-top) + env(safe-area-inset-bottom))); padding: 18px 14px; border-radius: 12px; }
  .modalhead h2 { font-size: 22px; }
  .formgrid, .structured-review-grid, .entry-groups-list, .lab-evidence-grid, .shots, .trade-screenshots-top .shots, .new-evidence-grid { grid-template-columns: minmax(0, 1fr); }
  .formgrid .full, .structured-review-grid .full { grid-column: 1 / -1; }
  .modal :is(input, select, textarea), .drawer :is(input, select, textarea) { font-size: 16px; }
  .quick-main-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .quick-trade-core { padding: 12px; }
  .quick-entry-title { display: grid; gap: 5px; }
  .quick-entry-title small { max-width: none; text-align: left; font-size: 12px; }
  .entry-fill-row.grouped, .trade-create-modal .entry-fill-row.grouped { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 10px; }
  .entry-fill-row.grouped .entry-fill-field.group { grid-column: 1 / -1; }
  .entry-fill-row.grouped .entry-fill-field.size { grid-column: 1; }
  .entry-fill-row.grouped .remove { grid-column: 2; justify-self: end; }
  .quick-entry-rows .entry-fill-row.grouped { grid-template-columns: minmax(0, 1fr) minmax(70px, .6fr) 36px; gap: 6px; padding: 8px; }
  .quick-entry-rows .entry-fill-row.grouped .entry-fill-field:has(.entry-price) { grid-column: 1; grid-row: 1; }
  .quick-entry-rows .entry-fill-row.grouped .entry-fill-field.size { grid-column: 2; grid-row: 1; }
  .quick-entry-rows .entry-fill-row.grouped .remove { width: 36px; grid-column: 3; grid-row: 1; }
  .quick-stop-field { width: 100%; }
  .quick-entry-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quick-entry-actions .subaction { min-width: 0; min-height: 44px; height: auto; padding: 8px; font-size: 12px; white-space: normal; }
  .quick-form-actions, .lab-overlay .formactions { bottom: -18px; margin: 16px -14px -18px; padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); }
  .quick-form-actions .primary { flex: 1; }
  .entry-group-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-group-fields > label:last-child { grid-column: 1 / -1; }
  .entry-risk-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-risk-strip span:last-child { grid-column: 1 / -1; }
  .entry-fills-title { flex-direction: column; gap: 3px; }
  .exit-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .exit-row .remove { grid-column: 2; justify-self: end; }
  .indicator-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .indicator-row > div, .indicator-row > input { grid-column: 1 / -1; }
  .trade-result { margin-inline: -14px; padding-inline: 14px; flex-wrap: wrap; }
  .trade-result strong { font-size: 22px; }
  .formactions { gap: 8px; }
  .formactions > button { flex: 1 1 100px; }
  .formactions > .danger { flex-basis: 100%; margin-right: 0; }
  .metrics, .lab-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .metric { min-height: 130px; padding: 16px; }
  .metric:last-child { grid-column: 1 / -1; }
  .equity { min-height: 300px; padding: 20px; }
  .big { font-size: 36px; }
  .lab-hero { padding: 18px; }
  .lab-hero h2 { font-size: 24px; }
  .lab-form-grid, .lab-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-price-grid label:last-child { grid-column: 1 / -1; }
  .lab-indicators label { grid-template-columns: minmax(0, 1fr) minmax(92px, .6fr); gap: 8px; }
  .lab-overlay .formactions { display: flex; }
  .lab-evidence-preview { height: 180px; }
  .framework-edit-group > header { flex-wrap: wrap; gap: 8px; padding: 12px; }
  .framework-group-fields { grid-template-columns: minmax(0, 1fr); }
  .framework-indicator-row { grid-template-columns: 24px minmax(0, 1fr); }
  .framework-indicator-row label { grid-column: 2; }
  .framework-item-actions { grid-column: 2; justify-content: flex-end; }
  .ocr-error-modal .formactions { display: flex; }
  .ocr-error-modal .formactions #manualMt5 { flex-basis: 100%; }
  .mt5-flow div { min-width: 0; padding: 8px; gap: 6px; font-size: 12px; }
  .mt5-flow i { flex-shrink: 0; }
}

@media (max-width: 360px) {
  :root { --gd-gutter: 10px; }
  .topbar { gap: 8px; }
  .topbar h1 { font-size: 21px; }
  .actions { gap: 4px; }
  .actions #addBtn { padding-inline: 8px; font-size: 12px; }
  .settings-button, .action-menu > summary { padding-inline: 8px; font-size: 12px; }
  .trade-workbench-controls { padding: 8px; }
  .trade-workbench-search { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  #tradeDisplaySelect, #tradeStatusFilter { padding-inline: 5px; }
  .trade-workbench-search .action-menu > summary { padding-inline: 7px; }
  .trade-ledger-item { grid-template-columns: 34px minmax(0, 1fr) 36px; }
  .trade-ledger-open { width: 36px; }
  .trade-ledger-meta em { max-width: 105px; }
  .trade-deal-mini { grid-template-columns: minmax(0, 1fr) auto; }
  .trade-deal-price { grid-column: 1; grid-row: 2; }
  .trade-deal-mini > strong { grid-column: 2; }
  .trade-review-header { grid-template-columns: minmax(0, 1fr); }
  .trade-review-result { text-align: left; }
  .trade-review-header > strong { text-align: left; }
  .trade-review-header > button:not(.trade-review-back) { grid-column: 1; }
  .trade-review-core { gap: 8px; }
  .quick-main-fields { grid-template-columns: minmax(0, 1fr); }
  .lab-metrics strong { font-size: 25px; }
  .analytics-row { gap: 8px; grid-template-columns: minmax(74px, 1fr) minmax(0, .7fr) auto; }
}

/* Interior actions: one obvious next step; secondary operations stay contextual. */
.action-menu[open] > .menu-panel:not(.floating-action-panel) { visibility: hidden; }
.action-menu > .menu-panel.floating-action-panel { position: fixed; z-index: 250; right: auto; bottom: auto; min-width: 0; max-width: calc(100vw - 24px); }
.interior-menu { display: inline-block; max-width: 100%; }
.interior-menu > summary { justify-content: space-between; min-width: 116px; }
.menu-panel > [hidden] { display: none; }
.menu-panel > button:disabled { opacity: .45; cursor: not-allowed; }
.menu-panel > button { margin: 0; box-shadow: none; }
.menu-panel > .add-entry-group { border-top: 1px solid var(--line); border-radius: 0 0 6px 6px; }
.shot-actions { margin-top: 12px; }
.shot-add-menu { width: 100%; }
.shot-add-menu > summary { background: #fff; color: var(--green); }
.new-evidence-card > .shot-add-menu { margin-top: 10px; }
.lab-evidence-actions { display: block; }
.new-evidence-card:not(.show-link) > .new-tv-link,
.lab-evidence:not(.show-link) > .lab-link-input { display: none; }
.new-evidence-card.show-link > .new-tv-link,
.lab-evidence.show-link > .lab-link-input { display: block; width: 100%; margin-top: 10px; }
.entry-add-menu { margin-top: 12px; }
.quick-entry-actions { display: flex; margin-top: 10px; }
.quick-trade-modal:has(#advancedTradeFields[open]) .quick-entry-actions { display: none; }
.formactions > .interior-menu { margin-right: auto; align-self: center; flex: 0 0 auto; }
.formactions > .primary:only-child { margin-left: auto; }
.mt5-review-actions > .interior-menu { margin-right: auto; }
.framework-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 12px; }
.framework-toolbar > span { color: var(--muted); font-size: 13px; }
.framework-editor-modal:not(.arrange-actions) .framework-order-actions,
.framework-editor-modal:not(.arrange-actions) .framework-item-actions { display: none; }
.framework-editor-modal:not(.arrange-actions) .framework-indicator-row { grid-template-columns: 24px minmax(0, 1fr) minmax(85px, .35fr); }
.framework-editor-modal.arrange-actions #toggleIndicatorArrange { background: var(--green); color: #fff; }
.maintenance-tools > summary { cursor: pointer; color: var(--muted); font-size: 14px; font-weight: 600; padding: 8px 0; }
.maintenance-tools[open] > summary { margin-bottom: 12px; }
.account-actions { justify-content: flex-start; }
@media (max-width: 600px) {
  .framework-toolbar { align-items: flex-start; }
  .framework-toolbar > span { max-width: 100px; }
  .framework-toolbar > button { font-size: 12px; padding: 8px; }
  .framework-editor-modal:not(.arrange-actions) .framework-indicator-row { grid-template-columns: 20px minmax(0, 1fr); }
  .formactions > .interior-menu > summary { min-width: 80px; }
  .formactions > .primary { flex: 1 1 auto; }
  .mt5-review-actions { display: flex; flex-wrap: wrap; gap: 10px; }
}

/* Section disclosures share one full-row hit target and a visible state chip.
   Native details owns its open state; ledger rows keep their existing state. */
summary.section-disclosure-summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 60px; padding: 12px 14px; border: 1px solid #9cbaa9; border-radius: 9px; background: #f5f9f6; color: var(--green); cursor: pointer; list-style: none; }
summary.section-disclosure-summary::-webkit-details-marker { display: none; }
summary.section-disclosure-summary::marker { content: ""; }
.section-disclosure-summary .disclosure-copy, .trade-ledger-collapse .disclosure-copy { display: grid; min-width: 0; gap: 3px; float: none; }
.section-disclosure-summary .disclosure-copy b { font-size: 15px; font-weight: 750; }
.section-disclosure-summary .disclosure-copy small { color: #586c60; font-size: 12px; font-weight: 400; line-height: 1.45; }
.section-disclosure-summary .disclosure-state, .trade-ledger-collapse .disclosure-state { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; gap: 7px; min-width: 78px; min-height: 34px; padding: 5px 10px; border: 1px solid var(--green2); border-radius: 6px; background: #fff; color: var(--green); font-size: 13px; font-weight: 750; float: none; }
.section-disclosure-summary .disclosure-state > span, .trade-ledger-collapse .disclosure-state > span { display: inline; color: inherit; font: inherit; float: none; }
.section-disclosure-summary .disclosure-state > .disclosure-when-open, .trade-ledger-collapse .disclosure-state > .disclosure-when-open { display: none; }
.disclosure-chevron { display: block; flex: 0 0 18px; transition: transform .15s ease; }
.disclosure-count { display: inline-block; margin-left: 5px; color: #586c60; font-size: 12px; font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; }
details[open] > summary.section-disclosure-summary { border-color: var(--green); background: var(--green); color: #fff; }
details[open] > .section-disclosure-summary .disclosure-copy small { color: #d8e9df; }
.trade-ledger-collapse[aria-expanded="true"] .disclosure-count { color: #d8e9df; }
details[open] > .section-disclosure-summary .disclosure-state, .trade-ledger-collapse[aria-expanded="true"] .disclosure-state { border-color: #fff; background: #fff; color: var(--green); }
details[open] > .section-disclosure-summary .disclosure-when-closed, .trade-ledger-collapse[aria-expanded="true"] .disclosure-when-closed { display: none; }
details[open] > .section-disclosure-summary .disclosure-when-open, .trade-ledger-collapse[aria-expanded="true"] .disclosure-when-open { display: inline; }
details[open] > .section-disclosure-summary .disclosure-chevron, .trade-ledger-collapse[aria-expanded="true"] .disclosure-chevron { transform: rotate(180deg); }
.section-disclosure-summary:hover, .trade-ledger-collapse:hover { border-color: var(--green2); background: #eaf3ed; }
details[open] > summary.section-disclosure-summary:hover, .trade-ledger-collapse[aria-expanded="true"]:hover { border-color: var(--green); background: var(--green); color: #fff; }
.section-disclosure-summary:focus-visible, .trade-ledger-collapse:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.quick-disclosure, .lab-indicators, .account-more { border: 0; overflow: visible; }
.quick-disclosure[open], .lab-indicators[open], .account-more[open] { box-shadow: inset 0 0 0 1px #d8e1dc; }
.account-more > summary { margin-bottom: 8px; }
.batch-group-advanced > summary.section-disclosure-summary { margin-top: 10px; }
@media (max-width: 390px) {
  summary.section-disclosure-summary { gap: 8px; padding: 11px; }
  .section-disclosure-summary .disclosure-copy b { font-size: 14px; }
  .section-disclosure-summary .disclosure-copy small { font-size: 11px; }
  .section-disclosure-summary .disclosure-state, .trade-ledger-collapse .disclosure-state { min-width: 72px; padding-inline: 8px; }
  .trade-ledger-collapse { padding-inline: 8px; }
  .trade-ledger-collapse .batch-summary-pnl { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; animation-duration: .01ms; transition-duration: .01ms; }
}

}