*{box-sizing:border-box}body{margin:0;color:#20283d;background:#fff;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;background:white;border:1px solid #e2e6ee;border-radius:8px;padding:8px 14px}button:hover{background:#f0f3fc}button:focus-visible,a:focus-visible{outline:3px solid #9bb5ff;outline-offset:2px}.primary{background:#3158db;color:white;border:0;font-weight:600;padding:13px 18px}.primary:hover{background:#2346bf}aside{position:fixed;inset:0 auto 0 0;width:246px;background:#f8f9fc;border-right:1px solid #e9ecf2;padding:33px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;color:#20283d;text-decoration:none;font-size:32px;font-weight:750;letter-spacing:-1.3px;margin:0 0 39px}.logo{background:#3158db;color:white;border-radius:11px;width:38px;height:38px;text-align:center;line-height:35px;font-size:30px;margin-right:10px}.brand-dot{color:#3158db}.new-event{width:100%}.mini-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin:30px 0 15px}.mini-head button{border:0;background:transparent;padding:2px 7px;font-size:22px}.mini{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.mini button,.mini span{padding:3px 0;font-size:12px;border:0;background:transparent;min-width:0}.mini span{color:#8d94a5}.mini .chosen{background:#3158db;color:white;border-radius:50%}.aside-label{font-size:12px;letter-spacing:1.5px;color:#8b93a6;font-weight:600;margin:35px 0 15px}.category{display:flex;align-items:center;gap:10px;font-size:14px;margin-bottom:16px}.category input{accent-color:#3158db;width:16px;height:16px}.dot{width:8px;height:8px;border-radius:50%;margin-left:auto}.personal{background:#4c70e7}.work{background:#bc76db}.other{background:#26a18c}.sidebar-bottom{margin-top:auto;display:flex;gap:11px;align-items:center;font-size:14px;padding-top:30px}.avatar{border:1px solid #dae0f0;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;background:#eaf0ff;color:#3158db}.sidebar-bottom small{display:block;font-size:12px;color:#8a92a3}main{margin-left:246px;padding:40px 40px 26px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:39px}.eyebrow{font-size:11px;letter-spacing:1.8px;color:#8490a5;font-weight:600}h1{font-size:30px;letter-spacing:-1px;line-height:1.3;margin:8px 0 0;font-weight:650}.today-badge{display:flex;align-items:center;gap:10px;color:#7f899d;font-size:12px}.today-badge>span{font-size:27px;line-height:1;border-right:1px solid #e0e5ef;padding-right:12px;color:#3158db}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.navigation{display:flex;align-items:center;gap:7px}.navigation h2{font-size:22px;letter-spacing:-.5px;font-weight:600;margin:0 18px 0 0;min-width:190px}.navigation>button{font-size:20px;line-height:1;padding:7px 12px}.navigation #today{font-size:14px;padding:10px 14px;margin-left:8px}.views{display:flex;background:#f3f5f9;padding:4px;border-radius:9px}.views button{border:0;background:transparent;font-size:14px;padding:7px 17px;color:#7c879b}.views .active{background:white;color:#3158db;box-shadow:0 1px 5px #19275512}.calendar-wrap{border:1px solid #e3e7ef;border-radius:12px;overflow:hidden}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfe;border-bottom:1px solid #e3e7ef}.weekdays span{font-size:11px;letter-spacing:1px;color:#8b95a8;text-align:center;padding:14px 0;font-weight:600}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cell{min-height:118px;border-right:1px solid #e9ecf2;border-bottom:1px solid #e9ecf2;padding:8px;cursor:pointer;overflow:hidden}.cell:nth-child(7n){border-right:0;background:#fcfcfe}.cell:nth-child(7n - 1){background:#fcfcfe}.cell:hover{background:#f7f9ff}.cell.muted .date-number{color:#bdc4d1}.date-number{border:0;background:transparent;font-size:14px;width:29px;height:29px;border-radius:50%;padding:0;display:grid;place-items:center;margin-bottom:7px}.cell.is-today .date-number{background:#3158db;color:#fff}.cell.selected{box-shadow:inset 0 0 0 2px #b3c4ff}.event{display:block;text-align:left;width:100%;border:0;border-left:3px solid #4c70e7;border-radius:4px;background:#edf2ff;color:#3658b5;font-size:12px;padding:5px 6px;margin-bottom:5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.event.work{background:#f5eefa;color:#9355b1;border-color:#bc76db}.event.other{background:#eaf6f2;color:#258674;border-color:#26a18c}.event time{opacity:.8;margin-right:5px}.week-mode .cell{min-height:380px}.week-mode .event{white-space:normal;margin-top:12px;padding:12px 7px}.week-mode .event time{display:block}footer{display:flex;justify-content:space-between;gap:20px;margin-top:15px;color:#939bab;font-size:12px}.tiny-square{display:inline-block;width:7px;height:7px;border:1px solid #939bab;margin-right:5px}.day-section{display:grid;grid-template-columns:220px 1fr;gap:30px;padding-top:28px;margin-top:20px;border-top:1px solid #eef0f5}h3{font-size:18px;font-weight:600;margin:5px 0}.empty{color:#919bad;font-size:14px;padding:7px 0}.day-item{display:flex;align-items:center;gap:16px;border:0;border-bottom:1px solid #edf0f5;border-radius:0;width:100%;text-align:left;padding:10px 0}.day-item time{color:#7e899e;font-size:14px}.day-item .dot{margin:0;flex-shrink:0}.day-item small{color:#8992a5;display:block}dialog{border:0;border-radius:16px;box-shadow:0 20px 80px #10244630;width:min(460px,calc(100% - 32px));padding:27px;color:#20283d}dialog::backdrop{background:#15264d55;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-head h2{font-size:22px;margin:0}.dialog-head button{border:0;font-size:25px;padding:0 8px}form label{display:block;font-size:14px;font-weight:500;margin-bottom:16px}form input,form select,form textarea{display:block;width:100%;border:1px solid #dce2ed;border-radius:7px;padding:10px;margin-top:6px;background:white;color:#20283d}form textarea{resize:vertical}.form-row{display:flex;gap:16px}.form-row label{flex:1}.dialog-actions{display:flex;justify-content:space-between;gap:15px}.dialog-actions .primary{margin-left:auto}#delete{color:#b74354;border:0}#form-error{color:#b74354;font-size:14px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#243353;color:white;border-radius:10px;padding:12px 22px;display:none;z-index:5}body:has(dialog[open]){overflow:hidden}@media(min-width:1450px){.cell{min-height:145px}}@media(max-width:1100px){aside{width:205px;padding:28px 18px}main{margin-left:205px;padding:30px 22px}.navigation h2{min-width:0;font-size:20px;margin-right:5px}.toolbar{flex-wrap:wrap}.cell{min-height:100px;padding:5px}.event{font-size:12px}.today-badge{display:none}}@media(max-width:700px){aside{position:static;width:auto;border:0;padding:18px 20px;flex-direction:row;align-items:center;justify-content:space-between}.brand{margin:0;font-size:27px}.logo{width:32px;height:32px;font-size:25px;line-height:30px}.new-event{width:auto;font-size:14px;padding:10px}.mini,.mini-head,.aside-label,.category,.sidebar-bottom{display:none!important}main{margin:0;padding:20px 14px}header{margin-bottom:25px}h1{font-size:27px}.eyebrow{font-size:10px}.toolbar{gap:14px}.navigation{flex-wrap:wrap}.navigation h2{font-size:21px;margin-right:6px}.navigation #today{margin-left:0;font-size:12px;padding:9px}.views button{padding:5px 17px}.weekdays span{font-size:9px;letter-spacing:0}.cell{min-height:87px;padding:3px}.date-number{font-size:12px;width:24px;height:24px}.event{font-size:11px;padding:3px 2px;border-left-width:2px}.event time{display:none}.day-section{grid-template-columns:1fr;gap:10px}footer{font-size:11px}footer span:first-child{display:none}.week-mode .cell{min-height:250px}.week-mode .event{padding:7px 2px}.week-mode .event time{display:block}.calendar-wrap{border-radius:7px}}
.aside-label{display:flex;align-items:center;justify-content:space-between}#manage{border:0;background:transparent;font-size:20px;padding:0 5px}.category span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category .dot{flex-shrink:0}#add-calendar{font-size:12px;background:transparent;border:1px dashed #cfd7e7;color:#66758c}button:disabled{opacity:.45;cursor:not-allowed}.toolbar{flex-wrap:wrap}.views button{padding:7px 12px}#print{font-size:14px}.event{color:var(--event-color);border-color:var(--event-color);background:color-mix(in srgb,var(--event-color) 12%,white)}.day-mode{grid-template-columns:1fr}.day-mode .cell{min-height:340px;padding:20px}.day-mode .event{font-size:16px;padding:14px;margin-bottom:12px}.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:24px}.year-month h3{font-size:16px;margin:0 0 12px}.year-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.year-days span{font-size:12px;color:#8a95a8}.year-days button{position:relative;font-size:12px;border:0;padding:5px 0}.year-days .year-today{background:#3158db;color:white;border-radius:50%}.has-events:after{content:'';position:absolute;bottom:1px;left:calc(50% - 2px);width:4px;height:4px;background:#3158db;border-radius:50%}.calendar-help{font-size:14px;color:#8590a4}.calendar-edit-row{display:flex;gap:10px;margin:12px 0}.calendar-edit-row input:not([type=color]){width:100%;min-width:0;border:1px solid #dce2ed;padding:9px;border-radius:6px}.calendar-edit-row input[type=color]{width:40px;height:40px;padding:3px;border:1px solid #dce2ed;border-radius:6px;background:white}.calendar-edit-row button{padding:5px 10px}#calendar-error{font-size:14px;color:#b74354}#print-area{display:none}@media(max-width:1000px){.year-grid{grid-template-columns:repeat(3,1fr);gap:18px}.navigation h2{font-size:18px}}@media(max-width:700px){aside{flex-wrap:wrap;gap:15px}#categories{display:flex;gap:14px;overflow:auto;width:100%;order:4}#categories .category{display:flex!important;margin:0;flex-shrink:0}.aside-label{display:flex!important;margin:0;font-size:11px}#add-calendar{display:block;font-size:12px}.year-grid{grid-template-columns:repeat(2,1fr);gap:18px;padding:15px}.views{order:3}.toolbar #print{font-size:12px}.navigation{width:100%}.week-mode .event time{font-size:10px}.day-mode .event time{display:inline}.day-mode .event{white-space:normal}.year-days button{font-size:12px}}
@media print{@page{size:A4 portrait;margin:12mm}body{background:white;font-family:Arial,sans-serif}body>aside,body>main,body>dialog,#toast{display:none!important}#print-area{display:block}.print-page{break-after:page;page-break-after:always;height:270mm;overflow:hidden;display:flex;flex-direction:column}.print-page:last-child{break-after:auto;page-break-after:auto}.print-heading{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid #222;padding-bottom:8mm}.print-heading h1{font-size:23pt;margin:0;overflow-wrap:anywhere}.print-heading span{font-weight:bold;font-size:18pt}.print-page>p{font-size:11pt;margin:5mm 0}.print-days{display:grid;grid-template-rows:repeat(7,minmax(0,1fr));flex:1;min-height:0}.print-days>section{display:grid;grid-template-columns:34mm 1fr;gap:4mm;border-top:1px solid #aab0bc;padding:3mm 0;min-height:0}.print-days h2{font-size:10pt;margin:0}.print-event{font-size:10pt;margin-bottom:2mm;overflow-wrap:anywhere;line-height:1.25}.print-event b{font-size:9pt;margin-right:2mm}.print-event small{display:block;font-size:8pt;color:#555}.print-empty{color:#aaa}.dense .print-event{font-size:8pt;margin-bottom:1mm}.dense .print-event small{display:none}}
#print-mode{width:100%;padding:12px 8px;border:1px solid #dce2ed;border-radius:7px;margin-top:10px;font-size:14px}@media print{.print-combined-page{height:268mm;display:flex;flex-direction:column;break-inside:avoid}.print-combined-page h1{font-size:18pt}.print-legend{display:flex;flex-wrap:wrap;gap:2mm 4mm;font-size:9pt;margin:4mm 0}.print-legend span{border-left:3px solid;padding-left:2mm}.combined-days{display:grid;grid-template-rows:repeat(7,minmax(0,1fr));flex:1;min-height:0}.combined-days section{display:grid;grid-template-columns:26mm 1fr;border-top:1px solid #bbb;padding:2mm 0;gap:3mm;min-height:0}.combined-days h2{font-size:10pt;margin:0}.combined-days p{font-size:9pt;line-height:1.15;margin:0 0 1mm;overflow-wrap:anywhere}.calendar-tag{font-size:8pt;color:#555;margin:0 2mm}.print-month .combined-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(16,minmax(0,1fr));column-gap:5mm}.print-month .combined-days section{display:block;padding:1mm 0}.print-month .combined-days h2{font-size:8pt;margin-bottom:1mm}.print-month .combined-days p,.print-month .calendar-tag{font-size:7pt}.print-month .print-heading{padding-bottom:3mm}}
#month-tabs{display:flex;gap:2px;overflow-x:auto;margin:0 0 20px;border-bottom:1px solid #e5e9f1;scrollbar-width:thin}#month-tabs button{flex:1;border:0;border-radius:0;padding:11px 10px;font-size:14px;background:white;color:#8a93a5;white-space:nowrap;border-bottom:2px solid transparent}#month-tabs button.active{color:#3158db;border-bottom-color:#3158db;font-weight:600}#connection-banner{position:sticky;top:0;z-index:5;background:#edf2ff;color:#3158db;text-align:center;padding:9px;font-size:14px}#connection-banner[hidden]{display:none}.unavailable main,.unavailable aside{pointer-events:none;opacity:.55}@media print{#connection-banner{display:none!important}}
#calendar-tabs{display:flex;gap:9px;overflow:auto;margin-bottom:24px;padding-bottom:5px}#calendar-tabs button{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:14px;padding:9px 15px;background:#fafbfe;border-color:#e7ebf3}#calendar-tabs button.active{background:color-mix(in srgb,var(--tab-color) 10%,white);border-color:var(--tab-color);color:var(--tab-color);font-weight:600}#calendar-tabs i{width:8px;height:8px;border-radius:50%;flex-shrink:0}#print-calendars{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;font-size:14px}#print-calendars input{accent-color:#3158db}
#repeat-options[hidden],#series-notice[hidden]{display:none}#repeat-unit{display:block;color:#8490a5;font-size:13px;margin-top:4px}.form-row label{min-width:0}dialog{max-height:90dvh;overflow-y:auto}
.week-matrix{width:100%;border-collapse:collapse;table-layout:fixed}.week-matrix th,.week-matrix td{border:1px solid #b7c0d0;text-align:left;vertical-align:top;padding:6px;font-size:10pt;overflow-wrap:anywhere}.week-matrix thead th{background:#edf1f9;text-transform:capitalize;height:13mm}.week-matrix thead small{display:block;font-size:9pt;color:#59657a}.week-matrix .calendar-column{width:13%}.matrix-calendar{display:block;border-left:3px solid;padding-left:6px}.matrix-event{margin-bottom:7px;line-height:1.2}.matrix-event b,.matrix-event span{display:block}.matrix-event b{font-size:.85em;margin-bottom:2px}.matrix-empty{color:#aaa}
@media print{@page tempo-week{size:A4 landscape;margin:10mm}.print-week-matrix{page:tempo-week;width:270mm;height:184mm;break-after:page;page-break-after:always;box-sizing:border-box;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-week-matrix:last-child{break-after:auto;page-break-after:auto}.print-week-matrix .print-heading{height:15mm;padding:0 0 3mm;margin-bottom:3mm;align-items:center}.print-week-matrix .print-heading h1{font-size:15pt;letter-spacing:normal}.print-week-matrix .print-heading span{font-size:16pt}.week-matrix tbody tr{height:var(--row-height)}.week-matrix td,.week-matrix tbody th{position:relative;padding:0}.matrix-content{position:absolute;top:5px;left:5px;right:5px;font-size:9pt}.week-matrix tbody th .matrix-content{font-size:10pt}.week-matrix{height:168mm}}
.brand{font-size:20px;letter-spacing:-.6px;line-height:1.15;gap:9px}.brand .logo{margin-right:0;flex-shrink:0}.brand-name strong{display:block;color:#3158db;font-weight:650}@media(max-width:700px){.brand{font-size:19px}.brand-name strong{display:inline}}

[hidden]{display:none!important}#welcome{max-width:560px;margin:6vh auto;padding:28px}#welcome .brand{margin-bottom:26px}#welcome form{padding:22px 0;border-top:1px solid #e2e6ee}#welcome h2{font-size:21px}#welcome .sign-out{display:inline-block;margin-top:24px}#welcome-error,#family-error{color:#ad3049}.needs-family>main,.needs-family>aside{display:none}.needs-family #connection-banner{display:none}#sign-in{display:inline-block;text-decoration:none;margin:20px 0}#family-dialog p{font-size:14px}#family-dialog h3{margin-top:22px}.member-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #e2e6ee;overflow-wrap:anywhere}.member-row small{display:block;color:#65728b}.member-row button{align-self:center}.danger{color:#ad3049}#created-code{width:100%;font:14px monospace;padding:10px;border:1px solid #dce2ed;border-radius:7px;margin:8px 0}#family-owner button{margin:5px 0}#family-account{overflow-wrap:anywhere}#family-dialog hr{border:0;border-top:1px solid #e2e6ee;margin-top:25px}@media print{#welcome,#family-settings{display:none!important}}

.header-actions{display:flex;gap:12px;align-items:center}.theme-control{display:flex;gap:8px;align-items:center;font-size:14px}.theme-select{border:1px solid #dce2ed;border-radius:8px;padding:8px;background:#fff;color:#20283d}
@media screen{html[data-theme=dark]{--night:#111827;--panel:#182235;--line:#364258;--ink:#ecf1fa;--quiet:#b3bfd4}html[data-theme=dark] body{background:var(--night);color:var(--ink)}html[data-theme=dark] aside,html[data-theme=dark] .weekdays,html[data-theme=dark] .views,html[data-theme=dark] .cell:nth-child(7n),html[data-theme=dark] .cell:nth-child(7n - 1){background:var(--panel)}html[data-theme=dark] button,html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] dialog,html[data-theme=dark] #month-tabs button,html[data-theme=dark] #calendar-tabs button,html[data-theme=dark] .views .active{background:var(--panel);color:var(--ink);border-color:var(--line)}html[data-theme=dark] .primary,html[data-theme=dark] .mini .chosen,html[data-theme=dark] .cell.is-today .date-number,html[data-theme=dark] .year-days .year-today{background:#4469ed;color:white}html[data-theme=dark] button:hover,html[data-theme=dark] .cell:hover{background:#26344e}html[data-theme=dark] .primary:hover{background:#3559df}html[data-theme=dark] .brand{color:var(--ink)}html[data-theme=dark] .brand-name strong,html[data-theme=dark] #month-tabs button.active{color:#a8bcff}html[data-theme=dark] .eyebrow,html[data-theme=dark] .aside-label,html[data-theme=dark] .calendar-help,html[data-theme=dark] footer,html[data-theme=dark] .empty,html[data-theme=dark] .weekdays span,html[data-theme=dark] .member-row small,html[data-theme=dark] .day-item time,html[data-theme=dark] .day-item small,html[data-theme=dark] .year-days span,html[data-theme=dark] .sidebar-bottom small,html[data-theme=dark] #repeat-unit{color:var(--quiet)}html[data-theme=dark] .calendar-wrap,html[data-theme=dark] .cell,html[data-theme=dark] aside,html[data-theme=dark] .weekdays,html[data-theme=dark] #month-tabs,html[data-theme=dark] .day-section,html[data-theme=dark] .day-item,html[data-theme=dark] .member-row,html[data-theme=dark] #welcome form{border-color:var(--line)}html[data-theme=dark] .event{color:color-mix(in srgb,var(--event-color) 48%,white);border-color:var(--event-color);background:color-mix(in srgb,var(--event-color) 20%,var(--night))}html[data-theme=dark] #calendar-tabs button.active{color:color-mix(in srgb,var(--tab-color) 48%,white);border-color:var(--tab-color);background:color-mix(in srgb,var(--tab-color) 18%,var(--night))}html[data-theme=dark] .cell.selected{box-shadow:inset 0 0 0 2px #879fee}html[data-theme=dark] .cell.muted .date-number{color:#8c9ab2}html[data-theme=dark] #connection-banner{background:#25375b;color:#d5e0ff}html[data-theme=dark] .danger,html[data-theme=dark] #form-error,html[data-theme=dark] #family-error,html[data-theme=dark] #welcome-error,html[data-theme=dark] #calendar-error,html[data-theme=dark] #delete{color:#ffabb7}html[data-theme=dark] a{color:#adbeff}html[data-theme=dark] dialog::backdrop{background:#0009}html[data-theme=dark] .avatar{background:#25375b;color:#d5e0ff;border-color:var(--line)}}
@media(max-width:700px){header{flex-wrap:wrap;gap:16px}.header-actions{width:100%;justify-content:space-between}.theme-control{flex-wrap:wrap}}@media print{html{color-scheme:light!important}.theme-control{display:none!important}body,#print-area{background:white!important;color:#20283d!important}}
.apple-sign-in{display:inline-flex!important;align-items:center;justify-content:center;background:#000;color:#fff!important;padding:12px 22px;border:1px solid #777;border-radius:8px;text-decoration:none;font-weight:600;min-height:48px}.apple-sign-in[hidden]{display:none!important}.apple-sign-in:hover{background:#252525}#delete-empty-account{display:block;margin-top:16px}.legal-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px;text-align:center;font-size:14px}.legal-links a{color:inherit}@media print{.legal-links{display:none!important}}
