/* calendar-editor.css v1 (24 Sep 2026): styles for calendar-editor.js (.tcc-ed-*). Built on the engine's tokens and
   primitives from calendar.css (--tcc-*, .tcc-btn, .tcc-input, .tcc-switch, .tcc-chip, .tcc-seg, .tcc-pill ...).
   Both themes come from the tokens; the few local colours have dark rules. */
.tcc-ed{container-type:inline-size;color:var(--tcc-ink);font-size:14px;line-height:20px;position:relative}
.tcc-ed *{box-sizing:border-box}
.tcc-ed input,.tcc-ed select,.tcc-ed textarea{color-scheme:light}
:root[data-theme="dark"] .tcc-ed input,:root[data-theme="dark"] .tcc-ed select,:root[data-theme="dark"] .tcc-ed textarea{color-scheme:dark}
.tcc-ed [hidden]{display:none!important}
.tcc-ed-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;margin:-1px!important;padding:0!important;border:0!important}
.tcc-ed-svg{flex:0 0 auto;display:block}

/* head: type tabs + big title */
.tcc-ed-head{margin:0 0 4px 38px}
.tcc-ed-types{display:flex;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none;margin:2px 0 12px}
.tcc-ed-types::-webkit-scrollbar{display:none}
.tcc-ed-types button{white-space:nowrap;flex:0 0 auto}
.tcc-ed-title{display:block;width:100%;font:inherit;font-size:22px;line-height:30px;font-weight:500;color:var(--tcc-ink);background:transparent;border:0;border-bottom:1px solid var(--tcc-line);border-radius:0;padding:8px 2px 8px;outline:none;box-shadow:none;transition:box-shadow .15s}
.tcc-ed-title::placeholder{color:var(--tcc-soft);opacity:1}
.tcc-ed-title:focus{border-bottom-color:var(--tcc-primary);box-shadow:0 1px 0 0 var(--tcc-primary)}

/* two columns: details left, guests + files right (one column when narrow) */
.tcc-ed-cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:0 28px;margin-top:6px;align-items:start}
.tcc-ed-cols.is-single{grid-template-columns:minmax(0,1fr)}
.tcc-ed-main{min-width:0}
.tcc-ed-side{min-width:0;border-left:1px solid var(--tcc-line);padding-left:24px}
.tcc-ed-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;padding:9px 0}
.tcc-ed-ico{color:var(--tcc-soft);display:flex;justify-content:center;padding-top:10px}
.tcc-ed-rowbody{min-width:0}
.tcc-ed-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.tcc-ed-line+.tcc-ed-line{margin-top:8px}
.tcc-ed-line--sub{gap:16px}
.tcc-ed-word{color:var(--tcc-soft);font-weight:500}
.tcc-ed .tcc-ed-date{width:152px;flex:0 1 auto}
.tcc-ed .tcc-ed-time{width:auto;min-width:140px;flex:0 1 auto}
.tcc-ed .tcc-ed-wide{width:100%;max-width:520px}
.tcc-ed-dur{font-size:13px}
.tcc-ed-inline{display:inline-flex;align-items:center;gap:10px}
.tcc-ed-inline>label:last-child{cursor:pointer}
.tcc-ed-tz{font-size:12px}
.tcc-ed-static{margin:9px 0 0}
.tcc-ed-err{color:var(--tcc-danger);font-size:13px;font-weight:600;margin-top:6px}
.tcc-ed-head .tcc-ed-err{margin-left:2px}
.tcc-ed-note{font-size:13px;line-height:18px;margin:8px 0 0;display:flex;gap:8px;align-items:flex-start}
.tcc-ed-note .tcc-ed-svg{margin-top:1px;color:var(--tcc-accent)}
.tcc-ed-warn{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:18px;color:var(--tcc-ink);background:color-mix(in srgb,var(--tcc-warn) 14%,transparent);border:1px solid color-mix(in srgb,var(--tcc-warn) 40%,transparent);border-radius:10px;padding:8px 10px;margin:8px 0 0;list-style:none}
.tcc-ed-warn .tcc-ed-svg{color:var(--tcc-warn);margin-top:1px}
.tcc-ed-cap{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--tcc-soft);margin:9px 0 4px}
.tcc-ed .tcc-ed-desc{min-height:96px;max-width:none}
.tcc-ed-count{font-size:12px;text-align:right;margin-top:4px}

/* switches with a text label */
.tcc-ed-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 0;max-width:520px}
.tcc-ed-toggle-text{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;cursor:pointer;min-width:0}
.tcc-ed-toggle-text b{font-weight:600}
.tcc-ed-toggle-text .tcc-muted{flex-basis:100%;font-size:12px;line-height:16px}
.tcc-ed-toggle-text .tcc-ed-svg{color:var(--tcc-soft)}
.tcc-ed-toggle-text .tcc-ed-svg~.tcc-muted{padding-left:28px}
.tcc-ed-linked{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px}
.tcc-ed-linked .tcc-pill .tcc-ed-svg{margin-right:2px}

/* calls */
.tcc-ed-chips{display:flex;flex-wrap:wrap;gap:8px}
.tcc-ed-chips+.tcc-input{margin-top:10px}

/* notifications */
.tcc-ed-rems{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tcc-ed-rem{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tcc-ed .tcc-ed-remsel{width:auto;min-width:220px;flex:0 1 auto}
.tcc-ed .tcc-ed-num{width:84px}
.tcc-ed .tcc-ed-unit{width:auto}
.tcc-ed-remtext{font-size:12px}
.tcc-ed-x{color:var(--tcc-soft);flex:0 0 auto}
.tcc-ed-x:hover{color:var(--tcc-ink)}
.tcc-ed-add{margin-top:6px}
.tcc-ed-emailrem{margin-top:10px}

/* colours */
.tcc-ed-colors{display:flex;flex-wrap:wrap;gap:2px;margin:-3px 0 0 -4px}
.tcc-ed-sw{--sw:#039BE5;width:34px;height:34px;padding:0;border:0;background:transparent;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#fff}
.tcc-ed-dot{width:22px;height:22px;border-radius:50%;background:var(--sw);display:flex;align-items:center;justify-content:center;transition:transform .12s}
.tcc-ed-sw:hover .tcc-ed-dot{transform:scale(1.12)}
.tcc-ed-sw.is-on .tcc-ed-dot{box-shadow:0 0 0 2px var(--tcc-surface),0 0 0 4px var(--sw)}
.tcc-ed-sw--def .tcc-ed-dot{background:color-mix(in srgb,var(--sw) 22%,transparent);border:2px solid var(--sw);color:var(--tcc-ink)}
.tcc-ed-sw[data-v="banana"],.tcc-ed-sw[data-v="sage"],.tcc-ed-sw[data-v="flamingo"]{color:#1f1a00}
.tcc-ed-sw:focus-visible{outline:2px solid var(--tcc-focus,var(--tcc-accent));outline-offset:1px}
.tcc-ed-colname{display:block;font-size:12px;margin-top:2px}

/* guests */
.tcc-ed-panel{padding:9px 0 18px}
.tcc-ed-panel+.tcc-ed-panel{border-top:1px solid var(--tcc-line);padding-top:16px}
.tcc-ed-h{font-size:15px;line-height:22px;font-weight:700;margin:0 0 10px}
.tcc-ed-search{position:relative}
.tcc-ed-search .tcc-ed-svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--tcc-soft);pointer-events:none}
.tcc-ed-search .tcc-input{width:100%;padding-left:38px}
.tcc-ed-results{margin-top:6px;border:1px solid var(--tcc-line);border-radius:12px;background:var(--tcc-surface);box-shadow:var(--tcc-shadow-1);max-height:340px;overflow:auto;padding:4px 0;overscroll-behavior:contain}
.tcc-ed-rgroup+.tcc-ed-rgroup{border-top:1px solid var(--tcc-line);margin-top:4px;padding-top:2px}
.tcc-ed-rhead{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--tcc-soft);margin:8px 12px 2px}
.tcc-ed-rmore{font-size:12px;margin:6px 12px;display:flex;align-items:center;gap:8px}
.tcc-ed-ropt{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:6px 12px;min-height:48px;cursor:pointer}
.tcc-ed-ropt:hover,.tcc-ed-ropt.is-active{background:var(--tcc-surface-2)}
.tcc-ed-ropt.is-active{box-shadow:inset 3px 0 0 var(--tcc-accent)}
.tcc-ed-ropt:focus-visible{outline:2px solid var(--tcc-focus,var(--tcc-accent));outline-offset:-2px}
.tcc-ed-gname{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;line-height:18px}
.tcc-ed-gname b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcc-ed-gname .tcc-muted{font-size:12px;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcc-ed-guests{list-style:none;margin:10px 0 0;padding:0}
.tcc-ed-guest{display:flex;align-items:center;gap:10px;padding:3px 0;min-height:48px}
.tcc-ed-guest .tcc-avatar{flex:0 0 auto}
.tcc-ed-guest.is-host .tcc-avatar{background:var(--tcc-primary);color:var(--tcc-on-primary,#fff)}
.tcc-ed-gpills{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;flex:0 1 auto}
.tcc-ed-gpills .tcc-pill,.tcc-ed-ropt .tcc-pill{white-space:nowrap}
.tcc-ed-gpills .tcc-ed-svg{margin-right:1px}

/* files and documents */
.tcc-ed-attbtns{display:flex;flex-wrap:wrap;gap:8px}
.tcc-ed-attbtns .tcc-btn{justify-content:flex-start}
.tcc-ed-atts{list-style:none;margin:10px 0 0;padding:0}
.tcc-ed-att{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:8px 0;border-bottom:1px solid var(--tcc-line)}
.tcc-ed-att:first-child{border-top:1px solid var(--tcc-line)}
.tcc-ed-attic{width:34px;height:34px;border-radius:9px;background:var(--tcc-surface-2);display:flex;align-items:center;justify-content:center;color:var(--tcc-soft);flex:0 0 auto}
.tcc-ed-attname{display:flex;flex-direction:column;min-width:0;line-height:18px}
.tcc-ed-attname b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tcc-ed-attname .tcc-muted{font-size:12px;line-height:16px}
.tcc-ed-att .tcc-ed-x{grid-column:3;grid-row:1}
.tcc-ed-teamonly{grid-column:2/4;grid-row:2;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tcc-soft);margin-top:4px}
.tcc-ed-teamonly label:last-child{cursor:pointer}
.tcc-ed-att.is-err .tcc-muted{color:var(--tcc-danger)}
.tcc-ed-att.is-err .tcc-ed-attic{color:var(--tcc-danger)}
.tcc-ed-bar{display:block;height:4px;border-radius:2px;background:var(--tcc-line);overflow:hidden;margin-top:6px}
.tcc-ed-bar>span{display:block;height:100%;background:var(--tcc-accent);transform-origin:left center;transform:scaleX(0);transition:transform .2s linear}

/* Collaborate document picker */
.tcc-ed-picker{min-height:280px}
.tcc-ed-picker .tcc-ed-cap{margin-top:16px}
.tcc-ed-dlist{display:flex;flex-direction:column;gap:2px}
.tcc-ed-drow{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:8px 10px;border-radius:12px;min-height:56px;cursor:pointer}
.tcc-ed-drow:hover:not(:disabled){background:var(--tcc-surface-2)}
.tcc-ed-drow:focus-visible{outline:2px solid var(--tcc-focus,var(--tcc-accent));outline-offset:-2px}
.tcc-ed-drow:disabled{cursor:default}
.tcc-ed-drow .tcc-ed-attname{flex:1}
.tcc-ed-drow.is-private .tcc-ed-attic{color:var(--tcc-warn)}
.tcc-ed-dpriv{font-size:12px;line-height:16px;color:var(--tcc-ink);margin-top:3px;white-space:normal}

/* footer hint (lives in the engine's sticky footer, left of the buttons) */
.tcc-ed-foothint{margin-right:auto;font-size:13px;line-height:18px;color:var(--tcc-soft);align-self:center;max-width:60%}
:has(>.tcc-ed-foothint){flex-wrap:wrap}
.tcc-ed-ownfoot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:12px 0;background:var(--tcc-surface);border-top:1px solid var(--tcc-line);margin-top:8px}
.tcc-ed.is-busy .tcc-ed-cols,.tcc-ed.is-busy .tcc-ed-head{opacity:.65;pointer-events:none}

/* narrow (a brick, a small window): one column */
@container (max-width:760px){
  .tcc-ed-cols{grid-template-columns:minmax(0,1fr)}
  .tcc-ed-side{border-left:0;padding-left:38px;border-top:1px solid var(--tcc-line);margin-top:8px}
}
@container (max-width:520px){
  .tcc-ed-head{margin-left:0}
  .tcc-ed-row{grid-template-columns:22px minmax(0,1fr);gap:12px}
  .tcc-ed-side{padding-left:0}
  .tcc-ed .tcc-ed-date,.tcc-ed .tcc-ed-time{flex:1 1 128px;width:auto;min-width:0}
  .tcc-ed .tcc-ed-remsel{min-width:0;flex:1 1 180px}
}

/* phone layout: 44px targets, 16px inputs (no zoom on focus) */
.tcc-ed--phone .tcc-input,.tcc-ed--phone .tcc-select{min-height:44px;font-size:16px}
.tcc-ed--phone .tcc-textarea{font-size:16px}
.tcc-ed--phone .tcc-btn{min-height:44px}
.tcc-ed--phone .tcc-btn--icon,.tcc-ed--phone .tcc-ed-x{width:44px;height:44px;min-height:44px}
.tcc-ed--phone .tcc-chip{min-height:44px}
.tcc-ed--phone .tcc-seg button{min-height:44px}
.tcc-ed--phone .tcc-ed-sw{width:44px;height:44px}
.tcc-ed--phone .tcc-ed-colors{gap:0}
.tcc-ed--phone .tcc-ed-toggle,.tcc-ed--phone .tcc-ed-inline,.tcc-ed--phone .tcc-ed-teamonly{min-height:44px}
.tcc-ed--phone .tcc-ed-title{font-size:22px}
.tcc-ed--phone .tcc-ed-attbtns .tcc-btn{flex:1 1 100%}
.tcc-ed-layer--phone .tcc-ed-foothint{flex-basis:100%;max-width:none;margin:0 0 4px;order:-1}

@media (prefers-reduced-motion:reduce){
  .tcc-ed-title,.tcc-ed-dot,.tcc-ed-bar>span{transition:none}
  .tcc-ed-sw:hover .tcc-ed-dot{transform:none}
}
@media (forced-colors:active){
  .tcc-ed-sw.is-on{outline:2px solid CanvasText}
  .tcc-ed-dot{forced-color-adjust:none}
  .tcc-ed-bar>span{background:Highlight}
  .tcc-ed-ropt.is-active{outline:2px solid Highlight}
}

/* v1 layout details */
.tcc-ed-tgrp{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}
.tcc-ed-emailrem{display:flex}
@container (max-width:520px){
  .tcc-ed [data-h="when"] .tcc-ed-date{flex:1 1 100%}
  .tcc-ed-tgrp{flex:1 1 100%}
  .tcc-ed .tcc-ed-tgrp .tcc-ed-time{flex:1 1 0}
  .tcc-ed-dur{flex:1 1 100%;margin-top:-2px}
}
.tcc-ed-warnbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tcc-ed-warn>div{min-width:0}
/* the title's focus indicator is its own 2px underline in the primary colour */
.tcc-ed .tcc-ed-title:focus-visible{outline:none}
/* SSO clearance (24 Sep): who can open each attachment, in words; what outsider guests see; the picker line */
.tcc-ed-teamonly{justify-content:space-between;flex-wrap:wrap;row-gap:4px}
.tcc-ed-attwho{display:inline-flex;align-items:center;gap:6px;color:var(--tcc-ink);font-weight:500;min-width:0}
.tcc-ed-attwho .tcc-ed-svg{color:var(--tcc-soft);flex:0 0 auto}
.tcc-ed-tswitch{display:inline-flex;align-items:center;gap:8px;color:var(--tcc-soft)}
.tcc-ed-tswitch label:first-child{cursor:pointer}
.tcc-ed--phone .tcc-ed-tswitch{min-height:44px}
.tcc-ed-outsider{color:var(--tcc-ink);background:color-mix(in srgb,var(--tcc-accent) 9%,transparent);border:1px solid color-mix(in srgb,var(--tcc-accent) 35%,transparent);border-radius:10px;padding:8px 10px}
.tcc-ed-outsider .tcc-ed-svg{color:var(--tcc-soft);flex:0 0 auto;margin-top:1px}
.tcc-ed-outsider[hidden]{display:none}
.tcc-ed-consent{margin-top:6px}
.tcc-ed-head [data-err="type"]{margin:-6px 0 10px 2px}
@media (forced-colors:active){ .tcc-ed-outsider{border-color:CanvasText} }
