
/* Important : tout élément HTML portant l'attribut hidden doit être réellement masqué. */
[hidden] {
  display: none !important;
}

:root{--bg:#f5f5f5;--panel:#fff;--card:#fafafa;--text:#161616;--muted:#6d6d6d;--border:#dedede;--accent:#b30000;--accent-dark:#8d0000}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:#111;color:#fff;border-bottom:1px solid #222}
.brand{font-weight:900;font-size:1.35rem}.subtitle{font-size:.82rem;color:#cfcfcf}.top-actions{display:flex;align-items:center;gap:8px}.user-badge{font-size:.78rem;color:#ddd}
.app-shell{max-width:1220px;margin:auto;padding:18px}.auth-wrap{min-height:70vh;display:grid;place-items:center}.auth-card{width:min(430px,100%)}
.project-card,.card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:16px}.project-card{margin-bottom:12px}
.grid{display:grid;gap:12px}.project-grid{grid-template-columns:2fr 1fr 1fr}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}
label{display:block}.span-2{grid-column:span 2}label span{display:block;font-size:.83rem;font-weight:700;margin-bottom:6px}
input,select,textarea{width:100%;min-height:46px;border:1px solid #cfcfcf;border-radius:12px;padding:11px 12px;background:#fff;color:#111}textarea{resize:vertical;line-height:1.35}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.stat{background:var(--card);border-radius:13px;padding:12px}.stat small{display:block;color:var(--muted);font-size:.75rem}.stat strong{display:block;font-size:1.6rem}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}.tab,.ghost-btn,.primary{min-height:46px;border-radius:12px;border:1px solid var(--border);padding:10px 14px;font-weight:700;background:#fff}
.ghost-btn.dark{background:#222;border-color:#444;color:#fff}.tab.active,.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent-dark)}.big{min-height:52px}.full{width:100%;margin-top:12px}
.panel{display:none}.panel.active{display:block}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.stack{display:grid;gap:9px;margin-top:12px}.entry{background:var(--card);border:1px solid #e7e7e7;border-radius:13px;padding:12px}.entry-title{font-weight:800}.entry-meta{font-size:.78rem;color:var(--muted);margin-top:4px}.entry-text{margin-top:6px}
.muted{color:var(--muted);font-size:.9rem}.result{background:var(--card);border-radius:13px;padding:14px;margin-top:12px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-grid small{display:block;color:var(--muted)}
.button-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.session-card{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:14px}.status{min-height:22px;color:var(--muted);font-size:.88rem;padding:4px}

.report-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:14px}
.report-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px}
.report-modal[hidden]{display:none}
.report-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.62)}
.report-modal-panel{position:relative;z-index:1;width:min(1100px,100%);max-height:94vh;background:#ececec;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.report-modal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#fff;border-bottom:1px solid #ddd}
.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-preview-wrap{overflow:auto;padding:22px}
.pdf-report{width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#191919;padding:16mm 15mm 15mm;box-shadow:0 8px 28px rgba(0,0,0,.15);font-family:Arial,Helvetica,sans-serif}
.pdf-header{display:flex;justify-content:space-between;gap:25px;align-items:flex-start;border-bottom:3px solid #111;padding-bottom:12px}
.pdf-brand{font-weight:900;font-size:24px;letter-spacing:.02em}.pdf-brand-dot{color:#b30000}.pdf-tagline{font-size:9px;color:#666;margin-top:4px;letter-spacing:.06em;text-transform:uppercase}
.pdf-title{text-align:right}.pdf-title h1{font-size:20px;margin:0 0 5px}.pdf-title .date{font-size:10px;color:#666}
.pdf-project{margin-top:14px;padding:12px 14px;background:#f3f3f3;border-left:5px solid #b30000}
.pdf-project-name{font-size:17px;font-weight:800;margin-bottom:4px}.pdf-project-meta{font-size:10px;color:#555}
.pdf-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.pdf-info{border:1px solid #ddd;border-radius:7px;padding:9px}.pdf-info-label{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#777}.pdf-info-value{font-size:10px;font-weight:700;margin-top:4px}
.pdf-highlight{margin-top:12px;border:1px solid #ddd;border-radius:7px;padding:10px 12px}.pdf-highlight strong{font-size:9px;text-transform:uppercase;color:#555}.pdf-highlight p{font-size:10px;line-height:1.45;margin:5px 0 0}
.pdf-section{margin-top:16px}.pdf-section-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}.pdf-section-title:before{content:"";width:5px;height:18px;background:#b30000;border-radius:2px}
.pdf-table{width:100%;border-collapse:collapse;font-size:9px}.pdf-table th{background:#161616;color:#fff;text-align:left;padding:7px 6px;font-size:8px;text-transform:uppercase;letter-spacing:.03em}.pdf-table td{border-bottom:1px solid #ddd;padding:7px 6px;vertical-align:top;line-height:1.35}
.pdf-table tr:nth-child(even) td{background:#fafafa}.pdf-status{font-weight:700}.pdf-empty{font-size:9px;color:#777;padding:8px 0}
.pdf-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pdf-summary-box{background:#f3f3f3;border-radius:7px;padding:9px;text-align:center}.pdf-summary-box strong{display:block;font-size:18px}.pdf-summary-box span{font-size:8px;text-transform:uppercase;color:#777}
.pdf-footer{margin-top:22px;padding-top:9px;border-top:1px solid #ccc;display:flex;justify-content:space-between;gap:10px;font-size:8px;color:#777}
.pdf-page-break-avoid{break-inside:avoid;page-break-inside:avoid}

@media(max-width:850px){.project-grid,.two-col,.three{grid-template-columns:1fr}.tabs{grid-template-columns:repeat(2,1fr)}.tabs .tab:last-child{grid-column:span 2}.quick-actions{grid-template-columns:1fr}.session-card{flex-direction:column;align-items:flex-start}.report-actions{grid-template-columns:1fr}.report-modal{padding:6px}.report-modal-toolbar{align-items:flex-start;flex-direction:column}.report-preview-wrap{padding:10px}.pdf-report{width:210mm;transform-origin:top left}}
@media(max-width:560px){.app-shell{padding:12px}.stats{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.span-2{grid-column:auto}.result-grid,.button-row{grid-template-columns:1fr}.user-badge{display:none}}

:root[data-theme="dark"]{
  --bg:#0f1115;
  --panel:#171a20;
  --card:#1e222a;
  --text:#f4f5f7;
  --muted:#a8adb7;
  --border:#323844;
  --accent:#d11919;
  --accent-dark:#a90f0f;
}
:root[data-theme="dark"] body{background:var(--bg);color:var(--text)}
:root[data-theme="dark"] .topbar{background:#090b0e;border-bottom-color:#262b33}
:root[data-theme="dark"] .project-card,
:root[data-theme="dark"] .card{background:var(--panel);border-color:var(--border)}
:root[data-theme="dark"] .stat,
:root[data-theme="dark"] .entry,
:root[data-theme="dark"] .result{background:var(--card);border-color:var(--border)}
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea{
  background:#11151b;
  color:var(--text);
  border-color:#3a414d;
}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{color:#7f8793}
:root[data-theme="dark"] .tab,
:root[data-theme="dark"] .ghost-btn{
  background:#1a1f27;
  color:var(--text);
  border-color:#3a414d;
}
:root[data-theme="dark"] .tab.active,
:root[data-theme="dark"] .primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
:root[data-theme="dark"] .ghost-btn.dark{background:#15191f;border-color:#3a414d;color:#fff}
:root[data-theme="dark"] .report-modal-panel{background:#11151b}
:root[data-theme="dark"] .report-modal-toolbar{background:#171a20;border-bottom-color:#323844;color:#fff}
:root[data-theme="dark"] .report-preview-wrap{background:#101318}

/* Le PDF reste volontairement clair et professionnel, même si l'app est en mode sombre. */
:root[data-theme="dark"] .pdf-report{background:#fff;color:#191919}
:root[data-theme="dark"] .pdf-project{background:#f3f3f3}
:root[data-theme="dark"] .pdf-info{border-color:#ddd}
:root[data-theme="dark"] .pdf-highlight{border-color:#ddd}
:root[data-theme="dark"] .pdf-table td{border-bottom-color:#ddd}
:root[data-theme="dark"] .pdf-table tr:nth-child(even) td{background:#fafafa}
:root[data-theme="dark"] .pdf-summary-box{background:#f3f3f3}


.project-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.project-selector-wrap{flex:1;min-width:0}
.project-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.project-details{margin-top:4px}

.project-modal{
  position:fixed;
  inset:0;
  z-index:110;
  display:grid;
  place-items:center;
  padding:18px;
}
.project-modal[hidden]{display:none!important}
.project-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.62);
}
.project-modal-panel{
  position:relative;
  z-index:1;
  width:min(520px,100%);
  background:var(--panel);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:18px;
  overflow:hidden;
}
.project-modal-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
}
.project-modal-body{
  padding:16px;
  display:grid;
  gap:12px;
}
.project-empty{
  padding:14px;
  border:1px dashed var(--border);
  border-radius:12px;
  color:var(--muted);
  font-size:.9rem;
}
@media(max-width:850px){
  .project-toolbar{align-items:stretch;flex-direction:column}
  .project-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}
}
