:root{--ink:#17384b;--muted:#647e8f;--line:#d8e5ec;--teal:#176c7b}*{box-sizing:border-box}body{margin:0;background:#f2f6f8;color:var(--ink);font:15px/1.5 Arial,sans-serif}button,input,select{font:inherit}button,a.button{cursor:pointer;border:1px solid #bfd2dd;border-radius:9px;background:white;padding:10px 15px;color:var(--ink);text-decoration:none}button.primary{background:var(--teal);color:white;border-color:var(--teal)}button:disabled{opacity:.6;cursor:default}button:hover:not(:disabled){box-shadow:0 3px 12px #183c4e18}input,select{width:100%;padding:11px;border:1px solid #bfd2de;border-radius:8px;background:white;color:var(--ink)}label{display:block;font-size:13px;font-weight:bold}small,.muted{color:var(--muted)}.brand{font-size:23px;letter-spacing:-.7px;font-weight:800}.brand em{font-style:normal;color:#2897a7}.top{padding:20px 4vw;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:center}.top>div:last-child{display:flex;align-items:center;gap:12px}.wrap{max-width:1280px;margin:auto;padding:32px 24px}.intro{border-radius:18px;background:linear-gradient(110deg,#12394e,#227487);color:white;padding:30px;margin-bottom:26px}.intro h1{font-size:32px;margin:6px 0}.intro p{margin:5px 0;color:#d8edf4}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:1.8px;font-weight:bold}.apps{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.app{background:white;border-radius:15px;border:1px solid var(--line);overflow:hidden;box-shadow:0 5px 16px #14384f07}.app-photo{height:150px;background-size:cover;background-position:center}.care-photo{background-image:url(dashboard-photos.png);background-size:400% 300%;background-position:0 0}.nutri-photo{background-image:url(nutricare/anamnese.webp)}.plan-photo{background-image:url(nutricare/menus.webp)}.learn-photo{background-image:url(nutricare/preparation.webp)}.app-content{padding:22px}.app h2{font-size:23px;margin:5px 0}.app p{color:var(--muted);margin:8px 0 20px}.app-foot{display:flex;justify-content:space-between;align-items:center;gap:10px}.badge{display:inline-block;font-size:11px;padding:4px 9px;border-radius:20px;background:#e3f2ed;color:#286d53}.badge.pending{background:#fff2d8;color:#83601e}.badge.locked{background:#edf1f4;color:#637581}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-picture{background:linear-gradient(0deg,#12394edb,#12394e55),url(nutricare/anamnese.webp) center/cover;display:flex;align-items:end;padding:48px;color:white}.login-picture h1{font-size:42px;line-height:1.15}.login-main{display:grid;place-items:center;padding:30px}.login-card{width:min(430px,100%);background:white;border:1px solid var(--line);border-radius:18px;padding:30px}.login-card h2{font-size:27px;margin-bottom:3px}.login-card label{margin:18px 0}.login-card button{width:100%;margin-top:8px}.error{color:#ac3535;min-height:24px}.toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:20px}.account-card{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:17px;background:white;border:1px solid var(--line);border-radius:12px;margin:12px 0}.account-card p{margin:4px 0}.dialog-overlay{position:fixed;inset:0;background:#12364788;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:40000}.dialog{max-width:760px;width:100%;max-height:90vh;overflow:auto;background:#f8fbfc;padding:26px;border-radius:18px}.dialog h2{margin-top:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.access-grid{display:grid;gap:10px;margin-top:15px}.access-row{display:grid;grid-template-columns:1fr 200px;gap:15px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:12px;background:white}.dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.note{padding:14px;background:#eaf2f7;border-radius:9px;font-size:13px}.footer{font-size:12px;color:var(--muted);margin-top:25px}.hidden{display:none!important}@media(max-width:760px){.apps{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr}.login-picture{display:none}.form-grid{grid-template-columns:1fr}.access-row{grid-template-columns:1fr}.top{align-items:start;flex-direction:column}.wrap{padding:20px 15px}.intro h1{font-size:25px}}

/* Accueil NursingHomePro V1.1 : fond photographique et raccourcis compacts. */
body.portal-home{min-height:100vh;background:#eaf2f4 url('assets/portal-background-v2.png') center center/cover fixed no-repeat;position:relative;isolation:isolate}
body.portal-home:before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,#f0f7f8f5 0%,#f0f7f8eb 37%,#f0f7f89c 65%,#eef5f61a 100%);pointer-events:none}
.portal-home .top{background:#ffffffdf;backdrop-filter:blur(16px);padding:14px 4vw;border-bottom:1px solid #ffffffa6;box-shadow:0 3px 20px #123e4e08;min-height:74px}
.portal-home .brand{font-size:24px;display:flex;align-items:center;white-space:nowrap;gap:0}.portal-home .brand em{color:#218b92}.portal-mark{display:inline-grid;place-items:center;margin-right:10px;border-radius:10px;background:#176575;color:white;width:34px;height:34px;font-size:23px}
.portal-home .top #identity{font-size:12px;color:#526d7d}.portal-home .top button{padding:8px 12px;font-size:12px;background:#ffffffbb}
.portal-home .wrap{max-width:1380px;margin:auto;padding:32px 4vw 20px}.portal-home .intro{background:none;padding:0;border:0;color:#12394d;margin-bottom:24px;border-radius:0;max-width:800px}.portal-home .eyebrow{color:#3c7c85;font-size:10px;letter-spacing:2px}.portal-home .intro h1{font-size:clamp(40px,4.3vw,63px);font-weight:800;letter-spacing:-2.4px;line-height:1.12;margin:8px 0 10px}.portal-home .intro h1 span{color:#218b92}.portal-home .intro p{color:#436776;font-size:14px;margin:5px 0}.portal-home #institution{font-size:12px;color:#6a818d}.portal-home .apps{width:min(860px,73%);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.portal-home .app{display:flex;align-items:center;gap:14px;min-height:164px;padding:16px;background:#ffffffed;border:1px solid #ffffff;border-radius:15px;box-shadow:0 6px 22px #17394b0a;transition:transform .15s,box-shadow .15s}.portal-home .app:hover{transform:translateY(-2px);box-shadow:0 9px 26px #17394b16}
.portal-home .app-photo{width:78px;height:94px;flex:none;border-radius:10px;background-repeat:no-repeat;background-color:#e8f2f4}.portal-home .care-photo{background-image:url('assets/portal-background-v2.png');background-size:auto 145%;background-position:77% 35%}.portal-home .nutri-photo{background-position:55% center}.portal-home .plan-photo{background-image:url('settings-photos.png');background-size:300% 300%;background-position:50% 50%}.portal-home .learn-photo{background-image:url('settings-photos.png');background-size:300% 300%;background-position:0 0}
.portal-home .app-content{padding:0;min-width:0;flex:1}.portal-home .app h2{font-size:21px;margin:4px 0;letter-spacing:-.4px}.portal-home .app p{font-size:12px;line-height:1.4;margin:3px 0 10px;color:#607989}.portal-home .badge{font-size:9px;padding:2px 7px}.portal-home .app-foot{gap:6px}.portal-home .app-foot small{font-size:10px}.portal-home .app-foot .button,.portal-home .app-foot button{font-size:11px;padding:6px 10px;border-radius:7px;white-space:nowrap}.portal-home .app-foot .button{background:#176575;color:white;border-color:#176575}.portal-home .footer{font-size:11px;color:#5b7988;margin-top:21px;max-width:800px}.portal-home .error:empty{display:none}
@media(min-width:1100px) and (max-height:780px){.portal-home .wrap{padding-top:22px}.portal-home .intro{margin-bottom:18px}.portal-home .intro h1{font-size:51px}.portal-home .app{min-height:148px;padding:13px}.portal-home .app-photo{height:84px;width:70px}.portal-home .footer{margin-top:16px}}
@media(max-width:1100px){.portal-home .apps{width:90%}.portal-home:before{background:linear-gradient(90deg,#f0f7f8f5,#f0f7f8cc 70%,#f0f7f86b)}}
@media(max-width:760px){body.portal-home{background-position:70% center;background-attachment:scroll}.portal-home .top{flex-direction:row;flex-wrap:wrap;gap:10px;padding:12px 18px}.portal-home .brand{font-size:21px}.portal-home .top>div:last-child{flex-wrap:wrap;gap:8px}.portal-home .top #identity{flex-basis:100%}.portal-home .wrap{padding:25px 18px}.portal-home .apps{width:100%;grid-template-columns:1fr}.portal-home .app{min-height:140px}.portal-home .intro h1{font-size:44px}.portal-home:before{background:#f0f7f8d9}}
@media(prefers-reduced-motion:reduce){.portal-home .app{transition:none}.portal-home .app:hover{transform:none}}

/* Accueil centré V2.2 */
.portal-home .wrap{max-width:1240px;text-align:center;padding-top:32px}.portal-home .intro{margin:0 auto 26px;max-width:100%;text-align:center}.portal-home .apps{width:min(900px,100%);margin:0 auto;align-items:stretch}.portal-home .app{text-align:left;min-height:158px;height:100%}.portal-home .footer{max-width:none;text-align:center}.portal-home:before{background:linear-gradient(90deg,#f0f7f8ce,#f0f7f8df 50%,#f0f7f8ad)}
/* Dossier travailleur : deux fenêtres compactes, défilements indépendants. */
.worker-dialog{width:min(1120px,96vw);height:min(790px,92vh);background:#f6fafb;border-radius:18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 80px #102e4350}.worker-head{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;border-bottom:1px solid var(--line);background:white}.worker-head h2{margin:3px 0;font-size:21px}.worker-head small{font-size:10px;letter-spacing:1.6px;color:#227e88}.worker-head button{padding:4px 12px;font-size:24px}.worker-columns{display:grid;grid-template-columns:350px minmax(0,1fr);gap:16px;padding:16px;min-height:0;flex:1}.worker-identity,.worker-rights{min-height:0;overflow:auto;padding:18px;background:white;border:1px solid var(--line);border-radius:12px}.worker-dialog h3{font-size:15px;margin:0 0 12px}.worker-identity label{margin:11px 0}.worker-dialog input,.worker-dialog select{padding:8px;font-size:12px}.worker-dialog .form-grid{gap:10px}.worker-app{padding:8px;background:#f1f7f8;border-radius:7px}.worker-app span{display:block;margin-bottom:4px}.worker-help{font-size:11px;line-height:1.5;color:#627987}.worker-dialog .check{display:flex;align-items:center;gap:8px}.worker-dialog .check input{width:auto}.rights-toolbar{display:flex;align-items:end;justify-content:space-between;gap:15px}.rights-toolbar label{min-width:60%}#rightsCount{font-size:11px;color:#5b7885}.rights-bulk,.group-buttons{display:flex;gap:7px;flex-wrap:wrap}.rights-bulk{margin-bottom:12px}.rights-bulk button,.group-buttons button{padding:5px 8px;font-size:10px}.rights-group{border:1px solid var(--line);border-radius:8px;margin-bottom:9px;overflow:hidden}.rights-group summary{padding:10px;background:#eaf3f5;cursor:pointer;font-size:12px;font-weight:bold}.rights-group summary span{float:right;color:#51808b}.rights-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.rights-checks label{font-weight:normal;font-size:11px;display:flex;align-items:start;gap:7px}.rights-checks input{width:14px;height:14px;flex:none;margin:1px 0}.group-buttons{padding:7px 10px 0}.worker-dialog footer{display:flex;gap:10px;align-items:center;padding:12px 20px;border-top:1px solid var(--line);background:white}.worker-dialog footer .error{font-size:12px;margin:0 auto 0 0;min-height:0}.worker-dialog footer button{font-size:12px;padding:8px 12px}@media(max-width:760px){.worker-dialog{height:94vh}.worker-columns{grid-template-columns:1fr;overflow:auto}.worker-identity,.worker-rights{overflow:visible}.rights-checks{grid-template-columns:1fr}.worker-dialog footer{flex-wrap:wrap}.worker-dialog footer .error{flex-basis:100%}}

.worker-app-toggle{display:flex!important;gap:12px;align-items:center;padding:12px!important;cursor:pointer}.worker-app-toggle input{width:18px;height:18px;flex:none;margin:0;accent-color:#176c7b}.worker-app-toggle span{margin:0!important}.worker-app-toggle small{display:block;font-weight:normal;font-size:11px;margin-top:2px}.worker-app-toggle:has(input:checked){background:#e2f2ed;border:1px solid #9ccab9}.worker-app-toggle:has(input:disabled){opacity:.65;cursor:default}
