/* ── C. app content at review density (journey pages). App register only: hairlines, one surface step, no gradients. ── */
.sh-sub{flex:none;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 var(--app-page-pad);border-bottom:1px solid var(--app-rule);background:var(--app-shell-bg);flex-wrap:wrap;font-size:var(--app-t-label);color:var(--app-ink-muted)}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-sub{padding:6px var(--app-page-pad-mobile);gap:6px}
.sh:is([data-target="mobile"],[data-target="ios"]) .hide-m{display:none!important}
.sh-tbl tr.grp{cursor:default}.sh-tbl tr.grp:hover td{background:var(--app-shell-bg)}
.sh-sub .grow{flex:1}
.sh-sub .cnt{color:var(--app-ink);font-weight:550;font-variant-numeric:tabular-nums}
.sh-sub .sep{width:1px;height:16px;background:var(--app-rule)}
.sh-nav2{display:inline-flex;align-items:center;gap:2px}
.sh-nav2 .ib{width:26px;height:26px;display:grid;place-items:center;border-radius:var(--app-r-field);color:var(--app-ink-muted)}
.sh-nav2 .ib:hover{background:var(--app-nav-active-bg);color:var(--app-ink)}
.sh-nav2 b{font:550 var(--app-t-head)/1 var(--app-font);color:var(--app-ink);padding:0 6px;white-space:nowrap}
.sh-stat{display:inline-flex;align-items:baseline;gap:5px;font-size:var(--app-t-label);color:var(--app-ink-muted)}
.sh-stat b{font:550 var(--app-t-read)/1 var(--app-font);color:var(--app-ink);font-variant-numeric:tabular-nums}
.sh-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--app-ink-muted);vertical-align:1px;margin-right:6px;flex:none}
.sh-dot.live{background:var(--app-state-live);box-shadow:0 0 0 2px color-mix(in oklab,var(--app-accent) 25%,transparent)}.sh-dot.ok{background:var(--app-state-ok)}.sh-dot.warn{background:var(--app-state-warn)}.sh-dot.fail{background:var(--app-state-fail)}.sh-dot.info{background:var(--color-info)}
.sh-status{display:inline-flex;align-items:center;font-size:var(--app-t-micro);color:var(--app-ink-muted);white-space:nowrap}
.sh-status.strong{color:var(--app-ink)}
.sh-ava{width:28px;height:28px;border-radius:50%;background:var(--color-base-300);display:grid;place-items:center;font:550 10.5px/1 var(--app-font);color:var(--app-ink);flex:none}
.sh-ava.lg{width:48px;height:48px;font-size:15px}
.sh-idc{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:var(--app-r-pill);border:1px solid var(--app-rule);font-size:var(--app-t-micro);color:var(--app-ink-muted);white-space:nowrap}
.sh-idc i{width:6px;height:6px;border-radius:50%;background:var(--app-state-ok)}
.sh-idc.off i{background:var(--app-ink-faint)}
.sh-bar{height:6px;border-radius:3px;background:var(--color-base-300);overflow:hidden;position:relative}
.sh-bar i{position:absolute;inset:0 auto 0 0;background:var(--app-ink);border-radius:3px}
.sh-bar.accent i{background:var(--app-accent)}
.sh-fig{display:flex;gap:16px;flex-wrap:wrap}
.sh-fig div{display:flex;flex-direction:column;gap:2px;min-width:80px}
.sh-fig b{font:550 var(--app-t-title)/1.1 var(--app-font);color:var(--app-ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.sh-fig span{font-size:var(--app-t-micro);color:var(--app-ink-muted)}
.sh-tl{display:flex;flex-direction:column}
.sh-tl .e{display:grid;grid-template-columns:64px 1fr auto;gap:12px;padding:8px 0;border-top:1px solid var(--app-rule);font-size:var(--app-t-body);align-items:baseline}
.sh-tl .e:first-child{border-top:0;padding-top:0}
.sh-tl .e time{font-size:var(--app-t-micro);color:var(--app-ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.sh-tl .e b{font-weight:550;color:var(--app-ink)}.sh-tl .e small{display:block;color:var(--app-ink-muted);font-size:var(--app-t-label)}
.sh-tl .e .amt{font-variant-numeric:tabular-nums;color:var(--app-ink);white-space:nowrap}
.sh-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-cols,.sh-drawer:not([data-width="full"]) .sh-cols{grid-template-columns:minmax(0,1fr)}
.sh-stack{display:flex;flex-direction:column;gap:14px;min-width:0}
.sh-card{border:1px solid var(--app-rule);border-radius:var(--app-r-card);background:var(--app-panel-bg);padding:12px}
.sh-card h3{margin:0 0 8px;font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}
.sh-card .row>span:first-child{white-space:nowrap}
.sh-card .row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--app-rule);font-size:var(--app-t-body);color:var(--app-ink-body)}
.sh-card .row:first-of-type{border-top:0;padding-top:0}
.sh-card .row b{font-weight:550;color:var(--app-ink)}.sh-card .row small{color:var(--app-ink-muted)}
.sh-rpill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:var(--app-r-pill);background:var(--app-inset-panel-bg);font-size:var(--app-t-micro);color:var(--app-ink);font-weight:550;white-space:nowrap}

/* table */
.sh-tbl{width:100%;border-collapse:collapse;font-size:var(--app-t-body);color:var(--app-ink-body);table-layout:fixed}
.sh-tbl th{height:var(--app-row-h-compact);padding:0 var(--app-cell-x);text-align:left;font:550 var(--app-t-micro)/1 var(--app-font);letter-spacing:.04em;text-transform:uppercase;color:var(--app-ink-muted);background:var(--app-shell-bg);border-bottom:1px solid var(--app-rule);white-space:nowrap}
.sh-tbl th.r,.sh-tbl td.r{text-align:right;font-variant-numeric:tabular-nums}
.sh-tbl td{height:var(--app-row-h);padding:0 var(--app-cell-x);border-top:1px solid var(--app-rule);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.sh-tbl tr:first-child td{border-top:0}
.sh-tbl tbody tr{cursor:pointer}
.sh-tbl tbody tr:hover td{background:var(--app-table-row-hover-bg)}
.sh-tbl tbody tr[aria-selected="true"] td{background:var(--app-table-row-selected-bg)}
.sh-tbl tbody tr[aria-selected="true"] td:first-child{box-shadow:inset 2px 0 0 var(--app-accent)}
.sh-tbl td b{font-weight:550;color:var(--app-ink)}
.sh-tbl td small{display:block;color:var(--app-ink-muted);font-size:var(--app-t-micro);line-height:1.2}
.sh-tbl .who{display:flex;align-items:center;gap:10px;min-width:0}
.sh-tbl td.act{text-align:right;padding-right:8px}.sh-tbl td.act .sh-btn{opacity:0;transform:translateX(4px);transition:opacity var(--dur-fast),transform var(--dur-fast);background:var(--app-shell-bg);border:1px solid var(--app-rule-strong)}.sh-tbl tr:hover td.act .sh-btn,.sh-tbl tr:focus-within td.act .sh-btn,.sh-tbl tr[aria-selected="true"] td.act .sh-btn{opacity:1;transform:none}
.sh[data-drawer="narrow"] .sh-tbl col.c-ver,.sh[data-drawer="narrow"] .sh-tbl col.c-own,.sh[data-drawer="narrow"] .sh-tbl col.c-where{width:0!important}
.sh[data-drawer="narrow"] .sh-tbl :is(th,td).c-ver,.sh[data-drawer="narrow"] .sh-tbl :is(th,td).c-own,.sh[data-drawer="narrow"] .sh-tbl :is(th,td).c-where{padding:0!important;overflow:hidden;font-size:0;color:transparent}
.sh-tbl .who>div{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sh-tbl td.mut{color:var(--app-ink-muted)}
.sh-tbl .chips{display:flex;gap:4px}
.sh-tblwrap{overflow:auto}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl{table-layout:fixed;min-width:0;width:100%}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl colgroup{display:none}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cal :is(th,td):nth-child(3),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cal :is(th,td):nth-child(5),
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-ppl :is(th,td):nth-child(2),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-ppl :is(th,td):nth-child(4),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-ppl :is(th,td):nth-child(5),
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms :is(th,td):nth-child(7),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms :is(th,td):nth-child(2),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms :is(th,td):nth-child(3),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms :is(th,td):nth-child(4),.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms :is(th,td):nth-child(5){display:none}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl td[colspan]{display:table-cell}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl .who{min-width:0}.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl .who>div{min-width:0}.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl .who b,.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl .who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms th:first-child{width:auto}.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cms th:nth-child(6){width:108px}.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-ppl th:first-child{width:56%}.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cal th:first-child{width:46%}.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl.tb-cal th:nth-child(2){width:24%}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-tbl td{height:auto;padding:8px var(--app-cell-x)}

/* media */
.sh-thumb{width:28px;height:28px;border-radius:var(--app-r-field);background:var(--color-base-300);display:grid;place-items:center;color:var(--app-ink);flex:none;position:relative}
.sh-thumb.v{background:var(--color-base-300);color:var(--app-ink)}
.sh-thumb.tpl{background:var(--app-inset-panel-bg);border:1px solid var(--app-rule)}
.sh-thumb svg{width:14px;height:14px}
.sh-media{position:relative;aspect-ratio:16/9;border-radius:var(--app-r-card);background:oklch(20% 0.004 107);color:oklch(96% .0093 100);display:grid;place-items:center;overflow:hidden}
.sh-media.portrait{aspect-ratio:9/16;max-width:220px}
.sh-post .sh-media.portrait{align-self:center;width:200px}
.sh-media .play{width:44px;height:44px;border-radius:50%;background:oklch(96% .0093 100);color:oklch(20% 0.004 107);display:grid;place-items:center}
.sh-media .play svg{width:18px;height:18px;margin-left:2px}
.sh-media .dur{position:absolute;right:8px;bottom:8px;font:550 var(--app-t-micro)/1 var(--app-font);padding:3px 6px;border-radius:3px;background:oklch(0% 0 0 / .55);color:#fff}
.sh-media .lab{position:absolute;left:8px;top:8px;font:550 var(--app-t-micro)/1 var(--app-font);color:color-mix(in oklab,var(--color-base-100) 70%,transparent)}
.sh-vers .row span{font-variant-numeric:tabular-nums}

/* forms */
.sh-form{display:flex;flex-direction:column;gap:14px}
.sh-form label.lbl{display:flex;flex-direction:column;gap:6px;font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}
.sh-form .hint{font-weight:400;color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.sh-ta{width:100%;min-height:88px;padding:8px 10px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-field);background:var(--app-shell-bg);color:var(--app-ink);font:var(--app-t-read)/1.5 var(--app-font);resize:vertical}
.sh-ta::placeholder{color:var(--app-ink-faint)}
.sh-count{align-self:flex-end;font-size:var(--app-t-micro);color:var(--app-ink-muted);font-variant-numeric:tabular-nums}
.sh-radio{display:flex;flex-direction:column;gap:6px}
.sh-radio label{display:flex;align-items:center;gap:8px;font-size:var(--app-t-body);color:var(--app-ink-body);font-weight:400}
.sh-post{border:1px solid var(--app-rule);border-radius:12px;background:var(--app-panel-bg);padding:12px;max-width:300px;display:flex;flex-direction:column;gap:8px}
.sh-post .hd{display:flex;align-items:center;gap:8px;font-size:var(--app-t-label);color:var(--app-ink)}
.sh-post .hd b{font-weight:550}.sh-post .hd small{color:var(--app-ink-muted)}
.sh-post .cap{font-size:var(--app-t-body);color:var(--app-ink-body);white-space:pre-wrap;overflow-wrap:anywhere;min-height:18px}
.sh-post .cap:empty::before{content:"Caption appears here";color:var(--app-ink-muted)}
.sh-receipt{border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--app-panel-bg);overflow:hidden}
.sh-receipt .h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--app-rule);font:550 var(--app-t-head)/1.2 var(--app-font);color:var(--app-ink)}
.sh-receipt .b{padding:4px 12px 10px}
.sh-receipt .row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--app-rule);font-size:var(--app-t-body)}
.sh-receipt .row:first-child{border-top:0}
.sh-receipt .row span:first-child{color:var(--app-ink-muted)}.sh-receipt .row span:last-child{color:var(--app-ink);text-align:right}

/* time grid */
.sh-tg{flex:1;min-height:0;border:0;border-radius:0;background:transparent;overflow:auto;display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;font-size:var(--app-t-label)}
.sh-tg .hd>div,.sh-tg .ad>div{position:sticky;z-index:3;background:var(--app-panel-bg)}.sh-tg .hd>div{top:0}.sh-tg .ad>div{top:40px}
.sh-tg .hd{display:contents}
.sh-tg .hd>div{height:40px;display:flex;align-items:center;gap:6px;padding:0 8px;border-bottom:1px solid var(--app-rule);border-left:1px solid var(--app-rule);font-size:var(--app-t-label);color:var(--app-ink-muted)}
.sh-tg .hd>div:first-child{border-left:0}
.sh-tg .hd b{font:550 var(--app-t-head)/1 var(--app-font);color:var(--app-ink);letter-spacing:0;text-transform:none}
.sh-tg .hd .today b{background:var(--app-ink);color:var(--color-base-100);border-radius:var(--app-r-pill);padding:3px 7px}
.sh-tg .ad{display:contents}
.sh-tg .ad>div{min-height:34px;padding:4px 4px;border-bottom:1px solid var(--app-rule-strong);border-left:1px solid var(--app-rule);display:flex;flex-direction:column;gap:3px}
.sh-tg .ad>div:first-child{border-left:0;font-size:10px;color:var(--app-ink-muted);justify-content:center;padding-left:8px}
.sh-tg .adi{display:flex;align-items:center;gap:5px;height:22px;padding:0 6px;border-radius:3px;border:1px dashed var(--app-rule-strong);border-left:3px dashed var(--app-rule-strong);color:var(--app-ink);font-size:var(--app-t-micro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:left}
.sh-tg .adi[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--app-accent)}
.sh-tg .hours{display:flex;flex-direction:column}
.sh-tg .hours div{height:var(--tg-h);font-size:10px;color:var(--app-ink-muted);padding:0 0 0 8px;font-variant-numeric:tabular-nums;position:relative}
.sh-tg .hours div span{position:absolute;top:0;transform:translateY(-50%);background:var(--app-panel-bg);padding:0 2px}
.sh-tg .hours div:first-child span{display:none}
.sh-tg .col{position:relative;border-left:1px solid var(--app-rule);background-image:linear-gradient(var(--app-rule) 1px,transparent 1px);background-size:100% var(--tg-h);background-position:0 0}
.sh-tg .col.today{background-color:color-mix(in oklab,var(--app-ink) 2.5%,transparent)}
.sh-tg .ev{position:absolute;left:3px;right:3px;padding:2px 6px;border-radius:var(--app-r-field);background:var(--app-shell-bg);border:1px solid var(--app-rule);border-left:3px solid var(--app-ink);color:var(--app-ink);text-align:left;overflow:hidden;display:flex;flex-direction:column;gap:0;font-size:var(--app-t-label);line-height:1.25}
.sh-tg .ev.rs{border-left-color:var(--app-ink-muted)}
.sh-tg .ev.short{font-size:11px;line-height:1.1;justify-content:center}.sh-tg .ev.short small{display:none}
.sh-tg .ev.past{opacity:.72}
.sh-tg .ev:hover{border-color:var(--app-rule-strong);border-left-color:var(--app-ink)}
.sh-tg .ev[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--app-accent)}
.sh-tg .ev b{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-tg .ev small{color:var(--app-ink-muted);font-size:var(--app-t-micro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-tg .ev .ty{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--app-ink-muted)}
.sh-tg .now{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--app-accent);z-index:2}
.sh-tg .now::before{content:"";position:absolute;left:-4px;top:-4px;width:6px;height:6px;border-radius:50%;background:var(--app-accent)}

/* agenda (mobile) */
.sh-ag{display:flex;flex-direction:column;gap:14px}
.sh-ag .day{display:flex;align-items:baseline;gap:8px;font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}
.sh-ag .day small{font-weight:400;color:var(--app-ink-muted)}
.sh-ag .day.today b{background:var(--app-ink);color:var(--color-base-100);border-radius:var(--app-r-pill);padding:3px 7px}
.sh-ag .it{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:10px 0 10px 10px;border:0;border-top:1px solid var(--app-rule);background:transparent;width:100%;text-align:left;color:var(--app-ink);box-shadow:inset 3px 0 0 var(--app-ink)}
.sh-ag .it.rs{box-shadow:inset 3px 0 0 var(--app-ink-muted)}.sh-ag .it.in{box-shadow:inset 3px 0 0 var(--app-rule-strong);color:var(--app-ink-muted)}.sh-ag .it.mk{box-shadow:none;border-left:3px dashed var(--app-rule-strong)}
.sh-ag .it:last-child{border-bottom:1px solid var(--app-rule)}
.sh-ag .it[aria-pressed="true"]{background:var(--app-table-row-selected-bg)}
.sh-ag .it time{font-size:var(--app-t-micro);color:var(--app-ink-muted);font-variant-numeric:tabular-nums;line-height:1.3}
.sh-ag .it b{font-weight:550;display:block}.sh-ag .it small{color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.sh-ag .it[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--app-accent)}
.sh-ag .it.mk{border-style:dashed}

/* ── section C, pass 4: chrome-level additions ── */
.sh-toolbar .range{font:550 var(--app-t-head)/1 var(--app-font);color:var(--app-ink);white-space:nowrap;padding:0 4px}
.sh-tbl tr.grp td{height:28px;background:var(--app-shell-bg);font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}
.sh-tg .ev.in{border-left-color:var(--app-rule-strong);background:transparent;color:var(--app-ink-muted)}
.sh-ag .none{font-size:var(--app-t-label);color:var(--app-ink-muted);padding:2px 0 0}
/* drawer footer takes the record actions */
.sh-drawer .df .grow{flex:1}
/* composer frame */
.sh-alert{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--app-inset-panel-bg);font-size:var(--app-t-body);color:var(--app-ink);font-weight:550;flex-wrap:wrap}
.sh-alert .grow{flex:1}
.sh-chans{display:flex;align-items:center;gap:6px}
.sh-chans .chan{border-radius:50%;padding:2px;border:2px solid transparent}
.sh-chans .chan .sh-ava{width:32px;height:32px;font-size:11px;opacity:.55}
.sh-chans .chan[aria-checked="true"]{border-color:var(--app-ink)}
.sh-chans .chan[aria-checked="true"] .sh-ava{opacity:1;background:var(--app-ink);color:var(--color-base-100)}
.sh-chans .chan:hover .sh-ava{opacity:1}
.sh-chans .who{margin-left:8px;display:flex;flex-direction:column;line-height:1.3}
.sh-chans .who b{font-weight:550;color:var(--app-ink);font-size:var(--app-t-body)}
.sh-chans .who small{color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.sh-editor{align-self:start;display:flex;flex-direction:column;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--app-shell-bg);overflow:hidden}
.sh-editor .sh-ta{border:0;border-radius:0;min-height:260px;resize:none;background:transparent}
.sh-editor .sh-ta.subj{min-height:0;height:40px;border-bottom:1px solid var(--app-rule);font-weight:550}
.sh-editor .sh-ta:focus{outline:0}
.sh-editor:focus-within{border-color:var(--app-ink)}
.sh-editor .ed-ft{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:10px;border-top:1px solid var(--app-rule)}
.sh-mrow{display:flex;gap:6px}
.sh-thumb.mini{width:40px;height:56px;border-radius:var(--app-r-field)}
.sh-thumb.add{width:40px;height:56px;background:transparent;border:1px dashed var(--app-rule-strong);color:var(--app-ink-muted);cursor:pointer}
.sh-thumb.add:hover{border-color:var(--app-ink);color:var(--app-ink)}
.sh-prev{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.sh-prev .cap-h{font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}
.sh-cols.compose{grid-template-columns:minmax(0,1fr) 340px;gap:32px}
.sh-chans{gap:10px}.sh-chans .who{margin-left:4px}
.sh-editor .err{font-size:var(--app-t-label);color:var(--app-ink-muted);padding:0 10px 10px}
.sh-prev .note{font-size:var(--app-t-micro);color:var(--app-ink-muted)}
.sh-cbar{position:sticky;bottom:calc(-1 * var(--app-page-pad));margin:0 calc(-1 * var(--app-page-pad)) calc(-1 * var(--app-page-pad));padding:10px var(--app-page-pad);display:flex;align-items:center;gap:8px;border-top:1px solid var(--app-rule);background:var(--app-shell-bg)}
.sh-cbar .grow{flex:1}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-cbar{margin:0 calc(-1 * var(--app-drawer-pad)) calc(-1 * var(--app-drawer-pad));padding:10px var(--app-drawer-pad);bottom:calc(-1 * var(--app-drawer-pad))}
.sh-drawer:not([data-width="full"]) .sh-cols{grid-template-columns:minmax(0,1fr)}

.sh[data-drawer="narrow"] [data-act="columns"],.sh[data-drawer="wide"] [data-act="columns"]{display:none}
.sh-toolbar h1{display:none}
.sh-toolbar:not(:has(.sh-btn:not(.primary),.sh-seg,.range,.sh-dd)){display:none}
.sh:is([data-target="mobile"],[data-target="ios"]) .sh-fb .cnt{display:none}


/* ── D. S1 · event record · control board ─────────────────────────────────────────── */
.mut{color:var(--app-ink-muted)}.grow{flex:1}
.ev-badge{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:4px;border:1px solid var(--app-rule-strong);font:550 9.5px/1 var(--app-font);color:var(--app-ink);background:var(--app-shell-bg);vertical-align:-4px;letter-spacing:0;font-style:normal;flex:none}
/* identity */
.ev-id{display:flex;flex-direction:column;gap:6px}
.ev-id-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--app-t-body);color:var(--app-ink);min-height:24px}
.ev-id-row b{font-weight:550}.ev-id-row .mut .sh-dot{margin-right:5px}
.ev-link{color:var(--app-ink);text-decoration:none;font-weight:550;white-space:nowrap;min-height:28px;display:inline-flex;align-items:center;gap:5px}.ev-link svg{color:var(--app-ink-muted)}.ev-link:hover{text-decoration:underline;text-underline-offset:2px}
.ev-vis{font-weight:550}.ev-sep{color:var(--app-ink-faint)}
.ev-word{font-weight:550;color:var(--app-ink);font-variant-caps:normal}
.ev-fresh{display:inline-flex;align-items:center;gap:6px;font-size:var(--app-t-micro);color:var(--app-ink-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.ev-fresh.fail{color:var(--app-ink)}.ev-fresh .sh-btn{margin-left:2px}
.ev-change{display:flex;gap:8px;align-items:flex-start;margin-top:2px;padding:8px 10px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--app-inset-panel-bg);font-size:var(--app-t-body);color:var(--app-ink-body)}
.ev-change .sh-dot{margin-top:5px}.ev-change b{font-weight:550;color:var(--app-ink)}
/* head (drawer + phone): art beside identity and the compact timeline */
.ev-head{display:flex;gap:14px;align-items:flex-start}
.ev-id+.ev-tl,.ev-figs+.ev-tl{padding-bottom:12px;border-bottom:1px solid var(--app-rule)}
.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id{padding-bottom:10px;border-bottom:1px solid var(--app-rule)}
.ev-head-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.ev-art{width:56px;height:56px;border-radius:var(--app-r-card);flex:none;display:block;background:var(--color-base-300)}
.ev-art.empty{display:grid;place-items:center;color:var(--app-ink-muted)}
/* sales timeline: a rail with n moments, the now-marker between them */
.ev-tl{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));padding-top:22px;font-variant-numeric:tabular-nums}
.ev-tl .rail{position:absolute;top:25px;left:calc(100% / var(--n) / 2);right:calc(100% / var(--n) / 2);height:1px;background:var(--app-rule-strong)}
.ev-tl .now{position:absolute;top:19px;width:2px;height:13px;border-radius:1px;background:var(--app-accent);left:calc(100% / var(--n) / 2 + (100% - 100% / var(--n)) * var(--now));transform:translateX(-50%)}
.ev-tl .now::after{content:"now";position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);font:500 var(--app-t-micro)/1 var(--app-font);color:var(--app-accent);letter-spacing:.02em}
.ev-tl .m{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;min-width:0}
.ev-tl .dot{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--app-ink);background:var(--app-shell-bg);position:relative;z-index:1}
.ev-tl .past .dot{background:var(--app-ink)}
.ev-tl .none .dot{border-color:var(--app-rule-strong)}
.ev-tl .k{margin-top:12px;font:500 var(--app-t-micro)/1 var(--app-font);color:var(--app-ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ev-tl b{font:550 var(--app-t-body)/1.2 var(--app-font);color:var(--app-ink);white-space:nowrap}
.ev-tl .none b,.ev-tl .none .k{color:var(--app-ink-faint)}
.ev-tl small{font-size:var(--app-t-micro);color:var(--app-ink-muted)}
.ev-tl.compact .k{margin-top:10px;font-size:10.5px}.ev-tl.compact b{font-size:var(--app-t-label)}
.ev-tl.sk .dot{border-color:var(--app-rule)}.ev-tl.sk .m{gap:6px}.ev-tl.sk .m .ev-sk:first-of-type{margin-top:12px}
/* figures: label · number · denominator (· bar) */
.ev-figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 24px}
.ev-fig{display:flex;flex-direction:column;gap:3px;min-width:0}
.ev-fig .k{font:500 var(--app-t-micro)/1 var(--app-font);color:var(--app-ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-fig b{font:550 var(--app-t-title)/1.1 var(--app-font);color:var(--app-ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow-wrap:anywhere}
.ev-fig b.mut{color:var(--app-ink-muted)}
.ev-fig .of{font-size:var(--app-t-micro);color:var(--app-ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-fig.un b{font-size:var(--app-t-head);font-weight:500;color:var(--app-ink-muted)}
.ev-bar{display:block;height:4px;border-radius:2px;background:var(--color-base-300);overflow:hidden;margin-top:3px;min-width:56px}
.ev-bar i{display:block;height:100%;background:var(--app-ink);border-radius:2px}
/* ladder */
.ev-ladder{table-layout:auto}.ev-ladder th{height:28px}.ev-ladder td{height:36px;white-space:normal;vertical-align:middle}
.ev-ladder td small{display:block;font-size:var(--app-t-micro);color:var(--app-ink-muted);line-height:1.2}
.ev-ladder td.alloc{width:34%;min-width:120px}.ev-ladder td.alloc .ev-bar{margin:0 0 3px;min-width:0}
.ev-ladder td.alloc small{text-align:right}
.ev-ladder tr.tier td{height:30px;border-top-color:transparent;color:var(--app-ink-muted)}.ev-ladder tr.tier td:first-child{padding-left:calc(var(--app-cell-x) + 14px)}.ev-ladder tr.tier td b{font-weight:400;color:var(--app-ink-body)}
.ev-ladder tr.tier td.alloc .ev-bar{height:3px;opacity:.7}
.ev-ladder tr.pool td{height:30px;background:var(--app-shell-bg)}.ev-ladder tr.pool td small{display:inline;margin-left:6px}
.ev-ladder tbody tr{cursor:default}.ev-ladder tbody tr:hover td{background:transparent}
/* sections */
.ev-tabs{margin-top:2px;flex:none;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}.ev-tabs button{white-space:nowrap;flex:none;min-height:36px}
.ev-tabs button .sh-dot{margin:0 0 0 6px}
.ev-sec{display:flex;flex-direction:column;gap:12px}
.ev-cap{font:500 var(--app-t-micro)/1 var(--app-font);color:var(--app-ink-muted);margin-top:4px;display:flex;align-items:center;gap:8px;min-height:20px}
.ev-cap .sh-btn{margin-left:auto}
.ev-kv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 12px;padding:7px 0;border-top:1px solid var(--app-rule);font-size:var(--app-t-body);color:var(--app-ink)}
.ev-kv:first-of-type{border-top:0}.ev-kv>span:first-child{color:var(--app-ink-muted)}.ev-kv b{font-weight:550}.ev-kv small{display:block;color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.ev-img{display:inline-block;margin-right:8px;color:var(--app-ink-faint)}.ev-img.on{color:var(--app-ink)}.ev-img.on::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--app-ink);margin-right:5px;vertical-align:1px}
.ev-desc{margin:0;font-size:var(--app-t-read);line-height:1.5;color:var(--app-ink-body);text-wrap:pretty;max-width:60ch}
/* orders */
.ev-ohd,.ev-ord{display:grid;grid-template-columns:64px minmax(0,1fr) 36px 84px 128px;gap:10px;align-items:center}
.ev-ohd{height:28px;font:500 var(--app-t-micro)/1 var(--app-font);letter-spacing:.03em;text-transform:uppercase;color:var(--app-ink-muted);border-bottom:1px solid var(--app-rule)}
.ev-ohd .r,.ev-ord .qty,.ev-ord .amt{text-align:right;font-variant-numeric:tabular-nums}
.ev-ord{width:100%;min-height:44px;padding:6px 0;border-top:1px solid var(--app-rule);text-align:left;color:var(--app-ink);font-size:var(--app-t-body)}
.ev-ord:first-of-type{border-top:0}.ev-ord:hover{background:var(--app-table-row-hover-bg)}
.ev-ord .id{color:var(--app-ink-muted);font-variant-numeric:tabular-nums}.ev-ord .who{display:flex;flex-direction:column;min-width:0}.ev-ord .who b{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-ord .who small{color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.ev-back{align-self:flex-start;margin-left:-6px}.ev-oh{display:flex;align-items:center;justify-content:space-between;gap:10px}.ev-oh b{font:550 var(--app-t-head)/1.2 var(--app-font);color:var(--app-ink)}
.ev-comp{display:flex;flex-direction:column;font-size:var(--app-t-body);color:var(--app-ink);font-variant-numeric:tabular-nums}
.ev-comp>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--app-rule)}.ev-comp>div:first-child{border-top:0}
.ev-comp>div>span:first-child{color:var(--app-ink-muted)}.ev-comp small{display:block;font-size:var(--app-t-micro)}
.ev-comp .ret>span:last-child{color:var(--app-ink)}
.ev-comp .tot{border-top:1px solid var(--app-rule-strong)}.ev-comp .tot span{font-weight:550;color:var(--app-ink)}
.ev-empty{display:flex;flex-direction:column;gap:4px;padding:18px 0 6px}.ev-empty b{font-weight:550;color:var(--app-ink)}.ev-empty span{font-size:var(--app-t-label);color:var(--app-ink-muted)}
/* people */
.ev-pf{display:flex;gap:4px;flex-wrap:wrap}.ev-pf .sh-chip em{font-style:normal;color:var(--app-ink-muted);font-variant-numeric:tabular-nums}.ev-pf .sh-chip[aria-pressed="true"] em{color:var(--app-ink)}.ev-pf .sh-chip:disabled{opacity:.55;cursor:default}
.ev-rel{display:grid;grid-template-columns:28px minmax(0,1fr) auto 118px 92px;gap:10px;align-items:center;width:100%;min-height:48px;padding:7px 0;border-top:1px solid var(--app-rule);text-align:left;color:var(--app-ink);font-size:var(--app-t-body)}
.ev-rel:first-of-type{border-top:0}.ev-rel[data-rec]:hover{background:var(--app-table-row-hover-bg)}
.ev-rel .who{display:flex;flex-direction:column;min-width:0}.ev-rel .who b{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ev-rel .who small{color:var(--app-ink-muted);font-size:var(--app-t-micro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-roles{display:flex;gap:10px;font-size:var(--app-t-micro);color:var(--app-ink-faint);white-space:nowrap}.ev-roles .on{color:var(--app-ink);font-weight:550}
.ev-rel .sh-status.mut{color:var(--app-ink-muted)}
/* Revent's side */
.ev-rv{display:flex;flex-direction:column;gap:10px}
.ev-rv-h{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px}
.ev-rv-h b{font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}
.ev-plan{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:6px 0;border-top:1px solid var(--app-rule);text-align:left;color:var(--app-ink);font-size:var(--app-t-body)}
.ev-plan:first-of-type{border-top:0}.ev-plan:hover{background:var(--app-table-row-hover-bg)}.ev-plan .who{display:flex;flex-direction:column;min-width:0}.ev-plan .who b{font-weight:550}.ev-plan .who small{color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.ev-flag{display:inline-flex;align-items:center;gap:6px;font:500 var(--app-t-micro)/1 var(--app-font);color:var(--app-ink)}
.ev-aud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.ev-aud .ev-fig b{font-size:var(--app-t-head)}.ev-aud .ev-fig .of{white-space:normal;line-height:1.25}
.ev-aud .sh-btn{grid-column:1/-1;justify-self:start;margin-top:2px}
.ev-chips{display:flex;gap:4px;flex-wrap:wrap}
.ev-sk{height:10px;border-radius:3px;background:var(--color-base-200)}
/* command center (full view, desktop) */
.ev-cc{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:32px;align-items:start}
.ev-cc-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.ev-cc-side{position:sticky;top:0;display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px;border-left:1px solid var(--app-rule)}
.ev-hero{display:flex;gap:20px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--app-rule)}
.ev-hero .ev-art{width:120px;height:120px}
.ev-hero-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:18px}
.ev-cc-main>.ev-figs{gap:16px 32px}.ev-cc-main>.ev-figs .ev-fig b{font-size:26px;letter-spacing:-.02em}.ev-cc-main>.ev-figs .ev-fig.un b{font-size:var(--app-t-title)}
.ev-cc-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px;align-items:start}
.ev-ww{display:flex;flex-direction:column;gap:6px}.ev-ww .ev-kv{grid-template-columns:88px minmax(0,1fr)}
.sh-drawer[data-width="full"] .db{container-type:inline-size}
@container (max-width:900px){.ev-cc{grid-template-columns:minmax(0,1fr)}.ev-cc-side{position:static;border-left:0;border-top:1px solid var(--app-rule);padding:14px 0 0}.ev-cc-row{grid-template-columns:minmax(0,1fr)}}
/* focus */
.ev-tabs button:focus-visible,.ev-ord:focus-visible,.ev-rel:focus-visible,.ev-plan:focus-visible,.ev-link:focus-visible{outline:2px solid var(--app-focus);outline-offset:2px;border-radius:3px}
.ev-id,.ev-head,.ev-hero,.ev-rv,.ev-sec,.ev-cc,.ev-figs,.ev-tl{flex:none}
/* narrow drawer + phone */
.sh-drawer:not([data-width="full"]) .ev-id-row:first-child>.mut,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id-row:first-child>.mut{flex-basis:100%;order:2;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-drawer:not([data-width="full"]) .ev-id-row>.grow:has(+.ev-link),.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id-row>.grow:has(+.ev-link){order:1}
.sh-drawer:not([data-width="full"]) .ev-id-row>.ev-link,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id-row>.ev-link{order:1;margin-left:auto}
.sh-drawer:not([data-width="full"]) .ev-fig .of,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-fig .of{white-space:normal;line-height:1.25}
.sh-drawer:not([data-width="full"]) .ev-id-row .ev-fresh,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id-row .ev-fresh{flex-basis:100%;white-space:normal;line-height:1.35}
.sh-drawer:not([data-width="full"]) .ev-id-row .grow:has(+.ev-fresh),.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id-row .grow:has(+.ev-fresh){display:none}
.sh-drawer:not([data-width="full"]) .ev-ladder td:first-child b,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ladder td:first-child b{white-space:nowrap}
.sh-drawer:not([data-width="full"]) .ev-ladder :is(th,td):nth-child(2),.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ladder :is(th,td):nth-child(2){width:76px}
.sh-drawer:not([data-width="full"]) .ev-ladder :is(th,td):nth-child(3),.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ladder :is(th,td):nth-child(3){width:44px}
.sh-drawer:not([data-width="full"]) .ev-figs,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-figs{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.sh-drawer:not([data-width="full"]) .ev-ohd,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ohd{display:none}
.sh-drawer:not([data-width="full"]) .ev-ord,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ord{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who amt" "id st";row-gap:2px}
.sh-drawer:not([data-width="full"]) .ev-ord .who,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ord .who{grid-area:who}
.sh-drawer:not([data-width="full"]) .ev-ord .amt,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ord .amt{grid-area:amt}
.sh-drawer:not([data-width="full"]) .ev-ord .id,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ord .id{grid-area:id;font-size:var(--app-t-micro)}
.sh-drawer:not([data-width="full"]) .ev-ord .sh-status,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ord .sh-status{grid-area:st;justify-self:end}
.sh-drawer:not([data-width="full"]) .ev-ord .qty,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ord .qty{display:none}
.sh-drawer:not([data-width="full"]) .ev-rel,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-rel{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"ava who st" "roles roles link";row-gap:6px}
.sh-drawer:not([data-width="full"]) .ev-rel .sh-ava,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-rel .sh-ava{grid-area:ava}
.sh-drawer:not([data-width="full"]) .ev-rel .who,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-rel .who{grid-area:who}
.sh-drawer:not([data-width="full"]) .ev-rel .ev-roles,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-rel .ev-roles{grid-area:roles}
.sh-drawer:not([data-width="full"]) .ev-rel .sh-status.strong,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-rel .sh-status.strong{grid-area:st;justify-self:end}
.sh-drawer:not([data-width="full"]) .ev-rel .sh-status:not(.strong),.sh:is([data-target="mobile"],[data-target="ios"]) .ev-rel .sh-status:not(.strong){grid-area:link;justify-self:end}
.sh-drawer:not([data-width="full"]) .ev-ladder td.alloc,.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ladder td.alloc{width:30%;min-width:84px}
.sh:is([data-target="mobile"],[data-target="ios"]) .ev-kv{grid-template-columns:96px minmax(0,1fr)}
.sh:is([data-target="mobile"],[data-target="ios"]) .ev-id-row .ev-fresh{white-space:normal}
.sh:is([data-target="mobile"],[data-target="ios"]) .ev-ladder td{height:auto;padding:8px var(--app-cell-x)}
.sh:is([data-target="mobile"],[data-target="ios"]) .ev-aud{grid-template-columns:repeat(3,minmax(0,1fr))}
.sh[data-target="ios"] .ev-tabs button{height:44px;font-size:15px}
.sh[data-target="ios"] .ev-ord,.sh[data-target="ios"] .ev-rel,.sh[data-target="ios"] .ev-plan{min-height:52px}
.sh[data-target="ios"] .ev-link,.sh[data-target="ios"] .ev-fresh .sh-btn,.sh[data-target="ios"] .ev-pf .sh-chip{min-height:44px}
.sh[data-target="ios"] .ev-pf .sh-chip{height:36px;font-size:14px}
.sh[data-target="ios"] .ev-fig b{font-size:22px}
.sh[data-target="ios"] .sh-drawer .db{gap:10px}
.sh[data-target="ios"] .ev-tl.compact{padding-top:20px}
.sh[data-target="ios"] .ev-figs{gap:10px 16px}
.sh[data-target="ios"] .ev-tl.compact .k{font-size:10px}

/* ── E. S2 · calendar states ── */
.cal-sync{display:flex;align-items:flex-start;gap:8px;width:100%;min-height:32px;margin-top:8px;padding:8px 10px 6px 14px;box-sizing:border-box;border-top:1px solid var(--app-rule);border-radius:0;font-size:var(--app-t-micro);color:var(--app-ink-muted);text-align:left;white-space:normal;line-height:1.3}
.cal-sync:hover{color:var(--app-ink)}.cal-sync span{flex:1;min-width:0}.cal-sync em{font-style:normal;font-weight:550;color:var(--app-ink);white-space:nowrap}
.cal-sync.fail{color:var(--app-ink)}.cal-sync .sh-dot{flex:none;margin:4px 0 0}
.cal-strip{flex:none;display:flex;align-items:center;gap:8px;min-height:36px;padding:6px var(--app-page-pad);border-bottom:1px solid var(--app-rule);font-size:var(--app-t-label);color:var(--app-ink-muted);background:var(--app-shell-bg)}
.cal-strip span{flex:1;min-width:0}.cal-strip .sh-dot{flex:none;margin:0}.cal-strip .sh-btn{flex:none}
.cal-strip-skel{display:flex;gap:6px;flex:none}.cal-strip-skel i{display:block;width:48px;height:8px;border-radius:3px;background:var(--color-base-300)}
.sh:is([data-target="mobile"],[data-target="ios"]) .cal-strip{padding:6px var(--app-page-pad-mobile)}
.sh-sheet .cal-sync{min-height:44px;font-size:15px;padding:8px 10px;margin-top:4px;border-top:0;border-radius:10px}
.sh[data-target="ios"] .sh-sheet .cal-sync{font-size:15px}
.cal-skel{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:10px 0 10px 10px;border-top:1px solid var(--app-rule)}.cal-skel>i,.cal-skel span i{display:block;height:10px;border-radius:3px;background:var(--color-base-200)}.cal-skel span{display:flex;flex-direction:column;gap:6px}
.sh-tbl .cal-skel{padding:10px var(--app-cell-x)}
.cal-none{display:flex;align-items:center;gap:8px;padding:10px 0 10px 10px;border-top:1px solid var(--app-rule);font-size:var(--app-t-label);color:var(--app-ink-muted)}

/* ── F. S3 · Connect ── */
.con-page{gap:12px}
.con-banner{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--app-inset-panel-bg);font-size:var(--app-t-body);color:var(--app-ink)}.con-banner span{flex:1}
.con-chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px 0 7px;border-radius:999px;border:1px solid var(--app-rule);font-size:var(--app-t-micro);color:var(--app-ink);white-space:nowrap}.con-chip .sh-dot{margin:0}.con-chip[data-s="none"],.con-chip[data-s="soon"]{color:var(--app-ink-muted)}
.con-rows{display:flex;flex-direction:column}
.con-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto 160px 110px;gap:12px;align-items:center;min-height:56px;padding:8px 0;border-top:1px solid var(--app-rule)}
.con-row:first-child{border-top:0}.con-row .who{display:flex;flex-direction:column;min-width:0}.con-row .who b{font-weight:550;color:var(--app-ink)}.con-row .who small{color:var(--app-ink-muted);font-size:var(--app-t-micro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.con-row .last{font-size:var(--app-t-micro);white-space:nowrap}.con-row .act{display:flex;justify-content:flex-end}.con-row .act .sh-btn{min-width:92px;justify-content:center}
.con-row[data-s="attention"],.con-row[data-s="expired"],.con-row[data-s="error"]{border:1px solid color-mix(in oklab,var(--app-state-warn) 40%,transparent);background:color-mix(in oklab,var(--app-state-warn) 4%,transparent);border-radius:var(--app-r-card);padding:8px 10px;margin-top:6px}
.con-row[data-s="expired"],.con-row[data-s="error"]{border-color:color-mix(in oklab,var(--app-state-fail) 40%,transparent);background:color-mix(in oklab,var(--app-state-fail) 4%,transparent)}
.con-row[data-s="attention"]+.con-row,.con-row[data-s="expired"]+.con-row{border-top:0;margin-top:6px}
.con-row[data-s="soon"]{opacity:.7}
.con-note{grid-column:2/-1;margin:0;display:flex;gap:8px;align-items:flex-start;font-size:var(--app-t-label);color:var(--app-ink-body)}.con-note .sh-dot{margin-top:5px}
.con-err{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid color-mix(in oklab,var(--app-state-fail) 40%,transparent);border-radius:var(--app-r-card);background:color-mix(in oklab,var(--app-state-fail) 4%,transparent);color:var(--app-ink)}
.con-err .sh-dot{margin-top:6px}.con-err>div{flex:1;display:flex;flex-direction:column;gap:2px}.con-err b{font-weight:550}.con-err span{font-size:var(--app-t-label);color:var(--app-ink-body)}.con-err.in{margin-top:4px}
.con-ok{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--app-inset-panel-bg);color:var(--app-ink)}.con-ok .sh-dot{margin-top:6px}.con-ok>div{display:flex;flex-direction:column;gap:2px}.con-ok b{font-weight:550}.con-ok span{font-size:var(--app-t-label);color:var(--app-ink-body)}
/* the flow: a modal on desktop, a sheet on the phone */
.con-modal{position:absolute;z-index:6;left:50%;top:56px;transform:translateX(-50%);width:min(480px,calc(100% - 32px));background:var(--app-panel-bg);border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);box-shadow:0 12px 32px oklch(0% 0 0 / .18);padding:16px;display:flex;flex-direction:column;gap:14px}
.sh:is([data-target="mobile"],[data-target="ios"]) .con-modal{left:0;right:0;top:auto;bottom:0;transform:none;width:auto;border:0;border-radius:24px 24px 0 0;box-shadow:0 -.5px 0 color-mix(in oklab,var(--app-ink) 12%,transparent),0 -12px 32px oklch(0% 0 0 / .16);padding:8px 16px 20px}
.con-modal .grab{display:block;width:36px;height:5px;border-radius:3px;background:color-mix(in oklab,var(--app-ink) 22%,var(--color-base-100));margin:0 auto 4px}
.con-fh{display:flex;align-items:center;gap:10px}.con-fh>div{flex:1;display:flex;flex-direction:column}.con-fh b{font:550 var(--app-t-head)/1.3 var(--app-font);color:var(--app-ink)}.con-fh span{font-size:var(--app-t-micro);color:var(--app-ink-muted)}.con-fh .ib{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:var(--app-ink-muted)}
.con-ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:var(--app-t-body);color:var(--app-ink-body)}.con-ul b{font-weight:550;color:var(--app-ink)}
.con-field{display:flex;flex-direction:column;gap:6px;font:550 var(--app-t-label)/1 var(--app-font);color:var(--app-ink)}.con-field input{height:36px;padding:0 10px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-field);background:var(--app-shell-bg);font:400 14px/1 var(--app-font);letter-spacing:.12em;color:var(--app-ink)}.con-field.err input{border-color:var(--app-state-fail)}.con-field small{font:400 var(--app-t-micro)/1.4 var(--app-font);color:var(--app-ink-muted)}.con-field small a{color:var(--app-ink)}
.con-fa{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}.con-fa .sh-btn{min-height:32px}
.con-wait{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:8px 0;font-size:var(--app-t-body);color:var(--app-ink)}.con-wait small{color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.con-spin{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid var(--app-rule-strong);border-top-color:var(--app-ink);animation:con-spin .9s linear infinite;vertical-align:-2px;margin-right:6px}.con-spin.sm{width:10px;height:10px;border-width:1.5px}
@keyframes con-spin{to{transform:rotate(360deg)}}
.con-disc{display:flex;flex-direction:column;gap:10px}
.sh:is([data-target="mobile"],[data-target="ios"]) .con-row{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"m who chip" "m last act";row-gap:6px}
.sh:is([data-target="mobile"],[data-target="ios"]) .con-row .ev-badge{grid-area:m}.sh:is([data-target="mobile"],[data-target="ios"]) .con-row .who{grid-area:who}.sh:is([data-target="mobile"],[data-target="ios"]) .con-row .con-chip{grid-area:chip}.sh:is([data-target="mobile"],[data-target="ios"]) .con-row .last{grid-area:last}.sh:is([data-target="mobile"],[data-target="ios"]) .con-row .act{grid-area:act}.sh:is([data-target="mobile"],[data-target="ios"]) .con-note{grid-column:1/-1}
.sh[data-target="ios"] .con-row{min-height:64px}.sh[data-target="ios"] .con-fa .sh-btn,.sh[data-target="ios"] .con-row .act .sh-btn{min-height:44px}
@media (prefers-reduced-motion:reduce){.con-spin{animation:none}}

.sh[data-target="ios"] .con-field input{height:44px}
.con-link{font:inherit;color:var(--app-ink);text-decoration:underline;text-underline-offset:2px;padding:0;min-height:0}
.sh:is([data-target="mobile"],[data-target="ios"]) .con-row .last:empty{display:none}
.sh:is([data-target="mobile"],[data-target="ios"]) .con-row:has(.last:empty){grid-template-areas:"m who chip" "m act act";}
.sh:is([data-target="mobile"],[data-target="ios"]) .con-row:has(.last:empty) .act{justify-content:flex-start}
/* iOS medium detent is a glance: identity · figures · timeline; the footer action appears at the large detent and on the page */
.sh[data-target="ios"] .sh-drawer[data-detent="medium"] .df{display:none}
