
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:#f7f8f5;color:#1a1a18;min-height:100vh}
.page{max-width:1100px;margin:0 auto;padding:20px 18px 60px}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid #e2e4dc}
.brand{font-size:19px;font-weight:600;color:#1a1a18}
.brand-sub{font-size:12px;color:#666;margin-top:3px}
.ai-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:20px;border:1px solid #b8c4a8;background:#f4f6f0;font-size:12px;font-weight:500;cursor:pointer;color:#333;font-family:inherit;transition:all .15s}
.ai-toggle-btn:hover{background:#f0f4e8;border-color:#3B6D11;color:#3B6D11}
.ai-toggle-btn .dot{width:8px;height:8px;border-radius:50%;background:#639922;flex-shrink:0}
.ai-drawer{max-height:0;overflow:hidden;transition:max-height .35s ease}
.ai-drawer.open{max-height:220px;margin-bottom:16px}
.ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px;padding:14px;background:#fafbf8;border-radius:12px;border:1px solid #e2e4dc}
.ai-link{display:flex;align-items:center;gap:8px;padding:9px 11px;background:white;border:1px solid #e2e4dc;border-radius:8px;text-decoration:none;transition:border-color .15s}
.ai-link:hover{border-color:#3B6D11}
.ai-link .ai-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.ai-link .ai-name{font-size:12px;font-weight:600;color:#1a1a18}
.ai-link .ai-type{font-size:10px;color:#888}
.krow{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:18px}
@media(max-width:650px){.krow{grid-template-columns:repeat(3,1fr)}}
.kcard{background:white;border:1px solid #e2e4dc;border-radius:10px;padding:12px 9px;text-align:center}
.kval{font-size:18px;font-weight:600;line-height:1.2}
.klbl{font-size:10px;color:#555;font-weight:500;margin-top:3px}
.tabs{display:flex;border-bottom:1px solid #e2e4dc;margin-bottom:0;gap:0;overflow-x:auto;height:0;overflow:hidden;visibility:hidden;margin:0;padding:0;border:none;pointer-events:none;}
.tab{padding:10px 16px;font-size:13px;cursor:pointer;background:none;border:none;border-bottom:2.5px solid transparent;color:#444;white-space:nowrap;font-family:inherit;font-weight:500;transition:all .15s}
.tab.on{color:#1a1a18;border-bottom-color:#3B6D11;font-weight:700;background:#f0f7e8}
.tab:hover{color:#1a1a18;background:#f0f7e8;border-bottom-color:#8ab86a}
.panel{display:none}.panel.on{display:block}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
@media(max-width:600px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:white;border:1px solid #e2e4dc;border-radius:12px;padding:14px}
.flbl{font-size:11px;color:#3d5c1a;margin-bottom:5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.finp{display:flex;align-items:center;gap:6px}
.finp input[type=number]{flex:1;border:1px solid #dde0d6;border-radius:8px;padding:8px 10px;font-size:15px;background:white;color:#1a1a18;font-family:inherit;outline:none;min-width:0;width:100%;transition:border-color .15s}
.finp input[type=number]:focus{border-color:#3B6D11;box-shadow:0 0 0 3px rgba(59,109,17,.08)}
.finp .unit{font-size:12px;color:#555;font-weight:500;white-space:nowrap;flex-shrink:0}
.slider-wrap{margin-top:7px}
.slider-wrap input[type=range]{width:100%;accent-color:#3B6D11;cursor:pointer;margin-top:2px}
.slider-val{font-size:12px;font-weight:700;color:#27500A;text-align:right;margin-top:2px}
.hint{font-size:10px;color:#666;margin-top:4px}
.rg{background:#eaf3de;border-radius:10px;padding:12px;text-align:center}
.rg .rv{font-size:20px;font-weight:600;color:#3B6D11}
.rg .rl{font-size:10px;color:#27500A;margin-top:3px}
.rb{background:#e6f1fb;border-radius:10px;padding:12px;text-align:center}
.rb .rv{font-size:20px;font-weight:600;color:#185FA5}
.rb .rl{font-size:10px;color:#0C447C;margin-top:3px}
.ro{background:#faeeda;border-radius:10px;padding:12px;text-align:center}
.ro .rv{font-size:20px;font-weight:600;color:#854F0B}
.ro .rl{font-size:10px;color:#633806;margin-top:3px}
.rr{background:#fcebeb;border-radius:10px;padding:12px;text-align:center}
.rr .rv{font-size:20px;font-weight:600;color:#A32D2D}
.rr .rl{font-size:10px;color:#791F1F;margin-top:3px}
.row-item{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid #e8ebe0;font-size:12px;color:#444}
.row-item:last-child{border-bottom:none}
.row-item .rv{font-weight:600;color:#1a1a18;font-size:13px}
.badge{display:inline-block;padding:3px 9px;border-radius:10px;font-size:11px;font-weight:600}
.bg{background:#eaf3de;color:#27500A}
.br{background:#fcebeb;color:#791F1F}
.bb{background:#e6f1fb;color:#0C447C}
.bo{background:#faeeda;color:#633806}
.sec{font-size:11px;font-weight:700;color:#4a6e28;text-transform:uppercase;letter-spacing:.07em;margin:16px 0 9px}
.btn-g{padding:9px 18px;background:#3B6D11;color:white;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}
.btn-g:hover{background:#27500A}
.btn-o{padding:9px 18px;background:#f4f6f0;color:#333;border:1px solid #b8c4a8;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;margin-left:8px;transition:all .15s}
.btn-o:hover{background:#e4eeda;border-color:#3B6D11;color:#27500A}
.chip{padding:6px 13px;border-radius:20px;border:1px solid #b8cfa0;background:#f4f9ee;font-size:11px;cursor:pointer;color:#2d5010;font-family:inherit;font-weight:500;transition:all .15s;display:inline-block}
.chip:hover{background:#d4edba;border-color:#27500A;color:#27500A;transform:translateY(-1px);box-shadow:0 2px 6px rgba(59,109,17,.15)}
.prog-track{height:9px;background:#f0f2ec;border-radius:5px;overflow:hidden;margin-top:3px}
.prog-fill{height:100%;border-radius:5px;transition:width .35s}
.chart-wrap{position:relative;width:100%}
.msgs{padding:14px;min-height:260px;max-height:380px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:#fdfffe}
.msg{display:flex;gap:8px;align-items:flex-start}
.msg.u{flex-direction:row-reverse;align-self:flex-end;max-width:88%}
.msg.b{max-width:92%}
.bubble{padding:10px 13px;border-radius:13px;font-size:13px;line-height:1.65;color:#1a1a18;white-space:pre-wrap;word-break:break-word}
.msg.b .bubble{background:#f2f4f0;border-radius:4px 13px 13px 13px}
.msg.u .bubble{background:#e8f5d4;color:#2d4a12;border-radius:13px 4px 13px 13px}
.av{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;margin-top:1px}
.bav{background:#eaf3de;color:#3B6D11}
.uav{background:#e6f1fb;color:#185FA5}
.typing{display:flex;gap:4px;align-items:center;padding:10px 13px;background:#f2f4f0;border-radius:4px 13px 13px 13px;width:52px}
.typing span{width:6px;height:6px;border-radius:50%;background:#bbb;animation:bop 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}
@keyframes bop{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}
.cinp-row{padding:11px 13px;border-top:1px solid #e2e4dc;display:flex;gap:8px;align-items:flex-end;background:#fafbf8}
.cinp{flex:1;border:1px solid #dde0d6;border-radius:10px;padding:9px 13px;font-size:13px;background:white;color:#1a1a18;font-family:inherit;resize:none;outline:none;min-height:40px;max-height:110px;transition:border-color .15s}
.cinp:focus{border-color:#3B6D11}
.sbtn{width:38px;height:38px;border-radius:50%;background:#3B6D11;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}
.sbtn:hover{background:#27500A}
.sbtn:disabled{background:#ccc;cursor:not-allowed}
.sbtn svg{width:15px;height:15px;fill:none;stroke:white;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.qchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.api-banner{background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;padding:12px 15px;margin-bottom:12px;font-size:12px;color:#78350f}
.api-banner strong{color:#92400e}
.api-row{display:flex;gap:8px;margin-top:8px}
.api-row input{flex:1;border:1px solid #fcd34d;border-radius:8px;padding:7px 11px;font-size:12px;background:white;color:#1a1a18;font-family:inherit;outline:none}
.api-row input:focus{border-color:#3B6D11}
.api-ok{background:#eaf3de;border:1px solid #86efac;border-radius:10px;padding:10px 15px;margin-bottom:12px;font-size:12px;color:#166534;display:none;align-items:center;gap:8px}
.api-ok.show{display:flex}
.import-zone{border:2px dashed #dde0d6;border-radius:12px;padding:20px 16px;text-align:center;background:#fafbf8;margin-bottom:14px;transition:all .2s;cursor:pointer}
.import-zone:hover,.import-zone.drag{border-color:#3B6D11;background:#f0f7e8;cursor:pointer}
.import-zone.loaded{border-style:solid;border-color:#3B6D11;background:#f0f7e8}
.import-icon{width:38px;height:38px;border-radius:50%;background:white;border:1px solid #e2e4dc;display:flex;align-items:center;justify-content:center;margin:0 auto 9px}
.import-title{font-size:13px;font-weight:600;color:#1a1a18;margin-bottom:3px}
.import-sub{font-size:11px;color:#888;margin-bottom:11px;line-height:1.5}
.import-actions{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}
.imp-btn{padding:7px 14px;background:#3B6D11;color:white;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.imp-btn:hover{background:#27500A}
.imp-ghost{padding:7px 14px;background:#f4f6f0;color:#333;border:1px solid #b8c4a8;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit}
.imp-ghost:hover{background:#e4eeda;border-color:#3B6D11;color:#27500A}
.col-mapper{background:white;border:1px solid #e2e4dc;border-radius:12px;padding:14px;margin-bottom:12px;display:none}
.col-mapper.show{display:block}
.cmgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-bottom:11px}
.cmfield{display:flex;flex-direction:column;gap:3px}
.cmfield label{font-size:11px;font-weight:600;color:#1a1a18}
.cmfield select{border:1px solid #dde0d6;border-radius:7px;padding:5px 8px;font-size:11px;background:white;color:#1a1a18;font-family:inherit;outline:none}
.cmfield small{font-size:10px;color:#aaa}
.dstatus{padding:9px 13px;border-radius:8px;font-size:12px;margin-bottom:11px;display:none}
.dstatus.ok{background:#eaf3de;color:#27500A;display:block;border:1px solid #c0dd97}
.dstatus.err{background:#fcebeb;color:#791F1F;display:block;border:1px solid #f7c1c1}
.dprev{overflow-x:auto;font-size:11px;margin-bottom:11px;display:none}
.dprev table{border-collapse:collapse;width:100%}
.dprev th{background:#f7f8f5;padding:5px 8px;text-align:left;font-weight:600;color:#888;border-bottom:1px solid #e2e4dc;white-space:nowrap}
.dprev td{padding:5px 8px;border-bottom:1px solid #f0f2ec;color:#1a1a18;white-space:nowrap}

/* ═══ ENHANCEMENT LAYER STYLES ═══ */
  :root {
    --earth: #1a1a18;
    --soil: #4A2C17;
    --bark: #7A4A28;
    --clay: #B87340;
    --gold: #D4A017;
    --harvest: #E8C547;
    --sky: #3A7CA5;
    --leaf: #4A8C3F;
    --leaf-bright: #6DBF67;
    --mist: #F0EBE3;
    --cream: #FAF7F2;
    --text: #1A0F08;
    --text-soft: #5C3D24;
    --border: rgba(74,44,23,0.15);
    --glow: rgba(212,160,23,0.3);
    --panel-bg: rgba(250,247,242,0.96);
  }

  * { margin:0; padding:0; box-sizing:border-box; }

  /* Enhancement body styles scoped — do not override main body */
  .enh-panel {
    font-family: 'DM Mono', monospace;
    color: var(--text);
  }

  /* body overlay removed — causes dark background on main UI */

  .page-wrapper { position:relative; z-index:1; max-width:1200px; margin:0 auto; padding:24px 20px 60px; }

  /* HEADER */
  header {
    text-align:center;
    padding: 48px 0 40px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 48px;
  }
  header .eyebrow {
    font-family:'DM Mono',monospace;
    font-size:11px; font-weight:500;
    letter-spacing:0.25em; text-transform:uppercase;
    color: var(--clay);
    margin-bottom:16px;
  }
  header h1 {
    font-family:'Syne',sans-serif;
    font-size:clamp(28px,5vw,52px); font-weight:800;
    color: var(--cream);
    line-height:1.1;
    letter-spacing:-0.02em;
  }
  header h1 span { color: var(--harvest); }
  header p {
    margin-top:14px;
    font-family:'Instrument Serif',serif;
    font-style:italic;
    font-size:18px;
    color: rgba(240,235,227,0.7);
  }
  .badge-row {
    display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:24px;
  }
  .badge {
    font-size:11px; font-weight:500; letter-spacing:0.1em;
    padding:5px 12px; border-radius:20px;
    border: 1px solid var(--border);
    color: var(--harvest);
    background: rgba(212,160,23,0.08);
  }

  /* NAV TABS */
  .tab-nav {
    display:flex; gap:4px; flex-wrap:wrap;
    background: rgba(44,26,14,0.6);
    border: 1px solid var(--border);
    border-radius:14px; padding:6px;
    margin-bottom:32px;
    backdrop-filter:blur(10px);
  }
  .tab-btn {
    flex:1; min-width:140px;
    padding:10px 14px;
    border:none; border-radius:10px;
    background:transparent; cursor:pointer;
    font-family:'DM Mono',monospace;
    font-size:11px; font-weight:500;
    letter-spacing:0.08em; text-transform:uppercase;
    color: rgba(240,235,227,0.75);
    transition: all 0.25s ease;
    display:flex; align-items:center; gap:7px; justify-content:center;
  }
  .tab-btn:hover { color: var(--harvest); background: rgba(212,160,23,0.08); }
  .tab-btn.active {
    background: var(--gold);
    color: var(--earth);
    font-weight:700;
  }
  .tab-btn .icon { font-size:15px; }

  /* PANELS */
  .panel { display:none; animation: fadeSlide 0.4s ease; }
  .panel.active { display:block; }
  @keyframes fadeSlide {
    from { opacity:0; transform:translateY(12px); }
    to   { opacity:1; transform:translateY(0); }
  }

  /* CARD */
  .card {
    background: var(--panel-bg);
    border: 1px solid var(--border);
    border-radius:18px;
    padding:28px 32px;
    margin-bottom:24px;
    backdrop-filter:blur(12px);
    box-shadow: 0 4px 32px rgba(44,26,14,0.3);
  }
  .card-header {
    display:flex; align-items:center; gap:12px;
    margin-bottom:24px; padding-bottom:16px;
    border-bottom:1px solid var(--border);
  }
  .card-icon {
    width:42px; height:42px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:20px;
    background: rgba(212,160,23,0.12);
    border:1px solid rgba(212,160,23,0.25);
    flex-shrink:0;
  }
  .card-title { font-family:'Syne',sans-serif; font-size:18px; font-weight:700; color:var(--earth); }
  .card-sub { font-size:12px; color:var(--text-soft); margin-top:2px; }

  /* KPI GRID */
  .kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; margin-bottom:20px; }
  .kpi {
    background: rgba(44,26,14,0.05);
    border: 1px solid var(--border);
    border-radius:12px; padding:14px 16px;
    text-align:center;
  }
  .kpi-val { font-family:'Syne',sans-serif; font-size:22px; font-weight:800; color:var(--earth); }
  .kpi-val.good { color:var(--leaf); }
  .kpi-val.warn { color:var(--clay); }
  .kpi-val.bad  { color:#C0392B; }
  .kpi-lbl { font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-soft); margin-top:4px; }

  /* STATUS BAR */
  .status-bar {
    display:flex; align-items:center; gap:10px;
    padding:10px 16px; border-radius:10px;
    font-size:12px; font-weight:500;
    margin-bottom:16px;
  }
  .status-bar.loading { background:rgba(58,124,165,0.1); color:var(--sky); border:1px solid rgba(58,124,165,0.2); }
  .status-bar.success { background:rgba(74,140,63,0.1); color:var(--leaf); border:1px solid rgba(74,140,63,0.25); }
  .status-bar.warn    { background:rgba(184,115,64,0.1); color:var(--bark); border:1px solid rgba(184,115,64,0.25); }
  .pulse { width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse 1.5s infinite; flex-shrink:0; }
  @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.4;transform:scale(0.7)} }

  /* WEATHER PANEL */
  .weather-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; }
  .weather-item {
    background:linear-gradient(135deg, rgba(58,124,165,0.08) 0%, rgba(74,140,63,0.06) 100%);
    border:1px solid rgba(58,124,165,0.2); border-radius:14px; padding:18px;
  }
  .weather-label { font-size:10px; letter-spacing:0.15em; text-transform:uppercase; color:var(--sky); margin-bottom:6px; }
  .weather-val { font-family:'Syne',sans-serif; font-size:26px; font-weight:700; color:var(--earth); }
  .weather-unit { font-size:13px; color:var(--text-soft); }
  .weather-note { font-size:11px; color:var(--text-soft); margin-top:4px; font-style:italic; }

  .impact-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 0; border-bottom:1px solid var(--border); font-size:13px;
  }
  .impact-row:last-child { border-bottom:none; }
  .impact-label { color:var(--text-soft); }
  .impact-val { font-family:'Syne',sans-serif; font-weight:700; }
  .impact-val.pos { color:var(--leaf); }
  .impact-val.neg { color:#C0392B; }

  /* BEE SIMULATION */
  #bee-canvas {
    width:100%; height:320px;
    border-radius:14px; background:linear-gradient(160deg,#1a3a0e 0%,#2a5a1a 40%,#1a4a2a 100%);
    display:block; cursor:crosshair;
    border:1px solid rgba(107,191,103,0.2);
  }
  .block-legend {
    display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:16px;
  }
  .block-item {
    display:flex; align-items:center; gap:10px;
    padding:10px 14px; border-radius:10px;
    background:rgba(44,26,14,0.05); border:1px solid var(--border);
  }
  .block-dot { width:12px;height:12px;border-radius:50%;flex-shrink:0; }
  .block-name { font-size:12px; font-weight:600; color:var(--earth); }
  .block-stat { font-size:11px; color:var(--text-soft); }
  .sim-controls { display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }

  /* VOICE PANEL */
  .voice-circle {
    width:120px; height:120px; border-radius:50%;
    background:linear-gradient(135deg,var(--gold),var(--clay));
    display:flex; align-items:center; justify-content:center;
    font-size:44px; cursor:pointer; margin:0 auto 24px;
    transition: all 0.3s ease;
    box-shadow: 0 0 0 0 var(--glow);
    border:3px solid rgba(212,160,23,0.3);
  }
  .voice-circle:hover { transform:scale(1.05); }
  .voice-circle.listening {
    animation: sonar 1.2s infinite;
    background:linear-gradient(135deg,#C0392B,#E74C3C);
  }
  @keyframes sonar {
    0%  { box-shadow:0 0 0 0 rgba(192,57,43,0.4); }
    70% { box-shadow:0 0 0 30px rgba(192,57,43,0); }
    100%{ box-shadow:0 0 0 0 rgba(192,57,43,0); }
  }
  .voice-transcript {
    min-height:60px; padding:14px 18px;
    background:rgba(44,26,14,0.05); border:1px solid var(--border);
    border-radius:12px; font-size:14px; color:var(--text);
    margin-bottom:16px; line-height:1.6;
  }
  .voice-commands {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:8px;
  }
  .voice-cmd {
    padding:9px 14px; border-radius:9px;
    background:rgba(212,160,23,0.14); border:1px solid rgba(212,160,23,0.35);
    font-size:12px; color:var(--earth); font-weight:500; cursor:pointer; transition:all 0.2s;
  }
  .voice-cmd:hover { background:rgba(212,160,23,0.18); color:var(--earth); }

  /* NARRATIVE PANEL */
  .narrative-box {
    background: linear-gradient(135deg,rgba(44,26,14,0.04) 0%,rgba(212,160,23,0.04) 100%);
    border:1px solid rgba(212,160,23,0.2); border-radius:14px;
    padding:24px 28px; margin-bottom:20px;
    min-height:120px; position:relative;
  }
  .narrative-text {
    font-family:'Instrument Serif',serif;
    font-size:16px; line-height:1.8; color:var(--text);
  }
  .narrative-watermark {
    position:absolute; bottom:14px; right:18px;
    font-size:10px; color:var(--clay); letter-spacing:0.1em;
    font-family:'DM Mono',monospace;
  }
  .narrative-controls { display:flex; gap:12px; flex-wrap:wrap; }
  .narrative-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:20px; }
  .narrative-stat {
    padding:12px; border-radius:10px;
    background:rgba(44,26,14,0.04); border:1px solid var(--border);
    text-align:center;
  }
  .narrative-stat .val { font-family:'Syne',sans-serif; font-size:18px; font-weight:700; color:var(--earth); }
  .narrative-stat .lbl { font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-soft); margin-top:3px; }

  /* MARKET FEED */
  .ticker-row {
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 0; border-bottom:1px solid var(--border);
    font-size:13px;
  }
  .ticker-row:last-child { border-bottom:none; }
  .ticker-name { font-family:'Syne',sans-serif; font-weight:700; color:var(--earth); min-width:120px; }
  .ticker-price { font-family:'DM Mono',monospace; font-weight:500; }
  .ticker-change { font-family:'DM Mono',monospace; font-size:12px; font-weight:600; min-width:60px; text-align:right; }
  .ticker-change.up { color:var(--leaf); }
  .ticker-change.dn { color:#C0392B; }
  .ticker-bar { height:4px; border-radius:2px; background:rgba(44,26,14,0.1); flex:1; margin:0 12px; }
  .ticker-fill { height:100%; border-radius:2px; background:var(--leaf); transition:width 0.8s ease; }
  .ticker-fill.down { background:#C0392B; }
  .price-suggest {
    margin-top:20px; padding:16px 20px;
    background:linear-gradient(135deg,rgba(74,140,63,0.08),rgba(212,160,23,0.08));
    border:1px solid rgba(74,140,63,0.25); border-radius:12px;
  }
  .price-suggest-title { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--leaf); margin-bottom:8px; }
  .price-suggest-val { font-family:'Syne',sans-serif; font-size:28px; font-weight:800; color:var(--earth); }
  .price-suggest-note { font-size:12px; color:var(--text-soft); margin-top:4px; }

  /* NDVI PANEL */
  #ndvi-canvas {
    width:100%; height:260px; border-radius:14px; display:block;
    border:1px solid rgba(74,140,63,0.25);
  }
  .ndvi-legend {
    display:flex; align-items:center; gap:6px; margin-top:12px; flex-wrap:wrap;
  }
  .ndvi-swatch { width:20px; height:12px; border-radius:3px; }
  .ndvi-lbl { font-size:11px; color:var(--text-soft); margin-right:8px; }
  .ndvi-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; margin-top:16px; }
  .ndvi-stat {
    padding:12px 14px; border-radius:10px;
    background:rgba(44,26,14,0.05); border:1px solid var(--border);
  }
  .ndvi-stat .val { font-family:'Syne',sans-serif; font-size:20px; font-weight:700; }
  .ndvi-stat .lbl { font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-soft); margin-top:3px; }

  /* BUTTON STYLES */
  .btn {
    padding:10px 20px; border-radius:10px; border:none; cursor:pointer;
    font-family:'DM Mono',monospace; font-size:12px; font-weight:500;
    letter-spacing:0.06em; transition:all 0.2s ease; display:inline-flex;
    align-items:center; gap:7px;
  }
  .btn-primary {
    background:var(--gold); color:var(--earth); font-weight:700;
  }
  .btn-primary:hover { background:var(--harvest); transform:translateY(-1px); }
  .btn-secondary {
    background:rgba(44,26,14,0.14); color:var(--earth);
    border:1px solid rgba(74,44,23,0.3);
    font-weight:600;
  }
  .btn-secondary:hover { background:rgba(44,26,14,0.25); color:var(--earth); border-color:rgba(74,44,23,0.5); }
  .btn:disabled { opacity:0.45; cursor:not-allowed; transform:none !important; }

  /* SPINNER */
  .spin { display:inline-block; animation:spin 0.8s linear infinite; }
  @keyframes spin { to { transform:rotate(360deg); } }

  /* PROGRESS BAR */
  .prog-bar { height:6px; border-radius:3px; background:rgba(44,26,14,0.1); overflow:hidden; margin-top:6px; }
  .prog-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,var(--leaf-bright),var(--gold)); transition:width 1s ease; }

  /* Responsive */
  @media(max-width:600px){
    .card { padding:18px; }
    .tab-btn { font-size:10px; padding:8px; min-width:90px; }
    .tab-btn .icon { display:none; }
    header h1 { font-size:24px; }
  }


/* ── COMMAND CENTER ─────────────────────────── */
.cc-wrap {
  background: linear-gradient(135deg, #f0f7e8 0%, #e4f0d8 100%);
  border: 1.5px solid #b8d994;
  border-radius: 18px;
  padding: 22px 24px;
  margin-bottom: 20px;
  box-shadow: 0 10px 30px rgba(59,109,17,0.10);
  transition: all 0.25s ease;
  position: relative;
  overflow: hidden;
}
.cc-wrap:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(59,109,17,0.15); }
.cc-wrap::before {
  content:'';
  position:absolute; top:0; right:0;
  width:180px; height:180px;
  background: radial-gradient(circle, rgba(99,153,34,0.10) 0%, transparent 70%);
  pointer-events:none;
}
.cc-badge {
  display:inline-flex; align-items:center; gap:6px;
  background: #3B6D11; color: white;
  font-size: 10px; font-weight: 700;
  padding: 4px 12px; border-radius: 20px;
  letter-spacing: .08em; text-transform: uppercase;
  margin-bottom: 14px;
}
.cc-priority {
  font-size: 22px; font-weight: 800; color: #1a1a18;
  margin-bottom: 6px; line-height: 1.2;
}
.cc-issue {
  font-size: 14px; color: #444; margin-bottom: 4px; line-height: 1.6;
}
.cc-cause {
  font-size: 13px; color: #666; margin-bottom: 14px;
}
.cc-impact {
  display: inline-flex; align-items: center; gap: 8px;
  background: white; border: 1px solid #b8d994;
  border-radius: 10px; padding: 9px 16px;
  font-size: 15px; font-weight: 700; color: #3B6D11;
  margin-bottom: 18px;
}
.cc-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.cc-btn-main {
  background: #3B6D11; color: white; border: none;
  padding: 11px 22px; border-radius: 12px;
  font-size: 14px; font-weight: 700; cursor: pointer;
  transition: all .2s; font-family: inherit;
  box-shadow: 0 4px 12px rgba(59,109,17,0.3);
}
.cc-btn-main:hover { background: #27500A; transform: translateY(-1px); }
.cc-btn-why {
  background: none; border: 1.5px solid #b8c4a8; color: #444;
  padding: 11px 18px; border-radius: 12px;
  font-size: 13px; font-weight: 500; cursor: pointer;
  transition: all .2s; font-family: inherit;
}
.cc-btn-why:hover { background: white; border-color: #3B6D11; color: #3B6D11; }
.cc-why-box {
  margin-top: 14px; padding: 14px 16px;
  background: white; border-radius: 12px;
  border: 1px solid #e2e4dc;
  font-size: 13px; color: #444; line-height: 1.7;
  display: none;
}
.cc-why-box.open { display: block; animation: fadeSlideIn 0.25s ease; }
.cc-ai-badge {
  font-size:10px; color:#639922; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase; margin-left:auto;
  cursor:pointer; padding:4px 10px; border-radius:8px;
  border:1px solid #c0dd97; background:white; transition:all .2s;
}
.cc-ai-badge:hover { background:#eaf3de; }

/* Portfolio intelligence */
.portfolio-card {
  background: white; border: 1px solid #e2e4dc;
  border-radius: 14px; padding: 16px;
  transition: all .2s;
}
.portfolio-card:hover { border-color: #3B6D11; box-shadow: 0 4px 14px rgba(0,0,0,0.07); }


/* ═══ MERGED v4+v2: ADDITIONAL IMPROVEMENTS ═══ */

/* Subtle organic atmospheric bg (v2 style, toned down for readability) */
body::before {
  content:'';
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 20% 30%, rgba(74,140,63,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 60% 80% at 80% 70%, rgba(58,124,165,0.05) 0%, transparent 60%),
    radial-gradient(ellipse 100% 100% at 50% 50%, rgba(212,160,23,0.03) 0%, transparent 70%);
}
.page { position:relative; z-index:1; }

/* Mobile-responsive KPI row (Pixel 10 Pro XL + small screens) */
@media(max-width:420px){
  .krow{grid-template-columns:1fr 1fr !important;}
}
@media(max-width:650px){
  .krow{grid-template-columns:repeat(2,1fr);}
}

/* Deep-linkable KPI cards */
.kcard { cursor:pointer; transition:all .2s; }
.kcard:hover { border-color:#3B6D11 !important; transform:translateY(-2px); box-shadow:0 4px 14px rgba(59,109,17,.12); }

/* AI Settings Modal */
.ai-modal-overlay {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45);
  z-index:9999; align-items:center; justify-content:center; padding:20px;
}
.ai-modal-overlay.show { display:flex !important; animation:fadeSlideIn .2s ease; }
.ai-modal {
  background:white; border-radius:18px; padding:28px 30px; max-width:460px; width:100%;
  box-shadow:0 20px 60px rgba(0,0,0,0.15);
}
.ai-modal h3 { font-size:18px; font-weight:700; color:#1a1a18; margin-bottom:6px; }
.ai-modal p  { font-size:13px; color:#666; margin-bottom:16px; line-height:1.6; }
.ai-modal-inp {
  width:100%; border:1px solid #dde0d6; border-radius:10px; padding:10px 13px;
  font-size:13px; color:#1a1a18; font-family:inherit; outline:none;
  margin-bottom:10px; box-sizing:border-box; transition:border-color .15s;
}
.ai-modal-inp:focus { border-color:#3B6D11; box-shadow:0 0 0 3px rgba(59,109,17,.08); }
.ai-modal-btns { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }

/* Crop selector */
.crop-selector { display:flex; flex-wrap:wrap; gap:7px; padding:8px 0 14px; }
.crop-btn {
  padding:6px 13px; border-radius:20px; border:1px solid #e2e4dc;
  background:white; font-size:12px; font-weight:500; cursor:pointer; color:#444;
  font-family:inherit; transition:all .15s;
}
.crop-btn:hover { border-color:#3B6D11; background:#f0f7e8; color:#27500A; }
.crop-btn.active { border-color:#3B6D11; background:#eaf3de; color:#27500A; font-weight:700; }

/* Soil health panel */
#soil-health-panel { margin-top:8px; }

/* ═══════════════════════════════════════════════════════
   PRO MODULE STYLES — v6
   ═══════════════════════════════════════════════════════ */
:root {
  --pro-bg:#0d1a0f; --pro-panel:#14231a; --pro-border:#1e3326;
  --pro-accent:#4dff78; --pro-gold:#f5c842; --pro-blue:#42b4ff;
  --pro-purple:#b57bee; --pro-orange:#ff8c42; --pro-red:#ff4f4f;
  --pro-teal:#42e8c8; --pro-text:#cce8d2; --pro-text2:#6a9471; --pro-text3:#3a5e3e;
  --pro-mono:'DM Mono',monospace;
}
.pro-panel-wrap { background:var(--pro-bg); border-radius:16px; border:1px solid var(--pro-border); overflow:hidden; margin-bottom:16px; }
.pro-header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background:var(--pro-panel); border-bottom:1px solid var(--pro-border); }
.pro-header-left { display:flex; align-items:center; gap:10px; }
.pro-icon { width:28px; height:28px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:14px; flex-shrink:0; }
.pro-icon.g { background:rgba(77,255,120,.1); border:1px solid rgba(77,255,120,.25); }
.pro-icon.gld { background:rgba(245,200,66,.1); border:1px solid rgba(245,200,66,.25); }
.pro-icon.bl { background:rgba(66,180,255,.1); border:1px solid rgba(66,180,255,.25); }
.pro-icon.pu { background:rgba(181,123,238,.1); border:1px solid rgba(181,123,238,.25); }
.pro-title { font-size:13px; font-weight:700; color:var(--pro-text); font-family:'Syne',sans-serif; }
.pro-sub { font-size:10px; color:var(--pro-text2); font-family:var(--pro-mono); margin-top:1px; }
.pro-action-btn { font-size:9px; font-family:var(--pro-mono); font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--pro-accent); background:rgba(77,255,120,.1); border:1px solid rgba(77,255,120,.25); border-radius:5px; padding:4px 10px; cursor:pointer; transition:all .15s; }
.pro-action-btn:hover { background:rgba(77,255,120,.2); }
.pro-body { padding:16px 18px; }
.pro-kpi-row { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; }
@media(max-width:700px){ .pro-kpi-row { grid-template-columns:repeat(2,1fr); } }
.pro-kpi { background:var(--pro-panel); border:1px solid var(--pro-border); border-radius:10px; padding:12px 14px; position:relative; overflow:hidden; }
.pro-kpi::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; }
.pro-kpi.g::before { background:linear-gradient(90deg,var(--pro-accent),transparent); }
.pro-kpi.gld::before { background:linear-gradient(90deg,var(--pro-gold),transparent); }
.pro-kpi.bl::before { background:linear-gradient(90deg,var(--pro-blue),transparent); }
.pro-kpi.pu::before { background:linear-gradient(90deg,var(--pro-purple),transparent); }
.pro-kpi-lbl { font-size:9px; font-family:var(--pro-mono); font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--pro-text2); margin-bottom:5px; }
.pro-kpi-val { font-size:22px; font-weight:800; line-height:1; font-family:'Syne',sans-serif; }
.pro-kpi-val.g { color:var(--pro-accent); }
.pro-kpi-val.gld { color:var(--pro-gold); }
.pro-kpi-val.bl { color:var(--pro-blue); }
.pro-kpi-val.pu { color:var(--pro-purple); }
.pro-kpi-delta { font-size:10px; font-family:var(--pro-mono); color:var(--pro-text2); margin-top:3px; }
.pro-dual { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
@media(max-width:700px){ .pro-dual { grid-template-columns:1fr; } }
.pro-card { background:var(--pro-panel); border:1px solid var(--pro-border); border-radius:10px; padding:14px; }
.pro-card-title { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--pro-text2); font-family:var(--pro-mono); margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
/* Sat map */
.pro-sat-map { width:100%; height:150px; background:var(--pro-bg); border-radius:8px; overflow:hidden; position:relative; border:1px solid var(--pro-border); margin-bottom:12px; }
.pro-sat-badge { position:absolute; top:7px; left:7px; background:rgba(13,26,15,.85); border:1px solid rgba(77,255,120,.3); border-radius:4px; padding:3px 7px; font-size:9px; font-family:var(--pro-mono); color:var(--pro-accent); }
.pro-sat-coords { position:absolute; bottom:7px; right:7px; background:rgba(13,26,15,.85); border:1px solid var(--pro-border); border-radius:4px; padding:3px 7px; font-size:9px; font-family:var(--pro-mono); color:var(--pro-text2); }
/* Batch cards */
.pro-batch { background:rgba(13,26,15,.7); border:1px solid var(--pro-border); border-radius:8px; padding:11px 12px; margin-bottom:8px; cursor:pointer; transition:border-color .15s; position:relative; }
.pro-batch:hover { border-color:rgba(77,255,120,.35); }
.pro-batch.verified::after { content:'EUDR ✓'; position:absolute; top:9px; right:9px; font-size:9px; font-family:var(--pro-mono); font-weight:700; color:var(--pro-accent); background:rgba(77,255,120,.1); border:1px solid rgba(77,255,120,.25); border-radius:4px; padding:2px 6px; }
.pro-batch-id { font-size:11px; font-weight:700; color:var(--pro-accent); font-family:var(--pro-mono); margin-bottom:3px; }
.pro-batch-meta { font-size:10px; color:var(--pro-text2); font-family:var(--pro-mono); line-height:1.6; }
.pro-batch-gps { font-size:9px; color:var(--pro-blue); font-family:var(--pro-mono); margin-top:4px; }
/* Carbon bars */
.pro-cbar-wrap { margin-bottom:9px; }
.pro-cbar-hd { display:flex; justify-content:space-between; margin-bottom:3px; font-size:10px; font-family:var(--pro-mono); }
.pro-cbar-lbl { color:var(--pro-text2); }
.pro-cbar-val { color:var(--pro-accent); font-weight:700; }
.pro-cbar-bg { height:5px; background:rgba(13,26,15,.8); border-radius:3px; overflow:hidden; }
.pro-cbar-fill { height:100%; border-radius:3px; transition:width 1.2s ease; }
.pro-cbar-fill.g { background:linear-gradient(90deg,#2de05a,#4dff78); }
.pro-cbar-fill.gld { background:linear-gradient(90deg,#d4a017,#f5c842); }
.pro-cbar-fill.tl { background:linear-gradient(90deg,#1db8a0,#42e8c8); }
/* Compliance rows */
.pro-comp-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--pro-border); }
.pro-comp-row:last-child { border-bottom:none; padding-bottom:0; }
.pro-comp-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.pro-comp-dot.pass { background:var(--pro-accent); box-shadow:0 0 5px rgba(77,255,120,.5); }
.pro-comp-dot.warn { background:var(--pro-gold); box-shadow:0 0 5px rgba(245,200,66,.5); }
.pro-comp-dot.fail { background:var(--pro-red); box-shadow:0 0 5px rgba(255,79,79,.5); }
.pro-comp-name { font-size:12px; font-weight:500; color:var(--pro-text); flex:1; }
.pro-comp-tag { font-size:9px; border-radius:4px; padding:2px 6px; font-family:var(--pro-mono); font-weight:700; }
.pro-comp-tag.pass { background:rgba(77,255,120,.12); color:var(--pro-accent); border:1px solid rgba(77,255,120,.25); }
.pro-comp-tag.warn { background:rgba(245,200,66,.12); color:var(--pro-gold); border:1px solid rgba(245,200,66,.25); }
.pro-comp-tag.fail { background:rgba(255,79,79,.12); color:var(--pro-red); border:1px solid rgba(255,79,79,.25); }
/* Monte Carlo rings */
.pro-mc-card { background:rgba(13,26,15,.7); border:1px solid var(--pro-border); border-radius:8px; padding:13px; margin-bottom:10px; }
.pro-mc-row { display:flex; align-items:center; gap:12px; }
.pro-mc-ring { width:52px; height:52px; position:relative; flex-shrink:0; }
.pro-mc-ring svg { width:100%; height:100%; transform:rotate(-90deg); }
.pro-mc-ring-bg { fill:none; stroke:rgba(30,51,38,1); stroke-width:4; }
.pro-mc-ring-fill { fill:none; stroke-width:4; stroke-linecap:round; }
.pro-mc-pct { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; font-family:var(--pro-mono); }
.pro-mc-info { flex:1; }
.pro-mc-title { font-size:12px; font-weight:700; color:var(--pro-text); margin-bottom:3px; }
.pro-mc-desc { font-size:10px; color:var(--pro-text2); line-height:1.55; font-family:var(--pro-mono); }
.pro-mc-rec { display:inline-flex; align-items:center; gap:4px; margin-top:6px; background:rgba(245,200,66,.1); border:1px solid rgba(245,200,66,.25); border-radius:4px; padding:3px 8px; font-size:9px; font-family:var(--pro-mono); color:var(--pro-gold); }
/* Sensor grid */
.pro-sensor-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.pro-sensor-tile { background:rgba(13,26,15,.7); border:1px solid var(--pro-border); border-radius:8px; padding:10px 12px; cursor:pointer; transition:border-color .15s; }
.pro-sensor-tile:hover { border-color:rgba(77,255,120,.3); }
.pro-sensor-tile.alert { border-color:rgba(255,140,66,.4); background:rgba(255,140,66,.05); }
.pro-sensor-name { font-size:9px; font-family:var(--pro-mono); color:var(--pro-text2); text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.pro-sensor-val { font-size:20px; font-weight:800; font-family:'Syne',sans-serif; line-height:1; margin-bottom:2px; }
.pro-sensor-unit { font-size:9px; color:var(--pro-text2); font-family:var(--pro-mono); font-weight:400; }
.pro-sensor-trend { font-size:9px; font-family:var(--pro-mono); margin-top:4px; }
.pro-sensor-trend.low { color:var(--pro-orange); }
.pro-sensor-trend.ok { color:var(--pro-accent); }
/* Work order */
.pro-wo { background:rgba(13,26,15,.7); border:1px solid rgba(255,140,66,.3); border-radius:8px; padding:12px; margin-bottom:8px; position:relative; }
.pro-wo-badge { position:absolute; top:-1px; left:12px; font-size:8px; font-family:var(--pro-mono); font-weight:700; background:var(--pro-orange); color:#0d1a0f; border-radius:0 0 4px 4px; padding:2px 7px; letter-spacing:.06em; }
.pro-wo-title { font-size:12px; font-weight:700; color:var(--pro-text); margin-top:8px; margin-bottom:4px; }
.pro-wo-detail { font-size:10px; color:var(--pro-text2); line-height:1.55; font-family:var(--pro-mono); }
.pro-wo-actions { display:flex; gap:6px; margin-top:8px; }
.pro-wo-btn { font-size:9px; font-family:var(--pro-mono); font-weight:700; border-radius:4px; padding:5px 11px; cursor:pointer; letter-spacing:.05em; transition:all .15s; border:none; }
.pro-wo-btn.accept { background:rgba(77,255,120,.15); color:var(--pro-accent); border:1px solid rgba(77,255,120,.3); }
.pro-wo-btn.accept:hover { background:rgba(77,255,120,.3); }
.pro-wo-btn.delay { background:rgba(30,51,38,.8); color:var(--pro-text2); border:1px solid var(--pro-border); }
/* ISO tasks */
.pro-iso-task { display:flex; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid var(--pro-border); }
.pro-iso-task:last-child { border-bottom:none; }
.pro-iso-num { width:28px; height:28px; border-radius:7px; background:rgba(66,180,255,.1); border:1px solid rgba(66,180,255,.25); display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; color:var(--pro-blue); font-family:var(--pro-mono); flex-shrink:0; }
.pro-iso-title { font-size:12px; font-weight:700; color:var(--pro-text); margin-bottom:2px; }
.pro-iso-detail { font-size:10px; color:var(--pro-text2); font-family:var(--pro-mono); line-height:1.55; }
.pro-iso-badge { font-size:8px; border-radius:3px; padding:1px 5px; font-family:var(--pro-mono); font-weight:700; margin-left:5px; display:inline-block; }
.pro-iso-badge.iso { background:rgba(66,180,255,.12); color:var(--pro-blue); border:1px solid rgba(66,180,255,.25); }
.pro-iso-badge.mav { background:rgba(181,123,238,.12); color:var(--pro-purple); border:1px solid rgba(181,123,238,.25); }
.pro-iso-badge.api { background:rgba(66,232,200,.12); color:var(--pro-teal); border:1px solid rgba(66,232,200,.25); }
/* Offline sync queue */
.pro-sync-item { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid var(--pro-border); font-size:10px; font-family:var(--pro-mono); }
.pro-sync-item:last-child { border-bottom:none; }
.pro-sync-ic { width:20px; height:20px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; }
.pro-sync-ic.pending { background:rgba(245,200,66,.12); color:var(--pro-gold); }
.pro-sync-ic.synced { background:rgba(77,255,120,.12); color:var(--pro-accent); }
.pro-sync-lbl { flex:1; color:var(--pro-text2); }
.pro-sync-time { color:var(--pro-text3); font-size:9px; }
/* ── CAMERA SCANNER (Pro Hub) ──────────────────── */
.cam-scanner-wrap {
  background: var(--pro-bg);
  border: 1px solid var(--pro-border);
  border-radius: 10px;
  overflow: hidden;
  margin-top: 0;
}
.cam-upload-zone {
  border: 1.5px dashed rgba(77,255,120,0.3);
  border-radius: 10px;
  padding: 18px 14px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  position: relative;
  background: rgba(13,26,15,0.6);
}
.cam-upload-zone:hover, .cam-upload-zone.drag-over {
  border-color: #4dff78;
  background: rgba(77,255,120,0.06);
}
.cam-upload-zone input[type="file"] {
  position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.cam-upload-icon {
  font-size: 22px; margin-bottom: 6px;
}
.cam-upload-title {
  font-size: 11px; font-weight: 700; color: var(--pro-text); margin-bottom: 2px;
  font-family: 'DM Mono', monospace; letter-spacing: 0.06em; text-transform: uppercase;
}
.cam-upload-sub { font-size: 10px; color: var(--pro-text2); }
.cam-divider {
  text-align: center; font-size: 10px; color: var(--pro-text2);
  margin: 7px 0; position: relative;
}
.cam-divider::before, .cam-divider::after {
  content: ''; position: absolute; top: 50%; width: 44%; height: 0.5px; background: var(--pro-border);
}
.cam-divider::before { left: 0; } .cam-divider::after { right: 0; }
.cam-photo-btn {
  width: 100%; padding: 9px; background: rgba(255,255,255,0.04);
  color: var(--pro-text2); border: 0.5px solid var(--pro-border);
  border-radius: 8px; font-family: 'DM Mono', monospace; font-size: 11px;
  cursor: pointer; transition: background 0.2s; display: flex;
  align-items: center; justify-content: center; gap: 7px; position: relative;
}
.cam-photo-btn input[type="file"] {
  position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.cam-photo-btn:hover { background: rgba(77,255,120,0.07); color: var(--pro-text); }
.cam-preview-wrap { border-radius: 8px; overflow: hidden; position: relative; border: 1px solid var(--pro-border); margin-top: 8px; }
.cam-preview-wrap img { width: 100%; max-height: 180px; object-fit: cover; display: block; }
.cam-preview-actions { position: absolute; top: 7px; right: 7px; display: flex; gap: 5px; }
.cam-btn-icon {
  background: rgba(0,0,0,0.6); color: white; border: none; border-radius: 50%;
  width: 28px; height: 28px; cursor: pointer; font-size: 12px;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px); transition: background 0.2s;
}
.cam-btn-icon:hover { background: rgba(0,0,0,0.85); }
.cam-analyze-btn {
  width: 100%; padding: 10px; background: #4dff78; color: #0d1a0f;
  border: none; border-radius: 8px; font-family: 'DM Mono', monospace;
  font-size: 11px; font-weight: 700; letter-spacing: 0.06em; cursor: pointer;
  margin-top: 8px; transition: background 0.2s;
  display: flex; align-items: center; justify-content: center; gap: 7px;
}
.cam-analyze-btn:hover:not(:disabled) { background: #6dffa0; }
.cam-analyze-btn:disabled { background: rgba(77,255,120,0.2); color: rgba(77,255,120,0.5); cursor: not-allowed; }
.cam-spinner {
  width: 14px; height: 14px; border: 2px solid rgba(13,26,15,0.2);
  border-top-color: #0d1a0f; border-radius: 50%; animation: spin 0.7s linear infinite;
}
.cam-result-card {
  background: rgba(13,26,15,0.8); border: 1px solid rgba(77,255,120,0.2);
  border-radius: 8px; overflow: hidden; margin-top: 8px;
  animation: fadeUp 0.4s ease;
}
@keyframes fadeUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.cam-result-header {
  padding: 10px 12px; display: flex; align-items: center; gap: 10px;
  border-bottom: 1px solid rgba(77,255,120,0.15);
}
.cam-subject-icon { font-size: 20px; line-height: 1; }
.cam-subject-name { font-size: 13px; font-weight: 700; color: var(--pro-text); font-family: 'Syne', sans-serif; }
.cam-status-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px; border-radius: 20px; font-size: 10px; font-weight: 700;
  font-family: 'DM Mono', monospace; letter-spacing: 0.04em;
}
.cam-s-healthy { background: rgba(77,255,120,0.15); color: #4dff78; }
.cam-s-diseased { background: rgba(255,79,79,0.15); color: #ff4f4f; }
.cam-s-warning { background: rgba(245,200,66,0.15); color: #f5c842; }
.cam-s-unknown { background: rgba(255,255,255,0.07); color: var(--pro-text2); }
.cam-result-body { padding: 10px 12px; display: flex; flex-direction: column; gap: 9px; }
.cam-section-label {
  font-size: 9px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--pro-text2); margin-bottom: 4px;
  font-family: 'DM Mono', monospace;
}
.cam-section-text { font-size: 11px; color: var(--pro-text2); line-height: 1.6; }
.cam-conf-row { display: flex; align-items: center; gap: 8px; }
.cam-conf-bar { flex: 1; height: 4px; background: var(--pro-border); border-radius: 2px; overflow: hidden; }
.cam-conf-fill { height: 100%; border-radius: 2px; transition: width 1s cubic-bezier(0.4,0,0.2,1); }
.cam-conf-label { font-size: 11px; font-weight: 700; color: var(--pro-text2); min-width: 30px; text-align: right; font-family: 'DM Mono', monospace; }
.cam-issue-list { display: flex; flex-direction: column; gap: 5px; }
.cam-issue-item {
  background: rgba(255,79,79,0.08); border-left: 2px solid rgba(255,79,79,0.5);
  border-radius: 4px; padding: 6px 9px; font-size: 11px; color: var(--pro-text); line-height: 1.5;
}
.cam-issue-item.tip { background: rgba(77,255,120,0.07); border-left-color: rgba(77,255,120,0.5); }
.cam-error-box {
  background: rgba(255,79,79,0.1); color: #ff8080; border-radius: 6px;
  padding: 8px 10px; font-size: 11px; margin-top: 8px; line-height: 1.5;
}
.cam-sev-chip {
  display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 5px;
  font-size: 10px; font-weight: 700; font-family: 'DM Mono', monospace;
}
.cam-sev-none { background: rgba(77,255,120,0.15); color: #4dff78; }
.cam-sev-mild { background: rgba(245,200,66,0.15); color: #f5c842; }
.cam-sev-moderate { background: rgba(255,140,66,0.15); color: #ff8c42; }
.cam-sev-severe { background: rgba(255,79,79,0.15); color: #ff4f4f; }

/* Pro tab indicator */
.tab.pro-tab { color:#4a6e28; }
.tab.pro-tab.on { color:#0d1a0f !important; background:linear-gradient(135deg,#3B6D11,#4a8c3f) !important; border-bottom-color:#3B6D11 !important; }
.tab.pro-tab:hover { color:#27500A; background:#e8f7d4 !important; }
/* NDVI feeds EUDR banner */
.eudr-ndvi-link { background:linear-gradient(135deg,rgba(77,255,120,.06),rgba(66,180,255,.06)); border:1px solid rgba(77,255,120,.2); border-radius:10px; padding:12px 16px; margin-bottom:12px; font-size:12px; color:#27500A; display:flex; align-items:center; gap:10px; }
/* Carbon link from profit calc */
.carbon-link-banner { background:#f0fbe8; border:1px solid #b8d994; border-radius:10px; padding:11px 15px; margin-bottom:12px; font-size:12px; color:#27500A; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
/* v6 version chip */
.v6-chip { display:inline-flex; align-items:center; gap:5px; background:linear-gradient(135deg,#3B6D11,#4a8c3f); color:white; font-size:10px; font-weight:700; padding:3px 10px; border-radius:12px; letter-spacing:.06em; }

/* Print / PDF export styles */
@media print {
  body > .page > *:not(#view-investor) { display:none !important; }
  #view-investor { display:block !important; }
  #view-investor > div:first-child { display:none !important; } /* hide back btn row */
  body { background:white !important; color:black !important; }
  body::before { display:none !important; }
  .page { max-width:100% !important; padding:10mm !important; }
  .print-logo-bar {
    display:flex !important; align-items:center; justify-content:space-between;
    padding:0 0 12px; margin-bottom:16px; border-bottom:2px solid #3B6D11;
  }
  @page { margin:15mm; size:A4; }
}
.print-logo-bar { display:none; }

/* Unified CC wrap */
.cc-wrap {
  background:linear-gradient(135deg,#f0f7e8 0%,#ffffff 100%);
  border:1.5px solid #b8d994; border-radius:16px;
  padding:18px 20px; margin-bottom:18px;
  transition:all .3s;
}

/* Better tab bar mobile */
@media(max-width:640px){
  .tabs { -webkit-overflow-scrolling:touch; }
  .tab { padding:9px 12px; font-size:12px; }
}

/* Enhanced brand area */
.topbar { align-items:center; }
.topbar-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

/* Grouped navigation */
.tabs {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  padding: 12px !important;
  background: #f4f6f0 !important;
  border-bottom: 1px solid #e2e4dc !important;
  border-radius: 16px !important;
}
.tab-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  background: white !important;
  border-radius: 14px !important;
  padding: 12px !important;
  border: 1px solid #e8ede2 !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04) !important;
}
.tab-group-label {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  color: #1a3c20 !important;
  padding: 4px 4px 2px !important;
  font-family: 'DM Sans', sans-serif !important;
  border-bottom: 2px solid #e2e4dc !important;
  margin-bottom: 6px !important;
  display: block !important;
}
.tab-group-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
.tab {
  flex-shrink: 0 !important;
  min-width: 56px !important;
  height: 56px !important;
  padding: 6px 4px 4px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  text-align: center !important;
  border-radius: 12px !important;
  border: 1.5px solid #e2e4dc !important;
  background: white !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
  color: #333 !important;
}
.tab:hover {
  border-color: #4a7c23 !important;
  transform: translateY(-1px) !important;
}
.tab.on {
  background: #1a2e0e !important;
  border-color: #1a2e0e !important;
}


/* Force light background on grouped tabs */
.tabs {
  background: #f4f6f0 !important;
}

/* Make tab icons visible on light background */
.tab:not(.on) {
  background: white !important;
  border-color: #e2e4dc !important;
  color: #333 !important;
}


/* Mobile first - hide complex panels on small screens initially */
@media (max-width: 480px) {
  .krow { grid-template-columns: 1fr 1fr !important; }
}

/* Quick action cards */
.quick-action-card {
  background: white;
  border: 1.5px solid #e2e4dc;
  border-radius: 14px;
  padding: 16px;
  text-align: center;
  cursor: pointer;
  transition: all 0.15s;
  flex: 1;
  min-width: 70px;
}
.quick-action-card:hover {
  border-color: #4a7c23;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(26,60,32,0.1);
}
.quick-action-card .qa-icon { font-size: 28px; margin-bottom: 6px; }
.quick-action-card .qa-label { font-size: 11px; font-weight: 700; color: #1a1a18; }




:root{--void:#030508;--deep:#0a1210;--moss:#0f1e15;--grove:#142b1a;--forest:#1a3c20;--canopy:#256b2c;--leaf:#3a8c3f;--bright:#52b858;--mint:#7ed484;--gold:#d4900f;--amber:#e8a820;--honey:#f5c840;--sky:#3584b8;--red:#e03c3c;--orange:#e07830;--cream:#f0ead8;--warm:#f5f2ec;--white:#ffffff;--ink:#0c1410;--stone:#4a6050;--fog:#728070;--border:rgba(42,90,48,.12);--serif:'Fraunces',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;--mono:'Fira Code','DM Mono',monospace}
body{font-family:var(--sans)!important;background:var(--warm)!important;color:var(--ink)!important;font-size:16px!important}
body::before{display:none!important}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(26,60,32,.18);border-radius:3px}
::selection{background:rgba(52,184,63,.15);color:var(--ink)}
#auth-overlay{background:var(--deep)!important;display:none;position:fixed;inset:0;z-index:9000;align-items:center;justify-content:center;padding:20px;opacity:1;transition:opacity .25s}
#auth-overlay:not(.hidden){display:flex!important}
#auth-overlay.hidden{opacity:0;pointer-events:none;display:none!important}
.auth-card{background:var(--white)!important;border-radius:20px!important;padding:36px 32px!important;width:100%;max-width:420px;box-shadow:0 32px 80px rgba(0,0,0,.45)!important;border:1px solid var(--border)!important}
.auth-logo{margin-bottom:28px!important}
.auth-logo-icon{width:44px!important;height:44px!important;background:linear-gradient(135deg,var(--forest),var(--canopy))!important;border-radius:12px!important;box-shadow:0 6px 18px rgba(26,60,32,.35)!important}
.auth-logo-icon svg{stroke:white!important}
.auth-logo-name{font-family:var(--serif)!important;font-size:17px!important;font-weight:400!important;color:var(--ink)!important;letter-spacing:-.01em!important}
.auth-logo-sub{font-family:var(--mono)!important;font-size:9.5px!important;color:var(--fog)!important;text-transform:uppercase!important;letter-spacing:.1em!important}
#tab-signin,#tab-signup{font-family:var(--mono)!important;font-size:11px!important;letter-spacing:.08em!important;text-transform:uppercase!important}
#tab-signin{color:var(--forest)!important;border-bottom-color:var(--forest)!important}
#tab-signup{color:var(--fog)!important}
.auth-label{font-family:var(--mono)!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.1em!important;color:var(--leaf)!important;font-weight:500!important}
.auth-input{font-family:var(--sans)!important;border-radius:8px!important;border-color:var(--border)!important;font-size:15px!important;padding:12px 14px!important;color:var(--ink)!important}
.auth-input:focus{border-color:var(--forest)!important;box-shadow:0 0 0 3px rgba(26,60,32,.08)!important;outline:none!important}
.auth-btn{background:var(--forest)!important;border-radius:12px!important;font-family:var(--sans)!important;font-size:16px!important;font-weight:600!important;padding:14px!important}
.auth-btn:hover{background:var(--grove)!important}
.auth-footer{font-family:var(--mono)!important;font-size:10px!important;color:var(--fog)!important}
.auth-footer strong{color:var(--forest)!important;font-size:11px!important}
.auth-error{border-radius:8px!important;font-family:var(--sans)!important}
.plan-badge{font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.06em!important}
.plan-badge.free{background:var(--warm)!important;color:var(--stone)!important;border-color:var(--border)!important}
.plan-badge.pro{background:rgba(26,60,32,.08)!important;color:var(--forest)!important;border-color:rgba(26,60,32,.2)!important}
#upgrade-modal{background:rgba(6,11,10,.5)!important}
.upgrade-card{border-radius:18px!important;box-shadow:0 24px 64px rgba(0,0,0,.18)!important}
.upgrade-title{font-family:var(--serif)!important;font-weight:400!important;font-size:22px!important}
.upgrade-btn-primary{background:var(--forest)!important;border-radius:10px!important;font-family:var(--sans)!important;font-weight:600!important;font-size:15px!important;padding:12px!important}
.upgrade-btn-primary:hover{background:var(--grove)!important}
.upgrade-btn-secondary{border-radius:10px!important;font-family:var(--sans)!important}
.logout-btn{font-family:var(--mono)!important;font-size:10px!important;border-radius:7px!important}
.page,.page-wrapper{max-width:1160px!important;margin:0 auto!important;padding:20px 22px 80px!important}
.page{background:transparent!important}
.topbar{background:white!important;border:1px solid var(--border)!important;border-radius:14px!important;padding:14px 18px!important;margin-bottom:20px!important;box-shadow:0 2px 12px rgba(0,0,0,.04)!important}
.brand{font-family:var(--serif)!important;font-size:18px!important;font-weight:400!important;letter-spacing:-.01em!important;color:var(--ink)!important}
.brand-sub{font-family:var(--mono)!important;font-size:9.5px!important;color:var(--fog)!important;letter-spacing:.06em!important}
.tabs{height:0!important;overflow:hidden!important;visibility:hidden!important;margin:0!important;padding:0!important;border:none!important;pointer-events:none!important;display:flex!important;}
.tab{font-family:var(--mono)!important;font-size:12px!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:rgba(240,235,225,.85)!important;border-radius:8px!important;border-bottom:none!important;padding:11px 18px!important;transition:all .18s!important;white-space:nowrap!important;flex-shrink:0!important;cursor:pointer!important}
.tab:hover{color:var(--honey)!important;background:rgba(212,144,15,.1)!important}
.tab.on{background:var(--gold)!important;color:var(--void)!important;font-weight:700!important;border-bottom:none!important}
.tab-nav{background:var(--moss)!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:14px!important}
.tab-btn{font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.1em!important;color:rgba(240,235,225,.55)!important;border-radius:9px!important}
.tab-btn:hover{color:var(--honey)!important;background:rgba(212,144,15,.1)!important}
.tab-btn.active{background:var(--gold)!important;color:var(--void)!important;font-weight:700!important}
.card{background:white!important;border:1px solid var(--border)!important;border-radius:16px!important;padding:22px 24px!important;box-shadow:0 2px 16px rgba(0,0,0,.04)!important;backdrop-filter:none!important}
.card-header{border-bottom-color:var(--border)!important}
.card-title{font-family:var(--serif)!important;font-weight:400!important;font-size:18px!important;letter-spacing:-.01em!important}
.card-icon{background:rgba(26,60,32,.07)!important;border-color:rgba(26,60,32,.15)!important}
.kcard{background:white!important;border:1px solid var(--border)!important;border-radius:12px!important}
.kval{font-family:var(--serif)!important;font-weight:400!important;font-size:24px!important}
.klbl{font-family:var(--mono)!important;font-size:9px!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:var(--fog)!important}
.kpi{background:rgba(26,60,32,.04)!important;border-color:var(--border)!important;border-radius:12px!important}
.kpi-val{font-family:var(--serif)!important;font-weight:300!important;font-size:26px!important;letter-spacing:-.02em!important}
.kpi-val.good{color:var(--forest)!important}.kpi-val.warn{color:var(--gold)!important}.kpi-val.bad{color:var(--red)!important}
.kpi-lbl{font-family:var(--mono)!important;font-size:9px!important;letter-spacing:.12em!important;color:var(--fog)!important}
.btn{font-family:var(--sans)!important;border-radius:10px!important;font-size:15px!important;padding:12px 20px!important}
.btn-primary{background:var(--gold)!important;color:var(--void)!important;font-weight:700!important}
.btn-primary:hover{background:var(--amber)!important}
.btn-secondary{background:rgba(26,60,32,.07)!important;border-color:rgba(26,60,32,.2)!important;color:var(--ink)!important}
.btn-g{font-family:var(--sans)!important;border-radius:10px!important;font-weight:600!important;font-size:15px!important}
.btn-o{font-family:var(--sans)!important;border-radius:10px!important;font-weight:500!important}
.cc-wrap{background:white!important;border:1px solid var(--border)!important;border-radius:20px!important;box-shadow:0 4px 24px rgba(0,0,0,.06)!important;padding:26px 28px!important}
.cc-wrap::before{display:none!important}
.cc-badge{background:var(--forest)!important;border-radius:6px!important;font-family:var(--mono)!important;font-size:9px!important;letter-spacing:.14em!important;padding:5px 12px!important}
.cc-priority{font-family:var(--serif)!important;font-weight:300!important;font-size:28px!important;letter-spacing:-.02em!important;line-height:1.1!important;margin-bottom:14px!important}
.cc-impact{border-radius:12px!important;font-family:var(--sans)!important;font-size:16px!important;padding:14px 18px!important;margin-bottom:20px!important}
.cc-btn-main{background:var(--forest)!important;border-radius:12px!important;font-family:var(--sans)!important;font-weight:700!important;font-size:16px!important;padding:15px 28px!important;box-shadow:0 4px 16px rgba(26,60,32,.3)!important;letter-spacing:-.01em!important}
.cc-btn-main:hover{background:var(--grove)!important}
.cc-ai-badge{font-family:var(--mono)!important;font-size:9px!important;border-radius:6px!important;color:var(--forest)!important;background:rgba(26,60,32,.06)!important;border-color:rgba(26,60,32,.18)!important}
.sec{font-family:var(--mono)!important;font-size:9px!important;letter-spacing:.14em!important;color:var(--forest)!important}
.flbl{font-family:var(--mono)!important;font-size:9.5px!important;letter-spacing:.1em!important;color:var(--forest)!important}
.hint{font-family:var(--mono)!important;color:var(--fog)!important}
.pro-panel-wrap{background:var(--deep)!important;border-color:rgba(255,255,255,.07)!important}
.pro-header{background:var(--moss)!important;border-color:rgba(255,255,255,.06)!important}
.pro-title{font-family:var(--serif)!important;font-weight:300!important;font-size:15px!important}
.pro-sub{font-family:var(--mono)!important}
.pro-kpi{background:var(--moss)!important;border-color:rgba(255,255,255,.06)!important}
.pro-kpi-lbl{font-family:var(--mono)!important;color:rgba(180,200,185,.45)!important}
.pro-kpi-val{font-family:var(--serif)!important;font-weight:300!important;font-size:26px!important}
.pro-card{background:var(--moss)!important;border-color:rgba(255,255,255,.06)!important}
.pro-card-title{font-family:var(--mono)!important}
.msgs{background:var(--warm)!important}
.msg.b .bubble{background:white!important;border:1px solid var(--border)!important;font-size:15px!important;line-height:1.7!important}
.msg.u .bubble{background:rgba(26,60,32,.08)!important;color:var(--forest)!important;font-size:15px!important}
.bav{background:rgba(26,60,32,.1)!important;color:var(--forest)!important}
.uav{background:rgba(53,132,184,.1)!important;color:var(--sky)!important}
.cinp{border-radius:12px!important;border-color:var(--border)!important;font-family:var(--sans)!important;font-size:16px!important;padding:14px!important}
.cinp:focus{border-color:var(--forest)!important}
.sbtn{background:var(--forest)!important;width:46px!important;height:46px!important}
.sbtn:hover{background:var(--grove)!important}
.typing span{background:rgba(26,60,32,.25)!important}
.chip{font-family:var(--sans)!important;font-size:13px!important;border-radius:8px!important;padding:8px 14px!important}
.crop-btn{font-family:var(--sans)!important;font-size:13px!important;border-radius:8px!important;border-color:var(--border)!important;padding:8px 14px!important}
.crop-btn:hover{border-color:var(--forest)!important;background:rgba(26,60,32,.05)!important}
.crop-btn.active{border-color:var(--forest)!important;background:rgba(26,60,32,.08)!important;color:var(--forest)!important}
.row-item{font-family:var(--sans)!important;font-size:14px!important}
.row-item .rv{font-family:var(--sans)!important;font-size:15px!important;font-weight:600!important}
.badge{font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.08em!important}
.bg{background:rgba(26,60,32,.08)!important;color:var(--forest)!important}
.br{background:rgba(224,60,60,.07)!important;color:var(--red)!important}
.bb{background:rgba(53,132,184,.07)!important;color:var(--sky)!important}
.bo{background:rgba(224,120,48,.07)!important;color:var(--orange)!important}
.status-bar{border-radius:10px!important;font-family:var(--sans)!important;font-size:13px!important}
.status-bar.success{background:rgba(26,60,32,.07)!important;color:var(--forest)!important;border-color:rgba(26,60,32,.2)!important}
.status-bar.warn{background:rgba(212,144,15,.07)!important;color:var(--gold)!important;border-color:rgba(212,144,15,.2)!important}
.status-bar.loading{background:rgba(53,132,184,.07)!important;color:var(--sky)!important;border-color:rgba(53,132,184,.2)!important}
.weather-label{font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.12em!important}
.weather-val{font-family:var(--serif)!important;font-weight:300!important;font-size:28px!important}
.ticker-name{font-family:var(--serif)!important;font-weight:300!important;font-size:16px!important}
.ticker-price,.ticker-change{font-family:var(--mono)!important}
.ticker-change.up{color:var(--forest)!important}.ticker-change.dn{color:var(--red)!important}
.rg{background:rgba(26,60,32,.07)!important;border-radius:12px!important}
.rg .rv{font-family:var(--serif)!important;font-weight:300!important;font-size:26px!important;color:var(--forest)!important}
.rb{background:rgba(53,132,184,.07)!important;border-radius:12px!important}
.rb .rv{font-family:var(--serif)!important;font-weight:300!important;font-size:26px!important;color:var(--sky)!important}
.ro{background:rgba(224,120,48,.07)!important;border-radius:12px!important}
.ro .rv{font-family:var(--serif)!important;font-weight:300!important;font-size:26px!important;color:var(--orange)!important}
.rr{background:rgba(224,60,60,.06)!important;border-radius:12px!important}
.rr .rv{font-family:var(--serif)!important;font-weight:300!important;font-size:26px!important;color:var(--red)!important}
.rg .rl,.rb .rl,.ro .rl,.rr .rl{font-family:var(--mono)!important;font-size:9px!important}
.prog-fill{background:linear-gradient(90deg,var(--canopy),var(--bright))!important}
.import-zone{border-radius:14px!important;border-color:var(--border)!important}
.import-zone:hover{border-color:var(--forest)!important}
.narrative-stat{background:rgba(26,60,32,.05)!important;border-radius:10px!important}
.narrative-stat .val{font-family:var(--serif)!important;font-weight:300!important}
.narrative-stat .lbl{font-family:var(--mono)!important;font-size:9px!important;letter-spacing:.1em!important}
.ndvi-stat{background:rgba(26,60,32,.04)!important;border-color:var(--border)!important;border-radius:10px!important}
.ndvi-stat .val{font-family:var(--serif)!important;font-weight:300!important}
.ndvi-stat .lbl{font-family:var(--mono)!important;font-size:9px!important;letter-spacing:.1em!important}
.ai-modal{border-radius:18px!important}
.ai-modal h3{font-family:var(--serif)!important;font-weight:400!important;font-size:20px!important}
.ai-modal-inp{border-radius:9px!important;font-family:var(--sans)!important;border-color:var(--border)!important;font-size:15px!important;padding:12px 14px!important}
.ai-modal-inp:focus{border-color:var(--forest)!important}
.api-banner,.api-ok{border-radius:10px!important;font-family:var(--sans)!important}
.finp input[type=number]{border-radius:8px!important;font-family:var(--sans)!important;border-color:var(--border)!important;font-size:16px!important;padding:10px 12px!important}
.finp input[type=number]:focus{border-color:var(--forest)!important}
.cmfield label{font-family:var(--mono)!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.07em!important}
#view-dashboard>div:first-child h2{font-family:var(--serif)!important;font-weight:300!important;font-size:28px!important;letter-spacing:-.02em!important}
#view-dashboard h2,#view-main h2,#view-farms h2{font-family:var(--serif)!important;font-weight:300!important;letter-spacing:-.02em!important}
#view-onboarding h1{font-family:var(--serif)!important;font-weight:300!important;color:var(--ink)!important;letter-spacing:-.025em!important}
#view-onboarding h1 span{color:var(--forest)!important}
header{border-radius:20px!important;padding:48px 40px!important;background:linear-gradient(148deg,var(--grove) 0%,var(--deep) 100%)!important;border:1px solid rgba(255,255,255,.07)!important;margin-bottom:28px!important}
header h1{font-family:var(--serif)!important;font-weight:300!important;letter-spacing:-.025em!important;color:var(--cream)!important}
header h1 span{color:var(--honey)!important}
header .eyebrow{font-family:var(--mono)!important;font-size:10px!important;letter-spacing:.2em!important;color:rgba(181,221,181,.55)!important}
header p{font-family:var(--sans)!important;font-style:italic!important;font-size:17px!important;color:rgba(240,235,225,.55)!important}
.badge-row .badge{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.1)!important;color:rgba(240,235,224,.65)!important}
/* Mobile-first: bigger touch targets */
@media(max-width:640px){
  .cc-priority{font-size:22px!important}
  .cc-btn-main{width:100%!important;text-align:center!important;justify-content:center!important}
  .cc-impact{font-size:15px!important}
  .auth-btn{font-size:16px!important;padding:15px!important}
}



/* Auth overlay */
#auth-overlay{
  position:fixed;inset:0;z-index:9999;
  background:#f7f8f5;
  display:none;align-items:center;justify-content:center;
  font-family:'Segoe UI',system-ui,sans-serif;
  transition:opacity .3s ease;
}
#auth-overlay:not(.hidden){display:flex!important;}
#auth-overlay.hidden{opacity:0;pointer-events:none;display:none!important;}

.auth-card{
  width:100%;max-width:400px;margin:0 16px;
  background:white;border:1px solid #e2e4dc;border-radius:16px;
  padding:36px 32px;box-shadow:0 4px 24px rgba(26,26,24,.07);
}
.auth-logo{
  display:flex;align-items:center;gap:10px;margin-bottom:28px;
}
.auth-logo-icon{
  width:40px;height:40px;background:#3B6D11;border-radius:10px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.auth-logo-icon svg{width:22px;height:22px;fill:none;stroke:white;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.auth-logo-name{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;color:#1a1a18;line-height:1.2;}
.auth-logo-sub{font-size:11px;color:#666;margin-top:1px;}

.auth-title{font-size:20px;font-weight:700;color:#1a1a18;margin-bottom:4px;font-family:'Syne',sans-serif;}
.auth-sub{font-size:13px;color:#666;margin-bottom:24px;line-height:1.5;}

.auth-field{margin-bottom:16px;}
.auth-label{font-size:11px;font-weight:700;color:#3d5c1a;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;display:block;}
.auth-input{
  width:100%;border:1px solid #dde0d6;border-radius:8px;
  padding:10px 13px;font-size:14px;background:white;color:#1a1a18;
  font-family:inherit;outline:none;transition:border-color .15s;
}
.auth-input:focus{border-color:#3B6D11;box-shadow:0 0 0 3px rgba(59,109,17,.08);}

.auth-btn{
  width:100%;padding:11px;background:#3B6D11;color:white;
  border:none;border-radius:8px;font-size:14px;font-weight:600;
  cursor:pointer;font-family:inherit;transition:background .15s;
  display:flex;align-items:center;justify-content:center;gap:8px;
  margin-top:8px;
}
.auth-btn:hover{background:#27500A;}
.auth-btn:disabled{background:#ccc;cursor:not-allowed;}
.auth-btn .spinner{
  width:16px;height:16px;border:2px solid rgba(255,255,255,.3);
  border-top-color:white;border-radius:50%;
  animation:spin .7s linear infinite;display:none;
}
.auth-btn.loading .spinner{display:block;}
.auth-btn.loading .btn-text{display:none;}
@keyframes spin{to{transform:rotate(360deg)}}

.auth-error{
  background:#fcebeb;border:1px solid #f5c6c6;border-radius:8px;
  padding:10px 13px;font-size:12px;color:#A32D2D;margin-bottom:14px;
  display:none;
}
.auth-error.show{display:block;}

.auth-footer{
  margin-top:20px;padding-top:16px;border-top:1px solid #f0f2ec;
  font-size:11px;color:#888;text-align:center;line-height:1.6;
}
.auth-footer strong{color:#3B6D11;}

/* Plan badge on topbar */
.plan-badge{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;
  cursor:default;
}
.plan-badge.free{background:#f0f2ec;color:#555;border:1px solid #dde0d6;}
.plan-badge.pro{background:#eaf3de;color:#27500A;border:1px solid #b8d994;}
.plan-badge.enterprise{background:#e6f1fb;color:#0C447C;border:1px solid #a8c8f0;}

/* Upgrade modal */
#upgrade-modal{
  position:fixed;inset:0;z-index:9998;
  background:rgba(26,26,24,.45);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
#upgrade-modal.show{opacity:1;pointer-events:all;}
.upgrade-card{
  width:100%;max-width:420px;margin:0 16px;
  background:white;border-radius:16px;padding:32px;
  box-shadow:0 8px 40px rgba(26,26,24,.15);
}
.upgrade-icon{font-size:32px;margin-bottom:12px;}
.upgrade-title{font-family:'Syne',sans-serif;font-size:19px;font-weight:700;color:#1a1a18;margin-bottom:6px;}
.upgrade-sub{font-size:13px;color:#555;margin-bottom:20px;line-height:1.6;}
.upgrade-features{list-style:none;margin-bottom:22px;}
.upgrade-features li{
  display:flex;align-items:flex-start;gap:8px;
  font-size:13px;color:#333;padding:5px 0;
  border-bottom:1px solid #f0f2ec;
}
.upgrade-features li:last-child{border-bottom:none;}
.upgrade-features li::before{content:"✓";color:#3B6D11;font-weight:700;flex-shrink:0;margin-top:1px;}
.upgrade-btns{display:flex;gap:10px;}
.upgrade-btn-primary{
  flex:1;padding:10px;background:#3B6D11;color:white;
  border:none;border-radius:8px;font-size:13px;font-weight:600;
  cursor:pointer;font-family:inherit;
}
.upgrade-btn-primary:hover{background:#27500A;}
.upgrade-btn-secondary{
  padding:10px 16px;background:#f4f6f0;color:#333;
  border:1px solid #b8c4a8;border-radius:8px;font-size:13px;
  cursor:pointer;font-family:inherit;
}
.upgrade-btn-secondary:hover{background:#e4eeda;}

/* Logout button */
.logout-btn{
  padding:6px 12px;background:none;border:1px solid #dde0d6;
  border-radius:8px;font-size:11px;color:#666;cursor:pointer;
  font-family:inherit;transition:all .15s;
}
.logout-btn:hover{border-color:#A32D2D;color:#A32D2D;background:#fcebeb;}



    @keyframes dashDronePulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }
  


/* ─── Reminders Panel Styles ─── */
.rem-hero {
  background: linear-gradient(135deg, #1a3c20 0%, #0d2410 100%);
  border-radius: 18px; padding: 28px 28px 24px;
  margin-bottom: 18px; position: relative; overflow: hidden;
}
.rem-hero::after {
  content: '📱'; position: absolute; right: 24px; top: 50%;
  transform: translateY(-50%); font-size: 64px; opacity: 0.18;
}
.rem-hero-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(232,160,32,.15); border: 1px solid rgba(232,160,32,.3);
  border-radius: 20px; padding: 4px 12px;
  font-size: 10px; font-weight: 700; color: #E8A020;
  letter-spacing: .1em; text-transform: uppercase; margin-bottom: 14px;
}
.rem-hero h2 { font-family: 'Syne', sans-serif; font-size: 26px; font-weight: 800; color: white; margin-bottom: 8px; line-height: 1.2; }
.rem-hero p  { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.7; max-width: 480px; }

/* Streak bar */
.streak-row {
  display: grid; grid-template-columns: repeat(7,1fr); gap: 6px; margin: 18px 0 0;
}
.streak-day {
  height: 38px; border-radius: 8px; display: flex; align-items: center;
  justify-content: center; font-size: 16px; cursor: default;
  transition: transform .15s;
}
.streak-day.done  { background: linear-gradient(135deg,#3B6D11,#5a9a1c); box-shadow: 0 3px 8px rgba(59,109,17,.4); }
.streak-day.today { background: rgba(232,160,32,.2); border: 1.5px solid #E8A020; }
.streak-day.miss  { background: rgba(255,255,255,.06); }

/* Setup card */
.rem-setup-card {
  background: white; border: 1px solid #e2e4dc; border-radius: 16px;
  padding: 22px 24px; margin-bottom: 16px;
}
.rem-setup-card h3 { font-family: 'Syne',sans-serif; font-size: 16px; font-weight: 700; color: #1a1a18; margin-bottom: 4px; }
.rem-setup-card p  { font-size: 12px; color: #666; margin-bottom: 18px; line-height: 1.6; }

.rem-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
@media(max-width:500px){ .rem-form-row { grid-template-columns: 1fr; } }
.rem-field { display: flex; flex-direction: column; gap: 4px; }
.rem-label { font-size: 11px; font-weight: 700; color: #3d5c1a; text-transform: uppercase; letter-spacing: .04em; }
.rem-input {
  border: 1px solid #dde0d6; border-radius: 8px; padding: 9px 12px;
  font-size: 14px; color: #1a1a18; font-family: inherit; outline: none;
  transition: border-color .15s; background: white;
}
.rem-input:focus { border-color: #3B6D11; box-shadow: 0 0 0 3px rgba(59,109,17,.07); }
.rem-channel-row { display: flex; gap: 8px; margin-bottom: 14px; }
.rem-channel-btn {
  flex: 1; padding: 10px 8px; border-radius: 10px; border: 1.5px solid #e2e4dc;
  background: white; font-size: 12px; font-weight: 600; cursor: pointer; color: #444;
  font-family: inherit; transition: all .15s; text-align: center;
}
.rem-channel-btn:hover { border-color: #3B6D11; background: #f0f7e8; color: #27500A; }
.rem-channel-btn.active { border-color: #3B6D11; background: #eaf3de; color: #27500A; }

/* Daily tasks card */
.rem-tasks-card {
  background: white; border: 1px solid #e2e4dc; border-radius: 16px;
  padding: 0; margin-bottom: 16px; overflow: hidden;
}
.rem-tasks-header {
  padding: 16px 20px; border-bottom: 1px solid #e2e4dc;
  display: flex; align-items: center; gap: 12px;
}
.rem-task-item {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 14px 20px; border-bottom: 1px solid #f0f2ec;
  transition: background .15s; cursor: pointer;
}
.rem-task-item:last-child { border-bottom: none; }
.rem-task-item:hover { background: #fafbf8; }
.rem-task-item.done-task { opacity: 0.55; }
.rem-task-check {
  width: 22px; height: 22px; border-radius: 50%; border: 2px solid #dde0d6;
  flex-shrink: 0; margin-top: 1px; display: flex; align-items: center;
  justify-content: center; transition: all .2s; background: white;
}
.rem-task-item.done-task .rem-task-check {
  background: #3B6D11; border-color: #3B6D11; color: white;
}
.rem-task-title { font-size: 14px; font-weight: 600; color: #1a1a18; margin-bottom: 2px; }
.rem-task-sub   { font-size: 12px; color: #666; line-height: 1.55; }

/* Decision engine card */
.rem-brain-card {
  background: linear-gradient(135deg,#f0f7e8,#e8f5d4); border: 1.5px solid #b8d994;
  border-radius: 16px; padding: 20px 22px; margin-bottom: 16px;
}
.rem-brain-label {
  display: inline-flex; align-items: center; gap: 6px;
  background: #3B6D11; color: white; font-size: 10px; font-weight: 700;
  padding: 3px 11px; border-radius: 20px; letter-spacing: .08em;
  text-transform: uppercase; margin-bottom: 12px;
}
.rem-brain-action { font-size: 20px; font-weight: 800; color: #1a1a18; margin-bottom: 6px; line-height: 1.25; }
.rem-brain-impact {
  display: inline-flex; align-items: center; gap: 8px;
  background: white; border: 1px solid #b8d994; border-radius: 10px;
  padding: 8px 14px; font-size: 14px; font-weight: 700; color: #3B6D11;
  margin-bottom: 14px;
}
.rem-score-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.rem-score-chip {
  display: flex; align-items: center; gap: 5px; padding: 4px 10px;
  border-radius: 20px; font-size: 11px; font-weight: 600; border: 1px solid;
}
.rem-score-chip.high { background: #fcebeb; border-color: #f5c6c6; color: #791F1F; }
.rem-score-chip.med  { background: #faeeda; border-color: #f0c878; color: #633806; }
.rem-score-chip.low  { background: #e6f1fb; border-color: #90c4f0; color: #0C447C; }

/* Weekly summary */
.rem-weekly-card {
  background: white; border: 1px solid #e2e4dc; border-radius: 16px;
  padding: 20px 22px; margin-bottom: 16px;
}
.rem-weekly-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 14px; }
.rem-weekly-stat {
  background: #f7f8f5; border-radius: 10px; padding: 14px;
  text-align: center; border: 1px solid #e2e4dc;
}
.rem-weekly-stat .rv  { font-size: 22px; font-weight: 700; font-family: 'Syne',sans-serif; }
.rem-weekly-stat .rl  { font-size: 10px; color: #666; margin-top: 3px; text-transform: uppercase; letter-spacing: .06em; }

/* Preview message */
.rem-preview {
  background: #f7f9f7; border: 1px solid #c8d8b0; border-radius: 14px;
  padding: 16px 18px; margin-bottom: 14px; font-family: 'DM Mono', monospace;
  font-size: 12px; line-height: 1.85; color: #1a1a18; white-space: pre-wrap;
}
.rem-preview strong { color: #3B6D11; }



.fbo-mode-bar{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;align-items:center;}
.fbo-mode-btn{padding:8px 18px;border-radius:20px;border:1px solid #b8c4a8;background:#f4f6f0;color:#444;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;}
.fbo-mode-btn.active{background:#3B6D11;color:white;border-color:#3B6D11;}
.fbo-view{display:none;} .fbo-view.on{display:block;}
.member-card{background:white;border:1px solid #e2e4dc;border-radius:10px;padding:12px 14px;margin-bottom:9px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:border-color .15s;}
.member-card:hover{border-color:#3B6D11;}
.member-card.selected{border-color:#3B6D11;background:#f4f9ee;}
.member-avatar{width:38px;height:38px;border-radius:50%;background:#eaf3de;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.member-name{font-size:13px;font-weight:700;color:#1a1a18;}
.member-meta{font-size:11px;color:#666;margin-top:2px;}
.member-status{margin-left:auto;text-align:right;}
.member-crop-tag{display:inline-block;padding:2px 8px;border-radius:8px;font-size:10px;font-weight:600;background:#eaf3de;color:#27500A;margin-right:4px;}
.fbo-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
@media(max-width:600px){.fbo-stat-row{grid-template-columns:repeat(2,1fr);}}
.fbo-stat{background:white;border:1px solid #e2e4dc;border-radius:10px;padding:11px 13px;text-align:center;}
.fbo-stat .sv{font-size:20px;font-weight:700;color:#3B6D11;}
.fbo-stat .sl{font-size:10px;color:#666;margin-top:3px;font-weight:500;}
.bulk-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:white;border:1px solid #e2e4dc;border-radius:9px;margin-bottom:7px;}
.bulk-crop-icon{font-size:18px;flex-shrink:0;}
.bulk-details{flex:1;}
.bulk-name{font-size:12px;font-weight:700;color:#1a1a18;}
.bulk-meta{font-size:11px;color:#666;}
.bulk-savings{font-size:12px;font-weight:700;color:#27500A;white-space:nowrap;}
.broadcast-item{padding:10px 14px;background:#fafbf8;border:1px solid #e2e4dc;border-radius:9px;margin-bottom:7px;}
.broadcast-time{font-size:10px;color:#888;margin-bottom:3px;}
.broadcast-msg{font-size:12px;color:#1a1a18;line-height:1.5;}
.broadcast-badge{display:inline-block;padding:2px 8px;border-radius:8px;font-size:10px;font-weight:600;margin-right:6px;}
.bb-alert{background:#fcebeb;color:#791F1F;}
.bb-market{background:#e6f1fb;color:#0C447C;}
.bb-advice{background:#eaf3de;color:#27500A;}
.sell-coord-card{background:white;border:1px solid #b8d994;border-radius:10px;padding:14px;margin-bottom:10px;}
.sell-coord-title{font-size:13px;font-weight:700;color:#1a1a18;margin-bottom:4px;}
.sell-coord-meta{font-size:11px;color:#666;margin-bottom:10px;}
.sell-saving{display:inline-block;background:#eaf3de;color:#27500A;padding:4px 12px;border-radius:8px;font-size:12px;font-weight:700;}



.offline-status-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:13px;font-weight:600;}
.offline-status-bar.online{background:#eaf3de;border:1px solid #b8d994;color:#27500A;}
.offline-status-bar.offline{background:#fcebeb;border:1px solid #f7c1c1;color:#791F1F;}
.offline-status-bar.cached{background:#faeeda;border:1px solid #f0c878;color:#633806;}
.cache-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:white;border:1px solid #e2e4dc;border-radius:9px;margin-bottom:7px;}
.cache-item-name{font-size:12px;font-weight:700;color:#1a1a18;}
.cache-item-time{font-size:10px;color:#888;margin-top:2px;}
.cache-status{font-size:11px;font-weight:600;padding:3px 9px;border-radius:8px;}
.cs-fresh{background:#eaf3de;color:#27500A;}
.cs-stale{background:#faeeda;color:#633806;}
.cs-none{background:#f4f6f0;color:#888;}
.offline-feature-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #e8ebe0;font-size:12px;}
.offline-feature-row:last-child{border:none;}
.of-icon{font-size:15px;flex-shrink:0;width:22px;text-align:center;}
.of-name{flex:1;color:#1a1a18;}
.of-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px;}
.ofs-yes{background:#eaf3de;color:#27500A;}
.ofs-cached{background:#faeeda;color:#633806;}
.ofs-no{background:#fcebeb;color:#A32D2D;}
.sync-log-item{font-size:11px;color:#666;padding:4px 0;border-bottom:1px solid #f0f2ec;display:flex;gap:8px;}
.sync-log-item:last-child{border:none;}
.sync-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin-top:4px;}



.tabs::-webkit-scrollbar { display: none; }
.tabs { -ms-overflow-style: none; scrollbar-width: none; }



.cat-hub-card{background:white;border:1.5px solid #e2e4dc;border-radius:16px;padding:16px 10px 12px;text-align:center;cursor:pointer;transition:all .18s;}
.cat-hub-card:hover,.cat-hub-card.active{border-color:var(--cat-color);background:var(--cat-bg);box-shadow:0 4px 16px rgba(0,0,0,0.08);}
.cat-hub-icon{font-size:36px;line-height:1;margin-bottom:8px;}
.cat-hub-name{font-size:11px;font-weight:700;color:#1a1a18;line-height:1.3;}
@media(max-width:600px){#category-hub{grid-template-columns:repeat(3,1fr);} #category-hub .cat-hub-card:nth-child(4),#category-hub .cat-hub-card:nth-child(5){grid-column:span 1;}}

/* ── CHART FIXES ─────────────────────────────────────────────────── */
.chart-wrap {
  position: relative !important;
  width: 100% !important;
  overflow: hidden;
  background: white;
  border-radius: 12px;
}
/* Constrain Chart.js responsive canvases */
.chart-wrap canvas {
  max-height: 300px !important;
}
/* Cap all chart wrapper heights */
[style*="height:160px"] .chart-wrap,
[style*="height:180px"] .chart-wrap,
[style*="height:200px"] .chart-wrap {
  max-height: 220px !important;
}
/* Fix doughnut charts being oversized */
#ls-chart, #c-rk-chart, #c-fc-chart, #c-hive-chart, #c-sc-chart, #c-soil-chart, #c-hive-chart {
  max-height: 220px !important;
  background: white !important;
}
/* Fix raw canvas sizing */
#be-canvas, #ro-canvas, #wb-canvas, #mk-canvas, #ga-canvas, #lca-canvas, #dt-canvas {
  max-width: 100% !important;
  height: auto !important;
  background: #fafbf8 !important;
}
#sir-canvas {
  max-width: 100% !important;
  max-height: 380px !important;
  background: #fafbf8 !important;
}
#ndvi-canvas {
  max-width: 100% !important;
  max-height: 320px !important;
}
#bee-canvas {
  max-width: 100% !important;
  max-height: 320px !important;
  overflow: hidden;
}
canvas {
  background: transparent;
}
