/* Wiet Kwekerij — alle opmaak. Losgetrokken uit index.html. */
  :root{
    --bg:#0c0d0f;
    --panel-bg:#131417;
    --border:#262830;
    --green:#37d873;
    --red:#ef4a3d;
    --gold:#e0b84a;
    --text:#e9e9e9;
    --text-dim:#8a8d94;
    --card-bg:#1a1c20;
    --card-border:#2c2f37;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);color:var(--text);
    font-family:'JetBrains Mono',Consolas,'Courier New',monospace;
    min-height:100vh;
  }
  button{font-family:inherit;}
  :focus-visible{outline:2px solid var(--green);outline-offset:2px;}
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  }

  .loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--green);font-size:.95rem;}
  .cursor{display:inline-block;width:8px;height:14px;background:var(--green);margin-left:4px;animation:blink 1s steps(1) infinite;}
  @keyframes blink{50%{opacity:0;}}

  .app{max-width:1420px;margin:0 auto;padding:20px 16px 60px;}

  .topbar{
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
    padding-bottom:16px;border-bottom:2px solid var(--border);margin-bottom:20px;
  }
  .topbar h1{font-size:1.1rem;margin:0;}
  .stat-chips{display:flex;gap:20px;flex-wrap:wrap;}
  .stat-chip .label{color:var(--text-dim);display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.4px;}
  .stat-chip .value{font-weight:700;font-size:.95rem;}
  .c-green{color:var(--green);}
  .c-gold{color:var(--gold);}
  .event-banner{
    background:linear-gradient(90deg, rgba(224,184,74,.15), rgba(224,184,74,.04));
    border:1px solid var(--gold);border-radius:8px;padding:10px 14px;margin-bottom:18px;
    font-size:.8rem;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  }

  .layout{display:grid;grid-template-columns:280px 1fr 400px;gap:18px;align-items:start;}
  @media (max-width:1250px){.layout{grid-template-columns:280px 1fr;}.ref-panel{grid-column:1 / -1;}}
  @media (max-width:860px){.layout{grid-template-columns:1fr;}.ref-panel{grid-column:auto;}}

  /* Voortgang-pagina heeft geen Winkel-kolom, alleen hoofdpaneel + voorraad rechts. */
  .layout.layout-2col{grid-template-columns:1fr 400px;}
  @media (max-width:860px){.layout.layout-2col{grid-template-columns:1fr;}}

  .page-nav{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
  .page-tab{background:var(--panel-bg);border:1px solid var(--border);color:var(--text-dim);border-radius:8px;padding:8px 16px;cursor:pointer;font-weight:700;font-size:.82rem;font-family:inherit;}
  .page-tab:hover{color:var(--text);}
  .page-tab.active{background:var(--gold);color:#241a05;border-color:var(--gold);}

  .dealer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:16px;}
  .dealer-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;padding:18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;}
  .dealer-card.unlocked{border-color:var(--gold);}
  .dealer-icon{font-size:2.2rem;}
  .dealer-name{font-weight:700;font-size:.95rem;}
  .dealer-desc{font-size:.72rem;color:var(--text-dim);}
  .dealer-mult{font-size:.8rem;color:var(--gold);font-weight:700;}
  .dealer-card .shop-btn{margin-top:4px;}

  .panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;padding:16px;}
  .panel h2{font-size:.78rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px dashed var(--card-border);}

  .plot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  @media (max-width:640px){.plot-grid{grid-template-columns:repeat(2,1fr);}}
  .kas-group{margin-bottom:20px;padding-bottom:16px;border-bottom:1px dashed var(--border);}
  .kas-group:last-child{border-bottom:none;}
  .plot-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;padding:12px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:380px;justify-content:center;gap:6px;}
  .plot-card.empty{border-style:dashed;}
  .plot-card.ready{border-color:var(--green);box-shadow:0 0 14px rgba(55,216,115,.2);}
  .plot-card.auto{border-color:#6c8cff;}
  .plot-card.ready.auto{border-color:#6c8cff;box-shadow:0 0 14px rgba(108,140,255,.25);}
  .plot-card.thirsty{border-color:#4fa8ff;box-shadow:0 0 14px rgba(79,168,255,.3);}
  .water-btn{background:#0a3a5c;border:1px solid #4fa8ff;color:#dff0ff;border-radius:6px;padding:8px 10px;font-weight:700;font-size:.76rem;cursor:pointer;width:100%;transition:background .15s ease;}
  .water-btn:hover{background:#0d4a75;}
  .plot-icon{font-size:1.7rem;}
  .plot-name{font-weight:700;font-size:.82rem;}
  .plot-sub{font-size:.68rem;color:var(--text-dim);}
  .plot-progress{width:100%;background:#000;border:1px solid var(--card-border);border-radius:6px;height:8px;overflow:hidden;margin:4px 0;}
  .plot-progress-bar{height:100%;background:var(--gold);transition:width .3s linear;}
  .plot-timer{font-size:.72rem;color:var(--gold);}
  .seed-row{display:flex;flex-direction:column;gap:6px;width:100%;}
  .seed-btn{background:#000;border:1px solid #fff;color:#fff;border-radius:6px;padding:6px 4px;font-size:.68rem;cursor:pointer;transition:background .15s ease;}
  .seed-btn:hover:not(:disabled){background:#232323;}
  .seed-btn:disabled{opacity:.35;cursor:not-allowed;}
  .harvest-btn{background:var(--green);border:1px solid var(--green);color:#062611;font-weight:700;border-radius:6px;padding:8px 10px;font-size:.76rem;cursor:pointer;width:100%;}
  .harvest-btn:hover{filter:brightness(1.1);}

  .shop-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;padding:12px;margin-bottom:12px;}
  .shop-section{margin-bottom:20px;}
  .shop-section summary{
    cursor:pointer;font-weight:700;font-size:.82rem;color:var(--gold);
    padding:4px 0 10px;border-bottom:1px solid var(--card-border);margin-bottom:12px;
    list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;
  }
  .shop-section summary::-webkit-details-marker{display:none;}
  .shop-section summary .chev{color:var(--text-dim);transition:transform .15s ease;flex:none;}
  .shop-section[open] summary .chev{transform:rotate(90deg);}
  .shop-section summary:hover{color:var(--gold-bright,var(--gold));}
  .shop-section:last-of-type{margin-bottom:12px;}
  .shop-title{font-weight:700;font-size:.85rem;margin-bottom:4px;}
  .shop-desc{font-size:.72rem;color:var(--text-dim);margin-bottom:8px;}
  /* Uitleg achter een vraagteken (winkel, sectie Percelen & Kwekers).
     De beschrijvingen stonden voluit onder elke titel en maakten de winkelkolom een muur tekst.
     Ze hangen nu aan het "?" achter de titel: open bij hover en bij toetsenbordfocus, en met een
     klik vast te zetten (.open) zodat je hem kunt lezen zonder je muis stil te houden - zie
     helpHTML/bindHelp in js/ui.js.
     De ballon hangt aan .shop-title (die staat daarom op position:relative) en niet aan het "?"
     zelf: zo loopt hij over de volle breedte van de kaart in plaats van uit de smalle kolom te
     steken. z-index omdat hij over de koopknop eronder heen valt. */
  .shop-title{position:relative;}
  .help{
    display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;
    margin-left:5px;border-radius:50%;border:1px solid var(--card-border);
    color:var(--text-dim);font-size:.62rem;font-weight:700;line-height:1;
    cursor:pointer;vertical-align:middle;user-select:none;flex:none;
  }
  .help:hover,.help:focus-visible,.help.open{color:var(--gold);border-color:var(--gold);}
  .help-tip{
    display:none;position:absolute;z-index:5;left:0;right:0;top:100%;margin-top:6px;
    background:#0d0d0d;border:1px solid var(--gold);border-radius:6px;padding:8px 10px;
    font-size:.72rem;font-weight:400;line-height:1.45;color:var(--text);text-align:left;
    white-space:normal;box-shadow:0 6px 18px rgba(0,0,0,.65);cursor:auto;
  }
  /* :focus-visible en niet :focus - anders houdt de focus die een muisklik achterlaat de
     ballon open, en sluit een tweede klik hem zichtbaar niet. Toetsenbordgebruik werkt wel. */
  .help:hover .help-tip,.help:focus-visible .help-tip,.help.open .help-tip{display:block;}
  /* Zonder beschrijving staat de titel strak op de knop; dit houdt dezelfde lucht als voorheen. */
  .shop-title + .shop-btn{margin-top:8px;}

  .shop-btn{background:#000;border:2px solid #fff;color:#fff;border-radius:6px;padding:8px 10px;font-weight:700;font-size:.78rem;cursor:pointer;width:100%;}
  .shop-btn:hover:not(:disabled){background:#232323;}
  .shop-btn:disabled{opacity:.35;cursor:not-allowed;}
  .shop-select{background:#000;border:2px solid #fff;color:#fff;border-radius:6px;padding:7px 8px;font-weight:700;font-size:.76rem;width:100%;margin-bottom:6px;font-family:inherit;}
  .shop-select:disabled{opacity:.35;}
  /* table-layout:auto (i.p.v. fixed) laat elke kolom meegroeien met zijn langste inhoud — een
     vaste procentuele breedte gaf bij een lange naam (bv. "Northern Lights") overlap met de
     kolom ernaast omdat de browser 'm niet meer mocht laten wrappen (white-space:nowrap). */
  .ref-table{width:100%;table-layout:auto;border-collapse:collapse;font-size:.7rem;}
  .ref-table th,.ref-table td{text-align:left;padding:4px 6px;border-bottom:1px dashed var(--card-border);color:var(--text-dim);white-space:nowrap;}
  .ref-table th{color:var(--text);}

  /* Voorraad-lijst (Verwerking/Dealers/Kwekerij/Voortgang): geen kolommen die tekst afknellen —
     elk product krijgt zijn eigen volledige-breedte naam-regel plus een kleinere waarde-regel eronder. */
  .stash-list{display:flex;flex-direction:column;}
  .stash-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 8px;padding:4px 2px;border-bottom:1px dashed var(--card-border);font-size:.72rem;}
  .stash-row:last-child{border-bottom:none;}
  .stash-name{color:var(--text);flex:1 1 100%;}
  .stash-val{color:var(--text-dim);}

  .verwerker-product-btns{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
  .verwerker-product-btn{flex:1 1 auto;}
  .verwerker-product-btn.active{background:var(--gold);border-color:var(--gold);color:#1a1200;}
  .amount-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
  .amount-slider{flex:1 1 auto;accent-color:var(--gold);}
  .amount-num{width:80px;flex:none;margin-bottom:0;}

  .admin-trigger-btn{background:none;border:1px solid var(--card-border);color:var(--text-dim);border-radius:6px;padding:6px 10px;cursor:pointer;font-size:.9rem;flex:none;}
  .admin-trigger-btn:hover{color:var(--gold);border-color:var(--gold);}

  .modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:500;padding:16px;}
  .modal-window{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;max-width:640px;width:100%;max-height:85vh;display:flex;flex-direction:column;}
  .modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);flex:none;}
  .modal-header h3{margin:0;font-size:.95rem;}
  .modal-close-btn{background:none;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;line-height:1;}
  .modal-close-btn:hover{color:var(--red);}
  .modal-body{padding:16px;overflow-y:auto;}
  .admin-section{margin-bottom:18px;}
  .admin-section h4{font-size:.75rem;color:var(--gold);text-transform:uppercase;letter-spacing:.4px;margin:0 0 8px;border-bottom:1px dashed var(--card-border);padding-bottom:6px;}
  .admin-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;font-size:.76rem;}
  .admin-row input{width:90px;background:#000;border:1px solid var(--card-border);color:var(--text);border-radius:5px;padding:5px 7px;font-family:inherit;font-size:.76rem;}
  .admin-table{width:100%;border-collapse:collapse;font-size:.72rem;}
  .admin-table th,.admin-table td{padding:4px 3px;text-align:left;}
  .admin-table input{width:58px;background:#000;border:1px solid var(--card-border);color:var(--text);border-radius:4px;padding:3px 4px;font-family:inherit;font-size:.72rem;}
  .admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;}
  .admin-actions button{flex:1;min-width:130px;}
  #adminExportText{width:100%;background:#000;color:var(--green);border:1px solid var(--card-border);border-radius:6px;padding:8px;font-family:inherit;font-size:.7rem;margin-top:10px;resize:vertical;}

  #toastContainer{position:fixed;top:14px;right:14px;left:14px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:300;pointer-events:none;}
  .toast{background:#111;border:1px solid var(--green);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;max-width:320px;box-shadow:0 10px 20px rgba(0,0,0,.5);transform:translateX(120%);opacity:0;transition:transform .35s ease, opacity .35s ease;font-size:.78rem;}
  .toast.show{transform:translateX(0);opacity:1;}
  .toast-title{font-weight:700;color:var(--green);}
  .toast-sub{color:var(--text-dim);}
