/* =====================================================================
   FarmerDistressAI — Design System v2
   Palet gelap "sawah malam": hijau padi + biru langit senja + kertas hangat.
   Font: Fraunces (judul, humanis/editorial) + Inter (isi, jernih & netral).
   ===================================================================== */

:root{
  --bg:#08130f; --bg-alt:#0b1a15;
  --panel:#0e1f1a; --panel2:#122a22;
  --text:#f2f6ee; --muted:#a9b8ab; --muted-dim:#7c8c7f;
  --line:rgba(242,246,238,.09); --line-strong:rgba(242,246,238,.16);
  --primary:#3fd98c; --primary-ink:#04140d; --primary2:#5fc0e0; --amber:#f0b459; --clay:#e2825f;
  --danger:#ef7b7b; --crit:#ff5f6e;
  --shadow-sm:0 6px 18px rgba(0,0,0,.22);
  --shadow:0 20px 55px rgba(0,0,0,.34);
  --radius-lg:22px; --radius:16px; --radius-sm:11px;
  --serif:'Fraunces',ui-serif,Georgia,serif;
  --sans:'Inter',ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--sans);color:var(--text);
  background:
    radial-gradient(ellipse 900px 500px at 12% -5%,rgba(63,217,140,.13),transparent 55%),
    radial-gradient(ellipse 700px 500px at 92% 8%,rgba(95,192,224,.11),transparent 55%),
    radial-gradient(ellipse 900px 700px at 50% 115%,rgba(240,180,89,.06),transparent 60%),
    var(--bg);
  background-attachment:fixed;
}
/* tekstur butiran kertas halus agar tidak terasa "flat/template" */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
::selection{background:rgba(63,217,140,.28);color:#fff}
.container{width:min(1180px,92%);margin:auto;position:relative;z-index:2}

/* ---------------- Nav ---------------- */
.nav{position:sticky;top:0;z-index:40;background:rgba(8,19,15,.82);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
.nav-inner{height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:.1px}
.brand img{width:38px;height:38px;display:block;filter:drop-shadow(0 6px 14px rgba(63,217,140,.25))}
.links{display:flex;gap:22px;color:var(--muted);font-size:14px;font-weight:500}
.links a{position:relative;padding:4px 0}
.links a:after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--primary);transition:right .25s ease;border-radius:2px}
.links a:hover,.links a.active{color:#fff}
.links a:hover:after,.links a.active:after{right:0}
.btn{border:0;border-radius:999px;padding:12px 20px;cursor:pointer;color:var(--primary-ink);font-weight:700;font-size:14px;
  background:linear-gradient(135deg,var(--primary),#8ee9bb);box-shadow:0 10px 24px rgba(63,217,140,.22);
  transition:transform .15s ease,box-shadow .15s ease;display:inline-flex;align-items:center;gap:8px}
.btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(63,217,140,.3)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.55;cursor:progress;transform:none}
.btn.secondary{background:rgba(242,246,238,.05);color:#fff;border:1px solid var(--line-strong);box-shadow:none}
.btn.secondary:hover{background:rgba(242,246,238,.09)}
.btn.danger{background:rgba(239,123,123,.12);color:#ffb4b4;border:1px solid rgba(239,123,123,.28)}
.btn.block{width:100%;justify-content:center}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{width:22px;height:2px;background:#fff;border-radius:2px;display:block}
.links.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;background:rgba(8,19,15,.98);backdrop-filter:blur(20px);padding:20px 5%;border-bottom:1px solid var(--line);gap:16px;z-index:50}

/* ---------------- Typography ---------------- */
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(38px,5.6vw,66px);line-height:1.06;margin:16px 0}
h2{font-size:clamp(26px,3vw,36px);margin:0 0 12px}
h3{margin:0 0 9px;font-size:19px}
.eyebrow{display:inline-flex;gap:8px;align-items:center;color:#a8f2cf;background:rgba(63,217,140,.09);
  border:1px solid rgba(63,217,140,.22);padding:7px 13px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.eyebrow.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary);display:inline-block;box-shadow:0 0 8px var(--primary)}
.lead{font-size:18px;line-height:1.7;color:var(--muted);max-width:640px}
.muted{color:var(--muted)}

/* ---------------- Hero ---------------- */
.hero{padding:80px 0 64px}
.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.hero-illustration{background:linear-gradient(165deg,rgba(18,42,34,.95),rgba(9,20,16,.94));border:1px solid var(--line);
  border-radius:28px;padding:6px;box-shadow:var(--shadow);position:relative}
.hero-illustration .scene{height:340px;border-radius:22px;position:relative;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,rgba(63,217,140,.16),transparent 60%),linear-gradient(150deg,#0f251d,#081410)}
.hero-illustration .field{position:absolute;left:0;right:0;bottom:0;height:46%;
  background:linear-gradient(180deg,rgba(63,217,140,.05),rgba(63,217,140,.16));
  clip-path:polygon(0% 30%,8% 22%,16% 32%,24% 18%,33% 30%,42% 20%,51% 33%,60% 19%,69% 31%,78% 21%,87% 32%,95% 22%,100% 30%,100% 100%,0% 100%)}
.hero-illustration .pulse{position:absolute;left:8%;right:8%;top:32%;height:1px}
.hero-illustration .pulse svg{width:100%;height:80px;overflow:visible}
.hero-illustration .badge-float{position:absolute;top:20px;right:20px;background:rgba(8,19,15,.75);border:1px solid var(--line-strong);
  border-radius:14px;padding:10px 14px;font-size:12px;color:var(--muted);backdrop-filter:blur(6px)}
.hero-illustration .center-mark{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.hero-illustration .center-mark img{width:64px;height:64px;margin-bottom:10px;filter:drop-shadow(0 10px 22px rgba(63,217,140,.3))}
.hero-illustration .center-mark b{font-family:var(--serif);font-size:16px;letter-spacing:.03em}
.node{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--primary);box-shadow:0 0 20px var(--primary)}

/* ---------------- Sections & Cards ---------------- */
section{padding:70px 0}
.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:30px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:linear-gradient(175deg,rgba(18,42,34,.7),rgba(14,31,26,.75));border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm);transition:border-color .2s ease,transform .2s ease}
.card:hover{border-color:var(--line-strong)}
.icon-badge{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:16px;
  background:rgba(63,217,140,.1);border:1px solid rgba(63,217,140,.2)}
.icon-badge svg{width:22px;height:22px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.stat .value{font-family:var(--serif);font-size:33px;font-weight:600;margin:6px 0}
.kpi{display:flex;justify-content:space-between;align-items:center}
.badge{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em}
.badge.green{background:rgba(63,217,140,.13);color:#8bf0bd}
.badge.yellow{background:rgba(240,180,89,.13);color:#ffd699}
.badge.red{background:rgba(239,123,123,.13);color:#ffabab}
.badge.crit{background:rgba(255,95,110,.22);color:#ffd9dc;border:1px solid rgba(255,95,110,.45)}
.progress{height:8px;background:rgba(242,246,238,.07);border-radius:99px;overflow:hidden}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary2),var(--primary));border-radius:inherit;transition:width .5s ease}
.chart{height:250px;display:flex;align-items:end;gap:10px;padding:20px 5px 0}
.bar{flex:1;border-radius:8px 8px 3px 3px;background:linear-gradient(to top,var(--primary2),var(--primary));min-height:8px;opacity:.9;transition:opacity .15s}
.bar:hover{opacity:1}
.table-wrap{overflow:auto;border-radius:var(--radius-sm);border:1px solid var(--line)}
table{width:100%;border-collapse:collapse}
th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
thead th{color:#c7d6c9;font-weight:700;background:rgba(242,246,238,.03)}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:rgba(242,246,238,.02)}
textarea,input,select{width:100%;background:#071310;border:1px solid var(--line);color:#fff;border-radius:var(--radius-sm);
  padding:13px 15px;outline:none;transition:border-color .15s}
textarea{min-height:150px;resize:vertical;font-family:var(--sans)}
textarea:focus,input:focus,select:focus{border-color:rgba(63,217,140,.55)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.full{grid-column:1/-1}
.result{margin-top:18px;padding:24px;border-radius:var(--radius-lg);background:rgba(63,217,140,.055);border:1px solid rgba(63,217,140,.18);display:none}
.result.show{display:block;animation:fadeUp .35s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.score{font-family:var(--serif);font-size:48px;font-weight:600}
.alert{padding:14px 16px;border-radius:14px;background:rgba(240,180,89,.08);border:1px solid rgba(240,180,89,.2);color:#ffdca8}
.alert.danger{background:rgba(239,123,123,.1);border-color:rgba(239,123,123,.28);color:#ffbcbc}
.alert.info{background:rgba(95,192,224,.08);border-color:rgba(95,192,224,.24);color:#bfe6f5}
.keyword-chip{display:inline-block;font-size:12px;background:rgba(242,246,238,.05);border:1px solid var(--line);
  border-radius:999px;padding:5px 12px;margin:3px 6px 0 0;color:var(--muted)}
.stream-bars{display:grid;gap:14px;margin:18px 0}
.stream-bar__label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:5px}
.explanation-box{background:rgba(242,246,238,.03);border-left:3px solid var(--primary2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:14px 16px;font-size:14px;margin-top:16px;color:var(--text)}
.empty-state{text-align:center;padding:44px 20px;color:var(--muted)}
.empty-state .emoji{font-size:38px;margin-bottom:10px}
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.step{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(242,246,238,.015)}
.step b{display:block;color:#a8f2cf;margin-bottom:8px;font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.footer{padding:38px 0;border-top:1px solid var(--line);color:var(--muted-dim);font-size:13px}
.page-head{padding:52px 0 26px}
.page-head p{color:var(--muted);max-width:740px;font-size:16px;line-height:1.65}
.flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}

/* ---------------- Tabs (Analisis: teks vs CSV) ---------------- */
.tabs{display:flex;gap:6px;background:rgba(242,246,238,.04);border:1px solid var(--line);border-radius:999px;padding:5px;width:max-content;margin-bottom:20px}
.tab-btn{border:0;background:none;color:var(--muted);padding:9px 18px;border-radius:999px;font-weight:700;font-size:13px;cursor:pointer;transition:.15s}
.tab-btn.active{background:linear-gradient(135deg,var(--primary),#8ee9bb);color:var(--primary-ink)}
.tab-panel{display:none}
.tab-panel.active{display:block}
.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--radius);padding:34px 20px;text-align:center;cursor:pointer;transition:.15s}
.dropzone:hover,.dropzone.drag{border-color:var(--primary);background:rgba(63,217,140,.04)}
.dropzone svg{width:34px;height:34px;margin-bottom:10px;opacity:.7}
.dropzone input[type=file]{display:none}
.file-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(63,217,140,.08);border:1px solid rgba(63,217,140,.2);
  border-radius:999px;padding:8px 14px;font-size:13px;margin-top:12px}
.file-chip button{background:none;border:0;color:var(--danger);cursor:pointer;font-weight:800;padding:0}

/* ---------------- Engine status pill ---------------- */
.engine-status{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:8px 14px;
  border:1px solid var(--line);border-radius:999px;background:rgba(242,246,238,.03)}
.engine-status .dot{width:8px;height:8px;border-radius:50%;background:var(--muted-dim)}
.engine-status.ok .dot{background:var(--primary);box-shadow:0 0 8px var(--primary)}
.engine-status.error .dot{background:var(--crit);box-shadow:0 0 8px var(--crit)}
.engine-status.checking .dot{animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

code{background:rgba(242,246,238,.06);padding:2px 7px;border-radius:6px;font-size:.9em;color:#cfe8d6}

@media(max-width:850px){
  .links{display:none}.nav-toggle{display:flex}.grid2,.sidebar-layout{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.timeline{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}.full{grid-column:auto}.sidebar{position:static}
}

/* =====================================================================
   Humanized redesign — visual layer only. Content, PHP, IDs and data flow
   remain untouched.
   ===================================================================== */
:root{
  --bg:#f4f0e8; --bg-alt:#ebe4d7; --panel:#fffdf9; --panel2:#f7f2e9;
  --text:#26352d; --muted:#6f776f; --muted-dim:#8c9189;
  --line:#e4dccf; --line-strong:#d5c9b9;
  --primary:#2f8a62; --primary-ink:#fffdf9; --primary2:#5f8f7c;
  --amber:#d69a47; --clay:#bd7058; --danger:#c45e5e; --crit:#b94b55;
  --shadow-sm:0 10px 26px rgba(54,48,38,.07); --shadow:0 24px 65px rgba(54,48,38,.10);
  --radius-lg:18px; --radius:14px; --radius-sm:10px;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
body{background:linear-gradient(180deg,#f8f5ef 0,#f3eee5 100%);color:var(--text);}
body::before{opacity:.022;mix-blend-mode:multiply;}
body::after{content:"";position:fixed;right:-180px;bottom:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(68,133,96,.08),transparent 67%);pointer-events:none;}
.nav{background:rgba(248,245,239,.88);border-bottom:1px solid rgba(85,75,60,.10);backdrop-filter:blur(16px)}
.nav-inner{height:78px}.brand{font-size:18px;letter-spacing:-.02em}.brand img{width:40px;height:40px;filter:none}.brand span{color:var(--primary)!important}
.links{gap:18px;color:#667066;font-size:13px}.links a{padding:9px 3px}.links a:hover,.links a.active{color:#244f3c}.links a:after{bottom:3px;height:1.5px;background:#bf7c49}
.btn{padding:11px 18px;border-radius:11px;background:#2f8a62;color:#fff;box-shadow:0 8px 20px rgba(47,138,98,.15)}
.btn:hover{background:#277653;box-shadow:0 12px 24px rgba(47,138,98,.18);transform:translateY(-1px)}
.btn.secondary{background:transparent;color:#345243;border-color:#cfc5b7}.btn.secondary:hover{background:#f1ece3}
.links.open{background:#f8f5ef;border-bottom-color:var(--line)}
h1,h2,h3{font-weight:600;color:#24352c}h1{letter-spacing:-.035em;line-height:1.02}h2{letter-spacing:-.025em}h3{letter-spacing:-.015em}
.lead{font-size:17px;line-height:1.75;color:#687168}.eyebrow{color:#3f6f57;background:#edf5ef;border-color:#d5e7da;border-radius:7px;padding:7px 10px;letter-spacing:.03em}.eyebrow.dot:before{box-shadow:none;background:#c98a48}
.hero{padding:86px 0 68px}.grid2{gap:62px}.actions{margin-top:28px}.hero .muted{font-size:12px!important;color:#80867f}
.hero-illustration{padding:0;border:0;border-radius:22px;box-shadow:0 20px 50px rgba(58,48,36,.13);background:#e6ece2;transform:rotate(.25deg)}
.hero-illustration .scene{height:370px;border-radius:22px;background:linear-gradient(145deg,#e8efe8,#d9e5d7)}
.hero-illustration .scene:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 43%,rgba(255,255,255,.38) 43.2% 43.8%,transparent 44% 100%);opacity:.7}
.hero-illustration .field{height:53%;background:linear-gradient(180deg,rgba(77,125,76,.06),rgba(65,120,76,.24));clip-path:polygon(0 24%,10% 15%,20% 28%,30% 17%,40% 30%,50% 18%,60% 31%,70% 20%,80% 31%,90% 19%,100% 28%,100% 100%,0 100%)}
.hero-illustration .pulse svg polyline{stroke:#3e8763!important;stroke-width:1.5}.hero-illustration .badge-float{top:18px;right:18px;background:rgba(255,253,249,.8);border-color:rgba(75,90,72,.12);color:#557060;border-radius:10px;box-shadow:0 7px 18px rgba(58,58,45,.08)}
.hero-illustration .center-mark{background:radial-gradient(circle at 50% 47%,rgba(255,253,249,.78),transparent 32%)}.hero-illustration .center-mark img{filter:none;width:70px;height:70px}.hero-illustration .center-mark b{color:#315a44;font-size:15px}.node{background:#d79a50;box-shadow:none;width:7px;height:7px}
section{padding:76px 0}.section-head{margin-bottom:26px}.section-head .btn{margin-bottom:3px}
.cards{gap:16px}.card{background:rgba(255,253,249,.88);border-color:#e6ded2;border-radius:16px;box-shadow:0 8px 25px rgba(67,56,42,.045);padding:25px}.card:hover{border-color:#d8cdbc;transform:translateY(-2px);box-shadow:0 16px 34px rgba(67,56,42,.08)}
.icon-badge{width:43px;height:43px;border-radius:12px;background:#eef4ed;border-color:#dce9dc}.icon-badge svg{stroke:#397957!important}
.stat{position:relative;overflow:hidden}.stat:after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:#d4a05d}.stat:nth-child(2):after{background:#739b83}.stat:nth-child(3):after{background:#c97962}.stat:nth-child(4):after{background:#8b9b7c}.stat .value{font-size:36px;color:#2d4b3b}
.badge{border-radius:7px;padding:5px 9px;font-size:10px}.badge.green{background:#edf6ef;color:#3b7957}.badge.yellow{background:#fbf2e2;color:#a6752f}.badge.red{background:#faece9;color:#ad6257}.badge.crit{background:#f8e6e8;color:#a74e58;border:0}
.progress{height:7px;background:#eee8df}.progress span{background:linear-gradient(90deg,#7fa58c,#3d8964)}
.chart{gap:8px}.bar{background:linear-gradient(to top,#5d9576,#a8c9ad);border-radius:6px 6px 2px 2px}
.table-wrap{border-color:#e6ded2;border-radius:12px}thead th{background:#f6f2eb;color:#5d675f}th,td{border-bottom-color:#eee8df;color:#3d493f}tbody tr:hover{background:#faf7f1}
textarea,input,select{background:#fffdf9;color:#344038;border-color:#ded6ca;border-radius:10px}textarea:focus,input:focus,select:focus{border-color:#72a187;box-shadow:0 0 0 3px rgba(78,142,103,.10)}
.result{background:#f0f7f0;border-color:#d7e7d7}.alert{background:#fbf3e6;border-color:#edd9b5;color:#8b6a38}.alert.danger{background:#faece9;border-color:#efcbc5;color:#9b574f}.alert.info{background:#edf5f4;border-color:#cfe1df;color:#51706f}
.keyword-chip{background:#f5f1ea;border-color:#e6ded2;color:#667066}.explanation-box{background:#f7f5ef;border-left-color:#709e8a;color:#4d5a51}.step{background:#faf8f3;border-color:#e7dfd4;border-radius:12px}.step b{color:#4f8066}.empty-state{background:#fffdf9}.footer{background:#efe9df;border-top-color:#ddd4c7;color:#7a8078}
.page-head{padding:64px 0 30px}.page-head h1{margin:13px 0}.page-head p{color:#697269}
.tabs{background:#f0ece5;border-color:#e0d8cc;border-radius:11px;padding:4px}.tab-btn{border-radius:8px}.tab-btn.active{background:#fffdf9;color:#2f7654;box-shadow:0 2px 8px rgba(50,50,40,.08)}
.dropzone{border-color:#d7cfc2;background:#fbf9f5}.dropzone:hover,.dropzone.drag{border-color:#6e9b80;background:#f1f7f1}.file-chip{background:#edf6ef;border-color:#d7e8da;color:#427458}
.engine-status{background:#faf8f4;border-color:#e2d9cd;color:#687168}.engine-status.ok .dot{background:#4d956d;box-shadow:none}.engine-status.error .dot{background:#bf5c5c;box-shadow:none}
code{background:#eee8df;color:#536057}
@media(max-width:850px){.nav-inner{height:70px}.links.open{top:70px}.hero{padding:55px 0 38px}.hero-illustration .scene{height:300px}.page-head{padding-top:44px}section{padding:52px 0}}
@media(max-width:560px){.container{width:min(92%,1180px)}.brand{font-size:16px}.brand img{width:34px;height:34px}.nav .btn{display:none}h1{font-size:40px}.hero-illustration .scene{height:270px}.stat-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}}
