/* intranet.css — design commun des outils internes du Forum INCYBER
   (Portail, PDF Compressor, PDF Éditeur, Publipostage + leurs pages admin).
   Source locale : INTRANET SI/COMMUN/intranet.css
   Serveur      : /home/qisu0468/public_html/ASSETS_INCYBER/intranet/intranet.css
   URL          : https://chatbot-incyber.com/assets/intranet/intranet.css
   Référence visuelle : écran de connexion de la To-do. Chaque outil ne garde en local que son CSS propre. */

:root{
  --bg:#fffefd; --panel:#fff; --text:#26221f; --muted:#756d68; --faint:#a59d97;
  --border:#ebe6e0; --blue:#4468e6; --blue-hover:#3555c9; --blue-bg:#eaeefc;
  --violet:#7c5cd4; --violet-bg:#f1ecfb;
  --red:#e5605e; --red-bg:#fbe9e9; --red-ink:#9c2b29;
  --green:#2f8a5a; --green-bg:#e7f5ed; --green-ink:#1d5c3c;
  --field-h:40px;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0; background:var(--bg); color:var(--text); font-family:'Schibsted Grotesk', system-ui, sans-serif;}
a{color:var(--blue); text-decoration:none}

/* --- Page, fond, colonne --- */
.page{position:relative; min-height:100vh; width:100%; overflow:clip; display:flex; align-items:center; justify-content:center; padding:56px 20px;}
.blob{position:absolute; border-radius:999px; filter:blur(100px); pointer-events:none;}
.blob-1{width:560px; height:560px; background:var(--violet); opacity:.09; top:-200px; right:-160px;}
.blob-2{width:520px; height:520px; background:var(--blue); opacity:.10; bottom:-220px; left:-180px;}
.inner{position:relative; width:100%; max-width:560px; display:flex; flex-direction:column; align-items:center; gap:24px; transition:max-width .2s ease;}
.inner.wide{max-width:1040px;}
.inner.admin{max-width:1000px;}
.page.top{align-items:flex-start;}

.toplinks{width:100%; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 16px;}
.toplinks a{background:none; border:none; padding:8px 6px; color:var(--muted); font-size:15px; font-weight:600; text-decoration:none; cursor:pointer;}
.toplinks a:hover,.toplinks .linklike:hover{color:var(--text);}
.logout-form{margin:0; display:inline;}
.toplinks .linklike{background:none; border:none; padding:8px 6px; margin:0; width:auto; height:auto; min-height:0; box-shadow:none; border-radius:0; color:var(--muted); font:inherit; font-size:15px; font-weight:600; cursor:pointer;}
.toplinks-end{display:flex; align-items:center; flex-wrap:wrap; gap:0 12px;}
.toplinks .who{font-size:13px; font-weight:400; color:var(--muted); padding:8px 6px;}

.head{display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center;}
h1{margin:0; font-size:32px; font-weight:700; letter-spacing:-.015em;}
.sub{font-size:14px; color:var(--muted); line-height:1.5;}
.foot{font-size:12px; color:var(--faint); text-align:center;}
.foot a{color:var(--faint); text-decoration:underline;}

/* --- Carte --- */
.card{width:100%; background:#fff; border:1px solid var(--border); border-radius:20px; box-shadow:0 1px 2px rgba(38,34,31,.04), 0 24px 48px -12px rgba(38,34,31,.1); padding:28px;}
.card-wide{max-width:none;}

/* --- Textes d'aide --- */
.hint{font-size:12px; color:var(--faint); margin-top:6px;}
.hint-block{margin:10px 0 0;}

/* --- Champs --- */
.lbl{display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin:0 0 6px;}
.field, .card input[type=text], .card input[type=password]{
  width:100%; min-height:var(--field-h); padding:0 12px; border:1px solid var(--border); border-radius:10px;
  font:inherit; font-size:13.5px; color:var(--text); background:#fff;
}
textarea.field{padding:10px 12px; min-height:150px; font-family:ui-monospace, Consolas, monospace; font-size:12px;}
select.field{
  appearance:none; -webkit-appearance:none; padding-right:34px; cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23756d68' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
}
.field:focus, .card input[type=text]:focus, .card input[type=password]:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 3px var(--blue-bg);}
.field-row-inline{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.field-row-inline .field{flex:1 1 140px; width:auto; min-width:0;}

/* --- Choix de fichier --- */
.filepick{display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; border:1px solid var(--border); border-radius:12px; padding:12px 14px;}
.filepick input[type=file]{display:none;}
.filepick-btn{flex:0 0 auto; border:1px solid var(--border); border-radius:10px; min-height:36px; display:inline-flex; align-items:center; padding:0 14px; font:inherit; font-weight:600; font-size:13px; background:var(--blue-bg); color:var(--blue); cursor:pointer; white-space:nowrap;}
.filepick-btn:hover{background:color-mix(in srgb, var(--blue-bg) 80%, var(--blue) 10%);}
.filepick-name{font-size:13px; color:var(--muted); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1 1 120px;}
.filepick-name.has-file{color:var(--text); font-weight:600;}
.filepick.drag{border-color:var(--blue); background:var(--blue-bg);}

/* --- Boutons : une seule hauteur (40 px), .btn-lg = action principale (46 px) --- */
.btn, .btn-primary, .btn-ghost, .btn-danger{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:var(--field-h); padding:0 16px; border:1px solid transparent; border-radius:10px;
  font:inherit; font-weight:600; font-size:13px; line-height:1.2; cursor:pointer; white-space:nowrap; text-decoration:none;
}
.btn{background:#fff; border-color:var(--border); color:var(--text);}
.btn:hover{border-color:var(--blue); color:var(--blue);}
.btn-primary{background:var(--blue); color:#fff; font-weight:700; font-size:13.5px;}
.btn-primary:hover{background:var(--blue-hover);}
.btn-ghost{background:none; color:var(--muted);}
.btn-ghost:hover{color:var(--text);}
.btn-danger{background:var(--red-bg); color:var(--red-ink); border-color:var(--red-bg);}
.btn-danger:hover{background:var(--red); border-color:var(--red); color:#fff;}
.btn:disabled, .btn-primary:disabled, .btn-ghost:disabled, .btn-danger:disabled{opacity:.5; cursor:default;}
.btn:disabled:hover{border-color:var(--border); color:var(--text);}
.btn-primary:disabled:hover{background:var(--blue);}
.btn-danger:disabled:hover{background:var(--red-bg); color:var(--red-ink); border-color:var(--red-bg);}
.btn-lg{min-height:46px; padding:0 22px; font-size:14.5px;}
.btn-sm{min-height:32px; padding:0 10px;}
.btn-block{width:100%;}

.toolbar{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:18px;}
.toolbar .sep{width:1px; align-self:stretch; background:var(--border); margin:0 2px;}
.toolbar-end{display:flex; gap:8px; margin-left:auto; flex-wrap:wrap;}

/* --- Accessibilité : focus clavier visible partout --- */
a:focus-visible, button:focus-visible, .btn:focus-visible, .btn-primary:focus-visible, .btn-ghost:focus-visible, .btn-danger:focus-visible,
.filepick-btn:focus-visible, [role=button]:focus-visible, select:focus-visible, summary:focus-visible, input[type=checkbox]:focus-visible, input[type=radio]:focus-visible{
  outline:2px solid var(--blue); outline-offset:2px;
}
label:has(input:focus-visible) .filepick-btn{outline:2px solid var(--blue); outline-offset:2px;}

/* --- Bandeau de résultat / erreur (même rendu partout) --- */
.result{display:none; margin-top:18px; border-radius:14px; padding:16px 18px; text-align:center;}
.result.show{display:block;}
.result.ok{background:var(--green-bg);}
.result.err{background:var(--red-bg);}
.result-icon{width:40px; height:40px; border-radius:999px; display:flex; align-items:center; justify-content:center; margin:0 auto 10px;}
.result.ok .result-icon{background:var(--green); color:#fff;}
.result.err .result-icon{background:var(--red); color:#fff;}
.result-title{font-weight:700; font-size:15px; margin-bottom:4px;}
.result.ok .result-title{color:var(--green-ink);}
.result.err .result-title{color:var(--red-ink);}
.result-detail{font-size:13px; color:var(--muted);}
.msg-ok, .msg-err{padding:10px 12px; border-radius:10px; font-size:13px; margin-bottom:14px;}
.msg-ok{background:var(--green-bg); color:var(--green-ink);}
.msg-err{background:var(--red-bg); color:var(--red-ink);}

/* --- Barre de progression --- */
.progress-wrap{display:none; margin-top:18px;}
.progress-wrap.show{display:block;}
.progress-label{display:flex; justify-content:space-between; font-size:12px; color:var(--muted); margin-bottom:6px;}
.progress-track{height:8px; border-radius:999px; background:var(--blue-bg); overflow:hidden;}
.progress-bar{height:100%; width:0%; background:var(--blue); border-radius:999px; transition:width .2s ease;}

/* --- Administration (pages connectées) --- */
.tabs{display:flex; flex-wrap:wrap; gap:6px; width:100%;}
.tab{display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border:1px solid var(--border); border-radius:999px; background:#fff; color:var(--text); font-size:13px; font-weight:600; text-decoration:none;}
.tab:hover{border-color:var(--blue); color:var(--blue);}
.tab.on{border-color:var(--blue); background:var(--blue-bg); color:var(--blue);}
.kpis{display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:12px; width:100%;}
.kpi{background:#fff; border:1px solid var(--border); border-radius:14px; padding:14px 16px;}
.kpi b{display:block; font-size:22px;}
.kpi span{font-size:12px; color:var(--muted);}
.tbl-wrap{width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch;}
table.tbl{width:100%; border-collapse:collapse; font-size:13px;}
table.tbl th, table.tbl td{padding:9px 12px; text-align:left; border-bottom:1px solid var(--border); white-space:nowrap;}
table.tbl th{background:var(--blue-bg); font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted);}
table.tbl tr:last-child td{border-bottom:none;}
.status-ok{color:var(--green); font-weight:600;}
.status-error, .status-rejected{color:var(--red-ink); font-weight:600;}
.empty{color:var(--muted); padding:20px; text-align:center;}
.admin-layout{width:100%; display:grid; grid-template-columns:240px minmax(0,1fr); gap:20px; align-items:start;}
.admin-list{display:flex; flex-direction:column; gap:8px; min-width:0;}
.admin-list a{display:block; padding:10px 12px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--text); font-size:14px; overflow-wrap:anywhere;}
.admin-list a:hover{border-color:var(--blue);}
.admin-list a.on{border-color:var(--blue); background:var(--blue-bg); font-weight:600;}
.row{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:16px;}
.preview{border:1px dashed var(--border); border-radius:10px; padding:16px; background:#fff; font-family:"DejaVu Sans", Arial, sans-serif; font-size:12px; line-height:1.4; overflow-x:auto;}
.preview .zone{border-top:1px dotted #ccc; border-bottom:1px dotted #ccc; padding:8px 0;}
.preview img{max-width:220px;}
.card .lbl{margin-top:14px;}
.card .lbl:first-child{margin-top:0;}
@media (max-width:760px){ .admin-layout{grid-template-columns:minmax(0,1fr);} }

/* --- Écrans étroits (écran externe Galaxy Z Fold 3 replié ≈ 280 px) --- */
@media (max-width:360px){
  .page{padding:24px 10px;}
  .inner{gap:18px;}
  h1{font-size:28px;}
  .sub{font-size:13px;}
  .card{padding:16px; border-radius:16px;}
  .filepick{padding:10px;}
  .toolbar-end{margin-left:0; width:100%;}
  .btn-lg{padding:0 14px;}
}
