/* Jovly — AI-First Design System */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  --bg:           #F8F8FB;
  --surface:      #FFFFFF;
  --surface-alt:  #F1F0F7;
  --border:       #E5E5EE;
  --border-strong:#CFCFE0;
  --text:         #0E0E1A;
  --text-muted:   #5B5B73;
  --text-subtle:  #9594AB;
  --primary:      #4F46E5;
  --primary-soft: #EEF0FF;
  --primary-hover:#4338CA;
  --accent:       #A78BFA;
  --danger:       #E11D48;
  --warning:      #F59E0B;
  --success:      #059669;
  --radius:       12px;
  --radius-lg:    20px;
  --shadow:       0 1px 2px rgba(15,15,40,0.04), 0 1px 3px rgba(15,15,40,0.04);
  --shadow-lg:    0 24px 48px -16px rgba(79,70,229,0.18), 0 4px 12px rgba(15,15,40,0.06);
  --font:         'Inter', -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', ui-monospace, monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}

/* ── NAVBAR ── */
.navbar{background:var(--surface);border-bottom:1px solid var(--border);height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}
.navbar-brand{font-weight:700;font-size:18px;color:var(--primary);text-decoration:none;letter-spacing:-.02em}
.navbar-brand span{color:var(--text)}
.navbar-right{display:flex;align-items:center;gap:10px}

/* ── LAYOUT ── */
.layout{display:flex;min-height:calc(100vh - 60px)}
.sidebar{width:232px;background:var(--surface);border-right:1px solid var(--border);padding:1.25rem 0;flex-shrink:0;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}
.sidebar-inner{display:flex;flex-direction:column;height:100%}
.sidebar-close{display:none}
.sidebar-close-btn{display:none}
.hamburger-btn{display:none !important}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 1.25rem;font-size:13px;font-weight:500;color:var(--text-muted);text-decoration:none;transition:all .15s;border-radius:8px;margin:1px 8px}
.sidebar-link:hover{background:var(--surface-alt);color:var(--text)}
.sidebar-link.active{background:var(--primary-soft);color:var(--primary);font-weight:600}
.sidebar-link .icon{font-size:15px;width:20px;text-align:center;filter:grayscale(1);opacity:.65}
.sidebar-link.active .icon{filter:none;opacity:1}
.main{flex:1;padding:2rem;overflow-y:auto}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .2s;text-decoration:none;font-family:var(--font);letter-spacing:-.01em}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(79,70,229,.3)}
.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.btn-secondary:hover{background:var(--surface-alt);border-color:var(--border-strong)}
.btn-danger{background:var(--danger);color:#fff}
.btn-ghost{background:none;border:none;color:var(--text-muted);padding:6px 10px}
.btn-ghost:hover{color:var(--text);background:var(--surface-alt)}
.btn-sm{padding:5px 12px;font-size:12px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none !important}

/* ── CARDS ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}
.card-sm{padding:1rem}

/* ── FORMS ── */
.form-group{margin-bottom:1rem}
.form-label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono)}
.form-control{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-family:var(--font);background:var(--surface);transition:border-color .2s,box-shadow .2s;color:var(--text)}
.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.1)}
textarea.form-control{resize:vertical;min-height:85px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-hint{font-size:11px;color:var(--text-subtle);margin-top:3px;font-family:var(--font-mono)}

/* ── PAGE HEADER ── */
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.page-title{font-size:22px;font-weight:700;letter-spacing:-.02em}
.page-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}

/* ── STAT CARDS ── */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:var(--shadow)}
.stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.stat-icon.green{background:#D1FAE5}
.stat-icon.blue{background:#DBEAFE}
.stat-icon.orange{background:#FEF3C7}
.stat-icon.purple{background:var(--primary-soft)}
.stat-value{font-size:24px;font-weight:700;line-height:1;letter-spacing:-.02em}
.stat-label{font-size:11px;color:var(--text-muted);margin-top:3px;font-family:var(--font-mono);letter-spacing:.02em}

/* ── TABLE ── */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-weight:600;font-family:var(--font-mono)}
td{padding:11px 12px;border-bottom:1px solid var(--border);font-size:13px}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--surface-alt)}

/* ── BADGES ── */
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600}
.badge-green{background:#D1FAE5;color:#065F46}
.badge-gray{background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border)}
.badge-blue{background:#DBEAFE;color:#1E40AF}
.badge-red{background:#FFE4E6;color:#9F1239}
.badge-purple{background:var(--primary-soft);color:var(--primary)}

/* ── ALERTS ── */
.alert{padding:11px 14px;border-radius:8px;font-size:13px;margin-bottom:1rem;border:1px solid transparent}
.alert-danger{background:#FFE4E6;color:#9F1239;border-color:#FECDD3}
.alert-success{background:#D1FAE5;color:#065F46;border-color:#A7F3D0}
.alert-info{background:var(--primary-soft);color:var(--primary);border-color:#C7D2FE}

/* ── AUTH ── */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:2rem}
.auth-card{width:100%;max-width:420px}
.auth-logo{text-align:center;margin-bottom:2rem}
.auth-logo h1{font-size:28px;font-weight:700;color:var(--primary);letter-spacing:-.03em}
.auth-logo p{color:var(--text-muted);font-size:13px;margin-top:4px}
.auth-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.5rem}
.auth-tab{flex:1;padding:10px;text-align:center;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}
.auth-tab.active{color:var(--primary);border-color:var(--primary)}

/* ── SKILL TAGS ── */
.tag-grid{display:flex;flex-wrap:wrap;gap:7px}
.skill-tag{padding:5px 13px;border-radius:999px;font-size:12px;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all .15s;user-select:none;font-weight:500}
.skill-tag:hover{border-color:var(--primary);color:var(--primary)}
.skill-tag.selected{background:var(--primary-soft);border-color:var(--primary);color:var(--primary);font-weight:600}

/* ── FIELD CARDS ── */
.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.field-card{border:1.5px solid var(--border);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--surface);user-select:none}
.field-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.field-card.selected{border-color:var(--primary);background:var(--primary-soft)}
.field-card .icon{font-size:28px;margin-bottom:8px;display:block;pointer-events:none}
.field-card .name{font-size:12px;font-weight:600;pointer-events:none}

/* ── STEP INDICATOR ── */
.steps{display:flex;align-items:center;margin-bottom:2.5rem}
.step-item{display:flex;flex-direction:column;align-items:center;position:relative}
.step-circle{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;transition:all .3s;flex-shrink:0}
.step-circle.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px rgba(79,70,229,.15)}
.step-circle.done{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.step-label{font-size:10px;color:var(--text-subtle);margin-top:4px;white-space:nowrap;font-family:var(--font-mono)}
.step-line{flex:1;height:1.5px;background:var(--border);margin:0 4px;margin-bottom:18px;transition:background .3s}
.step-line.done{background:var(--primary)}
.step-panel{display:none}
.step-panel.active{display:block}

/* ── DYNAMIC BLOCKS ── */
.dynamic-block{border:1px solid var(--border);border-radius:10px;padding:1.25rem;margin-bottom:1rem;background:var(--surface-alt);animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.dynamic-block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.dynamic-block-title{font-size:13px;font-weight:600;color:var(--primary)}
.remove-btn{background:none;border:1px solid #FECDD3;color:var(--danger);padding:4px 10px;border-radius:6px;font-size:11px;cursor:pointer;transition:background .15s}
.remove-btn:hover{background:#FFE4E6}

/* ── TEMPLATE CARDS ── */
.template-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.template-card{border:1.5px solid var(--border);border-radius:10px;padding:10px;cursor:pointer;transition:all .2s;user-select:none}
.template-card *{pointer-events:none}
.template-card:hover{border-color:var(--primary);transform:translateY(-2px)}
.template-card.selected{border-color:var(--primary);background:var(--primary-soft)}
.template-thumb{height:75px;border-radius:6px;margin-bottom:8px;overflow:hidden}
.template-name{font-size:12px;font-weight:600;text-align:center}
.template-desc{font-size:11px;color:var(--text-muted);text-align:center}

/* ── JOB CARDS ── */
.job-card{border:1px solid var(--border);border-radius:10px;padding:1rem;background:var(--surface);display:flex;align-items:flex-start;gap:12px;transition:all .2s;text-decoration:none;color:inherit}
.job-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg);transform:translateY(-1px)}
.job-source{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0}
.job-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px}
.job-meta{font-size:11px;color:var(--text-muted)}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:rgba(14,14,26,.5);display:flex;align-items:center;justify-content:center;z-index:999;backdrop-filter:blur(4px)}
.modal{background:var(--surface);border-radius:var(--radius-lg);padding:1.75rem;width:100%;max-width:520px;box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}
.modal-title{font-size:16px;font-weight:700;letter-spacing:-.01em}
.modal-close{background:var(--surface-alt);border:none;font-size:18px;cursor:pointer;color:var(--text-muted);width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center}

/* ── SPINNER ── */
.spinner{display:inline-block;width:16px;height:16px;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)}}
.spinner-dark{border-color:rgba(79,70,229,.15);border-top-color:var(--primary)}

/* ── CV OUTPUT ── */
.cv-output{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem;font-size:13px;line-height:1.75;white-space:pre-wrap;max-height:420px;overflow-y:auto;min-height:120px;position:relative}
.cv-loading{position:absolute;inset:0;background:rgba(255,255,255,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius);gap:10px}

/* ── MONO LABELS ── */
.mono-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-subtle)}

/* ── DIVIDER ── */
.divider{display:flex;align-items:center;gap:10px;color:var(--text-subtle);font-size:12px;margin:1rem 0}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--border)}

/* ── LOGOUT ── */
.btn-logout{background:none;border:1px solid var(--border);padding:6px 14px;border-radius:8px;cursor:pointer;font-size:12px;color:var(--text-muted);font-family:var(--font);transition:all .15s}
.btn-logout:hover{background:var(--surface-alt);color:var(--text)}

/* ── PRIMARY LIGHT (old compat) ── */
.primary-light{background:var(--primary-soft);color:var(--primary)}

/* ══ MOBİL ══ */
@media(max-width:768px){
  .hamburger-btn{display:flex !important;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:var(--surface-alt);border-radius:8px;cursor:pointer;font-size:18px;flex-shrink:0}
  .sidebar{display:none !important;position:fixed !important;inset:0 !important;width:100% !important;height:100% !important;z-index:9999 !important;background:rgba(14,14,26,.55) !important;flex-direction:row !important;border:none !important}
  .sidebar.open{display:flex !important}
  .sidebar-inner{width:272px !important;max-width:85vw !important;height:100% !important;background:var(--surface) !important;overflow-y:auto !important;box-shadow:4px 0 24px rgba(14,14,26,.15) !important;display:flex !important;flex-direction:column !important;flex-shrink:0 !important}
  .sidebar-close{display:flex !important;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}
  .sidebar-close-btn{display:flex !important;align-items:center;justify-content:center;width:34px;height:34px;border:none;background:var(--surface-alt);border-radius:8px;font-size:16px;cursor:pointer;color:var(--text)}
  .sidebar-link{padding:11px 1.25rem;font-size:14px;margin:1px 8px}
  .layout{flex-direction:column}
  .main{padding:1rem}
  .page-header{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:1rem}
  .page-title{font-size:18px}
  .stats-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:1rem}
  .stat-card{padding:.875rem;gap:8px}
  .stat-icon{width:36px;height:36px;font-size:16px;border-radius:8px}
  .stat-value{font-size:20px}
  .card{padding:1rem;border-radius:12px}
  .form-row{grid-template-columns:1fr;gap:0}
  .form-control{font-size:16px;padding:10px 12px}
  .field-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .field-card{padding:.875rem .5rem;border-radius:10px}
  .navbar{padding:0 1rem;height:54px}
  .navbar-brand{font-size:16px}
  .navbar-right{gap:6px}
  .template-grid{grid-template-columns:repeat(2,1fr)}
  .auth-wrap{padding:1rem;align-items:flex-start;padding-top:2rem}
  .no-mobile{display:none !important}
}

@media(max-width:380px){
  .stats-grid{grid-template-columns:1fr}
  .field-grid{grid-template-columns:repeat(2,1fr)}
}
