/* ── Edu Vita Nova — Portal CSS ────────────────────────────────── */
:is(.evn-portal, .evn-login-wrap, .evn-staff-notice) {
  --evn-primary:  #1e3a5f;
  --evn-accent:   #3b82f6;
  --evn-success:  #16a34a;
  --evn-warn:     #d97706;
  --evn-danger:   #dc2626;
  --evn-muted:    #6b7280;
  --evn-border:   #e2e8f0;
  --evn-radius:   10px;
  --evn-nav-w:    240px;
}

/* ── Layout ── */
.evn-portal { display:flex; min-height:100vh; min-height:100dvh; background:var(--evn-c-ink-100, #f1f5f9); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:#1e293b; }

/* ── Nav ── */
.evn-nav { width:var(--evn-nav-w); background:var(--evn-primary); color:var(--evn-on-accent, #fff); display:flex; flex-direction:column; padding:0; flex-shrink:0; position:sticky; top:0; height:100vh; height:100dvh; overflow-y:auto; }
.evn-nav-brand { padding:20px 20px 12px; font-size:18px; font-weight:700; border-bottom:1px solid rgba(255,255,255,.12); }
.evn-nav ul { list-style:none; margin:0; padding:8px 0; flex:1; }
.evn-nav li a { display:flex; align-items:center; gap:8px; padding:10px 20px; color:rgba(255,255,255,.8); text-decoration:none; font-size:14px; transition:background .15s; }
.evn-nav li a:hover, .evn-nav li.evn-active a { background:rgba(255,255,255,.12); color:var(--evn-on-accent, #fff); }
.evn-nav-user { padding:16px 20px; border-top:1px solid rgba(255,255,255,.12); font-size:13px; }
.evn-user-name { font-weight:600; }
.evn-logout { color:rgba(255,255,255,.6); font-size:12px; text-decoration:none; }
.evn-logout:hover { color:var(--evn-on-accent, #fff); }

/* ── Badge ── */
.evn-badge { display:inline-block; padding:2px 9px; border-radius:12px; font-size:12px; font-weight:600; line-height:1.6; }
.evn-badge-success { background:var(--evn-c-success-bg, #dcfce7); color:#166534; }
.evn-badge-warn    { background:var(--evn-c-warn-bg, #fef3c7); color:#92400e; }
.evn-badge-danger  { background:var(--evn-c-danger-bg, #fee2e2); color:#991b1b; }
.evn-badge-info    { background:#dbeafe; color:#1e40af; }
.evn-badge-muted   { background:var(--evn-c-ink-100, #f1f5f9); color:#475569; }
.evn-badge-title { position:absolute; top:-4px; right:-8px; background:var(--evn-danger); color:var(--evn-on-accent, #fff); font-size:12px; min-width:16px; height:16px; line-height:16px; text-align:center; border-radius:8px; padding:0 4px; }

/* ── Portal body ── */
.evn-portal-body { flex:1; padding:28px 32px; max-width:900px; overflow-x:hidden; }
@media(max-width:720px){ .evn-nav{width:100%;height:auto;position:relative;flex-direction:row;flex-wrap:wrap} .evn-portal{flex-direction:column} .evn-portal-body{padding:16px} }

/* ── Welcome ── */
.evn-welcome-card { background:linear-gradient(135deg,var(--evn-primary),#1e4080); color:var(--evn-on-accent, #fff); border-radius:var(--evn-radius); padding:24px 28px; margin-bottom:24px; }
.evn-welcome-card h2 { margin:0 0 6px; font-size:22px; }
.evn-welcome-card p  { margin:0; opacity:.85; }

/* ── Progress ── */
.evn-progress-section { margin-bottom:20px; }
.evn-progress-header { display:flex; justify-content:space-between; font-size:14px; margin-bottom:6px; }
.evn-progress-bar { height:8px; background:#e2e8f0; border-radius:4px; overflow:hidden; }
.evn-progress-fill { height:100%; background:var(--evn-accent); border-radius:4px; }
.evn-progress-sm { height:5px; flex:1; }

/* ── Alerts ── */
.evn-alert { border-radius:var(--evn-radius); padding:14px 18px; margin-bottom:16px; }
.evn-alert ul { margin:6px 0 0 18px; padding:0; }
.evn-alert-danger { background:var(--evn-c-danger-bg, #fee2e2); border:1px solid #fca5a5; color:#7f1d1d; }
.evn-alert-warn   { background:var(--evn-c-warn-bg, #fef3c7); border:1px solid #fcd34d; color:#78350f; }

/* ── Section title ── */
.evn-section-title { font-size:17px; font-weight:600; color:var(--evn-primary); margin:24px 0 12px; border-bottom:2px solid var(--evn-border); padding-bottom:8px; }

/* ── Process grid (portal dashboard) ── */
.evn-process-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.evn-pcard { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:var(--evn-radius); padding:18px; display:flex; flex-direction:column; gap:8px; }
.evn-pcard-head { display:flex; justify-content:space-between; align-items:center; }
.evn-pcard-type { font-size:15px; font-weight:700; color:var(--evn-primary); }
.evn-pcard-uni  { font-size:14px; font-weight:600; }
.evn-pcard-prog { font-size:13px; color:var(--evn-muted); }
.evn-pcard-deadline { font-size:13px; }
.evn-pcard-prog-wrap { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--evn-muted); }

/* ── Buttons ── */
.evn-btn { display:inline-block; background:var(--evn-accent); color:var(--evn-on-accent, #fff); padding:8px 18px; border-radius:6px; text-decoration:none; font-size:14px; font-weight:500; border:none; cursor:pointer; transition:background .15s; }
.evn-btn:hover { background:#2563eb; color:var(--evn-on-accent, #fff); }
.evn-btn-sm { padding:5px 12px; font-size:13px; }

/* ── Tasks ── */
.evn-task-summary { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.evn-task-group-title { font-size:15px; font-weight:600; margin:20px 0 10px; }
.evn-danger-title { color:var(--evn-danger); }
.evn-task-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.evn-task-card { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:var(--evn-radius); padding:16px; display:flex; flex-direction:column; gap:8px; }
.evn-task-overdue { border-left:4px solid var(--evn-danger); }
.evn-task-done    { opacity:.7; }
.evn-task-card-header { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.evn-task-desc { font-size:13px; color:#374151; margin:0; }
.evn-task-meta { display:flex; flex-direction:column; gap:2px; font-size:12px; color:var(--evn-muted); }
.evn-completed-wrap { margin-top:24px; }
.evn-completed-wrap summary { cursor:pointer; font-size:14px; color:var(--evn-accent); }
.evn-task-completed { margin-top:12px; }

/* ── Task list (dashboard compact) ── */
.evn-task-list { display:flex; flex-direction:column; gap:8px; }
.evn-task-item { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:8px; padding:10px 14px; display:flex; justify-content:space-between; align-items:center; }
.evn-task-title { font-size:14px; font-weight:500; }
.evn-link-more { display:block; text-align:right; color:var(--evn-accent); font-size:13px; margin-top:6px; text-decoration:none; }

/* ── Notifications ── */
.evn-notif-list { display:flex; flex-direction:column; gap:8px; }
.evn-notif-item { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:8px; padding:12px 16px; }
.evn-notif-item.evn-read { opacity:.65; }
.evn-notif-title { font-weight:600; font-size:14px; }
.evn-notif-msg   { font-size:13px; color:#374151; margin-top:2px; }
.evn-notif-time  { font-size:12px; color:var(--evn-muted); display:block; margin-top:4px; }
.evn-notif-read-btn { background:none; border:none; color:var(--evn-accent); font-size:12px; cursor:pointer; padding:0; margin-top:4px; }
.evn-notif-success { border-left:3px solid var(--evn-success); }
.evn-notif-warn    { border-left:3px solid var(--evn-warn); }
.evn-notif-danger  { border-left:3px solid var(--evn-danger); }

/* ── Process detail (portal) ── */
.evn-breadcrumb { font-size:13px; color:var(--evn-muted); margin-bottom:16px; }
.evn-breadcrumb a { color:var(--evn-accent); text-decoration:none; }
.evn-process-info-card { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:var(--evn-radius); padding:20px; margin-bottom:20px; }
.evn-pinfo-header { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:12px; margin-bottom:14px; }
.evn-pinfo-header h2 { margin:0 0 6px; }
.evn-pinfo-deadline { text-align:right; }
.evn-pinfo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; }
.evn-pinfo-grid label { display:block; font-size:12px; color:var(--evn-muted); text-transform:uppercase; margin-bottom:2px; }
.evn-pinfo-grid span { font-size:14px; font-weight:500; }

/* ── Document portal ── */
.evn-doc-portal-list { display:flex; flex-direction:column; gap:12px; }
.evn-doc-portal-item { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:var(--evn-radius); padding:16px; }
.evn-doc-approved { border-left:4px solid var(--evn-success); }
.evn-doc-portal-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.evn-doc-portal-name { display:flex; align-items:center; gap:6px; font-size:15px; }
.evn-required { color:var(--evn-danger); }
.evn-doc-feedback { background:var(--evn-c-warn-bg, #fef3c7); border-radius:6px; padding:8px 12px; font-size:13px; margin-bottom:10px; }
.evn-doc-portal-actions { display:flex; flex-direction:column; gap:10px; }
.evn-doc-current { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:13px; }
.evn-upload-area { border:2px dashed var(--evn-border); border-radius:8px; padding:12px 16px; background:var(--evn-c-ink-50, #f8fafc); }
.evn-upload-label { display:flex; align-items:center; gap:10px; cursor:pointer; margin-bottom:4px; }
.evn-upload-label span { color:var(--evn-accent); font-weight:500; }
.evn-upload-area small { color:var(--evn-muted); font-size:12px; }
.evn-upload-area input[type=file] { display:none; }
.evn-versions-portal { margin-top:10px; font-size:13px; }
.evn-versions-portal summary { cursor:pointer; color:var(--evn-accent); }
.evn-versions-portal ul { margin:6px 0 0 16px; padding:0; }
.evn-del { text-decoration:line-through; opacity:.5; }

/* ── Login ── */
.evn-login-wrap { min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#1e3a5f 0%,#1e4080 100%); padding:24px; }
.evn-login-box { background:var(--evn-surface, #fff); border-radius:16px; padding:40px 36px; max-width:400px; width:100%; box-shadow:0 24px 64px rgba(0,0,0,.25); }
.evn-logo { text-align:center; margin-bottom:28px; }
.evn-logo-icon { font-size:3rem; }
.evn-logo h1 { font-size:22px; color:var(--evn-primary); margin:8px 0 2px; }
.evn-logo p  { color:var(--evn-muted); font-size:13px; margin:0; }

/* ── Staff notice ── */
.evn-staff-notice { min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; background:var(--evn-c-ink-100, #f1f5f9); padding:24px; }
.evn-staff-notice .evn-card { background:var(--evn-surface, #fff); border-radius:var(--evn-radius); padding:32px; text-align:center; max-width:480px; border:1px solid var(--evn-border); }

/* ── Empty state ── */
.evn-empty-state { background:var(--evn-surface, #fff); border:1px solid var(--evn-border); border-radius:var(--evn-radius); padding:40px; text-align:center; color:var(--evn-muted); }

/* Sözleşmelerim: contract text viewer (click to open, pages rendered by bundled pdf.js) */
.evn-contract-open{display:flex;align-items:center;justify-content:center;width:100%;min-height:160px;margin:12px 0;background:#111827;color:var(--evn-on-accent, #fff);border:0;border-radius:8px;font-size:17px;font-weight:600;cursor:pointer;text-align:center;padding:16px}
.evn-contract-open:hover,.evn-contract-open:focus-visible{background:#1f2937;outline:3px solid #93c5fd;outline-offset:2px}
.evn-contract-open:disabled{cursor:progress;opacity:.85}
.evn-contract-pages{max-height:80vh;overflow:auto;background:#f5f5f5;border:1px solid #e5e7eb;border-radius:8px;padding:8px;margin:12px 0}
.evn-contract-pages canvas{display:block;width:100%;height:auto;margin:0 auto 10px;border:1px solid #ddd;background:var(--evn-surface, #fff)}
.evn-contract-version{font-size:12px;color:var(--evn-c-ink-500, #64748b);margin:4px 0 12px}
.evn-contract-sign details>summary{cursor:pointer;padding:6px 0}
.evn-contract-form .wpcf7 input:not([type=checkbox]):not([type=radio]):not([type=submit]),.evn-contract-form .wpcf7 select,.evn-contract-form .wpcf7 textarea{max-width:100%;width:100%;box-sizing:border-box}
.evn-contract-form .wpcf7 canvas{max-width:100%}
