/* ══════════════════════════════════════════════════════
   Portfolio Manager — main.css  v2.0
   ══════════════════════════════════════════════════════ */
:root {
  --bg:#e9eef4;--surface:#fff;--surface-alt:#f8fbff;
  --primary:#1f4e79;--primary-soft:#dbe9f5;
  --folder:#d7b378;--folder-dark:#b98c46;
  --text:#1f2937;--muted:#6b7280;--line:#d9e3ee;
  --success:#1f8a5b;--upcoming:#6f58e8;--placeholder:#94a3b8;
  --warning:#c88719;--danger:#c0392b;
  --shadow:0 12px 28px rgba(15,23,42,.08);
  --r-lg:22px;--r-md:16px;--r-sm:12px;
}
*{box-sizing:border-box}
body,body.pm-body{
  margin:0;padding:0!important;
  font-family:'Vazirmatn',sans-serif;
  background:linear-gradient(rgba(255,255,255,.32),rgba(255,255,255,.32)),var(--bg);
  color:var(--text);
}
#wpadminbar{display:none!important}
html{margin-top:0!important}

/* ── Login ───────────────────────────────────────────── */
.login-screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#0d1b2a,#1f3a55 50%,#182837);
  position:relative;overflow:hidden;
}
.login-bg-pattern{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(53,111,164,.18) 0%,transparent 50%),
    radial-gradient(circle at 80% 70%,rgba(31,78,121,.22) 0%,transparent 50%);
}
.login-card{
  position:relative;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(20px);border-radius:28px;padding:40px;
  width:min(440px,calc(100% - 40px));box-shadow:0 32px 64px rgba(0,0,0,.4);
}
.login-logo{display:flex;align-items:center;gap:16px;margin-bottom:36px}
.login-brand-mark{
  width:60px;height:60px;border-radius:18px;
  background:linear-gradient(135deg,#356fa4,#173552);
  display:grid;place-items:center;font-weight:800;font-size:1.2rem;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 8px 24px rgba(0,0,0,.3);
}
.login-logo h1{margin:0 0 4px;color:#fff;font-size:1.1rem}
.login-logo p{margin:0;color:rgba(255,255,255,.5);font-size:.85rem}
.login-form .form-group{margin-bottom:18px}
.login-form label{display:block;color:rgba(255,255,255,.75);font-size:.88rem;margin-bottom:8px}
.login-form input[type=text],.login-form input[type=password],.login-form input[type=email]{
  width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  color:#fff;border-radius:14px;padding:14px 16px;font:inherit;font-size:.95rem;outline:none;
  transition:border-color .2s;
}
.login-form input:focus{border-color:#4c7ead;background:rgba(255,255,255,.09)}
.login-form input::placeholder{color:rgba(255,255,255,.3)}
.login-remember{display:flex;align-items:center;gap:8px}
.login-remember label{color:rgba(255,255,255,.6);font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:8px}
.login-error{
  background:rgba(192,57,43,.15);border:1px solid rgba(192,57,43,.35);
  color:#ff8a7a;border-radius:12px;padding:12px 16px;font-size:.88rem;margin-bottom:16px;
}
.login-btn{
  width:100%;background:linear-gradient(135deg,#2980b9,#1f4e79);
  color:#fff;border:0;border-radius:14px;padding:15px;font:inherit;font-size:1rem;
  font-weight:700;cursor:pointer;transition:opacity .2s,transform .15s;
  box-shadow:0 8px 24px rgba(31,78,121,.4);
}
.login-btn:hover{opacity:.9;transform:translateY(-1px)}
.login-links{margin-top:16px;text-align:center}
.login-links a{color:rgba(255,255,255,.72);text-decoration:none;font-size:.88rem}
.login-links a:hover{color:#fff}

/* WordPress native login / lost password pages */
body.login{
  min-height:100vh;background:linear-gradient(135deg,#0d1b2a,#1f3a55 50%,#182837)!important;
  font-family:'Vazirmatn',sans-serif;display:flex;align-items:center;justify-content:center;
}
body.login:before{
  content:"";position:fixed;inset:0;pointer-events:none;
  background-image:radial-gradient(circle at 20% 30%,rgba(53,111,164,.18) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(31,78,121,.22) 0%,transparent 50%);
}
body.login #login{
  position:relative;width:min(440px,calc(100% - 40px));padding:0;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(20px);border-radius:28px;padding:38px;box-shadow:0 32px 64px rgba(0,0,0,.4);
}
body.login h1 a{
  width:auto;height:auto;background:none!important;text-indent:0;color:#fff;text-decoration:none;
  font-size:1.2rem;font-weight:800;line-height:1.4;margin:0 auto 24px;
}
body.login form{
  margin:0;background:transparent;border:0;box-shadow:none;padding:0;overflow:visible;
}
body.login label{color:rgba(255,255,255,.75);font-size:.88rem}
body.login form .input,body.login input[type=text],body.login input[type=password],body.login input[type=email]{
  width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  color:#fff;border-radius:14px;padding:10px 14px;font:inherit;outline:none;box-shadow:none;
}
body.login form .input:focus,body.login input:focus{border-color:#4c7ead;background:rgba(255,255,255,.09);box-shadow:none}
body.login .button-primary{
  width:100%;background:linear-gradient(135deg,#2980b9,#1f4e79);border:0;border-radius:14px;
  padding:7px 15px;font:inherit;font-weight:700;box-shadow:0 8px 24px rgba(31,78,121,.4);
}
body.login #nav,body.login #backtoblog{text-align:center;margin:15px 0 0;padding:0}
body.login #nav a,body.login #backtoblog a,body.login .privacy-policy-link{color:rgba(255,255,255,.72);text-decoration:none}
body.login #nav a:hover,body.login #backtoblog a:hover{color:#fff}
body.login .message,body.login .notice,body.login #login_error{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff;
  border-radius:12px;padding:12px 16px;margin:0 0 16px;box-shadow:none;
}
body.login #login_error{background:rgba(192,57,43,.15);border-color:rgba(192,57,43,.35);color:#ff8a7a}

/* ── Layout ──────────────────────────────────────────── */
.layout{
  display:grid;
  grid-template-columns:1fr 290px;
  min-height:100vh;
  direction:ltr;
}
.layout-main{
  grid-column:1;
  direction:rtl;
  min-width:0;
}
.sidebar{
  grid-column:2;
  direction:rtl;
  background:linear-gradient(180deg,#182837,#12202d);
  color:#fff;padding:22px;
  border-inline-start:1px solid rgba(255,255,255,.05);
}
.sidebar-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.brand-mark{
  width:46px;height:46px;border-radius:13px;
  background:linear-gradient(135deg,#356fa4,#173552);
  display:grid;place-items:center;font-weight:700;font-size:.88rem;color:#fff;
}
.sidebar h1{margin:0 0 3px;font-size:.98rem}
.sidebar-brand p{margin:0;color:#b9c7d5;font-size:.82rem}
.sidebar-block{margin-bottom:18px}
.sidebar-block label,.sidebar-block h3{display:block;margin-bottom:8px;color:#dce6ef;font-size:.86rem}
.sidebar select,.sidebar input[type=text]{
  width:100%;border:1px solid #2f4358;background:#0f1a24;
  color:#fff;border-radius:11px;padding:10px 12px;font:inherit;outline:none;font-size:.88rem;
}
.sidebar select:focus,.sidebar input:focus{border-color:#4c7ead}

/* sidebar navigation */
.sidebar-nav{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.sidebar-nav-btn{
  width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:#dce6ef;border-radius:10px;padding:10px 14px;font:inherit;font-size:.86rem;
  cursor:pointer;text-align:right;transition:background .2s,border-color .2s;
}
.sidebar-nav-btn:hover{background:rgba(255,255,255,.12)}
.sidebar-nav-btn.active{background:rgba(53,111,164,.35);border-color:#4c7ead;color:#fff;font-weight:600}
.sidebar-nav-btn[data-view="admin"]{
  background:linear-gradient(135deg,rgba(200,135,25,.15),rgba(200,135,25,.08));
  border-color:rgba(200,135,25,.3);color:#f0a940;
}
.sidebar-nav-btn[data-view="admin"].active{
  background:linear-gradient(135deg,rgba(200,135,25,.35),rgba(200,135,25,.2));
  border-color:rgba(200,135,25,.5);color:#fff;
}

/* user bar */
.user-info-box{
  display:flex;align-items:center;gap:11px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);
  border-radius:15px;padding:11px;margin-bottom:18px;
}
.user-avatar{
  width:40px;height:40px;border-radius:11px;flex-shrink:0;
  background:linear-gradient(135deg,#2980b9,#1f4e79);
  display:grid;place-items:center;font-weight:800;color:#fff;
}
.user-details{flex:1;min-width:0}
.user-details strong{display:block;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-badge{
  display:inline-block;background:rgba(255,255,255,.1);
  border-radius:999px;padding:2px 8px;font-size:.72rem;color:#b9c7d5;margin-top:3px;
}
.role-badge.admin{background:rgba(200,135,25,.25);color:#f0a940}
.logout-btn{
  background:rgba(255,255,255,.08);border:0;border-radius:9px;
  width:34px;height:34px;color:#b9c7d5;cursor:pointer;font-size:.95rem;flex-shrink:0;
  transition:background .2s,color .2s;text-decoration:none;display:grid;place-items:center;
}
.settings-btn{
  background:rgba(255,255,255,.08);border:0;border-radius:9px;
  width:34px;height:34px;color:#b9c7d5;cursor:pointer;font-size:.95rem;flex-shrink:0;
  transition:background .2s,color .2s;display:grid;place-items:center;
}
.settings-btn:hover{background:rgba(52,152,219,.3);color:#5dade2}
.logout-btn:hover{background:rgba(192,57,43,.3);color:#ff8a7a}
.admin-nav-btn{
  width:100%;background:linear-gradient(135deg,rgba(200,135,25,.2),rgba(200,135,25,.1));
  border:1px solid rgba(200,135,25,.3);color:#f0a940;
  padding:10px 14px;border-radius:11px;font:inherit;font-size:.88rem;
  font-weight:700;cursor:pointer;text-align:right;transition:background .2s;
}
.admin-nav-btn:hover{background:linear-gradient(135deg,rgba(200,135,25,.35),rgba(200,135,25,.2))}
.progress-box{background:#0e1a25;border:1px solid #2b4257;border-radius:13px;padding:13px}
.progress-track{height:10px;background:#203445;border-radius:999px;overflow:hidden}
.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#2d9c67,#88dfb7);transition:width .3s}
.progress-text{margin-top:9px;color:#d4e0ea;font-size:.83rem}
.sidebar-action-btn{
  width:100%;border:0;background:#e8f0f8;color:var(--primary);
  padding:11px 14px;border-radius:11px;font:inherit;cursor:pointer;font-weight:700;
}

/* ── Main content ────────────────────────────────────── */
.main-content{padding:22px}
.folder-cover{
  position:relative;background:linear-gradient(135deg,var(--folder),#e6c896);
  border-radius:26px;overflow:hidden;box-shadow:var(--shadow);
  margin-bottom:22px;border:1px solid rgba(120,83,24,.12);
}
.cover-tab{width:190px;height:56px;background:linear-gradient(135deg,var(--folder-dark),#9f7434);border-bottom-left-radius:16px}
.cover-content{padding:18px 26px 26px}
.cover-badge{
  display:inline-block;background:rgba(255,255,255,.55);color:#61471f;
  padding:6px 12px;border-radius:999px;margin-bottom:10px;font-size:.86rem;
}
.cover-content h2{margin:0 0 16px;color:#2e220f}
.cover-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.meta-card{background:rgba(255,255,255,.72);border-radius:13px;padding:13px;border:1px solid rgba(116,84,31,.08)}
.meta-label{display:block;color:#705a36;font-size:.8rem;margin-bottom:5px}
.content-grid{display:grid;grid-template-columns:390px 1fr;gap:22px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow)}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.journey-timeline{display:grid;gap:11px}
.station-item{
  display:grid;grid-template-columns:46px 1fr;gap:13px;
  padding:13px;border:1px solid var(--line);border-radius:17px;
  background:var(--surface-alt);cursor:pointer;transition:.2s;
}
.station-item:hover{transform:translateY(-2px)}
.station-item.active{border-color:var(--primary);box-shadow:0 0 0 3px rgba(31,78,121,.08)}
.station-index{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;font-weight:700}
.station-item.completed .station-index{background:var(--success)}
.station-item.available  .station-index{background:var(--primary)}
.station-item.upcoming   .station-index{background:var(--upcoming)}
.station-item.placeholder .station-index{background:var(--placeholder)}
.station-content h4{margin:0 0 5px;font-size:.93rem}
.station-content p{margin:0 0 7px;color:var(--muted);line-height:1.7;font-size:.86rem}
.station-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.status-badge,.status-chip{border-radius:999px;padding:5px 11px;font-size:.76rem;font-weight:700}
.status-completed{background:rgba(31,138,91,.12);color:var(--success)}
.status-available{background:rgba(31,78,121,.12);color:var(--primary)}
.status-upcoming{background:rgba(111,88,232,.12);color:var(--upcoming)}
.status-placeholder{background:rgba(148,163,184,.15);color:#64748b}
.station-header{padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}
.station-header h4{margin:0 0 7px}
.station-header p{margin:0;line-height:1.9;color:var(--muted)}
.documents-list{display:grid;gap:13px}
.document-card{border:1px solid var(--line);border-radius:15px;padding:15px;background:#fcfdff}
.document-top{display:flex;justify-content:space-between;gap:11px;margin-bottom:9px}
.document-title{margin:0;font-size:.93rem}
.document-type{background:#eef4fa;color:var(--muted);border-radius:999px;padding:4px 9px;font-size:.76rem;white-space:nowrap}
.document-desc{color:var(--muted);line-height:1.8;margin:0 0 11px;font-size:.86rem}
.document-footer{display:flex;justify-content:space-between;align-items:center;gap:11px;flex-wrap:wrap}
.document-state.available{color:var(--success);font-weight:700;font-size:.86rem}
.document-state.unavailable{color:var(--warning);font-weight:700;font-size:.86rem}
.action-btn{border:0;background:var(--primary);color:#fff;border-radius:11px;padding:9px 13px;cursor:pointer;font:inherit;font-size:.86rem}
.action-btn.secondary{background:#e6eef6;color:var(--primary)}
.empty-state,.inline-empty{border:1px dashed #cad5e2;border-radius:17px;padding:22px;text-align:center;background:#fbfdff}
.empty-state p,.inline-empty p{color:var(--muted);line-height:1.9}

/* ── Admin Panel ─────────────────────────────────────── */
.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.admin-header h2{margin:0;font-size:1.3rem;color:var(--primary)}
.admin-back-btn{border:1px solid var(--line);background:var(--surface);color:var(--primary);border-radius:11px;padding:9px 15px;font:inherit;cursor:pointer;font-weight:700}
.admin-tabs{display:flex;gap:6px;border-bottom:2px solid var(--line);margin-bottom:22px}
.admin-tab{border:0;background:transparent;padding:9px 16px;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:8px 8px 0 0;font-weight:600;transition:color .2s}
.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.admin-tab:hover{color:var(--primary)}
.admin-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.admin-section-header h3{margin:0}
.admin-action-btn{background:var(--primary);color:#fff;border:0;border-radius:11px;padding:9px 15px;font:inherit;font-weight:700;cursor:pointer;font-size:.88rem}
.admin-action-btn:hover{background:#163a5a}
.admin-action-btn.secondary{background:var(--surface);color:var(--primary);border:1px solid var(--primary)}
.users-table{background:var(--surface);border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:var(--shadow)}
.users-table-header,.users-table-row{display:grid;grid-template-columns:1.4fr 1fr 1.2fr .8fr 150px;gap:10px;padding:12px 16px;align-items:center}
.users-table-header{background:var(--primary);color:#fff;font-weight:700;font-size:.86rem}
.users-table-row{border-bottom:1px solid var(--line);font-size:.88rem;transition:background .15s}
.users-table-row:last-child{border-bottom:none}
.users-table-row:hover{background:var(--surface-alt)}
.user-role-pill{border-radius:999px;padding:4px 9px;font-size:.74rem;font-weight:700}
.user-role-pill.admin{background:rgba(200,135,25,.15);color:var(--warning)}
.user-role-pill.user{background:rgba(31,78,121,.1);color:var(--primary)}
.table-action-btn{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:5px 9px;font:inherit;font-size:.76rem;cursor:pointer;color:var(--danger);font-weight:600}
.table-action-btn.view{color:var(--primary)}
.table-action-btn:hover{background:rgba(192,57,43,.08)}
.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.admin-help-text{margin:-6px 0 16px;color:var(--muted);line-height:1.9;font-size:.88rem}
.content-upload-form{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{margin-bottom:14px}
.form-group label{display:block;color:var(--text);font-size:.86rem;font-weight:600;margin-bottom:6px}
.form-group input[type=text],.form-group input[type=password],.form-group input[type=email],
.form-group input[type=tel],.form-group input[type=number],
.form-group select,.form-group textarea{
  width:100%;border:1px solid var(--line);background:var(--surface-alt);color:var(--text);
  border-radius:11px;padding:10px 13px;font:inherit;font-size:.88rem;outline:none;
  transition:border-color .2s;resize:vertical;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary)}
.form-group input[dir=ltr],.form-group textarea[dir=ltr]{text-align:left;direction:ltr}
.checkbox-group label{display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:400}
.checkbox-group input{width:auto}
.file-upload-area{display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:var(--surface-alt);border:2px dashed var(--line);border-radius:13px;padding:14px}
.upload-progress{width:100%;height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:8px}
.upload-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,#2d9c67,#88dfb7);transition:width .3s}
.upload-msg{margin-top:11px;padding:11px 15px;border-radius:11px;font-size:.86rem;font-weight:600}
.upload-msg.success{background:rgba(31,138,91,.1);color:var(--success);border:1px solid rgba(31,138,91,.2)}
.upload-msg.error{background:rgba(192,57,43,.1);color:var(--danger);border:1px solid rgba(192,57,43,.2)}
.all-docs-list{display:grid;gap:11px}
.admin-doc-card{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:14px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.admin-doc-info{flex:1}
.admin-doc-info strong{display:block;margin-bottom:3px}
.admin-doc-info span{font-size:.8rem;color:var(--muted)}
.admin-doc-owner{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:4px 11px;font-size:.78rem;font-weight:700;white-space:nowrap}
.doc-delete-btn{background:rgba(192,57,43,.08);border:1px solid rgba(192,57,43,.18);color:var(--danger);border-radius:9px;padding:6px 11px;font:inherit;font-size:.8rem;cursor:pointer;font-weight:600}
.doc-edit-btn{background:rgba(52,152,219,.08);border:1px solid rgba(52,152,219,.18);color:#3498db;border-radius:9px;padding:6px 11px;font:inherit;font-size:.8rem;cursor:pointer;font-weight:600;margin-left:8px}
.doc-edit-btn:hover{background:rgba(52,152,219,.15)}
.stations-admin-list{display:grid;gap:11px;margin-top:14px}
.station-admin-card{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:14px 18px;display:grid;grid-template-columns:42px 1fr auto;gap:13px;align-items:center}
.station-admin-num{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:#fff;font-weight:700;background:var(--primary)}
.station-admin-info strong{display:block;margin-bottom:2px}
.station-admin-info span{font-size:.8rem;color:var(--muted)}
.station-status-select{border:1px solid var(--line);background:var(--surface-alt);border-radius:9px;padding:6px 9px;font:inherit;font-size:.83rem;cursor:pointer}

/* ── Modal ───────────────────────────────────────────── */
.modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.58)}
.modal-dialog{position:relative;width:min(950px,calc(100% - 32px));max-height:calc(100vh - 50px);background:#fff;border-radius:19px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 19px;border-bottom:1px solid var(--line)}
.modal-body{padding:19px;overflow:auto;max-height:calc(100vh - 130px)}
.icon-btn{border:0;background:#eef3f8;width:36px;height:36px;border-radius:9px;cursor:pointer;font-size:.95rem}
.preview-frame{width:100%;min-height:540px;border:1px solid var(--line);border-radius:13px;background:#fff}
.preview-fallback{padding:19px;background:#f8fbff;border-radius:13px;line-height:2}
.preview-actions{display:flex;gap:9px;margin-top:13px;flex-wrap:wrap}
.preview-link-btn{display:inline-block;text-decoration:none;background:var(--primary);color:#fff;padding:9px 13px;border-radius:11px;font-size:.88rem}
.preview-link-btn.secondary{background:#e8eef5;color:var(--primary)}
mark{background:#fff1a8;padding:0 3px;border-radius:4px}

/* ── Loading ─────────────────────────────────────────── */
.pm-loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--muted);font-size:.9rem;gap:11px}
.pm-spinner{width:24px;height:24px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Settings Panel ──────────────────────────────────── */
.settings-content{max-width:700px;margin:0 auto;padding:20px}
.settings-section{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:24px}
.settings-section h3{margin:0 0 20px;font-size:1.1rem;color:var(--text)}
.settings-section .form-group{margin-bottom:16px}
.settings-section .form-group:last-of-type{margin-bottom:20px}
.settings-section label{display:block;margin-bottom:6px;font-weight:600;font-size:.9rem;color:var(--text)}
.settings-section input[type="text"],.settings-section input[type="password"]{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:9px;font:inherit;background:var(--bg);color:var(--text)}
.settings-section input:focus{outline:none;border-color:var(--primary)}

/* ── Form Builder ────────────────────────────────────── */
.form-builder-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.form-builder-header h4{margin:0;font-size:.95rem;color:var(--primary)}
.form-fields-list{display:grid;gap:10px;margin-bottom:12px}
.form-field-item{background:var(--surface-alt);border:1px solid var(--line);border-radius:12px;padding:12px}
.form-field-controls{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center}
.form-field-controls .field-label,.form-field-controls .field-type,.form-field-controls .field-options{
  border:1px solid var(--line);background:#fff;color:var(--text);border-radius:9px;padding:8px 11px;font:inherit;font-size:.86rem;outline:none;
}
.form-field-controls .field-label{grid-column:1}
.form-field-controls .field-type{grid-column:2;min-width:140px}
.form-field-controls .field-options{grid-column:3}
.remove-field-btn{background:rgba(192,57,43,.08);border:1px solid rgba(192,57,43,.18);color:var(--danger);border-radius:8px;padding:7px 10px;font:inherit;cursor:pointer;font-weight:700}
.remove-field-btn:hover{background:rgba(192,57,43,.15)}

/* ── Form Fill Modal (user fills the form) ─────────── */
.form-fill-group{margin-bottom:14px}
.form-fill-label{display:block;font-size:.88rem;font-weight:600;color:var(--text);margin-bottom:6px}
.form-fill-input{
  width:100%;border:1px solid var(--line);background:var(--surface-alt);color:var(--text);
  border-radius:11px;padding:10px 13px;font:inherit;font-size:.88rem;outline:none;
  transition:border-color .2s;resize:vertical;
}
.form-fill-input:focus{border-color:var(--primary)}
.form-fill-notice{background:rgba(31,78,121,.08);border:1px solid rgba(31,78,121,.2);color:var(--primary);border-radius:11px;padding:10px 14px;font-size:.86rem;font-weight:600;margin-bottom:16px}

/* ── Form Responses (admin view) ─────────────────────── */
.responses-list{display:grid;gap:16px}
.response-card{background:var(--surface-alt);border:1px solid var(--line);border-radius:14px;padding:16px}
.response-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.response-card-header strong{font-size:.95rem;color:var(--primary)}
.response-date{font-size:.8rem;color:var(--muted);background:#eef4fa;border-radius:999px;padding:3px 10px}
.response-field{display:flex;gap:10px;align-items:baseline;padding:5px 0;border-bottom:1px dashed var(--line)}
.response-field:last-child{border-bottom:none}
.response-label{font-size:.82rem;font-weight:700;color:var(--muted);min-width:120px;flex-shrink:0}
.response-value{font-size:.88rem;color:var(--text);line-height:1.7}

/* ── Docs Responses Button ───────────────────────────── */
.doc-responses-btn{background:rgba(111,88,232,.08);border:1px solid rgba(111,88,232,.2);color:var(--upcoming);border-radius:9px;padding:6px 11px;font:inherit;font-size:.8rem;cursor:pointer;font-weight:600}
.doc-responses-btn:hover{background:rgba(111,88,232,.15)}

/* ── Docs Filter Bar ─────────────────────────────────── */
.docs-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:14px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.filter-item{flex:1;min-width:140px}
.filter-item input[type=text],.filter-item select{
  width:100%;border:1px solid var(--line);background:var(--surface-alt);color:var(--text);
  border-radius:9px;padding:8px 11px;font:inherit;font-size:.84rem;outline:none;transition:border-color .2s;
}
.filter-item input:focus,.filter-item select:focus{border-color:var(--primary)}
.docs-filter-summary{background:rgba(31,78,121,.07);border:1px solid rgba(31,78,121,.15);color:var(--primary);border-radius:9px;padding:8px 14px;font-size:.83rem;font-weight:600;margin-bottom:10px}
.excel-export-btn{background:rgba(31,138,91,.12);color:var(--success);border:1px solid rgba(31,138,91,.25)}
.excel-export-btn:hover{background:rgba(31,138,91,.22);color:var(--success)}

/* ── User Doc Upload ─────────────────────────────────── */
.doc-type-card{border-color:rgba(31,78,121,.3)}
.doc-upload-btn{background:rgba(31,78,121,.12);color:var(--primary);border-color:rgba(31,78,121,.3)}
.doc-upload-btn:hover{background:rgba(31,78,121,.22)}
.doc-user-uploaded-badge{display:inline-block;background:rgba(31,138,91,.15);color:var(--success);font-size:.7rem;border-radius:6px;padding:1px 7px;margin-right:5px;font-weight:600}
.doc-upload-badge{display:inline-block;background:rgba(31,78,121,.1);color:var(--primary);font-size:.72rem;border-radius:6px;padding:1px 7px;margin-right:4px;font-weight:600;vertical-align:middle}
.doc-response-badge{display:inline-block;background:rgba(111,66,193,.1);color:#6f42c1;font-size:.72rem;border-radius:6px;padding:1px 7px;margin-right:4px;font-weight:600;vertical-align:middle}
.form-responses-export-btn{background:rgba(111,66,193,.1);color:#6f42c1;border:1px solid rgba(111,66,193,.25)}
.form-responses-export-btn:hover{background:rgba(111,66,193,.2);color:#6f42c1}
.user-upload-template{display:flex;align-items:center;gap:10px;background:rgba(31,78,121,.06);border:1px solid rgba(31,78,121,.15);border-radius:10px;padding:10px 14px;margin-bottom:16px}
.user-upload-template-label{flex:1;font-size:.85rem;color:var(--muted);font-weight:500}
.user-upload-section{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface)}
.user-upload-section-title{font-size:.9rem;font-weight:700;color:var(--primary);margin:0 0 14px}
.user-upload-empty{text-align:center;padding:18px 0;color:var(--muted);font-size:.88rem}
.user-upload-existing{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(31,138,91,.07);border:1px solid rgba(31,138,91,.2);border-radius:10px;padding:12px 16px;margin-bottom:14px}
.user-upload-existing-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.user-upload-icon{font-size:1.5rem;line-height:1}
.user-upload-existing-info div{display:flex;flex-direction:column;gap:3px;min-width:0}
.user-upload-existing-info strong{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-upload-existing-info span{font-size:.78rem;color:var(--muted)}
.user-upload-existing-actions{display:flex;gap:8px;flex-shrink:0}
.user-upload-area{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.user-upload-fname{font-size:.82rem;color:var(--muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upload-progress{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin-bottom:8px}
.upload-progress-bar{height:100%;background:var(--primary);border-radius:6px;transition:width .4s ease}
.upload-msg{padding:8px 12px;border-radius:8px;font-size:.85rem;font-weight:600;margin-bottom:4px}
.upload-msg.success{background:rgba(31,138,91,.1);color:var(--success);border:1px solid rgba(31,138,91,.2)}
.upload-msg.error{background:rgba(220,53,69,.1);color:#dc3545;border:1px solid rgba(220,53,69,.2)}

/* ── SMS Panel ───────────────────────────────────────── */
.sms-admin-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}
.sms-admin-block{margin-bottom:4px}
.sms-block-title{margin:0 0 14px;font-size:.95rem;color:var(--primary);font-weight:700}
.sms-panel-section{margin-top:22px}
.sms-panel-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.sms-panel-header h3{margin:0;font-size:1.05rem;color:var(--text)}
.sms-divider{display:flex;align-items:center;gap:10px;margin:18px 0 14px;color:var(--muted);font-size:.82rem;font-weight:700}
.sms-divider::before,.sms-divider::after{content:'';flex:1;height:1px;background:var(--line)}
.sms-toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;background:var(--surface-alt);border:1px solid var(--line);border-radius:13px;margin-bottom:10px}
.sms-toggle-info strong{display:block;font-size:.9rem;margin-bottom:3px}
.sms-toggle-info span{color:var(--muted);font-size:.82rem}
.sms-msg-group{padding:13px;background:#f0f6fc;border:1px solid #c8dff5;border-radius:11px;margin-bottom:10px}
.sms-msg-group label{color:var(--primary)}
.sms-vars-hint{margin:5px 0 0;font-size:.78rem;color:var(--muted);line-height:1.7}
.sms-vars-hint code{background:#e1ecf9;color:var(--primary);padding:1px 5px;border-radius:4px;font-family:monospace}

/* Toggle Switch */
.toggle-switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0}
.toggle-switch input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#cdd5e0;border-radius:999px;transition:.25s}
.toggle-slider::before{content:'';position:absolute;width:20px;height:20px;right:3px;bottom:3px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.toggle-switch input:checked + .toggle-slider{background:var(--primary)}
.toggle-switch input:checked + .toggle-slider::before{transform:translateX(-20px)}

/* SMS Checkbox in content upload */
.sms-send-group{background:rgba(31,78,121,.05);border:1px solid rgba(31,78,121,.15);border-radius:12px;padding:11px 15px}
.sms-checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;color:var(--primary);font-size:.88rem}
.sms-checkbox-label input{width:16px;height:16px;cursor:pointer;accent-color:var(--primary)}

/* ── Print ───────────────────────────────────────────── */
@media print{
  .sidebar,.modal{display:none!important}
  .layout{grid-template-columns:1fr}
  .main-content{padding:0}
  body{background:#fff}
  .card,.folder-cover{box-shadow:none}
}

/* ── Responsive ──────────────────────────────────────── */
@media(max-width:1100px){
  .layout{grid-template-columns:1fr}
  .content-grid{grid-template-columns:1fr}
  .cover-meta{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .users-table-header,.users-table-row{grid-template-columns:1fr 1fr 1fr}
  .idp-columns{grid-template-columns:1fr}
  .idp-meta-grid{grid-template-columns:1fr 1fr}
  .idp-sig-grid{grid-template-columns:1fr}
  .sidebar{grid-column:1;grid-row:2}
  .layout-main{grid-column:1;grid-row:1}
}

/* ── IDP Document ────────────────────────────────────── */
.idp-document{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  padding:24px;box-shadow:var(--shadow);max-width:1200px;margin:0 auto;
}
.idp-form-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:16px;flex-wrap:wrap;
}
.idp-form-actions{display:flex;align-items:center;gap:10px}
.idp-header{margin-bottom:20px}
.idp-title-block{text-align:center;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--primary)}
.idp-title-en{margin:0 0 4px;font-size:1rem;color:var(--primary);letter-spacing:.04em;font-weight:700}
.idp-title-fa{margin:0;font-size:1.15rem;color:var(--text);font-weight:800}
.idp-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.idp-meta-field label,.idp-field label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:5px}
.idp-meta-field input,.idp-field input,.idp-field textarea,.idp-field select,.idp-vision-section textarea,.idp-competency-filter{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 11px;
  font:inherit;font-size:.88rem;background:var(--surface-alt);outline:none;resize:vertical;
}
.idp-meta-field input:focus,.idp-field input:focus,.idp-field textarea:focus,.idp-field select:focus,.idp-vision-section textarea:focus,.idp-competency-filter:focus{
  border-color:var(--primary);background:#fff;
}
.idp-section{margin-bottom:22px}
.idp-section-title{
  margin:0 0 12px;font-size:.95rem;font-weight:700;color:var(--primary);
  background:var(--primary-soft);padding:8px 14px;border-radius:10px;
}
.idp-vision-section textarea{min-height:90px}
.idp-competency-toolbar{
  display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px;padding:12px 14px;
  background:var(--surface-alt);border:1px solid var(--line);border-radius:12px;
}
.idp-competency-filter-field{flex:1;min-width:180px}
.idp-competency-filter-field label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:5px}
.idp-competency-select{width:100%;cursor:pointer}
.idp-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.idp-column{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface-alt)}
.idp-col-header{
  padding:10px 12px;font-size:.84rem;font-weight:700;text-align:center;color:#fff;
}
.idp-col-leverage .idp-col-header{background:#2d8a5e}
.idp-col-training .idp-col-header{background:#356fa4}
.idp-column .idp-field{padding:10px 12px;border-bottom:1px solid var(--line)}
.idp-column .idp-field:last-child{border-bottom:0}
.idp-actions-label{
  padding:8px 12px;font-size:.78rem;font-weight:700;color:var(--muted);
  background:#eef2f7;border-bottom:1px solid var(--line);text-align:center;
}
.idp-bg-green{background:#e8f5ee!important}
.idp-bg-blue{background:#e8f0fa!important}
.idp-bg-purple{background:#f0e8f8!important}
.idp-sig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.idp-sig-block{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-alt)}
.idp-sig-block h4{margin:0 0 10px;font-size:.88rem;color:var(--primary);text-align:center}

/* IDP List */
.idp-list-count{font-size:.85rem;color:var(--muted);font-weight:600}
.idp-list-table{margin-top:12px}
.idp-list-header,.idp-list-row{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 100px;gap:10px;
  padding:10px 14px;align-items:center;font-size:.86rem;
}
.idp-list-header{
  background:var(--primary-soft);border-radius:12px;font-weight:700;color:var(--primary);
  margin-bottom:6px;
}
.idp-list-row{
  background:var(--surface);border:1px solid var(--line);border-radius:12px;
  margin-bottom:6px;transition:box-shadow .15s;
}
.idp-list-row:hover{box-shadow:0 4px 12px rgba(15,23,42,.06)}
.idp-list-row .idp-status{font-size:.78rem;padding:3px 8px;border-radius:999px;font-weight:600}
.idp-status-filled{background:rgba(31,138,91,.12);color:var(--success)}
.idp-status-empty{background:rgba(148,163,184,.15);color:var(--muted)}
.idp-open-btn{
  background:var(--primary);color:#fff;border:0;border-radius:8px;
  padding:6px 12px;font:inherit;font-size:.8rem;cursor:pointer;
}
.idp-open-btn:hover{opacity:.9}
.idp-list-empty{text-align:center;padding:32px;color:var(--muted);font-size:.9rem}

@media print{
  .top-bar,.idp-form-toolbar,.sidebar{display:none!important}
  .idp-document{box-shadow:none;border:0;padding:0}
  .idp-field input,.idp-field textarea{border:1px solid #ccc}
}
