* { box-sizing: border-box; }
        :root {
            --bg-base: #060608; --bg-surface: #0d0d12; --bg-elevated: #13131a;
            --bg-card: #18181f; --border: #1e1e2a; --border-bright: #2a2a38;
            --text-primary: #f0f0f8; --text-secondary: #8888aa; --text-muted: #44445a;
            --accent: #6c63ff; --accent-dim: #6c63ff22; --accent-border: #6c63ff44;
            --emerald: #10d9a0; --emerald-dim: #10d9a015;
            --amber: #ffb03a; --amber-dim: #ffb03a15;
            --rose: #ff5e7d; --rose-dim: #ff5e7d15;
            --blue: #4da6ff; --blue-dim: #4da6ff15;
        }
        body.theme-light {
            --bg-base: #f3f4f8; --bg-surface: #ffffff; --bg-elevated: #eef0f6;
            --bg-card: #ffffff; --border: #e1e3ec; --border-bright: #cbcedb;
            --text-primary: #15172b; --text-secondary: #54566f; --text-muted: #9396a9;
            --accent: #564fd1; --accent-dim: #564fd11a; --accent-border: #564fd14d;
            --emerald: #0a9374; --emerald-dim: #0a937415;
            --amber: #ad7310; --amber-dim: #ad731015;
            --rose: #cc3a5e; --rose-dim: #cc3a5e15;
            --blue: #2766c2; --blue-dim: #2766c215;
        }
        body.theme-light .sidebar-overlay.active { background: rgba(20,20,35,.45); }
        body { background:var(--bg-base); color:var(--text-primary); font-family:'DM Sans',sans-serif; height:100vh; overflow:hidden; }
        h1,h2,h3,.font-display { font-family:'Syne',sans-serif; }
        ::-webkit-scrollbar { width:4px; height:4px; }
        ::-webkit-scrollbar-track { background:transparent; }
        ::-webkit-scrollbar-thumb { background:var(--border-bright); border-radius:2px; }
        .sidebar { width:260px; background:var(--bg-surface); border-right:1px solid var(--border); display:flex; flex-direction:column; flex-shrink:0; transition:transform 0.3s cubic-bezier(0.4,0,0.2,1); z-index:40; }
        .logo-area { padding:20px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:12px; }
        .logo-icon { width:38px; height:38px; background:linear-gradient(135deg,var(--accent),#9c6cff); border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:'Syne',sans-serif; font-weight:800; font-size:18px; color:white; box-shadow:0 4px 20px #6c63ff44; flex-shrink:0; }
        .logo-text { line-height:1; }
        .logo-name { font-family:'Syne',sans-serif; font-weight:800; font-size:16px; color:var(--text-primary); }
        .logo-sub { font-size:11px; color:var(--accent); font-weight:600; text-transform:uppercase; letter-spacing:0.06em; margin-top:2px; }
        .nav-section { padding:8px 12px; }
        .nav-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-muted); padding:8px 8px 4px; }
        .nav-btn { width:100%; display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:8px; font-size:13.5px; font-weight:500; color:var(--text-secondary); background:transparent; border:none; cursor:pointer; transition:all 0.15s; text-align:left; }
        .nav-btn:hover { background:var(--bg-elevated); color:var(--text-primary); }
        .nav-btn.active { background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); }
        .nav-btn svg { width:16px; height:16px; flex-shrink:0; }
        .sub-nav { padding-left:28px; padding-top:2px; padding-bottom:4px; }
        .sub-btn { display:block; width:100%; text-align:left; font-size:12px; color:var(--text-muted); padding:5px 8px; border-radius:6px; background:none; border:none; cursor:pointer; transition:all 0.15s; }
        .sub-btn:hover { color:var(--accent); background:var(--accent-dim); }
        .sidebar-footer { margin-top:auto; padding:12px; border-top:1px solid var(--border); }
        .user-card { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; background:var(--bg-elevated); }
        .user-avatar { width:32px; height:32px; background:linear-gradient(135deg,#10d9a0,#4da6ff); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:white; flex-shrink:0; }
        .user-name { font-size:13px; font-weight:600; color:var(--text-primary); }
        .user-role { font-size:11px; color:var(--text-muted); }
        .main { flex:1; display:flex; flex-direction:column; overflow:hidden; position:relative; min-width:0; }
        .topbar { height:56px; border-bottom:1px solid var(--border); display:flex; align-items:center; padding:0 24px; gap:16px; flex-shrink:0; background:var(--bg-surface); }
        .search-bar { flex:1; max-width:380px; display:flex; align-items:center; gap:8px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; padding:0 12px; height:34px; transition:border-color 0.15s; }
        .search-bar:focus-within { border-color:var(--accent); }
        .search-bar input { flex:1; background:transparent; border:none; outline:none; font-size:13px; color:var(--text-primary); font-family:'DM Sans',sans-serif; }
        .search-bar input::placeholder { color:var(--text-muted); }
        .search-bar svg { color:var(--text-muted); width:14px; height:14px; flex-shrink:0; }
        .topbar-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
        .icon-btn { width:34px; height:34px; border-radius:8px; border:1px solid var(--border); background:var(--bg-elevated); display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--text-secondary); position:relative; transition:all 0.15s; }
        .icon-btn:hover { border-color:var(--border-bright); color:var(--text-primary); }
        .icon-btn svg { width:15px; height:15px; }
        .icon-btn .dot { position:absolute; top:6px; right:6px; width:7px; height:7px; background:var(--rose); border-radius:50%; border:2px solid var(--bg-surface); }
        .tab-content { display:none; flex:1; overflow-y:auto; padding:24px; }
        .tab-content.active { display:block; }
        .stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
        .stat-card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:16px 18px; position:relative; overflow:hidden; transition:border-color 0.2s; }
        .stat-card:hover { border-color:var(--border-bright); }
        .stat-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--card-accent,var(--accent)); }
        .stat-icon { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; margin-bottom:12px; background:var(--icon-bg,var(--accent-dim)); }
        .stat-icon svg { width:16px; height:16px; color:var(--icon-color,var(--accent)); }
        .stat-value { font-family:'Syne',sans-serif; font-size:28px; font-weight:800; line-height:1; color:var(--text-primary); margin-bottom:4px; }
        .stat-label { font-size:12px; color:var(--text-muted); font-weight:500; }
        .stat-label-ar { font-size:11px; color:var(--text-muted); direction:rtl; font-family:'Segoe UI',sans-serif; margin-top:1px; }
        .stat-trend { font-size:11px; margin-top:6px; font-weight:600; }
        .stat-trend.up { color:var(--emerald); }
        .stat-trend.warn { color:var(--amber); }
        .content-grid { display:grid; grid-template-columns:1fr 320px; gap:16px; }
        .card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
        .card-header { padding:14px 18px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:12px; }
        .card-title { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; color:var(--text-primary); }
        .card-action { font-size:12px; color:var(--accent); cursor:pointer; font-weight:500; white-space:nowrap; }
        .card-action:hover { text-decoration:underline; }
        .data-table { width:100%; border-collapse:collapse; }
        .data-table th { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--text-muted); padding:10px 16px; text-align:left; background:var(--bg-elevated); border-bottom:1px solid var(--border); }
        .data-table td { padding:12px 16px; font-size:13px; border-bottom:1px solid var(--border); vertical-align:middle; }
        .data-table tr:last-child td { border-bottom:none; }
        .data-table tr:hover td { background:var(--bg-elevated); }
        .data-table td.ref { font-family:'Syne',sans-serif; font-size:12px; font-weight:700; color:var(--accent); }
        .data-table td.name { color:var(--text-primary); font-weight:500; }
        .data-table td.name-ar { font-size:11px; color:var(--text-muted); direction:rtl; font-family:'Segoe UI',sans-serif; }
        .data-table td.date { color:var(--text-muted); font-size:12px; }
        .badge { display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:20px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; }
        .badge-amber { background:var(--amber-dim); color:var(--amber); border:1px solid #ffb03a33; }
        .badge-emerald { background:var(--emerald-dim); color:var(--emerald); border:1px solid #10d9a033; }
        .badge-rose { background:var(--rose-dim); color:var(--rose); border:1px solid #ff5e7d33; }
        .badge-muted { background:var(--bg-elevated); color:var(--text-muted); border:1px solid var(--border); }
        .badge-blue { background:var(--blue-dim); color:var(--blue); border:1px solid #4da6ff33; }
        .badge-accent { background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); }
        .notif-item { padding:12px 16px; border-bottom:1px solid var(--border); display:flex; gap:10px; transition:background 0.15s; cursor:pointer; }
        .notif-item:hover { background:var(--bg-elevated); }
        .notif-item:last-child { border-bottom:none; }
        .notif-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:4px; }
        .notif-text { font-size:12.5px; color:var(--text-secondary); line-height:1.4; }
        .notif-text strong { color:var(--text-primary); font-weight:600; }
        .notif-time { font-size:11px; color:var(--text-muted); margin-top:3px; }
        .cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; padding:12px 16px; }
        .cal-header-day { font-size:10px; font-weight:700; text-transform:uppercase; color:var(--text-muted); text-align:center; padding:4px 0; }
        .cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:12px; border-radius:6px; cursor:pointer; color:var(--text-secondary); transition:all 0.15s; position:relative; }
        .cal-day:hover { background:var(--bg-elevated); color:var(--text-primary); }
        .cal-day.today { background:var(--accent); color:white; font-weight:700; }
        .cal-day.other-month { color:var(--text-muted); opacity:0.4; }
        .form-section { margin-bottom:20px; }
        .form-label { display:block; font-size:12px; font-weight:600; color:var(--text-secondary); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.05em; }
        .form-input { width:100%; background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; padding:10px 14px; font-size:13.5px; color:var(--text-primary); font-family:'DM Sans',sans-serif; outline:none; transition:border-color 0.15s; }
        .form-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-dim); }
        .form-input::placeholder { color:var(--text-muted); }
        select.form-input option { background:var(--bg-elevated); }
        .file-drop { border:2px dashed var(--border-bright); border-radius:10px; padding:24px; text-align:center; cursor:pointer; transition:all 0.2s; background:var(--bg-elevated); }
        .file-drop:hover { border-color:var(--accent); background:var(--accent-dim); }
        .file-drop svg { color:var(--text-muted); width:28px; height:28px; margin:0 auto 8px; }
        .file-drop p { font-size:13px; color:var(--text-muted); }
        .file-drop span { color:var(--accent); font-weight:600; }
        .mic-btn { width:100%; height:44px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; display:flex; align-items:center; justify-content:center; gap:8px; color:var(--text-secondary); font-size:13.5px; font-family:'DM Sans',sans-serif; cursor:pointer; transition:all 0.2s; }
        .mic-btn:hover { border-color:var(--rose); color:var(--rose); background:var(--rose-dim); }
        .mic-btn.recording { border-color:var(--rose); color:var(--rose); background:var(--rose-dim); animation:pulse 1s infinite; }
        @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.7} }
        .submit-btn { background:linear-gradient(135deg,var(--accent),#9c6cff); color:white; border:none; border-radius:8px; padding:11px 28px; font-size:14px; font-weight:700; font-family:'Syne',sans-serif; cursor:pointer; display:flex; align-items:center; gap:8px; transition:all 0.2s; box-shadow:0 4px 20px #6c63ff44; }
        .submit-btn:hover { transform:translateY(-1px); box-shadow:0 6px 28px #6c63ff55; }
        .chat-wrap { display:flex; flex-direction:column; height:100%; }
        .chat-messages { flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:16px; }
        .msg { display:flex; gap:10px; max-width:680px; width:100%; }
        .msg.user { margin-left:auto; justify-content:flex-end; }
        .msg-avatar { width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; flex-shrink:0; margin-top:2px; }
        .msg-avatar.ai { background:linear-gradient(135deg,var(--accent),#9c6cff); color:white; }
        .msg-avatar.user { background:linear-gradient(135deg,var(--emerald),#4da6ff); color:white; }
        .msg-bubble { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:10px 14px; font-size:13.5px; color:var(--text-secondary); line-height:1.5; max-width:85%; }
        .msg.user .msg-bubble { background:var(--accent-dim); border-color:var(--accent-border); color:var(--text-primary); }
        .chat-input-area { padding:16px 24px; border-top:1px solid var(--border); background:var(--bg-surface); flex-shrink:0; }
        .chat-input-wrap { background:var(--bg-elevated); border:1px solid var(--border); border-radius:10px; display:flex; align-items:flex-end; gap:8px; padding:10px 12px; transition:border-color 0.15s; }
        .chat-input-wrap:focus-within { border-color:var(--accent); }
        .chat-input-wrap textarea { flex:1; background:transparent; border:none; outline:none; font-size:13.5px; color:var(--text-primary); font-family:'DM Sans',sans-serif; resize:none; line-height:1.5; max-height:120px; }
        .chat-input-wrap textarea::placeholder { color:var(--text-muted); }
        .send-btn { width:32px; height:32px; background:var(--accent); border:none; border-radius:7px; display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; transition:all 0.15s; }
        .send-btn:hover { background:#8080ff; }
        .send-btn svg { width:14px; height:14px; color:white; }
        .notif-dropdown { position:absolute; top:44px; right:0; width:320px; background:var(--bg-card); border:1px solid var(--border-bright); border-radius:12px; box-shadow:0 20px 60px #00000088; z-index:100; display:none; }
        .notif-dropdown.open { display:block; animation:dropIn 0.15s ease-out; }
        @keyframes dropIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }
        .account-section { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; margin-bottom:16px; overflow:hidden; }
        .account-section-header { padding:14px 18px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:10px; }
        .account-section-header svg { width:16px; height:16px; color:var(--accent); }
        .account-section-body { padding:20px 18px; }
        .plan-card { background:var(--bg-elevated); border:1px solid var(--accent-border); border-radius:10px; padding:16px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
        .plan-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; text-transform:uppercase; }
        .connexion-row { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--border); font-size:13px; }
        .connexion-row:last-child { border-bottom:none; }
        .danger-btn { background:var(--rose-dim); color:var(--rose); border:1px solid #ff5e7d33; border-radius:8px; padding:9px 18px; font-size:13px; font-weight:600; cursor:pointer; transition:all 0.15s; font-family:'DM Sans',sans-serif; }
        .danger-btn:hover { background:#ff5e7d22; border-color:var(--rose); }
        .legal-content { max-width:760px; margin:0 auto; }
        .legal-section { margin-bottom:28px; }
        .legal-section h3 { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; color:var(--text-primary); margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid var(--border); }
        .legal-section p { font-size:13.5px; color:var(--text-secondary); line-height:1.7; margin-bottom:8px; }
        .legal-section ul { padding-left:18px; }
        .legal-section ul li { font-size:13.5px; color:var(--text-secondary); line-height:1.7; margin-bottom:4px; }
        .legal-lang-toggle { display:flex; gap:8px; margin-bottom:20px; }
        .lang-btn { padding:6px 16px; border-radius:6px; font-size:12px; font-weight:600; border:1px solid var(--border); background:var(--bg-elevated); color:var(--text-secondary); cursor:pointer; transition:all 0.15s; }
        .lang-btn.active { background:var(--accent-dim); color:var(--accent); border-color:var(--accent-border); }
        .upgrade-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:24px 0; }
        .upgrade-card { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; padding:24px 20px; text-align:center; transition:border-color 0.2s; position:relative; overflow:hidden; }
        .upgrade-card:hover { border-color:var(--accent); }
        .upgrade-card.recommended { border-color:var(--accent); }
        .upgrade-card.recommended::before { content:'⭐ RECOMMANDÉ'; position:absolute; top:0; left:0; right:0; background:var(--accent); color:white; font-size:10px; font-weight:700; letter-spacing:0.08em; padding:5px; text-align:center; }
        .upgrade-card.recommended .upgrade-plan-name { margin-top:20px; }
        .upgrade-plan-name { font-family:'Syne',sans-serif; font-size:18px; font-weight:800; color:var(--text-primary); margin-bottom:8px; }
        .upgrade-plan-desc { font-size:12px; color:var(--text-muted); margin-bottom:20px; line-height:1.5; }
        .upgrade-btn { width:100%; padding:10px; border-radius:8px; background:var(--accent-dim); color:var(--accent); border:1px solid var(--accent-border); font-size:13px; font-weight:700; cursor:pointer; transition:all 0.2s; font-family:'DM Sans',sans-serif; }
        .upgrade-btn:hover { background:var(--accent); color:white; }
        .std-toggle { width:50px; height:27px; border-radius:14px; background:var(--border-bright); cursor:pointer; position:relative; transition:background 0.3s; border:none; flex-shrink:0; }
        .std-toggle.on { background:var(--rose); }
        .std-knob { position:absolute; top:3.5px; left:3.5px; width:20px; height:20px; border-radius:50%; background:white; transition:left 0.3s; box-shadow:0 2px 4px rgba(0,0,0,0.3); }
        .std-toggle.on .std-knob { left:26.5px; }
        .dial-key { background:var(--bg-elevated); border:1px solid var(--border); border-radius:8px; height:44px; font-size:16px; font-weight:700; color:var(--text-primary); cursor:pointer; transition:all 0.1s; font-family:'Syne',sans-serif; display:flex; align-items:center; justify-content:center; }
        .dial-key:hover { background:var(--border-bright); }
        .dial-key:active { transform:scale(0.93); }
        .rec-toggle { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:8px; cursor:pointer; background:var(--bg-elevated); transition:all 0.2s; color:var(--text-muted); flex-shrink:0; }
        .rec-toggle.on { background:var(--rose-dim); border-color:var(--rose); color:var(--rose); }
        .rec-item { display:flex; align-items:center; gap:14px; padding:14px 18px; border-bottom:1px solid var(--border); }
        .rec-item:last-child { border-bottom:none; }
        .rec-ico { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
        .rec-act { width:30px; height:30px; border-radius:6px; background:var(--bg-elevated); border:1px solid var(--border); cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--text-secondary); transition:all 0.15s; }
        .rec-act:hover { border-color:var(--accent); color:var(--accent); }
        .fade-in { animation:fadeIn 0.25s ease-out; }
        @keyframes fadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
        .api-status { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--text-muted); padding:4px 8px; }
        .api-dot { width:6px; height:6px; border-radius:50%; }
        .api-dot.connected { background:var(--emerald); box-shadow:0 0 6px var(--emerald); }
        .rtl-section { direction:rtl; font-family:'Segoe UI',Tahoma,Arial,sans-serif; margin-top:24px; padding-top:24px; border-top:1px solid var(--border); }
        .mobile-hamburger { display:none !important; }
        .sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); backdrop-filter:blur(2px); z-index:35; }
        .sidebar-overlay.active { display:block; }
        @media(max-width:1024px) { .stats-grid{grid-template-columns:repeat(2,1fr)} .content-grid{grid-template-columns:1fr} .upgrade-grid{grid-template-columns:1fr} }
        @media(max-width:768px) {
            body{overflow:hidden}
            .sidebar{position:fixed;top:0;left:0;bottom:0;height:100%;width:280px;transform:translateX(-100%);box-shadow:20px 0 60px rgba(0,0,0,.6);z-index:50;overflow-y:auto;flex-shrink:0}
            .sidebar.active{transform:translateX(0)}
            .main{width:100vw;flex:1 0 100%}
            .mobile-hamburger{display:flex !important}
            .topbar{padding:0 12px;gap:10px} .search-bar{max-width:none;flex:1} .tab-content{padding:16px}
            .topbar-actions .icon-btn:last-child{display:none}
            .notif-dropdown{width:290px;right:-10px} .chat-input-area{padding:12px 16px}
        }
        @media(max-width:480px) { .stats-grid{grid-template-columns:repeat(2,1fr);gap:10px} .stat-value{font-size:22px} .search-bar{max-width:160px} .upgrade-grid{grid-template-columns:1fr} }
        .app-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.7); backdrop-filter:blur(3px); z-index:300; align-items:center; justify-content:center; padding:20px; }
        .app-modal-overlay.active { display:flex; }
        .app-modal-box { background:var(--bg-card); border:1px solid var(--border-bright); border-radius:14px; width:100%; max-width:480px; max-height:88vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.6); }
        .app-modal-box.wide { max-width:640px; }
        .app-modal-header { padding:16px 20px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-shrink:0; }
        .app-modal-title { font-family:'Syne',sans-serif; font-size:15px; font-weight:700; color:var(--text-primary); display:flex; align-items:center; gap:8px; }
        .app-modal-title svg { width:16px; height:16px; color:var(--accent); }
        .app-modal-close { width:28px; height:28px; border-radius:7px; border:1px solid var(--border); background:var(--bg-elevated); display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--text-secondary); transition:all .15s; flex-shrink:0; }
        .app-modal-close:hover { color:var(--rose); border-color:var(--rose); }
        .app-modal-body { padding:20px; overflow-y:auto; flex:1; }
        .app-modal-footer { padding:14px 20px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:10px; flex-shrink:0; }
        .event-item { background:var(--bg-elevated); border:1px solid var(--border); border-radius:10px; padding:12px 14px; margin-bottom:10px; }
        .event-item-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
        .event-item-title { font-size:13.5px; font-weight:700; color:var(--text-primary); font-family:'Syne',sans-serif; }
        .event-item-meta { font-size:12px; color:var(--text-secondary); margin-top:6px; display:flex; flex-wrap:wrap; gap:10px; }
        .event-item-meta span { display:flex; align-items:center; gap:4px; }
        .event-item-meta svg { width:12px; height:12px; color:var(--text-muted); flex-shrink:0; }
        .event-del-btn { width:26px; height:26px; border-radius:6px; border:1px solid var(--border); background:transparent; color:var(--text-muted); display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; transition:all .15s; }
        .event-del-btn:hover { color:var(--rose); border-color:var(--rose); background:var(--rose-dim); }
        .event-empty { text-align:center; padding:28px 10px; color:var(--text-muted); font-size:13px; }
        .event-empty svg { width:30px; height:30px; color:var(--text-muted); margin:0 auto 10px; opacity:.6; }
        .seg-toggle { display:flex; gap:6px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:9px; padding:3px; margin-bottom:18px; }
        .seg-toggle button { flex:1; padding:8px; border-radius:6px; border:none; background:transparent; color:var(--text-secondary); font-size:12.5px; font-weight:600; cursor:pointer; transition:all .15s; font-family:'DM Sans',sans-serif; display:flex; align-items:center; justify-content:center; gap:6px; }
        .seg-toggle button svg { width:13px; height:13px; }
        .seg-toggle button.active { background:var(--accent); color:white; }
        .capture-mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
        @media(max-width:680px) { .capture-mode-grid{grid-template-columns:1fr} }
        .capture-source-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin-bottom:8px; text-align:center; }
        .ai-panel { background:var(--bg-elevated); border:1px solid var(--accent-border); border-radius:12px; padding:18px; margin-top:20px; }
        .ai-panel-header { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
        .ai-panel-header svg { width:16px; height:16px; color:var(--accent); }
        .ai-panel-header span { font-family:'Syne',sans-serif; font-weight:700; font-size:13.5px; color:var(--text-primary); }
        .ai-block { margin-bottom:14px; }
        .ai-block:last-child { margin-bottom:0; }
        .ai-block-label { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--accent); margin-bottom:6px; }
        .ai-block-text { font-size:13px; color:var(--text-secondary); line-height:1.6; white-space:pre-line; }
        .ai-loading { display:flex; align-items:center; gap:10px; padding:18px; color:var(--text-secondary); font-size:13px; }
        .ai-spinner { width:16px; height:16px; border-radius:50%; border:2px solid var(--border-bright); border-top-color:var(--accent); animation:spin .7s linear infinite; flex-shrink:0; }
        @keyframes spin { to { transform:rotate(360deg); } }
        .trad-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--border); }
        .trad-row:last-child { border-bottom:none; }
        .journee-banner { background:linear-gradient(120deg,var(--accent-dim),transparent); border:1px solid var(--accent-border); border-radius:14px; padding:20px 22px; margin-bottom:20px; }
        .journee-greeting { font-family:'Syne',sans-serif; font-size:18px; font-weight:800; color:var(--text-primary); margin-bottom:2px; }
        .journee-greeting-ar { font-size:13px; color:var(--text-secondary); direction:rtl; font-family:'Segoe UI',sans-serif; margin-bottom:14px; }
        .journee-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
        @media(max-width:768px) { .journee-grid{grid-template-columns:1fr} }
        .journee-card { background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:12px 14px; cursor:pointer; transition:all .15s; }
        .journee-card:hover { border-color:var(--accent); transform:translateY(-1px); }
        .journee-card-top { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
        .journee-card-top svg { width:14px; height:14px; flex-shrink:0; }
        .journee-card-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); }
        .journee-card-value { font-family:'Syne',sans-serif; font-size:20px; font-weight:800; color:var(--text-primary); }
        .journee-card-sub { font-size:11.5px; color:var(--text-secondary); margin-top:2px; }
        .journee-card-sub-ar { font-size:10.5px; color:var(--text-muted); direction:rtl; font-family:'Segoe UI',sans-serif; }
        .cmdk-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.65); backdrop-filter:blur(3px); z-index:400; align-items:flex-start; justify-content:center; padding:80px 20px 20px; }
        .cmdk-overlay.active { display:flex; }
        .cmdk-box { background:var(--bg-card); border:1px solid var(--border-bright); border-radius:14px; width:100%; max-width:560px; max-height:70vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 30px 90px rgba(0,0,0,.7); }
        .cmdk-input-wrap { display:flex; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--border); flex-shrink:0; }
        .cmdk-input-wrap svg { width:16px; height:16px; color:var(--text-muted); flex-shrink:0; }
        .cmdk-input-wrap input { flex:1; background:transparent; border:none; outline:none; font-size:14px; color:var(--text-primary); font-family:'DM Sans',sans-serif; }
        .cmdk-input-wrap input::placeholder { color:var(--text-muted); }
        .cmdk-kbd { font-size:10px; color:var(--text-muted); border:1px solid var(--border); border-radius:4px; padding:2px 6px; flex-shrink:0; }
        .cmdk-results { overflow-y:auto; flex:1; padding:8px; }
        .cmdk-section-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted); padding:10px 10px 4px; }
        .cmdk-item { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:8px; cursor:pointer; transition:background .1s; }
        .cmdk-item:hover, .cmdk-item.active { background:var(--accent-dim); }
        .cmdk-item-icon { width:32px; height:32px; border-radius:8px; background:var(--bg-elevated); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--accent); }
        .cmdk-item-icon svg { width:15px; height:15px; }
        .cmdk-item-text { min-width:0; flex:1; }
        .cmdk-item-title { font-size:13px; font-weight:600; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .cmdk-item-sub { font-size:11.5px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .cmdk-empty { padding:30px; text-align:center; color:var(--text-muted); font-size:13px; }
        .onb-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.72); backdrop-filter:blur(3px); z-index:500; align-items:center; justify-content:center; padding:20px; }
        .onb-overlay.active { display:flex; }
        .onb-box { background:var(--bg-card); border:1px solid var(--border-bright); border-radius:16px; width:100%; max-width:440px; padding:28px; text-align:center; box-shadow:0 30px 90px rgba(0,0,0,.7); }
        .onb-icon { width:56px; height:56px; border-radius:14px; background:var(--accent-dim); border:1px solid var(--accent-border); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
        .onb-icon svg { width:26px; height:26px; color:var(--accent); }
        .onb-title { font-family:'Syne',sans-serif; font-size:18px; font-weight:800; color:var(--text-primary); margin-bottom:6px; }
        .onb-title-ar { font-size:13px; color:var(--text-secondary); direction:rtl; font-family:'Segoe UI',sans-serif; margin-bottom:14px; }
        .onb-desc { font-size:13.5px; color:var(--text-secondary); line-height:1.6; margin-bottom:4px; }
        .onb-desc-ar { font-size:12.5px; color:var(--text-muted); line-height:1.7; direction:rtl; font-family:'Segoe UI',sans-serif; margin-bottom:20px; }
        .onb-dots { display:flex; justify-content:center; gap:6px; margin-bottom:20px; }
        .onb-dot { width:6px; height:6px; border-radius:50%; background:var(--border-bright); transition:all .2s; }
        .onb-dot.active { background:var(--accent); width:18px; border-radius:3px; }
        .onb-actions { display:flex; justify-content:space-between; align-items:center; gap:10px; }
        .onb-skip { font-size:12px; color:var(--text-muted); cursor:pointer; }
        .onb-skip:hover { color:var(--text-secondary); }
        .success-flash-overlay { display:none; position:fixed; inset:0; z-index:600; align-items:center; justify-content:center; pointer-events:none; }
        .success-flash-overlay.active { display:flex; }
        .success-flash-card { background:var(--bg-card); border:1px solid var(--emerald); border-radius:16px; padding:26px 34px; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.5); animation:successPop .35s cubic-bezier(.34,1.56,.64,1); }
        @keyframes successPop { from{opacity:0;transform:scale(.7)} to{opacity:1;transform:scale(1)} }
        .success-flash-overlay.closing .success-flash-card { animation:successPopOut .25s ease-in forwards; }
        @keyframes successPopOut { to{opacity:0;transform:scale(.85)} }
        .success-check-circle { width:60px; height:60px; border-radius:50%; border:2.5px solid var(--emerald); display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
        .success-check-circle svg { width:28px; height:28px; color:var(--emerald); stroke-dasharray:30; stroke-dashoffset:30; animation:successCheckDraw .35s .15s ease-out forwards; }
        @keyframes successCheckDraw { to{stroke-dashoffset:0} }
        .success-flash-text { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; color:var(--text-primary); }
        .success-flash-text-ar { font-size:12px; color:var(--text-secondary); direction:rtl; font-family:'Segoe UI',sans-serif; margin-top:3px; }
        .facture-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 18px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
        .facture-row:last-child { border-bottom:none; }
        .facture-amount { font-family:'Syne',sans-serif; font-size:16px; font-weight:800; color:var(--text-primary); }
        .pay-method-card { border:1px solid var(--border); background:var(--bg-elevated); border-radius:10px; padding:14px; cursor:pointer; transition:all .15s; text-align:center; }
        .pay-method-card:hover { border-color:var(--accent); }
        .pay-method-card.selected { border-color:var(--accent); background:var(--accent-dim); }
        .pay-method-card svg { width:22px; height:22px; color:var(--accent); margin:0 auto 8px; }
        .pay-method-card-label { font-size:12.5px; font-weight:600; color:var(--text-primary); }
        @media(max-width:480px) {
            .app-modal-box { max-width:100%; }
            .cmdk-overlay { padding:50px 12px 12px; }
            .journee-grid { grid-template-columns:1fr; }
        }
/* ══════════════════════════════════════════
   MAITREDOC-SDBX — VOILE DE CHARGEMENT
   ══════════════════════════════════════════ */
.md-loader-overlay{position:fixed;inset:0;background:var(--bg-base);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;transition:opacity .5s ease}
.md-loader-overlay.fading{opacity:0;pointer-events:none}
.md-loader-overlay.gone{display:none}
.md-rings-wrap{position:relative;width:190px;height:190px;display:flex;align-items:center;justify-content:center}
.md-ring{position:absolute;border-radius:50%;border:2px solid transparent}
.md-ring-1{width:170px;height:170px;border-top-color:#6c63ff;border-right-color:#6c63ff22;animation:ringCW 2.8s linear infinite}
.md-ring-2{width:132px;height:132px;border-top-color:#10d9a0;border-left-color:#10d9a022;animation:ringCCW 2s linear infinite}
.md-ring-3{width:96px;height:96px;border-bottom-color:#4da6ff;border-right-color:#4da6ff22;animation:ringCW 1.4s linear infinite}
.md-ring-4{width:62px;height:62px;border-top-color:#ffb03a;border-left-color:#ffb03a22;animation:ringCCW .9s linear infinite}
@keyframes ringCW{to{transform:rotate(360deg)}}
@keyframes ringCCW{to{transform:rotate(-360deg)}}
.md-loader-brand{position:absolute;font-family:'Syne',sans-serif;font-size:10.5px;font-weight:800;letter-spacing:.13em;text-align:center;line-height:1.35;animation:brandColor 4s linear infinite}
@keyframes brandColor{0%{color:#6c63ff}25%{color:#10d9a0}50%{color:#4da6ff}75%{color:#ffb03a}100%{color:#6c63ff}}
.md-loader-status{margin-top:28px;text-align:center}
.md-loader-fr{font-size:13px;color:var(--text-secondary);font-family:'DM Sans',sans-serif}
.md-loader-ar{font-size:11.5px;color:var(--text-muted);direction:rtl;font-family:'Segoe UI',sans-serif;margin-top:4px}

/* ══════════════════════════════════════════
   MES DOSSIERS — CLOUD (3 colonnes)
   ══════════════════════════════════════════ */
.cloud-wrap{display:grid;grid-template-columns:192px minmax(0,1fr) minmax(0,1fr);height:100%;overflow:hidden}
.cloud-col{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.cloud-col:last-child{border-right:none}
.cloud-topbar{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-surface);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}
.cloud-title{font-family:'Syne',sans-serif;font-size:13.5px;font-weight:700;color:var(--text-primary)}
.cloud-sync{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--emerald);white-space:nowrap}
.cloud-sync-dot{width:6px;height:6px;border-radius:50%;background:var(--emerald);box-shadow:0 0 6px var(--emerald);flex-shrink:0}
.lang-toggle{display:flex;gap:2px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:2px}
.lang-toggle button{padding:3px 9px;border-radius:4px;border:none;background:transparent;font-size:11px;font-weight:600;cursor:pointer;color:var(--text-muted);font-family:'DM Sans',sans-serif;transition:all .15s}
.lang-toggle button.on{background:var(--accent);color:white}
.cloud-nav-body{flex:1;overflow-y:auto;padding:6px 0}
.cloud-nav-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:8px 12px 3px}
.cloud-nav-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;font-size:12.5px;color:var(--text-secondary);transition:all .15s;border-left:2px solid transparent}
.cloud-nav-item:hover{background:var(--bg-elevated);color:var(--text-primary)}
.cloud-nav-item.active{background:var(--accent-dim);color:var(--accent);border-left-color:var(--accent)}
.cloud-nav-item i{font-size:14px;flex-shrink:0}
.cloud-nav-badge{margin-left:auto;font-size:10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:20px;padding:1px 6px;color:var(--text-muted);flex-shrink:0}
.cloud-nav-item.active .cloud-nav-badge{background:var(--accent);color:white;border-color:transparent}
.cloud-nav-sep{height:0.5px;background:var(--border);margin:4px 0}
.cloud-list-header{padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-surface)}
.cloud-search{display:flex;align-items:center;gap:6px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:5px 10px;margin-bottom:8px}
.cloud-search i{font-size:13px;color:var(--text-muted);flex-shrink:0}
.cloud-search input{flex:1;background:transparent;border:none;outline:none;font-size:12px;color:var(--text-primary);font-family:'DM Sans',sans-serif}
.cloud-chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
.cloud-chip{font-size:11px;padding:3px 10px;border:1px solid var(--border);border-radius:20px;cursor:pointer;background:var(--bg-elevated);color:var(--text-secondary);transition:all .15s;white-space:nowrap}
.cloud-chip.on{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}
.cloud-month-row{display:flex;align-items:center;gap:6px}
.cloud-month-btn{width:22px;height:22px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);font-size:13px;line-height:1}
.cloud-month-btn:hover{color:var(--text-primary);background:var(--bg-card)}
.cloud-month-label{font-size:12px;font-weight:500;color:var(--text-primary);min-width:80px;text-align:center}
.cloud-month-today{font-size:10.5px;padding:3px 8px;border:1px solid var(--accent-border);border-radius:4px;background:var(--accent-dim);color:var(--accent);cursor:pointer}
.cloud-list-body{flex:1;overflow-y:auto}
.cloud-row{padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.cloud-row:last-child{border-bottom:none}
.cloud-row:hover{background:var(--bg-elevated)}
.cloud-row.selected{background:var(--accent-dim)}
.cloud-row-ref{font-size:10px;font-weight:600;color:var(--accent);margin-bottom:2px}
.cloud-row-name{font-size:12.5px;font-weight:500;color:var(--text-primary)}
.cloud-row-meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}
.cloud-row-meta span{font-size:10.5px;color:var(--text-muted);display:flex;align-items:center;gap:3px}
.cloud-stats-strip{display:flex;gap:12px;padding:8px 12px;border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;font-size:11px;color:var(--text-muted)}
.cloud-stats-strip strong{color:var(--text-primary)}
.cloud-detail-top{padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0}
.cloud-detail-name{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cloud-detail-ref{font-size:11px;color:var(--accent);margin-bottom:8px}
.cloud-detail-chips{display:flex;gap:6px;flex-wrap:wrap}
.cloud-file-row{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border)}
.cloud-file-row:last-child{border-bottom:none}
.cloud-file-row:hover{background:var(--bg-elevated)}
.cfi{width:28px;height:28px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.cfi-pdf{background:#fee2e2;color:#991b1b}
.cfi-img{background:#dbeafe;color:#1e40af}
.cfi-doc{background:#e0e7ff;color:#3730a3}
.cfi-trad{background:#d1fae5;color:#065f46}
.cfi-audio{background:#fef3c7;color:#92400e}
.cfi-txt{background:#f3f4f6;color:#374151}
.cloud-file-name{font-size:12px;font-weight:500;color:var(--text-primary);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cloud-file-sub{font-size:10.5px;color:var(--text-muted)}
.cloud-file-acts{display:flex;gap:3px;flex-shrink:0}
.cloud-file-btn{width:24px;height:24px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);font-size:12px;transition:all .15s}
.cloud-file-btn:hover{color:var(--accent);border-color:var(--accent)}
.cloud-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:13px;gap:10px;padding:20px;text-align:center}
.cloud-upload-zone{margin:10px;border:1.5px dashed var(--border-bright);border-radius:8px;padding:12px;text-align:center;font-size:11.5px;color:var(--text-muted);cursor:pointer;transition:all .15s}
.cloud-upload-zone:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}
.cloud-ai-actions{display:flex;gap:6px;padding:10px 14px;border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0;flex-wrap:wrap}
.cloud-ai-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;border:1px solid var(--border-bright);background:var(--bg-elevated);color:var(--text-secondary);font-size:11.5px;cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif}
.cloud-ai-btn:hover{border-color:var(--accent);color:var(--accent)}
.cloud-ai-btn.accent-btn{border-color:var(--accent-border);background:var(--accent-dim);color:var(--accent)}
@media(max-width:900px){.cloud-wrap{grid-template-columns:160px minmax(0,1fr)}.cloud-col:last-child{display:none}}
@media(max-width:600px){.cloud-wrap{grid-template-columns:1fr}.cloud-col:not(:first-child){display:none}}

/* ══════════════════════════════════════════
   CHAT IA — AMÉLIORATIONS
   ══════════════════════════════════════════ */
.chat-typing-dots{display:flex;gap:4px;padding:4px 2px;align-items:center}
.chat-typing-dots span{width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:typingPulse 1.2s infinite ease-in-out;display:block}
.chat-typing-dots span:nth-child(2){animation-delay:.2s}
.chat-typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes typingPulse{0%,80%,100%{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}
.msg-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}
.msg-time{font-size:10px;color:var(--text-muted)}
.msg-copy-btn{font-size:10px;color:var(--accent);cursor:pointer;opacity:0;transition:opacity .15s;background:none;border:none;padding:1px 5px;border-radius:3px}
.msg-copy-btn:hover{background:var(--accent-dim)}
.msg:hover .msg-copy-btn{opacity:1}
.chat-suggestions-wrap{padding:10px 20px 0;display:flex;flex-wrap:wrap;gap:6px}
.chat-suggestion{font-size:12px;padding:6px 12px;border:1px solid var(--accent-border);background:var(--accent-dim);color:var(--accent);border-radius:20px;cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif}
.chat-suggestion:hover{background:var(--accent);color:white}
.chat-ai-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:4px}
