.view{display:none}.view.active-view{display:block}
body.calendar-editor-open{overflow:hidden}

#view-calendar{--calendar-blue:#567b9a;--calendar-rose:#b66c61;--calendar-gold:#a97835;--calendar-green:#4d8060;--calendar-lilac:#7b6e91;max-width:1180px;margin-inline:auto}
.calendar-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:40px 0 18px}
.calendar-page-head h1{margin:0;font-size:42px;line-height:1;letter-spacing:-2.4px}
.calendar-page-head p:not(.eyebrow){max-width:620px;margin:12px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.65}
.calendar-add-button{display:grid;grid-template-columns:26px auto;align-items:center;gap:8px;min-height:46px;padding:7px 16px 7px 8px;border-radius:999px;background:var(--forest);color:#fffefa;font-size:12px;font-weight:800;touch-action:manipulation}
.calendar-add-button span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.12);font-size:24px;font-weight:400;line-height:1}

.calendar-command{position:relative;z-index:2;margin-bottom:14px;padding:13px 16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,254,250,.94);box-shadow:0 8px 30px rgba(20,42,37,.05);backdrop-filter:blur(16px)}
.calendar-period-nav{display:grid;grid-template-columns:44px minmax(150px,1fr) 44px;align-items:center;max-width:390px;margin:0 auto 11px}
.calendar-period-nav button{min-height:44px;border-radius:11px;color:var(--forest-2);font-weight:800;touch-action:manipulation}
.calendar-period-nav button:first-child,.calendar-period-nav button:last-child{font-size:26px;font-weight:400}
.calendar-period-nav #calendar-month{color:var(--ink);font-size:17px;letter-spacing:-.35px}
.calendar-command-row{display:flex;align-items:center;justify-content:center;gap:10px}
.calendar-mode-switch{display:grid;grid-template-columns:1fr 1fr;min-width:220px;padding:3px;border-radius:10px;background:#ebece7}
.calendar-mode-switch button{min-height:36px;padding:7px 14px;border-radius:8px;color:var(--ink-soft);font-size:11px;font-weight:750;touch-action:manipulation}
.calendar-mode-switch button.is-active{background:var(--card);color:var(--forest);box-shadow:0 1px 5px rgba(20,42,37,.13)}
.calendar-filter-control{display:flex;align-items:center;gap:7px;min-height:42px;padding:0 5px 0 12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font:600 9px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em}
.calendar-filter-control select{min-height:34px;max-width:165px;border:0;background:transparent;color:var(--ink);font:700 11px Manrope,Arial,sans-serif}
.calendar-today-button{min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:10px;color:var(--forest-2);font-size:11px;font-weight:800}
#calendar-period{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

.calendar-content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:14px;align-items:start}
#view-calendar[data-calendar-mode="agenda"] .calendar-content{grid-template-columns:minmax(0,760px);justify-content:center}
#view-calendar[data-calendar-mode="agenda"] .calendar-month-panel{display:none}
.calendar-month-panel,.calendar-agenda-panel{padding:18px}
#view-calendar .calendar-week,#view-calendar .calendar-grid{min-width:0}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:8px;color:var(--muted);font:600 9px 'DM Mono',monospace;text-align:center}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
#view-calendar .calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;min-width:0;min-height:76px;padding:9px 4px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink-soft);font-size:12px;text-align:center;touch-action:manipulation}
#view-calendar button.calendar-day:hover{background:#f5f6f1}
#view-calendar button.calendar-day:focus-visible{outline:3px solid rgba(86,123,154,.28);outline-offset:1px}
#view-calendar .calendar-day.is-outside{opacity:.3;pointer-events:none}
#view-calendar .calendar-day.is-selected{border-color:#c7d8cc;background:#e9f1e9;color:var(--forest)}
#view-calendar .calendar-day.is-today .calendar-day-number{display:grid;place-items:center;width:27px;height:27px;margin:-4px 0;border-radius:50%;background:var(--forest);color:#fffefa}
.calendar-day-dots{display:flex;align-items:center;justify-content:center;gap:3px;min-height:6px}
.calendar-day-dots i{width:5px;height:5px;border-radius:50%;background:var(--calendar-lilac)}
.calendar-day-dots .is-birthday{background:var(--calendar-rose)}.calendar-day-dots .is-bill,.calendar-day-dots .is-attention{background:var(--calendar-gold)}.calendar-day-dots .is-bin{background:var(--calendar-green)}.calendar-day-dots .is-important{background:#b35043}

.calendar-agenda-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.calendar-agenda-head .eyebrow{margin-bottom:5px}.calendar-agenda-head h2{margin:0;font-size:18px;letter-spacing:-.55px}.calendar-agenda-head .data-pill{white-space:nowrap}
.calendar-agenda{display:grid}
.calendar-agenda-day{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.calendar-agenda-day:last-child{border-bottom:0}
.calendar-agenda-date{display:grid;align-content:start;justify-items:center;padding-top:5px;color:var(--muted);text-align:center}
.calendar-agenda-date strong,.calendar-agenda-date small{font:600 9px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.04em}.calendar-agenda-date span{margin:2px 0;color:var(--ink);font-size:23px;line-height:1}
.calendar-agenda-items{display:grid;gap:7px}
.calendar-agenda-item{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;min-height:58px;padding:8px 8px 8px 10px;border:1px solid #e8e8e2;border-radius:12px;background:#fbfbf7;text-align:left;touch-action:manipulation}
.calendar-agenda-item:hover{border-color:#cfded2;background:#f7faf5}.calendar-agenda-item:active{transform:scale(.99)}
.calendar-agenda-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eeeaf2;color:var(--calendar-lilac);font-weight:800}
.calendar-agenda-item.is-birthday .calendar-agenda-icon{background:#f6e5df;color:var(--calendar-rose)}.calendar-agenda-item.is-bill .calendar-agenda-icon,.calendar-agenda-item.is-attention .calendar-agenda-icon{background:#f6ecdc;color:var(--calendar-gold)}.calendar-agenda-item.is-bin .calendar-agenda-icon{background:#e5efe7;color:var(--calendar-green)}.calendar-agenda-item.is-important .calendar-agenda-icon{background:#f6e1dc;color:#a5483d}
.calendar-agenda-item strong,.calendar-agenda-item small{display:block}.calendar-agenda-item strong{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.calendar-agenda-item small{margin-top:4px;color:var(--muted);font:500 9px 'DM Mono',monospace;line-height:1.35}.calendar-agenda-chevron{color:#9ba89f;font-size:24px;font-weight:300}
.calendar-agenda-empty{display:grid;justify-items:center;padding:38px 18px;text-align:center}.calendar-agenda-empty>span{font-size:32px;color:#b8c2bb}.calendar-agenda-empty strong{margin-top:7px;font-size:14px}.calendar-agenda-empty p{max-width:390px;margin:7px 0 15px;color:var(--muted);font-size:11px;line-height:1.6}

.calendar-lower-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}
.calendar-connect-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;padding:22px;background:linear-gradient(145deg,#fffefa,#eef5ee)}
.calendar-connect-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:var(--forest);color:#fffefa;font-size:22px}.calendar-connect-copy h2,.calendar-connections-card h2{margin:0;font-size:18px;letter-spacing:-.5px}.calendar-connect-copy>p:not(.eyebrow),.calendar-connections-card>p{max-width:600px;margin:8px 0;color:var(--ink-soft);font-size:11px;line-height:1.65}
.calendar-connect-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.calendar-new-link{margin-top:13px;padding:12px;border:1px solid #d8e4d9;border-radius:11px;background:rgba(255,255,255,.66)}.calendar-new-link label{display:grid;gap:6px;color:var(--ink-soft);font-size:10px;font-weight:700}.calendar-new-link input{min-width:0;width:100%;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:500 10px 'DM Mono',monospace}.calendar-new-link small{display:block;margin-top:7px;color:var(--muted);font-size:9px;line-height:1.5}.calendar-copy-status{display:block;min-height:18px;margin-top:9px;color:var(--forest-2);font-size:10px;line-height:1.5}
.calendar-connections-card{padding:22px}.calendar-subscriptions{display:grid;margin-top:14px}.calendar-subscription-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.calendar-subscription-row:last-child{border-bottom:0}.calendar-subscription-device{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf0eb;color:var(--forest-2)}.calendar-subscription-row strong,.calendar-subscription-row small{display:block}.calendar-subscription-row strong{font-size:11px}.calendar-subscription-row small{margin-top:3px;color:var(--muted);font-size:9px}.calendar-revoke{min-height:38px;padding:6px 8px;border-radius:8px;color:#a04f43;font-size:10px;font-weight:750}.calendar-subscription-empty{padding:14px 0;color:var(--ink-soft)}.calendar-subscription-empty strong,.calendar-subscription-empty small{display:block}.calendar-subscription-empty strong{font-size:11px}.calendar-subscription-empty small{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.5}.calendar-advanced{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.calendar-advanced summary{min-height:40px;color:var(--forest-2);font-size:10px;font-weight:800;cursor:pointer}.calendar-advanced .text-btn{display:block;margin-top:6px}.calendar-advanced small{display:block;margin-top:4px;color:var(--muted);font-size:9px}

.field-optional{color:var(--muted);font-weight:500}.calendar-feed-privacy{padding:10px 12px;border-radius:9px;background:#eef5ee;color:var(--forest-2)}
.calendar-editor-overlay .calendar-delete-button{min-height:44px;margin-top:8px;color:#a04f43;font-weight:750}.calendar-editor-save,.calendar-editor-cancel{display:none}

@media(max-width:900px){.calendar-content,.calendar-lower-grid{grid-template-columns:1fr}.calendar-month-panel,.calendar-agenda-panel{padding:16px}}
@media(max-width:780px){
  #view-calendar{margin:0 -3px;padding-bottom:max(84px,env(safe-area-inset-bottom))}
  .calendar-page-head{align-items:center;margin:22px 0 14px}.calendar-page-head h1{font-size:34px}.calendar-page-head p:not(.eyebrow){margin-top:8px;font-size:11px}.calendar-page-head .eyebrow{margin-bottom:7px}.calendar-add-button{grid-template-columns:1fr;flex:0 0 48px;width:48px;height:48px;padding:5px;border-radius:50%}.calendar-add-button span:first-child{width:auto;height:auto;background:transparent;font-size:30px}.calendar-add-button span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .calendar-command{position:sticky;top:max(0px,env(safe-area-inset-top));margin:0 -3px 12px;padding:9px 8px;border-radius:14px}.calendar-period-nav{margin-bottom:7px}.calendar-period-nav #calendar-month{font-size:16px}.calendar-command-row{justify-content:space-between;gap:7px}.calendar-mode-switch{min-width:0;flex:1}.calendar-mode-switch button{min-height:44px;padding-inline:9px}.calendar-filter-control{width:44px;min-width:44px;min-height:44px;padding:0;border-radius:10px;overflow:hidden}.calendar-filter-control span{position:absolute;width:1px;height:1px;overflow:hidden}.calendar-filter-control::before{content:'≡';display:grid;place-items:center;width:42px;color:var(--forest-2);font-size:20px}.calendar-filter-control select{position:absolute;width:44px;height:44px;opacity:0}.calendar-today-button{min-height:44px;padding:0 10px}
  #view-calendar .calendar-week,#view-calendar .calendar-grid{min-width:0!important}.calendar-month-panel{padding:12px!important;overflow:visible!important}.calendar-grid{gap:1px}.calendar-week{margin-bottom:4px}.calendar-week span{padding:5px 0}
  #view-calendar .calendar-day{min-height:46px!important;padding:5px 1px!important;border-radius:9px!important;font-size:11px!important}.calendar-day-dots{gap:2px}.calendar-day-dots i{width:4px;height:4px}#view-calendar .calendar-day.is-today .calendar-day-number{width:25px;height:25px}
  .calendar-agenda-panel{padding:15px!important}.calendar-agenda-day{grid-template-columns:44px minmax(0,1fr);gap:8px;padding:12px 0}.calendar-agenda-date span{font-size:21px}.calendar-agenda-item{min-height:62px;padding:9px 7px}.calendar-agenda-item strong{font-size:12px}.calendar-agenda-item small{white-space:normal}.calendar-agenda-icon{width:36px;height:36px}
  .calendar-lower-grid{margin-top:12px}.calendar-connect-card{grid-template-columns:1fr;padding:18px}.calendar-connect-icon{width:42px;height:42px}.calendar-connect-actions{display:grid}.calendar-connect-actions .primary-btn,.calendar-connect-actions .small-action{width:100%}.calendar-connections-card{padding:18px}.calendar-subscription-row{grid-template-columns:34px minmax(0,1fr)}.calendar-subscription-row .calendar-revoke{grid-column:2;justify-self:start;padding-left:0}
  .calendar-editor-overlay{align-items:stretch!important;padding:0!important}.calendar-editor-overlay .foundation-modal{display:flex;flex-direction:column;width:100%;max-width:none;min-height:100dvh;max-height:100dvh!important;padding:max(12px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));border:0;border-radius:0!important}.calendar-editor-overlay .modal-head{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;top:calc(-1 * max(12px,env(safe-area-inset-top)))!important;margin:calc(-1 * max(12px,env(safe-area-inset-top))) -16px 10px;padding:max(12px,env(safe-area-inset-top)) 12px 11px!important;border-bottom:1px solid var(--line);text-align:center}.calendar-editor-overlay .modal-head>div{grid-column:2;grid-row:1}.calendar-editor-overlay .modal-head .eyebrow{display:none}.calendar-editor-overlay .modal-head h2{font-size:16px;letter-spacing:-.3px}.calendar-editor-cancel,.calendar-editor-save{display:block;min-height:44px;padding:0 4px;color:var(--forest-2);font-size:13px;font-weight:700}.calendar-editor-cancel{grid-column:1;grid-row:1;text-align:left}.calendar-editor-save{grid-column:3;grid-row:1;text-align:right}.calendar-editor-overlay .foundation-edit-form{display:flex;flex:1;flex-direction:column;overflow-y:auto}.calendar-editor-overlay .form-grid{grid-template-columns:1fr}.calendar-editor-overlay .span-2{grid-column:1}.calendar-editor-overlay .foundation-edit-form>.primary-btn{width:100%;margin-top:16px}.calendar-editor-overlay .modal-hint{padding-bottom:env(safe-area-inset-bottom)}
}
@media(prefers-reduced-motion:reduce){.calendar-agenda-item:active{transform:none}.calendar-command{backdrop-filter:none}}
