:root{--blue:#1769aa;--blue-dark:#0d4f85;--sky:#eaf5ff;--coral:#ef7867;--gold:#f4b942;--teal:#3aa69a;--ink:#17324d;--muted:#698095;--paper:#fff;--line:#dce8f2;--bg:#f4f9fd;--shadow:0 12px 30px rgba(24,73,110,.11)}
*{box-sizing:border-box}html{background:#dfeef8}body{margin:0;font-family:ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(150deg,#d8f0ff,#fff4d8);min-height:100vh;font-size:16px}.app-shell{width:min(100%,520px);min-height:100vh;margin:auto;background:var(--bg);position:relative;box-shadow:0 0 55px rgba(26,73,109,.18);padding-bottom:88px}.topbar{height:78px;display:flex;align-items:center;gap:12px;padding:13px 20px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.school-mark{height:48px;width:48px;border-radius:17px;background:linear-gradient(145deg,var(--blue),#43a6db);color:white;display:grid;place-items:center;position:relative;box-shadow:0 6px 14px rgba(23,105,170,.24)}.school-mark span{font:700 26px Georgia,serif}.school-mark i{font-style:normal;position:absolute;font-size:11px;right:6px;top:5px;color:#ffe590}.school-title{display:flex;flex-direction:column;line-height:1.15;flex:1}.school-title small{font-size:.72rem;color:var(--muted)}.school-title strong{font-size:1.12rem}.icon-button{border:0;background:var(--sky);height:44px;width:44px;border-radius:50%;display:grid;place-items:center;position:relative;color:var(--blue);cursor:pointer}.icon-button svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.notification-dot{position:absolute;right:3px;top:1px;width:17px;height:17px;border-radius:50%;background:var(--coral);color:white;font-size:10px;display:grid;place-items:center;border:2px solid white}.view{display:none;padding:24px 20px 32px;animation:fade .24s ease}.view.active{display:block}@keyframes fade{from{opacity:.4;transform:translateY(4px)}}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800;color:var(--blue);margin:0 0 5px}.welcome h1,.page-head h1{font-family:Georgia,serif;font-size:1.9rem;line-height:1.1;margin:0;color:var(--ink)}.sun{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#fff2b8;font-size:27px;box-shadow:0 5px 16px rgba(224,167,35,.18)}.quote-card{margin:0 0 27px;padding:24px 23px 20px;background:linear-gradient(140deg,#1769aa,#2d8fc8);border-radius:25px;color:white;box-shadow:0 15px 32px rgba(23,105,170,.24);position:relative;overflow:hidden}.quote-card:after{content:"";position:absolute;width:120px;height:120px;border:20px solid rgba(255,255,255,.08);border-radius:50%;right:-38px;bottom:-55px}.quote-card p{font-family:Georgia,serif;font-size:1.15rem;line-height:1.5;margin:0 0 14px;position:relative;z-index:1}.quote-card footer{font-size:.78rem;color:#d9f0ff}.quote-icon{font:60px Georgia;position:absolute;right:20px;top:-4px;color:rgba(255,255,255,.15)}h2{font-size:1.08rem;margin:0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 2px 12px}.section-heading button{border:0;background:transparent;color:var(--blue);font-weight:700;cursor:pointer}.notice-card{display:flex;gap:14px;background:white;border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:0 8px 20px rgba(40,79,111,.07)}.notice-card.important{border-left:5px solid var(--coral)}.date-tile{width:55px;height:62px;flex:0 0 55px;border-radius:15px;background:#fff0ed;color:#c95043;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.date-tile.soft{background:var(--sky);color:var(--blue)}.date-tile strong{font-size:1.35rem}.date-tile span{font-size:.66rem;margin-top:5px;font-weight:800}.tag{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;background:#fff0ed;color:#c95043;padding:4px 7px;border-radius:6px;font-weight:800}.tag.activity{background:#fff7da;color:#9b6c00}.tag.service{background:#e7f8f5;color:#227d73}.notice-card h3{margin:7px 0 5px;font-size:1rem}.notice-card p{font-size:.82rem;line-height:1.4;margin:0;color:var(--muted)}.notice-card small{display:block;color:#8a9aaa;margin-top:7px}.quick-title{margin:27px 2px 12px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-grid button{min-height:130px;text-align:left;border:1px solid var(--line);background:white;border-radius:20px;padding:16px;box-shadow:0 8px 20px rgba(40,79,111,.06);color:var(--ink);cursor:pointer;transition:.2s}.quick-grid button:active{transform:scale(.97)}.quick-grid strong,.quick-grid small{display:block}.quick-grid strong{margin-top:10px;font-size:.92rem}.quick-grid small{color:var(--muted);margin-top:3px}.quick-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:1.25rem}.quick-icon.blue{background:var(--sky);color:var(--blue)}.quick-icon.coral{background:#fff0ed;color:var(--coral)}.quick-icon.gold{background:#fff5d8;color:#ac7700}.quick-icon.teal{background:#e5f7f5;color:var(--teal)}.page-head{margin-bottom:22px}.page-head>p:last-child{margin:8px 0 0;color:var(--muted);font-size:.9rem;line-height:1.4}.filter-row{display:flex;gap:8px;overflow:auto;margin-bottom:16px}.filter-row button{border:1px solid var(--line);background:white;color:var(--muted);padding:9px 14px;border-radius:20px;font-weight:700}.filter-row button.active{background:var(--blue);color:white;border-color:var(--blue)}.stack{display:grid;gap:12px}.month-card{background:white;border:1px solid var(--line);border-radius:23px;padding:18px;box-shadow:var(--shadow)}.month-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.month-nav button{width:35px;height:35px;border-radius:50%;border:0;background:var(--sky);font-size:1.6rem;color:var(--blue)}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:6px}.weekdays{color:#8da0b1;font-size:.72rem;font-weight:800;margin-bottom:9px}.days b,.days i,.days>span{height:37px;display:grid;place-items:center;font-style:normal;font-size:.84rem;border-radius:12px}.days i{color:#b5c1cb}.days .event{background:var(--blue);color:white;box-shadow:0 4px 10px rgba(23,105,170,.25)}.days .coral-event{background:var(--coral)}.days .gold-event{background:var(--gold);color:#624600}.agenda{margin-top:25px}.agenda h2{margin-bottom:12px}.agenda>div{display:grid;grid-template-columns:12px 1fr;gap:2px 10px;padding:13px 2px;border-bottom:1px solid var(--line)}.agenda-dot{width:10px;height:10px;border-radius:50%;grid-row:1/3;margin-top:5px}.blue-bg{background:var(--blue)}.coral-bg{background:var(--coral)}.gold-bg{background:var(--gold)}.agenda time{font-size:.73rem;color:var(--muted)}.agenda strong{font-size:.91rem}.privacy-note{display:flex;gap:12px;background:#e7f5ff;border:1px solid #cce7fa;padding:14px;border-radius:17px;color:var(--blue-dark);margin-bottom:17px}.privacy-note span{font-size:1.4rem}.privacy-note p{font-size:.81rem;line-height:1.35;margin:0}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-placeholder{aspect-ratio:.88;border:0;border-radius:22px;padding:18px;text-align:left;display:flex;flex-direction:column;justify-content:flex-end;color:var(--ink);cursor:pointer}.photo-placeholder>span{font-size:3rem;flex:1;display:grid;place-items:center}.photo-placeholder strong{font-size:.9rem}.photo-placeholder small{margin-top:4px;opacity:.7}.photo-placeholder.sky{background:linear-gradient(#bfe5fa,#e9f7ff)}.photo-placeholder.yellow{background:linear-gradient(#ffe694,#fff7d6)}.photo-placeholder.green{background:linear-gradient(#bde8d0,#ebfaf1)}.photo-placeholder.pink{background:linear-gradient(#ffcfc7,#fff0ed)}.demo-label{font-size:.77rem;color:var(--muted);text-align:center;margin-top:17px}.office-card{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);padding:14px;border-radius:20px;box-shadow:var(--shadow)}.avatar{width:49px;height:49px;border-radius:17px;background:linear-gradient(145deg,var(--blue),#53afdd);display:grid;place-items:center;color:white;font:700 22px Georgia}.office-card>div:last-child{display:flex;flex-direction:column}.office-card span{font-size:.74rem;color:var(--teal);font-weight:700;margin-top:2px}.office-card span i{display:inline-block;width:7px;height:7px;background:var(--teal);border-radius:50%}.office-card small{color:var(--muted);margin-top:3px}.chat{min-height:170px;padding:20px 0}.bubble{max-width:82%;padding:13px 15px;border-radius:18px;font-size:.9rem;line-height:1.4}.bubble time{display:block;font-size:.66rem;opacity:.62;margin-top:4px;text-align:right}.bubble.received{background:white;border:1px solid var(--line);border-bottom-left-radius:5px}.bubble.sent{background:var(--blue);color:white;margin:10px 0 0 auto;border-bottom-right-radius:5px}.message-form{background:white;border:1px solid var(--line);border-radius:20px;padding:15px;box-shadow:var(--shadow)}.message-form label{font-weight:800;font-size:.86rem;display:block;margin-bottom:8px}.message-form>div{display:flex;gap:8px}.message-form textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:14px;padding:12px;font:inherit;font-size:.9rem;color:var(--ink);outline:none}.message-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--sky)}.message-form button{align-self:flex-end;width:43px;height:43px;border:0;border-radius:50%;background:var(--blue);color:white;font-size:1.1rem}.message-form>small{display:block;color:var(--muted);font-size:.68rem;line-height:1.4;margin-top:9px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:76px;padding:8px 10px max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);border-top:1px solid var(--line);z-index:30;backdrop-filter:blur(12px)}.bottom-nav button{border:0;background:transparent;color:#8295a6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;cursor:pointer}.bottom-nav button>span{font-size:1.25rem;line-height:1}.bottom-nav button small{font-size:.66rem;font-weight:700}.bottom-nav button.active{color:var(--blue)}.badge{position:absolute;top:3px;right:13px;background:var(--coral);color:white;border-radius:9px;font-size:9px;line-height:16px;min-width:16px;font-style:normal}.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,20px);width:min(calc(100% - 40px),480px);background:var(--ink);color:white;padding:13px 16px;border-radius:14px;opacity:0;pointer-events:none;transition:.25s;z-index:50;text-align:center;font-size:.86rem}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:760px){body{padding:25px 0}.app-shell{min-height:calc(100vh - 50px);border-radius:28px;overflow:hidden}.bottom-nav{bottom:25px;border-radius:0 0 28px 28px}.topbar{position:relative}.view{padding-left:28px;padding-right:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.welcome-video{margin:-4px 0 22px;padding:8px;background:linear-gradient(135deg,#58bde5,#ffd85f 52%,#f58378);border-radius:24px;box-shadow:0 13px 28px rgba(35,91,128,.16)}.welcome-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#10273a;border-radius:18px}.video-audio-button{display:block;width:calc(100% - 12px);margin:9px 6px 2px;padding:11px 14px;border:0;border-radius:14px;background:#174d93;color:white;font:800 .84rem ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif;cursor:pointer;box-shadow:0 5px 12px rgba(23,77,147,.2)}.video-audio-button.playing{display:none}.gallery-featured-video{padding:7px;border-radius:20px;background:linear-gradient(135deg,#5bbfe3,#ffd95f 52%,#f47d74);box-shadow:0 10px 23px rgba(40,79,111,.12)}.gallery-featured-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:14px;background:#10273a}.archive-heading{margin-top:25px}
.uniform-notice{border-top-color:#e75d9a!important;background:linear-gradient(135deg,#fff 62%,#fff0f8)}.uniform-icon{width:55px;height:55px;flex:0 0 55px;border-radius:16px;background:linear-gradient(145deg,#f355a2,#715fc5);display:grid;place-items:center;font-size:1.65rem;box-shadow:0 6px 14px rgba(177,62,120,.18)}.uniform-notice>div:last-child{min-width:0}.uniform-notice p{margin-top:7px}.uniform-notice ul{margin:9px 0 0;padding-left:18px;color:var(--ink);font-size:.82rem;line-height:1.55}.uniform-notice li+li{margin-top:5px}
.christmas-notice{border-top-color:#c72f3c!important}.christmas-tag{background:#e9f7ee;color:#23784c}.december-card{margin-top:16px}.days .christmas-event{background:#c72f3c;color:white;box-shadow:0 4px 10px rgba(199,47,60,.25)}.christmas-bg{background:#c72f3c}
.grandparents-notice{border-top-color:#f0b637!important;background:linear-gradient(135deg,#fff 65%,#fff8dc)}.grandparents-date{background:#fff0b8;color:#8a6200}.grandparents-tag{background:#fff4ca;color:#8a6200}.grandparents-notice>div:last-child{min-width:0}.grandparents-notice p{margin-top:7px}.grandparents-notice .work-note{padding:9px 11px;border-radius:11px;background:#fff4ca;color:#765400;font-weight:700}
.november-card{margin-top:16px}.days>button.calendar-event{height:37px;display:grid;place-items:center;border:0;border-radius:12px;font:800 .84rem ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif;cursor:pointer;padding:0}.days>button.calendar-event:focus-visible{outline:3px solid #17324d;outline-offset:2px}.notice-card{scroll-margin-top:105px}.notice-focus{animation:noticePulse 1.8s ease}@keyframes noticePulse{0%,100%{box-shadow:0 8px 20px rgba(40,79,111,.07)}35%{box-shadow:0 0 0 5px rgba(244,185,66,.45),0 12px 28px rgba(40,79,111,.16)}}
.agenda-link{cursor:pointer;border-radius:12px}.agenda-link:hover{background:#fff}.agenda-link:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.quick-grid .today-quick{grid-column:1/-1;min-height:105px;background:linear-gradient(120deg,#fff1a8,#dff5ff 48%,#ffe1ed);display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:13px}.today-quick .quick-icon{grid-row:1/3;width:52px;height:52px;border-radius:18px;font-size:1.6rem}.today-quick strong,.today-quick small{margin:0}.today-quick strong{align-self:end;font-size:1.05rem}.today-quick small{align-self:start}.quick-icon.today{background:linear-gradient(145deg,#ffd447,#f58b63);color:white}.today-head{background:linear-gradient(120deg,#fff3b6,#e2f6ff 52%,#ffe3ec)}.today-date-card{display:flex;align-items:center;gap:14px;padding:16px 18px;margin-bottom:16px;border-radius:20px;background:linear-gradient(135deg,#1769aa,#5b63c7);color:white;box-shadow:0 11px 25px rgba(44,84,145,.2)}.today-date-card>span{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:rgba(255,255,255,.18);font-size:1.55rem}.today-date-card div{display:flex;flex-direction:column}.today-date-card small{color:#e8f5ff;font-size:.72rem}.today-date-card strong{margin-top:3px;text-transform:capitalize}.today-stack{display:grid;gap:12px}.today-card{display:flex;gap:14px;padding:17px;border-radius:21px;background:white;box-shadow:var(--shadow);border-top:4px solid #f2b936}.today-card.photo-today{border-top-color:#3aa69a}.today-card.voice-today{border-top-color:#ef7867}.today-symbol{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:15px;background:#fff3c9;color:#a87300;font-size:1.25rem}.photo-today .today-symbol{background:#e5f7f5;color:#24887d}.voice-today .today-symbol{background:#fff0ed;color:#d75d52}.today-card h2{font-size:1rem}.today-card p:not(.eyebrow){margin:7px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}.today-empty{margin:17px 5px 0;text-align:center;color:var(--muted);font-size:.75rem;line-height:1.45}
.quick-icon.prayer{background:linear-gradient(145deg,#f2d45c,#7657b8);color:white}.prayer-head{background:linear-gradient(120deg,#fff2bf,#eee8fb 50%,#e4f5ff)}.prayer-card{overflow:hidden;border-radius:25px;background:#fff;box-shadow:var(--shadow);border:1px solid #e7deef}.prayer-brand{display:flex;align-items:center;gap:12px;padding:15px 18px;background:linear-gradient(115deg,#fff8d9,#f2ecff)}.prayer-brand img{width:70px;height:54px;object-fit:contain;border-radius:12px;background:white}.prayer-brand div{display:flex;flex-direction:column;color:#174d93}.prayer-brand small{font-size:.67rem;color:var(--muted)}.prayer-brand strong{font-size:1.08rem}.prayer-brand span{font-size:.76rem;font-weight:700;color:#7657b8}.prayer-saint{height:210px;overflow:hidden;background:#eee8fb}.prayer-saint img{width:100%;height:100%;object-fit:cover;object-position:center 16%}.prayer-copy{position:relative;padding:24px 22px 26px;background:linear-gradient(180deg,#fff,#fffcf0)}.prayer-copy:before{content:"❦";position:absolute;right:19px;top:13px;font-size:2rem;color:#d7c47a}.prayer-copy .eyebrow{color:#7657b8}.prayer-copy h2{font-family:Georgia,serif;font-size:1.45rem;color:#553891;margin:4px 35px 16px 0}.prayer-copy p:not(.eyebrow){font-family:Georgia,serif;font-size:1rem;line-height:1.7;color:#425b70;margin:0}.prayer-copy p+p{margin-top:15px!important}.prayer-link{width:100%;margin-top:15px;padding:14px 16px;border:0;border-radius:15px;background:linear-gradient(135deg,#7657b8,#277fae);color:white;font:800 .84rem ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.prayer-link span{font-size:1.4rem;line-height:1}
.change-icon{width:55px;height:55px;flex:0 0 55px;border-radius:15px;background:linear-gradient(145deg,#fff1c8,#ffe0dc);display:grid;place-items:center;font-size:1.65rem}.change-notice p{font-size:.86rem;line-height:1.5}
.service-notice ul{margin:10px 0;padding-left:18px;color:var(--ink);font-size:.82rem;line-height:1.55}.service-notice li+li{margin-top:5px}.service-notice .late-note{margin-top:10px;padding:10px 11px;border-radius:11px;background:#fff6d8;color:#735400;font-weight:700}.service-notice>div:last-child{min-width:0}
.school-title span{font-size:.68rem;color:#745db5;font-weight:800;letter-spacing:.02em;margin-top:2px}
.featured-notice{display:block;padding:12px;overflow:hidden}.notice-poster{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:15px;background:#fff}.notice-summary{padding:14px 5px 5px}.notice-summary h3{font-size:1.05rem;margin-top:9px}.notice-summary p{font-size:.88rem}.view[data-view="home"] .featured-notice .notice-poster{max-height:300px;object-position:center 15%}.view[data-view="home"] .featured-notice{box-shadow:0 12px 27px rgba(48,80,112,.12)}
.school-mark{height:50px;width:58px;border-radius:15px;background:white;display:grid;place-items:center;box-shadow:0 5px 14px rgba(23,105,170,.16);overflow:hidden;border:1px solid #dbe9f3}.school-mark img{width:100%;height:100%;object-fit:contain;padding:3px}.video-section{margin-top:30px}.video-section .section-heading span{font-size:.72rem;color:var(--muted)}.video-list{display:grid;gap:10px}.video-list a{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);background:white;border:1px solid var(--line);border-radius:17px;padding:12px;box-shadow:0 7px 18px rgba(40,79,111,.06)}.video-list a>div{display:flex;flex-direction:column;flex:1}.video-list small{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.video-list strong{font-size:.9rem;margin-top:2px}.video-list a>i{font-style:normal;color:var(--blue)}.video-play{width:42px;height:42px;border-radius:13px;background:#fff0ed;color:var(--coral);display:grid;place-items:center;font-size:.84rem}.blue-play{background:var(--sky);color:var(--blue)}.gold-play{background:#fff5d8;color:#a97200}.youtube-channel{margin-top:14px;display:flex;align-items:center;gap:12px;text-decoration:none;color:white;background:linear-gradient(135deg,#d61f2c,#f14d45);border-radius:18px;padding:14px 16px;box-shadow:0 10px 23px rgba(205,34,45,.2)}.youtube-channel>span{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center}.youtube-channel>div{display:flex;flex-direction:column;flex:1}.youtube-channel small{color:#ffe9e9;text-transform:none;letter-spacing:0;font-size:.74rem;margin-top:2px}.youtube-channel i{font-style:normal}

/* Identità arcobaleno moderna della scuola */
body{background:linear-gradient(145deg,#ccecff 0%,#fff4c8 40%,#ffdcd7 70%,#d9f5df 100%)}.app-shell{background:linear-gradient(180deg,#f7fcff 0%,#fffdf7 48%,#f8fcfa 100%)}.topbar{height:84px;border-bottom:0;box-shadow:0 4px 18px rgba(30,82,118,.08)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,#ef665d 0 20%,#f5ba37 20% 40%,#78bd47 40% 60%,#38a9d6 60% 80%,#7166c8 80%)}.school-mark{height:58px;width:76px;border-radius:14px;border:0;box-shadow:none}.school-mark img{padding:1px}.school-title strong{color:#174d93}.welcome{padding:14px 16px;margin:-4px -5px 18px;border-radius:23px;background:linear-gradient(115deg,#e8f6ff,#fff7d6 55%,#ffe8e3)}.welcome h1{color:#174d93}.quote-card{background:linear-gradient(135deg,#5f63c9,#248fc7 55%,#34aa91)}.quick-grid button{border:0;position:relative;overflow:hidden}.quick-grid button:nth-child(1){background:linear-gradient(145deg,#e4f4ff,#fff)}.quick-grid button:nth-child(2){background:linear-gradient(145deg,#ffe8e2,#fff)}.quick-grid button:nth-child(3){background:linear-gradient(145deg,#fff3c9,#fff)}.quick-grid button:nth-child(4){background:linear-gradient(145deg,#dff6e9,#fff)}.quick-grid button:after{content:"";position:absolute;width:45px;height:45px;border-radius:50%;right:-20px;top:-20px;background:rgba(255,255,255,.75)}.notice-card{border-top:4px solid #40a7d4}.notice-card:nth-child(2){border-top-color:#f0b637}.notice-card:nth-child(3){border-top-color:#49ad76}.page-head{padding:17px 18px;border-radius:22px;background:linear-gradient(120deg,#e7f5ff,#fff6d4 54%,#ffe8e4);box-shadow:0 8px 20px rgba(31,86,121,.06)}.page-head h1{color:#174d93}.filter-row button.active{background:linear-gradient(135deg,#1769aa,#6862c8)}.month-card{border-top:6px solid transparent;border-image:linear-gradient(90deg,#ef665d,#f5ba37,#78bd47,#38a9d6,#7166c8) 1}.privacy-note{background:linear-gradient(110deg,#e6f5ff,#ecfaef)}.photo-placeholder{box-shadow:0 9px 20px rgba(30,70,100,.08)}.bottom-nav:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#ef665d 0 20%,#f5ba37 20% 40%,#78bd47 40% 60%,#38a9d6 60% 80%,#7166c8 80%)}.bottom-nav button:nth-child(1).active{color:#1769aa}.bottom-nav button:nth-child(2).active{color:#e75d54}.bottom-nav button:nth-child(3).active{color:#b17b00}.bottom-nav button:nth-child(4).active{color:#3a9b67}.bottom-nav button:nth-child(5).active{color:#675cc0}
.october-card{margin-top:16px}.days .saint-event{background:#7657b8;color:white}.saint-bg{background:#7657b8}.saint-notice{border-top-color:#7657b8!important}.saint-tag{background:#eee8fb;color:#6546a7}.saint-notice .notice-summary p+p{margin-top:10px}.office-email{color:var(--blue);font-size:.78rem;font-weight:700;margin-top:4px;text-decoration:none}.office-email:hover{text-decoration:underline}
.quick-icon.saint{background:#eee8fb;color:#6d4cb3}.quick-icon.music{background:#ffe8f3;color:#b13e78}.six-items{grid-template-columns:repeat(6,1fr)}.six-items button small{font-size:.59rem}.saint-head{background:linear-gradient(120deg,#eee8fb,#e8f7ff 55%,#fff2c8)}.music-head{background:linear-gradient(120deg,#ffe8f3,#eee8fb 52%,#e5f7ff)}.saint-hero{display:block;width:100%;border-radius:23px;box-shadow:var(--shadow);margin-bottom:17px}.story-card{background:white;border:1px solid var(--line);border-top:5px solid #7657b8;border-radius:22px;padding:20px;box-shadow:var(--shadow);position:relative}.story-card h2{padding-right:38px;color:#553891}.story-card p{font-size:.93rem;line-height:1.6;color:#536b80;margin:12px 0 0}.story-icon{position:absolute;right:18px;top:15px;width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:#eee8fb;color:#7657b8}.media-heading{display:flex;justify-content:space-between;align-items:end;margin:26px 2px 12px;gap:10px}.media-heading span{font-size:.7rem;color:var(--muted);text-align:right}.saint-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.saint-slot{min-height:155px;border-radius:20px;padding:15px;background:linear-gradient(150deg,#dff2ff,#fff);display:flex;flex-direction:column;justify-content:flex-end;border:1px dashed #9cc9e5}.saint-slot.warm{background:linear-gradient(150deg,#fff0c7,#fff);border-color:#e6c773}.saint-slot>span{font-size:2.2rem;flex:1;display:grid;place-items:center;color:#4b94c2}.saint-slot strong,.saint-slot small{display:block}.saint-slot strong{font-size:.84rem}.saint-slot small{font-size:.68rem;color:var(--muted);margin-top:4px}.media-cards{display:grid;gap:10px}.media-card{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:17px;padding:13px}.media-card>div{display:flex;flex-direction:column}.media-card small{color:var(--muted);font-size:.72rem;margin-top:3px}.media-symbol,.song-icon{width:42px;height:42px;flex:0 0 42px;border-radius:13px;background:#e8f5ff;color:var(--blue);display:grid;place-items:center}.music-symbol{background:#ffe7f2;color:#af3d77}.send-material{display:block;margin-top:14px;padding:13px 15px;border-radius:15px;background:linear-gradient(135deg,#6552b5,#258fc4);color:white;text-decoration:none;text-align:center;font-weight:800;font-size:.82rem}.hymn-card{display:flex;gap:16px;background:linear-gradient(135deg,#694fb8,#2697c7);color:white;border-radius:24px;padding:21px;box-shadow:0 14px 30px rgba(77,75,159,.22)}.hymn-note{width:57px;height:57px;flex:0 0 57px;border-radius:18px;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:2rem}.hymn-card h2{font-size:1.12rem}.hymn-card p:not(.eyebrow){font-size:.82rem;line-height:1.45;margin:8px 0 12px;color:#eef7ff}.hymn-card .eyebrow{color:#dcecff}.waiting-label{display:inline-block;font-size:.69rem;background:rgba(255,255,255,.16);border-radius:8px;padding:6px 8px}.song-list{display:grid;gap:10px}.song-list>a,.song-placeholder{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:17px;padding:13px;color:var(--ink);text-decoration:none}.song-list>a>div,.song-placeholder>div{display:flex;flex-direction:column;flex:1}.song-list small{font-size:.72rem;color:var(--muted);margin-top:3px;line-height:1.35}.song-list i{font-style:normal;color:var(--blue)}.song-icon.violet{background:#eee8fb;color:#7657b8}.song-icon.coral-song{background:#fff0ed;color:#df6257}
@media(max-width:380px){.six-items button small{font-size:.52rem}.six-items{padding-left:4px;padding-right:4px}.six-items button>span{font-size:1.05rem}}
.admin-access{margin-top:18px;padding:18px;border-radius:22px;background:linear-gradient(140deg,#e7f5ff,#fff 55%,#eee9fb);border:1px solid #cfe3f2;box-shadow:var(--shadow);display:grid;grid-template-columns:48px 1fr;gap:12px}.admin-lock{width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#1769aa,#6b58bb);display:grid;place-items:center;font-size:1.3rem}.admin-copy{min-width:0}.admin-copy .eyebrow{margin-bottom:3px;font-size:.64rem}.admin-copy h2{color:#174d93}.admin-copy p:not(.eyebrow){font-size:.78rem;line-height:1.4;color:var(--muted);margin:5px 0}.admin-copy strong{display:block;font-size:.76rem;color:#5f4ca8;overflow-wrap:anywhere}.admin-access>a{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:8px;padding:13px 15px;border-radius:14px;background:linear-gradient(135deg,#1769aa,#6754b9);color:white;text-decoration:none;font-size:.86rem;font-weight:800}.admin-access>small{grid-column:1/-1;font-size:.68rem;line-height:1.4;color:var(--muted);text-align:center}.admin-access>a.analytics-access{background:linear-gradient(135deg,#2f9a69,#1769aa)}
.seven-items{grid-template-columns:repeat(7,1fr);padding-left:5px;padding-right:5px}.seven-items button small{font-size:.55rem}@media(max-width:380px){.seven-items button small{font-size:.49rem}.seven-items{padding-left:3px;padding-right:3px}.seven-items button>span{font-size:1.02rem}}
.nine-items{grid-template-columns:repeat(9,1fr);padding-left:3px;padding-right:3px}.bottom-nav a{border:0;background:transparent;color:#8295a6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;text-decoration:none;min-width:0}.nine-items button small,.nine-items a small{font-size:.48rem;font-weight:700}.nine-items button>span,.nine-items a>span{font-size:1.02rem;line-height:1}.nine-items .facebook-nav>span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#1877f2;color:#fff;font:900 16px Arial,sans-serif}.nine-items .youtube-nav>span{width:23px;height:16px;border-radius:5px;display:grid;place-items:center;background:#ff0033;color:#fff;font-size:.58rem;padding-left:1px}@media(max-width:380px){.nine-items button small,.nine-items a small{font-size:.43rem}.nine-items button>span,.nine-items a>span{font-size:.94rem}}
.facebook-page{margin-top:10px;background:linear-gradient(135deg,#1877f2,#0d5fc4);box-shadow:0 10px 23px rgba(24,119,242,.22)}.facebook-page>span{font-family:Arial,sans-serif;font-size:1.35rem;font-weight:900}
.app-shell{padding-bottom:132px}.bottom-nav.eight-items{height:116px;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);padding:7px 8px max(7px,env(safe-area-inset-bottom))}.eight-items button small,.eight-items a small{font-size:.75rem;font-weight:700}.eight-items button>span,.eight-items a>span{font-size:1.05rem;line-height:1}.eight-items .facebook-nav>span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#1877f2;color:#fff;font:900 16px Arial,sans-serif}.eight-items .youtube-nav>span{width:23px;height:16px;border-radius:5px;display:grid;place-items:center;background:#ff0033;color:#fff;font-size:.58rem;padding-left:1px}.documents-head{background:linear-gradient(120deg,#e7f5ff,#edf9f2 55%,#fff4cc)}.ptof-head{background:linear-gradient(120deg,#eee8fb,#e7f5ff 55%,#fff4cc)}.rules-head{background:linear-gradient(120deg,#e5f7ef,#fff5cf 55%,#e7f5ff)}.document-empty{margin-top:16px;padding:30px 22px;border-radius:23px;background:white;border:1px solid var(--line);border-top:5px solid #318fca;box-shadow:var(--shadow);text-align:center}.document-empty.ptof-empty{border-top-color:#735cc0}.document-empty.rules-empty{border-top-color:#3aa575}.document-symbol{width:64px;height:64px;margin:0 auto 16px;border-radius:20px;display:grid;place-items:center;background:#e7f5ff;color:#1769aa;font-size:1.8rem}.ptof-empty .document-symbol{background:#eee8fb;color:#654bb1}.rules-empty .document-symbol{background:#e4f7ed;color:#27875b}.document-empty h2{color:#174d93;font-size:1.12rem}.document-empty p{margin:10px 0 16px;color:var(--muted);font-size:.9rem;line-height:1.55}.document-empty small{display:inline-block;padding:7px 10px;border-radius:9px;background:#f0f5f8;color:#667d8f;font-size:.75rem;font-weight:700}.toast{bottom:132px}
.whatsapp-request{display:flex;align-items:center;gap:12px;margin-top:15px;padding:15px;border-radius:19px;background:linear-gradient(135deg,#18a957,#25d366);color:white;text-decoration:none;box-shadow:0 10px 23px rgba(24,169,87,.22)}.whatsapp-mark{width:45px;height:45px;flex:0 0 45px;border-radius:50%;display:grid;place-items:center;background:white;color:#18a957;font-size:1.35rem;font-weight:900}.whatsapp-request>span:nth-child(2){display:flex;flex-direction:column;flex:1;min-width:0}.whatsapp-request strong{font-size:.9rem;line-height:1.25}.whatsapp-request small{margin-top:4px;color:#eafff1;font-size:.74rem;line-height:1.35}.whatsapp-request i{font-style:normal;font-size:1.7rem}

/* Galleria fotografica 2025/2026 */
.gallery-album-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:24px 2px 14px}.gallery-album-heading h2{font-family:Georgia,serif;font-size:1.35rem;color:#174d93}.gallery-album-heading>span{flex:0 0 auto;padding:6px 9px;border-radius:10px;background:#eee8fb;color:#654bb1;font-size:.72rem;font-weight:800}.school-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px;gap:10px}.school-photo{position:relative;overflow:hidden;padding:0;border:0;border-radius:18px;background:#dfeaf1;cursor:pointer;box-shadow:0 8px 18px rgba(38,75,103,.12)}.school-photo.wide{grid-column:1/-1;height:205px}.school-photo.portrait{grid-row:span 2}.school-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.school-photo:active img{transform:scale(1.03)}.school-photo:focus-visible{outline:4px solid #1769aa;outline-offset:3px}.photo-lightbox[hidden]{display:none}.photo-lightbox{position:fixed;inset:0;z-index:100;background:rgba(9,27,43,.94);display:grid;place-items:center;padding:54px 14px 22px}.photo-lightbox img{display:block;max-width:100%;max-height:calc(100vh - 80px);object-fit:contain;border-radius:14px;box-shadow:0 18px 45px rgba(0,0,0,.4)}.lightbox-close{position:absolute;right:17px;top:max(15px,env(safe-area-inset-top));width:42px;height:42px;border:0;border-radius:50%;background:white;color:#17324d;font-size:2rem;line-height:1;cursor:pointer}.lightbox-open{overflow:hidden}

/* Regolamento scolastico */
.document-ready{margin-top:16px;padding:25px 20px;border-radius:23px;background:linear-gradient(145deg,#fff 55%,#e9f8f0);border:1px solid #d6e9df;border-top:5px solid #3aa575;box-shadow:var(--shadow);text-align:center}.document-ready .document-symbol{margin-bottom:13px}.document-ready h2{font-family:Georgia,serif;font-size:1.35rem;color:#174d93}.document-ready>p:not(.eyebrow){margin:10px 0 19px;color:var(--muted);font-size:.9rem;line-height:1.5}.document-actions{display:grid;gap:10px}.document-actions a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 15px;border-radius:14px;text-decoration:none;font-size:.88rem;font-weight:800}.document-actions a span{font-size:1.15rem}.document-open{background:linear-gradient(135deg,#1769aa,#5f58b8);color:white;box-shadow:0 8px 17px rgba(41,80,148,.2)}.document-download{background:white;color:#27875b;border:1px solid #abd8c2}.document-ready>small{display:block;margin-top:15px;color:#6a8174;font-size:.74rem;font-weight:700}
