*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Segoe UI',sans-serif;
}

body{
    background:#f6f8f7;
    color:#222;
    line-height:1.6;
}

/* NAVBAR */

.navbar{
    background:#fff;
    height:90px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 15px rgba(0,0,0,.05);
    position:sticky;
    top:0;
    z-index:999;
}

.logo{
    font-size:38px;
    font-weight:700;
    color:#1f5c43;
}

/* HERO */

.hero{
    min-height:700px;

    background:
    linear-gradient(
        rgba(0,0,0,.60),
        rgba(0,0,0,.60)
    ),
    url("/static/css/img/herbal-bg.jpg");

    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;
}

.hero-content{
    color:white;
    max-width:900px;
    padding:20px;
}

.hero-content h1{
    font-size:58px;
    font-weight:800;
    line-height:1.2;
    margin-bottom:25px;
}

.hero-content p{
    font-size:22px;
    max-width:750px;
    margin:auto;
    opacity:.95;
}

/* SEARCH */

.search-section{
    margin-top:-110px;
    position:relative;
    z-index:100;
    padding:0 20px;
}

.search-card{
    background:#fff;

    max-width:1000px;
    margin:auto;

    padding:60px;

    border-radius:30px;

    border:1px solid #e9ecef;

    box-shadow:
    0 15px 40px rgba(0,0,0,.08);
}

.search-card h2{
    text-align:center;

    color:#114b36;

    font-size:26px;

    font-weight:700;

    margin-bottom:40px;
}

.mb-3{
    margin-bottom:28px;
}

.form-label{
    display:block;

    margin-bottom:10px;

    font-size:20px;

    font-weight:700;

    color:#2d3748;
}

.form-control,
.form-select{
    width:100%;

    padding:18px 22px;

    border:2px solid #dfe6e9;

    border-radius:16px;

    font-size:18px;

    background:#fff;

    transition:.3s;
}

/* Dropdown modern */

.form-select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;

    padding-right:55px;

    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23666' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");

    background-repeat:no-repeat;

    background-position:right 20px center;
}

.form-control::placeholder{
    color:#94a3b8;
    font-size:18px;
}

.form-control:focus,
.form-select:focus{
    outline:none;

    border-color:#2f855a;

    box-shadow:
    0 0 0 4px rgba(47,133,90,.12);
}

.form-info{
    font-size:15px;
    color:#6b7280;
    margin-top:10px;
}

.btn-success{
    width:100%;

    background:#2f6f52;
    color:white;

    border:none;

    padding:20px;

    border-radius:18px;

    font-size:22px;
    font-weight:700;

    cursor:pointer;

    transition:.3s;

    box-shadow:
    0 10px 25px rgba(47,111,82,.25);
}

.btn-success:hover{
    background:#245942;
    transform:translateY(-3px);
}

/* WORKFLOW */

.workflow{
    padding:120px 20px;
}

.workflow h2{
    text-align:center;
    color:#1f5c43;
    margin-bottom:60px;
    font-size:42px;
    font-weight:700;
}

.workflow-grid{
    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(250px,1fr));

    gap:25px;
}

.workflow-card{
    background:white;

    padding:35px;

    border-radius:25px;

    box-shadow:
    0 8px 25px rgba(0,0,0,.08);

    min-height:280px;

    transition:.3s;
}

.workflow-card:hover{
    transform:translateY(-8px);
}

.workflow-card span{
    display:block;

    font-size:60px;

    font-weight:800;

    color:#dfe5df;

    margin-bottom:15px;
}

.workflow-card h4{
    color:#1f5c43;

    font-size:24px;

    margin-bottom:15px;
}

.workflow-card p{
    color:#666;
    font-size:17px;
}

/* FOOTER */

.footer{
    background:#1f5c43;
    color:white;
    text-align:center;
    padding:60px 20px;
}

.footer h5{
    font-size:28px;
    margin-bottom:10px;
}

.footer p{
    margin-bottom:10px;
}

.footer small{
    opacity:.8;
}

/* RESPONSIVE */

@media(max-width:768px){

    .hero{
        min-height:550px;
    }

    .hero-content h1{
        font-size:40px;
    }

    .hero-content p{
        font-size:18px;
    }

    .search-card{
        padding:35px;
    }

    .search-card h2{
        font-size:24px;
    }

    .form-label{
        font-size:18px;
    }

    .form-control,
    .form-select{
        font-size:16px;
    }

    .btn-success{
        font-size:18px;
    }

    .workflow h2{
        font-size:32px;
    }
}

.info-icon{
    color:#3b82f6;
    font-size:16px;
    font-weight:bold;
}

/* RESULTS PAGE */

.results-container{
    max-width:1100px;
    margin:60px auto;
    padding:20px;
}

.back-link{
    text-decoration:none;
    color:#555;
    font-size:18px;
}

.results-container h1{
    font-size:60px;
    margin:30px 0;
    color:#1f5c43;
}

.search-summary{
    margin-bottom:20px;
}

.badge{
    background:#4f8a33;
    color:white;
    padding:10px 18px;
    border-radius:20px;
    font-weight:600;
}

.summary-text{
    color:#666;
    margin-bottom:35px;
}

.result-card{
    background:white;
    padding:30px;
    border-radius:20px;
    margin-bottom:25px;

    box-shadow:
    0 5px 15px rgba(0,0,0,.08);
}

.result-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.rank{
    font-size:42px;
    font-weight:700;
    color:#d0d8d0;
}

.category{
    background:#4f8a33;
    color:white;
    padding:6px 12px;
    border-radius:20px;
    margin-left:10px;
}

.similarity-score{
    background:#eef7ee;

    color:#2d5f23;

    padding:8px 14px;

    border-radius:12px;

    font-size:18px;

    font-weight:600;
}

.similarity-score small{
    display:none;
}

.latin-name{
    color:#777;
    font-style:italic;
    margin-bottom:20px;
}

.detail-btn{
    display:block;
    margin-top:20px;

    text-align:center;

    background:#2d5f23;
    color:white;

    padding:15px;

    border-radius:12px;

    text-decoration:none;
}

    margin-bottom:5px;
}

.latin-name{
    font-size:22px;

    color:#777;

    font-style:italic;

    margin-bottom:25px;
}

.footer-content{
    max-width:1200px;
    margin:auto;

    display:flex;
    justify-content:space-between;
    align-items:center;

    gap:20px;
    flex-wrap:wrap;
}

.detail-wrapper{
max-width:900px;
margin:50px auto;
padding:20px;
}

.back-link{
display:inline-block;
margin-bottom:20px;
text-decoration:none;
color:#1f5c43;
font-weight:600;
}

.detail-card{
background:white;
border-radius:20px;
padding:35px;

```
box-shadow:
0 10px 30px rgba(0,0,0,.08);
```

}

.detail-header{
display:flex;
justify-content:space-between;
align-items:flex-start;
}

.detail-header h1{
font-size:42px;
color:#1f5c43;
margin-bottom:8px;
}

.latin-name{
color:#777;
font-style:italic;
margin-bottom:15px;
}

.detail-badges{
display:flex;
gap:10px;
}

.badge-category{
background:#2f6f52;
color:white;
padding:6px 12px;
border-radius:20px;
font-size:14px;
}

.badge-safe{
background:#dff7e5;
color:#1f5c43;
padding:6px 12px;
border-radius:20px;
font-size:14px;
}

.leaf-icon{
font-size:42px;
}

.detail-section{
padding:10px 0;
}

.detail-section h3{
margin-bottom:10px;
color:#222;
}

.danger-title{
color:#dc3545;
}

.warning-box{
background:#f7f7f7;
border-radius:12px;
padding:15px;
color:#666;
font-size:14px;
}

/* EMPTY RESULT */

.empty-result{
    background:white;

    max-width:1100px;
    margin:30px auto;

    padding:70px 40px;

    border-radius:20px;

    text-align:center;

    box-shadow:
    0 8px 25px rgba(0,0,0,.08);
}

.empty-icon{
    font-size:70px;
    margin-bottom:20px;
}

.empty-result h2{
    color:#1f5c43;
    font-size:32px;
    margin-bottom:15px;
}

.empty-result p{
    color:#777;
    font-size:18px;
    margin-bottom:30px;
}

.empty-btn{
    display:inline-block;

    background:#2f6f52;
    color:white;

    text-decoration:none;

    padding:14px 28px;

    border-radius:12px;

    font-weight:600;

    transition:.3s;
}

.empty-btn:hover{
    background:#245942;
}