
:root{--ov:rgba(255,255,255,0);--bg:#e9f3fa;--card:rgba(255,255,255,.94);--tx:#14233a;--mut:#51627a;--bd:#c9d9e8;--ac:#0b5cad;--new:#d9534f;--cur:#e8a317;--done:#2e9e5b;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ov:rgba(4,14,28,.6);--bg:#0b1726;--card:rgba(14,28,46,.93);--tx:#e6eef8;--mut:#9db2c9;--bd:#27415f;--ac:#4cb4e8;color-scheme:dark}}
:root[data-theme="dark"]{--ov:rgba(4,14,28,.6);--bg:#0b1726;--card:rgba(14,28,46,.93);--tx:#e6eef8;--mut:#9db2c9;--bd:#27415f;--ac:#4cb4e8;color-scheme:dark}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(var(--ov),var(--ov)),url(background.jpg) center/cover fixed no-repeat,var(--bg);color:var(--tx);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}
header{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 20px;background:rgba(6,38,82,.9);color:#fff;border-bottom:1px solid rgba(255,255,255,.2);backdrop-filter:blur(6px)}
h1{font-size:17px;margin:0}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:44px;width:auto;display:block}
nav{display:flex;gap:4px;flex-wrap:wrap}
button,select,input,textarea{font:inherit;color:inherit}
nav button{border:0;background:none;padding:8px 12px;border-radius:8px;cursor:pointer;color:rgba(255,255,255,.82)}
nav button.on{background:#fff;color:#0a3a75}
main{max-width:1240px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px}
label{display:block;font-size:13px;color:var(--mut);margin:10px 0 4px}
input,select,textarea{width:100%;padding:9px;border:1px solid var(--bd);border-radius:8px;background:var(--bg)}
.btn{background:var(--ac);color:#fff;border:0;padding:10px 16px;border-radius:8px;cursor:pointer;margin-top:14px}
.btn.s{padding:5px 9px;margin:6px 4px 0 0;font-size:13px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cols{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.col h3{margin:0 0 8px;font-size:14px;display:flex;justify-content:space-between}
.tk{background:var(--card);border:1px solid var(--bd);border-left:5px solid;border-radius:10px;padding:10px;margin-bottom:8px;font-size:14px}
.tk small{color:var(--mut);display:block}
.Nouvelle{border-color:var(--new)}.Encours{border-color:var(--cur)}.Realisee{border-color:var(--done)}.Attente{border-color:#7a5bc7}
.badge{font-size:12px;padding:2px 8px;border-radius:99px;color:#fff;white-space:nowrap}
.b-Nouvelle{background:var(--new)}.b-Encours{background:var(--cur)}.b-Realisee{background:var(--done)}.b-Attente{background:#7a5bc7}
.u{font-size:12px;font-weight:600;padding:2px 7px;border-radius:5px;color:#fff;white-space:nowrap;display:inline-block}
.u-Haute{background:#c62828}.u-Normale{background:#3a6fc4}.u-Basse{background:#2a8f84}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--bd);vertical-align:top}
th{white-space:nowrap}
#tb td:nth-child(2),#tb td:nth-child(8){white-space:nowrap}
header select{color:var(--tx);background:var(--card);border-color:rgba(255,255,255,.5)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;min-width:560px}
.cal div{min-height:70px;background:var(--bg);border:1px solid var(--bd);border-radius:6px;padding:4px;font-size:12px}
.cal .h{min-height:0;border:0;background:none;color:var(--mut);text-align:center}
.cal .ev{display:block;background:var(--cur);color:#fff;border-radius:4px;padding:1px 4px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal .ev.d{background:var(--done)}
.cal .ev.a{background:#7a5bc7}
.note{background:var(--card);border:1px dashed var(--bd);border-radius:8px;padding:8px;font-size:13px;color:var(--mut);margin-bottom:12px}
.hide{display:none}
.sess{display:flex;align-items:center;gap:10px;font-size:14px}
.ok{color:var(--done);margin-top:10px}
@media(max-width:1000px){.cols{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.cols,.row{grid-template-columns:1fr}}
.warn{background:rgba(217,83,79,.15);color:var(--new);border-radius:6px;padding:6px;margin-top:6px;font-size:13px}
.cal .ev.c{background:var(--new)}
.rap{background:var(--bg);border-radius:6px;padding:6px;margin-top:6px;font-size:13px;white-space:pre-wrap}

nav a{color:rgba(255,255,255,.82);text-decoration:none;padding:8px 12px;border-radius:8px}
nav a.on{background:#fff;color:#0a3a75}
a.btn{display:inline-block;text-decoration:none}
.btn-red{background:#c62828}
.btn-gray{background:var(--mut)}
.inline{display:block}
.dt{display:flex;gap:6px;margin-top:6px}
.ph{max-width:100%;max-height:120px;border-radius:6px;margin-top:6px;display:block}
.ed summary{list-style:none;display:inline-block;cursor:pointer}
.ed summary::-webkit-details-marker{display:none}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:14px}
.flash.ok{background:rgba(46,158,91,.15);color:var(--done);margin-top:0}
.flash.err{background:rgba(217,83,79,.15);color:var(--new)}
.wrap-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}
.lg{width:100%;max-width:400px}
.bar{background:var(--ac);height:10px;border-radius:5px}
.fil{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end}
@media(max-width:700px){.fil{grid-template-columns:1fr}}
.mois-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.feuille{background:#fff;color:#000;max-width:800px;margin:20px auto;padding:30px;font-size:14px}
.feuille table{border-collapse:collapse;margin:12px 0}
.feuille td,.feuille th{border:1px solid #000;padding:6px;white-space:normal;text-align:left}
.feuille .box{border:1px solid #000;min-height:160px;padding:8px;white-space:pre-wrap}
.feuille .sig{display:flex;gap:40px;margin-top:30px}
.feuille .sig div{flex:1;border-top:1px solid #000;padding-top:6px;min-height:90px}
.feuille .u{color:#000;background:none;padding:0;font-weight:700}
@media print{.noprint{display:none!important}body{background:#fff}.feuille{margin:0;padding:0;max-width:none}}
.b-Annulee{background:#6b7385}
.Annulee{border-color:#6b7385}
