body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{background-color:#f9fafb;color:#111827;font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;margin:0}.dashboard-container{margin:auto;max-width:1280px;padding:2rem}header h1{color:#1e293b;font-size:2.5rem;font-weight:700;margin-bottom:2rem;text-align:center}.grid-layout{grid-gap:1.75rem;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.chart-panel,.full-width,.panel{background-color:#fff;border-radius:14px;box-shadow:0 4px 10px #0000000a;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.chart-panel:hover,.full-width:hover,.panel:hover{box-shadow:0 6px 16px #0000000f;transform:translateY(-2px)}.chart-panel{grid-column:span 2;min-width:0}.full-width{grid-column:1/-1;min-width:0;overflow-x:auto}@media (max-width:767px){.chart-panel,.full-width{grid-column:1/-1}.cond-toolbar select,input[type=number],input[type=text],select{font-size:16px}}@media (max-width:480px){.dashboard-container{padding:.75rem}header h1{font-size:1.6rem}}.overflow-x-auto{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.w-full{width:100%}button{background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;margin:.5rem 0;padding:.6rem 1.2rem;transition:background-color .2s ease}button:hover:not(:disabled){background-color:#2563eb}button:disabled{background-color:#93c5fd;cursor:not-allowed}table{border-collapse:collapse;font-size:.9rem;margin-top:1rem;width:100%}table td,table th{border:1px solid #e5e7eb;padding:.75rem;text-align:left}table th{background-color:#f1f5f9;color:#334155;font-weight:600}table tr:nth-child(2n){background-color:#f8fafc}.strategy-rules ul{list-style:none;padding:0}.strategy-rules li{border-bottom:1px solid #e5e7eb;padding:.5rem 0}.strategy-rules li:last-child{border-bottom:none}.allocations-table{margin:1rem 0;overflow-x:auto}.allocations-table table{font-size:.85rem}.allocations-table th{background-color:#3b82f6;color:#fff;font-weight:600}.summary ul{list-style:none;padding:0}.summary li{border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:.5rem 0}.summary li:last-child{border-bottom:none}.card h2{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.card h3{color:#374151;font-size:1.2rem;font-weight:500;margin:1.5rem 0 1rem}.summary-section{background-color:#f8fafc;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-item{background-color:#fff;border-left:4px solid #3b82f6;border-radius:6px;box-shadow:0 2px 4px #0000000d;padding:1rem}.section{margin-bottom:2rem}.token-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.token-item{grid-gap:.5rem;align-items:center;background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:.5rem;grid-template-columns:1fr 1fr 1fr;padding:1rem}.token-symbol{color:#1e293b;font-size:1.1rem;font-weight:600}.token-amount{color:#374151;font-family:Courier New,monospace;font-size:.9rem;text-align:center}.token-value{color:#059669;font-weight:600;text-align:right}.token-quote{color:#6b7280;font-size:.9rem;text-align:center}@media (max-width:768px){.token-grid{grid-template-columns:1fr}.token-item{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.token-symbol{grid-column:1;grid-row:1}.token-amount{grid-column:2;grid-row:1}.token-value{grid-row:2}.token-quote,.token-value{grid-column:1/-1;text-align:center}.token-quote{grid-row:3}}.status-section{background-color:#f8fafc;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.status-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:.5rem 0}.status-item:last-child{border-bottom:none}.status-badge{border-radius:20px;font-size:.9rem;font-weight:600;padding:.25rem .75rem}.status-badge.running{background-color:#dcfce7;color:#166534}.status-badge.stopped{background-color:#fee2e2;color:#991b1b}.quick-stats{margin-top:1.5rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:1rem}.stat-item{background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;padding:1rem;text-align:center}.stat-label{color:#6b7280;font-size:.85rem;font-weight:500;margin-bottom:.5rem}.stat-value{color:#1e293b;font-size:1.2rem;font-weight:700}.stat-value.positive{color:#059669}.stat-value.negative{color:#dc2626}.cond-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.cond-toolbar button.active{background-color:#1d4ed8}.cond-toolbar select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:.45rem .6rem}.mode-badge{background-color:#eef2ff;border-radius:999px;color:#3730a3;display:inline-block;font-size:.85rem;font-weight:600;padding:.2rem .65rem}.cond-table{font-size:.8rem;white-space:nowrap}.cond-table td,.cond-table th{padding:.4rem .55rem;text-align:center}.cond-table td:first-child,.cond-table td:nth-child(2),.cond-table th:first-child,.cond-table th:nth-child(2){text-align:left}.cond-ok{color:#059669;font-weight:700}.cond-no{color:#dc2626;font-weight:700}.cond-na{color:#9ca3af}.sig-BUY{color:#065f46;font-weight:700}.sig-SELL{color:#991b1b;font-weight:700}.sig-HOLD{color:#374151}.cond-legend{color:#6b7280;font-size:.8rem;line-height:1.5;margin-top:.6rem}.cond-empty{background-color:#f8fafc;border-radius:6px;color:#6b7280;margin-top:1rem;padding:1rem;text-align:center}.cond-row{cursor:pointer}.cond-row:hover{background-color:#eff6ff}.cond-detail td{background-color:#f8fafc;padding:.75rem 1rem;text-align:left;white-space:normal}.cond-detail-head{color:#1e293b;font-weight:600;margin-bottom:.5rem}.cond-detail-list{grid-gap:.15rem 1.25rem;display:grid;gap:.15rem 1.25rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));list-style:none;margin:0 0 .5rem;padding:0}.cond-detail-list li{color:#374151;font-family:Courier New,monospace;font-size:.8rem}.cond-detail-note{color:#6b7280;font-size:.8rem}