:root{--ink:#17241f;--muted:#68746e;--paper:#f2efe7;--card:#fffdf8;--line:#d9ddd5;--green:#155f4a;--lime:#bdd43a;--red:#a8443f;--amber:#b96d20}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font:14px/1.5 Inter,system-ui,sans-serif}button,input,select{font:inherit}.app{grid-template-columns:220px 1fr;min-height:100vh;display:grid}aside{color:#fff;background:#173329;height:100vh;padding:28px 18px;position:sticky;top:0}.brand{letter-spacing:.15em;font-weight:900}.brand i{background:var(--lime);color:#173329;border-radius:50%;place-items:center;width:34px;height:34px;margin-right:9px;display:inline-grid}nav{margin-top:38px}nav button{color:#c8d7d1;text-align:left;cursor:pointer;text-transform:capitalize;background:0 0;border:0;border-radius:8px;justify-content:space-between;width:100%;padding:11px;display:flex}nav button.active,nav button:hover{color:#fff;background:#ffffff14}nav em{background:var(--lime);color:#173329;border-radius:20px;place-items:center;min-width:20px;height:20px;font-size:10px;font-style:normal;display:grid}aside>small{color:#91aaa0;position:absolute;bottom:25px}main{width:100%;max-width:1500px;padding:30px 34px 70px}.top{justify-content:space-between;gap:20px;display:flex}.top span,.modal-card header small{color:var(--green);letter-spacing:.15em;font-size:10px;font-weight:900}.top h1{margin:5px 0 0;font:500 38px Georgia,serif}.top p{color:var(--muted);margin:4px 0}button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;padding:9px 12px}button.primary{background:var(--green);border-color:var(--green);color:#fff}button.danger{color:var(--red);background:0 0;border:0}.top-actions,.actions{align-items:start;gap:8px;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0;display:grid}.stats div{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:16px}.stats small,.summary small,.asset small{color:var(--muted);display:block}.stats b{font:500 28px Georgia,serif}.wallet-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.wallet-card{border:1px solid var(--line);background:var(--card);border-radius:13px;padding:19px;box-shadow:0 15px 40px #263c3210}.wallet-card>header{justify-content:space-between;display:flex}.wallet-card h3{margin:4px 0 0;font:500 24px Georgia,serif}.kind{color:var(--green);text-transform:uppercase;background:#e4efe8;border-radius:20px;padding:4px 7px;font-size:9px;font-weight:900}.summary{grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0;display:grid}.summary div{background:#f4f3ed;border-radius:8px;padding:10px}.summary b{margin-top:3px;display:block}.settings,.rule-note{color:var(--muted);background:#edf2e9;border-radius:8px;padding:11px;font-size:11px}.rule-note{flex-direction:column;display:flex}.actions,.assets{margin-top:12px}.asset{border-top:1px solid var(--line);grid-template-columns:1.5fr repeat(3,1fr);gap:10px;padding:11px 0;display:grid}.asset span{color:var(--muted);font-size:11px;display:block}.alert-list article{border:1px solid var(--line);border-left:4px solid var(--amber);background:var(--card);border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin-top:10px;padding:16px;display:flex}.alert-list article.buy{border-left-color:var(--green)}.alert-list h3{margin:4px 0}.alert-list p{color:var(--muted);margin:0}.alert-list article>div:last-child{gap:7px;display:flex}.empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:12px;margin-top:25px;padding:45px}table{border-collapse:collapse;background:var(--card);width:100%;margin-top:20px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px}th{color:var(--muted);text-transform:uppercase;font-size:10px}.modal{z-index:1000;background:#10251dcc;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:var(--card);border-radius:14px;width:min(680px,96vw);max-height:92vh;padding:22px;overflow:auto}.modal-card>header{justify-content:space-between;display:flex}.modal-card h2{margin:4px 0;font:500 27px Georgia,serif}.modal-card>header button{background:0 0;border:0;font-size:22px}.type-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:15px;display:grid}.type-grid button{text-align:left;padding:15px}.type-grid button.selected{border-color:var(--green);background:#edf2e9}.type-grid span{color:var(--muted);margin-top:5px;font-size:11px;display:block}.form-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.form-grid label{color:var(--muted);font-size:11px}.form-grid input,.form-grid select{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;margin-top:4px;padding:10px;display:block}.form-grid .full,.form-grid footer{grid-column:1/-1}.form-grid footer{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.search-list{border:1px solid var(--line);border-radius:8px;max-height:220px;overflow:auto}.search-list:empty{display:none}.search-list button{border:0;border-bottom:1px solid var(--line);text-align:left;border-radius:0;width:100%;display:block}.search-list button.selected{background:#edf2e9}.search-list small{color:var(--muted);display:block}@media (width<=900px){.app{display:block}aside{height:auto;position:static}aside>small{display:none}nav{margin-top:20px;display:flex}.wallet-grid{grid-template-columns:1fr}.top{display:block}.top-actions{margin-top:15px}.asset{grid-template-columns:1fr 1fr}}@media (width<=600px){main{padding:22px 15px}.stats,.summary,.type-grid,.form-grid{grid-template-columns:1fr}.form-grid .full,.form-grid footer{grid-column:auto}.asset{grid-template-columns:1fr}}.notes-toolbar{align-items:center;gap:8px;margin-top:20px;display:flex}.notes-toolbar select{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:9px 12px}.upload-button{cursor:pointer;align-items:center;display:inline-flex}.notes-error{color:var(--red);background:#fbeceb;border-radius:8px;margin-top:10px;padding:10px 14px}.notes-list{flex-direction:column;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.notes-list li{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;align-items:center;gap:14px;padding:14px 16px;display:flex}.notes-list li:hover{border-color:var(--green)}.notes-list em{color:var(--muted);margin-left:auto;font-size:12px;font-style:normal}.notes-list small{color:var(--muted)}.status{color:var(--green);text-transform:uppercase;white-space:nowrap;background:#edf2e9;border-radius:20px;padding:4px 8px;font-size:9px;font-weight:900}.status-pending{color:var(--amber);background:#f4ecd8}.status-failed,.status-no_operations{color:var(--red);background:#fbeceb}.asset{grid-template-columns:1.35fr repeat(5,1fr);gap:12px;padding:13px 0}.asset .gain{color:var(--green)}.asset .loss{color:var(--red)}.asset-situation{border-radius:20px;width:max-content;padding:3px 7px;font-size:11px;display:inline-block}.asset-situation.positive{color:var(--green);background:#e4efe8}.asset-situation.warning{color:var(--amber);background:#f7ead9}.asset-situation.negative{color:var(--red);background:#f5dfdc}.view-controls{border:1px solid var(--line);background:var(--card);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 16px;padding:10px 12px;display:flex}.view-controls label{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.view-modes{display:flex}.view-modes button{border-radius:0}.view-modes button:first-child{border-radius:7px 0 0 7px}.view-modes button:last-child{border-radius:0 7px 7px 0}.view-modes button.active{background:var(--green);color:#fff}.wallet-chart{border:1px solid var(--line);background:var(--card);border-radius:13px;margin-bottom:16px;padding:18px}.wallet-chart header{justify-content:space-between;align-items:start;display:flex}.wallet-chart h2{margin:2px 0 14px;font:500 23px Georgia,serif}.wallet-chart header small{color:var(--green);font-weight:900}.wallet-chart header span{color:var(--muted);font-size:11px}.chart-row{grid-template-columns:210px 1fr 70px;align-items:center;gap:10px;margin:7px 0;font-size:11px;display:grid}.chart-row i{background:#e7e9e3;border-radius:8px;height:8px;overflow:hidden}.chart-row i b{background:var(--green);border-radius:8px;height:100%;display:block}.chart-row strong{text-align:right}.wallet-badges{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.wallet-badges span{color:#506016;background:#eef1d6;border-radius:20px;padding:3px 7px;font-size:9px;font-weight:800}.wallet-grid.mode-detailed{grid-template-columns:1fr}.wallet-grid.mode-compact .asset>div:nth-child(4),.wallet-grid.mode-compact .asset>div:nth-child(5),.wallet-grid.mode-compact .asset>div:nth-child(6){display:none}.wallet-grid.mode-minimal{grid-template-columns:repeat(3,1fr)}.view-minimal .settings,.view-minimal .assets,.view-minimal .summary>div:nth-child(2),.view-minimal .actions button:not(.backtest-details-button){display:none}.view-minimal .summary{grid-template-columns:1fr 1fr}.view-minimal .actions{margin-top:8px}@media (width<=1100px){.wallet-grid.mode-minimal{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.wallet-grid.mode-minimal{grid-template-columns:1fr}.chart-row{grid-template-columns:110px 1fr 58px}.view-controls{flex-direction:column;align-items:flex-start}}.chart-row{text-align:left;background:0 0;border:0;border-radius:6px;width:100%;padding:4px 2px}.chart-row:hover{background:#f1f3ec}.wallet-card{scroll-margin:24px;transition:box-shadow .25s,border-color .25s}.wallet-card.wallet-highlight{border-color:var(--green);box-shadow:0 0 0 4px #155f4a24,0 18px 45px #263c3225}.badge-filters{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:5px;width:100%;padding-top:9px;display:flex}.badge-filters small{color:var(--muted);margin-right:5px;font-size:9px;font-weight:900}.badge-filters button{border-radius:20px;padding:4px 8px;font-size:10px}.badge-filters button.active{border-color:var(--green);color:var(--green);background:#e4efe8}.badge-filters button.clear{color:var(--red);background:0 0;border:0}.rotation-breadth{border:1px solid var(--line);background:var(--card);border-radius:13px;margin-bottom:16px;padding:20px}.rotation-breadth>header{justify-content:space-between;gap:20px;display:flex}.rotation-breadth h2{margin:2px 0;font:500 25px Georgia,serif}.rotation-breadth header small{color:var(--green);font-size:9px;font-weight:900}.rotation-breadth header p{color:var(--muted);margin:2px 0}.rotation-breadth>header>strong{font:500 34px Georgia,serif}.rotation-breadth>header>strong.tech{color:#4556a5}.rotation-breadth>header>strong.commodity{color:var(--amber)}.rotation-scale{color:var(--muted);grid-template-columns:90px 1fr 90px;align-items:center;gap:10px;margin:18px 0 10px;font-size:11px;display:grid}.rotation-scale span:last-child{text-align:right}.rotation-scale i{background:linear-gradient(90deg,#b96d20,#e8e2cc 50%,#4556a5);border-radius:12px;height:12px;position:relative}.rotation-scale i:after{content:"";background:#17241f55;width:1px;height:20px;position:absolute;top:-4px;left:50%}.rotation-scale i b{background:var(--ink);border:3px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 5px #0004}.rotation-changes{justify-content:flex-end;gap:20px;display:flex}.rotation-changes span{text-align:right}.rotation-changes small{color:var(--muted);font-size:9px;display:block}.rotation-history{width:100%;height:110px;margin-top:12px;overflow:visible}.rotation-history line{stroke:#17241f33;stroke-dasharray:4}.rotation-history polyline{fill:none;stroke:var(--green);stroke-width:2px;vector-effect:non-scaling-stroke}.rotation-axis{color:var(--muted);justify-content:space-between;font-size:9px;display:flex}.rotation-groups{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.rotation-groups button{text-align:left}.rotation-groups button.active{border-color:var(--green);background:#edf2e9}.rotation-groups b,.rotation-groups span{display:block}.rotation-groups span{color:var(--muted);font-size:10px}.rotation-components{background:#f4f3ed;border-radius:9px;margin-top:8px;padding:12px}.rotation-components header,.rotation-components>div{grid-template-columns:1fr repeat(3,110px);gap:10px;padding:6px;display:grid}.rotation-components header{justify-content:space-between;display:flex}.rotation-components>div+div{border-top:1px solid var(--line)}.rotation-components span{font-size:11px}@media (width<=700px){.rotation-changes{justify-content:space-between;gap:5px}.rotation-components>div{grid-template-columns:1fr 1fr}.rotation-groups{grid-template-columns:1fr}}.rotation-chart-wrap{margin-top:12px;padding-right:28px;position:relative}.rotation-chart-wrap .rotation-history{margin:0}.rotation-history line.horizontal{stroke:#17241f20;stroke-dasharray:3 4;vector-effect:non-scaling-stroke}.rotation-history line.horizontal.zero{stroke:#17241f66}.rotation-history line.vertical{stroke:#155f4a30;stroke-dasharray:none;vector-effect:non-scaling-stroke}.rotation-range-labels{width:25px;height:110px;position:absolute;top:0;right:0}.rotation-range-labels span{color:var(--muted);font-size:8px;position:absolute;right:0;transform:translateY(-50%)}.rotation-axis{height:18px;margin-right:28px;position:relative}.rotation-axis span{position:absolute;transform:translate(-50%)}.rotation-axis span:first-child{transform:none}.rotation-axis b{color:var(--muted);font-size:9px;font-weight:400;position:absolute;right:0}.auth-page{background:#173329;place-items:center;min-height:100vh;padding:20px;display:grid}.auth-page form{background:var(--card);border-radius:16px;width:min(420px,100%);padding:30px;box-shadow:0 25px 70px #0005}.auth-page .brand{color:var(--green);margin-bottom:30px}.auth-page form>small{color:var(--green);letter-spacing:.12em;font-weight:900}.auth-page h1{margin:5px 0;font:500 34px Georgia,serif}.auth-page p{color:var(--muted)}.auth-page label{color:var(--muted);margin-top:14px;font-size:11px;display:block}.auth-page input{border:1px solid var(--line);border-radius:8px;width:100%;margin-top:4px;padding:11px;display:block}.auth-page button{width:100%;margin-top:18px}.auth-error{color:var(--red);margin-top:12px}.visibility{text-transform:uppercase;border-radius:20px;margin-left:5px;padding:4px 7px;font-size:9px;font-weight:900;display:inline-block}.visibility.public{color:#506016;background:#eef1d6}.visibility.private{color:var(--muted);background:#ecebe7}.rotation-selector{flex-direction:column;align-items:flex-end;gap:7px;display:flex}.rotation-selector select{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:230px;padding:8px}.rotation-selector strong{font:500 34px Georgia,serif}.rotation-selector strong.tech{color:#4556a5}.rotation-selector strong.commodity{color:var(--amber)}.asset{grid-template-columns:1.35fr repeat(6,1fr)}.workflow-phase{color:#3f4d8b;background:#e7e9f3;border-radius:20px;width:max-content;padding:3px 7px;font-size:11px;display:inline-block}.wallet-grid.mode-compact .asset{grid-template-columns:1.2fr repeat(3,1fr)}.wallet-grid.mode-compact .asset>div:nth-child(6){display:block}.wallet-grid.mode-compact .asset>div:nth-child(7){display:none}.asset-insight{cursor:pointer;border-radius:7px;margin:-5px;padding:5px}.asset-insight:hover,.asset-insight:focus{background:#edf2e9;outline:none}.journey-summary{grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0;display:grid}.journey-summary span{background:#f4f3ed;border-radius:8px;padding:10px}.journey-summary small,.journey-summary b{display:block}.journey-summary small{color:var(--muted)}.journey-legend{color:var(--muted);justify-content:flex-end;gap:15px;font-size:10px;display:flex}.journey-legend span:before{content:"";background:var(--green);border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.journey-legend .buy:before{background:#258663}.journey-legend .sell:before{background:var(--red)}.journey-chart{width:100%;max-height:330px;overflow:visible}.journey-chart line.horizontal{stroke:#17241f20;stroke-dasharray:3 4}.journey-chart line.vertical{stroke:#155f4a30}.journey-chart text{fill:var(--muted);font-size:9px}.journey-chart polyline{fill:none;stroke:var(--green);stroke-width:2px;vector-effect:non-scaling-stroke}.journey-chart .trade.buy circle{fill:#258663;stroke:#fff;stroke-width:2px}.journey-chart .trade.sell circle{fill:var(--red);stroke:#fff;stroke-width:2px}.journey-chart .trade.buy text{fill:#258663;font-weight:900}.journey-chart .trade.sell text{fill:var(--red);font-weight:900}@media (width<=600px){.journey-summary{grid-template-columns:1fr}}.journey-actions{justify-content:flex-end;gap:7px;display:flex}.modal-card.journey-maximized{width:calc(100vw - 24px);height:calc(100vh - 24px);max-height:none}.journey-maximized .journey-chart{height:calc(100vh - 285px);max-height:none}.journey-maximized .journey-summary{margin:8px 0}.journey-maximized .rule-note{margin-top:4px}@media (width<=700px){.modal-card.journey-maximized{border-radius:0;width:100vw;height:100vh}.journey-maximized .journey-chart{height:auto}}.market-progress{border:1px solid var(--line);background:#faf8f2;border-radius:10px;grid-column:1/-1;padding:14px}.market-progress>b{font-size:12px}.market-progress ol{grid-template-columns:repeat(3,1fr);gap:7px;margin:11px 0 0;padding:0;list-style:none;display:grid}.market-progress li{color:var(--muted);align-items:flex-start;gap:7px;padding:7px;font-size:10px;display:flex}.market-progress li i{background:#e2e5df;border-radius:50%;place-items:center;min-width:20px;height:20px;font-style:normal;display:grid}.market-progress li span,.market-progress li small{display:block}.market-progress li small{color:var(--muted);margin-top:2px}.market-progress li.active{color:var(--green);font-weight:800}.market-progress li.active i,.market-progress li.done i{background:var(--green);color:#fff}.market-progress li.failed{color:var(--red)}.market-progress li.failed i{background:var(--red);color:#fff}@media (width<=600px){.market-progress ol{grid-template-columns:1fr 1fr}}.details-screen{z-index:900;background:var(--paper);position:fixed;inset:0;overflow:auto}.details-shell{max-width:1450px;margin:auto;padding:30px 34px 70px}.details-shell>header{justify-content:space-between;gap:20px;display:flex}.details-shell>header span{color:var(--green);letter-spacing:.15em;font-size:10px;font-weight:900}.details-shell>header h1{margin:5px 0;font:500 38px Georgia,serif}.details-shell>header p{color:var(--muted);margin:0}.details-shell>header>div:last-child{align-items:start;gap:8px;display:flex}.exit-rule-select{color:var(--muted);gap:4px;font-size:10px;font-weight:700;display:grid}.exit-rule-select select{border:1px solid var(--line);background:var(--card);min-width:220px;color:inherit;border-radius:8px;padding:9px 10px}.run-progress,.run-error{background:#edf2e9;border-radius:10px;margin-top:22px;padding:15px}.run-progress i{border:2px solid var(--green);border-top-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:9px;animation:.8s linear infinite spin;display:inline-block}.run-progress span{color:var(--muted);margin-left:23px;font-size:11px;display:block}.run-error{color:var(--red);background:#f4dfdc}.result-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px;display:grid}.metric-title{margin:28px 0 -14px;font:500 22px Georgia,serif}.metric-warning{color:var(--amber);text-transform:uppercase;margin-top:4px;font-size:10px;font-weight:800;display:block}.result-stats div{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:15px}.result-stats small{color:var(--muted);display:block}.result-stats b{margin-top:5px;font:500 22px Georgia,serif;display:block}.positive{color:var(--green)}.negative{color:var(--red)}.result-panel{border:1px solid var(--line);background:var(--card);border-radius:12px;margin-top:22px;padding:18px}.result-panel h2{font:500 25px Georgia,serif}.table-scroll{overflow:auto}.result-panel table{min-width:1100px;margin-top:10px}.result-panel td small{color:var(--muted);display:block}.ledger-row>td{background:#f7f5ee;padding:0 15px 20px}.ledger-row table{background:#fff;min-width:900px}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=800px){.details-shell{padding:20px 14px}.details-shell>header{display:block}.details-shell>header>div:last-child{margin-top:12px}.result-stats{grid-template-columns:repeat(2,1fr)}}
