:root {
    --bg: #0d1117;
    --bg2: #161b22;
    --bg3: #21262d;
    --bg3h: #2d333b;
    --border: rgba(240,246,252,.1);
    --border2: rgba(240,246,252,.2);
    --amber: #f59e0b;
    --amber-l: #fcd34d;
    --amber-d: #d97706;
    --amber-g: rgba(245,158,11,.15);
    --green: #10b981;
    --green-l: #34d399;
    --green-g: rgba(16,185,129,.15);
    --red: #ef4444;
    --red-g: rgba(239,68,68,.15);
    --blue: #3b82f6;
    --blue-g: rgba(59,130,246,.15);
    --t1: #e6edf3;
    --t2: #8b949e;
    --t3: #484f58;
    --r: 12px;
    --rs: 8px;
    --shadow: 0 4px 24px rgba(0,0,0,.5);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px;scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,sans-serif;background:var(--bg);color:var(--t1);min-height:100vh;line-height:1.65}

/* LOGIN */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at 50% 0%,rgba(245,158,11,.12) 0%,var(--bg) 60%);overflow:hidden}
.login-bg{position:fixed;inset:0;pointer-events:none;z-index:0}
.hex-grid{position:absolute;inset:0}
.hex{position:absolute;left:var(--x);top:var(--y);width:44px;height:50px;background:rgba(245,158,11,.04);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);animation:hexF var(--d) ease-in-out infinite alternate}
@keyframes hexF{from{transform:translateY(0) rotate(0deg);opacity:.2}to{transform:translateY(-18px) rotate(8deg);opacity:.7}}
.login-wrapper{position:relative;z-index:1;width:100%;max-width:440px;padding:1rem}
.login-card{background:var(--bg2);border:1px solid var(--border);border-radius:18px;padding:2.75rem 2.25rem;box-shadow:var(--shadow),0 0 60px rgba(245,158,11,.06)}
.login-logo{text-align:center;margin-bottom:2.25rem}
.bee-icon{font-size:3.75rem;display:block;margin-bottom:.5rem;animation:beeP 2.5s ease-in-out infinite}
@keyframes beeP{0%,100%{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.1) rotate(4deg)}}
.login-logo h1{font-size:2.25rem;font-weight:800;background:linear-gradient(135deg,var(--amber),var(--amber-l));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:3px}
.login-logo p{color:var(--t2);font-size:.95rem;margin-top:.3rem}
.login-form .form-group{margin-bottom:1.35rem}
.login-form label{display:block;font-size:1rem;color:var(--t2);margin-bottom:.45rem;font-weight:600}
.login-form input{width:100%;background:var(--bg3);border:2px solid var(--border);border-radius:var(--rs);padding:.85rem 1.1rem;color:var(--t1);font-size:1.05rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;outline:none}
.login-form input:focus{border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-g)}
.login-form input::placeholder{color:var(--t3)}
.btn-login{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background:linear-gradient(135deg,var(--amber),var(--amber-d));color:#000;font-weight:800;font-size:1.1rem;font-family:inherit;padding:1rem;border:none;border-radius:var(--rs);cursor:pointer;transition:transform .15s,box-shadow .15s;margin-top:.5rem}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(245,158,11,.45)}
.login-footer{text-align:center;margin-top:1.5rem;color:var(--t3);font-size:.85rem}

/* NAVBAR */
.navbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:.75rem;background:rgba(22,27,34,.92);border-bottom:1px solid var(--border);padding:.85rem 1.75rem;backdrop-filter:blur(16px)}
.nav-brand{display:flex;align-items:center;gap:.5rem;font-size:1.35rem;font-weight:800;background:linear-gradient(135deg,var(--amber),var(--amber-l));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1.5px;margin-right:.75rem;white-space:nowrap}
.nav-bee{font-size:1.5rem;-webkit-text-fill-color:initial}
.nav-links{display:flex;align-items:center;gap:.2rem;flex:1;flex-wrap:wrap}
.nav-link{display:flex;align-items:center;gap:.45rem;padding:.55rem 1rem;border-radius:var(--rs);color:var(--t2);text-decoration:none;font-size:1rem;font-weight:600;transition:all .2s;white-space:nowrap}
.nav-link:hover{background:var(--bg3);color:var(--t1)}
.nav-link.active{background:var(--amber-g);color:var(--amber)}
.nav-admin.active{background:var(--blue-g);color:var(--blue)}
.nav-user{display:flex;align-items:center;gap:.75rem;margin-left:auto}
.nav-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--amber),var(--amber-d));color:#000;font-weight:800;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-user-info{display:flex;flex-direction:column}
.nav-name{font-size:.9rem;font-weight:700;line-height:1.2}
.nav-role{font-size:.72rem;color:var(--amber);font-weight:600}
.btn-logout{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1.5px solid var(--border);border-radius:var(--rs);color:var(--t3);text-decoration:none;font-size:1.1rem;transition:all .2s;flex-shrink:0}
.btn-logout:hover{border-color:var(--red);color:var(--red);background:var(--red-g)}
.nav-toggle{display:none;background:none;border:1.5px solid var(--border);border-radius:6px;color:var(--t1);font-size:1.25rem;padding:.3rem .6rem;cursor:pointer;margin-left:auto}

/* MAIN */
.main-content{max-width:1180px;margin:0 auto;padding:2rem 1.75rem}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}
.page-header h2{font-size:1.9rem;font-weight:800}
.page-header p{color:var(--t2);font-size:1rem;margin-top:.2rem}

/* INFO CARDS */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin-bottom:2rem}
.info-card{display:flex;align-items:center;gap:1.1rem;padding:1.35rem 1.25rem;border-radius:var(--r);border:1.5px solid var(--border);background:var(--bg3);transition:transform .2s,box-shadow .2s}
.info-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.card-verde{border-color:rgba(16,185,129,.35);background:linear-gradient(135deg,var(--bg3),rgba(16,185,129,.06))}
.card-vermelho{border-color:rgba(239,68,68,.35);background:linear-gradient(135deg,var(--bg3),rgba(239,68,68,.06))}
.card-azul{border-color:rgba(59,130,246,.35);background:linear-gradient(135deg,var(--bg3),rgba(59,130,246,.06))}
.info-card-icon{font-size:2.2rem;flex-shrink:0}
.info-card-body{display:flex;flex-direction:column;gap:.15rem}
.info-card-label{font-size:.82rem;color:var(--t2);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.info-card-value{font-size:1.55rem;font-weight:800;line-height:1.2}

/* SECTION */
.section{background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--r);padding:1.75rem;margin-bottom:1.75rem}
.section-title{font-size:1.1rem;font-weight:700;margin-bottom:1.35rem;padding-bottom:.85rem;border-bottom:1px solid var(--border);color:var(--t1)}

/* SEMESTRAL */
.sem-card{background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--r);padding:1.25rem;margin-bottom:1rem}
.sem-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.sem-header h4{font-size:1.1rem;font-weight:700}
.sem-mod{font-size:.88rem;color:var(--t2);font-weight:500;margin-top:.15rem;display:block}
.sem-status{padding:.3rem .85rem;border-radius:999px;font-size:.88rem;font-weight:700}
.status-verde{background:var(--green-g);color:var(--green-l);border:1px solid rgba(16,185,129,.35)}
.status-amarelo{background:rgba(245,158,11,.15);color:var(--amber-l);border:1px solid rgba(245,158,11,.35)}
.status-vermelho{background:var(--red-g);color:var(--red);border:1px solid rgba(239,68,68,.35)}
.status-cinza{background:rgba(139,148,158,.1);color:var(--t2);border:1px solid var(--border)}
.sem-parcelas{display:flex;flex-direction:column;gap:.6rem}
.parcela-row{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;border-radius:var(--rs);flex-wrap:wrap}
.parcela-row.pago{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.25)}
.parcela-row.pendente{background:rgba(239,68,68,.06);border:1px solid rgba(239,68,68,.2)}
.parcela-icon{font-size:1.3rem;flex-shrink:0}
.parcela-desc{font-weight:600;font-size:1rem;flex:1;min-width:120px}
.parcela-valor{font-weight:800;font-size:1.1rem;color:var(--amber)}
.parcela-data{font-size:.88rem;color:var(--t2);flex:1;min-width:140px}
.parcela-action{margin-left:auto}

/* EVENTS */
.events-list{display:flex;flex-direction:column;gap:.85rem}
.event-card{display:flex;align-items:flex-start;gap:1.1rem;padding:1.1rem 1.25rem;background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--rs);border-left:4px solid var(--amber);transition:background .2s}
.event-card:hover{background:var(--bg3h)}
.event-date{display:flex;flex-direction:column;align-items:center;background:var(--amber-g);border:1px solid rgba(245,158,11,.3);border-radius:var(--rs);padding:.6rem .85rem;min-width:60px}
.event-day{font-size:1.6rem;font-weight:800;line-height:1;color:var(--amber)}
.event-month{font-size:.72rem;font-weight:800;color:var(--amber);letter-spacing:.05em;text-transform:uppercase}
.event-info{flex:1}
.event-info h4{font-weight:700;font-size:1rem;margin-bottom:.3rem}
.event-info p{color:var(--t2);font-size:.92rem}
.event-local{display:inline-block;margin-top:.45rem;font-size:.85rem;color:var(--t3)}

/* DOCUMENTS */
.form-upload{display:flex;flex-direction:column;gap:1.1rem}
.docs-list{display:flex;flex-direction:column;gap:.85rem}
.doc-card{display:flex;align-items:center;gap:1.1rem;padding:1.1rem 1.25rem;background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--rs);transition:background .2s;flex-wrap:wrap}
.doc-card:hover{background:var(--bg3h)}
.doc-icon-wrap{font-size:2.25rem;flex-shrink:0}
.doc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}
.doc-info strong{font-size:1.05rem;font-weight:700}
.doc-owner{font-size:.88rem;color:var(--amber)}
.doc-meta{font-size:.85rem;color:var(--t3)}
.doc-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.btn-doc{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .9rem;border:1.5px solid var(--border);border-radius:var(--rs);color:var(--t2);text-decoration:none;font-size:.9rem;font-weight:600;transition:all .2s;cursor:pointer;background:transparent;font-family:inherit}
.btn-doc:hover{border-color:var(--amber);color:var(--amber)}
.btn-doc-red:hover{border-color:var(--red);color:var(--red);background:var(--red-g)}
.empty-box{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem;text-align:center;color:var(--t2)}
.empty-icon{font-size:3rem}
.empty-box p{font-size:1rem}
.empty-state{text-align:center;color:var(--t3);padding:2rem;font-size:.95rem}

/* PRODUCTS */
.filtros{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem}
.filtro-btn{padding:.55rem 1.25rem;background:var(--bg2);border:1.5px solid var(--border);border-radius:999px;color:var(--t2);text-decoration:none;font-size:.95rem;font-weight:600;transition:all .2s}
.filtro-btn:hover{border-color:var(--amber);color:var(--amber)}
.filtro-btn.ativo{background:var(--amber-g);border-color:rgba(245,158,11,.5);color:var(--amber)}
.produtos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}
.produto-card{background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.produto-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.produto-img{position:relative;height:200px;background:var(--bg);display:flex;align-items:center;justify-content:center}
.produto-img img{width:100%;height:100%;object-fit:cover}
.produto-img-placeholder{font-size:5rem}
.produto-badge{position:absolute;top:.75rem;right:.75rem;background:rgba(0,0,0,.7);color:var(--t1);font-size:.78rem;font-weight:700;padding:.25rem .65rem;border-radius:999px;backdrop-filter:blur(8px)}
.produto-body{padding:1.1rem 1.25rem;flex:1}
.produto-body h4{font-size:1.1rem;font-weight:700;margin-bottom:.4rem}
.produto-body p{color:var(--t2);font-size:.92rem;line-height:1.5}
.produto-meta{display:block;margin-top:.75rem;font-size:.82rem;color:var(--t3)}
.produto-footer{padding:.75rem 1.25rem;border-top:1px solid var(--border)}
.form-produto{display:flex;flex-direction:column;gap:1rem}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}

/* FILE DROP */
.file-drop{position:relative;border:2px dashed var(--border);border-radius:var(--rs);padding:1.75rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
.file-drop:hover{border-color:var(--amber);background:var(--amber-g)}
.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.file-drop-inner{display:flex;flex-direction:column;gap:.3rem;align-items:center;color:var(--t2);font-size:.95rem;pointer-events:none}
.file-drop-icon{font-size:2rem}
.file-drop-mini{position:relative;border:2px dashed var(--border);border-radius:var(--rs);padding:.7rem 1rem;cursor:pointer;transition:all .2s;font-size:.9rem;color:var(--t2)}
.file-drop-mini:hover{border-color:var(--amber);color:var(--amber)}
.file-drop-mini input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}

/* ADMIN */
.admin-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.75rem}
.tab-btn{padding:.7rem 1.4rem;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--rs);color:var(--t2);font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}
.tab-btn:hover{border-color:var(--amber);color:var(--amber)}
.tab-btn.active{background:var(--amber-g);border-color:rgba(245,158,11,.5);color:var(--amber)}
.tab-content{display:none}
.tab-content.active{display:block}
.table-wrap{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse;font-size:.95rem}
.data-table th{text-align:left;padding:.85rem 1rem;background:var(--bg3);border-bottom:1.5px solid var(--border);color:var(--t2);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.data-table td{padding:.85rem 1rem;border-bottom:1px solid rgba(240,246,252,.04);vertical-align:middle}
.data-table tr:hover td{background:rgba(255,255,255,.02)}
.cell-green{color:var(--green-l);font-weight:700}
.cell-red{color:var(--red);font-weight:700}
.actions-cell{display:flex;gap:.4rem;flex-wrap:wrap}
.assoc-selected{margin-bottom:1.25rem;font-size:1.1rem;color:var(--t2)}
.assoc-selected span{color:var(--amber);font-weight:800}
.contrib-config{background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--rs);padding:1.25rem}
.contrib-config h4{font-size:1rem;font-weight:700;margin-bottom:1rem;color:var(--t2)}
.contrib-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.contrib-item label{display:block;margin-bottom:.6rem;font-weight:700;font-size:.95rem}
.radio-group{display:flex;flex-direction:column;gap:.5rem}
.radio-opt{display:flex;align-items:center;gap:.6rem;padding:.55rem .85rem;border:1.5px solid var(--border);border-radius:var(--rs);cursor:pointer;transition:all .2s;font-size:.95rem}
.radio-opt:hover{border-color:var(--amber);background:var(--amber-g)}
.radio-opt input{accent-color:var(--amber);width:16px;height:16px}
.input-inline{background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--rs);padding:.5rem .85rem;color:var(--t1);font-family:inherit;font-size:.95rem;outline:none}

/* MAP */
.map-layout{display:grid;grid-template-columns:1fr 360px;gap:1.5rem}
#map{height:460px;border-radius:var(--rs);overflow:hidden;border:1.5px solid var(--border)}
.map-hint{margin-top:.75rem;font-size:.9rem;color:var(--t3)}
.location-preview{background:var(--bg3);border:2px dashed var(--border);border-radius:var(--rs);padding:.85rem;font-size:.92rem;color:var(--t2);margin-bottom:1rem;text-align:center}
.apiarios-list{display:flex;flex-direction:column;gap:.5rem;max-height:260px;overflow-y:auto}
.apiario-item{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;background:var(--bg3);border:1.5px solid var(--border);border-radius:var(--rs);cursor:pointer;transition:background .2s}
.apiario-item:hover{background:var(--bg3h)}
.apiario-marker{font-size:1.35rem}
.apiario-info{flex:1;min-width:0}
.apiario-info strong{display:block;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apiario-info small{display:block;color:var(--t3);font-size:.78rem}
.apiario-actions{display:flex;gap:.3rem}

/* FORMS */
.form-group{display:flex;flex-direction:column;gap:.4rem}
.form-group label{font-size:1rem;font-weight:600;color:var(--t2)}
.form-group input,
.form-group textarea,
.form-group select{background:var(--bg3);border:2px solid var(--border);border-radius:var(--rs);padding:.75rem 1rem;color:var(--t1);font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s;outline:none;width:100%}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-g)}
.form-group input::placeholder,
.form-group textarea::placeholder{color:var(--t3)}
.form-group select option{background:var(--bg3)}
.form-group textarea{resize:vertical}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-full{grid-column:1/-1}

/* BUTTONS */
.btn-primary{display:inline-flex;align-items:center;gap:.45rem;padding:.7rem 1.35rem;background:linear-gradient(135deg,var(--amber),var(--amber-d));color:#000;font-weight:800;font-size:.95rem;font-family:inherit;border:none;border-radius:var(--rs);cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s;white-space:nowrap}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(245,158,11,.4)}
.btn-large{padding:.9rem 1.75rem;font-size:1.05rem}
.btn-sm{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.35rem .75rem;background:var(--bg3);border:1.5px solid var(--border);border-radius:6px;color:var(--t2);font-size:.88rem;font-family:inherit;cursor:pointer;text-decoration:none;transition:all .2s;white-space:nowrap}
.btn-sm:hover{border-color:var(--amber);color:var(--amber)}
.btn-sm-red{color:var(--red)}
.btn-sm-red:hover{border-color:var(--red);background:var(--red-g)}
.btn-sm-green:hover{border-color:var(--green);color:var(--green);background:var(--green-g)}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.82rem;font-weight:700}
.badge-green{background:var(--green-g);color:var(--green-l);border:1px solid rgba(16,185,129,.3)}
.badge-red{background:var(--red-g);color:var(--red);border:1px solid rgba(239,68,68,.3)}
.badge-admin{background:var(--blue-g);color:var(--blue);border:1px solid rgba(59,130,246,.3)}
.badge-associado{background:var(--bg3);color:var(--t2);border:1px solid var(--border)}

/* ALERTS */
.alert{padding:1rem 1.1rem;border-radius:var(--rs);margin-bottom:1.75rem;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.6rem}
.alert-success{background:var(--green-g);border:1.5px solid rgba(16,185,129,.35);color:var(--green-l)}
.alert-error{background:var(--red-g);border:1.5px solid rgba(239,68,68,.35);color:var(--red)}

/* SCROLLBAR */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

/* RESPONSIVE */
@media(max-width:900px){
    .map-layout{grid-template-columns:1fr}
    .form-row-3{grid-template-columns:1fr 1fr}
    .contrib-row{grid-template-columns:1fr}
}
@media(max-width:640px){
    html{font-size:16px}
    .navbar{padding:.65rem 1rem;flex-wrap:wrap}
    .nav-toggle{display:block}
    .nav-links{display:none;width:100%;flex-direction:column;gap:.25rem;padding:.5rem 0;order:10}
    .nav-links.open{display:flex}
    .nav-link{font-size:1.05rem;padding:.65rem 1rem}
    .main-content{padding:1.25rem 1rem}
    .form-grid{grid-template-columns:1fr}
    .form-row-3{grid-template-columns:1fr}
    .produtos-grid{grid-template-columns:1fr}
    .parcela-row{flex-wrap:wrap}
    .data-table th,.data-table td{padding:.65rem .75rem;font-size:.88rem}
}
