
:root{--bg:#f3eee8;--panel:#fff;--text:#24333d;--muted:#718089;--line:#e3d9cf;--dark:#203742;--dark2:#345563;--shadow:0 10px 28px rgba(32,55,66,.09);--green:#e5f4e7;--yellow:#fff3cf;--red:#f8dfe1}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}#app{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#203742,#294956);color:white;padding:22px 14px;position:sticky;top:0;height:100vh;overflow:auto;z-index:20}.brand{font-weight:900;font-size:21px;padding:5px 8px 18px}.brand span{display:block;font-size:11px;color:#bcd0d8;margin-top:5px}.nav,.folderNav{width:100%;border:0;background:transparent;color:#e8f0f2;text-align:left;padding:11px 12px;border-radius:10px;margin:2px 0;font-weight:760}.nav:hover,.nav.active,.folderNav:hover,.folderNav.active{background:#3a5d6b}.navTitle{font-size:10px;color:#9fb7c1;letter-spacing:1px;padding:19px 10px 7px}main{padding:27px;min-width:0;background:radial-gradient(circle at 4% 0%,rgba(109,145,162,.12),transparent 23%),radial-gradient(circle at 96% 0%,rgba(177,132,155,.1),transparent 25%),var(--bg)}h1,h2,h3{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(135deg,#fff,#f7fafb);border:1px solid var(--line);border-radius:17px;padding:17px;box-shadow:var(--shadow);margin-bottom:16px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 12px;border-radius:9px;font-weight:750}.btn.primary{background:var(--dark);color:#fff;border-color:var(--dark)}.btn.danger{background:#943f49;color:#fff;border-color:#943f49}.btn.soft{background:#edf3f5}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.card{background:#fff;border:1px solid #eadfd5;border-radius:15px;padding:15px;box-shadow:var(--shadow)}.kpis .card:nth-child(1){background:linear-gradient(135deg,#e7f1f6,#fff)}.kpis .card:nth-child(2){background:linear-gradient(135deg,#f0e8f6,#fff)}.kpis .card:nth-child(3){background:linear-gradient(135deg,#e6f3e6,#fff)}.kpis .card:nth-child(4){background:linear-gradient(135deg,#fff1d4,#fff)}.kpi b{display:block;font-size:28px;margin-top:5px}.progress{height:9px;background:#e9e3dc;border-radius:999px;overflow:hidden;margin-top:8px}.bar{height:100%;background:#6d91a2}.section{margin-top:17px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(249,246,242,.95));border:1px solid var(--line);border-radius:17px;padding:15px;box-shadow:0 7px 22px rgba(32,55,66,.06)}.sectionHead{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:11px}.folderGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.folderCard,.subCard,.projectCard{border:1px solid rgba(32,55,66,.08);text-align:left;border-radius:15px;padding:15px;color:var(--text);box-shadow:var(--shadow);transition:.14s}.folderCard{min-height:125px}.folderCard:hover,.subCard:hover,.projectCard:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(32,55,66,.12)}.folderIcon{font-size:26px;margin-bottom:8px;display:block}.projectGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.projectCard{background:#fff;min-height:125px}.projectTop{display:flex;justify-content:space-between;gap:8px}.badge{font-size:11px;font-weight:800;background:rgba(255,255,255,.8);padding:4px 7px;border-radius:999px}.subGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.subCard{background:#fff;min-height:96px}.subIconImg{width:27px;height:27px;display:block;margin-bottom:8px}.crumb{font-size:12px;color:var(--muted);margin-bottom:7px}.task{display:grid;grid-template-columns:1.7fr .65fr .65fr .5fr auto;gap:9px;align-items:center;background:#fff;border:1px solid #e9dfd6;border-left:5px solid #9aacb5;border-radius:11px;padding:10px;margin:7px 0}.task.done{background:linear-gradient(90deg,var(--green),#fff);border-left-color:#6e9a78}.task.doing{background:linear-gradient(90deg,var(--yellow),#fff);border-left-color:#c79c43}.task.blocked{background:linear-gradient(90deg,var(--red),#fff);border-left-color:#a95059}.pill{display:inline-block;padding:4px 7px;border-radius:999px;background:#edf2f4;font-size:11px;font-weight:800}.links a{display:inline-block;padding:5px 8px;border-radius:999px;background:#e8f0f4;color:#325a6c;text-decoration:none;font-size:11px;margin:2px}.result{background:#fff;border-left:5px solid #7b99a8;border-radius:10px;padding:10px;margin:7px 0}.rowTools{display:flex;gap:5px;flex-wrap:wrap}.modal{position:fixed;inset:0;background:rgba(0,0,0,.48);display:flex;align-items:center;justify-content:center;padding:18px;z-index:999}.hidden{display:none}.modalCard{background:#fff;width:min(900px,100%);max-height:92vh;overflow:auto;border-radius:18px;padding:20px;border:2px solid #ddd3ca;box-shadow:0 18px 55px rgba(0,0,0,.24)}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.full{grid-column:1/-1}input,select,textarea{border:1px solid #d9cec4;border-radius:9px;padding:10px;background:#fff;color:var(--text)}textarea{width:100%;min-height:92px}.placement{background:#f4f7f8;border:1px solid #dae3e7;border-radius:9px;padding:8px;margin:6px 0}.calendarShell{background:linear-gradient(135deg,#e8f1f5,#f5eaf1);border:1px solid #ded4cb;border-radius:18px;padding:12px}.calendarTop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.viewBtns{display:flex;gap:6px}.viewBtns .active{background:var(--dark);color:#fff}.monthGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dow{background:#2c4855;color:#fff;border-radius:8px;text-align:center;padding:7px 3px;font-size:12px;font-weight:800}.day{border:1px solid #ded6cd;border-radius:11px;min-height:118px;padding:7px;text-align:left;background:#fff}.day:nth-child(7n+1){background:#f8e9ed}.day:nth-child(7n+2){background:#edf4f7}.day:nth-child(7n+3){background:#f3edf8}.day:nth-child(7n+4){background:#edf6ee}.day:nth-child(7n+5){background:#fff7df}.day:nth-child(7n+6){background:#f9ece4}.day:nth-child(7n){background:#e9f3f1}.day.other{opacity:.42}.day:hover{border-color:#7f9aa8;box-shadow:0 7px 14px rgba(32,55,66,.1)}.dayNum{font-size:12px;font-weight:900}.event{display:block;width:100%;border:0;border-left:4px solid #6f91a2;background:#fff;border-radius:6px;padding:5px;margin-top:4px;text-align:left;font-size:11px}.event.yassine{background:#e5eff7;border-left-color:#5f8199}.event.jaouaher{background:#f5e7ef;border-left-color:#b07894}.event.ensemble{background:#e8f3e6;border-left-color:#6f936a}.weekWrap{overflow:auto}.weekGrid{display:grid;grid-template-columns:75px repeat(7,minmax(135px,1fr));gap:1px;background:#d9d1c9;min-width:1050px;border-radius:12px;overflow:hidden}.weekGrid>div{background:#fff;padding:6px;min-height:54px}.weekHead{background:#e9f0f3!important;font-weight:800}.slot{width:100%;min-height:46px;border:0;background:#fff;text-align:left}.slot:hover{background:#f8f4ef}.dayView{background:#fff;border-radius:14px;overflow:hidden}.hourRow{display:grid;grid-template-columns:80px 1fr;border-bottom:1px solid #eee6de}.hourLabel{padding:12px;color:var(--muted);font-weight:800}.hourSlot{min-height:58px;width:100%;border:0;background:#fff;text-align:left;padding:7px}.hourSlot:hover{background:#faf7f3}.todayGrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.todayCol{background:#fff;border-radius:15px;padding:15px;box-shadow:var(--shadow)}.todayCol:first-child{border-top:6px solid #6489a0;background:linear-gradient(160deg,#eaf2f8,#fff)}.todayCol:last-child{border-top:6px solid #b27d99;background:linear-gradient(160deg,#f7eaf1,#fff)}.todayItem{padding:9px;border-bottom:1px solid #eee6de}.parentBox{background:#eef2f4;padding:10px;border-radius:10px;margin-bottom:10px}.dangerText{color:#943f49}.empty{padding:25px;text-align:center;color:var(--muted)}
@media(max-width:1100px){.folderGrid{grid-template-columns:repeat(3,1fr)}.subGrid{grid-template-columns:repeat(3,1fr)}.projectGrid{grid-template-columns:repeat(2,1fr)}.task{grid-template-columns:1fr 1fr}}
@media(max-width:760px){#app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.folderGrid,.subGrid,.projectGrid,.kpis,.todayGrid{grid-template-columns:1fr}.task{grid-template-columns:1fr}.formGrid{grid-template-columns:1fr}main{padding:14px}.monthGrid{gap:3px}.day{min-height:85px;padding:5px}}
