:root{--ink:#193c35;--muted:#607b74;--green:#176b58;--deep:#104d40;--mint:#eaf4ee;--paper:#f5f8f5;--line:#dce7e1;--amber:#fff4d9;--red:#a13838;--white:#fff;--radius:16px;--shadow:0 8px 30px #1d47330a;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #459d82}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);padding:10px 15px;font-weight:650;line-height:1.35;transition:background .15s,transform .15s}button:hover:not(:disabled){background:var(--mint);border-color:#b3d0c2}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--green);border-color:var(--green);color:white}button.primary:hover:not(:disabled){background:var(--deep)}button.danger{color:var(--red)}button.quiet{border-color:transparent;background:transparent}button.small{padding:7px 10px;font-size:12px}button.full{width:100%;padding:14px}.loading{text-align:center;padding:90px 20px;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.22;letter-spacing:-1px;margin-bottom:9px}h2{font-size:21px;line-height:1.3;letter-spacing:-.4px}h3{font-size:16px;margin-bottom:8px}p{margin-bottom:13px}.muted{color:var(--muted)}.small-text{font-size:12px;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.7px;font-size:10px;font-weight:750;color:var(--green);margin-bottom:10px}.layout{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}aside{background:white;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{height:40px;width:40px;background:var(--green);border-radius:12px;color:#fff;display:grid;place-items:center;font-size:29px;font-weight:300;flex-shrink:0;line-height:1}.brand strong{font-size:12px;line-height:1.4;display:block}.brand .small-text{font-size:9px;text-transform:uppercase;letter-spacing:1.4px;display:block;margin-bottom:4px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{text-align:left;display:flex;gap:11px;align-items:center;font-size:13px;border:none;padding:12px}.nav button.active{background:var(--mint);color:var(--green)}.nav-symbol{font-size:18px;width:20px;text-align:center;line-height:1}.aside-note{background:#f4f8f4;border:1px solid var(--line);border-radius:12px;padding:15px;font-size:12px}.aside-note p{margin:0}.account{margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}.account strong{font-size:12px;display:block}.account span{display:block}.main{max-width:1510px;width:100%;margin:auto;padding:30px 32px 24px;align-self:start}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.topbar p{margin-bottom:0;color:var(--muted);font-size:14px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.stat{padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat:first-child{background:var(--green);color:#fff;border-color:var(--green)}.stat span{font-size:12px;display:block;opacity:.85}.stat strong{font-size:30px;font-weight:650;line-height:1.35}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);overflow:hidden;margin-bottom:20px}.panel-body{padding:24px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--line)}input,select,textarea{width:100%;border:1px solid #cbddd2;border-radius:8px;background:#fff;padding:11px 12px;color:var(--ink);min-height:43px}input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--green);margin:3px 0;flex-shrink:0}textarea{resize:vertical;min-height:85px}.toolbar .date-input{width:157px}.filters{display:flex;gap:8px;align-items:center}.filters select{width:150px;font-size:12px}.filters input{width:172px;font-size:12px}.day-caption{padding:13px 20px 7px;font-size:14px;font-weight:700}.day-caption span{font-weight:400;color:var(--muted);font-size:12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}thead{background:#f8faf8;color:var(--muted);text-transform:uppercase;font-size:9px;letter-spacing:1px}th{font-weight:700;padding:11px 18px}td{padding:16px 18px;border-top:1px solid #edf2ee;vertical-align:middle}td strong{font-size:12px;display:block}td .time{font-size:16px}td .small-text{font-size:11px;margin-top:3px;display:block}td.manage{min-width:190px}td.manage .actions{gap:4px;justify-content:flex-end}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:20px;background:#edf3ef;font-weight:700;font-size:10px;white-space:nowrap;gap:5px}.badge:before{content:"";height:5px;width:5px;border-radius:50%;background:currentColor}.badge.confirmed{background:#eaf2fa;color:#2a5e8e}.badge.available{background:#e7f3ec;color:#176b58}.badge.completed{background:#eeeaf8;color:#695197}.badge.blocked,.badge.past,.badge.inactive{background:#f0f1ef;color:#737e77}.badge.resource_busy{background:#fff4dd;color:#8a6414}.panel-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.info-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.info-grid .panel-body p{font-size:13px;color:var(--muted)}.info-grid .panel{margin:0}.footnote{text-align:center;font-size:10px;color:var(--muted);padding:23px 10px 0}.empty{padding:38px 24px;text-align:center;color:var(--muted)}.empty h3{color:var(--ink)}.error-box{padding:13px 16px;border-radius:9px;border:1px solid #e6baba;background:#fff5f4;color:#922f2f;font-size:13px;margin-bottom:16px}.notice{padding:15px 17px;border:1px solid #e9d8af;background:#fffaf0;color:#73541a;border-radius:10px;font-size:12px;margin-bottom:17px}.success-box{padding:15px;border-radius:10px;background:var(--mint);color:var(--green);margin-bottom:16px}.subtitle{color:var(--muted);font-size:14px}.auth{max-width:470px;padding:45px 18px 50px;margin:auto}.auth .brand{justify-content:center;margin-bottom:30px}.auth .panel-body{padding:30px}.auth h1{font-size:25px}.field{display:block;margin-bottom:16px;font-size:12px;font-weight:650}.field>input,.field>select,.field>textarea{margin-top:6px;font-size:14px;font-weight:400}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check{display:flex;gap:10px;align-items:flex-start;font-size:12px;margin:15px 0}.check span{flex:1}.resource-checks{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;border:1px solid var(--line);padding:6px 13px;border-radius:9px;margin:8px 0 17px}.resource-checks .check{margin:9px 0}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.modal-head h2{margin:0}.modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}dialog{border:1px solid var(--line);border-radius:18px;padding:26px;width:min(600px,calc(100% - 28px));max-height:90vh;overflow:auto;color:var(--ink);box-shadow:0 18px 80px #10271f40}dialog::backdrop{background:#103b3260;backdrop-filter:blur(3px)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--deep);color:#fff;padding:14px 22px;border-radius:12px;box-shadow:0 10px 35px #123a3930;max-width:calc(100vw - 32px);font-size:13px;z-index:20}#toast.error{background:#873636}.item-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.item-cards .panel{margin:0}.item-cards p{font-size:13px;color:var(--muted)}.detail-list{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:17px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 14px}.section-heading h2{margin:0}.resource-list{margin-bottom:18px;display:flex;gap:10px;flex-wrap:wrap}.resource-tag{padding:12px 15px;border:1px solid var(--line);background:white;border-radius:10px;font-size:12px}.public-header{max-width:1030px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:26px 24px}.public-header .brand strong{font-size:13px}.public-header button{font-size:12px}.booking-shell{max-width:800px;padding:14px 24px 40px;margin:auto}.hero{text-align:center;margin-bottom:30px}.hero h1{font-size:37px;line-height:1.18;max-width:550px;margin:10px auto 12px;letter-spacing:-1.3px}.hero p{font-size:14px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:24px 0}.step{padding:11px 7px;border-bottom:2px solid #dae5de;color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.step i{font-style:normal;display:grid;place-items:center;background:#e5ebe6;width:22px;height:22px;border-radius:50%;font-size:10px;font-weight:750}.step.active{color:var(--green);border-color:var(--green);font-weight:650}.step.active i{background:var(--green);color:white}.book-panel{background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:27px}.book-panel h2{margin-bottom:5px}.book-panel>.subtitle{font-size:12px;margin-bottom:20px}.service-choice{display:flex;align-items:center;gap:17px;text-align:left;width:100%;padding:20px;margin:11px 0;border-radius:13px}.service-icon{height:43px;min-width:43px;border-radius:13px;background:var(--mint);color:var(--green);display:grid;place-items:center;font-size:22px;font-weight:400}.service-choice .choice-text{flex:1}.service-choice strong{display:block;font-size:15px;margin-bottom:4px}.service-choice .small-text{font-weight:400}.service-choice .arrow{font-size:23px;font-weight:400}.service-choice:hover{border-color:var(--green)}.choice-hint{margin-top:22px;background:#f4f8f5;border-radius:10px;padding:14px;font-size:12px;color:var(--muted)}.day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:23px}.day-button{text-align:center;padding:11px 5px;min-height:76px;font-weight:400}.day-button strong{display:block;font-size:23px;line-height:1.2}.day-button span{display:block;font-size:10px;text-transform:capitalize;color:var(--muted)}.day-button.selected{border:2px solid var(--green);background:var(--mint);padding:10px 4px}.time-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.time-button{padding:12px 5px}.book-summary{border-radius:12px;background:var(--mint);padding:18px;margin:16px 0 22px;font-size:13px}.book-summary strong{font-size:15px;display:block;margin-bottom:5px}.public-footer{text-align:center;color:var(--muted);font-size:11px;margin:25px 0 0}.public-footer button{font-size:11px;padding:3px}.confirm-symbol{margin:0 auto 16px;width:64px;height:64px;border-radius:50%;background:var(--mint);color:var(--green);display:grid;place-items:center;font-size:32px}.confirmation{text-align:center}.confirmation h2{font-size:26px;margin-bottom:8px}.code{font-size:18px;letter-spacing:1px;font-weight:750;padding:12px;background:#f6f8f5;border:1px dashed #b6cec0;border-radius:10px;margin:20px 0}.link-field{font-size:11px;background:#f7f9f6;margin:8px 0 10px;word-break:break-all;padding:10px;border-radius:8px;text-align:left}.preview-list{font-size:12px;max-height:240px;overflow:auto;margin:16px 0;border:1px solid var(--line);border-radius:9px}.preview-list>div{padding:9px 13px;border-bottom:1px solid var(--line)}.preview-list>div:last-child{border:0}.status-line{display:flex;gap:7px;align-items:center}.status-dot{height:7px;width:7px;background:#2f8867;border-radius:50%;display:inline-block}.cancel-history{padding:0 20px 18px;font-size:12px;color:var(--muted)}details summary{cursor:pointer;padding:12px 0}a{color:var(--green)}.wrap{overflow-wrap:anywhere}[hidden]{display:none!important}
@media(max-width:1150px){.layout{grid-template-columns:190px minmax(0,1fr)}.main{padding:26px 22px}.topbar{flex-direction:column}.topbar .actions{align-self:flex-end}.filters{flex-wrap:wrap}.item-cards{grid-template-columns:1fr 1fr}td,th{padding-left:13px;padding-right:13px}.stats{gap:9px}.stat{padding:16px}.main h1{font-size:27px}}
@media(max-width:800px){.layout{display:block}aside{padding:16px 20px;border-right:0;border-bottom:1px solid var(--line);gap:14px}.aside-note,.account{display:none}.nav{flex-direction:row;flex-wrap:wrap;gap:4px}.nav button{padding:9px 11px;font-size:11px}.nav-symbol{font-size:15px}.main{padding:23px 16px}.topbar .actions{align-self:flex-start}.stat strong{font-size:25px}.stat{padding:13px}.stat span{font-size:10px}.info-grid{grid-template-columns:1fr}.item-cards{grid-template-columns:1fr}.filters{width:100%}.filters select,.filters input{flex:1;min-width:110px;width:auto}.toolbar{padding:14px}.public-header{padding:21px 20px}.public-header button{font-size:11px;padding:7px 10px}.public-header .brand strong{font-size:11px}.public-header .brand .small-text{font-size:8px}.public-header .brand-mark{width:36px;height:36px}.booking-shell{padding:6px 18px 30px}.hero h1{font-size:30px;letter-spacing:-.9px}.hero{margin-bottom:22px}.hero p{font-size:13px}.book-panel{padding:22px}.steps{margin:20px 0}.step{font-size:10px;gap:5px}.step i{width:20px;height:20px}.day-grid{gap:7px}.time-grid{grid-template-columns:repeat(4,1fr)}.row2{grid-template-columns:1fr 1fr}.panel-footer{flex-wrap:wrap}dialog{padding:21px}.service-choice{padding:15px 13px;gap:11px}.service-choice strong{font-size:13px}.service-icon{width:35px;min-width:35px;height:35px}.service-choice .small-text{font-size:11px}}
@media(max-width:520px){.stats{grid-template-columns:repeat(2,1fr)}.topbar h1{font-size:26px}.toolbar>.actions{gap:5px}.toolbar button{padding:10px 12px}.table-wrap table thead{display:none}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block}.table-wrap tr{border-top:1px solid var(--line);padding:14px 16px;display:grid;grid-template-columns:75px 1fr;gap:8px 12px}.table-wrap td{padding:0;border:0}.table-wrap td:nth-child(3),.table-wrap td:nth-child(4){grid-column:2}.table-wrap td.manage{grid-column:1/-1;min-width:0;padding-top:5px}.table-wrap td.manage .actions{justify-content:flex-start}.table-wrap td .time{font-size:17px}.table-wrap td.empty{grid-column:1/-1;padding:16px}.day-caption{padding:13px 16px}.brand .small-text{font-size:8px}.brand strong{font-size:11px}.public-header{padding:18px 16px}.public-header .brand{gap:8px}.booking-shell{padding:2px 14px 25px}.book-panel{padding:20px 17px}.hero h1{font-size:29px;max-width:330px}.hero .eyebrow{font-size:9px}.day-grid{grid-template-columns:repeat(4,1fr)}.time-grid{grid-template-columns:repeat(3,1fr)}.row2{grid-template-columns:1fr}.resource-checks{grid-template-columns:1fr}.steps .step{flex-direction:column;align-items:flex-start;font-size:10px}.auth{padding:27px 15px}.auth .panel-body{padding:25px 20px}}
@media print{.layout{display:block}aside,.topbar .actions,.toolbar,.info-grid,.footnote,.manage,.panel-footer button,#toast,dialog{display:none!important}.main{padding:0}.stats{margin-bottom:10px}.panel{box-shadow:none}.table-wrap{overflow:visible}body{background:white}.panel-footer{border:0}}

/* v0.2: rientri Holter, senza caricare librerie esterne. */
.equipment-panel{margin-bottom:24px}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}.device-card{border:1px solid #dbe5e1;border-radius:12px;padding:14px;display:flex;align-items:flex-start;flex-direction:column;gap:8px}.device-card strong,.device-card span{overflow-wrap:anywhere}.equipment-panel .panel-body{padding:22px}.device-card .badge{white-space:normal}

/* Introduzione decorativa: cinque secondi, nessun caricamento esterno. */
#patient-intro{position:fixed;inset:0;z-index:1000;overflow:hidden;display:grid;place-items:center;background:#111c38;pointer-events:none;animation:intro-screen 5s ease-in-out both}
.intro-glow{position:absolute;width:70vmax;height:70vmax;border-radius:50%;opacity:.65;will-change:transform}
.intro-glow-a{background:radial-gradient(circle,#29dacf 0%,#dcece100 66%);left:-25vmax;top:-30vmax;animation:intro-drift-a 5s ease-out both}
.intro-glow-b{background:radial-gradient(circle,#e685ec 0%,#e5edda00 66%);right:-24vmax;bottom:-34vmax;animation:intro-drift-b 5s ease-out both}
.intro-composition{position:relative;text-align:center;color:#effffb;width:min(85vw,440px)}
.intro-symbol{width:clamp(160px,30vw,240px);height:auto;overflow:visible}
.intro-orbit{opacity:.25;transform-origin:120px 120px;animation:intro-orbit 5s cubic-bezier(.2,.6,.2,1) both}
.intro-orbit-inner{animation-direction:reverse;opacity:.16}
.intro-petal{transform-origin:120px 120px;opacity:.74}
.intro-petal-a{animation:intro-petal-a 5s cubic-bezier(.16,1,.3,1) both}
.intro-petal-b{animation:intro-petal-b 5s cubic-bezier(.16,1,.3,1) both}
.intro-signature{display:grid;gap:2px;animation:intro-signature 5s ease both}
.intro-signature span{font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.intro-signature strong{font-size:clamp(23px,5vw,32px);font-weight:500;letter-spacing:-.035em}
@keyframes intro-screen{0%,85%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes intro-drift-a{from{transform:translate(-12%,8%) scale(.8)}to{transform:translate(20%,20%) scale(1.1)}}
@keyframes intro-drift-b{from{transform:translate(12%,-8%) scale(.8)}to{transform:translate(-18%,-22%) scale(1.1)}}
@keyframes intro-orbit{from{transform:scale(.6);opacity:0}45%,100%{transform:scale(1);opacity:.25}}
@keyframes intro-petal-a{0%{transform:translateY(-32px) rotate(-45deg) scale(.5);opacity:0}60%,100%{transform:translateY(0) rotate(0) scale(1);opacity:.74}}
@keyframes intro-petal-b{0%{transform:translateX(32px) rotate(45deg) scale(.5);opacity:0}60%,100%{transform:translateX(0) rotate(0) scale(1);opacity:.74}}
@keyframes intro-signature{0%,15%{opacity:0;transform:translateY(10px)}45%,100%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#patient-intro{display:none;animation:none}#patient-intro *{animation:none}}

.intro-glow{mix-blend-mode:screen;opacity:.5}
.intro-petal-a{color:#52f1db}.intro-petal-b{color:#bf96ff;mix-blend-mode:screen}
.intro-signature strong{text-shadow:0 0 28px #67eadc66}
.intro-flyers{position:absolute;inset:0;overflow:hidden;perspective:900px}
.intro-flyers i{position:absolute;display:block;width:clamp(38px,8vw,110px);aspect-ratio:1;border:2px solid #66f2da;border-radius:26%;background:linear-gradient(140deg,#5ee8ca55,#21d5eb08);box-shadow:0 0 35px #34f0cd20;animation:intro-fly 5s cubic-bezier(.2,.55,.25,1) both}
.intro-flyers i:nth-child(1){left:8%;top:18%;--dx:17vw;--dy:8vh;--spin:140deg}
.intro-flyers i:nth-child(2){left:76%;top:12%;border-color:#fcbd64;background:#ffb64a20;border-radius:50%;--dx:-12vw;--dy:13vh;--spin:-120deg;animation-name:intro-fly-alt}
.intro-flyers i:nth-child(3){left:12%;top:71%;width:45px;border-color:#f590cd;background:#eb6cd133;--dx:12vw;--dy:-19vh;--spin:220deg}
.intro-flyers i:nth-child(4){left:82%;top:70%;border-color:#9d96ff;border-radius:50%;background:transparent;--dx:-18vw;--dy:-12vh;--spin:190deg;animation-name:intro-fly-alt}
.intro-flyers i:nth-child(5){left:38%;top:9%;width:20px;border-color:#7bf2e4;border-radius:50%;--dx:-18vw;--dy:15vh;--spin:80deg}
.intro-flyers i:nth-child(6){left:58%;top:84%;width:30px;border-color:#ffcb76;background:#ffc57755;--dx:16vw;--dy:-17vh;--spin:-180deg}
.intro-flyers i:nth-child(7){left:3%;top:44%;width:70px;aspect-ratio:2.5;border-color:#799fff;border-radius:50%;--dx:18vw;--dy:-10vh;--spin:130deg;animation-name:intro-fly-alt}
.intro-flyers i:nth-child(8){left:89%;top:40%;width:35px;border-color:#ff9e92;background:#ff938344;--dx:-18vw;--dy:20vh;--spin:-160deg}
@keyframes intro-fly{0%{opacity:0;transform:translate3d(calc(var(--dx) * -1),calc(var(--dy) * -1),-180px) rotate(-80deg) scale(.3)}20%{opacity:.85}75%{opacity:.9}100%{opacity:0;transform:translate3d(var(--dx),var(--dy),120px) rotate(var(--spin)) scale(1.2)}}
@keyframes intro-fly-alt{0%{opacity:0;transform:translate3d(var(--dx),calc(var(--dy) * -1),120px) rotate(100deg) scale(.4)}25%,75%{opacity:.8}100%{opacity:0;transform:translate3d(calc(var(--dx) * -1),var(--dy),-80px) rotate(var(--spin)) scale(1.25)}}
@media(prefers-reduced-motion:reduce){.intro-flyers i{animation:none}}

/* Riepilogo personale della giornata */
.morning-briefing{border-top:4px solid var(--green, #147866);margin-bottom:24px}
.briefing-heading,.briefing-metrics{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.briefing-heading h2{font-size:1.8rem;margin:.3rem 0}
.briefing-heading p{margin:.3rem 0}.briefing-next{background:#eef7f3;padding:16px;border-radius:12px}
.briefing-list{margin:16px 0;max-height:420px;overflow:auto}
.briefing-item{display:grid;grid-template-columns:105px 1fr auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #dfe8e3}
.briefing-changes{margin:16px 0}.briefing-changes ul{max-height:250px;overflow:auto;padding-left:22px}.briefing-changes li{margin:10px 0}.briefing-changes .small-text{display:block;margin-top:4px}
@media(max-width:650px){.briefing-item{grid-template-columns:1fr 1fr}.briefing-item>span:nth-child(2){grid-column:1 / -1;grid-row:2}.briefing-item>.badge{justify-self:end}}
@media print{.morning-briefing .actions,.briefing-changes{display:none}.briefing-list{max-height:none;overflow:visible}}

.custom-window{padding:16px;margin:14px 0;border:1px solid #d9e7e0;border-radius:12px;background:#f8fbf9}.custom-window h3{margin-top:0}

/* Calendario paziente: settimana corrente e vista mensile esplicita. */
.booking-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}
.booking-calendar-heading h3{margin:0;text-transform:capitalize;font-size:18px}
.booking-calendar-heading p{margin:4px 0 0}
.calendar-toggle{margin:14px 0;width:100%;border-color:var(--green);color:var(--green)}
.booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:6px 0 12px}
.booking-calendar .calendar-day{min-width:0;text-align:center;padding:10px 2px;min-height:76px;font-weight:400}
.booking-calendar .calendar-day strong{display:block;font-size:23px;line-height:1.2}
.booking-calendar .calendar-day span{display:block;font-size:10px;text-transform:capitalize;color:var(--muted)}
.booking-calendar .calendar-day:disabled{opacity:1;background:#f5f6f4;color:#929b95;border-color:#e8ece8;cursor:default}
.booking-calendar .calendar-day:disabled span{color:#929b95}
.booking-calendar .calendar-day.selected{padding:9px 1px;border:2px solid var(--green);background:var(--mint)}
.booking-calendar .calendar-day.is-today strong{text-decoration:underline;text-underline-offset:4px}
.booking-calendar.booking-month .calendar-day{min-height:60px}
.booking-calendar.booking-month .calendar-day strong{font-size:19px}
.booking-calendar .calendar-day .calendar-dot{font-size:9px;color:var(--green);margin-top:3px}
.booking-calendar .calendar-day:disabled .calendar-dot{color:#929b95}
.calendar-weekday{font-size:11px;text-align:center;color:var(--muted);padding:8px 0;font-weight:600}
.calendar-legend{margin-bottom:22px}
@media(max-width:380px){.booking-calendar{gap:3px}.booking-calendar .calendar-day strong{font-size:20px}.booking-calendar.booking-month .calendar-day strong{font-size:18px}}

/* Listino visibile esclusivamente durante l'inserimento dei recapiti. */
.booking-shell:has(.price-panel){max-width:1120px}
.customer-price-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start}
.customer-price-layout:has(.price-panel){grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr)}
aside.price-panel{display:block;min-width:0;padding:24px;background:linear-gradient(145deg,#edf7f0,#f8fbf9);border:1px solid #c9dfd2;border-radius:16px;box-shadow:0 12px 30px #104d4010;animation:price-reveal .5s ease-out both}
.price-panel h3{font-size:21px;margin-bottom:12px}.price-list{margin:0}.price-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:12px 0;border-top:1px solid #d4e5da;font-size:13px}.price-item dt{line-height:1.45}.price-item dd{margin:0;font-size:17px;font-weight:750;white-space:nowrap;color:var(--deep)}.price-item a{display:block;margin-top:5px;color:var(--green);font-size:12px;text-underline-offset:3px}
@keyframes price-reveal{from{opacity:0;transform:translateX(22px) translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:760px){.customer-price-layout:has(.price-panel){grid-template-columns:minmax(0,1fr)}aside.price-panel{padding:19px;grid-row:1}.price-item{gap:12px}}
@media(prefers-reduced-motion:reduce){aside.price-panel{animation:none}}

/* Vaccination half-day calendar */
.campaign-nav{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px}.campaign-nav strong{text-transform:capitalize}.campaign-grid,.campaign-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.campaign-weekdays{text-align:center;font-size:.8rem;margin-bottom:5px}.campaign-day{border:1px solid #dce4e3;border-radius:8px;padding:4px;min-width:0}.campaign-day>strong{display:block;padding:3px}.campaign-day.outside{opacity:.4}.campaign-half{display:flex;align-items:flex-start;gap:3px;padding:6px 2px;border-radius:5px;font-size:.7rem;cursor:pointer}.campaign-half input{width:auto;margin:2px 0;flex:none}.campaign-half small{display:block;font-size:.62rem}.campaign-half.selected{background:#d9eee6}.campaign-half:has(input:disabled){opacity:.5;cursor:default}#modal:has(#campaign-form){max-width:900px;width:96vw}@media(max-width:600px){.campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.campaign-empty,.campaign-weekdays{display:none}.campaign-half{font-size:.85rem;padding:8px 3px}.campaign-half small{font-size:.75rem}}

.vaccination-summary{margin:20px 0;padding:18px;border:1px solid var(--line,#d7e2dc);border-radius:12px;background:#f5f8f4}.vaccination-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.vaccination-age-group{padding:12px;border-radius:8px;background:white;border:1px solid #dce5dc}.vaccination-age-group summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;font-weight:600}.vaccination-age-group summary strong{background:#e4efe6;padding:0 8px;border-radius:10px}.vaccination-age-group ul{padding-left:18px;margin-bottom:0}.vaccination-age-group li{margin:12px 0;overflow-wrap:anywhere}@media(max-width:600px){.vaccination-summary-grid{grid-template-columns:1fr}}

.vaccination-instructions{display:grid;gap:16px;margin:22px 0;text-align:left;font-size:15px;line-height:1.65;color:var(--ink)}.vaccination-instructions section{padding:20px;border-radius:14px}.vaccination-instructions h3{font-size:19px;line-height:1.35;margin:0 0 12px}.vaccination-instructions ol,.vaccination-instructions ul{padding-left:24px;margin:0}.vaccination-instructions li{margin:10px 0}.vaccine-exclusions{background:#fff7ed;border:2px solid #a65e1b}.vaccine-exclusions li::marker{font-weight:800;color:#754012}.vaccine-preparation{background:#eaf5ee;border:2px solid #316548}.vaccine-access{background:#f5f7f5;border:1px solid var(--line)}.vaccination-instructions p:last-child{margin-bottom:0}@media(max-width:480px){.vaccination-instructions section{padding:16px}.vaccination-instructions h3{font-size:18px}}

#vaccination-payment{border:2px solid var(--green);border-radius:12px;padding:16px;margin:18px 0;background:#f1f7f3}#vaccination-payment legend{font-weight:750;padding:0 6px}#vaccination-payment input[type=radio]{width:20px;height:20px;min-width:20px;flex:0 0 20px;margin:2px 0;accent-color:var(--green)}#vaccination-payment .check{align-items:flex-start;gap:12px}#vaccination-payment .check span{flex:1;min-width:0}
