:root{
  --bg:#f5f5f7;
  --surface:rgba(255,255,255,.86);
  --surface-solid:#fff;
  --ink:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(60,60,67,.16);
  --line-strong:rgba(60,60,67,.24);
  --accent:#285f52;
  --accent-hover:#204f44;
  --accent-soft:#e7f0ed;
  --red:#b3261e;
  --red-soft:#fff0ef;
  --amber:#98650a;
  --amber-soft:#fff8e8;
  --blue:#386b9f;
  --blue-soft:#edf5fc;
  --green:#237a45;
  --green-soft:#edf8f1;
  --shadow:0 8px 30px rgba(0,0,0,.055),0 1px 2px rgba(0,0,0,.035);
  --shadow-soft:0 2px 12px rgba(0,0,0,.045);
  --radius:20px;
  --radius-sm:13px;
  --tap:44px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit}
a{-webkit-tap-highlight-color:transparent}

/* Top navigation */
.topbar{height:72px;background:rgba(250,250,252,.84);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1380px)/2));position:sticky;top:0;z-index:100;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}
.brand{display:flex;align-items:center;gap:14px;font-weight:700;min-width:0;color:#111}.brand img{height:42px;width:auto;display:block}.brand span{font-size:16px;white-space:nowrap}
.topbar nav{display:flex;gap:4px;align-items:center}.topbar nav a{color:var(--ink);text-decoration:none;padding:9px 11px;border-radius:10px;font-size:14px;transition:.18s ease}.topbar nav a:hover{background:rgba(120,120,128,.09)}
.nav-toggle{display:none;width:44px;height:44px;border:0;border-radius:12px;background:rgba(120,120,128,.10);color:var(--ink);align-items:center;justify-content:center;cursor:pointer}.nav-toggle span,.nav-toggle:before,.nav-toggle:after{content:"";display:block;width:19px;height:2px;background:currentColor;border-radius:3px;position:absolute;transition:.2s}.nav-toggle{position:relative}.nav-toggle span{transform:translateY(0)}.nav-toggle:before{transform:translateY(-6px)}.nav-toggle:after{transform:translateY(6px)}.nav-toggle[aria-expanded="true"] span{opacity:0}.nav-toggle[aria-expanded="true"]:before{transform:rotate(45deg)}.nav-toggle[aria-expanded="true"]:after{transform:rotate(-45deg)}

.container{max-width:1280px;margin:0 auto;padding:34px 28px 72px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 22px}.page-title h1{font-size:clamp(28px,3vw,38px);line-height:1.08;letter-spacing:-.035em;margin:0;font-weight:750}
.card{background:var(--surface);border:1px solid rgba(255,255,255,.82);border-radius:var(--radius);padding:24px;margin-bottom:18px;box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.card h2{font-size:19px;letter-spacing:-.015em;margin:0 0 17px}.card h3{margin-top:0}

/* Layout */
.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.field{min-width:0}.field label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px;font-weight:650;letter-spacing:.005em}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;background:rgba(255,255,255,.94);color:var(--ink);font:inherit;outline:none;transition:border-color .16s,box-shadow .16s,background .16s;-webkit-appearance:none}.field select{background-image:linear-gradient(45deg,transparent 50%,#777 50%),linear-gradient(135deg,#777 50%,transparent 50%);background-position:calc(100% - 17px) 19px,calc(100% - 12px) 19px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}.field textarea{min-height:100px;resize:vertical;line-height:1.45}.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(40,95,82,.62);box-shadow:0 0 0 4px rgba(40,95,82,.12);background:#fff}.field input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:18px;height:18px;min-height:0;accent-color:var(--accent);padding:0}.field input[type="file"]{padding:8px}.field.inline{display:flex;align-items:center;gap:9px;min-height:44px}.field.inline label{margin:0;color:var(--ink)}

/* Buttons */
.btn{min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:12px;padding:10px 15px;text-decoration:none;font-weight:650;cursor:pointer;font-size:14px;line-height:1.2;transition:transform .12s ease,background .16s,border-color .16s,box-shadow .16s;white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(40,95,82,.17)}.btn.primary:hover{background:var(--accent-hover)}.btn.secondary{background:rgba(255,255,255,.83);color:var(--ink);border-color:var(--line);box-shadow:0 1px 3px rgba(0,0,0,.025)}.btn.secondary:hover{background:#fff;border-color:var(--line-strong)}.btn.danger{background:rgba(255,255,255,.85);color:var(--red);border-color:rgba(179,38,30,.22)}.btn.danger:hover{background:var(--red-soft)}.solid-danger{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.actions.compact{gap:7px}.actions.compact form{margin:0}.actions form{margin:0}.principal-actions{justify-content:flex-end}

/* Dashboard */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid rgba(255,255,255,.82);border-radius:18px;padding:20px 21px;box-shadow:var(--shadow-soft);min-height:105px}.stat .n{font-size:31px;line-height:1;font-weight:760;letter-spacing:-.04em}.stat .l{color:var(--muted);margin-top:9px;font-weight:520}
.table-wrap{overflow:auto;border-radius:14px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:13px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted);font-weight:700}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:rgba(120,120,128,.045)}.table tbody tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:700}.badge.gray{background:#ededf0;color:#505054}.badge.amber{background:#fff0d4;color:#825603}.badge.green{background:#e6f5ea;color:#20683a}.badge.blue{background:#e8f2fb;color:#285c8a}.badge.dark{background:#e4e4e7;color:#343438}

/* Feedback */
.flash,.warning,.ok{border-radius:14px;padding:13px 15px;margin-bottom:16px;border:1px solid transparent}.flash.success{background:var(--green-soft);color:#245d38;border-color:rgba(35,122,69,.12)}.flash.error{background:var(--red-soft);color:#8a2929;border-color:rgba(179,38,30,.12)}.flash.info{background:var(--blue-soft);color:#295a85;border-color:rgba(56,107,159,.12)}.warning{border-left:4px solid var(--amber);background:var(--amber-soft);border-top-color:rgba(152,101,10,.10);border-right-color:rgba(152,101,10,.10);border-bottom-color:rgba(152,101,10,.10)}.ok{border-left:4px solid var(--green);background:var(--green-soft)}

/* Mandate form */
.section-tabs{display:flex;gap:8px;flex-wrap:nowrap;margin:0 0 20px;overflow-x:auto;padding:2px 1px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.section-tabs::-webkit-scrollbar{display:none}.section-tabs button{min-height:40px;border:1px solid var(--line);background:rgba(255,255,255,.84);border-radius:999px;padding:8px 13px;cursor:pointer;white-space:nowrap;font-weight:600;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.025)}.section-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.form-section{display:none}.form-section.active{display:block}.principal-row{border:1px solid var(--line);padding:18px;border-radius:16px;margin-bottom:14px;background:rgba(248,248,250,.72)}.principal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.principal-head strong{font-size:14px}.step-actions{padding-top:6px;justify-content:space-between}
.summary-grid{display:grid;grid-template-columns:190px 1fr;gap:9px 18px}.summary-grid dt{color:var(--muted);font-weight:650}.summary-grid dd{margin:0}.doc-list{display:flex;flex-direction:column;gap:8px}.doc-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:rgba(250,250,252,.75)}

/* Editor */
.editor-card{max-width:1100px}.editor-block{padding:18px 0;border-bottom:1px solid var(--line)}.editor-block:last-child{border-bottom:0}.editor-label{font-weight:700;margin-bottom:11px}.editor-block textarea{line-height:1.5;min-height:78px}.editor-card .field label{color:var(--ink)}

/* Misc */
.login-card{max-width:460px;margin:65px auto}.muted{color:var(--muted)}.small{font-size:12px}.right{text-align:right}.archive-search{display:flex;gap:10px;align-items:end;flex:1;max-width:680px}.archive-search .field{flex:1}.empty-state{padding:32px;text-align:center;color:var(--muted)}

/* Tablet */
@media(max-width:1024px){
  .container{padding:28px 22px 60px}.topbar{padding:0 20px}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}.card{padding:21px}.table th,.table td{padding:12px 9px}.brand span{display:none}
}

/* Mobile navigation + mobile app layout */
@media(max-width:760px){
  body{font-size:15px;padding-bottom:env(safe-area-inset-bottom)}
  .topbar{height:62px;padding:0 14px;align-items:center;flex-direction:row}.brand img{height:36px}.nav-toggle{display:inline-flex}.topbar nav{display:none;position:absolute;top:68px;left:12px;right:12px;flex-direction:column;align-items:stretch;gap:4px;background:rgba(250,250,252,.97);padding:8px;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.14);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.topbar nav.open{display:flex}.topbar nav a{min-height:44px;display:flex;align-items:center;padding:10px 13px;border-radius:12px;font-size:15px}.topbar nav a+ a{border-top:0}
  .container{padding:22px 14px 48px}.page-title{margin-bottom:16px}.page-title h1{font-size:30px}.card{border-radius:18px;padding:17px 15px;margin-bottom:14px}.card h2{font-size:18px}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr;gap:13px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:16px;min-height:92px;border-radius:16px}.stat .n{font-size:27px}.stat .l{font-size:13px;margin-top:7px}
  .field input,.field select,.field textarea{font-size:16px;min-height:46px;border-radius:12px}.field textarea{min-height:104px}.field.inline{min-height:42px}.btn{min-height:44px;border-radius:12px;padding:10px 13px}.actions{gap:8px}.actions.mobile-stack,.page-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.actions.mobile-stack .btn,.actions.mobile-stack form,.actions.mobile-stack form .btn,.page-actions .btn,.page-actions form,.page-actions form .btn{width:100%}.actions.mobile-stack>*:only-child{grid-column:1/-1}
  .section-tabs{margin-left:-1px;margin-right:-1px;position:sticky;top:62px;z-index:25;background:linear-gradient(var(--bg) 75%,rgba(245,245,247,0));padding-top:7px;padding-bottom:12px}.section-tabs button{min-height:39px;padding:8px 12px}
  .principal-row{padding:15px 13px;border-radius:15px}.principal-head{align-items:flex-start;flex-direction:column}.principal-actions{width:100%;justify-content:flex-start}.principal-actions .btn{flex:1}.step-actions{display:grid;grid-template-columns:1fr 1fr}.step-actions .btn{width:100%}.summary-grid{grid-template-columns:1fr;gap:3px}.summary-grid dt{margin-top:10px}.doc-item{align-items:flex-start;flex-direction:column}.archive-search{max-width:none;flex-direction:column;align-items:stretch;width:100%}.archive-search .btn{width:100%}.login-card{margin:34px auto}

  /* Turn desktop tables into native-feeling cards */
  .table-wrap{overflow:visible}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table thead{display:none}.table tbody{display:grid;gap:11px}.table tbody tr{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:16px;padding:9px 12px;box-shadow:0 2px 10px rgba(0,0,0,.03)}.table tbody tr:hover{background:#fff}.table td{border:0;padding:7px 0;display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;align-items:start}.table td:before{content:attr(data-label);font-size:11px;line-height:1.35;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);font-weight:700;padding-top:2px}.table td.actions-cell{display:block;padding-top:10px;border-top:1px solid var(--line);margin-top:3px}.table td.actions-cell:before{display:none}.table td.actions-cell .actions{display:grid;grid-template-columns:1fr 1fr}.table td.actions-cell .btn,.table td.actions-cell form,.table td.actions-cell form .btn{width:100%}.table td[colspan]{display:block;text-align:center;padding:22px}.table td[colspan]:before{display:none}
}

@media(max-width:430px){
  .container{padding-left:11px;padding-right:11px}.stats{grid-template-columns:1fr 1fr}.card{padding:16px 13px}.actions.mobile-stack,.page-actions{grid-template-columns:1fr}.principal-actions{display:grid;grid-template-columns:1fr 1fr}.table td{grid-template-columns:92px minmax(0,1fr)}.table td.actions-cell .actions{grid-template-columns:1fr}.step-actions{grid-template-columns:1fr 1fr}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.btn:active{transform:none}}

/* V2.0 - collaborateurs et historique */
.user-manage-panel{margin-top:12px;padding:16px;border:1px solid var(--border,#e5e5ea);border-radius:16px;background:rgba(255,255,255,.86);min-width:300px;display:grid;gap:14px}
.user-manage-panel form{display:grid;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border,#e5e5ea)}
.user-manage-panel form:last-child{border-bottom:0;padding-bottom:0}
.history-list{display:grid;gap:0}.history-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--border,#e5e5ea)}.history-item:last-child{border-bottom:0}.history-dot{width:9px;height:9px;margin-top:6px;border-radius:50%;background:#2f695c;box-shadow:0 0 0 4px rgba(47,105,92,.10)}.history-title{line-height:1.35}.history-main p{margin:8px 0 0}.change-list{margin-top:10px;display:grid;gap:6px}.change-row{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(120px,1fr) 24px minmax(120px,1fr);gap:8px;align-items:start;padding:8px 10px;border-radius:12px;background:#f7f7f8;font-size:13px}.change-before{color:#7a3f3f}.change-after{color:#245b4f}.change-arrow{text-align:center;color:#8e8e93}.compact-changes .change-row{grid-template-columns:minmax(130px,.6fr) 1fr}.users-grid{align-items:start}
@media(max-width:760px){.user-manage-panel{min-width:0;width:100%;box-sizing:border-box}.change-row{grid-template-columns:1fr}.change-arrow{display:none}.change-before:before{content:'Avant : ';font-weight:600}.change-after:before{content:'Après : ';font-weight:600}.compact-changes .change-row{grid-template-columns:1fr}.history-item{grid-template-columns:14px 1fr}.users-grid{grid-template-columns:1fr!important}}
