/* Apple-style grouping and touch sizing, using Lenzuoli tokens and themes. */
.cal-modal { position:fixed; inset:0; z-index:1000; align-items:center; justify-content:center; padding:var(--space-600); background:color-mix(in srgb,var(--bbr-fg-primary)40%,transparent); }
.cal-dialog { display:flex; flex-direction:column; width:100%; max-width:600px; max-height:calc(var(--lz-visible-height,100dvh) - 48px); overflow:hidden; background:var(--bbr-bg-surface); color:var(--bbr-fg-primary); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); }
.cal-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:var(--space-400); padding:var(--space-500) var(--space-600); border-bottom:1px solid var(--bbr-bd-default); flex:none; }
.cal-dialog-head h3 { margin:0; font-size:var(--text-lg); font-weight:600; }
#cal-modal .cal-dialog-head .btn { width:44px; height:44px; padding:0; }
.cal-dialog-body { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:var(--space-600); }
.cal-dialog-foot { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:var(--space-300); padding:var(--space-400) var(--space-600); border-top:1px solid var(--bbr-bd-default); flex:none; }
#cal-modal .cal-dialog-foot .btn { min-height:44px; min-width:88px; }
.cal-editor-grid,.cal-editor-times { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-600) var(--space-400); }
.cal-editor-wide,.cal-editor-times,.cal-event-colors { grid-column:1 / -1; min-width:0; }
#cal-modal label { display:block; margin-bottom:var(--space-200); font-size:var(--text-sm); font-weight:500; }
#cal-modal .cal-editor-grid input:not([type=hidden]),#cal-modal textarea { width:100%; min-width:0; min-height:48px; padding:var(--space-300) var(--space-400); border:1px solid var(--bbr-bd-default); border-radius:var(--radius-lg); background:var(--bbr-bg-surface); color:var(--bbr-fg-primary); font:inherit; }
#cal-modal textarea { min-height:88px; resize:vertical; }
#cal-modal .lz-control { min-width:0; }
#cal-modal .lz-control-trigger { min-height:48px; padding:var(--space-300) var(--space-400); }
.cal-event-colors { margin:var(--space-200) 0 0; padding:0; border:0; }
.cal-event-colors legend { padding:0; margin-bottom:var(--space-400); font-size:var(--text-base); font-weight:600; }
.cal-color-options { display:flex; flex-wrap:wrap; gap:var(--space-200); padding:var(--space-100); }
#cal-modal .cal-color-option.btn { display:grid; place-items:center; flex:none; width:44px; height:44px; min-height:44px; padding:0; border-radius:var(--radius-full); border:1px solid var(--bbr-bd-default); background:var(--cal-swatch) !important; box-shadow:none !important; }
#cal-modal .cal-color-option.btn[aria-pressed=true] { outline:var(--space-050) solid var(--bbr-fg-primary); outline-offset:var(--space-050); }
.cal-color-option[aria-pressed=true]::after { content:''; width:12px; height:8px; border-left:var(--space-050) solid var(--cal-swatch-ink); border-bottom:var(--space-050) solid var(--cal-swatch-ink); transform:translateY(-2px) rotate(-45deg); }
.cal-color-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-200); margin-top:var(--space-400); }
#cal-modal .cal-color-actions .btn { min-height:44px; }
.cal-color-actions span,.cal-color-custom small { font-size:var(--text-xs); color:var(--bbr-fg-muted); }
.cal-color-custom { margin-top:var(--space-400); }
.cal-color-custom[hidden],.cal-form-error[hidden] { display:none; }
.cal-color-custom-entry { display:flex; align-items:center; gap:var(--space-300); margin-bottom:var(--space-200); }
#cal-modal .cal-color-custom-entry input { width:180px; }
.cal-color-preview { flex:none; width:36px; height:36px; border:1px solid var(--bbr-bd-default); border-radius:var(--radius-full); background:var(--cal-swatch); }
.cal-form-error { grid-column:1 / -1; color:var(--bbr-red-fg); font-size:var(--text-sm); }
body:has(#cal-modal:not([style*="display: none"]):not([style*="display:none"])) :is(#lz-sidekick-toggle,#lz-lenzo-compact) { visibility:hidden !important; transition:none !important; }
@media(max-width:600px) {
    .cal-modal { padding:var(--space-400); }
    .cal-dialog { max-height:calc(var(--lz-visible-height,100dvh) - 32px); }
    .cal-dialog-head,.cal-dialog-body { padding:var(--space-500); }
    .cal-dialog-foot { padding:var(--space-400) var(--space-500); }
    #cal-modal .cal-editor-grid input:not([type=hidden]),#cal-modal textarea,#cal-modal .lz-control-trigger { font-size:16px; }
}
