:root {
  --bg:#f7f7f5; --bg-card:#ffffff; --bg-elev:#fbfbf9;
  --text:#18181b; --text-muted:#6b7280; --text-soft:#9ca3af;
  --border:#ececec; --border-strong:#d4d4d8;
  --accent:#6366f1; --accent-soft:#eef2ff; --accent-strong:#4f46e5;
  --success:#10b981; --success-soft:#ecfdf5;
  --warning:#f59e0b; --warning-soft:#fffbeb;
  --danger:#ef4444; --danger-soft:#fef2f2;
  --info:#0ea5e9; --info-soft:#f0f9ff;
  --purple:#a855f7; --purple-soft:#faf5ff;
  --shadow-sm:0 1px 2px rgba(16,24,40,0.05);
  --shadow:0 4px 12px rgba(16,24,40,0.06);
  --shadow-lg:0 12px 32px rgba(16,24,40,0.08);
  --radius:14px; --radius-sm:10px; --radius-lg:20px;
}
[data-theme="dark"] {
  --bg:#0b0b0f; --bg-card:#16171d; --bg-elev:#1c1e26;
  --text:#f4f4f5; --text-muted:#a1a1aa; --text-soft:#71717a;
  --border:#26272f; --border-strong:#2f3038;
  --accent:#818cf8; --accent-soft:#1e1b4b; --accent-strong:#a5b4fc;
  --success:#34d399; --success-soft:#052e2b;
  --warning:#fbbf24; --warning-soft:#2b1e05;
  --danger:#f87171; --danger-soft:#2c1010;
  --info:#38bdf8; --info-soft:#0b1e2c;
  --purple:#c084fc; --purple-soft:#2a1a3d;
  --shadow-sm:0 1px 2px rgba(0,0,0,0.3);
  --shadow:0 4px 12px rgba(0,0,0,0.35);
  --shadow-lg:0 12px 32px rgba(0,0,0,0.5);
}
* { box-sizing:border-box; }
html,body { margin:0; padding:0; height:100%; background:var(--bg); color:var(--text); }
body { font-family:'Cairo','Inter',system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
body[dir="ltr"] { font-family:'Inter','Cairo',system-ui,sans-serif; }
.font-display { font-family:'Playfair Display','Cairo',serif; letter-spacing:-0.02em; }

.card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.card:hover { box-shadow:var(--shadow); }
.card-hover:hover { transform:translateY(-2px); border-color:var(--border-strong); }

.glass { background:rgba(255,255,255,0.75); backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%); border:1px solid rgba(255,255,255,0.4); }
[data-theme="dark"] .glass { background:rgba(22,23,29,0.7); border:1px solid rgba(255,255,255,0.06); }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 16px; border-radius:10px; font-weight:600; font-size:14px; transition:all .18s ease; border:1px solid transparent; cursor:pointer; white-space:nowrap; }
.btn-primary { background:var(--accent); color:#fff; }
.btn-primary:hover { background:var(--accent-strong); transform:translateY(-1px); box-shadow:0 6px 16px -6px var(--accent); }
.btn-ghost { background:transparent; color:var(--text); border-color:var(--border); }
.btn-ghost:hover { background:var(--bg-elev); border-color:var(--border-strong); }
.btn-soft { background:var(--accent-soft); color:var(--accent-strong); }
.btn-soft:hover { background:var(--accent); color:#fff; }
.btn-danger-ghost { background:transparent; color:var(--danger); border-color:var(--border); }
.btn-danger-ghost:hover { background:var(--danger-soft); border-color:var(--danger); }
.btn-sm { padding:7px 12px; font-size:12.5px; }
.btn:disabled { opacity:0.55; cursor:not-allowed; }

.input,.select,.textarea { width:100%; background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:10px 14px; font-size:14px; color:var(--text); transition:border-color .15s, box-shadow .15s; font-family:inherit; }
.input:focus,.select:focus,.textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px color-mix(in oklab, var(--accent) 15%, transparent); }
.textarea { resize:vertical; min-height:90px; line-height:1.55; }
.label { display:block; font-size:12.5px; font-weight:600; color:var(--text-muted); margin-bottom:6px; letter-spacing:0.01em; }

.pill { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:600; }
.pill::before { content:''; width:6px; height:6px; border-radius:999px; background:currentColor; }
.pill-new { background:var(--info-soft); color:var(--info); }
.pill-waiting-brief { background:var(--warning-soft); color:var(--warning); }
.pill-in-progress { background:var(--accent-soft); color:var(--accent-strong); }
.pill-waiting-client { background:var(--purple-soft); color:var(--purple); }
.pill-completed { background:var(--success-soft); color:var(--success); }
.pill-paused { background:var(--danger-soft); color:var(--danger); }

.sidebar-item { display:flex; align-items:center; gap:12px; padding:10px 14px; border-radius:10px; color:var(--text-muted); font-weight:500; font-size:14px; cursor:pointer; transition:all .15s; }
.sidebar-item:hover { background:var(--bg-elev); color:var(--text); }
.sidebar-item.active { background:var(--accent-soft); color:var(--accent-strong); font-weight:600; }

.tab-btn { position:relative; padding:12px 4px; margin:0 10px; font-size:14px; font-weight:600; color:var(--text-muted); cursor:pointer; transition:color .15s; background:transparent; border:none; }
.tab-btn:hover { color:var(--text); }
.tab-btn.active { color:var(--accent-strong); }
.tab-btn.active::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--accent); border-radius:2px; }

[data-lucide] { width:18px; height:18px; stroke-width:2; }
.icon-sm [data-lucide] { width:14px; height:14px; }

.kpi-value { font-size:32px; font-weight:800; letter-spacing:-0.02em; font-variant-numeric:tabular-nums; }

.login-bg { background: radial-gradient(1200px 500px at 10% -10%, color-mix(in oklab, var(--accent) 25%, transparent), transparent 60%), radial-gradient(900px 400px at 100% 110%, color-mix(in oklab, var(--purple) 25%, transparent), transparent 55%), var(--bg); }

@keyframes fadeInUp { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.anim-in { animation:fadeInUp .3s ease both; }
.anim-in-1 { animation-delay:.05s; } .anim-in-2 { animation-delay:.10s; } .anim-in-3 { animation-delay:.15s; }
.anim-in-4 { animation-delay:.20s; } .anim-in-5 { animation-delay:.25s; } .anim-in-6 { animation-delay:.30s; }

.modal-backdrop { position:fixed; inset:0; background:rgba(9,9,11,0.55); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; z-index:100; padding:20px; animation:fadeInUp .2s ease both; }

.toast-container { position:fixed; top:20px; z-index:200; display:flex; flex-direction:column; gap:8px; }
body[dir="rtl"] .toast-container { right:20px; } body[dir="ltr"] .toast-container { left:20px; }
.toast { background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:12px 16px; box-shadow:var(--shadow-lg); display:flex; align-items:center; gap:10px; min-width:260px; animation:fadeInUp .2s ease both; }
.toast-success { border-inline-start:3px solid var(--success); }
.toast-error { border-inline-start:3px solid var(--danger); }
.toast-info { border-inline-start:3px solid var(--accent); }

::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:var(--border-strong); border-radius:999px; border:2px solid var(--bg); }
::-webkit-scrollbar-track { background:transparent; }

.service-card { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--border); border-radius:12px; cursor:pointer; background:var(--bg-card); transition:all .15s; font-weight:500; font-size:13.5px; }
.service-card:hover { border-color:var(--accent); background:var(--accent-soft); }
.service-card.selected { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-strong); font-weight:600; }
.service-card input { accent-color:var(--accent); }

.brief-doc { background:#ffffff; color:#18181b; max-width:900px; margin:24px auto; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,0.15); overflow:hidden; }
.brief-doc-inner { padding:56px 64px; }
.brief-cover { background:linear-gradient(135deg,#4f46e5 0%,#a855f7 100%); color:white; padding:60px 64px; }
.brief-section { margin:36px 0; }
.brief-section h2 { font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:#6366f1; font-weight:700; margin:0 0 6px; }
.brief-section h3 { font-family:'Playfair Display',serif; font-size:26px; margin:0 0 16px; letter-spacing:-0.02em; }
.brief-section p, .brief-section li { line-height:1.75; color:#3f3f46; font-size:15px; }
.brief-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.brief-field { background:#fafafa; border:1px solid #eee; padding:16px 18px; border-radius:12px; }
.brief-field .k { font-size:11px; font-weight:700; color:#6366f1; text-transform:uppercase; letter-spacing:0.12em; margin-bottom:6px; }
.brief-field .v { color:#18181b; font-size:14.5px; line-height:1.7; }
.brief-divider { height:1px; background:#eee; margin:32px 0; }
.svc-chip { display:inline-block; background:#eef2ff; color:#4f46e5; padding:6px 12px; border-radius:999px; font-size:12px; font-weight:600; margin:0 6px 6px 0; }

@media print {
  body * { visibility:hidden; }
  #brief-print-area, #brief-print-area * { visibility:visible; }
  #brief-print-area { position:absolute; inset:0; padding:0 !important; background:white !important; }
  .no-print { display:none !important; }
  .brief-doc { box-shadow:none; margin:0; border-radius:0; max-width:100%; }
}

.grid-clients { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:16px; }
.hidden-x { display:none !important; }

.file-tile { display:flex; gap:12px; padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--bg-card); transition:all .15s; align-items:center; }
.file-tile:hover { border-color:var(--border-strong); background:var(--bg-elev); }

@keyframes shimmer { 0% { background-position:-400px 0; } 100% { background-position:400px 0; } }
.skel { background:linear-gradient(90deg, var(--bg-elev) 0%, var(--border) 50%, var(--bg-elev) 100%); background-size:800px 100%; animation:shimmer 1.4s linear infinite; border-radius:8px; }

.page-title { font-size:26px; font-weight:700; letter-spacing:-0.02em; }
.page-subtitle { color:var(--text-muted); font-size:14px; margin-top:4px; }

.empty { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:48px 20px; color:var(--text-muted); text-align:center; border:1px dashed var(--border-strong); border-radius:12px; background:var(--bg-elev); }

@media (max-width:900px) {
  .sidebar { position:fixed; z-index:60; top:0; bottom:0; width:280px; box-shadow:var(--shadow-lg); }
  body[dir="rtl"] .sidebar { right:0; transform:translateX(100%); }
  body[dir="ltr"] .sidebar { left:0; transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0) !important; }
  .mobile-hide { display:none; }
}
.mobile-toggle { display:none; }
@media (max-width:900px) { .mobile-toggle { display:inline-flex; } }

/* ============= V2 additions ============= */
/* Modal cards */
.modal-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); width:100%; max-height:92vh; overflow:auto; }

/* Tables */
.table { width:100%; border-collapse:collapse; }
.table th, .table td { padding:12px 14px; text-align:start; border-bottom:1px solid var(--border); font-size:13.5px; vertical-align:middle; }
.table th { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-muted); background:var(--bg-elev); }
.table tr:last-child td { border-bottom:none; }
.table .text-right { text-align:end; }
.table .text-center { text-align:center; }

/* Timeline */
.timeline { position:relative; padding-inline-start:24px; }
.timeline::before { content:''; position:absolute; top:0; bottom:0; inset-inline-start:8px; width:2px; background:var(--border); }
.timeline-item { position:relative; padding:0 0 20px; }
.timeline-dot { position:absolute; inset-inline-start:-24px; top:0; width:20px; height:20px; border-radius:999px; display:flex; align-items:center; justify-content:center; }
.timeline-body { padding-inline-start:6px; }

/* Template cards (brief picker) */
.template-card { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:14px; border:1px solid var(--border); border-radius:12px; background:var(--bg-card); cursor:pointer; transition:all .15s; text-align:start; }
.template-card:hover { border-color:var(--accent); background:var(--accent-soft); transform:translateY(-1px); }

/* Sidebar override via settings */
.sidebar-item.active { background:var(--sidebar-active-bg, var(--accent-soft)); color:var(--sidebar-active-text, var(--accent-strong)); }

/* Login bg image support */
.login-bg { background: radial-gradient(1200px 500px at 10% -10%, color-mix(in oklab, var(--accent) 25%, transparent), transparent 60%), radial-gradient(900px 400px at 100% 110%, color-mix(in oklab, var(--purple) 25%, transparent), transparent 55%), var(--bg); }

/* Button variants */
.btn-primary { background: var(--btn-color, var(--accent)) !important; }
