/* ═══════════════════════════════════════════════════════════════════════════════
   ASSETS BASE — styles communs à tous les modules
   Chaque module charge ce fichier + son propre assets/app.css
═══════════════════════════════════════════════════════════════════════════════ */

/* ── RESET ── */
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Arial,sans-serif;background:#f4f6f8;color:#1f2937}
button,input,select,textarea,a{font:inherit}

/* ── LAYOUT SHELL ── */
.app-shell{display:grid;grid-template-columns:220px 1fr 380px;height:100vh}
.sidebar{background:#fff;border-right:1px solid #dde3ea;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.right-panel{background:#fff;border-left:1px solid #dde3ea;display:flex;flex-direction:column;overflow:hidden}
.center-panel{display:flex;flex-direction:column;min-width:0;overflow:hidden}

/* ── PANEL HEAD ── */
.panel-head{padding:12px 14px 8px;border-bottom:1px solid #eef2f6;flex-shrink:0}
.panel-head h2{margin:0 0 8px;font-size:16px;font-weight:700}
.panel-head input{width:100%;padding:7px 10px;border:1px solid #cfd8e3;border-radius:10px;font-size:13px}
.panel-head.second{border-top:1px solid #eef2f6}

/* ── TOPBAR ── */
.topbar{display:flex;gap:8px;align-items:center;padding:10px;border-bottom:1px solid #dde3ea;background:#fff;flex-shrink:0}
.topbar button,.topbar-link{padding:7px 12px;border:1px solid #cfd8e3;border-radius:10px;background:#fff;cursor:pointer;font-size:13px;color:#1f2937;transition:background .1s;text-decoration:none}
.topbar button:hover,.topbar-link:hover{background:#f4f6f8}
.topbar button.tab-on{background:#1d4ed8;color:#fff;border-color:#1d4ed8}
.topbar button.btn-primary{background:#1d4ed8;color:#fff;border-color:#1d4ed8}
.topbar button.btn-primary:hover{background:#1e40af}
.topbar button.btn-danger{background:#fef2f2;color:#b91c1c;border-color:#fca5a5}
.topbar button.btn-danger:hover{background:#fee2e2}
.topbar input{padding:7px 10px;border:1px solid #cfd8e3;border-radius:10px;font-size:13px;min-width:180px}
.topbar-sep{width:1px;height:22px;background:#dde3ea}

/* ── WORKSPACE ── */
.workspace-scroller{position:relative;overflow:auto;flex:1;background-image:linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px);background-size:20px 20px}
.workspace{position:relative;padding:20px}

/* ── FORM BLOCKS ── */
.form-block{margin-bottom:12px}
.form-block label{display:block;margin-bottom:5px;font-weight:700;font-size:13px;color:#374151}
.form-block input,.form-block select,.form-block textarea{width:100%;padding:8px 10px;border:1px solid #cfd8e3;border-radius:10px;font-size:13px}
.form-block input:focus,.form-block select:focus,.form-block textarea:focus{outline:none;border-color:#3b82f6}
.form-block textarea{resize:vertical;min-height:60px}

/* ── COMPOSANTS COMMUNS ── */
.empty-box{padding:12px;border:1px dashed #cfd8e3;border-radius:12px;color:#64748b;background:#fafcff;font-size:13px}
.prop-sep{height:1px;background:#eef2f6;margin:10px 0}
.prop-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #f1f5f9;font-size:13px}
.prop-row:last-child{border-bottom:none}
.pk{color:#64748b}
.pv{font-weight:600}
.icon-btn{padding:4px 8px;border:1px solid #d3dbe6;border-radius:7px;background:#fff;cursor:pointer;font-size:12px}
.icon-btn:hover{background:#f4f6f8}
.icon-btn.del:hover{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}
.drop-zone{border:2px dashed #dbe3ed;border-radius:12px;padding:6px 8px;background:#fcfdff}
.drop-zone.over{background:#eef6ff;border-color:#60a5fa}
.card-tabs{display:flex;border-bottom:1px solid #edf2f7;margin-bottom:8px}
.card-tab{padding:5px 12px;font-size:12px;cursor:pointer;border-bottom:2px solid transparent;color:#64748b}
.card-tab:hover{color:#1f2937}
.card-tab.on{color:#1d4ed8;border-bottom-color:#1d4ed8;font-weight:600}
.tab-empty{padding:12px;text-align:center;font-size:12px;color:#94a3b8;font-style:italic}
.save-btn{width:100%;padding:8px;background:#1d4ed8;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;margin:10px 0 0}
.save-btn:hover{background:#1e40af}
.btn-full{width:100%;padding:9px;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;margin-top:6px}

/* ── MODALS ── */
.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:300}
.modal{background:#fff;border:1px solid #dde3ea;border-radius:16px;padding:20px;width:420px;max-height:92vh;overflow-y:auto;box-shadow:0 20px 60px rgba(15,23,42,.2)}
.modal h3{margin:0 0 14px;font-size:16px;font-weight:700}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.modal-row{margin:0}
.modal-row.full{grid-column:1/-1}
.modal-row label{display:block;margin-bottom:4px;font-weight:700;font-size:12px;color:#374151}
.modal-row input,.modal-row select,.modal-row textarea{width:100%;padding:7px 10px;border:1px solid #cfd8e3;border-radius:10px;font-size:13px}
.modal-row input:focus,.modal-row select:focus{outline:none;border-color:#3b82f6}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:12px;border-top:1px solid #eef2f6}
.modal-actions button{padding:8px 16px;border:1px solid #cfd8e3;border-radius:10px;background:#fff;cursor:pointer;font-size:13px}
.btn-primary{background:#1d4ed8 !important;color:#fff !important;border-color:#1d4ed8 !important}
.btn-primary:hover{background:#1e40af !important}
.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer}
.btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8}
.topbar .btn-secondary{background:#fff;color:#374151;border-color:#d1d5db}
.topbar .btn-secondary:hover{background:#f1f5f9}

/* ── TOAST ── */
.toast{position:fixed;bottom:18px;right:18px;background:#1f2937;color:#fff;padding:9px 16px;border-radius:10px;font-size:13px;z-index:999;opacity:0;transition:opacity .2s;pointer-events:none;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.toast.show{opacity:1}
