/* ═══════════════════════════════════════════════════════════
   APTIDÃO OCUPACIONAL — Design System v3
   ═══════════════════════════════════════════════════════════ */

:root {
    --bg-primary: #0a0e17;
    --bg-secondary: #111827;
    --bg-card: #1a2234;
    --bg-input: #1e293b;
    --bg-hover: #243044;

    --accent: #3b82f6;
    --accent-glow: rgba(59,130,246,.25);
    --accent-dark: #2563eb;

    --green: #22c55e;
    --green-glow: rgba(34,197,94,.15);
    --red: #ef4444;
    --red-glow: rgba(239,68,68,.15);
    --yellow: #f59e0b;
    --purple: #8b5cf6;

    --text-primary: #f1f5f9;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;

    --border: #1e293b;
    --border-light: #334155;
    --radius: 12px;
    --radius-sm: 8px;
    --sidebar-width: 240px;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
    font-family:'Inter',system-ui,sans-serif;
    background:var(--bg-primary);
    color:var(--text-primary);
    display:flex;
    height:100vh;
    overflow:hidden;
}

/* ─── LOGIN ──────────────────────────────────────────────── */
.login-body {
    display:flex; align-items:center; justify-content:center; min-height:100vh;
    background:radial-gradient(ellipse at 50% 0%, rgba(59,130,246,.12) 0%, var(--bg-primary) 70%);
}
.login-container { width:100%; max-width:400px; padding:24px; }
.login-card {
    background:var(--bg-card); border:1px solid var(--border-light);
    border-radius:20px; padding:40px 36px; box-shadow:0 24px 64px rgba(0,0,0,.5);
}
.login-logo { text-align:center; margin-bottom:32px; }
.logo-icon-lg {
    width:64px; height:64px;
    background:linear-gradient(135deg,var(--accent),var(--purple));
    border-radius:16px; display:inline-flex; align-items:center; justify-content:center;
    font-size:32px; margin-bottom:16px; box-shadow:0 8px 30px var(--accent-glow);
}
.login-logo h1 { font-size:20px; font-weight:700; }
.login-logo p  { font-size:13px; color:var(--text-muted); margin-top:4px; }
.login-erro {
    background:var(--red-glow); border:1px solid rgba(239,68,68,.3); color:var(--red);
    padding:10px 14px; border-radius:var(--radius-sm); font-size:13px; margin-bottom:16px;
}
.login-form { display:flex; flex-direction:column; gap:16px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label { font-size:12px; font-weight:600; color:var(--text-secondary); text-transform:uppercase; letter-spacing:.5px; }
.form-group input, .form-group select {
    background:var(--bg-input); border:1px solid var(--border);
    border-radius:var(--radius-sm); padding:10px 14px;
    color:var(--text-primary); font-size:14px; font-family:inherit;
    outline:none; transition:border-color .2s;
}
.form-group input:focus, .form-group select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow); }
.btn-login {
    background:linear-gradient(135deg,var(--accent),var(--accent-dark));
    border:none; border-radius:var(--radius-sm); padding:12px; color:#fff;
    font-size:14px; font-weight:600; cursor:pointer; transition:all .2s; margin-top:8px; font-family:inherit;
}
.btn-login:hover { transform:translateY(-1px); box-shadow:0 4px 20px var(--accent-glow); }
.login-hint { text-align:center; font-size:11px; color:var(--text-muted); margin-top:20px; }

/* ─── SIDEBAR ─────────────────────────────────────────────── */
.sidebar {
    width:var(--sidebar-width); background:var(--bg-secondary);
    border-right:1px solid var(--border); display:flex; flex-direction:column;
    flex-shrink:0; z-index:20; transition:transform .3s;
}
.sidebar-header { padding:16px; border-bottom:1px solid var(--border); }
.logo { display:flex; align-items:center; gap:10px; }
.logo-icon {
    width:34px; height:34px;
    background:linear-gradient(135deg,var(--accent),var(--purple));
    border-radius:8px; display:flex; align-items:center; justify-content:center;
    font-size:16px; box-shadow:0 4px 12px var(--accent-glow); flex-shrink:0;
}
.logo h1 { font-size:12px; font-weight:700; line-height:1.2; }
.logo-sub { font-size:11px; color:var(--text-muted); }
.sidebar-actions { padding:10px 12px; border-bottom:1px solid var(--border); }
.btn-nova-consulta {
    width:100%; background:var(--accent); border:none; border-radius:var(--radius-sm);
    padding:9px 14px; color:#fff; font-size:13px; font-weight:600;
    cursor:pointer; transition:all .2s; font-family:inherit;
}
.btn-nova-consulta:hover { background:var(--accent-dark); }
.sidebar-section { padding:12px; flex:1; overflow-y:auto; }
.sidebar-section h3 { font-size:10px; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
.historico-lista { display:flex; flex-direction:column; gap:4px; }
.historico-item {
    padding:8px 10px; background:var(--bg-card); border-radius:var(--radius-sm);
    cursor:pointer; border-left:2px solid transparent; transition:all .15s;
}
.historico-item:hover { background:var(--bg-hover); }
.historico-item.apto   { border-left-color:var(--green); }
.historico-item.inapto { border-left-color:var(--red); }
.hist-pergunta { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:188px; }
.hist-meta { font-size:10px; color:var(--text-muted); margin-top:2px; }
.info-text { font-size:12px; color:var(--text-muted); }
.sidebar-footer { padding:10px 12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:4px; }
.footer-link { font-size:12px; color:var(--text-muted); text-decoration:none; padding:6px 8px; border-radius:6px; transition:all .15s; }
.footer-link:hover { color:var(--text-primary); background:var(--bg-hover); }
.footer-link-logout:hover { color:var(--red); }

/* ─── MAIN + TOPBAR ───────────────────────────────────────── */
.main-content { flex:1; display:flex; flex-direction:column; min-width:0; overflow:hidden; }
.topbar {
    display:flex; align-items:center; gap:12px; padding:10px 20px;
    border-bottom:1px solid var(--border); background:var(--bg-secondary); flex-shrink:0;
}
.btn-menu { display:none; background:none; border:none; color:var(--text-primary); font-size:20px; cursor:pointer; }
.topbar-title { font-size:14px; font-weight:600; flex:1; }
.badge { font-size:11px; padding:4px 10px; border-radius:20px; font-weight:500; }
.badge-online  { background:var(--green-glow); color:var(--green); }
.badge-admin   { background:rgba(139,92,246,.2); color:var(--purple); }
.badge-medico  { background:var(--accent-glow); color:var(--accent); }
.badge-docs    { font-size:11px; color:var(--text-muted); margin-left:auto; }

/* ─── WORKSPACE TWO-PANEL ────────────────────────────────── */
.workspace {
    flex:1; display:grid; grid-template-columns:1fr 1fr;
    overflow:hidden; min-height:0;
}
.panel { display:flex; flex-direction:column; overflow:hidden; border-right:1px solid var(--border); }
.panel:last-child { border-right:none; }
.panel-header {
    padding:12px 16px; border-bottom:1px solid var(--border);
    display:flex; align-items:center; gap:8px; flex-shrink:0; background:var(--bg-secondary);
}
.panel-icon { font-size:16px; }
.panel-header h3 { font-size:13px; font-weight:600; }
.char-count { font-size:11px; color:var(--text-muted); margin-left:auto; }
.panel-body { flex:1; overflow:hidden; display:flex; flex-direction:column; }

/* Caso clínico textarea */
.caso-textarea {
    flex:1; width:100%; height:100%;
    background:var(--bg-primary); border:none; outline:none; resize:none;
    color:var(--text-primary); font-size:14px; font-family:inherit;
    line-height:1.8; padding:20px;
}
.caso-textarea::placeholder { color:var(--text-muted); line-height:2.2; }

/* Documents panel */
.doc-dropzone {
    flex:1; display:flex; align-items:center; justify-content:center;
    border:2px dashed var(--border-light); border-radius:var(--radius);
    margin:16px; transition:all .2s; cursor:pointer; background:rgba(0,0,0,.1);
    min-height:120px;
}
.doc-dropzone:hover, .doc-dropzone.drag-over {
    border-color:var(--accent); background:rgba(59,130,246,.04);
}
.doc-dropzone.has-files { flex:0 0 auto; min-height:80px; margin:12px 16px; }
.dropzone-content { display:flex; flex-direction:column; align-items:center; gap:6px; }
.dropzone-icon { font-size:28px; opacity:.4; }
.dropzone-label { font-size:13px; font-weight:500; color:var(--text-secondary); }
.dropzone-sub { font-size:11px; color:var(--text-muted); }
.btn-browse {
    background:var(--bg-card); border:1px solid var(--border-light);
    color:var(--accent); cursor:pointer; font-size:12px; font-family:inherit;
    padding:7px 18px; border-radius:var(--radius-sm); transition:all .2s; margin-top:4px;
}
.btn-browse:hover { background:var(--bg-hover); border-color:var(--accent); }
.docs-lista { display:flex; flex-direction:column; gap:6px; padding:0 16px 12px; overflow-y:auto; }
.doc-item {
    display:flex; align-items:center; gap:8px; padding:9px 12px;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:var(--radius-sm); animation:slideIn .2s ease;
}
.doc-item-icon { font-size:18px; flex-shrink:0; }
.doc-item-info { flex:1; min-width:0; }
.doc-item-nome { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.doc-item-size { font-size:10px; color:var(--text-muted); margin-top:1px; }
.btn-remover-doc {
    background:none; border:none; color:var(--text-muted); cursor:pointer;
    font-size:14px; padding:3px 7px; border-radius:4px; transition:all .15s;
}
.btn-remover-doc:hover { color:var(--red); background:var(--red-glow); }

/* Action bar */
.action-bar {
    display:flex; align-items:center; gap:16px; padding:12px 20px;
    border-top:1px solid var(--border); background:var(--bg-secondary); flex-shrink:0;
}
.action-hint { flex:1; font-size:12px; color:var(--text-muted); }
.btn-analisar {
    background:linear-gradient(135deg, var(--accent), var(--accent-dark));
    border:none; padding:11px 28px; border-radius:var(--radius-sm);
    cursor:pointer; color:#fff; font-size:14px; font-weight:700;
    font-family:inherit; transition:all .2s; white-space:nowrap;
    box-shadow:0 4px 16px var(--accent-glow); letter-spacing:.3px;
}
.btn-analisar:hover { transform:translateY(-2px); box-shadow:0 6px 24px var(--accent-glow); }
.btn-analisar:disabled { opacity:.4; cursor:not-allowed; transform:none; box-shadow:none; }

/* ─── MODAIS GENÉRICO ────────────────────────────────────── */
.modal-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.7);
    backdrop-filter:blur(6px); display:flex; align-items:center;
    justify-content:center; z-index:200; padding:20px; animation:fadeIn .25s ease;
}
.modal-box {
    background:var(--bg-card); border:1px solid var(--border-light);
    border-radius:16px; display:flex; flex-direction:column;
    overflow:hidden; box-shadow:0 24px 80px rgba(0,0,0,.7);
    animation:slideIn .25s ease; width:100%; max-width:760px; max-height:90vh;
}
.modal-historico { max-width:700px; }
.modal-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 22px; border-bottom:1px solid var(--border); flex-shrink:0;
}
.modal-header h3 { font-size:14px; font-weight:600; }
.modal-header-actions { display:flex; align-items:center; gap:6px; }
.modal-body { flex:1; overflow-y:auto; padding:22px; }
.modal-footer {
    padding:14px 22px; border-top:1px solid var(--border);
    display:flex; align-items:flex-end; gap:10px; flex-shrink:0;
}
.modal-footer-notes { flex-direction:column; gap:12px; }
.modal-footer-btns { display:flex; gap:8px; align-self:flex-end; width:100%; justify-content:flex-end; }

/* Buttons in modal */
.btn-icon {
    background:var(--bg-input); border:1px solid var(--border-light);
    color:var(--text-secondary); padding:6px 14px; border-radius:var(--radius-sm);
    cursor:pointer; font-size:12px; font-family:inherit; transition:all .15s;
}
.btn-icon:hover { color:var(--text-primary); border-color:var(--text-muted); }
.btn-icon.copied { color:var(--green); border-color:var(--green); }
.btn-icon-close { padding:6px 10px; }
.btn-icon-close:hover { color:var(--red); border-color:var(--red); }
.btn-primary-sm {
    background:var(--accent); border:none; padding:8px 16px;
    border-radius:var(--radius-sm); color:#fff; font-size:13px;
    font-weight:600; cursor:pointer; font-family:inherit; transition:all .2s;
}
.btn-primary-sm:hover { background:var(--accent-dark); }
.btn-primary-sm.btn-accent {
    background:linear-gradient(135deg, #8b5cf6, #6d28d9);
}
.btn-primary-sm.btn-accent:hover { opacity:.9; }
.btn-secondary-sm {
    background:none; border:1px solid var(--border-light);
    padding:8px 14px; border-radius:var(--radius-sm); color:var(--text-secondary);
    font-size:13px; cursor:pointer; font-family:inherit; transition:all .2s;
}
.btn-secondary-sm:hover { border-color:var(--text-muted); color:var(--text-primary); }

/* Doctor notes */
.notes-area { display:flex; flex-direction:column; gap:6px; width:100%; }
.notes-label { font-size:11px; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.5px; }
.notes-textarea {
    width:100%; background:var(--bg-input); border:1px solid var(--border);
    border-radius:var(--radius-sm); padding:10px 14px; color:var(--text-primary);
    font-size:13px; font-family:inherit; resize:none; height:72px;
    outline:none; transition:border-color .2s; line-height:1.6;
}
.notes-textarea:focus { border-color:var(--purple); box-shadow:0 0 0 3px rgba(139,92,246,.15); }
.notes-textarea::placeholder { color:var(--text-muted); }

/* ─── PARECER SECTIONS ───────────────────────────────────── */
.decisao-badge {
    display:inline-flex; align-items:center; gap:6px; padding:8px 20px;
    border-radius:20px; font-weight:700; font-size:14px; letter-spacing:.3px;
}
.decisao-apto     { background:var(--green-glow); color:var(--green); border:1px solid rgba(34,197,94,.3); }
.decisao-inapto   { background:var(--red-glow);   color:var(--red);   border:1px solid rgba(239,68,68,.3); }
.decisao-consulta { background:rgba(245,158,11,.1); color:var(--yellow); border:1px solid rgba(245,158,11,.3); }

.parecer-sections { display:flex; flex-direction:column; gap:14px; margin-top:4px; }
.parecer-secao { border-left:2px solid var(--border-light); padding-left:14px; }
.parecer-secao-titulo {
    font-size:10px; font-weight:700; color:var(--text-muted);
    text-transform:uppercase; letter-spacing:1px; margin-bottom:5px;
}
.parecer-secao-corpo {
    font-size:13px; color:var(--text-secondary); line-height:1.8; white-space:pre-wrap;
}
.parecer-secao.secao-decisao {
    border-left-color:var(--accent); background:rgba(59,130,246,.05);
    padding:12px 14px; border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
.parecer-secao.secao-decisao .parecer-secao-corpo { font-weight:600; font-size:14px; color:var(--text-primary); }
.parecer-secao.secao-fundamentacao .parecer-secao-corpo { font-size:12px; font-style:italic; color:var(--text-muted); }
.parecer-fonte { margin-top:16px; padding-top:10px; border-top:1px solid var(--border); font-size:11px; color:var(--text-muted); }

.hist-detalhe { display:flex; flex-direction:column; gap:16px; }
.hist-detalhe-pergunta {
    background:var(--bg-input); border-radius:var(--radius-sm);
    padding:12px 16px; font-size:13px; color:var(--text-secondary);
    border-left:3px solid var(--accent); line-height:1.6; white-space:pre-wrap;
}

/* ─── PIPELINE ────────────────────────────────────────────── */
.pipeline-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.6);
    backdrop-filter:blur(8px); display:flex; align-items:center;
    justify-content:center; z-index:300; animation:fadeIn .3s ease;
}
.pipeline-card {
    background:var(--bg-card); border:1px solid var(--border-light);
    border-radius:16px; padding:32px 40px; min-width:320px;
    box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.pipeline-card h3 { font-size:14px; margin-bottom:24px; text-align:center; }
.pipeline-steps { display:flex; flex-direction:column; gap:10px; }
.pipeline-step { display:flex; align-items:center; gap:12px; padding:8px 10px; border-radius:var(--radius-sm); transition:all .3s; }
.step-dot { width:10px; height:10px; border-radius:50%; background:var(--text-muted); flex-shrink:0; transition:all .3s; }
.step-label { font-size:13px; color:var(--text-secondary); transition:color .3s; }
.pipeline-step.active { background:var(--accent-glow); }
.pipeline-step.active .step-dot { background:var(--accent); box-shadow:0 0 8px var(--accent); animation:pulse 1.2s infinite; }
.pipeline-step.active .step-label { color:var(--accent); font-weight:600; }
.pipeline-step.done .step-dot { background:var(--green); }
.pipeline-step.done .step-label { color:var(--green); }
.pipeline-status { text-align:center; font-size:12px; color:var(--text-muted); margin-top:16px; }

/* ─── ADMIN ───────────────────────────────────────────────── */
.admin-layout { display:flex; flex-direction:column; height:100vh; overflow:hidden; }
.admin-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 28px; background:var(--bg-secondary);
    border-bottom:1px solid var(--border); flex-shrink:0;
}
.admin-logo { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; }
.admin-nav { display:flex; gap:4px; }
.nav-link {
    padding:7px 14px; border-radius:var(--radius-sm); font-size:13px;
    color:var(--text-secondary); text-decoration:none; transition:all .15s;
}
.nav-link:hover, .nav-link.active { background:var(--bg-hover); color:var(--text-primary); }
.nav-logout:hover { color:var(--red); }
.admin-main { flex:1; overflow-y:auto; padding:28px; display:flex; flex-direction:column; gap:28px; }
.admin-section h2 { font-size:15px; font-weight:600; margin-bottom:16px; }
.metrics-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.metric-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); padding:20px; text-align:center; }
.metric-card-green { border-top:3px solid var(--green); }
.metric-card-red   { border-top:3px solid var(--red); }
.metric-card-blue  { border-top:3px solid var(--accent); }
.metric-num { font-size:28px; font-weight:700; color:var(--text-primary); }
.metric-desc { font-size:12px; color:var(--text-muted); margin-top:4px; }
.admin-table-wrapper { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-table th { text-align:left; padding:10px 14px; font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.5px; border-bottom:1px solid var(--border); }
.admin-table td { padding:10px 14px; border-bottom:1px solid var(--border); color:var(--text-secondary); }
.admin-table tr:hover td { background:var(--bg-hover); }
.td-pergunta { max-width:320px; }
.td-data { color:var(--text-muted); font-size:12px; white-space:nowrap; }
.badge-decisao { display:inline-block; padding:3px 10px; border-radius:12px; font-size:11px; font-weight:600; }
.badge-apto    { background:var(--green-glow); color:var(--green); }
.badge-inapto  { background:var(--red-glow); color:var(--red); }
.badge-consulta{ background:rgba(245,158,11,.1); color:var(--yellow); }
.admin-actions { margin-bottom:12px; }
.btn-primary { background:var(--accent); border:none; padding:9px 16px; border-radius:var(--radius-sm); color:#fff; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; transition:all .2s; }
.btn-primary:hover { background:var(--accent-dark); }
.btn-secondary { background:none; border:1px solid var(--border-light); padding:9px 16px; border-radius:var(--radius-sm); color:var(--text-secondary); font-size:13px; cursor:pointer; font-family:inherit; transition:all .2s; margin-left:8px; }
.btn-secondary:hover { border-color:var(--text-muted); color:var(--text-primary); }
.form-card { background:var(--bg-card); border:1px solid var(--border-light); border-radius:var(--radius); padding:20px; margin-bottom:16px; }
.form-card h3 { font-size:14px; margin-bottom:16px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }

/* ─── ANIMATIONS & SCROLLBAR ─────────────────────────────── */
@keyframes fadeIn  { from{opacity:0} to{opacity:1} }
@keyframes slideIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse   { 0%,100%{box-shadow:0 0 4px var(--accent)} 50%{box-shadow:0 0 12px var(--accent)} }
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border-light); border-radius:3px; }

/* ─── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width:800px) {
    .sidebar { position:fixed; left:0;top:0;bottom:0; transform:translateX(-100%); }
    .sidebar.open { transform:translateX(0); box-shadow:8px 0 32px rgba(0,0,0,.5); }
    .btn-menu { display:block; }
    .workspace { grid-template-columns:1fr; overflow-y:auto; }
    .panel:first-child { border-right:none; border-bottom:1px solid var(--border); min-height:200px; }
    .panel:last-child { min-height:180px; }
    .action-bar {
        position:fixed; bottom:0; left:0; right:0;
        z-index:10; padding:10px 16px;
        box-shadow:0 -4px 20px rgba(0,0,0,.4);
    }
    .main-content { padding-bottom:60px; }
    .form-row { grid-template-columns:1fr; }
    .pipeline-card { min-width:auto; margin:16px; padding:24px; }
}
