/* ===================================================
   SISTEMA PESKIZA NASIONÁL – TIMOR-LESTE
   assets/css/style.css
   =================================================== */
:root {
  --red:    #c0392b;
  --yellow: #f39c12;
  --black:  #1a1a2e;
  --dark:   #16213e;
  --blue:   #0f3460;
  --teal:   #1a8f7a;
  --light:  #f4f6f9;
  --white:  #ffffff;
  --text:   #2d3436;
  --muted:  #636e72;
  --border: #dfe6e9;
  --success:#27ae60;
  --warning:#e67e22;
  --danger: #e74c3c;
  --shadow: 0 4px 20px rgba(0,0,0,.1);
  --radius: 12px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;color:var(--text);background:var(--light);line-height:1.6}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}

/* ── LAYOUT ── */
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* ── HERO / HEADER ── */
.hero{background:linear-gradient(135deg,var(--black),var(--blue));color:#fff;padding:0}
.hero-inner{max-width:1200px;margin:0 auto;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.hero-logo{display:flex;align-items:center;gap:14px}
.hero-logo img{height:56px;border-radius:6px}
.hero-brand{display:flex;flex-direction:column}
.brand-top{font-size:.65rem;opacity:.8;letter-spacing:.5px;text-transform:uppercase}
.brand-main{font-size:1.3rem;font-weight:700;letter-spacing:.5px}
.brand-sub{font-size:.72rem;opacity:.75}
.hero-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hero-nav a{color:#fff;padding:7px 16px;border-radius:6px;font-size:.85rem;transition:.2s}
.hero-nav a:hover{background:rgba(255,255,255,.15);text-decoration:none}
.btn-nav-start{background:var(--teal)!important;font-weight:600}
.btn-nav-start:hover{background:#0d6b5a!important}
.btn-nav-admin{background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.3)}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:8px;border:none;cursor:pointer;font-size:.9rem;font-weight:600;transition:.2s;text-decoration:none}
.btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.2)}
.btn-primary{background:var(--teal);color:#fff}
.btn-primary:hover{background:#0d6b5a;color:#fff}
.btn-secondary{background:var(--blue);color:#fff}
.btn-secondary:hover{background:#0a2747;color:#fff}
.btn-danger{background:var(--danger);color:#fff}
.btn-warning{background:var(--warning);color:#fff}
.btn-success{background:var(--success);color:#fff}
.btn-light{background:#fff;color:var(--text);border:1px solid var(--border)}
.btn-sm{padding:6px 14px;font-size:.8rem}
.btn-lg{padding:14px 32px;font-size:1rem}
.btn-primary-xl{display:inline-flex;align-items:center;gap:10px;background:var(--teal);color:#fff;padding:16px 40px;border-radius:50px;font-size:1.1rem;font-weight:700;transition:.2s;margin-top:16px}
.btn-primary-xl:hover{background:#0d6b5a;color:#fff;transform:scale(1.03);text-decoration:none}

/* ── HOME PAGE ── */
.banner-section{padding:60px 0}
.banner-card{background:#fff;border-radius:var(--radius);padding:48px;box-shadow:var(--shadow);text-align:center}
.banner-card h1{font-size:2rem;color:var(--black);margin-bottom:12px}
.banner-card p{color:var(--muted);font-size:1.05rem;max-width:600px;margin:0 auto 20px}
.banner-badges{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:4px}
.banner-badges span{background:var(--light);padding:8px 18px;border-radius:50px;font-size:.85rem;color:var(--text)}

.stats-section{padding:20px 0 60px}
.section-title{text-align:center;font-size:1.5rem;color:var(--black);margin-bottom:30px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.stat-card{background:#fff;border-radius:var(--radius);padding:28px 20px;text-align:center;box-shadow:var(--shadow)}
.stat-icon{font-size:2rem;margin-bottom:10px;color:var(--blue)}
.stat-icon.male{color:#2980b9}
.stat-icon.female{color:#8e44ad}
.stat-val{font-size:2rem;font-weight:700;color:var(--black)}
.stat-lbl{font-size:.85rem;color:var(--muted);margin-top:4px}

.info-section{padding:0 0 60px}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.info-card{background:#fff;border-radius:var(--radius);padding:32px 24px;box-shadow:var(--shadow)}
.info-card>i{font-size:2rem;color:var(--teal);margin-bottom:14px;display:block}
.info-card h3{font-size:1.1rem;margin-bottom:10px;color:var(--black)}
.info-card p,.info-card li{color:var(--muted);font-size:.9rem}
.info-card ul{padding-left:20px}

/* ── QUESTIONNAIRE ── */
.quiz-wrap{max-width:820px;margin:0 auto;padding:30px 20px}
.quiz-header{background:linear-gradient(135deg,var(--black),var(--blue));color:#fff;padding:24px 32px;border-radius:var(--radius);margin-bottom:24px}
.quiz-header h2{font-size:1.3rem;margin-bottom:6px}
.quiz-header p{font-size:.85rem;opacity:.8}
.quiz-progress-bar{background:rgba(255,255,255,.2);height:8px;border-radius:4px;margin-top:14px;overflow:hidden}
.quiz-progress-fill{background:var(--yellow);height:100%;border-radius:4px;transition:.4s}

.section-block{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);margin-bottom:20px}
.section-block h3{font-size:1.05rem;color:var(--blue);border-bottom:2px solid var(--teal);padding-bottom:10px;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.section-block h3 .sec-badge{background:var(--teal);color:#fff;padding:3px 10px;border-radius:50px;font-size:.75rem}

.question-item{margin-bottom:22px}
.question-item label.q-label{display:block;font-weight:600;color:var(--black);margin-bottom:10px;font-size:.95rem}
.q-label .q-code{font-size:.75rem;color:var(--muted);font-weight:400;margin-left:6px}
.q-label .q-pts{font-size:.72rem;background:var(--yellow);color:#fff;padding:2px 7px;border-radius:50px;margin-left:6px;font-weight:600}

.radio-group,.checkbox-group{display:flex;flex-direction:column;gap:8px}
.radio-option,.checkbox-option{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;border:1.5px solid var(--border);cursor:pointer;transition:.15s}
.radio-option:hover,.checkbox-option:hover{border-color:var(--teal);background:#f0faf8}
.radio-option input,.checkbox-option input{accent-color:var(--teal);width:16px;height:16px}
.radio-option.selected,.checkbox-option.selected{border-color:var(--teal);background:#e8f7f4}

.scale-group{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}
.scale-btn{width:48px;height:48px;border-radius:50%;border:2px solid var(--border);background:#fff;cursor:pointer;font-weight:700;font-size:1rem;transition:.15s;display:flex;align-items:center;justify-content:center}
.scale-btn:hover{border-color:var(--teal);color:var(--teal)}
.scale-btn.active{background:var(--teal);border-color:var(--teal);color:#fff}
.scale-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:6px}

.table-check{width:100%;border-collapse:collapse;font-size:.88rem}
.table-check th{background:var(--blue);color:#fff;padding:10px 12px;text-align:left}
.table-check td{padding:9px 12px;border-bottom:1px solid var(--border)}
.table-check tr:hover td{background:#f8fcfb}
.table-check input[type=radio],.table-check input[type=checkbox]{accent-color:var(--teal)}

textarea.q-text{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:12px;font-size:.9rem;resize:vertical;min-height:80px;font-family:inherit;transition:.15s}
textarea.q-text:focus{outline:none;border-color:var(--teal)}
input.q-input{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:10px 14px;font-size:.9rem;font-family:inherit;transition:.15s}
input.q-input:focus{outline:none;border-color:var(--teal)}
select.q-select{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:10px 14px;font-size:.9rem;background:#fff;transition:.15s}
select.q-select:focus{outline:none;border-color:var(--teal)}

.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.profile-grid{grid-template-columns:1fr}}

.gps-box{background:#f0faf8;border:1.5px dashed var(--teal);border-radius:8px;padding:16px;display:flex;align-items:center;gap:14px;margin-top:8px}
.gps-box i{font-size:1.5rem;color:var(--teal)}
.gps-coords{font-size:.85rem;color:var(--text)}
.gps-coords span{display:block;color:var(--muted);font-size:.78rem}
.btn-gps{background:var(--teal);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.82rem;white-space:nowrap}

.quiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
.quiz-submit{background:var(--success);color:#fff;border:none;padding:14px 40px;border-radius:50px;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:10px;transition:.2s}
.quiz-submit:hover{background:#1e8449;transform:translateY(-1px)}

/* ── ADMIN LAYOUT ── */
.admin-body{display:flex;min-height:100vh;background:var(--light)}
.sidebar{width:260px;background:var(--black);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100%;z-index:100;transition:.3s}
.sidebar-brand{padding:20px 22px;border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar-brand h2{font-size:1rem;color:#fff}
.sidebar-brand p{font-size:.72rem;opacity:.6}
.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}
.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:12px 22px;color:rgba(255,255,255,.75);font-size:.88rem;transition:.15s;border-left:3px solid transparent}
.sidebar-nav a:hover,.sidebar-nav a.active{color:#fff;background:rgba(255,255,255,.08);border-left-color:var(--teal);text-decoration:none}
.sidebar-nav a i{width:18px;text-align:center}
.sidebar-divider{font-size:.68rem;letter-spacing:1.2px;text-transform:uppercase;color:rgba(255,255,255,.35);padding:14px 22px 4px}
.sidebar-user{padding:16px 22px;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem;color:rgba(255,255,255,.6)}

.main-content{margin-left:260px;flex:1;display:flex;flex-direction:column}
.top-bar{background:#fff;border-bottom:1px solid var(--border);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px rgba(0,0,0,.05);position:sticky;top:0;z-index:50}
.top-bar h1{font-size:1.15rem;color:var(--black)}
.top-bar-right{display:flex;align-items:center;gap:12px}
.page-content{padding:28px;flex:1}

/* ── ADMIN CARDS ── */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:28px}
.dash-card{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);display:flex;align-items:center;gap:18px}
.dash-card-icon{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;flex-shrink:0}
.dash-card-icon.blue{background:linear-gradient(135deg,#2980b9,#1a5276)}
.dash-card-icon.green{background:linear-gradient(135deg,#27ae60,#1e8449)}
.dash-card-icon.yellow{background:linear-gradient(135deg,#f39c12,#ca6f1e)}
.dash-card-icon.red{background:linear-gradient(135deg,#e74c3c,#a93226)}
.dash-card-icon.teal{background:linear-gradient(135deg,var(--teal),#0d6b5a)}
.dash-card-val{font-size:1.8rem;font-weight:700;color:var(--black)}
.dash-card-lbl{font-size:.82rem;color:var(--muted)}

/* ── TABLES ── */
.data-table-wrap{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.data-table-toolbar{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.data-table-toolbar h3{font-size:1rem;color:var(--black)}
.search-box{display:flex;align-items:center;gap:8px;background:var(--light);border:1px solid var(--border);border-radius:8px;padding:6px 14px}
.search-box input{border:none;background:transparent;outline:none;font-size:.88rem;width:200px}
.data-table{width:100%;border-collapse:collapse;font-size:.87rem}
.data-table th{background:var(--black);color:#fff;padding:12px 14px;text-align:left;font-weight:600;white-space:nowrap}
.data-table td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.data-table tr:hover td{background:#f8fcfb}
.badge{display:inline-block;padding:3px 10px;border-radius:50px;font-size:.75rem;font-weight:600}
.badge-success{background:#d5f4e6;color:#1e8449}
.badge-warning{background:#fef5dc;color:#ca6f1e}
.badge-danger{background:#fde8e8;color:#a93226}
.badge-info{background:#d6eaf8;color:#1a5276}
.badge-secondary{background:#eaecee;color:#636e72}

/* ── FORMS ── */
.form-card{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:.88rem;font-weight:600;color:var(--text);margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit;transition:.15s;background:#fff}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(26,143,122,.12)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.form-row{grid-template-columns:1fr}}
.form-hint{font-size:.78rem;color:var(--muted);margin-top:4px}
.required{color:var(--danger);margin-left:2px}

/* ── ALERTS ── */
.alert{padding:12px 18px;border-radius:8px;margin-bottom:16px;font-size:.9rem;display:flex;align-items:center;gap:10px}
.alert-success{background:#d5f4e6;color:#1e8449;border:1px solid #a9dfbf}
.alert-danger{background:#fde8e8;color:#a93226;border:1px solid #f1948a}
.alert-warning{background:#fef5dc;color:#ca6f1e;border:1px solid #f0d084}
.alert-info{background:#d6eaf8;color:#1a5276;border:1px solid #85c1e9}

/* ── LOGIN ── */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--black),var(--blue));padding:20px}
.login-card{background:#fff;border-radius:var(--radius);padding:44px 40px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-card .login-logo{text-align:center;margin-bottom:28px}
.login-card .login-logo h2{font-size:1.3rem;color:var(--black);margin-top:12px}
.login-card .login-logo p{font-size:.82rem;color:var(--muted)}

/* ── CHARTS ── */
.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;margin-bottom:24px}
.chart-card{background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.chart-card h4{font-size:.95rem;color:var(--black);margin-bottom:16px;display:flex;align-items:center;gap:8px}

/* ── RESPONDENTE DETAIL ── */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:24px}
.detail-card{background:#fff;border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.detail-card h4{font-size:.9rem;color:var(--blue);border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:14px}
.detail-row{display:flex;gap:10px;margin-bottom:8px;font-size:.875rem}
.detail-row span:first-child{color:var(--muted);width:140px;flex-shrink:0}
.detail-row span:last-child{font-weight:600;color:var(--black)}

/* ── FIVE-FINGER MESSAGE ── */
.five-finger-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.five-finger-card{background:#fff;border-radius:var(--radius);padding:48px 40px;max-width:520px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.hand-emoji{font-size:5rem;margin-bottom:16px;display:block;animation:wave 1s ease-in-out 3}
@keyframes wave{0%,100%{transform:rotate(0deg)}25%{transform:rotate(-20deg)}75%{transform:rotate(20deg)}}
.five-finger-card h2{font-size:1.6rem;color:var(--black);margin-bottom:12px}
.five-finger-card p{color:var(--muted);margin-bottom:8px;font-size:.95rem}
.five-finger-card .big-code{font-size:2.5rem;font-weight:700;color:var(--teal);letter-spacing:4px;margin:16px 0;font-family:monospace}

/* ── VERIFICATION CARD ── */
.verify-card{background:#fff;border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);border-left:4px solid var(--warning)}
.verify-card h3{color:var(--warning);margin-bottom:16px}
.verify-check{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px;padding:12px;border:1px solid var(--border);border-radius:8px}
.verify-check input{margin-top:3px;accent-color:var(--teal)}

/* ── PAGINATION ── */
.pagination{display:flex;gap:6px;justify-content:center;margin-top:20px}
.pagination a,.pagination span{padding:7px 13px;border-radius:7px;border:1px solid var(--border);font-size:.85rem;transition:.15s}
.pagination a:hover{background:var(--teal);color:#fff;border-color:var(--teal);text-decoration:none}
.pagination .current{background:var(--teal);color:#fff;border-color:var(--teal)}

/* ── RESPONDENT SCORE CARD ── */
.score-hero{background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;border-radius:var(--radius);padding:28px;margin-bottom:20px;display:flex;align-items:center;gap:28px}
.score-circle{width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.15);border:3px solid rgba(255,255,255,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}
.score-circle .sc-val{font-size:1.8rem;font-weight:700}
.score-circle .sc-max{font-size:.75rem;opacity:.8}
.score-info h3{font-size:1.2rem;margin-bottom:6px}
.score-info p{font-size:.88rem;opacity:.85}

/* ── MAP EMBED ── */
.map-frame{border:none;border-radius:8px;box-shadow:var(--shadow);width:100%;height:300px}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .sidebar{transform:translateX(-260px)}
  .sidebar.open{transform:translateX(0)}
  .main-content{margin-left:0}
}
@media(max-width:600px){
  .dash-grid{grid-template-columns:1fr 1fr}
  .hero-inner{flex-direction:column;text-align:center}
  .quiz-wrap{padding:16px 12px}
  .section-block{padding:18px}
  .login-card{padding:32px 20px}
}

/* ── UTILITY ── */
.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}
.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--muted)}
.fw-bold{font-weight:700}.d-flex{display:flex}.align-center{align-items:center}.gap-2{gap:8px}.flex-wrap{flex-wrap:wrap}
.site-footer{background:var(--black);color:rgba(255,255,255,.5);text-align:center;padding:24px;font-size:.82rem;margin-top:40px}
.site-footer a{color:rgba(255,255,255,.6)}
.hidden{display:none!important}
.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
