*{box-sizing:border-box}body{margin:0;background:#f6f7f9;color:#263a43;font:15px 'Segoe UI',sans-serif;display:flex;min-height:100vh}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid #dce3e5;border-radius:9px;background:white;padding:10px 15px;color:inherit}button:hover{background:#eef4f2}aside{width:255px;flex-shrink:0;background:#fff;border-right:1px solid #e4e9e9;padding:35px 25px;display:flex;flex-direction:column}.brand{text-decoration:none;color:#244e43;display:flex;align-items:center;gap:12px;font-size:29px;font-weight:650}.sub{font-size:12px;display:block;font-weight:400;color:#77898e;margin-top:5px}.workspace,.eyebrow{font-size:10px;letter-spacing:1.8px;color:#748a86;font-weight:700}.workspace{margin-top:65px}aside h2{font-size:16px;margin:17px 0 22px}.person{display:flex;align-items:center;gap:10px;margin:13px 0}.person input{accent-color:#31715e}i{width:9px;height:9px;border-radius:50%;display:inline-block}.p1{background:#31715e}.p2{background:#bc8750}.p3{background:#7b77b6}.aside-bottom{margin-top:auto;padding-top:55px;font-size:13px;line-height:1.6}.aside-bottom p,small{color:#78888d}small{display:block;margin-top:12px;font-size:11px}.aside-bottom a{color:#31715e}main{padding:45px 42px;flex:1;min-width:0;max-width:1600px}header{display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-family:Georgia,serif;font-size:40px;font-weight:400;margin:10px 0}.intro{color:#7a888e;margin:0}.primary{background:#2f6655;color:white;border-color:#2f6655}.primary:hover{background:#245341}.notice{margin:28px 0 20px;color:#687d75;font-size:12px;background:#eaf1ed;border-radius:8px;padding:12px 16px}.calendar{background:#fff;border:1px solid #e1e7e8;border-radius:15px;overflow:hidden}.toolbar{padding:20px;display:flex;justify-content:space-between;gap:12px;align-items:center}.navigation,.views{display:flex;align-items:center;gap:10px}.navigation h2{font-size:19px;min-width:165px;text-align:center;font-weight:550}.weekdays,.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays div{padding:14px 8px;text-align:center;color:#849195;font-size:11px;text-transform:uppercase;border-top:1px solid #edf0f1}.day{min-height:115px;border-top:1px solid #edf0f1;border-right:1px solid #edf0f1;padding:9px 6px}.day.outside{background:#fafbfc;color:#aab4b8}.daynum{border:0;padding:3px 7px;font-size:12px;background:none}.day.current .daynum{background:#306a58;color:white;border-radius:50%}.event{display:block;width:100%;text-align:left;font-size:11px;padding:6px;margin-top:5px;border:0;border-left:3px solid #31715e;border-radius:4px;background:#eaf3ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event.person2{background:#fcf1e6;border-color:#bc8750}.event.person3{background:#eeedf8;border-color:#7b77b6}.list{padding:0 20px 20px}.list-row{display:flex;align-items:center;gap:15px;padding:14px 0;border-top:1px solid #edf0f1}.list-row .event{font-size:14px;padding:12px}.empty{padding:35px;color:#7c8a8e;text-align:center}footer{font-size:12px;color:#8e9b9f;text-align:center;margin-top:28px}dialog{border:0;border-radius:16px;padding:25px;width:min(560px,94vw);color:#263a43;box-shadow:0 20px 90px #10271e33}dialog::backdrop{background:#182f3855}.modal-title{display:flex;align-items:center;justify-content:space-between}.modal-title h2{font-size:23px}form label{display:block;font-size:13px;margin:13px 0}form input,form select,textarea{width:100%;padding:11px;border:1px solid #ccd8d7;border-radius:7px;margin-top:6px;background:white;color:inherit}.dates{display:flex;gap:14px}.dates label{flex:1;min-width:0}.actions{display:flex;justify-content:space-between;margin-top:20px}.danger,#form-error{color:#a44545}#status{color:#a44545} @media(max-width:1000px){aside{width:205px;padding:25px 18px}main{padding:30px 20px}.day{min-height:100px}.toolbar{flex-wrap:wrap}}@media(max-width:700px){body{display:block}aside{width:100%;padding:18px;border-right:0;border-bottom:1px solid #e1e7e8;display:block}.brand{font-size:24px}.workspace,aside h2,.aside-bottom{display:none}.person{display:inline-flex;margin:18px 10px 0 0;font-size:12px;gap:5px}main{padding:23px 12px}h1{font-size:33px}.eyebrow{font-size:8px}header{align-items:flex-start}header .primary{font-size:12px;padding:10px}.intro{font-size:13px}.toolbar{padding:10px}.navigation h2{font-size:17px;min-width:140px}.views button{font-size:12px}.day{min-height:85px;padding:5px 2px}.event{font-size:10px;padding:5px 2px}.weekdays div{font-size:9px}.dates{display:block}.notice{font-size:11px}}

/* AC Copro — palette et thèmes */
:root{--bg:#f4f7fc;--surface:#fff;--surface-alt:#f8faff;--text:#20334f;--muted:#64758d;--line:#dfe7f2;--accent:#155bd7;--accent-soft:#eaf1ff;--hover:#edf3fd;--shadow:0 8px 35px #183f6a05;--event1:#eaf1ff;--event2:#fbefe3;--event3:#f0edfa;--color1:#155bd7;--color2:#a36b29;--color3:#7860ac;color-scheme:light}
:root[data-theme=dark]{--bg:#0d1423;--surface:#151f31;--surface-alt:#111a2b;--text:#e4eaf5;--muted:#a0b0ca;--line:#2a3850;--accent:#7da9ff;--accent-soft:#203454;--hover:#24344f;--shadow:0 8px 35px #0002;--event1:#213657;--event2:#433323;--event3:#342e4d;--color1:#9dbbff;--color2:#ebbb7c;--color3:#c0acf0;color-scheme:dark}
:root[data-theme=halloween]{--bg:#140f20;--surface:#21182f;--surface-alt:#1a1326;--text:#f3eafa;--muted:#bcaacb;--line:#3c2c4e;--accent:#ffb15f;--accent-soft:#443025;--hover:#3a2848;--shadow:0 8px 35px #0002;--event1:#493222;--event2:#373b27;--event3:#3b2a52;--color1:#ffbd78;--color2:#b9d28d;--color3:#c8a2ef;color-scheme:dark}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,sans-serif}aside{background:var(--surface);border-color:var(--line);width:270px;padding:26px 22px}.brand{font-size:25px;color:var(--text);gap:10px;letter-spacing:-.8px}.ac{color:#e51626}.sub{letter-spacing:2px;font-size:9px;color:var(--muted);margin-top:7px}.logo-tile{width:68px;height:68px;flex-shrink:0;background:#fff;border-radius:15px;display:grid;place-items:center;box-shadow:0 2px 12px #10223f0a}.logo-tile img{width:65px;height:65px;object-fit:contain}.workspace{margin-top:40px;color:var(--muted);font-size:9px}.nav-active{display:flex;gap:12px;align-items:center;background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:14px 12px;margin:13px 0 30px;font-size:13px;font-weight:600}.nav-count{margin-left:auto;font-size:11px;border:1px solid var(--line);border-radius:5px;padding:1px 6px}aside h2{font-size:12px;color:var(--muted);font-weight:600}.person{font-size:13px;margin:18px 0}.person input{accent-color:var(--accent)}.p1{background:var(--color1)}.p2{background:var(--color2)}.p3{background:var(--color3)}.appearance{border-top:1px solid var(--line);margin-top:30px;padding-top:8px}.theme-options{display:grid;gap:7px}.theme-options button{text-align:left;font-size:12px;padding:10px 12px;display:flex;align-items:center;gap:10px;background:transparent}.theme-options button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.appearance p{font-size:11px;line-height:1.6;color:var(--muted);min-height:34px}.aside-bottom{padding-top:28px;font-size:11px;color:var(--muted)}.aside-bottom strong{color:var(--text)}.aside-bottom p,small{color:var(--muted)}.aside-bottom a{color:var(--accent)}main{padding:0 38px 25px;max-width:none}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);height:88px;font-size:12px;color:var(--muted);margin-bottom:36px}.breadcrumb{color:var(--text);margin-left:10px}.profile{display:flex;align-items:center;gap:10px;color:var(--text)}.profile small{margin:2px 0 0;font-size:10px}.avatar{background:var(--accent-soft);color:var(--accent);border:1px solid var(--line);border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-size:12px;font-weight:600}.eyebrow{font-size:9px;color:var(--muted);letter-spacing:2.5px}h1{font-family:'Segoe UI',system-ui,sans-serif;font-size:36px;font-weight:650;letter-spacing:-1.5px;margin:11px 0}h1 span{color:var(--accent)}.intro{font-size:13px;color:var(--muted)}button{background:var(--surface);border-color:var(--line);color:var(--text);transition:background .15s}button:hover{background:var(--hover)}.primary{background:#155bd7;color:white;border-color:#155bd7;box-shadow:0 4px 12px #155bd722;padding:12px 18px}.primary:hover{background:#104bb6}:root[data-theme=halloween] .primary{background:#ffac58;border-color:#ffac58;color:#241a12}:root[data-theme=dark] .primary{background:#2c68d8;color:white;border-color:#2c68d8}.notice{background:transparent;border:0;color:var(--muted);padding:0;font-size:11px;display:flex;align-items:center;gap:7px;margin:25px 0}.connection-dot{height:6px;width:6px;background:#35a678;border-radius:50%}.season{display:none}:root[data-theme=halloween] .season{display:inline;color:var(--accent);margin-left:auto}.search-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px}.search-label{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--muted);width:290px}.search-label span{font-size:22px;line-height:1}.search-label input{background:transparent;color:var(--text);border:0;min-width:0;width:100%;font-size:12px;padding:2px}.search-label input::placeholder{color:var(--muted)}.shared-label{font-size:11px;color:var(--muted)}.calendar{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow);border-radius:14px}.toolbar{padding:14px 20px}.navigation h2{font-size:18px}.navigation button{border:0;background:var(--surface-alt);padding:7px 13px}.views button{font-size:12px;padding:8px 12px}.weekdays div{background:var(--surface-alt);color:var(--muted);border-color:var(--line);font-size:10px;letter-spacing:.7px}.day{border-color:var(--line);min-height:104px}.day.outside{background:var(--surface-alt);color:var(--muted)}.day.current .daynum{background:var(--accent);color:var(--bg);font-weight:700}.daynum{color:inherit;min-height:28px;min-width:28px}.event{background:var(--event1);border-color:var(--color1);color:var(--color1)}.event.person2{background:var(--event2);border-color:var(--color2);color:var(--color2)}.event.person3{background:var(--event3);border-color:var(--color3);color:var(--color3)}.list-row{border-color:var(--line)}.empty,footer{color:var(--muted)}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line)}form input,form select,textarea{background:var(--surface-alt);border-color:var(--line);color:var(--text)}.danger,#form-error,#status{color:#d85d6e}:root[data-theme=halloween] .calendar{border-top:2px solid var(--accent)}:root[data-theme=halloween] main{background:radial-gradient(ellipse at 100% 0,#7b38941a,transparent 55%)}
@media(min-width:1500px){main{padding-left:55px;padding-right:55px}.day{min-height:125px}}
@media(max-width:1100px){aside{width:230px;padding:24px 16px}main{padding:0 22px 24px}.brand{font-size:22px}.logo-tile{width:56px;height:56px}.logo-tile img{width:54px;height:54px}h1{font-size:30px}.shared-label{display:none}.season{font-size:10px}}
@media(max-width:700px){aside{width:100%;padding:15px 16px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.brand{font-size:21px;margin-right:auto}.logo-tile{width:46px;height:46px;border-radius:10px}.logo-tile img{width:44px;height:44px}.sub{font-size:8px}.nav-active,.workspace,aside>h2,.aside-bottom{display:none}.person{margin:0 5px 0 0;font-size:12px;order:3}.appearance{border:0;margin:0;padding:0;width:100%;order:4}.appearance h2,.appearance p{display:none}.theme-options{display:flex;gap:6px;flex-wrap:wrap}.theme-options button{font-size:11px;padding:8px 10px;min-height:36px}main{padding:0 14px 24px}.topbar{height:60px;margin-bottom:25px}.profile{font-size:11px}.profile small{font-size:9px}header{flex-wrap:wrap;gap:16px}h1{font-size:29px;letter-spacing:-1px}.intro{font-size:12px;line-height:1.7}header .primary{font-size:12px;min-height:42px}.notice{margin:20px 0;flex-wrap:wrap;line-height:1.5}.notice-detail{font-size:10px}.season{width:100%}.search-row{margin-bottom:14px}.search-label{width:100%;padding:10px 12px}.toolbar{gap:8px;padding:12px}.navigation{gap:6px}.navigation h2{font-size:16px;min-width:135px}.views{gap:6px}.views button{font-size:11px;min-height:38px}.day{min-height:88px}.event{font-size:10px}.list{padding:0 12px 15px}.list-row{gap:8px}.list-row>span{font-size:12px;min-width:50px}.list-row .event{font-size:12px;min-height:44px}.dates{display:block}.modal-title h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Vues détaillées */
.view-switcher{display:flex;gap:3px;border:1px solid var(--line);background:var(--surface-alt);padding:3px;border-radius:10px}.view-switcher button{border:0;background:transparent}.view-switcher button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.toolbar{flex-wrap:wrap}.navigation h2{max-width:500px}.time-scroller{max-height:600px;overflow:auto;border-top:1px solid var(--line)}.time-columns{display:grid;align-items:start}.time-columns.week{grid-template-columns:repeat(7,minmax(150px,1fr));min-width:1050px}.time-columns.day{grid-template-columns:1fr}.time-column{min-width:0;border-right:1px solid var(--line)}.time-column h3{position:sticky;top:0;background:var(--surface);z-index:2;margin:0;padding:14px;text-transform:capitalize;font-size:12px;border-bottom:1px solid var(--line)}.time-column h3.today-heading{background:var(--accent-soft);color:var(--accent)}.hour-slot{min-height:62px;padding:6px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.hour-add{font-size:10px;color:var(--muted);padding:2px 4px;text-align:left;border:0;background:transparent;width:100%;min-height:24px}.hour-slot .event{white-space:normal;margin:0;font-size:12px}.spanning{padding:8px;background:var(--surface-alt);border-bottom:1px solid var(--line)}.schedule-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-help,.series-note{font-size:11px;color:var(--muted);line-height:1.6}.series-note{background:var(--accent-soft);color:var(--accent);padding:10px;border-radius:7px}#reminders{position:fixed;bottom:20px;right:20px;z-index:30;display:grid;gap:10px;max-width:min(420px,90vw);max-height:70vh;overflow:auto}.reminder-toast{display:flex;align-items:center;gap:12px;background:var(--surface);color:var(--text);border:1px solid var(--accent);border-radius:12px;padding:18px;box-shadow:0 12px 45px #0003;font-size:13px}.reminder-toast button{font-size:11px}.notification-tools{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.notification-tools button{font-size:11px;width:100%;padding:9px}.notification-tools p{font-size:10px;color:var(--muted);line-height:1.6}.decor-control{display:none}:root[data-theme=halloween] .decor-control{display:block;margin-top:8px;width:100%;font-size:11px}.halloween-decor{display:none;pointer-events:none;position:fixed;inset:0;z-index:5;overflow:hidden}:root[data-theme=halloween] .halloween-decor{display:block}.halloween-decor span{position:absolute;filter:drop-shadow(0 5px 8px #0004);user-select:none}.pumpkin{font-size:38px;bottom:12px;right:28px;animation:pumpkin-bob 4s ease-in-out infinite}.cat{font-size:38px;bottom:14px;right:85px;animation:cat-watch 7s ease-in-out infinite}.witch{font-size:37px;top:102px;left:40%;animation:witch-float 12s ease-in-out infinite}.lantern{font-size:34px;top:-5px;right:110px;transform-origin:50% 0;animation:lantern-swing 5s ease-in-out infinite}.lantern.two{right:165px;top:-12px;font-size:29px;animation-delay:-2s}.spark{font-size:18px;color:#ffc481;top:155px;right:35%;animation:spark-glow 4s ease-in-out infinite}.spark.two{top:80px;right:28%;animation-delay:-2s}.decor-paused .halloween-decor span{animation-play-state:paused!important}@keyframes pumpkin-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-7px) rotate(3deg)}}@keyframes cat-watch{0%,75%,100%{transform:translateY(0) rotate(0)}85%{transform:translateY(-5px) rotate(-7deg)}}@keyframes witch-float{0%,100%{transform:translate(0,0) rotate(-5deg)}50%{transform:translate(90px,-12px) rotate(5deg)}}@keyframes lantern-swing{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}@keyframes spark-glow{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
@media(max-width:1100px){.views{flex-wrap:wrap}.navigation h2{font-size:15px}.witch{left:55%;top:102px}.lantern{right:25px}.lantern.two{right:65px}}
@media(max-width:700px){.notification-tools{order:5;margin:0;padding:0;border:0;width:100%}.notification-tools button{width:auto}.notification-tools p{display:inline;margin-left:6px}.appearance .decor-control{display:none}:root[data-theme=halloween] .appearance .decor-control{display:inline-block;width:auto}.time-scroller{max-height:560px}.views{width:100%;justify-content:space-between}.view-switcher{flex:1;justify-content:space-between}.view-switcher button{flex:1;padding:7px}.navigation h2{min-width:0;text-align:left;line-height:1.5}.schedule-fields{grid-template-columns:1fr}.witch{display:none}.lantern{right:16px;font-size:24px}.lantern.two{display:none}.pumpkin,.cat{font-size:26px;bottom:7px}.pumpkin{right:12px}.cat{right:48px}.spark{display:none}.reminder-toast{padding:12px}#reminders{bottom:50px;right:12px}.list-row>span{min-width:68px}}
@media(prefers-reduced-motion:reduce){.halloween-decor span{animation:none!important}}
[hidden]{display:none!important}

/* Une scène illustrée remplace les anciens émojis décoratifs. */
.halloween-decor{display:none!important}.haunted-scene{display:none;position:relative;isolation:isolate;height:250px;border:1px solid #51425d;border-radius:18px;overflow:hidden;margin:20px 0 24px;background:#101527}:root[data-theme=halloween] .haunted-scene{display:block}.haunted-landscape{position:absolute;inset:0;width:100%;height:100%}.scene-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0d1026f5 0%,#11152aee 22%,#15172c30 48%,transparent 60%)}.scene-caption{position:relative;z-index:2;padding:35px;color:#eeeaf5;max-width:47%;pointer-events:none}.scene-caption>span{font-size:9px;letter-spacing:2px;color:#edbb78}.scene-caption h2{font-size:23px;font-weight:550;letter-spacing:-.5px;line-height:1.4;margin:14px 0 8px}.scene-caption p{font-size:11px;color:#b8b2ca}.scene-ghost{animation:silk-float 6s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 80%}.ghost-shadow{animation:shadow-breathe 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.scene-fog{animation:fog-drift 24s ease-in-out infinite alternate}.scene-bats{animation:bats-glide 13s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.house-light,.jack-light{animation:candle-breathe 7s ease-in-out infinite alternate}.cat-eyes{animation:cat-blink 9s ease-in-out infinite}.decor-paused .haunted-scene *{animation-play-state:paused!important}#recurrence-settings{display:contents}.scope-choice{background:var(--accent-soft);padding:12px;border-radius:9px}.notification-tools button+button{margin-top:7px}.notification-tools .notification-help{font-size:10px;line-height:1.6;margin-top:8px}dialog{max-height:90vh;overflow:auto}#test-notification{border-color:var(--accent);color:var(--accent)}
@keyframes silk-float{0%,100%{transform:translate(0,0) rotate(-3deg)}50%{transform:translate(8px,-14px) rotate(3deg)}}@keyframes shadow-breathe{0%,100%{transform:scaleX(1);opacity:.8}50%{transform:scaleX(.85);opacity:.45}}@keyframes fog-drift{from{transform:translateX(-35px)}to{transform:translateX(45px)}}@keyframes bats-glide{from{transform:translate(-15px,5px) rotate(-4deg)}to{transform:translate(25px,-8px) rotate(4deg)}}@keyframes candle-breathe{0%,100%{opacity:.75}40%{opacity:1}75%{opacity:.85}}@keyframes cat-blink{0%,44%,48%,100%{opacity:1}46%{opacity:.1}}
@media(max-width:1100px){.scene-caption{padding:25px;max-width:43%}.scene-caption h2{font-size:19px}.haunted-scene{height:230px}.haunted-landscape{width:120%;max-width:none;left:-10%}}
@media(max-width:700px){.haunted-scene{height:240px;margin-top:16px}.haunted-landscape{width:200%;left:-95%;top:20px;height:100%}.scene-caption{max-width:100%;padding:15px 18px}.scene-caption h2{font-size:16px;margin:7px 0;line-height:1.35}.scene-caption h2 br{display:none}.scene-caption p{display:none}.scene-caption>span{font-size:8px}.scene-vignette{background:linear-gradient(180deg,#101325ee 0%,#10132570 30%,transparent 55%)}.notification-tools .notification-help{display:block;margin:7px 0 0;font-size:10px}.notification-tools button{font-size:11px}.scene-caption{pointer-events:none}}
@media(prefers-reduced-motion:reduce){.haunted-scene *{animation:none!important}}

/* Thème Noël */
:root[data-theme=christmas]{--bg:#0c2428;--surface:#153337;--surface-alt:#102c31;--text:#f2f2e9;--muted:#b2cbc8;--line:#315253;--accent:#f1cc89;--accent-soft:#3f4637;--hover:#24484a;--shadow:0 8px 35px #04181d22;--event1:#234e45;--event2:#57383d;--event3:#3e4655;--color1:#a8dfc1;--color2:#f4b6b8;--color3:#d2d9ef;color-scheme:dark}
:root[data-theme=christmas] .primary{background:#ad3b4c;color:#fff;border-color:#c55261;box-shadow:0 5px 20px #872d3b25}:root[data-theme=christmas] .primary:hover{background:#c04959}:root[data-theme=christmas] .calendar{border-top:2px solid #e5c68c}:root[data-theme=christmas] .decor-control{display:block;width:100%;margin-top:8px;font-size:11px}:root[data-theme=christmas] .season{display:inline;color:var(--accent);margin-left:auto;font-size:0}:root[data-theme=christmas] .season:after{content:'✦ La saison des moments partagés';font-size:11px}
.christmas-scene{display:none;position:relative;isolation:isolate;height:250px;overflow:hidden;border:1px solid #48615b;border-radius:18px;margin:20px 0 24px;background:#0a2532}:root[data-theme=christmas] .christmas-scene{display:block}.christmas-landscape{position:absolute;inset:0;height:100%;width:100%}.christmas-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0a2532 0%,#0a2532ed 24%,#0a253250 45%,transparent 60%)}.christmas-caption{position:relative;z-index:2;padding:35px;max-width:48%;color:#f4f3e9;pointer-events:none}.christmas-caption>span{color:#edcc96;letter-spacing:2px;font-size:9px}.christmas-caption h2{font-size:25px;font-weight:550;line-height:1.4;letter-spacing:-.6px;margin:13px 0 8px}.christmas-caption p{font-size:11px;color:#bad4d0}.xmas-snowfall{animation:xmas-snow 10s linear infinite}.xmas-twinkle{animation:xmas-twinkle 5s ease-in-out infinite alternate}.xmas-bulbs,.xmas-window{animation:xmas-glow 6s ease-in-out infinite alternate}.xmas-sleigh{animation:xmas-flight 13s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.decor-paused .christmas-scene *{animation-play-state:paused!important}
@keyframes xmas-snow{from{translate:0 -40px;opacity:0}15%{opacity:.7}85%{opacity:.7}to{translate:-25px 85px;opacity:0}}@keyframes xmas-twinkle{from{opacity:.55}to{opacity:1}}@keyframes xmas-glow{from{opacity:.7}to{opacity:1}}@keyframes xmas-flight{from{translate:-25px 0;rotate:-3deg}to{translate:25px -12px;rotate:3deg}}
@media(max-width:1100px){.christmas-scene{height:230px}.christmas-caption{padding:25px;max-width:45%}.christmas-caption h2{font-size:21px}.christmas-landscape{width:120%;max-width:none;left:-10%}}
@media(max-width:700px){.christmas-scene{height:240px;margin-top:16px}.christmas-landscape{width:200%;left:-90%;top:20px}.christmas-caption{padding:15px 18px;max-width:100%}.christmas-caption>span{font-size:8px}.christmas-caption h2{font-size:16px;margin:7px 0}.christmas-caption h2 br{display:none}.christmas-caption p{display:none}.christmas-vignette{background:linear-gradient(180deg,#0a2532f0 0%,#0a253270 30%,transparent 55%)}:root[data-theme=christmas] .appearance .decor-control{display:inline-block;width:auto}:root[data-theme=christmas] .season{width:100%;margin-left:0}}
@media(prefers-reduced-motion:reduce){.christmas-scene *{animation:none!important}}

.auth-panel{position:fixed;inset:0;z-index:100;background:var(--bg);overflow:auto;display:grid;place-items:center;padding:25px}.auth-card{width:min(480px,100%);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow)}.auth-card>img{background:white;border-radius:13px;margin-bottom:18px}.auth-card h1{font-size:27px;line-height:1.3}.auth-card>p{color:var(--muted);line-height:1.6;font-size:13px}.auth-card small{line-height:1.6}.auth-card #auth-switch{margin-top:12px;width:100%;font-size:12px}.auth-card .primary{width:100%}#auth-error{color:#d85d6e;font-size:13px}.auth-locked>main,.auth-locked>aside{visibility:hidden;pointer-events:none}.family-actions{display:grid;gap:8px;margin:18px 0 0}.family-actions button{font-size:12px;text-align:left}.family-actions #requests-count{float:right;background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:1px 7px}.profile button{font-size:10px;margin-left:8px;padding:6px 9px}.sharing-help{font-size:11px;line-height:1.6;color:var(--muted)}.request-card{border:1px solid var(--line);border-radius:10px;padding:15px;margin:12px 0}.request-card h3{font-size:15px;margin:0 0 10px}.request-card p{font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.request-card strong{display:block;color:var(--accent);font-size:12px;margin:10px 0}.request-card button{font-size:12px;margin:4px}#shared-owner,#shared-details{font-size:13px;line-height:1.7;white-space:pre-wrap}#proposal-state,#requests-state{font-size:12px;line-height:1.6}#invitation-code{font-size:12px;width:100%}.p4,.p5,.p6{background:var(--color1)}#calendar-filters{display:contents}@media(max-width:700px){.family-actions{display:flex;width:100%;order:6;margin-top:4px}.family-actions button{flex:1;font-size:11px}.profile{flex-wrap:wrap;justify-content:flex-end}.profile button{font-size:9px;padding:5px}.auth-card{padding:22px}.auth-card h1{font-size:24px}.auth-panel{padding:15px}.family-actions button span{margin-left:5px}}

.access-row{padding:10px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.access-row>label{flex:1;margin:0;font-size:12px}.access-row select{font-size:12px}.access-row .create-access{display:flex;gap:8px;align-items:center;font-size:11px;line-height:1.5}.access-row input[type=checkbox]{width:16px;min-width:16px;accent-color:var(--accent);margin:0}.calendar-choice-row{display:flex;gap:12px;align-items:center}.calendar-choice-row label{flex:1}.calendar-name-color{display:grid;grid-template-columns:1fr 80px;gap:14px}.calendar-name-color input[type=color]{height:44px;cursor:pointer;padding:5px}.profile-link-area{border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.profile-link-area:has(#link-profile[hidden]){display:none}#calendar-state{font-size:12px;color:var(--accent)}#event-recipients-panel{border:1px solid var(--line);border-radius:10px;padding:12px}#event-recipients-panel h3{font-size:13px;margin:0 0 10px}#sharing-summary{font-size:11px;color:var(--muted);line-height:1.6}.family-actions{grid-template-columns:1fr}.person{overflow-wrap:anywhere}.person i{flex-shrink:0}@media(max-width:700px){.access-row{flex-direction:column;align-items:stretch;gap:8px}.access-row .create-access{margin:0 0 8px}.family-actions{display:grid;grid-template-columns:1fr 1fr}.calendar-choice-row{align-items:center}#calendars-dialog h2{font-size:20px}.calendar-name-color{grid-template-columns:1fr 70px}}

.calendar-choice-row select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-alt);color:var(--text)}
#demo-banner{padding:12px 18px;border:1px solid var(--accent,#4778bf);border-radius:12px;background:var(--panel,#eef4ff);color:var(--text,#152d48);font-size:13px}#enter-demo{display:block;width:100%;margin:16px 0;padding:12px;border-radius:12px;font-weight:700}.connection-card{border:1px solid #8898aa66;padding:16px;border-radius:14px;margin:16px 0}.connection-card button{margin:6px 8px 6px 0}#connections-dialog{max-width:640px;width:calc(100% - 32px);max-height:85vh;overflow:auto}

#demo-banner{background:var(--surface);color:var(--text);line-height:1.5}


.calendar-category{font-size:12px;color:var(--muted);margin:22px 0 8px;text-transform:uppercase;letter-spacing:1px}#install-dialog{max-width:650px;width:calc(100% - 32px);max-height:85vh;overflow:auto}#install-dialog p,#install-dialog li{line-height:1.6}.install-state{padding:12px;background:var(--surface-alt);border-radius:10px}#installation-state{white-space:pre-line}

.auth-card .password-visibility{display:block;width:auto;max-width:100%;margin:8px 0 12px;padding:7px 10px;font-size:13px;background:transparent;border:1px solid var(--line);color:var(--accent);text-align:left}.auth-card .password-visibility:hover{background:var(--hover)}

.auth-card .password-field{position:relative;margin-top:6px}.auth-card .password-field input{width:100%;padding-right:52px;margin:0;min-height:46px}.auth-card .password-field .password-visibility{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:42px;min-height:42px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted)}.auth-card .password-field .password-visibility:hover{background:var(--hover);color:var(--accent)}.password-visibility .eye-slash{display:none}.password-visibility[aria-pressed="true"] .eye-slash{display:block}

.external-event-dialog{width:calc(100% - 32px);max-width:600px;max-height:90vh;overflow:auto}.external-event-dialog label{display:block;margin:12px 0}.external-event-dialog input,.external-event-dialog textarea{width:100%}#apple-connect-state{white-space:pre-line;line-height:1.5;padding:10px 0}


.password-field{position:relative;margin-top:6px}.password-field>input{width:100%;padding-right:52px;min-height:46px;margin:0}.password-field>.password-visibility{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:42px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--muted)}.password-field>.password-visibility:hover{background:var(--hover);color:var(--accent)}#apple-password-help{line-height:1.6}#apple-password-help a{color:var(--accent)}

/* Multi-day events: one continuous segment per calendar week. */
.month-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:relative;isolation:isolate}.month-week>.day{min-height:0;min-width:0;z-index:0;padding:3px 6px}.month-week>.day-events{z-index:1;min-width:0;padding:3px 4px 8px;align-self:start}.month-week>.day-events:empty{pointer-events:none}.month-week .day-events .event{max-width:100%;box-sizing:border-box}.calendar-banner.event{z-index:2;min-width:0;max-width:none;width:auto;box-sizing:border-box;align-self:center;height:23px;min-height:23px;margin:0 3px;padding:3px 7px;border:0;border-left:3px solid;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;font-size:11px;line-height:17px;font-weight:600;cursor:pointer}.calendar-banner.continues-before{border-left-width:0;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.calendar-banner.continues-after{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.banner-scroll{overflow-x:auto;border-top:1px solid var(--line);background:var(--surface-alt)}.week-banner-grid{display:grid;grid-auto-flow:row;padding-bottom:5px}.week-banner-grid.week{min-width:1050px}.banner-date{font-size:11px;padding:6px;color:var(--muted);border-right:1px solid var(--line);text-align:center}.week-banner-grid .calendar-banner{font-size:12px}@media(max-width:700px){.month-week>.day{padding:3px 2px}.calendar-banner.event{font-size:10px;margin-left:1px;margin-right:1px;padding-left:4px;padding-right:4px}.month-week>.day-events{padding:3px 1px 6px}}

.calendar-tree-tools{display:flex;gap:5px;margin:0 0 10px;width:100%;flex-wrap:wrap}.calendar-tree-tools button{font-size:10px;padding:6px 7px;flex:1;white-space:nowrap}.calendar-tree-tools button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}#calendar-filters .calendar-owner{width:100%;margin:5px 0 12px}.calendar-owner-row{display:flex;align-items:center;gap:5px;min-width:0}.calendar-owner-row>input{accent-color:var(--accent);width:14px;height:14px;flex-shrink:0}.calendar-owner-toggle{border:0;background:transparent;text-align:left;font-weight:650;font-size:13px;padding:7px 2px;min-width:0;overflow-wrap:anywhere;flex:1}.calendar-owner-children{margin:3px 0 0 9px;padding-left:15px;border-left:1px solid var(--line)}.calendar-owner-children[hidden]{display:none}.calendar-owner-children .person{font-size:12px;margin:9px 0;align-items:center;gap:6px;overflow-wrap:anywhere}.calendar-owner-children .person i{flex-shrink:0}.calendar-owner-children .calendar-category{font-size:10px;margin:14px 0 5px}.calendar-retirement button{font-size:12px;margin:8px 5px 4px 0}@media(max-width:700px){.calendar-tree-tools{order:3}#calendar-filters .calendar-owner{order:3;margin:0 0 5px}.calendar-owner-children .person{display:flex}.calendar-owner-children{padding-left:16px}}

.holiday-toggle{display:flex;gap:7px;align-items:center;font-size:11px;margin:10px 0 16px;color:var(--muted)}.holiday-event{border-color:#b88732!important}#google-setup{padding:12px 0;line-height:1.6}#google-setup code{overflow-wrap:anywhere;font-size:11px}#google-setup a{color:var(--accent)}@media(max-width:700px){.holiday-toggle{width:100%;order:3;margin:3px 0 8px}}

.common-filter-label{font-size:11px;display:flex;gap:6px;align-items:center}.common-filter-label select{max-width:180px;padding:8px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px}.event-invite-form{margin:18px 0;padding-top:15px;border-top:1px solid var(--line)}.event-invite-form label{display:block;margin:8px 0}.event-invite-form input,.event-invite-form select{width:100%}

.calendar-color-choice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 16px 20px}.calendar-color-choice label{display:flex;align-items:center;gap:10px;font-size:11px}.calendar-color-choice input[type=color]{width:36px;height:28px;padding:2px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.calendar-color-choice button{font-size:10px;padding:5px 8px}.calendar-color-choice [role=status]{font-size:11px;color:var(--muted)}

.google-event-editor>label{display:block;margin:14px 0}.google-event-editor>label select{display:block;width:100%;padding:10px;margin-top:6px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px}.google-event-editor .form-help{max-width:100%;line-height:1.6}.google-event-editor .actions{flex-wrap:wrap;gap:10px}

.imported-alerts{padding:14px;margin:18px 0;border:1px solid var(--line);border-radius:10px;background:var(--surface-alt)}.imported-alerts h3{font-size:14px}.imported-alerts li,.upcoming-reminders li{font-size:13px;margin-bottom:10px}.upcoming-reminders{max-width:650px}.upcoming-reminders ul{padding-left:20px}#show-upcoming-reminders{margin-bottom:8px}

.event-participants{margin:18px 0;padding:15px;border:1px solid var(--line);border-radius:10px}.participant-response{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.participant-response>span{overflow-wrap:anywhere;min-width:0}.participant-response strong{padding:4px 8px;border-radius:20px;white-space:nowrap;font-size:11px;background:var(--surface-alt)}.response-accepted{color:#26764c}.response-declined{color:#c04a45}.response-needsAction,.response-tentative{color:#a56a17}.event-participants .form-help{margin-top:12px}

.push-dialog{max-width:650px}.push-dialog>label{display:block;margin:16px 0}.push-dialog>label>input:not([type=checkbox]){display:block;width:100%;padding:10px;margin-top:7px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px}.push-dialog .push-details{font-size:13px}.push-dialog .push-details input{accent-color:var(--accent)}.push-device{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.push-device span{overflow-wrap:anywhere;min-width:0}.push-dialog .actions{display:flex;gap:8px;flex-wrap:wrap}.push-dialog .actions button{font-size:12px}#open-push{margin-bottom:8px}

.invitation-reply-dialog{max-width:620px}.invitation-reply-dialog .actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.invitation-reply-dialog>button{margin:8px 8px 0 0}
