/* ==========================================================================
   CV Builder Pro — Design System
   Same "developer career terminal" system as platform.dilman.dev: near-
   black ink, violet accent (#5b21b6), monospace used structurally for
   labels/stats/metadata. Light by default, toggles to dark (persisted in
   localStorage as `cvbuilder-theme`) — see assets/js/app.js.
   ========================================================================== */
:root{
  /* -- dark (default) -- */
  --ink:#0A0C10; --surface:#12151B; --surface2:#181D26; --surface3:#1E2430;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.16); --overlay:rgba(255,255,255,.04);
  --gold:#5b21b6; --gold-ink:#F3EEFC; --gold-dim:rgba(91,33,182,.16);
  --signal:#3ECF8E; --signal-dim:rgba(62,207,142,.12);
  --rose:#F0637A; --rose-dim:rgba(240,99,122,.12);
  --sky:#6FB8D9; --sky-dim:rgba(111,184,217,.12);
  --text0:#F3F1EC; --text1:#C7CBD3; --text2:#8B92A0; --text3:#5B6270;
  --r-sm:8px; --r:12px; --r-lg:18px;
  --nav-h:72px; --container:1220px;
  --shadow-lg:0 24px 60px rgba(0,0,0,.4);
  --ease:cubic-bezier(.22,.68,0,1);

  /* legacy aliases — kept so any older markup using these still resolves */
  --bg:var(--ink); --card:var(--surface); --text:var(--text0); --muted:var(--text2);
  --border:var(--line); --primary:var(--gold); --primary-dark:#7C3AED; --primary-tint:var(--gold-dim);
  --danger:var(--rose); --success:var(--signal); --warning:var(--gold);
  --radius:var(--r); --radius-lg:var(--r-lg); --shadow:var(--shadow-lg);
  --font:'Noto Kufi Arabic','Segoe UI',system-ui,sans-serif;
  --font-mono:'Noto Kufi Arabic','Segoe UI',system-ui,sans-serif;
}
html[data-theme="light"]{
  --ink:#F8F8F6; --surface:#FFFFFF; --surface2:#FBFAF7; --surface3:#F1F0EC;
  --line:rgba(15,17,20,.09); --line2:rgba(15,17,20,.16); --overlay:rgba(15,17,20,.035);
  --gold:#5b21b6; --gold-ink:#F8F5FE; --gold-dim:rgba(91,33,182,.10);
  --signal:#158A5B; --signal-dim:rgba(21,138,91,.10);
  --rose:#C93A56; --rose-dim:rgba(201,58,86,.10);
  --sky:#2A7EA0; --sky-dim:rgba(42,126,160,.10);
  --text0:#14171C; --text1:#3A3F47; --text2:#666C77; --text3:#8A8F98;
  --shadow-lg:0 24px 60px rgba(20,20,15,.10);
}

*{box-sizing:border-box;}
body{margin:0;font-family:var(--font);background:var(--ink);color:var(--text1);line-height:1.55;transition:background .2s var(--ease),color .2s var(--ease);}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(0,0,0,.9),transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(0,0,0,.9),transparent 70%);
}
a{color:var(--gold);text-decoration:none;}
a:hover{text-decoration:underline;}
code{font-family:var(--font-mono);}
.mono{font-family:var(--font-mono);}

/* ---------- Header / nav ----------
   Structure, sizing, spacing and the scroll-darken + dark/light theme
   system are ported 1:1 from platform.dilman.dev's #main-nav (see its
   assets/css/site.css). There's no announce bar on this site, so the
   nav sits fixed at top:0 instead of top:var(--bar-h). Content (brand,
   links, account menu) is CV Builder's own. */
#main-nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  height:var(--nav-h);display:flex;align-items:center;gap:18px;padding:0 5%;
  background:rgba(10,12,16,.7);backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid transparent;transition:background .3s,border-color .3s;
}
html[data-theme="light"] #main-nav{background:rgba(248,248,246,.75);}
#main-nav.scrolled{border-color:var(--line);background:rgba(10,12,16,.88);}
html[data-theme="light"] #main-nav.scrolled{background:rgba(248,248,246,.92);}

.nav-logo{display:flex;align-items:center;gap:10px;font-family:'Noto Kufi Arabic',sans-serif;font-weight:700;font-size:18px;color:var(--text0);text-decoration:none;flex-shrink:0;}
.nav-logo:hover{text-decoration:none;}
.nav-logo .logo-mark{width:32px;height:32px;border-radius:8px;flex-shrink:0;object-fit:contain;}
.nav-logo-badge{color:var(--gold);}

.nav-links{display:flex;gap:2px;margin:0 auto;list-style:none;padding:0;}
.nav-links a{padding:8px 14px;border-radius:var(--r-sm);color:var(--text2);font-size:13.5px;text-decoration:none;transition:all .2s;font-weight:500;}
.nav-links a:hover{color:var(--text0);background:var(--overlay);text-decoration:none;}
.nav-links a.active{color:var(--gold);}

.nav-right{display:flex;gap:10px;align-items:center;flex-shrink:0;margin-left:auto;}
.nav-cta{display:flex;gap:10px;align-items:center;}

/* ---------- nav buttons (matches platform.dilman.dev .btn/.btn-primary/.btn-ghost exactly) ---------- */
.nav-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--r-sm);font-weight:600;font-size:14.5px;letter-spacing:-.005em;cursor:pointer;text-decoration:none;border:1px solid transparent;transition:transform .18s var(--ease),box-shadow .22s var(--ease),background .18s,border-color .18s,color .18s;white-space:nowrap;}
.nav-btn:active{transform:translateY(1px) scale(.985);}
.nav-btn-primary{background:var(--gold);color:var(--gold-ink) !important;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 16px rgba(231,184,78,.16);}
.nav-btn-primary:hover{box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 10px 28px rgba(231,184,78,.32);transform:translateY(-1.5px);text-decoration:none;}
.nav-btn-ghost{background:var(--overlay);border-color:var(--line2);color:var(--text1) !important;backdrop-filter:blur(6px);}
.nav-btn-ghost:hover{border-color:var(--gold);color:var(--text0) !important;background:var(--gold-dim);box-shadow:0 6px 18px rgba(0,0,0,.18);transform:translateY(-1.5px);text-decoration:none;}

.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-sm);border:1px solid var(--line2);background:var(--surface);color:var(--text0);cursor:pointer;transition:all .2s;flex-shrink:0;}
.icon-btn:hover{border-color:var(--gold);color:var(--gold);}
.icon-btn .dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--rose);border:2px solid var(--surface);}

/* ---------- theme toggle (moon/sun swap — matches platform.dilman.dev exactly) ---------- */
.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-sm);border:1px solid var(--line2);background:var(--surface);color:var(--text0);cursor:pointer;transition:all .2s;flex-shrink:0;}
.theme-toggle:hover{border-color:var(--gold);}
.theme-toggle .icon-sun{display:none;}
html[data-theme="light"] .theme-toggle .icon-moon{display:none;}
html[data-theme="light"] .theme-toggle .icon-sun{display:block;}
#mobile-theme-icon .icon-sun{display:none;}
html[data-theme="light"] #mobile-theme-icon .icon-moon{display:none;}
html[data-theme="light"] #mobile-theme-icon .icon-sun{display:block;}

/* ---------- language switcher (matches platform.dilman.dev exactly) ---------- */
.nav-lang{position:relative;flex-shrink:0;}
.lang-trigger{display:flex;align-items:center;gap:6px;cursor:pointer;height:36px;padding:0 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line2);color:var(--text0);transition:border-color .2s;font-family:var(--font);}
.lang-trigger:hover{border-color:var(--gold);}
.lang-trigger-code{font-size:12px;font-weight:700;letter-spacing:.02em;}
.lang-flag{font-size:15px;line-height:1;filter:saturate(1.05);}
.lang-chevron{color:var(--text2);transition:transform .2s var(--ease);flex-shrink:0;}
.lang-trigger[aria-expanded="true"] .lang-chevron{transform:rotate(180deg);}
.lang-dropdown{width:210px;padding:6px;}
.lang-option{display:flex !important;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);color:var(--text1);text-decoration:none;font-size:13.5px;font-weight:500;}
.lang-option:hover{background:var(--overlay);color:var(--text0);}
.lang-option.active{color:var(--gold);font-weight:600;}
.lang-native{flex:1;min-width:0;}
.lang-check{color:var(--gold);flex-shrink:0;}
.dropdown-wrap{position:relative;}
.dropdown-menu{position:absolute;top:calc(100% + 10px);right:0;width:280px;background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:8px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .18s var(--ease);z-index:220;}
.dropdown-menu.open{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown-menu a{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:var(--r-sm);color:var(--text1);font-size:.88rem;font-weight:600;}
.dropdown-menu a:hover{background:var(--overlay);color:var(--text0);text-decoration:none;}
.dropdown-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.dropdown-head strong{font-size:.9rem;color:var(--text0);}
.dropdown-head button{background:none;border:none;color:var(--gold);font-size:.76rem;font-weight:700;cursor:pointer;}

/* ---------- account dropdown (matches platform.dilman.dev's account-trigger/account-dropdown) ---------- */
.nav-account{position:relative;}
.account-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;overflow:hidden;background:var(--gold);color:var(--gold-ink);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;font-weight:700;}
.account-avatar-lg{width:40px;height:40px;font-size:16px;}
.account-avatar-img{width:100%;height:100%;object-fit:cover;display:block;}
.account-trigger{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;background:var(--overlay);border:1px solid var(--line2);border-radius:999px;color:var(--text0);cursor:pointer;font-family:var(--font);transition:border-color .2s,background .2s;}
.account-trigger:hover{border-color:var(--gold);}
.account-trigger-name{font-size:13.5px;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.account-chevron{color:var(--text2);transition:transform .2s var(--ease);}
.account-trigger[aria-expanded="true"] .account-chevron{transform:rotate(180deg);}
.account-dropdown{width:250px;}
.account-dropdown-head{display:flex;align-items:center;gap:12px;padding:10px 8px 14px;border-bottom:1px solid var(--line);margin-bottom:8px;}
.account-dropdown-id{min-width:0;}
.account-dropdown-name{font-size:14.5px;font-weight:600;color:var(--text0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.account-dropdown-email{font-size:12px;color:var(--text2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.account-badge-row{display:flex;align-items:center;gap:5px;margin-top:4px;flex-wrap:wrap;}
.account-role-badge{display:inline-flex;align-items:center;background:var(--signal-dim);color:var(--signal);border-radius:5px;padding:2px 8px;font-weight:700;font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;font-family:var(--font-mono);}
.account-plan-badge{display:inline-flex;align-items:center;background:var(--gold-dim);color:var(--gold);border-radius:5px;padding:2px 8px;font-weight:700;font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;font-family:var(--font-mono);}
.account-dropdown-links{display:flex;flex-direction:column;gap:1px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line);}
.account-dropdown-links a,.account-dropdown-signout{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:var(--r-sm);color:var(--text1);text-decoration:none;font-size:13.5px;font-weight:500;}
.account-dropdown-links a:hover{background:var(--overlay);color:var(--text0);}
.account-dropdown-links a svg{color:var(--text2);flex-shrink:0;}
.account-dropdown-signout{color:var(--rose);}
.account-dropdown-signout:hover{background:var(--rose-dim);}
.account-dropdown-signout svg{flex-shrink:0;}
.mobile-account-head{display:flex;align-items:center;gap:12px;padding:12px 10px;margin-bottom:2px;}

/* legacy alias — kept in case anything still points at the old chip name */
.role-badge{font-family:var(--font-mono);font-size:.68rem;padding:1px 7px;border-radius:999px;background:var(--gold-dim);color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.03em;}

/* ---------- mobile nav (burger + slide-down menu — matches platform.dilman.dev) ---------- */
.nav-burger{display:none;background:none;border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--text0);font-size:16px;width:36px;height:36px;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.mobile-menu{position:absolute;top:100%;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 5% 20px;display:none;flex-direction:column;gap:2px;box-shadow:var(--shadow-lg);}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:13px 10px;color:var(--text1);text-decoration:none;border-radius:var(--r-sm);font-size:15px;}
.mobile-menu a:hover{background:var(--overlay);color:var(--text0);}
.mobile-menu .nav-btn{margin-top:8px;text-align:center;justify-content:center;}
.mobile-theme-row{display:flex;align-items:center;justify-content:space-between;padding:13px 10px;border-radius:var(--r-sm);font-size:15px;color:var(--text1);cursor:pointer;}
.mobile-theme-row:hover{background:var(--overlay);}
.mobile-lang-row{padding:10px 10px 6px;}
.mobile-lang-label{display:block;font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;}
.mobile-lang-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.mobile-lang-option{display:flex;align-items:center;gap:7px;padding:9px 10px;border-radius:var(--r-sm);border:1px solid var(--line2);color:var(--text1);text-decoration:none;font-size:13px;font-weight:500;}
.mobile-lang-option:hover{border-color:var(--gold);color:var(--text0);}
.mobile-lang-option.active{border-color:var(--gold);color:var(--gold);background:var(--gold-dim);}

@media(max-width:900px){
  .nav-burger{display:flex;}
  .nav-links{display:none;}
  .nav-cta .nav-btn-ghost{display:none;}
}

/* ---------- RTL (Kurdish / Arabic) ---------- */
html[dir="rtl"] body{font-family:'Noto Kufi Arabic',sans-serif;}
html[dir="rtl"] .dropdown-menu{right:auto;left:0;}
html[dir="rtl"] .lang-chevron{transform:scaleX(-1);}
html[dir="rtl"] .lang-trigger[aria-expanded="true"] .lang-chevron{transform:scaleX(-1) rotate(180deg);}
html[dir="rtl"] .nav-right{margin-left:0;margin-right:auto;}

.site-main{position:relative;z-index:1;max-width:var(--container);margin:0 auto;padding:calc(var(--nav-h) + 32px) 24px 32px;min-height:70vh;}
.site-footer{position:relative;z-index:1;border-top:1px solid var(--line);margin-top:40px;}
.site-footer-inner{max-width:1220px;margin:0 auto;padding:20px 24px;color:var(--text2);font-size:.85rem;}

/* ---------- home feature strip ---------- */
.feats{max-width:1000px;margin:10px auto 40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;}
.feat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;text-align:left;}
html[dir="rtl"] .feat{text-align:right;}
.feat svg{color:var(--gold);margin-bottom:10px;}
.feat h3{font-family:'Noto Kufi Arabic',sans-serif;font-size:14.5px;color:var(--text0);margin:0 0 6px;}
.feat p{color:var(--text2);font-size:12.5px;line-height:1.55;margin:0;}

/* ---------- Surfaces ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(0,0,0,.15);padding:24px;}
.grid{display:grid;gap:18px;}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}

.auth-wrap{max-width:420px;margin:40px auto;}
.auth-wrap h1{font-size:1.4rem;margin-bottom:6px;letter-spacing:-.01em;color:var(--text0);}
.auth-wrap p.sub{color:var(--text2);margin-top:0;margin-bottom:20px;font-size:.9rem;}

/* ---------- Forms ----------
   Deliberately NOT scoped under "form ..." — nothing on this site uses a
   native <form> (every page submits via fetch/Api, see api-client.js), so
   a "form input" selector never matched anything and left every input on
   the site (builder.php, profile.php, admin/settings.php) completely
   unstyled. Applies to plain labels/inputs wherever they appear instead. */
label{display:block;font-size:.76rem;font-weight:700;color:var(--text2);margin:12px 0 4px;text-transform:uppercase;letter-spacing:.04em;}
input[type=text],input[type=email],input[type=password],input[type=url],
input[type=date],input[type=number],select,textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--line2);border-radius:9px;font-size:.92rem;font-family:var(--font);background:var(--surface3);color:var(--text0);
}
textarea{resize:vertical;}
input:disabled{opacity:.6;cursor:not-allowed;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim);}
.btn{display:inline-block;background:var(--gold);color:var(--gold-ink);border:none;padding:10px 18px;border-radius:9px;font-weight:700;font-size:.92rem;cursor:pointer;transition:transform .15s var(--ease),box-shadow .15s var(--ease);}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(231,184,78,.22);}
.btn:active{transform:translateY(0);}
.btn-outline{background:transparent;color:var(--text0);border:1.5px solid var(--line2);}
.btn-outline:hover{border-color:var(--gold);background:var(--gold-dim);box-shadow:none;}
.btn-danger{background:var(--rose);color:#fff;}
.btn-sm{padding:6px 12px;font-size:.8rem;}
.btn-block{width:100%;text-align:center;}

.alert{padding:10px 14px;border-radius:9px;font-size:.85rem;margin-bottom:14px;border:1px solid transparent;}
.alert-error{background:var(--rose-dim);color:var(--rose);border-color:var(--rose-dim);}
.alert-success{background:var(--signal-dim);color:var(--signal);border-color:var(--signal-dim);}
.alert-info{background:var(--gold-dim);color:var(--gold);border-color:var(--gold-dim);}

/* ---------- Tables ---------- */
table{width:100%;border-collapse:collapse;font-size:.88rem;}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--text1);}
th{color:var(--text2);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;}
.badge{display:inline-block;padding:2px 9px;border-radius:12px;font-size:.72rem;font-weight:700;}
.badge-active{background:var(--signal-dim);color:var(--signal);}
.badge-pending{background:var(--gold-dim);color:var(--gold);}
.badge-suspended,.badge-banned{background:var(--rose-dim);color:var(--rose);}

.stat-card .num{font-size:1.8rem;font-weight:800;font-family:var(--font-mono);color:var(--text0);}
.stat-card .label{color:var(--text2);font-size:.82rem;}

/* ---------- Admin ---------- */
.admin-shell{display:flex;gap:24px;}
.admin-nav{width:200px;flex-shrink:0;}
.admin-nav a{display:block;padding:9px 12px;border-radius:9px;color:var(--text1);font-weight:600;font-size:.88rem;margin-bottom:4px;}
.admin-nav a.active,.admin-nav a:hover{background:var(--gold-dim);color:var(--gold);text-decoration:none;}
.admin-content{flex:1;min-width:0;}

.cv-card{position:relative;}
.cv-card h3{margin:0 0 4px;color:var(--text0);font-size:1.02rem;}
.cv-card .meta{color:var(--text2);font-size:.8rem;font-family:var(--font-mono);}
.cv-card .actions{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap;}

/* ---------- Terminal-style accent blocks ---------- */
.terminal-block{background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;font-family:var(--font-mono);}
.terminal-block .terminal-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface2);}
.terminal-block .terminal-bar .dot{width:10px;height:10px;border-radius:50%;}
.terminal-block .terminal-bar .dot.red{background:#e5564a;}
.terminal-block .terminal-bar .dot.yellow{background:#e0a63c;}
.terminal-block .terminal-bar .dot.green{background:#3fa85a;}
.terminal-block .terminal-body{padding:18px 20px;font-size:.85rem;color:var(--text1);}
.terminal-block .prompt{color:var(--signal);}
.terminal-block .ready{color:var(--gold);}

/* ---------- Activity feed ---------- */
.activity-list{display:flex;flex-direction:column;gap:2px;}
.activity-row{display:flex;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line);font-size:.85rem;}
.activity-row:last-child{border-bottom:none;}
.activity-row .action{font-family:var(--font-mono);color:var(--gold);font-size:.78rem;}
.activity-row .desc{color:var(--text1);flex:1;}
.activity-row .ts{color:var(--text3);font-size:.76rem;font-family:var(--font-mono);white-space:nowrap;}
