/* ══════════════════════════════════════════════════════════
   RDR-IT CV Builder — app.css v4
   ══════════════════════════════════════════════════════════ */

/* ── Variables ── */
:root,[data-theme="dark"]{
  --bg:#0d1117;--surface:#161b22;--card:#1c2128;
  --accent:#2ea8ff;--accent2:#00e5c0;
  --t1:#e6edf3;--t2:#8b949e;--t3:#484f58;
  --border:rgba(255,255,255,0.07);--border-s:rgba(255,255,255,0.15);
  --nav:rgba(13,17,23,0.95);
  --shadow:0 8px 32px rgba(0,0,0,.4);--shadow-card:0 2px 8px rgba(0,0,0,.3);
  --danger:#ef4444;--success:#22c55e;--warn:#f59e0b;
}
[data-theme="light"]{
  --bg:#f5f7fa;--surface:#fff;--card:#fff;
  --accent:#1e73be;--accent2:#0a9b7d;
  --t1:#1a1a2e;--t2:#4a5568;--t3:#a0aec0;
  --border:rgba(0,0,0,.08);--border-s:rgba(0,0,0,.15);
  --nav:rgba(255,255,255,.97);
  --shadow:0 4px 20px rgba(0,0,0,.1);--shadow-card:0 2px 8px rgba(0,0,0,.08);
}

/* ── Reset ── */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;font-family:'DM Sans',sans-serif;font-size:14px;background:var(--bg);color:var(--t1);transition:background .3s,color .3s}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-s);border-radius:3px}

/* ── Layout ── */
#app{display:flex;flex-direction:column;height:100vh}
#main{display:flex;flex:1;overflow:hidden;min-height:0}

/* ── Topbar ── */
#topbar{height:52px;background:var(--nav);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 14px;gap:8px;flex-shrink:0;backdrop-filter:blur(12px);z-index:100}
.logo{font-family:'Syne',sans-serif;font-weight:800;font-size:19px;letter-spacing:-.5px;
  text-decoration:none;color:var(--t1);display:flex;align-items:center;white-space:nowrap}
.logo .it{color:var(--accent)}
.logo .sep{color:var(--t3);margin:0 8px;font-weight:400;font-size:13px}
.logo .app-label{color:var(--t2);font-weight:500;font-size:13px}
.cv-selector{background:var(--card);border:1px solid var(--border-s);border-radius:6px;
  color:var(--t1);padding:5px 9px;font-family:'DM Sans',sans-serif;font-size:12.5px;
  cursor:pointer;max-width:155px;flex-shrink:0}
.cv-selector option{background:var(--card)}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:6px;flex-shrink:0}

/* ── Sidebar ── */
#sidebar{width:208px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);
  overflow-y:auto;display:flex;flex-direction:column;padding-bottom:10px}
.progress-wrap{padding:13px 13px 9px}
.progress-meta{font-size:11px;color:var(--t3);display:flex;justify-content:space-between;margin-bottom:5px}
.progress-bg{height:4px;background:var(--card);border-radius:2px;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));
  border-radius:2px;transition:width .5s ease;width:0%}
.nav-divider{height:1px;background:var(--border);margin:5px 10px}
.nav-group-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--t3);padding:9px 13px 3px}
.nav-item{display:flex;align-items:center;gap:9px;padding:8px 11px;cursor:pointer;
  border-radius:6px;margin:1px 5px;transition:background .15s,color .15s;
  color:var(--t2);font-size:12.5px;font-weight:500;position:relative;user-select:none}
.nav-item:hover{background:rgba(46,168,255,.06);color:var(--t1)}
.nav-item.active{background:rgba(46,168,255,.1);color:var(--accent)}
.nav-item.active::before{content:'';position:absolute;left:-5px;top:50%;transform:translateY(-50%);
  width:3px;height:18px;background:var(--accent);border-radius:0 3px 3px 0}
.ni{width:15px;height:15px;flex-shrink:0;opacity:.65}
.nav-item.active .ni{opacity:1}
.nav-badge{margin-left:auto;font-size:9.5px;background:var(--card);border:1px solid var(--border);
  border-radius:10px;padding:1px 5px;color:var(--t3);flex-shrink:0;white-space:nowrap}
.nav-badge.ok{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.25);color:#22c55e}

/* ── Editor ── */
#editor{flex:1;overflow-y:auto;padding:20px 24px;background:var(--bg);min-width:0}
.panel{display:none}.panel.active{display:block}
.panel-header{margin-bottom:18px}
.panel-title{font-family:'Syne',sans-serif;font-size:19px;font-weight:700;color:var(--t1)}
.panel-sub{font-size:12.5px;color:var(--t3);margin-top:3px}

/* ── Forms ── */
.form-group{margin-bottom:13px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}
label{display:block;font-size:11px;font-weight:700;color:var(--t2);margin-bottom:4px;
  text-transform:uppercase;letter-spacing:.5px}
input[type=text],input[type=email],input[type=url],input[type=tel],textarea,select{
  width:100%;background:var(--card);border:1px solid var(--border-s);border-radius:6px;
  color:var(--t1);padding:7px 11px;font-family:'DM Sans',sans-serif;font-size:13px;
  transition:border-color .2s,box-shadow .2s;outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(46,168,255,.1)}
textarea{resize:vertical;min-height:78px;line-height:1.6}
.char-count{font-size:11px;color:var(--t3);text-align:right;margin-top:2px}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:6px;
  font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;
  transition:.15s;border:1.5px solid transparent;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-primary:hover{background:var(--accent2);border-color:var(--accent2);transform:translateY(-1px);box-shadow:0 4px 12px rgba(46,168,255,.3)}
.btn-ghost{background:var(--card);border-color:var(--border-s);color:var(--t2)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-outline{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-outline:hover{background:rgba(46,168,255,.08)}
.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}
.btn-danger:hover{background:rgba(239,68,68,.08)}
.btn-sm{padding:5px 11px;font-size:12px;border-radius:5px}
.btn-add{width:100%;padding:9px;border:1.5px dashed var(--border-s);background:transparent;
  border-radius:7px;color:var(--t3);font-family:'DM Sans',sans-serif;font-size:12.5px;
  font-weight:600;cursor:pointer;transition:.15s;display:flex;align-items:center;
  justify-content:center;gap:6px;margin-top:4px}
.btn-add:hover{border-color:var(--accent);color:var(--accent);background:rgba(46,168,255,.05)}
.btn-icon{background:none;border:none;cursor:pointer;color:var(--t3);padding:4px;
  border-radius:5px;transition:.15s;display:flex;align-items:center}
.btn-icon:hover{background:rgba(46,168,255,.1);color:var(--accent)}
.btn-icon.del:hover{background:rgba(239,68,68,.1);color:var(--danger)}
.btn-icon-del{background:none;border:none;cursor:pointer;color:var(--t3);padding:5px;
  border-radius:6px;transition:.15s;display:flex;align-items:center}
.btn-icon-del:hover{background:rgba(239,68,68,.1);color:var(--danger)}
.kofi-btn{gap:6px}

/* ── Item cards ── */
.items-list{display:flex;flex-direction:column;gap:7px;margin-bottom:8px}
.item-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .2s}
.item-card:hover{border-color:var(--border-s)}
.item-card-header{display:flex;align-items:center;gap:7px;padding:10px 12px;cursor:pointer}
.drag-handle{color:var(--t3);cursor:grab;font-size:14px;opacity:.4;flex-shrink:0}
.icard-title{font-size:12.5px;font-weight:600;color:var(--t1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icard-sub{font-size:11px;color:var(--t3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icard-actions{display:flex;gap:4px;flex-shrink:0}
.chevron{transition:transform .2s;color:var(--t3);flex-shrink:0}
.item-card:not(.collapsed) .chevron{transform:rotate(180deg)}
.item-card-body{padding:0 12px 12px;border-top:1px solid var(--border)}
.item-card.collapsed .item-card-body{display:none}
.item-card.dragging{opacity:.45;border-style:dashed}
.item-card.drag-over{border-color:var(--accent)}

/* ── Photo section ── */
.photo-section{display:flex;align-items:flex-start;gap:14px;padding:13px;
  background:var(--card);border:1px solid var(--border);border-radius:9px;margin-bottom:14px}
.photo-preview-wrap{flex-shrink:0}
.photo-thumb{width:68px;height:68px;border-radius:50%;background:var(--surface);
  border:2px solid var(--border-s);display:flex;align-items:center;justify-content:center;overflow:hidden}
.photo-right{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.photo-mode-row{display:flex;gap:5px;flex-wrap:wrap}
.pmode-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;
  border:1.5px solid var(--border-s);border-radius:6px;background:var(--card);cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:11.5px;font-weight:600;color:var(--t2);
  transition:.15s;white-space:nowrap}
.pmode-btn:hover{border-color:var(--accent);color:var(--accent)}
.pmode-btn.active{border-color:var(--accent);background:rgba(46,168,255,.1);color:var(--accent)}

/* ── Socials ── */
.social-list{display:flex;flex-direction:column;gap:6px;margin-bottom:7px}
.social-row{display:flex;align-items:center;gap:7px;background:var(--card);
  border:1px solid var(--border);border-radius:6px;padding:7px 9px}
.social-icon{width:26px;height:26px;border-radius:5px;display:flex;align-items:center;
  justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.social-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.social-row input{flex:1;background:transparent;border:none;color:var(--t1);font-family:'DM Sans',sans-serif;font-size:12.5px;outline:none}
.social-row select{background:var(--card);border:1px solid var(--border-s);border-radius:4px;
  color:var(--t1);font-family:'DM Sans',sans-serif;font-size:11.5px;padding:3px 6px;cursor:pointer}

/* ── Chips compétences ── */
.chips-wrap{display:flex;flex-wrap:wrap;min-height:28px;gap:0;margin-bottom:5px}
.skill-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:14px;
  background:rgba(46,168,255,.1);border:1px solid rgba(46,168,255,.2);color:var(--accent);
  font-size:11.5px;font-weight:600;margin:2px}
.skill-chip button{background:none;border:none;cursor:pointer;color:inherit;opacity:.6;font-size:13px;line-height:1;padding:0}
.skill-chip button:hover{opacity:1}

/* ── Langue niveaux ── */
.lang-btns{display:flex;gap:3px}
.lang-btn{flex:1;padding:5px 2px;border:1px solid var(--border-s);background:transparent;
  border-radius:4px;color:var(--t3);font-size:10px;font-weight:600;cursor:pointer;
  transition:.15s;text-align:center;line-height:1.3;font-family:'DM Sans',sans-serif}
.lang-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}
.lang-btn:disabled{opacity:.3;cursor:not-allowed}

/* ── Toggle ── */
.toggle-row{display:flex;align-items:center;gap:10px;cursor:pointer;padding:7px 0;user-select:none}
.toggle-sw{width:34px;height:19px;border-radius:10px;background:var(--border-s);position:relative;flex-shrink:0;transition:.2s}
.toggle-sw::after{content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.toggle-sw.on{background:var(--accent)}
.toggle-sw.on::after{left:18px}

/* ── MD Editor ── */
.md-editor{border:1px solid var(--border-s);border-radius:7px;overflow:hidden;background:var(--card)}
.md-toolbar{display:flex;align-items:center;gap:2px;padding:4px 7px;background:var(--surface);border-bottom:1px solid var(--border)}
.md-btn{background:none;border:1px solid transparent;border-radius:4px;color:var(--t2);cursor:pointer;font-size:12px;font-family:'DM Sans',sans-serif;padding:3px 7px;transition:.15s;min-width:25px;text-align:center}
.md-btn:hover{background:rgba(46,168,255,.08);border-color:var(--accent);color:var(--accent)}
.md-sep{width:1px;height:15px;background:var(--border);margin:0 4px;flex-shrink:0}
.md-tab-btn{background:none;border:1px solid transparent;border-radius:4px;color:var(--t3);cursor:pointer;font-size:11px;font-weight:600;font-family:'DM Sans',sans-serif;padding:3px 8px;transition:.15s}
.md-tab-btn.active{background:var(--accent);color:#fff}
.md-tab-btn:not(.active):hover{color:var(--t1)}
.md-editor textarea{border:none!important;border-radius:0!important;background:var(--card)!important;box-shadow:none!important;resize:vertical;min-height:75px}
.md-editor textarea:focus{box-shadow:none!important;border:none!important}
.md-hint{font-size:10px;color:var(--t3);padding:3px 10px 5px;background:var(--card);font-family:'JetBrains Mono',monospace}
.md-preview{min-height:75px;padding:10px 12px;background:var(--card)}
.md-preview-content{font-size:13px;color:var(--t1);line-height:1.65}
.md-preview-content ul,.md-preview-content ol{padding-left:16px;margin:4px 0}
.md-preview-content li{margin-bottom:2px}
.md-preview-content strong{font-weight:700}
.md-preview-content em{font-style:italic}
.md-preview-content p{margin:0 0 4px}

/* ── Block order ── */
.block-order-list{display:flex;flex-direction:column;gap:6px}
.bo-item{display:flex;align-items:center;gap:9px;padding:10px 13px;background:var(--surface);
  border:1.5px solid var(--border);border-radius:8px;cursor:grab;transition:.15s;user-select:none}
.bo-item:hover{border-color:var(--border-s)}
.bo-item.bo-hidden{opacity:.4;background:var(--card)}
.bo-drag{color:var(--t3);font-size:14px;cursor:grab}
.bo-label{flex:1;font-size:13px;font-weight:600;color:var(--t1)}
.bo-count{font-size:11px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1px 7px;color:var(--t3);min-width:22px;text-align:center;flex-shrink:0}
.bo-actions{display:flex;gap:4px;align-items:center}
.bo-actions button{background:var(--card);border:1px solid var(--border);border-radius:4px;color:var(--t2);font-size:10px;cursor:pointer;padding:3px 7px;transition:.15s}
.bo-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.bo-actions button:disabled{opacity:.25;cursor:not-allowed}
.bo-eye-btn{background:var(--card);border:1px solid var(--border);border-radius:4px;color:var(--t2);cursor:pointer;padding:4px 6px;transition:.15s;display:flex;align-items:center}
.bo-eye-btn:hover{border-color:var(--accent);color:var(--accent)}
.bo-eye-btn.off{color:var(--t3)}

/* ── Templates grid ── */
.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:13px}
.tpl-card{border:2px solid var(--border);border-radius:9px;overflow:hidden;cursor:pointer;transition:.2s;position:relative}
.tpl-card:hover{border-color:var(--border-s);transform:translateY(-2px);box-shadow:var(--shadow-card)}
.tpl-card.selected{border-color:var(--accent)}
.tpl-preview{height:120px;overflow:hidden;position:relative}
.tpl-info{padding:8px 10px;background:var(--surface)}
.tpl-name{font-size:12.5px;font-weight:700;color:var(--t1)}
.tpl-desc{font-size:10.5px;color:var(--t3);margin-top:2px}
.tpl-badge{position:absolute;top:7px;right:7px;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:9px}
.badge-free{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.25)}
.badge-premium{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.25)}
.tpl-check{position:absolute;top:7px;left:7px;width:20px;height:20px;background:var(--accent);border-radius:50%;display:none;align-items:center;justify-content:center;font-size:11px;color:#fff}
.tpl-card.selected .tpl-check{display:flex}
.tpl-premium-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;backdrop-filter:blur(2px)}
.tpl-lock{font-size:22px}
.tpl-lock-text{font-size:10px;color:#f59e0b;font-weight:700;text-align:center;padding:0 8px}

/* ── Preview panel ── */
#preview-panel{width:390px;flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;transition:width .3s ease,opacity .3s ease;overflow:hidden}
#preview-panel.hidden{width:0!important;opacity:0;border:none}
.preview-toolbar{height:42px;display:flex;align-items:center;padding:0 13px;gap:7px;border-bottom:1px solid var(--border);flex-shrink:0}
.preview-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--t3);flex:1}
#preview-wrap{flex:1;overflow-y:auto;padding:13px;background:#d1d5db;display:flex;flex-direction:column;align-items:center}
.preview-scale-note{font-size:10.5px;color:#6b7280;margin-bottom:7px;text-align:center}
#preview-container{width:100%;position:relative}
#preview-frame{width:794px;height:1123px;border:none;background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.3);border-radius:2px;transform-origin:top left;display:block}
.preview-loading{display:flex;align-items:center;gap:8px;color:#6b7280;font-size:12px;padding:20px;justify-content:center}
.spinner{width:16px;height:16px;border:2px solid #d1d5db;border-top-color:#6b7280;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Toggle preview ── */
.preview-toggle-label{position:relative;display:flex;align-items:center;gap:7px;cursor:pointer;font-size:12px;color:var(--t2);user-select:none}
.preview-toggle-label input[type="checkbox"]{display:none}
.toggle-track{width:32px;height:18px;border-radius:9px;background:var(--border-s);position:relative;transition:background .2s;flex-shrink:0}
.toggle-track::after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;top:3px;left:3px;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.preview-toggle-label input:checked + .toggle-track{background:var(--accent)}
.preview-toggle-label input:checked + .toggle-track::after{left:17px}

/* ── Info box ── */
.info-box{display:flex;gap:10px;padding:11px 13px;border-radius:7px;margin-bottom:13px;border:1px solid}
.info-box.info{background:rgba(46,168,255,.07);border-color:rgba(46,168,255,.2)}
.info-box.warning{background:rgba(245,158,11,.07);border-color:rgba(245,158,11,.2)}
.info-box.success{background:rgba(34,197,94,.07);border-color:rgba(34,197,94,.2)}
.ib-icon{font-size:15px;flex-shrink:0;margin-top:1px}
.ib-text{font-size:12px;color:var(--t2);line-height:1.6}

/* ── Modal ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.modal-bg.open{display:flex}
.modal{background:var(--surface);border:1px solid var(--border-s);border-radius:12px;width:440px;max-width:92vw;padding:22px;box-shadow:var(--shadow)}
.modal-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;margin-bottom:5px}
.modal-sub{font-size:12.5px;color:var(--t2);margin-bottom:16px}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}

/* ── Modal aperçu ── */
.modal-preview-inner{width:94vw!important;max-width:1200px!important;height:91vh;padding:0!important;display:flex;flex-direction:column;overflow:hidden}
.modal-preview-header{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--border);flex-shrink:0}
.modal-preview-body{flex:1;overflow:auto;background:#d1d5db;display:flex;align-items:flex-start;justify-content:center;padding:20px;position:relative}
.modal-preview-loading{display:flex;align-items:center;gap:10px;color:#6b7280;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
#modal-preview-frame{width:210mm;height:297mm;border:none;background:#fff;box-shadow:0 8px 40px rgba(0,0,0,.35);border-radius:2px;flex-shrink:0}

/* ── Éditeur visuel modale ── */
.modal-ve{width:680px!important;max-width:94vw!important;max-height:88vh;padding:0!important;display:flex;flex-direction:column;overflow:hidden}
.ve-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}
.ve-tabs{display:flex;gap:3px;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:3px}
.ve-tab{padding:4px 13px;border:none;border-radius:5px;background:transparent;color:var(--t2);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
.ve-tab.active{background:var(--accent);color:#fff}
.ve-body{flex:1;overflow-y:auto;padding:14px 18px}
.ve-info{font-size:11.5px;color:var(--t3);padding:8px 12px;background:var(--card);border-radius:7px;margin-bottom:13px;border:1px solid var(--border)}
.ve-structure{display:flex;flex-direction:column;gap:7px}

/* Blocs éditeur visuel */
.ve-block{background:var(--surface);border:1.5px solid var(--border);border-radius:8px;overflow:hidden;transition:.15s;cursor:grab}
.ve-block:hover{border-color:var(--border-s)}
.ve-block.ve-hidden{opacity:.4;border-style:dashed}
.ve-block.ve-drag-over{border-color:var(--accent);background:rgba(46,168,255,.04)}
.ve-block.ve-dragging{opacity:.45;border-style:dashed}
.ve-block-header{display:flex;align-items:center;gap:8px;padding:10px 13px}
.ve-drag-handle{color:var(--t3);font-size:14px;cursor:grab;flex-shrink:0}
.ve-block-title{flex:1;font-size:13px;font-weight:700;color:var(--t1)}
.ve-block-count{font-size:11px;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:1px 7px;color:var(--t3);min-width:22px;text-align:center;flex-shrink:0}
.ve-block-actions{display:flex;gap:4px;align-items:center}
.ve-btn{background:var(--card);border:1px solid var(--border);border-radius:4px;color:var(--t2);font-size:10px;cursor:pointer;padding:3px 7px;transition:.15s;font-family:'DM Sans',sans-serif}
.ve-btn:hover:not(.disabled):not(:disabled){border-color:var(--accent);color:var(--accent)}
.ve-btn.disabled,.ve-btn:disabled{opacity:.25;cursor:not-allowed}
.ve-btn-eye{background:var(--card);border:1px solid var(--border);border-radius:4px;color:var(--t2);cursor:pointer;padding:4px 6px;transition:.15s;display:flex;align-items:center}
.ve-btn-eye:hover{border-color:var(--accent);color:var(--accent)}
.ve-btn-eye.off{color:var(--t3)}
/* Items dans blocs */
.ve-items{border-top:1px solid var(--border);padding:6px 8px 8px 34px;display:flex;flex-direction:column;gap:3px}
.ve-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:5px;background:var(--card);border:1px solid var(--border)}
.ve-item.ve-item-hidden{opacity:.38}
.ve-item-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}
.ve-item.ve-item-hidden .ve-item-dot{background:var(--t3)}
.ve-item-label{flex:1;font-size:12px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ve-item-eye{background:none;border:none;cursor:pointer;color:var(--t3);padding:2px;display:flex;align-items:center;border-radius:3px;transition:.15s;flex-shrink:0}
.ve-item-eye:hover{color:var(--accent)}

/* ── Toast ── */
#toast{position:fixed;bottom:18px;right:18px;background:var(--card);border:1px solid var(--border-s);
  border-radius:9px;padding:10px 15px;font-size:12.5px;font-weight:600;color:var(--t1);
  box-shadow:var(--shadow);transform:translateY(60px);opacity:0;transition:.3s;z-index:9999;
  display:flex;align-items:center;gap:7px;pointer-events:none}
#toast.show{transform:translateY(0);opacity:1}

/* ── Theme toggle ── */
#theme-toggle{width:40px;height:22px;border-radius:11px;border:1.5px solid var(--border-s);cursor:pointer;padding:2px;background:#374151;transition:.3s;position:relative;flex-shrink:0;outline:none;appearance:none;overflow:visible}
[data-theme="light"] #theme-toggle{background:#3b82f6;border-color:rgba(59,130,246,.5)}
#theme-toggle::after{content:'';position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;top:50%;transform:translateY(-50%);left:3px;transition:.3s;box-shadow:0 1px 3px rgba(0,0,0,.4)}
[data-theme="light"] #theme-toggle::after{left:20px}

/* ── Lang selector ── */
.lang-selector{background:var(--card);border:1px solid var(--border-s);border-radius:6px;color:var(--t2);padding:4px 7px;font-family:'DM Sans',sans-serif;font-size:12px;cursor:pointer;flex-shrink:0}
.lang-selector option{background:var(--card)}
.lang-selector:hover{border-color:var(--accent);color:var(--accent)}

/* ── Privacy panel ── */
.privacy-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.privacy-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:13px}
.privacy-card-icon{font-size:22px;margin-bottom:7px}
.privacy-card-title{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:5px}
.privacy-card-desc{font-size:11.5px;color:var(--t2);line-height:1.6}
.privacy-card-desc a{color:var(--accent)}

/* ── Storage info ── */
#storage-info pre{white-space:pre-wrap;word-break:break-all}

/* ── Éditeur visuel avancé ── */
.ve-adv-sections { display: flex; flex-direction: column; gap: 0; }
.ve-adv-section { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px; margin-bottom: 14px; }
.ve-adv-section-title { display: flex; align-items: center; justify-content: space-between; font-family: 'Syne', sans-serif; font-size: 13px; font-weight: 700; color: var(--t1); margin-bottom: 14px; }
.ve-adv-row { margin-bottom: 12px; }
.ve-adv-row:last-child { margin-bottom: 0; }
.ve-adv-label { display: block; font-size: 11px; font-weight: 700; color: var(--t2); margin-bottom: 5px; text-transform: uppercase; letter-spacing: .5px; }
.ve-adv-control { display: flex; align-items: center; gap: 7px; }
.ve-adv-control select, .ve-adv-control input[type=text] { flex: 1; }
.ve-adv-control input[type=range] { flex: 1; accent-color: var(--accent); }
.ve-adv-preview-text { margin-top: 6px; font-size: 13px; color: var(--t2); padding: 7px 10px; background: var(--card); border-radius: 5px; border: 1px solid var(--border); }
.ve-adv-color-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ve-adv-color-item { }
.color-swatch-wrap { display: flex; align-items: center; gap: 8px; flex: 1; }
.color-input { width: 36px; height: 32px; border: 1px solid var(--border-s); border-radius: 6px; cursor: pointer; padding: 2px; background: var(--card); flex-shrink: 0; }
.color-hex { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; color: var(--t2); }
.ve-reset-btn { background: none; border: 1px solid var(--border); border-radius: 5px; color: var(--t3); cursor: pointer; padding: 4px 8px; font-size: 12px; transition: .15s; flex-shrink: 0; }
.ve-reset-btn:hover { border-color: var(--danger); color: var(--danger); }
.ve-label-input.modified { border-color: var(--accent) !important; }
.ve-adv-footer { display: flex; gap: 10px; justify-content: flex-end; margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--border); }

/* ── Éditeur HTML expert ── */
.html-tpl-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.html-tpl-card { background: var(--surface); border: 1.5px solid var(--border); border-radius: 9px; padding: 13px 15px; transition: .15s; }
.html-tpl-card:hover { border-color: var(--border-s); }
.html-tpl-card.active { border-color: var(--accent); }
.html-tpl-card-header { display: flex; align-items: flex-start; gap: 12px; }
.html-tpl-name { font-weight: 700; font-size: 13.5px; color: var(--t1); }
.html-tpl-desc { font-size: 11.5px; color: var(--t3); margin-top: 2px; }
.html-tpl-actions { display: flex; gap: 6px; align-items: center; margin-left: auto; flex-shrink: 0; }
.html-ed-header { background: var(--surface); border: 1px solid var(--border); border-radius: 9px 9px 0 0; padding: 12px 14px; border-bottom: none; }
.html-ed-meta { display: flex; gap: 8px; margin-bottom: 8px; }
.html-ed-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.html-ed-body { border: 1px solid var(--border); border-radius: 0 0 9px 9px; overflow: hidden; }
.html-ed-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 7px 12px; background: var(--card); border-bottom: 1px solid var(--border); }
.html-code-editor { width: 100%; min-height: 420px; max-height: 60vh; background: #0d1117 !important; color: #e6edf3 !important; border: none !important; border-radius: 0 !important; padding: 14px !important; font-family: 'JetBrains Mono', monospace !important; font-size: 12px !important; line-height: 1.6 !important; resize: vertical !important; outline: none !important; box-shadow: none !important; }
[data-theme="light"] .html-code-editor { background: #1e1e1e !important; }
