/* Reset & fonts */
* { box-sizing: border-box; margin:0; padding:0; font-family: Inter, Arial, sans-serif;}
body { background: linear-gradient(180deg,#f7fff7,#eef9ee); color:#133; min-height:100vh; }

/* Top bar */
.topbar { display:flex; justify-content:space-between; align-items:center; padding:14px 20px; background:#1f7a1f; color:#fff; box-shadow:0 6px 18px rgba(0,0,0,0.08); }
.brand h1 { font-size:18px; margin-bottom:2px; }
.subtitle { font-size:12px; opacity:0.95; margin-top:2px; color:#e6ffe6; }
.actions button { margin-left:8px; background:rgba(255,255,255,0.12); border:0; color:#fff; padding:8px 10px; border-radius:6px; cursor:pointer;}

/* Layout grid */
.grid { display:grid; grid-template-columns: 1fr 1fr 380px; gap:18px; padding:18px; align-items:start; max-width:1300px; margin:18px auto; }

/* Panels */
.panel { background:#fff; border-radius:10px; padding:14px; box-shadow:0 8px 30px rgba(30,70,30,0.04); }
.panel h2 { color:#1e7a1e; margin-bottom:10px; }

/* Chat */
.chatbox { height:260px; overflow:auto; border-radius:8px; border:1px solid #e6efe6; padding:10px; background:#fbfffb; }
.bot-message, .user-message { padding:8px 10px; margin:8px 0; border-radius:8px; max-width:85%; }
.bot-message { background:#eaffe3; color:#0b3a0b; }
.user-message { background:#e7f0ff; color:#0b2a60; align-self:flex-end; margin-left:auto; text-align:right; }

.chat-controls { display:flex; gap:8px; margin-top:10px; }
.chat-controls input { flex:1; padding:10px; border-radius:8px; border:1px solid #ddd; }
.chat-controls button { padding:10px 14px; border-radius:8px; border:0; background:#1f7a1f; color:#fff; cursor:pointer; }

/* Extras */
.extras { margin-top:10px; display:flex; gap:8px; flex-direction:column;}
.file-label input { display:none; }
.small { font-size:12px; color:#334; margin-top:6px; }

/* Map panel */
.map { height:300px; border-radius:8px; border:1px solid #e6efe6; margin-top:8px; }
.location-row { display:flex; gap:8px; }
.location-row input { flex:1; padding:8px; border-radius:6px; border:1px solid #ddd; }
.location-row button { padding:8px 12px; border-radius:6px; border:0; background:#1f7a1f; color:#fff; cursor:pointer; }

/* Market */
.market-top { display:flex; gap:8px; align-items:center; margin-bottom:8px; }
.market-top select { padding:8px; border-radius:6px; border:1px solid #ddd; }
.market-list { margin-top:12px; }
.market-list .row { display:flex; justify-content:space-between; padding:8px; border-radius:6px; border:1px solid #f0f0f0; margin-bottom:6px; background:#fafafa; }

/* Strategies list */
.strategies { list-style-type:disc; margin-left:18px; margin-top:8px; }

/* Charts */
canvas { width:100% !important; background:transparent; }

/* News carousel */
.carousel { display:flex; gap:12px; overflow:auto; padding:8px 4px; }
.card-news { min-width:260px; background:#fff; border-radius:8px; box-shadow:0 6px 18px rgba(30,70,30,0.06); overflow:hidden; }
.card-news img { width:100%; height:140px; object-fit:cover; display:block; }
.card-news .content { padding:8px; }
.card-news .title { font-weight:700; font-size:14px; margin-bottom:6px; color:#123; }
.card-news .source { font-size:12px; color:#556; }

/* Footer */
.footer { text-align:center; padding:12px; color:#234; margin:18px auto; max-width:1300px; }
@media (max-width:1000px){
  .grid { grid-template-columns: 1fr; padding:12px; }
  .market-panel { order:3; }
}
