.calendar-page { max-width:560px; margin:0 auto; padding:18px 16px 28px; color:var(--ink); }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px; }.calendar-toolbar h2 { margin:0; color:var(--brand); font-size:17px; font-weight:700; }.calendar-toolbar>div { display:flex; gap:6px; }
.calendar-page button { font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }.calendar-page button:disabled { opacity:.5; cursor:default; }
.calendar-page .calendar-icon-button { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border:1px solid rgba(90,23,24,.1); border-radius:14px; color:var(--brand); background:rgba(90,23,24,.055); font-size:24px; }
.calendar-page svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.calendar-page .calendar-primary { min-height:44px; border:0; border-radius:14px; background:var(--chrome-bg); color:#fff; padding:11px 16px; font-weight:650; }.calendar-page .calendar-icon-button.calendar-primary { padding:10px; }
.calendar-month { border:1px solid rgba(90,23,24,.13); border-radius:22px; padding:10px; background:linear-gradient(135deg,rgba(255,255,255,.62),rgba(250,241,244,.5)); box-shadow:0 4px 15px rgba(65,15,20,.025); }
.calendar-month-heading { display:flex; justify-content:space-between; align-items:center; color:var(--brand); margin-bottom:8px; }.calendar-month-heading button { width:44px; height:44px; background:transparent; color:var(--brand); border:0; border-radius:12px; font-size:26px; }.calendar-month-heading strong { font-size:15px; }
.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; }.calendar-weekdays { text-align:center; color:var(--muted); font-size:11px; font-weight:650; margin-bottom:6px; }.calendar-days>button { min-width:0; min-height:45px; display:grid; justify-items:center; align-content:center; gap:4px; border:1px solid transparent; border-radius:13px; color:var(--ink); background:transparent; font-size:14px; }.calendar-days .is-today { border-color:rgba(90,23,24,.2); color:var(--brand); font-weight:700; }.calendar-days .is-selected { color:white; background:var(--chrome-bg); }.calendar-days i { width:4px; height:4px; border-radius:50%; }.calendar-days .has-events { background:var(--brand); }.calendar-days .has-holidays { background:#ac969b; }.calendar-days .is-selected i.has-events,.calendar-days .is-selected i.has-holidays { background:white; }
.calendar-agenda { margin-top:22px; }.calendar-agenda h3 { margin:0 2px 14px; color:var(--brand); font-size:13px; font-weight:700; }.calendar-event { margin:12px 0; padding:14px 16px; border:1px solid rgba(90,23,24,.12); border-left:3px solid var(--brand-2); border-radius:16px; background:rgba(255,255,255,.45); }.calendar-event-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }.calendar-event-head>span:last-child { display:flex; }.calendar-event-head button { min-width:44px; min-height:44px; display:grid; place-items:center; padding:8px; border:0; border-radius:12px; background:transparent; color:var(--brand); font-size:12px; }.calendar-event-time { color:var(--brand); font-size:12px; font-weight:650; }.calendar-event h4 { margin:7px 0; font-size:16px; overflow-wrap:anywhere; }.calendar-note { color:var(--muted); font-size:12px; line-height:1.5; }.calendar-description { font-size:14px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.5; }.calendar-holidays { border-top:1px solid rgba(90,23,24,.12); margin-top:22px; padding-top:12px; }.calendar-holidays h4 { font-size:12px; color:var(--brand); }.calendar-holidays p { font-size:13px; }.calendar-holidays span { color:var(--muted); }
.calendar-form { display:grid; gap:12px; padding:16px; border:1px solid rgba(90,23,24,.12); border-radius:20px; background:rgba(255,255,255,.45); }.calendar-form label { display:grid; gap:7px; color:var(--brand); font-size:13px; font-weight:600; }.calendar-form input:not([type=checkbox]),.calendar-form textarea,.calendar-form select { width:100%; min-width:0; min-height:46px; padding:10px 12px; border:1px solid rgba(90,23,24,.18); border-radius:12px; color:var(--ink); background:rgba(255,255,255,.7); font:inherit; font-size:16px; }.calendar-form-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.calendar-form [hidden] { display:none; }.calendar-form .calendar-check { display:flex; align-items:center; min-height:44px; gap:10px; }.calendar-check input { width:20px; height:20px; accent-color:var(--brand); }.calendar-form small { color:var(--muted); font-size:12px; }.calendar-form textarea { resize:vertical; }
.calendar-feedback:empty { display:none; }.calendar-feedback { padding:10px 12px; border-radius:12px; background:rgba(90,23,24,.065); color:var(--brand); font-size:13px; line-height:1.5; }.calendar-permissions { border:1px solid rgba(90,23,24,.13); border-radius:20px; overflow:hidden; }.calendar-permissions button { width:100%; min-height:64px; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px; border:0; background:rgba(255,255,255,.45); text-align:left; }.calendar-permissions button+button { border-top:1px solid rgba(90,23,24,.1); }.calendar-permissions strong { display:block; color:var(--ink); font-size:14px; }.calendar-permissions small { display:block; color:var(--muted); font-size:12px; margin-top:4px; }.calendar-permissions .settings-toggle { display:block; flex:0 0 38px; }
.calendar-delete-confirm { border-top:1px solid rgba(90,23,24,.15); margin-top:12px; padding-top:8px; font-size:13px; }.calendar-delete-confirm button { min-height:44px; border:0; border-radius:12px; padding:10px 12px; color:var(--brand); background:transparent; }.calendar-delete-confirm .calendar-danger { background:var(--brand); color:white; }
.calendar-page :focus-visible { outline:2px solid var(--brand); outline-offset:2px; }@media(hover:hover) and (pointer:fine){.calendar-page button:not(:disabled):hover{filter:brightness(.96);}}@media(max-width:360px){.calendar-page{padding:14px 10px 24px;}.calendar-month{padding:8px 4px;}.calendar-form-pair{grid-template-columns:1fr;}.calendar-toolbar h2{font-size:15px;}.calendar-toolbar>div{gap:3px;}}
.calendar-page,.calendar-page * { box-sizing:border-box; }
.calendar-form,.calendar-form label,.calendar-form-pair,.calendar-form fieldset { min-width:0; max-width:100%; }
.calendar-form input:not([type=checkbox]),.calendar-form select,.calendar-form textarea { display:block; min-inline-size:0; max-inline-size:100%; margin:0; }
.calendar-form input[type=date],.calendar-form input[type=time] { -webkit-appearance:none; appearance:none; }
.calendar-form input::-webkit-date-and-time-value { min-width:0; text-align:left; }
.calendar-form select { text-overflow:ellipsis; }
.calendar-days { grid-auto-rows:49px; }.calendar-days>button { gap:1px; min-height:0; }.calendar-days small { font-size:9px; line-height:11px; color:var(--muted); }.calendar-days .is-selected small { color:#fff; }
.calendar-agenda { min-height:90px; }.calendar-closed-summary { margin:14px 0; padding:12px; background:rgba(90,23,24,.045); border-radius:14px; font-size:12px; }.calendar-closed-summary p { margin:4px 0; color:var(--brand); }
.calendar-secondary { min-height:44px; padding:10px 14px; border:1px solid rgba(90,23,24,.16); border-radius:12px; background:rgba(255,255,255,.4); color:var(--brand); }
.calendar-weekly { border:1px solid rgba(90,23,24,.12); border-radius:14px; padding:8px 12px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 8px; }.calendar-weekly legend,.calendar-settings-heading { font-size:13px; font-weight:650; color:var(--brand); }.calendar-weekly:disabled { opacity:.5; }.calendar-settings-heading { margin:4px 0 0; }.calendar-form>.calendar-note { margin:0; }
.calendar-exceptions>div { display:flex; justify-content:space-between; align-items:center; gap:8px; border-bottom:1px solid rgba(90,23,24,.1); font-size:13px; }.calendar-exceptions button { flex:0 0 44px; min-height:44px; border:0; background:transparent; color:var(--brand); font-size:20px; }.calendar-permission-link { width:100%; margin-top:14px; }
@media(max-width:480px){.calendar-form-pair{grid-template-columns:1fr;}.calendar-form input:not([type=checkbox]),.calendar-form select{height:48px;}.calendar-weekly{grid-template-columns:1fr;}}
