.qr-signin-card{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--bg-2);display:flex;flex-direction:column;align-items:flex-start;gap:12px}.qr-signin-card h4,.qr-signin-card h1,.qr-signin-card p{margin:0}.qr-signin-card p{color:var(--dim);line-height:1.5}.qr-signin-card button{min-height:44px;white-space:normal}.qr-signin-image{width:224px;max-width:100%;height:auto;border-radius:12px;background:white}.qr-match{font-size:36px;letter-spacing:.2em;font-variant-numeric:tabular-nums;color:var(--accent)}.qr-phone{min-height:100dvh;box-sizing:border-box;display:grid;place-items:center;padding:calc(env(safe-area-inset-top) + 24px) 20px calc(env(safe-area-inset-bottom) + 24px);background:var(--bg-0);color:var(--text)}.qr-phone>.qr-signin-card{width:min(100%,420px);box-sizing:border-box;padding:28px;gap:20px}.qr-phone h1{font-size:28px}.qr-signin-card [role=alert]{color:var(--text)}

.qr-signin-launch{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--bg-2);display:flex;flex-direction:column;gap:16px}.qr-signin-launch h4{margin:0 0 8px}.qr-signin-launch p{margin:0;color:var(--dim);line-height:1.5}.qr-signin-launch button{align-self:flex-start;min-height:44px}.qr-dialog-overlay{position:fixed;inset:0;z-index:1800;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));background:#080611b3;backdrop-filter:blur(8px);box-sizing:border-box;overflow:auto}.qr-dialog{width:min(460px,100%);max-height:100%;overflow:auto;background:var(--bg-1);color:var(--text);border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 90px #0007;animation:qr-arrive .2s ease-out}.qr-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line)}.qr-dialog h2{font-size:23px;margin:5px 0 0}.qr-dialog header button{min-width:44px;min-height:44px;font-size:24px}.qr-eyebrow{font-size:10px;letter-spacing:.15em;font-weight:700;color:var(--dim)}.qr-dialog-content{border:0;border-radius:0;background:transparent;padding:24px;align-items:center;text-align:center;gap:20px}.qr-dialog-content .qr-signin-image{width:240px}.qr-login-option{display:flex;flex-direction:column;gap:18px;margin:20px 0}.qr-login-option button{width:100%;min-height:48px}.qr-login-option span{text-align:center;font-size:12px;color:var(--dim)}.qr-camera{position:relative;width:100%;aspect-ratio:1;background:var(--bg-0);border:1px solid var(--line);border-radius:16px;overflow:hidden}.qr-camera video{width:100%;height:100%;object-fit:cover}.qr-camera>span{position:absolute;inset:14%;border:2px solid var(--accent);border-radius:12px;pointer-events:none}.qr-photo{position:relative;display:block;overflow:hidden;min-height:44px;box-sizing:border-box;padding:12px 16px;cursor:pointer}.qr-photo input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.qr-photo:focus-within{outline:2px solid var(--accent);outline-offset:3px}.qr-phone small{color:var(--dim)}@keyframes qr-arrive{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.qr-dialog{animation:none}}

/* The mobile shell fixes body; give scanner screens their own scroll area. */
.qr-phone{height:100dvh;overflow-y:auto;display:flex;flex-direction:column;align-items:center;overscroll-behavior:contain}.qr-phone>.qr-signin-card{flex-shrink:0;margin-block:auto}
.member-activity{display:flex;align-items:center;gap:5px;min-width:0;max-width:100%;margin-top:3px;color:var(--dim);font-size:11px;line-height:15px;user-select:none}.member-activity>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-activity>i{font-size:10px;flex:none;color:var(--accent);opacity:.8}.member-activity.activity-away>i{color:var(--dim)}.member-activity-unavailable{font-size:10px;font-weight:400;color:var(--dim);padding:0 12px 8px}
.message-document-link {
  --link-tint: var(--accent);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  max-width: min(260px, 100%);
  height: 22px;
  padding: 0 7px;
  vertical-align: middle;
  line-height: 18px;
  border: 1px solid color-mix(in srgb, var(--link-tint) 16%, var(--line));
  border-radius: 6px;
  background: color-mix(in srgb, var(--link-tint) 7%, var(--bg-1));
  color: var(--text);
  text-decoration: none;
  white-space: nowrap;
  user-select: none;
  transition: border-color 140ms ease, background 140ms ease;
}
.message-document-link.is-whiteboard { --link-tint: var(--teal); }
.message-document-link.is-chart { --link-tint: var(--blue); }
.message-document-link:hover {
  border-color: color-mix(in srgb, var(--link-tint) 50%, var(--line));
  background: color-mix(in srgb, var(--link-tint) 13%, var(--bg-1));
  text-decoration: none;
}
.message-document-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.message-document-link .mdl-icon {
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 13px; color: var(--link-tint); font-size: 11px;
}
.message-document-link .mdl-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 550; line-height: 18px; }
.message-document-link .mdl-arrow { flex: 0 0 auto; margin-left: 1px; font-size: 9px; color: var(--dim); opacity: .7; }
.message-document-link:hover .mdl-arrow { color: var(--link-tint); }
@media (prefers-reduced-motion: reduce) { .message-document-link { transition: none; } }
.composer-writing-area { grid-column: 1 / -1; grid-row: 1; min-width: 0; }
.composer-writing-area textarea { display: block; }
.composer-link-preview {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 5px 6px 3px;
  min-width: 0;
  user-select: none;
}
.composer-link-preview-label, .composer-link-preview-more {
  flex: 0 0 auto;
  font-size: 11px;
  line-height: 22px;
  color: var(--dim);
}
.composer-link-preview-items {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  min-width: 0;
  max-height: 84px;
  overflow-y: auto;
  padding: 3px;
  margin: -3px;
}
.composer-link-preview-items .message-document-link { flex: 0 1 auto; }

.emoji-studio-overlay{position:fixed;inset:0;z-index:1600;display:flex;align-items:center;justify-content:center;padding:24px;background:#090710aa;backdrop-filter:blur(8px);animation:es-fade .18s ease-out}.emoji-studio-modal{width:min(1100px,100%);height:min(850px,calc(100dvh - 48px));min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 100px #0006;animation:es-enter .24s cubic-bezier(.2,.8,.2,1);background:var(--bg-1);color:var(--text)}.emoji-studio-overlay.is-closing{animation:es-fade .16s ease-in reverse both}.is-closing .emoji-studio-modal{animation:es-enter .16s ease-in reverse both}
.emoji-studio{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;font-size:13px}.emoji-studio button{font:inherit;cursor:pointer;color:var(--text);border:1px solid var(--line);background:var(--bg-2);border-radius:9px;padding:8px 12px;transition:background .16s,border-color .16s,transform .16s}.emoji-studio button:hover{background:var(--bg-3)}.emoji-studio button:disabled{opacity:.45;cursor:default}.emoji-studio button:focus-visible,.emoji-studio input:focus-visible,.es-open-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.emoji-studio a{color:var(--accent)}
.es-header{display:flex;align-items:center;gap:16px;padding:24px 28px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 10% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%)}.es-brand-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;font-size:32px;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-2));rotate:-8deg}.es-header small{font-size:10px;letter-spacing:.13em;color:var(--dim);font-weight:700}.es-header h2{margin:4px 0;font-size:25px;letter-spacing:-.6px}.es-header p{margin:4px 0 0;color:var(--dim)}.es-header .es-close{margin-left:auto;width:36px;height:36px;font-size:22px;padding:0}
.es-tabs{display:flex;gap:4px;align-items:center;padding:10px 24px;border-bottom:1px solid var(--line)}.es-tabs button{border-color:transparent;background:transparent;font-weight:650}.es-tabs [aria-pressed=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-2))}.es-tabs>span{margin-left:auto;color:var(--dim);font-size:11px}.es-body{display:grid;grid-template-columns:minmax(0,1fr) 292px;min-height:0;flex:1}.es-browse{min-width:0;min-height:0;display:flex;flex-direction:column;padding:20px;gap:14px}.es-sources{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.es-sources button{text-align:left;padding:10px;min-width:0}.es-sources strong,.es-sources small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.es-sources strong{font-size:12px}.es-sources small{font-size:10px;color:var(--dim);margin-top:5px}.es-sources [aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--bg-2))}
.es-search{display:flex;align-items:center;gap:10px}.es-search>i{color:var(--dim)}.es-search>input{min-width:0;flex:1;width:100%;border:1px solid var(--line);background:var(--bg-2);border-radius:10px;height:38px;box-sizing:border-box;padding:0 12px;color:var(--text);font:inherit}.es-search>.kp-select{max-width:180px}.es-result-label{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);gap:8px}.es-result-label small{font-size:10px}.es-grid-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:3px 4px 5px 3px}.es-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:9px}.emoji-studio .es-tile{padding:10px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;border-color:transparent;background:color-mix(in srgb,var(--bg-2) 70%,transparent)}.es-tile:hover{transform:translateY(-2px)}.emoji-studio .es-tile[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-2))}.es-tile>span:not(.emoji-studio-art){font-size:10px;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.es-tile>small{font-size:9px;color:var(--dim)}.emoji-studio-art{position:relative;width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.emoji-studio-art img,.emoji-studio-art canvas{display:block;object-fit:contain;width:100%;height:100%;image-rendering:auto}.emoji-studio-art.large{width:128px;height:128px}.emoji-art-missing{font-size:36px;color:var(--dim)}.emoji-studio-art.large>button{position:absolute;bottom:-12px;font-size:10px;white-space:nowrap}
.es-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:12px;color:var(--dim);font-size:10px}.es-pagination button{font-size:11px;padding:7px 10px}.es-inspector{border-left:1px solid var(--line);padding:20px;min-height:0;overflow:auto;background:color-mix(in srgb,var(--bg-0) 45%,var(--bg-1));display:flex;flex-direction:column}.es-preview-stage{min-height:174px;flex-shrink:0;border:1px solid var(--line);border-radius:18px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%),var(--bg-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:8px}.es-preview-stage .composer-send-switch{border:none;background:transparent;font-size:10px;display:flex;align-items:center;gap:8px;padding:3px}.emoji-studio .composer-switch-track{display:inline-block;position:relative;background:var(--bg-3);width:27px;height:15px;border-radius:10px;border:1px solid var(--line)}.emoji-studio .composer-switch-track>span{position:absolute;top:2px;left:2px;width:9px;height:9px;border-radius:50%;background:var(--dim);transition:transform .16s}.emoji-studio [aria-checked=true] .composer-switch-track{background:var(--accent)}.emoji-studio [aria-checked=true] .composer-switch-track>span{transform:translateX(12px);background:var(--bg-1)}
.es-inspector h3{font-size:17px;margin:18px 0 4px;overflow-wrap:anywhere;text-transform:capitalize}.es-byline{font-size:11px;color:var(--dim);margin:0 0 20px}.es-shortcut{display:block;font-size:11px;font-weight:600}.es-shortcut>div{display:flex;align-items:center;gap:3px;border:1px solid var(--line);background:var(--bg-2);padding:8px 10px;border-radius:10px;margin-top:7px}.es-shortcut input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font:13px monospace;padding:0}.es-shortcut>div:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.es-hint,.es-field-error{font-size:10px;line-height:1.5;color:var(--dim);margin:6px 0 0}.es-field-error{color:#f399ab}.es-chat-preview{display:flex;gap:9px;padding:14px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;margin:18px 0}.es-preview-avatar{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border-radius:50%;background:var(--bg-3);color:var(--accent);font-weight:700}.es-chat-preview strong{font-size:10px}.es-chat-preview strong small{font-size:8px;color:var(--dim);font-weight:400}.es-chat-preview p{font-size:11px;display:flex;align-items:center;gap:5px;margin:6px 0}.es-chat-preview .emoji-studio-art{width:22px;height:22px}.es-reaction-preview{display:inline-flex;gap:5px;align-items:center;font-size:10px;border:1px solid var(--accent);padding:3px 6px;border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,var(--bg-2))}.es-reaction-preview .emoji-studio-art{width:16px;height:16px}
.es-import-actions{display:flex;flex-direction:column;gap:7px}.emoji-studio .es-primary{background:var(--accent);color:var(--bg-0);font-weight:750;border-color:transparent;padding:11px 14px;box-shadow:0 4px 20px color-mix(in srgb,var(--accent) 15%,transparent)}.emoji-studio .es-primary:hover{filter:brightness(1.08)}.emoji-studio .es-remove{border:none;background:transparent;color:var(--dim);font-size:10px}.es-credit{font-size:10px;color:var(--dim);line-height:1.6;margin:16px 0 0}.es-success{position:relative;font-size:11px;color:var(--accent);padding:12px 0;overflow:hidden;animation:es-bump .35s ease-out}.es-success:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#ffffff44,transparent 65%);animation:es-sheen .7s ease-out both;pointer-events:none}
.es-inspector-empty{margin:auto 0;text-align:center;padding:24px 0}.es-inspector-empty>div{font-size:70px;color:var(--accent);rotate:-12deg}.es-inspector-empty h3{font-size:24px;line-height:1.2;text-transform:none;letter-spacing:-.5px}.es-inspector-empty p{line-height:1.6;font-size:12px;color:var(--dim);margin:16px 0 22px}.es-inspector-empty>span{padding:8px 10px;border:1px dashed var(--line);border-radius:8px;font:10px monospace;color:var(--dim)}.es-error{padding:10px 24px;background:color-mix(in srgb,#e3688b 12%,var(--bg-2));font-size:12px}.es-error button{margin-left:10px;padding:3px 8px}.es-footnote{border-top:1px solid var(--line);padding:9px 24px;font-size:10px;color:var(--dim);display:flex;justify-content:space-between}.es-drop{padding:28px 16px!important;text-align:center;border-style:dashed!important;background:transparent!important}.es-drop>span{display:block;font-size:32px;color:var(--accent);margin-bottom:10px}.es-drop>strong{font-size:16px}.es-drop p{font-size:12px;color:var(--dim)}.es-drop small{font-size:10px;color:var(--dim)}.es-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 20px;gap:8px;min-height:180px}.es-empty>span{font-size:40px;color:var(--accent)}.es-empty strong{font-size:17px}.es-empty p{color:var(--dim);font-size:12px;line-height:1.6}.es-skeleton{min-height:100px;border-radius:12px;background:linear-gradient(110deg,var(--bg-2) 25%,var(--bg-3) 45%,var(--bg-2) 65%);background-size:250% 100%;animation:es-load 1.5s infinite}.es-work-status{color:var(--dim);font-size:12px}.es-mobile-back{display:none}
.es-open-button{display:block;width:100%;padding:11px;border:0;border-top:1px solid var(--line);background:var(--bg-2);color:var(--accent);font:inherit;font-size:12px;font-weight:600;cursor:pointer;border-radius:0 0 10px 10px}.es-settings-launch{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--bg-2)}.es-settings-launch h3{margin-top:0}.es-settings-launch p{color:var(--dim);line-height:1.6}
@keyframes es-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes es-fade{from{opacity:0}to{opacity:1}}@keyframes es-load{to{background-position:-150% 0}}@keyframes es-bump{0%{transform:scale(.97);opacity:0}70%{transform:scale(1.02)}100%{transform:scale(1);opacity:1}}@keyframes es-sheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:760px){.emoji-studio-overlay{padding:8px}.emoji-studio-modal{height:calc(100dvh - 16px);border-radius:16px}.es-header{padding:16px;gap:12px}.es-header h2{font-size:22px}.es-brand-mark{width:42px;height:42px;font-size:26px;border-radius:13px}.es-header p{font-size:11px}.es-tabs{padding:8px;gap:2px}.es-tabs button{font-size:11px;padding:8px}.es-tabs>span{display:none}.es-body{position:relative;display:flex;flex-direction:column}.es-browse{flex:1;padding:12px;gap:10px}.es-sources{gap:5px;grid-template-columns:repeat(2,minmax(0,1fr))}.es-sources button{padding:8px}.es-sources small{display:none}.es-search{flex-wrap:wrap;gap:6px}.es-search>input{flex-basis:55%}.es-search>i{display:none}.es-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.es-grid .emoji-studio-art{width:52px;height:52px}.es-inspector{display:none}.es-inspector.has-choice{display:flex;position:absolute;inset:0;z-index:5;background:var(--bg-1);border:0;padding:16px 24px;animation:es-enter .18s ease-out}.es-mobile-back{display:block;align-self:flex-start;margin-bottom:12px}.es-preview-stage{min-height:140px}.es-inspector h3{margin-top:12px}.es-byline{margin-bottom:12px}.es-preview-stage .emoji-studio-art.large{width:104px;height:104px}.es-chat-preview{margin:12px 0}.es-footnote{padding:8px 12px;font-size:9px}.es-result-label small{display:none}.es-credit{margin-top:12px}.es-error{padding:8px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.emoji-studio-overlay,.emoji-studio-modal,.es-inspector.has-choice,.es-skeleton,.es-success,.es-success:after{animation:none!important}.emoji-studio button,.emoji-studio .composer-switch-track>span{transition:none}.es-tile:hover{transform:none}}

.es-sources{grid-template-columns:repeat(5,minmax(0,1fr))}.es-provider-note{font-size:11px;color:var(--dim);padding:8px 10px;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:8px}.es-provider-note button{margin-left:auto}.es-report{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:11px}.es-report>button{background:transparent;border:0;color:var(--dim);padding:4px 0}.es-report p{color:var(--dim);line-height:1.5}.es-report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.es-reports{overflow:auto;min-height:0;padding:2px 4px}.es-reports-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.es-reports h3{margin:0}.es-reports p{color:var(--dim);font-size:12px;line-height:1.5}.es-reports article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 12px;border:1px solid var(--line);border-radius:12px;margin:8px 0;background:var(--bg-2)}.es-reports article strong{overflow-wrap:anywhere}.es-reports article p{margin:5px 0}.es-reports article a{font-size:11px}.es-reports .es-empty{padding:24px 12px}
@media(max-width:760px){.es-sources{display:flex;overflow-x:auto;flex-shrink:0;padding:2px 2px 6px}.es-sources button{min-width:116px;flex-shrink:0}.es-tabs{flex-wrap:wrap}.es-reports article{align-items:flex-start;flex-direction:column}.es-provider-note{font-size:10px}.es-footnote{line-height:1.4}}

.es-reports-body{grid-template-columns:minmax(0,1fr)}.es-reports-body .es-inspector{display:none}.es-reports-body .es-reports{width:100%;max-width:900px;align-self:center;box-sizing:border-box}

.es-body{grid-template-columns:minmax(0,1fr) 340px}.es-reports-body{grid-template-columns:minmax(0,1fr)}
.es-chat-preview{gap:12px;padding:16px 12px}.es-preview-avatar{width:40px;height:40px;font-size:16px}
.es-chat-preview>div:last-child{min-width:0}.es-chat-preview strong{font-size:14px;font-weight:650;line-height:1.4}.es-chat-preview strong small{font-size:11px;margin-left:6px;white-space:nowrap}
.es-chat-preview p{font-size:16px;line-height:1.6;margin:4px 0 8px;flex-wrap:wrap;gap:6px}.es-chat-preview .cemoji-frame{height:1.4em;width:calc(1.4em * var(--emoji-aspect,1))}
.es-chat-preview .es-reaction-preview{display:inline-flex;font-size:20px;gap:5px;padding:3px 10px;border-radius:12px;line-height:1.3}
.es-chat-preview .es-reaction-preview .cemoji-frame{height:24px;width:calc(24px * var(--emoji-aspect,1))}.es-reaction-preview .cnt{font-size:13px;font-weight:600;color:var(--dim)}
@media(max-width:760px){.es-chat-preview{padding:14px 10px}.es-preview-avatar{width:32px;height:32px}.es-inspector.has-choice{padding-left:18px;padding-right:18px}}

/* Keep the studio entry point reachable independently of the emoji grid. */
.emoji-popover{display:flex;flex-direction:column;overflow:hidden;background:var(--bg-2)}
.emoji-picker-body{flex:1;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain}
.emoji-picker-body>div{height:100%;min-height:0}
.emoji-picker-body em-emoji-picker{width:100%;height:100%;min-height:0;max-width:100%}
.emoji-popover>.es-open-button{flex:none;min-height:42px;box-sizing:border-box;white-space:normal}

/* The studio lives inside the visible viewport, below iOS system chrome. */
.emoji-studio-overlay{top:var(--es-vv-top,0px);left:var(--es-vv-left,0px);right:auto;bottom:auto;width:var(--es-vv-width,100vw);height:var(--es-vv-height,100dvh);box-sizing:border-box;padding:max(24px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px))}
.emoji-studio-modal{height:min(850px,100%);max-height:100%;box-sizing:border-box}
.es-header,.es-tabs,.es-footnote,.es-search,.es-result-label,.es-pagination{flex-shrink:0}.es-footer-mobile{display:none}
@media(max-width:760px){
 .emoji-studio-overlay{padding:calc(max(0px,env(safe-area-inset-top,0px) - var(--es-vv-top,0px)) + 8px) max(8px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 8px) max(8px,env(safe-area-inset-left,0px));backdrop-filter:blur(5px)}
 .emoji-studio-modal{height:100%;width:100%;border-radius:20px}
 .es-header{padding:8px 12px;gap:10px}.es-header small,.es-header p{display:none}.es-header h2{font-size:20px;margin:0;letter-spacing:-.4px}.es-brand-mark{width:32px;height:32px;font-size:22px;border-radius:10px}.es-header .es-close{width:44px;height:44px;flex-shrink:0;background:transparent;border-color:transparent;font-size:26px}
 .es-tabs{padding:4px 8px;flex-wrap:nowrap;gap:2px;overflow-x:auto}.es-tabs button{min-height:44px;padding:8px;font-size:12px;white-space:nowrap;flex-shrink:0}
 .es-browse{padding:10px;gap:10px}.es-sources{gap:6px;padding-bottom:2px;scrollbar-width:none}.es-sources button{min-width:0;min-height:40px;padding:8px 12px;border-radius:20px}.es-sources strong{font-size:12px}
 .es-search{flex-wrap:nowrap;gap:8px}.es-search>input{flex:1;min-width:0;font-size:16px;height:44px;flex-basis:0}.es-search>.kp-select{max-width:140px}.es-search .kp-select-trigger{min-height:44px}.es-result-label{font-size:11px;padding-inline:2px}
 .es-grid{gap:8px}.emoji-studio .es-tile{padding:12px 6px 10px;border-radius:12px}.es-tile>span:not(.emoji-studio-art){font-size:11px}.es-tile>small{font-size:10px}
 .es-pagination{padding-top:8px;font-size:11px}.es-pagination button{min-height:44px;padding:8px 10px}
 .es-footnote{min-height:32px;padding:6px 12px;align-items:center;gap:12px;font-size:11px}.es-footer-description{display:none}.es-footer-mobile{display:inline}.es-footnote a{white-space:nowrap}
 .has-selection .es-tabs{display:none}.es-inspector.has-choice{padding:0 16px 16px;overscroll-behavior:contain;scroll-padding:60px 0 80px;-webkit-overflow-scrolling:touch}
 .es-mobile-back{position:sticky;top:0;z-index:2;min-height:44px;align-self:stretch;text-align:left;margin:0 -4px 10px;padding:10px 4px!important;background:var(--bg-1)!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important}
 .es-shortcut input{font-size:16px;min-height:24px}.es-import-actions{position:sticky;bottom:0;z-index:1;padding:10px 0;background:var(--bg-1);border-top:1px solid var(--line)}.es-import-actions button{min-height:44px}
 .emoji-studio-overlay[data-keyboard=true]{padding-bottom:8px}.emoji-studio-overlay[data-keyboard=true] .es-tabs,.emoji-studio-overlay[data-keyboard=true] .es-sources,.emoji-studio-overlay[data-keyboard=true] .es-pagination,.emoji-studio-overlay[data-keyboard=true] .es-footnote{display:none}
}
.build-station{--build-good:var(--success,#57ce9d);--build-warn:var(--warning,#efc16b);--build-bad:var(--danger,#f27d8d);--build-tone:var(--build-good);position:relative;flex-shrink:0;margin:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 8%,var(--bg-2)),var(--bg-2));box-shadow:0 6px 22px #00000010;user-select:none;animation:build-arrive .35s ease both;color:var(--text);font-size:11px}
.build-station .tone-good,.build-station.tone-good{--build-tone:var(--build-good)}.build-station .tone-warn,.build-station.tone-warn{--build-tone:var(--build-warn)}.build-station .tone-bad,.build-station.tone-bad{--build-tone:var(--build-bad)}.build-station .tone-offline,.build-station.tone-offline{--build-tone:var(--dim)}
.build-station button{font:inherit;color:inherit;cursor:pointer}.build-station button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.build-station-main{display:block;width:100%;padding:0;text-align:left;border:0;background:none}.build-station-eyebrow{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:10px;letter-spacing:.09em;font-weight:750}.build-station-eyebrow i{color:var(--accent);margin-right:4px}.build-mode{font-size:8px;letter-spacing:.06em;color:var(--dim);padding:3px 5px;border:1px solid var(--line);border-radius:5px}
.build-station-summary{display:flex;align-items:center;gap:10px;margin:14px 0 12px}.build-orbit{width:52px;height:52px;flex-shrink:0;position:relative;color:var(--build-tone);transition:color .4s}.build-orbit svg{width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:3}.build-orbit-track{stroke:var(--line)}.build-orbit-value{stroke:currentColor;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.2,.8,.2,1),stroke .4s}.build-orbit>span{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:750;font-variant-numeric:tabular-nums}.build-orbit.indeterminate svg{animation:build-spin 3s linear infinite}.build-station-title{min-width:0;flex:1}.build-station-title strong{display:block;font-size:13px;font-weight:700;line-height:1.4}.build-station-title small{display:block;font-size:10px;line-height:1.6;color:var(--dim);font-variant-numeric:tabular-nums}.build-expand{font-size:8px;color:var(--dim)}.build-stage-caption{color:var(--dim);font-size:10px;line-height:1.4;margin:-3px 0 12px}
.build-telemetry{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:10px;color:var(--dim)}.build-health{display:flex;align-items:center;gap:5px;color:var(--build-tone)}.build-health b{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 7px color-mix(in srgb,currentColor 25%,transparent)}.build-telemetry>span:last-child i{margin-right:3px}.build-storage{height:3px;background:var(--line);border-radius:5px;overflow:hidden;margin:8px 0}.build-storage span{display:block;height:100%;background:color-mix(in srgb,var(--accent) 55%,var(--dim));transition:width 1s ease;border-radius:5px}.build-storage.low span{background:var(--build-bad)}.build-resource-row{display:flex;justify-content:space-between;color:var(--dim);font-size:9px;font-variant-numeric:tabular-nums}.build-resource-row b{font-weight:550;color:var(--text)}
.build-station-details{max-height:290px;overflow-y:auto;overscroll-behavior:contain;padding-top:14px;margin-top:12px;border-top:1px solid var(--line);animation:build-arrive .22s ease}.build-detail-heading{font-size:9px;font-weight:750;letter-spacing:.05em}.build-detail-heading span{display:block;font-weight:400;color:var(--dim);margin-top:3px}.build-station-details p{color:var(--dim);font-size:11px;line-height:1.6;margin:10px 0}.build-detail-facts span{display:flex;justify-content:space-between;gap:5px;margin:6px 0;color:var(--dim)}.build-detail-facts b{font-weight:500;color:var(--text);max-width:65%;overflow:hidden;text-overflow:ellipsis}.build-copy{display:flex;justify-content:space-between;width:100%;background:var(--bg-3);border:1px solid var(--line);border-radius:7px;padding:7px 9px;margin:10px 0 15px}.build-history{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.build-history i{color:var(--build-tone)}.build-history small{display:block;color:var(--dim);margin-top:3px;font-size:9px}.build-schedule{color:var(--dim);font-size:9px;line-height:1.5;margin-top:10px}
.build-toast{position:absolute;bottom:calc(100% + 10px);left:-8px;right:-8px;display:flex;align-items:center;gap:9px;border:1px solid color-mix(in srgb,var(--build-tone) 40%,var(--line));border-radius:12px;padding:12px 10px;background:var(--bg-2);box-shadow:0 8px 30px #0004;z-index:20;animation:build-toast-in .45s cubic-bezier(.16,1,.3,1) both,build-toast-out .4s ease 7.6s forwards}.build-toast>i{color:var(--build-tone);font-size:18px}.build-toast span{flex:1}.build-toast strong{display:block;font-size:11px}.build-toast small{display:block;color:var(--dim);font-size:10px;line-height:1.5;margin-top:3px}.build-toast button{border:0;background:none;font-size:19px;color:var(--dim);padding:3px}.build-stale-note{border-left:2px solid var(--build-warn);padding-left:8px}
@keyframes build-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes build-toast-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes build-spin{to{transform:rotate(270deg)}}
@media(prefers-reduced-motion:reduce){.build-station,.build-station *{animation:none!important;transition:none!important}}

@keyframes build-toast-out{to{opacity:0;transform:translateY(-4px)}}
.build-monitor-notice{display:flex;gap:7px;align-items:center;padding:9px;margin:0 0 12px;border:1px solid color-mix(in srgb,var(--build-tone) 40%,var(--line));border-radius:8px;color:var(--build-tone);background:color-mix(in srgb,var(--build-tone) 7%,var(--bg-2));font-size:10px;animation:build-arrive .25s ease}
.build-monitor-details{margin-top:12px}.build-maintenance-controls{padding:10px 0;border-bottom:1px solid var(--line)}.build-maintenance-controls label{display:block;font-size:10px;color:var(--dim)}.build-maintenance-controls input{display:block;box-sizing:border-box;width:100%;margin:6px 0 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg-3);color:var(--text);padding:8px;font-size:11px;user-select:text}.build-maintenance-controls button:disabled{opacity:.5;cursor:default}
@media(prefers-reduced-motion:reduce){.build-monitor-notice{animation:none}}

/* A single scrolling status page inside the mobile channel dialog. */
.mobile-channel-dialog.builds{width:100%;max-width:none;height:var(--studio-viewport-height,100dvh);max-height:none;margin:0;top:var(--studio-viewport-top,0px);border:0;border-radius:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);box-sizing:border-box;overflow:hidden;user-select:none}
.mobile-channel-dialog.builds .mobile-channel-page{height:100%}
.mobile-build-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 0 12px}
.mobile-build-content>p{padding:20px}
.build-station-mobile{font-size:13px;padding:16px;margin:12px;border-radius:18px}
.build-station-mobile .build-station-details{max-height:none;overflow:visible}
.build-station-mobile .build-station-title strong{font-size:17px}
.build-station-mobile .build-station-title small,.build-station-mobile .build-stage-caption,.build-station-mobile .build-telemetry,.build-station-mobile .build-resource-row,.build-station-mobile .build-monitor-notice,.build-station-mobile .build-detail-heading,.build-station-mobile .build-history small,.build-station-mobile .build-schedule,.build-station-mobile .build-maintenance-controls label{font-size:12px}
.build-station-mobile .build-station-details p{font-size:13px;overflow-wrap:anywhere}
.build-station-mobile .build-copy,.build-station-mobile .kp-select-trigger{min-height:44px}
.build-station-mobile .build-maintenance-controls input{font-size:16px;min-height:44px}
.build-station-mobile .build-toast{position:sticky;top:0;left:auto;right:auto;bottom:auto;margin-bottom:16px}
.build-station-mobile .build-toast button{min-width:44px;min-height:44px}
.build-station-mobile .build-toast strong{font-size:13px}
.build-station-mobile .build-toast small{font-size:12px}
.mobile-channel-dialog.builds header button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.mobile-channel-dialog.builds .mobile-channel-page{animation:none}}

.build-station{position:relative}.build-fullscreen-entry{position:absolute;right:10px;top:7px;width:28px;height:28px;display:grid;place-items:center;z-index:1;border:1px solid var(--line);border-radius:8px;color:var(--dim);background:var(--bg-2);cursor:pointer;transition:color .15s,background .15s,transform .15s}.build-fullscreen-entry:hover{color:var(--text);background:var(--bg-3);transform:scale(1.06)}.build-station-eyebrow{padding-right:30px}
.build-display-shell{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden}.build-display-shell::backdrop{background:#17152a}
.build-display{--bg-1:#1b1931;--bg-2:#23203e;--line:#534570;--text:#f8f6ff;--dim:#c8ade8;--accent:#c99bfa;--mint:#27e6b4;--coral:#ff787e;--amber:#f6c962;--state:var(--accent);--bd-unit:min(1vw,1.77777778dvh);position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:radial-gradient(ellipse at 65% 10%,#24203d 0%,var(--bg-1) 70%);color:var(--text);font:500 clamp(15px,calc(var(--bd-unit)*1.48),58px)/1.35 'Inter',system-ui,sans-serif;box-sizing:border-box;overflow:hidden;user-select:none;font-variant-numeric:tabular-nums;animation:bd-enter .18s ease-out}
.build-display{display:grid;grid-template-rows:9% 53% 18% 20%}.build-display::backdrop{background:#17152a}.build-display *{box-sizing:border-box}.build-display .good{color:var(--mint)}.build-display .warn{color:var(--amber)}.build-display .bad{color:var(--coral)}.build-display .active{color:var(--accent)}.build-display .muted{color:var(--dim)}.build-display.bd-good{--state:var(--mint)}.build-display.bd-bad{--state:var(--coral)}.build-display.bd-warn{--state:var(--amber)}.build-display.bd-muted{--state:var(--dim)}.build-display h1,.build-display h2,.build-display p{margin:0}.build-display h2{font-size:.68em;letter-spacing:.19em;font-weight:750}.build-display small{font-size:.65em;color:var(--dim)}.build-display button:focus-visible,.bd-pips span:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.bd-header{display:flex;align-items:center;gap:1em;padding:0 3.7%;border-bottom:1px solid var(--line);position:relative}.bd-brand{display:flex;align-items:center;gap:1.1em;white-space:nowrap}.bd-brand>i{font-size:1.7em;color:var(--accent)}.bd-brand>strong{font-size:1.6em;letter-spacing:-.025em;font-weight:850}.bd-brand>span{padding-left:1.4em;border-left:1px solid var(--line);color:var(--dim);font-size:.77em;letter-spacing:.22em}.bd-host{display:flex;align-items:center;justify-content:flex-end;gap:1.1em;margin-left:auto;white-space:nowrap;font-size:.8em;padding-right:1.7em}.bd-host>span{color:var(--dim)}.bd-status{border-left:1px solid var(--line);padding-left:1.1em;display:flex;gap:.7em;align-items:center}.bd-exit{position:absolute;right:.65%;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--dim);border-radius:.4em;width:1.8em;height:1.8em;font-size:.9em;opacity:.45;cursor:pointer;transition:opacity .15s,background .15s}.bd-exit:hover,.bd-exit:focus-visible{opacity:1;background:#ffffff12}
.bd-main{display:grid;grid-template-columns:67% 33%;padding:calc(var(--bd-unit)*1.6) 3.7% calc(var(--bd-unit)*1.4);min-height:0}.bd-build{min-width:0;padding-right:3.7%;display:flex;flex-direction:column;justify-content:space-between;gap:.55em}.bd-headline{display:flex;align-items:center;gap:1.55em;min-height:4.1em}.bd-headline>div{min-width:0}.bd-headline h1{font-size:clamp(28px,calc(var(--bd-unit)*4.85),188px);line-height:1.1;letter-spacing:-.04em;font-weight:850;text-wrap:balance}.bd-headline p{font-size:1.05em;color:var(--dim);font-weight:650;margin-top:.2em}.bd-state-icon{flex-shrink:0;width:3.4em;height:3.4em;border:.23em solid var(--state);border-radius:50%;display:grid;place-items:center;color:var(--state);font-size:1em}.bd-state-icon>i{font-size:1.65em}.bd-state-icon.is-active{border:0;font-size:1.1em}.bd-state-icon.is-active>i{font-size:3em;animation:bd-spin 3s linear infinite}.bd-build-detail{min-height:0}.bd-progress-caption{display:flex;justify-content:space-between;align-items:baseline;gap:1em;color:var(--dim);margin-bottom:.35em;font-size:.85em}.bd-progress-caption strong{font-size:1.95em;font-weight:850;color:var(--text)}.bd-progress{height:1.05em;background:#4a3e68;border-radius:1em;overflow:hidden}.bd-progress>b{height:100%;display:block;background:linear-gradient(90deg,#b994ed,var(--accent));border-radius:inherit;transition:width .6s ease}.bd-progress.indeterminate>b{width:22%;animation:bd-sweep 2.4s ease-in-out infinite}.bd-timing{display:flex;justify-content:space-between;align-items:baseline;color:var(--dim);font-size:.85em;margin-top:.5em}.bd-timing strong{color:var(--text);font-size:1.25em;margin-right:.3em}.bd-state-note{border-left:2px solid var(--state);padding:.3em 0 .3em 1.1em}.bd-state-note h2{font-size:1.2em;letter-spacing:0;margin-bottom:.2em}.bd-state-note p{font-size:.82em;color:var(--dim);max-width:44em}.bd-failure{border:1px solid var(--coral);background:#ff787e0b;border-radius:.5em;padding:.6em 1em}.bd-failure>span{color:var(--coral);font-weight:750;text-transform:uppercase;letter-spacing:.12em;font-size:.7em}.bd-failure h2{font-size:1.32em;line-height:1.22;letter-spacing:-.015em;margin:.2em 0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bd-failure p{font-size:.8em;color:var(--dim)}
.bd-pipeline{list-style:none;display:flex;justify-content:space-between;padding:0;margin:.2em 0 0;gap:0}.bd-pipeline li{position:relative;flex:1;text-align:center;font-size:.78em;display:flex;flex-direction:column;align-items:center;color:var(--dim)}.bd-pipeline li:before{content:'';height:.16em;background:#594a78;position:absolute;top:1.18em;right:calc(50% + 1.55em);width:calc(100% - 3.1em)}.bd-pipeline li:first-child:before{display:none}.bd-pipeline li.done+li.done:before,.bd-pipeline li.done+li.current:before,.bd-pipeline li.done+li.failed:before{background:var(--mint)}.bd-pipeline li>span{border:.15em solid #806b9e;width:2.55em;height:2.55em;border-radius:50%;display:grid;place-items:center;margin-bottom:.25em}.bd-pipeline li.pending>span>i,.bd-pipeline li.unknown>span>i{visibility:hidden}.bd-pipeline li.done>span{background:var(--mint);border-color:var(--mint);color:#202039}.bd-pipeline li.current>span{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 .16em #c99bfa25}.bd-pipeline li.failed>span{background:var(--coral);border-color:var(--coral);color:#202039}.bd-pipeline li.failed b{color:var(--coral)}.bd-pipeline li.stopped>span{color:var(--amber);border-color:var(--amber)}.bd-pipeline small{min-height:1.35em;font-size:.6em}.bd-pipeline .stale{opacity:.6}.bd-last-ready{display:flex;align-items:center;gap:.7em;font-size:.73em;min-height:1.5em;color:var(--dim)}.bd-last-ready>i{font-size:1.3em;color:var(--mint)}.bd-last-ready b{color:var(--text)}
.bd-machine{border-left:1px solid var(--line);padding-left:8%;display:flex;flex-direction:column;justify-content:space-between;gap:.3em}.bd-machine h2{font-size:.85em}.bd-metric>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:.8em}.bd-metric span{font-size:.76em;letter-spacing:.05em;color:var(--dim)}.bd-metric strong{font-size:1.22em;font-weight:800}.bd-meter{height:.9em;border-radius:1em;background:#3c3458;margin-top:.3em;overflow:hidden}.bd-meter b{height:100%;display:block;border-radius:inherit;background:var(--accent);transition:width .7s ease}.bd-metric:nth-of-type(1) .bd-meter b{background:var(--mint)}.bd-throughput{font-size:.62em;color:var(--dim);border-top:1px solid var(--line);margin-top:.4em;padding-top:.35em}.bd-disk{display:flex;gap:.8em;align-items:center;font-weight:750;font-size:1.04em}.bd-disk>i{color:var(--accent)}.bd-freshness{font-size:.57em!important}
.bd-context{border-block:1px solid var(--line);padding:calc(var(--bd-unit)*1.4) 3.7%;display:grid;grid-template-columns:33% 27% 19% 21%;align-items:stretch;min-height:0}.bd-context>div{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:0 10%;border-left:1px solid var(--line)}.bd-context>div:first-child{border-left:0;padding:0 10% 0 0}.bd-context>div:nth-child(n+3){align-items:center;text-align:center;padding:0 5%}.bd-context strong{font-size:2.1em;font-weight:850;line-height:1.2;white-space:nowrap;letter-spacing:-.04em}.bd-context h2{font-size:.57em;white-space:nowrap}.bd-context small{font-size:.56em;margin-top:.25em}.bd-context .bd-next>strong{font-size:1.85em}.bd-pips{display:flex;gap:.6em;margin:.65em 0 .3em}.bd-pips>span{border-radius:50%;width:1.02em;height:1.02em;display:grid;place-items:center;background:currentColor;flex-shrink:0}.bd-pips i{color:#242039;font-size:.55em}.bd-success svg{width:100%;height:1.65em;overflow:visible}.bd-success polyline{stroke:var(--accent);stroke-width:2;fill:none}.bd-success circle{fill:var(--accent)}
.bd-footer{padding:calc(var(--bd-unit)*.85) 3.7% var(--bd-unit);display:flex;flex-direction:column;justify-content:space-between;gap:.3em;min-height:0}.bd-perforce h2{font-size:.59em;display:flex;align-items:center;gap:1em;margin-bottom:.25em}.bd-perforce h2>i{color:var(--mint);font-size:1.1em}.bd-perforce h2 small{letter-spacing:0;font-weight:500;font-size:.95em}.bd-change{display:flex;align-items:center;gap:1.1em;font-size:.71em;min-width:0;height:1.8em;animation:bd-enter .2s ease-out}.bd-change>i{font-size:.7em;color:var(--dim)}.bd-change>b{color:var(--accent);width:4.1em;flex-shrink:0}.bd-change>strong{width:8em;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}.bd-description{overflow:hidden;white-space:nowrap;color:var(--dim);min-width:0;mask-image:linear-gradient(90deg,#000 97%,transparent)}.bd-description>span{display:inline-block;white-space:nowrap}.bd-description.overflowing>span{animation:bd-marquee var(--marquee-time) ease-in-out infinite}.bd-perforce>p{color:var(--dim);font-size:.72em;padding:.2em 0}.bd-bottom{display:flex;align-items:center;justify-content:space-between;gap:1em}.bd-schedule{display:flex;align-items:center;gap:.8em;font-size:.64em;color:var(--dim)}.bd-schedule i{font-size:1.35em}.bd-services{display:flex;align-items:center;gap:.8em}.bd-service{display:flex;gap:.8em;align-items:center;white-space:nowrap;border:1px solid currentColor;border-radius:3em;padding:.55em 1.1em;font-size:.65em}.bd-service>span{color:var(--dim)}.bd-service b{color:var(--text)}.bd-service.good b{color:var(--mint)}.bd-service.bad b{color:var(--coral)}.bd-service.warn b{color:var(--amber)}.bd-service small{font-size:.9em}
@keyframes bd-enter{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}@keyframes bd-spin{to{rotate:360deg}}@keyframes bd-sweep{0%{transform:translateX(-100%)}100%{transform:translateX(560%)}}@keyframes bd-marquee{0%,20%{transform:translateX(0)}75%,90%{transform:translateX(var(--travel))}100%{transform:translateX(0)}}
@media(max-width:900px),(max-aspect-ratio:4/3){.build-display{display:flex;flex-direction:column;overflow-y:auto;font-size:16px;min-height:100dvh;height:100dvh}.bd-header{padding:18px 24px;flex-wrap:wrap;gap:12px}.bd-brand>span{font-size:.65em}.bd-host{margin-left:0;font-size:.7em}.bd-main{grid-template-columns:1fr;padding:25px;gap:24px}.bd-build{padding-right:0;gap:24px}.bd-headline{gap:18px}.bd-headline h1{font-size:clamp(30px,6vw,50px)}.bd-headline p{font-size:.9em}.bd-state-icon{width:2.8em;height:2.8em}.bd-machine{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.bd-machine h2{grid-column:1/-1}.bd-context{grid-template-columns:1fr 1fr;padding:20px;gap:24px}.bd-context>div,.bd-context>div:first-child{padding:0 8px;border:0}.bd-context>div:nth-child(n+3){align-items:flex-start;text-align:left}.bd-context small{font-size:.65em}.bd-pips{gap:.45em}.bd-footer{padding:20px;gap:22px}.bd-bottom{flex-wrap:wrap;gap:18px}.bd-services{flex-wrap:wrap;gap:12px}.bd-service{font-size:.7em}.bd-change{font-size:.7em;gap:.6em}.bd-change>strong{width:6em}.bd-failure h2{font-size:1.4em}.bd-pipeline small{font-size:.65em}}
@media(prefers-reduced-motion:reduce){.build-display,.build-display *{animation:none!important;transition:none!important}.bd-description>span{display:block;overflow:hidden;text-overflow:ellipsis}.bd-progress.indeterminate>b{width:100%;opacity:.25}}

.bd-failure{padding:.5em .9em}.bd-failure h2{font-size:1.22em;-webkit-line-clamp:2}.bd-failure-path{font-size:.82em;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:.15em 0}.bd-perforce h2>i{color:inherit}

.bd-failure h2,.bd-failure-path{user-select:text}.bd-description:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media(max-width:900px),(max-aspect-ratio:4/3){.build-display>header,.build-display>main,.build-display>section,.build-display>footer{flex-shrink:0}}

@media(max-width:900px),(max-aspect-ratio:4/3){.bd-machine>.bd-metric:nth-of-type(3){grid-column:1/-1}}

/* Keep long Perforce descriptions inside the ticker, not the grid's intrinsic width. */
.build-display{grid-template-columns:minmax(0,1fr)}
.build-display>*,.bd-perforce{min-width:0}
.bd-description{flex:1 1 0%;max-width:100%}
.bd-state-note p{overflow-wrap:anywhere}
.bd-progress-caption>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-panel{padding:24px;overflow:auto;min-height:0;color:var(--text);max-width:1100px;width:100%;box-sizing:border-box}.ds-title,.ds-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.ds-title{margin-bottom:24px}.ds-title>i{font-size:32px;color:var(--accent)}.ds-eyebrow{font-size:10px;letter-spacing:.12em;opacity:.65;font-weight:700}.ds-panel h2{font-size:24px;margin:6px 0}.ds-panel h3{font-size:15px;margin:0 0 8px}.ds-panel p{font-size:13px;line-height:1.6;opacity:.8;margin:6px 0 12px}.ds-card{border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;background:var(--bg-1)}.ds-streams{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-bottom:20px}.ds-stream{display:flex;align-items:center;text-align:left;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:transparent;color:inherit;transition:background .18s,border-color .18s}.ds-stream.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.ds-stream span{flex:1;min-width:0}.ds-stream strong,.ds-stream small{display:block;overflow-wrap:anywhere}.ds-stream small,.ds-panel small{font-size:11px;opacity:.65;margin-top:4px}.ds-panel label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600}.ds-panel input,.ds-panel select{min-width:0;width:100%;box-sizing:border-box;background:var(--bg-0);border:1px solid var(--line);color:inherit;border-radius:8px;padding:10px;font:inherit}.ds-grow{flex:1}.ds-branch{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:16px 0}.ds-panel .ds-hint{font-size:12px;opacity:.65}.ds-panel code{overflow-wrap:anywhere;font-size:12px}.ds-review{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.ds-paths{max-height:350px;overflow:auto;margin:16px 0}.ds-path{padding:12px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.ds-path>div:first-child{min-width:0;flex:1}.ds-path small{display:block}.ds-choices{display:flex;gap:4px;flex-shrink:0}.ds-choices button{padding:8px;border:1px solid var(--line);background:transparent;color:inherit;border-radius:8px;font-size:12px}.ds-choices button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 24%,transparent);border-color:var(--accent)}.ds-panel button{cursor:pointer}.ds-panel button:disabled{opacity:.45;cursor:default}.ds-panel button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ds-alert,.ds-success{border-radius:10px;padding:14px;margin-bottom:16px;font-size:13px;background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid var(--line)}.ds-alert{border-color:#de887c}.ds-receipt{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.ds-receipt>div{flex:1;min-width:0}.ds-receipt p{margin:4px 0;overflow-wrap:anywhere}.ds-reveal{animation:ds-enter .22s ease-out}@keyframes ds-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.ds-panel{padding:14px}.ds-card{padding:14px}.ds-row,.ds-path{flex-wrap:wrap}.ds-branch{grid-template-columns:1fr}.ds-choices{width:100%}.ds-choices button{flex:1}}@media(prefers-reduced-motion:reduce){.ds-reveal{animation:none}.ds-stream{transition:none}}
.dd-workspace-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg-1);flex-shrink:0}.dd-workspace-bar>i{color:var(--dim)}.dd-workspace-bar label{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--dim);min-width:0;flex:1}.dd-workspace-bar select{max-width:520px;min-width:0;flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg-0);color:var(--text);font:inherit}.dd-workspace-bar select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:600px){.dd-workspace-bar{flex-wrap:wrap}.dd-workspace-bar label{flex-basis:80%}.dd-workspace-bar>button{margin-left:auto}}
/* Drydock studio surfaces. The repository's palette follows every Kelp Pup theme. */
.dd-studio{--dd-ease:cubic-bezier(.22,1,.36,1);container-type:inline-size;min-height:0;overflow:hidden}
.dd-studio button,.dd-studio a,.dd-studio summary{transition:background .15s,color .15s,border-color .15s,box-shadow .15s}
.dd-studio :is(button,a,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.dd-studio .dd-head{height:58px;padding:0 20px;gap:12px;background:var(--bg-2)}
.dd-studio .dd-head>.hash{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.dd-studio .dd-head h1{font-size:16px;letter-spacing:-.3px;margin:0 4px 0 0}
.dd-studio .dd-head-meta{font-size:11px;margin-left:0}
.dd-studio .dd-depot-sel{padding:0;background:none;border:0;min-width:130px;max-width:260px}
.dd-studio .dd-workspace-bar{padding:8px 20px;background:var(--bg-2);gap:10px;font-size:12px;min-height:40px}
.dd-studio .dd-workspace-bar label{flex:initial;max-width:600px}
.dd-studio .dd-workspace-bar .kp-select{min-width:0}
.dd-studio .dd-workspace-bar>button{margin-left:auto;white-space:nowrap}
.dd-studio .dd-toolbar{min-height:58px;padding:9px 20px;gap:10px;background:var(--bg-1);flex-wrap:wrap}
.dd-studio .dd-tool{display:inline-flex;flex-direction:row;gap:8px;min-width:0;min-height:36px;padding:8px 12px;font-size:12px;font-weight:600;white-space:nowrap}
.dd-studio .dd-latest{border:1px solid var(--line);background:var(--bg-2);color:var(--text);position:relative;overflow:hidden}
.dd-studio .dd-latest.available{border-color:color-mix(in srgb,var(--accent) 65%,var(--line));background:color-mix(in srgb,var(--accent) 16%,var(--bg-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 7%,transparent)}
.dd-latest.available::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 75%);transform:translateX(-110%);animation:dd-sheen 1.5s ease-out 1;pointer-events:none}
.dd-latest b{font-size:10px;padding:2px 6px;border-radius:6px;background:var(--accent);color:var(--bg-0);font-variant-numeric:tabular-nums}
.dd-update-label{font-size:11px;color:var(--dim);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-search{display:flex;align-items:center;gap:8px;flex:1;min-width:180px;max-width:380px;margin-left:auto;border:1px solid var(--line);background:var(--bg-2);border-radius:9px;padding:0 10px;color:var(--dim)}
.dd-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent)}
.dd-studio .dd-toolbar .dd-filter{background:none;border:0;box-shadow:none;outline:none;max-width:none;width:100%;padding:9px 0;margin:0;min-width:0;font-size:12px}
.dd-search>button{border:0;background:none;color:var(--dim);cursor:pointer}
.dd-project-menu{position:relative}.dd-project-menu summary{list-style:none;cursor:pointer;padding:8px 12px;border-radius:8px;color:var(--dim)}.dd-project-menu summary::-webkit-details-marker{display:none}
.dd-project-menu[open] summary{background:var(--hover);color:var(--text)}
.dd-project-menu>div{position:absolute;right:0;top:38px;z-index:35;display:grid;width:220px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);box-shadow:0 12px 40px #0004;animation:dd-panel-enter .16s var(--dd-ease)}
.dd-project-menu :is(button,label){display:block;text-align:left;font:inherit;font-size:12px;padding:10px;border:0;border-radius:7px;background:none;color:var(--text);cursor:pointer}
.dd-project-menu :is(button,label):hover{background:var(--hover)}
.dd-studio .dd-addr{min-height:37px;padding:6px 20px;gap:4px;font-family:inherit;font-size:11px;background:var(--bg-1)}
.dd-studio .dd-addr button{color:var(--dim);padding:3px 5px;border-radius:5px}
.dd-studio .dd-addr button:hover{color:var(--text);background:var(--hover);text-decoration:none}
.dd-updating{margin-left:auto;color:var(--dim);font:11px system-ui}.dd-mobile-folders{display:none}
.dd-studio .dd-body{grid-template-columns:var(--dd-tree-width,238px) 4px minmax(0,1fr) auto;position:relative;overflow:hidden}
.dd-studio .dd-tree{padding:0;background:color-mix(in srgb,var(--bg-2) 60%,var(--bg-1));border:0;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.dd-tree-title{height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 18px}
.dd-eyebrow{font-size:10px;letter-spacing:.1em;font-weight:700;color:var(--dim)}
.dd-virtual{flex:1;min-height:0;overflow:auto;overflow-anchor:none;scrollbar-gutter:stable;position:relative}
.dd-virtual-space{position:relative;min-width:0}.dd-virtual-item{position:absolute;left:0;right:0}
.dd-virtual.moving .dd-virtual-item{transition:top .2s var(--dd-ease);animation:dd-row-enter .2s var(--dd-ease)}
.dd-virtual.moving .dd-virtual-space{transition:height .2s var(--dd-ease)}
.dd-folder-row{height:32px;margin:1px 6px;display:flex;align-items:center;gap:8px;padding-right:10px;border-radius:7px;cursor:pointer;font-size:12px;position:relative}
.dd-folder-row:hover{background:var(--hover)}.dd-folder-row.selected{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--text)}
.dd-folder-row>i{color:var(--accent);font-size:12px}.dd-folder-row>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}.dd-folder-row>small{color:var(--dim);font-size:10px;font-variant-numeric:tabular-nums}
.dd-folder-toggle{padding:0;flex-shrink:0;width:14px;height:26px;background:none;border:0;color:var(--dim);cursor:pointer;font-size:9px}
.dd-folder-toggle i{display:block;transition:transform .2s var(--dd-ease)}.dd-folder-toggle.open i{transform:rotate(90deg)}.dd-folder-toggle:disabled{visibility:hidden}
.dd-resizer{cursor:col-resize;touch-action:none;background:var(--line);opacity:.45;transition:background .15s,opacity .15s}.dd-resizer:hover,.dd-resizer:focus-visible{background:var(--accent);opacity:1}
.dd-studio .dd-tabs{min-height:46px;flex-shrink:0;gap:2px;padding:5px 12px;overflow-x:auto;white-space:nowrap;background:var(--bg-1)}
.dd-studio .dd-tabs button{font-size:12px;padding:8px 10px;position:relative;display:inline-flex;align-items:center;gap:7px}
.dd-studio .dd-tabs button.on{background:color-mix(in srgb,var(--accent) 11%,transparent)}
.dd-tabs button.on::after{content:'';height:2px;background:var(--accent);position:absolute;bottom:-5px;left:10px;right:10px;border-radius:2px;animation:dd-row-enter .2s var(--dd-ease)}
.dd-file-browser{display:flex;flex-direction:column;flex:1;min-height:0;animation:dd-panel-enter .18s var(--dd-ease)}
.dd-list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;min-height:45px;font-size:12px}.dd-list-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-list-heading>span{font-size:11px;color:var(--dim);white-space:nowrap}
.dd-studio .dd-file-row,.dd-studio .dd-folder-file{grid-template-columns:minmax(0,1fr) 116px 68px 30px;height:44px;padding:0 12px;gap:12px;margin:1px 8px;font-size:12px;cursor:pointer}
.dd-studio .dd-folder-file{width:calc(100% - 16px);text-align:left;background:none;border:0;color:var(--text)}
.dd-studio .dd-file-row>.p,.dd-studio .dd-folder-file>.p{display:flex;align-items:center;font-family:inherit;font-size:12px;min-width:0;gap:10px}
.dd-studio .dd-row .dd-fic{margin:0;flex-shrink:0;font-size:15px}.dd-studio .dd-folder-file .dd-fic{color:var(--accent)}
.dd-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:550}
.dd-file-name small{display:block;color:var(--dim);font-size:10px;overflow:hidden;text-overflow:ellipsis;font-weight:400}
.dd-file-status{color:var(--dim);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-file-status>span{display:inline-flex;align-items:center;gap:5px;max-width:100%}.dd-state-chip{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);padding:3px 7px;border-radius:5px}
.dd-studio .dd-file-row .s,.dd-studio .dd-folder-file .s{grid-column:auto;visibility:visible;font-size:10px;text-align:right}
.dd-icon-button{display:inline-grid;place-items:center;width:30px;height:30px;flex-shrink:0;border:0;background:none;color:var(--dim);border-radius:7px;cursor:pointer}
.dd-icon-button:hover{background:var(--hover);color:var(--text)}.dd-row-menu{opacity:0}.dd-file-row:hover .dd-row-menu,.dd-file-row:focus-within .dd-row-menu,.dd-file-row.sel .dd-row-menu{opacity:1}
.dd-inspector{width:0;overflow:hidden;background:var(--bg-2);transition:width .22s var(--dd-ease);border-left:0 solid var(--line);min-height:0}
.dd-inspector.open{width:320px;border-left-width:1px}.dd-inspector-inner{width:320px;height:100%;display:flex;flex-direction:column;padding:18px;box-sizing:border-box}
.dd-inspector header{display:flex;align-items:center;justify-content:space-between}.dd-inspector h2{font-size:18px;line-height:1.4;overflow-wrap:anywhere;margin:14px 0 4px;letter-spacing:-.3px}
.dd-path-link{background:none;border:0;padding:0;text-align:left;color:var(--dim);font-size:11px;overflow-wrap:anywhere;cursor:pointer}
.dd-inspector-meta{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0;font-size:10px;color:var(--dim)}.dd-inspector-meta>span{padding:4px 7px;background:var(--bg-1);border-radius:5px}
.dd-inspector-actions{display:flex;gap:8px;margin-bottom:20px}.dd-inspector-tabs{display:flex;border-bottom:1px solid var(--line);gap:14px;margin-bottom:14px}
.dd-inspector-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:8px 2px;color:var(--dim);cursor:pointer;font:inherit;font-size:12px}.dd-inspector-tabs button[aria-pressed=true]{color:var(--text);border-bottom-color:var(--accent)}
.dd-inspector-content{flex:1;overflow:auto;min-height:0;animation:dd-panel-enter .18s var(--dd-ease)}.dd-inspector-content pre{font-size:11px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.dd-image-preview{position:relative}.dd-image-preview img{display:block;width:100%;height:auto;object-fit:contain;border-radius:8px;transition:opacity .2s}.dd-image-preview .dd-skeleton{position:absolute;inset:0}
.dd-binary-preview{display:flex;align-items:center;flex-direction:column;padding:25px 10px;gap:14px;text-align:center;color:var(--dim);font-size:12px;line-height:1.6}.dd-binary-preview>i{font-size:40px;opacity:.5}.dd-binary-preview p{margin:0}
.dd-revision{display:flex;flex-direction:column;gap:7px;border-left:2px solid var(--line);margin:0 0 18px 2px;padding:0 0 0 14px;font-size:12px}.dd-revision small,.dd-revision span{color:var(--dim);font-size:10px}.dd-revision strong{font-weight:550;overflow-wrap:anywhere;line-height:1.5}.dd-revision a{color:var(--accent);font-size:10px}
.dd-disclosure{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .2s var(--dd-ease),opacity .16s}.dd-disclosure.open{grid-template-rows:1fr;opacity:1}.dd-disclosure>div{overflow:hidden;min-height:0}
.dd-skeleton{padding:18px;flex:1;min-width:0;animation:dd-skeleton-appear .16s .12s both}
.dd-skeleton-row{display:flex;gap:14px;align-items:center;height:45px}.dd-skeleton-row :is(i,span,b){display:block;position:relative;overflow:hidden;background:color-mix(in srgb,var(--dim) 12%,transparent);border-radius:5px;height:9px}
.dd-skeleton-row i{width:22px;height:22px;flex-shrink:0}.dd-skeleton-row b{width:38px;margin-left:auto}.dd-skeleton-row :is(i,span,b)::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,color-mix(in srgb,var(--text) 10%,transparent),transparent);transform:translateX(-110%);animation:dd-sheen 1.7s ease-in-out infinite}
.dd-skeleton.cards{padding:0}.dd-skeleton.cards .dd-skeleton-row{height:90px;border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:16px}
.dd-studio .dd-pending,.dd-studio .dd-changes,.dd-studio .ds-panel{animation:dd-panel-enter .18s var(--dd-ease)}
.dd-studio .dd-pending{padding:12px}.dd-studio .dd-ptoolbar{padding:2px 4px 14px;border:0}.dd-studio .dd-clgroup{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}
.dd-studio .dd-clhead{padding:12px;font-size:12px;gap:10px;flex-wrap:wrap}.dd-studio .dd-clhead .dd-cico{color:var(--accent)}.dd-studio .dd-clhead .desc{flex-basis:40%;min-width:120px;order:-1;flex-grow:1;font-weight:600}.dd-studio .dd-clhead>.num{font-size:10px;color:var(--dim)}.dd-studio .dd-clhead>.who{font-size:10px}.dd-studio .dd-clhead .cnt{margin-left:auto}
.dd-studio .dd-row.prow{padding:10px 14px!important;border-radius:0;font-size:11px;min-height:38px;background:color-mix(in srgb,var(--bg-2) 50%,transparent)}
.dd-studio .dd-row.prow .p{font-size:11px}.dd-studio .dd-row.prow .dd-pdepot{display:none}
.dd-studio .dd-cl{background:transparent;border-color:var(--line);padding:16px;grid-template-columns:65px minmax(0,1fr);border-radius:10px}.dd-studio .dd-cl .num{font-size:11px;font-weight:600;color:var(--dim)}.dd-studio .dd-cl .desc{font-size:13px;font-weight:600}.dd-studio .dd-cl .meta{grid-column:2;font-size:11px;white-space:normal}
.dd-studio .ds-panel{max-width:none;padding:24px}.dd-studio .ds-panel h2{font-size:22px;letter-spacing:-.4px}.dd-studio .ds-panel .ds-card{background:color-mix(in srgb,var(--bg-2) 45%,transparent)}
.dd-shelf-card{border:1px solid var(--line);border-radius:12px;margin:0 0 12px;overflow:hidden}.dd-shelf-head{display:flex;align-items:center;gap:14px;width:100%;border:0;background:none;color:var(--text);text-align:left;padding:16px;cursor:pointer}.dd-shelf-head>i{color:var(--accent)}.dd-shelf-head>span{flex:1;min-width:0}.dd-shelf-head strong{font-size:13px;display:block;overflow-wrap:anywhere}.dd-shelf-head small{font-size:11px;color:var(--dim);display:block;margin-top:7px}
.dd-shelf-files{padding:0 16px 16px}.dd-shelf-files>div{display:flex;gap:12px;align-items:center;padding:10px 0;font-size:12px;border-top:1px solid var(--line)}.dd-shelf-files>div>span{flex:1;min-width:0;overflow-wrap:anywhere}.dd-shelf-files a{color:var(--accent)}.dd-shelf-files small{color:var(--dim)}.dd-shelf-files details{font-size:11px;color:var(--dim);line-height:1.7;margin-top:15px}.dd-shelf-files code{display:block;overflow-wrap:anywhere;margin-top:10px}
.dd-inline-error{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 18px;font-size:12px;line-height:1.6;background:color-mix(in srgb,var(--accent) 7%,var(--bg-2));flex-wrap:wrap}
.dd-studio .dd-empty{gap:10px;min-height:160px}.dd-studio .dd-empty h3{font-size:15px;color:var(--text);margin:8px 0 0}.dd-studio .dd-empty p{font-size:12px;max-width:350px;line-height:1.7;margin:0}
.dd-studio .dd-toast{animation:dd-toast-in .22s var(--dd-ease);max-width:calc(100% - 40px);box-sizing:border-box;line-height:1.5;text-align:center}
.dd-studio .dd-backdrop{animation:dd-skeleton-appear .16s}.dd-studio .dd-modal{animation:dd-panel-enter .2s var(--dd-ease);border-radius:16px;padding:22px}
@keyframes dd-sheen{to{transform:translateX(110%)}}
@keyframes dd-skeleton-appear{from{opacity:0}to{opacity:1}}
@keyframes dd-panel-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes dd-row-enter{from{opacity:0;translate:0 -3px}to{opacity:1;translate:0 0}}
@keyframes dd-toast-in{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}
@container (max-width:1050px){.dd-inspector{position:absolute;right:0;top:0;bottom:0;z-index:12;box-shadow:-12px 0 40px #0002}.dd-studio .dd-body{grid-template-columns:var(--dd-tree-width,210px) 4px minmax(0,1fr)}.dd-head-meta{display:none}}
@container (max-width:720px){.dd-studio .dd-body{grid-template-columns:minmax(0,1fr)}.dd-studio .dd-tree,.dd-studio .dd-resizer{display:none}.dd-studio .folders-visible .dd-tree{display:flex;position:absolute;inset:0 auto 0 0;width:280px;max-width:90%;z-index:15;box-shadow:10px 0 30px #0003;background:var(--bg-2);animation:dd-panel-enter .18s}.dd-mobile-folders{display:inline-block}.dd-studio .dd-head{padding:0 12px;gap:7px}.dd-studio .dd-head>.hash{display:none}.dd-studio .dd-workspace-bar{padding:7px 12px}.dd-studio .dd-workspace-bar label{flex:1;max-width:100%}.dd-studio .dd-workspace-bar label>.kp-select{flex:1;min-width:0}.dd-studio .dd-toolbar{padding:9px 12px;gap:8px}.dd-search{flex-basis:100%;max-width:none;order:5}.dd-update-label{flex:1;max-width:none;text-align:right;font-size:10px}.dd-studio .dd-latest span{display:inline}.dd-studio .dd-tabs{padding:5px 8px}.dd-studio .dd-file-row,.dd-studio .dd-folder-file{grid-template-columns:minmax(0,1fr) 64px 28px;padding:0 8px;gap:8px}.dd-file-status{display:none}.dd-row-menu{opacity:1}.dd-studio .dd-file-row .s,.dd-studio .dd-folder-file .s{grid-column:2}.dd-list-heading{padding:12px}.dd-list-heading>span{font-size:10px}.dd-studio .ds-panel{padding:18px 12px}.dd-phint{display:none}.dd-inspector.open{width:min(360px,100%)}.dd-inspector-inner{width:100%}.dd-studio .dd-clhead .dd-cl-ws{max-width:150px}.dd-studio .dd-clhead .desc{flex-basis:75%}.dd-studio .dd-clhead .who{display:none}}
@media(prefers-reduced-motion:reduce){.dd-studio *,.dd-studio *::before,.dd-studio *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.dd-stage{display:flex;flex-direction:column;flex:1;min-height:0;transition:opacity .09s,translate .09s}.dd-stage.leaving{opacity:0;translate:0 3px}
.dd-presence{display:contents}.dd-presence.leaving .dd-backdrop{animation:dd-skeleton-appear .16s reverse both}.dd-presence.leaving .dd-modal{animation:dd-panel-enter .16s reverse both}
.dd-virtual.moving .dd-row-exit{pointer-events:none;animation:dd-row-leave .18s both;z-index:1}
@keyframes dd-row-leave{to{opacity:0;translate:0 -8px;clip-path:inset(0 0 100% 0)}}
@media(prefers-reduced-motion:reduce){.dd-virtual.moving .dd-row-exit{display:none}.dd-stage.leaving{translate:none}}

.dd-studio .dd-workspace-context{padding:0;border:0;min-height:0;background:none;max-width:420px;min-width:0;flex-shrink:1}.dd-studio .dd-workspace-context label{min-width:0;max-width:100%;display:flex;gap:10px;align-items:center}.dd-studio .dd-workspace-context .kp-select{min-width:0;max-width:300px}
.dd-studio .dd-file-row>.p,.dd-studio .dd-folder-file>.p{font-size:13px}.dd-file-status,.dd-studio .dd-file-row .s,.dd-studio .dd-folder-file .s{font-size:11px}
@container(max-width:900px){.dd-studio .dd-head{height:auto;min-height:58px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.dd-studio .dd-workspace-context{flex-basis:100%;max-width:none;order:5;padding-top:6px}.dd-studio .dd-workspace-context .kp-select{max-width:none;flex:1}.dd-studio .dd-head-spacer{min-width:0}.dd-studio .dd-head .dd-depot-sel{min-width:100px;max-width:50%}.dd-studio .dd-workspace-context label{flex:1}.dd-head-meta{display:none}}

.dd-pending-files,.dd-shelf-filelist{display:flex;min-height:0;max-height:308px}
.dd-studio .dd-pending-files .prow{height:42px;width:100%;text-align:left;color:var(--text);border:0;cursor:pointer}
.dd-shelf-files>.dd-shelf-filelist{display:flex;padding:0;border:0}.dd-shelf-file{display:flex;align-items:center;gap:12px;height:44px;border-bottom:1px solid var(--line);font-size:12px}.dd-shelf-file>span{min-width:0;flex:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.dd-shelf-file a{padding:10px}

.dd-studio .dd-clhead{display:grid;grid-template-columns:18px 18px minmax(0,1fr) auto 30px;gap:6px 10px;padding:14px}
.dd-studio .dd-clhead>.dd-folder-toggle{grid-column:1;grid-row:1}.dd-studio .dd-clhead>.dd-cico{grid-column:2;grid-row:1}.dd-studio .dd-clhead>.desc,.dd-studio .dd-clhead>.dd-desc-edit{grid-column:3;grid-row:1;font-size:13px;min-width:0;text-align:left;order:0;margin:0}.dd-studio .dd-clhead>button.desc{border:0;padding:0;background:none;color:var(--text);font-weight:600;cursor:text}.dd-studio .dd-clhead>button.desc:disabled{opacity:1;cursor:default}
.dd-cl-context{grid-column:3;grid-row:2;display:flex;gap:12px;min-width:0;color:var(--dim);font-size:11px}.dd-cl-context>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-cl-context>span:first-child{flex-shrink:0}
.dd-cl-submit{grid-column:4;grid-row:1}.dd-cl-more{grid-column:5;grid-row:1}.dd-studio .dd-clhead>.cnt{grid-column:4;grid-row:2;margin:0;text-align:right;font-size:10px}
@container(max-width:720px){.dd-studio .dd-clhead{grid-template-columns:16px minmax(0,1fr) auto 28px;gap:6px;padding:10px}.dd-studio .dd-clhead>.dd-cico{display:none}.dd-studio .dd-clhead>.desc,.dd-studio .dd-clhead>.dd-desc-edit,.dd-cl-context{grid-column:2}.dd-cl-submit,.dd-studio .dd-clhead>.cnt{grid-column:3}.dd-cl-more{grid-column:4}.dd-cl-context{font-size:10px;gap:8px}.dd-cl-context>span:last-child{display:none}}

.dd-studio .dd-row.prow .p{display:flex;align-items:center;gap:9px;min-width:0}.dd-pending-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dd-studio .dd-row.prow .dd-fic,.dd-studio .dd-row.prow .dd-ftype{flex-shrink:0}

.dd-workspace-list{display:grid;gap:10px}.dd-workspace-entry{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding:6px;background:var(--bg-1)}.dd-workspace-entry.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--bg-1))}.dd-workspace-select{display:flex;align-items:flex-start;gap:14px;min-width:0;flex:1;padding:12px;border:0;background:none;color:var(--text);text-align:left}.dd-workspace-select>span{display:flex;flex-direction:column;gap:6px;min-width:0}.dd-workspace-select>i{color:var(--accent);margin-top:4px}.dd-workspace-select strong{font-size:14px;overflow-wrap:anywhere}.dd-workspace-root{font:12px ui-monospace,monospace;overflow-wrap:anywhere;color:var(--dim)}.dd-workspace-entry>.dd-icon-button{margin:0 8px}.dd-desktop-required{display:flex;gap:16px}.dd-desktop-required>i{font-size:26px;color:var(--accent)}.dd-desktop-required a{display:inline-flex;text-decoration:none;margin:4px 0}
.dd-setup-steps{display:flex;align-items:center;gap:14px;margin-bottom:24px;font-size:12px;color:var(--dim)}.dd-setup-steps>span{border-radius:7px;padding:7px 10px;background:var(--bg-1)}.dd-setup-steps .current{color:var(--text);background:color-mix(in srgb,var(--accent) 20%,var(--bg-1))}.dd-setup-steps>i{font-size:9px}.dd-setup-root-note{display:flex;align-items:center;gap:14px;padding:16px;margin:16px 0;border:1px dashed var(--line);border-radius:9px;font-size:13px}.dd-setup-root-note small{display:block}.dd-remove-workspace .ds-row{margin-top:16px}.dd-studio .ds-title{flex-wrap:wrap}.dd-studio .ds-title>div{flex:1;min-width:190px}.dd-studio .ds-title>button{flex-shrink:0}
.dd-build-path{overflow-wrap:anywhere}.dd-build-readiness,.dd-build-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.dd-build-readiness span{padding:5px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:20px;color:var(--dim);font-size:12px}.dd-build-readiness [data-ready=true]{color:var(--accent)}.dd-build-actions button{min-height:38px}.dd-build-actions small{margin-left:8px;color:var(--dim)}.dd-build-package{margin-top:24px}.dd-build-output{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:24px;background:var(--bg-2)}.dd-build-output>.ds-row{padding:12px 16px;flex-wrap:wrap}.dd-build-output time{font-size:12px;color:var(--dim);flex:1}.dd-build-output pre{padding:16px;margin:0;height:320px;overflow:auto;font:12px/1.65 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.dd-build-output>.ds-hint{padding:0 16px}.dd-build-sheen{height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:200% 100%;animation:dd-build-sheen 1.6s linear infinite}@keyframes dd-build-sheen{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.dd-build-sheen{animation:none}}
.dd-remote{height:100%;overflow:auto;width:100%;padding:20px!important}.dd-remote>.ds-card{margin:16px 0}.dd-remote h3{overflow-wrap:anywhere}.dd-remote pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;font:12px/1.5 Consolas,monospace}.dd-remote .ds-row{flex-wrap:wrap}.dd-remote .dd-build-actions button{min-height:44px}.dd-remote details{margin-top:12px}

/* Native-style chrome; editing and intentionally copyable content stay selectable. */
:where(.dd-pane,.dd-revision-dialog,.dd-remote){-webkit-user-select:none;user-select:none}
:where(.dd-pane,.dd-revision-dialog,.dd-remote) :is(input,textarea,[contenteditable]:not([contenteditable="false"]),pre,code,[data-selectable-text]){-webkit-user-select:text;user-select:text}
.dd-revision-dialog{margin:auto;width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--bg-2);color:var(--text);box-shadow:0 24px 80px #0006}
.dd-revision-dialog::backdrop{background:#0008;backdrop-filter:blur(4px)}
.dd-revision-dialog form{display:grid;gap:18px}.dd-revision-dialog header,.dd-revision-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.dd-revision-dialog h2{margin:6px 0 0}.dd-revision-dialog label{display:grid;gap:8px}.dd-revision-dialog input{padding:12px;border-radius:9px;background:var(--bg-1);color:var(--text);border:1px solid var(--line)}.dd-revision-dialog p{margin:0;line-height:1.5}.dd-revision-scope{overflow-wrap:anywhere;color:var(--dim)}.dd-revision-force{padding:16px;border:1px solid var(--line);border-radius:12px;display:grid;gap:10px}.dd-revision-force p{color:var(--dim);font-size:13px}.dd-revision-dialog footer{justify-content:flex-end}
/* caveat-latin-600-normal */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/caveat-latin-600-normal-zlTlWIYU.woff2) format('woff2'), url(/assets/caveat-latin-600-normal-DUjB8dgm.woff) format('woff');
}/* dancing-script-latin-600-normal */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/dancing-script-latin-600-normal-CUtcW3hj.woff2) format('woff2'), url(/assets/dancing-script-latin-600-normal-8nA_0nHX.woff) format('woff');
}.app-shell .app.has-thread {grid-template-columns:var(--sidebar-w,240px) minmax(280px,1fr) auto}
.app.has-thread>.right {display:none}
.thread-slot {display:flex;min-height:0;max-width:55vw;overflow:hidden}
.thread-dock {display:flex;flex-direction:column;position:relative;min-height:0;max-width:100%;flex-shrink:0;background:var(--bg-1);color:var(--text);border-left:1px solid var(--line);user-select:none;animation:thread-dock-enter 180ms cubic-bezier(.2,.8,.2,1)}
.thread-dock :is(button,input,textarea) {font:inherit;color:inherit}
.thread-dock button,.threads-inbox button {cursor:pointer;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);transition:background 120ms ease,transform 120ms ease}
.thread-dock button:hover,.threads-inbox button:hover {background:var(--hover,var(--bg-2))}
.thread-dock button:disabled,.threads-inbox button:disabled {opacity:.4;cursor:default}
.thread-dock :is(button,input,textarea):focus-visible,.threads-inbox button:focus-visible {outline:2px solid var(--accent);outline-offset:2px}
.thread-dock-head {display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:66px;padding:12px 16px;border-bottom:1px solid var(--line)}
.thread-dock-head h2 {margin:0 0 3px;font-size:16px;font-weight:700;letter-spacing:-.02em}
.thread-dock-head>div:first-child {min-width:0}
.thread-dock-head span {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-size:11px}
.thread-header-actions {display:flex;gap:2px;align-items:center}
.thread-header-actions button {width:28px;height:28px;flex-shrink:0;font-size:12px}
.thread-preferences {display:flex;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line)}
.thread-preferences>button {padding:5px 9px;font-size:12px;border-color:var(--line);display:flex;align-items:center;gap:7px}
.thread-preferences .themed-select {margin-left:auto;max-width:170px}
.thread-preferences .kp-select {margin-left:auto;max-width:170px}
.thread-preferences .is-active {color:var(--accent)}
.thread-dock .thread-scroll {padding:12px 16px 18px;flex:1;position:relative;min-height:60px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.thread-dock .thread-post {padding:13px 0;border:0;background:transparent;border-radius:0}
.thread-dock .thread-parent {margin-bottom:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.thread-author {display:flex;align-items:center;gap:9px;margin-bottom:7px}
.thread-author strong {font-size:12px}
.thread-author time {display:block;font-size:10px;color:var(--dim);margin-top:2px}
.thread-text {font-size:13px;line-height:1.65;overflow-wrap:anywhere;user-select:text}
.thread-dock .thread-post.is-selected {background:color-mix(in srgb,var(--accent) 8%,transparent);box-shadow:inset 2px 0 var(--accent);padding-left:10px;padding-right:10px;border-radius:8px}
.thread-author input {accent-color:var(--accent);width:15px;height:15px;flex-shrink:0}
.thread-decision-badge {display:flex;align-items:center;gap:6px;color:var(--accent);font-size:10px;margin:4px 0 7px}
.thread-decisions {border-bottom:1px solid var(--line);padding:10px 16px;font-size:12px;flex-shrink:0}
.thread-decisions summary {cursor:pointer;color:var(--accent);font-weight:600}
.thread-decisions summary span {color:var(--dim);margin-left:6px}
.thread-decisions>div {max-height:130px;overflow:auto;margin-top:7px}
.thread-decisions button {display:grid;grid-template-columns:1fr auto;text-align:left;width:100%;padding:6px 8px;gap:3px 8px}
.thread-decisions button strong {font-size:10px;color:var(--dim)}
.thread-decisions button span {grid-row:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px}
.thread-decisions button i {grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--dim)}
.thread-selection-bar {display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--line);font-size:11px;background:color-mix(in srgb,var(--accent) 6%,var(--bg-1));animation:thread-dock-enter 140ms ease}
.thread-selection-bar>span {margin-right:auto;color:var(--dim)}
.thread-selection-bar button {padding:6px 8px}
.thread-export-dialog {box-sizing:border-box;margin:auto;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--bg-1);color:var(--text);box-shadow:0 24px 90px #0007;overflow:auto;user-select:none;animation:thread-export-enter 180ms cubic-bezier(.2,.8,.2,1)}
.thread-export-dialog::backdrop {background:#080a145f;backdrop-filter:blur(5px);animation:thread-export-backdrop 150ms ease}
.thread-export-dialog header {display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--line)}
.thread-export-icon {display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.thread-export-eyebrow {font-size:9px;letter-spacing:.12em;color:var(--dim)}
.thread-export-dialog h2 {margin:4px 0 0;font-size:17px;letter-spacing:-.02em}
.thread-export-dialog header>button {margin-left:auto}
.thread-export-dialog button,.thread-export-dialog a.btn-primary {border:1px solid transparent;border-radius:8px;padding:8px 11px;font:inherit;font-size:12px;cursor:pointer;text-decoration:none;transition:background 120ms ease,transform 120ms ease}
.thread-export-dialog button:not(.btn-primary) {color:var(--text);background:transparent}
.thread-export-dialog button:not(.btn-primary):hover {background:var(--bg-2)}
.thread-export-dialog button:disabled {opacity:.45;cursor:default}
.thread-export-dialog fieldset {display:flex;flex-direction:column;gap:9px;border:0;margin:0;padding:20px;min-width:0}
.thread-export-dialog label {font-size:12px;font-weight:600;margin-top:4px}
.thread-export-dialog input {box-sizing:border-box;width:100%;background:var(--bg-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;font-size:13px;user-select:text}
.thread-export-dialog :is(input,button,a):focus-visible {outline:2px solid var(--accent);outline-offset:2px}
.thread-export-dialog .kp-select {width:100%}
.thread-export-dialog footer {display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}
.thread-export-audience {display:flex;gap:9px;margin-top:6px;padding:11px;border:1px solid var(--line);border-radius:9px;color:var(--dim);font-size:12px;line-height:1.5}
.thread-export-audience i {margin-top:3px;color:var(--accent)}
.thread-export-preview {font-size:12px;color:var(--dim);margin-top:5px}
.thread-export-preview summary {cursor:pointer;padding:5px 0}
.thread-export-preview blockquote {border-left:2px solid var(--line);padding-left:10px;margin:14px 0;user-select:text;overflow-wrap:anywhere}
.thread-export-preview p {white-space:pre-wrap;max-height:150px;overflow:auto;color:var(--text)}
.thread-export-success {display:flex;align-items:center;flex-direction:column;gap:12px;padding:30px 20px;text-align:center}
.thread-export-success>i {font-size:28px;color:var(--accent)}
.thread-export-success h3,.thread-export-success p {margin:0}
.thread-export-success p {font-size:13px;color:var(--dim)}
@keyframes thread-export-enter {from{opacity:0;transform:translateY(9px) scale(.98)}to{opacity:1;transform:none}}
@keyframes thread-export-backdrop {from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.thread-export-dialog,.thread-export-dialog::backdrop,.thread-selection-bar{animation:none}.thread-export-dialog button{transition:none}}
.thread-text :first-child {margin-top:0}.thread-text :last-child {margin-bottom:0}
.thread-post .file-attachment {margin-top:8px}
.thread-dock .thread-divider {display:flex;align-items:center;gap:10px;margin:5px 0;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--dim)}
.thread-divider:after {content:'';height:1px;background:var(--line);flex:1}
.thread-post-actions {display:flex;align-items:center;gap:3px;flex-wrap:wrap;margin-top:8px}
.thread-post-actions button {font-size:11px;min-height:25px;min-width:25px;padding:3px 6px;opacity:.65;display:inline-flex;align-items:center;gap:4px}
.thread-post:hover .thread-post-actions button,.thread-post:focus-within .thread-post-actions button {opacity:1}
.thread-post-actions .is-active {background:var(--active,var(--bg-2));border-color:var(--accent);opacity:1}
.thread-dock .thread-context-link {margin-left:auto;font-size:10px}
.thread-unread-divider {display:flex;gap:8px;align-items:center;color:var(--accent);font-size:10px;margin:9px 0}
.thread-unread-divider:before,.thread-unread-divider:after {content:'';height:1px;background:var(--accent);flex:1;opacity:.4}
.thread-empty,.thread-hint {font-size:12px;color:var(--dim);line-height:1.6;padding:10px 0}
.thread-empty {text-align:center;padding:36px 0}.thread-empty span {font-size:11px}
.thread-error {font-size:12px;line-height:1.5;color:var(--text);background:var(--bg-2);border-left:2px solid var(--accent);padding:9px 11px;border-radius:6px}
.thread-load {display:block;margin:12px auto;padding:8px 12px!important;background:var(--bg-2)!important;font-size:12px}
.thread-dock .thread-new-replies {align-self:center;position:absolute;bottom:235px;z-index:2;border:1px solid var(--line);border-radius:20px;background:var(--bg-2);box-shadow:0 5px 20px #0003;font-size:12px;padding:8px 14px}
.thread-composer {padding:12px;border-top:1px solid var(--line);flex-shrink:0;max-height:52%;overflow:auto;background:var(--bg-1)}
.thread-writing {position:relative;border:1px solid var(--line);border-radius:11px;background:var(--bg-2);transition:border-color 140ms,box-shadow 140ms}
.thread-writing:focus-within {border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 10%,transparent)}
.thread-writing textarea {display:block;width:100%;box-sizing:border-box;background:transparent;border:0;outline:0!important;box-shadow:none;resize:vertical;min-height:76px;max-height:220px;padding:12px;font-size:13px;line-height:1.5;user-select:text}
.thread-compose-tools {display:flex;align-items:center;padding:5px 7px 7px;gap:3px}
.thread-compose-tools>span {flex:1}.thread-compose-tools>button {min-width:29px;height:29px;font-size:12px}
.thread-compose-tools .thread-send {background:var(--accent);color:var(--bg-1);border-radius:8px}
.thread-compose-tools .thread-send:hover {filter:brightness(1.1)}
.thread-compose-tools small {font-size:10px;color:var(--dim)}.thread-compose-tools .over {color:var(--text);font-weight:700}
.thread-compose-bottom {display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:9px;flex-wrap:wrap}
.thread-compose-bottom label {display:flex;align-items:center;gap:6px;font-size:11px}.thread-compose-bottom input {accent-color:var(--accent)}
.thread-compose-bottom small {font-size:10px;color:var(--dim)}
.thread-quote {display:flex;align-items:center;gap:7px;padding:8px;margin-bottom:8px;background:var(--bg-2);border-left:2px solid var(--accent);font-size:11px}
.thread-quote>span {flex:1;min-width:0}.thread-quote small {display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;color:var(--dim)}
.thread-quoted-context {border-left:2px solid var(--line);padding:4px 8px;margin-bottom:7px;font-size:11px;color:var(--dim);user-select:text}
.thread-edit textarea {width:100%;box-sizing:border-box;min-height:80px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:8px;user-select:text}
.thread-edit button {padding:5px 10px;margin:5px 4px 0 0;background:var(--bg-2)}
.thread-mentions {position:relative;max-height:170px;overflow:auto;padding:4px;border-bottom:1px solid var(--line);animation:thread-menu-enter 120ms ease-out}
.thread-mentions button {width:100%;display:flex;justify-content:space-between;text-align:left;padding:7px;font-size:12px}
.thread-mentions button[aria-selected=true] {background:var(--active,var(--hover))}.thread-mentions small {color:var(--dim)}
.thread-resizer {position:absolute;left:-3px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:4;touch-action:none}
.thread-resizer:hover,.thread-resizer:focus-visible {background:color-mix(in srgb,var(--accent) 35%,transparent)}
.channel-threads {position:relative}
.channel-threads.has-unread::after {content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--bg-2);pointer-events:none}
.threads-inbox {height:100%;display:flex;flex-direction:column;min-height:0;user-select:none;background:var(--bg-1);color:var(--text)}
.threads-inbox>header {display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}
.threads-inbox h1 {margin:0 0 5px;font-size:20px}.threads-inbox header p {margin:0;font-size:12px;color:var(--dim)}
.threads-inbox header button {width:32px;height:32px}
.threads-inbox-toolbar {display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line)}
.threads-inbox-toolbar>span {margin-left:auto;font-size:11px;color:var(--dim)}
.threads-inbox-list {flex:1;min-height:0;overflow:auto;padding:18px 24px}
.threads-inbox .thread-inbox-card {display:block;width:100%;text-align:left;padding:14px 16px;margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);animation:thread-menu-enter 140ms ease-out}
.threads-inbox .thread-inbox-card.has-unread {border-left:3px solid var(--accent)}
.thread-inbox-meta {display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--dim);margin-bottom:12px}
.thread-inbox-meta span {overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.thread-inbox-content {display:flex;gap:9px;align-items:flex-start}.thread-inbox-content>div {min-width:0}
.thread-inbox-content strong {font-size:12px}.thread-inbox-content p {font-size:13px;line-height:1.5;margin:4px 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.thread-inbox-card footer {display:flex;align-items:center;gap:12px;font-size:11px;color:var(--dim)}.thread-inbox-card footer b {color:var(--accent)}.thread-inbox-card footer>i:last-child {margin-left:auto}
.threads-empty {text-align:center;margin:70px 20px;color:var(--dim)}.threads-empty>i {font-size:32px}.threads-empty h2 {font-size:16px;color:var(--text)}.threads-empty p {font-size:13px}
@keyframes thread-dock-enter {from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@keyframes thread-menu-enter {from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1200px){.app-shell .app.has-thread {grid-template-columns:var(--sidebar-w,220px) minmax(180px,1fr) auto}.thread-slot {max-width:45vw}}
@media(max-width:900px){.app-shell .app.has-thread {grid-template-columns:var(--sidebar-w,220px) minmax(0,1fr)}.thread-slot {position:fixed;inset:var(--studio-viewport-top,0px) 0 auto;height:var(--studio-viewport-height,100dvh);width:100%;max-width:100%;z-index:90;background:var(--bg-1)}.thread-dock {width:100%!important;max-width:100%;border:0}.thread-resizer {display:none}.thread-dock-head {padding-top:max(12px,env(safe-area-inset-top))}.thread-composer {padding-bottom:max(12px,env(safe-area-inset-bottom))}.thread-writing textarea {font-size:16px}.thread-header-actions button {min-width:36px;height:36px}.thread-header-actions button[aria-label$="thread"] {min-width:32px}.thread-post-actions button {min-height:34px;min-width:30px}.thread-compose-tools>button {min-height:36px;min-width:36px}.threads-inbox-toolbar>span {display:none}.threads-inbox-list {padding:12px}.thread-slot.tab-hidden {display:none}}
@media(prefers-reduced-motion:reduce){.thread-dock,.threads-inbox .thread-inbox-card,.thread-mentions {animation:none}.thread-dock *,.threads-inbox * {transition:none!important;scroll-behavior:auto!important}}
@media(max-width:900px){
 .app.has-thread>.sidebar,.app.has-thread>.main {visibility:hidden}
 .app-shell:has(.app.has-thread)>.studio-mobile-header {visibility:hidden}
 .thread-slot {z-index:200;background:var(--bg-0)}
}

.thread-dock .thread-author time {font-size:10px;margin-top:2px}
.thread-dock .thread-text {margin:7px 0;line-height:1.6}
.thread-dock .thread-divider {padding-top:0}
.thread-dock .thread-highlight {background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:8px;box-shadow:inset 2px 0 var(--accent);padding-inline:10px}
.kp-date{display:block;min-width:0;margin-top:6px}.kp-date .kp-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-0);color:var(--text);font:inherit;cursor:pointer;text-align:left}.kp-date-trigger span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kp-date-trigger i{color:var(--dim)}.kp-date-trigger:hover{background:var(--hover)}.kp-date-trigger[aria-expanded=true],.kp-date-trigger:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}
.kp-date-popover{position:fixed;z-index:100090;box-sizing:border-box;overflow:auto;padding:12px;background:var(--bg-2);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;box-shadow:0 12px 40px #0005,0 2px 6px #0003;color:var(--text);font-size:13px;user-select:none;overscroll-behavior:contain}.kp-date-popover *{box-sizing:border-box}.kp-date-popover button{font:inherit;color:var(--text);background:transparent;border:0;border-radius:7px;min-height:32px;cursor:pointer}.kp-date-popover button:hover{background:var(--hover)}.kp-date-popover button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.kp-date-popover button:disabled{opacity:.3;cursor:default}.kp-date-heading{display:flex;align-items:center;gap:3px;margin-bottom:12px}.kp-date-heading>button{flex:0 0 28px;padding:4px;font-size:10px}.kp-date-heading>.kp-select{flex:1;min-width:0}.kp-date-heading>.kp-select:nth-last-child(2){flex:0 0 76px}.kp-date-heading .kp-select-trigger{padding:7px 8px;font-size:12px;gap:5px;background:var(--bg-1);border:1px solid var(--line)}.kp-date-popover table{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:2px}.kp-date-popover th{font-size:10px;color:var(--dim);font-weight:500;height:24px}.kp-date-popover td{text-align:center;padding:0}.kp-date-popover td button{width:100%;height:32px;padding:0;font-size:12px}.kp-date-popover .outside{color:var(--dim)}.kp-date-popover button[aria-current=date]{box-shadow:inset 0 0 0 1px var(--accent)}.kp-date-popover button.selected{background:color-mix(in srgb,var(--accent) 22%,var(--bg-2));color:var(--text);font-weight:600}.kp-date-footer{border-top:1px solid var(--line);margin-top:10px;padding-top:8px;display:flex;justify-content:space-between}.kp-date-footer button{padding:6px 10px;font-size:12px}.kp-date-footer button:first-child{color:var(--accent)}
/* One editable time, with the shared themed menu for complete-time choices. */
.kp-time-field{display:block;min-width:0}.kp-time{display:flex;align-items:center;min-width:0;margin-top:6px;padding:0;background:var(--bg-0);border:1px solid var(--line);border-radius:10px;color:var(--text)}.kp-time input[type=text]{width:100%;min-width:0;flex:1;margin:0!important;padding:10px 11px!important;border:0!important;border-radius:10px;background:transparent!important;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;box-shadow:none!important;outline:none!important;user-select:text}.kp-time>.kp-time-choices{flex:0 0 34px;width:34px!important;min-width:0;margin:0!important}.kp-time .kp-select-trigger{width:100%;min-height:38px;border:0!important;background:transparent!important;padding:8px!important;justify-content:center!important;box-shadow:none}.kp-time .kp-select-trigger>span{display:none}.kp-time .kp-select-trigger>i{font-size:10px;color:var(--dim)}.kp-time .kp-select-trigger:hover{background:var(--hover)!important}.kp-time:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}.kp-time-error{display:block;margin-top:6px;color:var(--text);font-size:11px;line-height:1.5}
@media(pointer:coarse){.kp-date-popover td button{height:38px}.kp-date-popover button{min-height:38px}}
.studio-calendar{--cal-bg:var(--bg-0);--cal-surface:var(--bg-1);--cal-raised:var(--bg-2);--cal-text:var(--text);--cal-muted:var(--dim);--cal-line:var(--line);--cal-accent:var(--accent);height:100%;min-height:0;overflow:auto;background:var(--cal-bg);color:var(--cal-text);font-size:13px;user-select:none;container-type:inline-size}
.studio-calendar *{box-sizing:border-box}.studio-calendar button,.studio-calendar input,.studio-calendar textarea{font:inherit}.studio-calendar button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border:0;padding:8px 12px;border-radius:7px;background:transparent;color:inherit;cursor:pointer}.studio-calendar button:hover{background:color-mix(in srgb,var(--cal-accent) 8%,transparent)}.studio-calendar button:disabled{opacity:.55;cursor:default}.studio-calendar h1,.studio-calendar h2,.studio-calendar h3,.studio-calendar p{margin:0}.studio-calendar small,.cal-muted{color:var(--cal-muted);font-size:11px}.studio-calendar a{color:var(--cal-accent)}.studio-calendar input,.studio-calendar textarea,.studio-calendar .cal-description{user-select:text}.studio-calendar input:not([type=checkbox]),.studio-calendar textarea{display:block;width:100%;background:var(--cal-surface);border:1px solid var(--cal-line);border-radius:10px;color:var(--cal-text);padding:9px 12px;margin-top:6px;font-size:14px}.studio-calendar input[type=checkbox]{width:16px;height:16px;accent-color:var(--cal-accent)}.studio-calendar textarea{resize:vertical}.studio-calendar label{display:block;color:var(--cal-muted);font-size:12px}.studio-calendar .kp-select{margin-top:5px;max-width:100%}.studio-calendar .kp-select-trigger{min-height:37px;border:1px solid var(--cal-line);background:var(--cal-surface)}
.cal-app-head{min-height:52px;display:flex;align-items:center;gap:10px;padding:0 27px;border-bottom:1px solid var(--cal-line)}.cal-app-head>span{font-weight:600;white-space:nowrap}.studio-calendar .cal-icon{width:36px;min-height:36px;flex-shrink:0;padding:6px;position:relative;color:var(--cal-muted)}.cal-count{background:var(--cal-accent);color:var(--cal-bg);font-size:10px;border-radius:10px;min-width:15px;position:absolute;right:0;top:0}.cal-content{padding:28px 30px 0;max-width:1800px;margin:auto}.cal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.cal-kicker{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--cal-muted)}.studio-calendar h1{font-size:clamp(26px,3cqw,32px);font-weight:600;letter-spacing:-.7px;line-height:1.25;margin:8px 0}.studio-calendar h1>span{font-weight:300;color:var(--cal-muted)}.cal-zone{color:var(--cal-muted);font-size:11px;margin-left:16px}.studio-calendar .cal-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:8px;background:var(--cal-accent);color:var(--cal-bg);font-weight:600;padding:10px 17px;text-decoration:none;font-size:12px}.studio-calendar .cal-primary:hover{background:var(--cal-accent);filter:brightness(.96)}.cal-toolbar{display:flex;align-items:center;gap:14px;justify-content:space-between;border-bottom:1px solid var(--cal-line);margin-bottom:24px;flex-wrap:wrap}.cal-toolbar>.kp-select{margin-bottom:8px}.cal-tabs{display:flex;gap:23px}.cal-tabs button{position:relative;color:var(--cal-muted);border-radius:0;padding:8px 0 14px;min-height:40px;font-size:12px}.cal-tabs button.active{color:var(--cal-text)}.cal-tabs button.active:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--cal-accent)}.cal-range-nav{display:flex;align-items:center}.cal-range-nav>button{font-size:12px}.cal-footer{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:15px 0;border-top:1px solid var(--cal-line);margin-top:22px;font-size:11px;color:var(--cal-muted)}
.cal-week-days,.cal-all-day,.cal-time-grid{display:grid;grid-template-columns:48px repeat(7,minmax(0,1fr))}.cal-week-days{margin-bottom:14px}.cal-week-days>div{display:flex;align-items:center;justify-content:space-between;padding:0 8px;gap:4px}.cal-week-days>div>span{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--cal-muted)}.cal-week-days b{font-size:25px;font-weight:400;letter-spacing:-.7px}.cal-week-days .today{color:var(--cal-accent)}.cal-all-day{padding-bottom:12px;border-bottom:1px solid var(--cal-line);margin-bottom:15px}.cal-all-day>div{min-width:0;display:flex;flex-direction:column;gap:4px;padding:0 4px}.cal-all-day button{font-size:11px;min-height:26px;padding:4px 6px;text-align:left;justify-content:flex-start;overflow-wrap:anywhere;line-height:1.3;background:color-mix(in srgb,var(--cal-accent) 6%,var(--cal-bg));border-radius:5px}.cal-all-day .cal-away{color:var(--cal-muted);background:var(--cal-surface)}.cal-time-grid{grid-template-rows:minmax(0,1fr);margin-bottom:20px}.cal-hours{position:relative;color:var(--cal-muted);font-size:11px}.cal-hours span{position:absolute;left:0;transform:translateY(-7px);font-variant-numeric:tabular-nums}.cal-day-track{position:relative;border-left:1px solid var(--cal-line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,color-mix(in srgb,var(--cal-line) 60%,transparent) 47px,color-mix(in srgb,var(--cal-line) 60%,transparent) 48px)}.cal-day-track.today{background-color:color-mix(in srgb,var(--cal-accent) 2%,var(--cal-bg))}.cal-now{position:absolute;left:0;right:0;height:1px;background:var(--teal,var(--cal-accent));z-index:1;pointer-events:none}.cal-grid-event{position:absolute;display:flex!important;align-items:stretch!important;justify-content:flex-start!important;flex-direction:column;gap:4px!important;text-align:left;min-height:0!important;padding:7px 7px!important;background:var(--cal-surface)!important;border-radius:6px!important;box-shadow:inset 2px 0 color-mix(in srgb,var(--cal-accent) 40%,var(--cal-surface));overflow:hidden;line-height:1.3}.cal-grid-event b{font-size:12px;font-weight:500;overflow-wrap:anywhere}.cal-grid-event small{font-size:11px;font-variant-numeric:tabular-nums}.cal-grid-event.selected{background:var(--cal-accent)!important;color:var(--cal-bg);box-shadow:none}.cal-grid-event.selected small{color:inherit;opacity:.85}.cal-grid-event.private:not(.selected){border:1px dashed var(--cal-line);box-shadow:none;background:var(--cal-bg)!important}.cal-grid-event.compact{padding:3px 6px!important}.cal-grid-event.compact small{display:none}.cal-week-fallback{display:none}.cal-empty{display:flex;flex-direction:column;gap:13px;align-items:center;justify-content:center;min-height:220px;text-align:center;color:var(--cal-muted)}.cal-empty>i{font-size:25px}.cal-empty h3{color:var(--cal-text);font-size:22px;font-weight:400}.cal-agenda-row{display:grid!important;grid-template-columns:90px 1fr auto;gap:20px!important;width:100%;text-align:left;border-bottom:1px solid var(--cal-line)!important;border-radius:0!important;padding:18px 5px!important}.cal-agenda-row>span:first-child{color:var(--cal-muted);font-size:12px}.cal-agenda-row b{font-size:16px;font-weight:500;display:block}.cal-agenda-row small{display:block;margin-top:5px}.cal-agenda-row.selected{box-shadow:inset 2px 0 var(--cal-accent);background:color-mix(in srgb,var(--cal-accent) 5%,var(--cal-bg))}.cal-agenda-row>i{font-size:12px;color:var(--cal-muted)}
.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-month-weekday{font-size:11px;color:var(--cal-muted);padding:8px}.cal-month-day{min-height:125px;border-top:1px solid var(--cal-line);border-left:1px solid var(--cal-line);padding:7px;min-width:0;display:flex;flex-direction:column;gap:4px}.cal-month-day>span{align-self:flex-end;font-size:13px;margin-bottom:4px}.cal-month-day.outside{opacity:.6}.cal-month-day.today>span{color:var(--cal-accent);font-weight:600}.cal-month-day button{font-size:11px;line-height:1.3;text-align:left;justify-content:flex-start;min-height:24px;padding:3px 4px;border-radius:4px;overflow-wrap:anywhere;background:var(--cal-surface)}.cal-month-day .cal-away{color:var(--cal-muted)}
.cal-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:28px 0}.cal-section-head h2{font-size:24px;font-weight:600;letter-spacing:-.5px;margin-top:5px}.cal-people-table{overflow-x:auto;margin-bottom:19px}.cal-people table{width:100%;border-collapse:collapse;min-width:580px}.cal-people th,.cal-people td{padding:15px 6px;border-bottom:1px solid var(--cal-line);font-size:12px;text-align:center;font-weight:400}.cal-people thead th{font-size:11px;color:var(--cal-muted)}.cal-people th:first-child{text-align:left}.cal-people th .cal-avatar{vertical-align:middle;margin-right:8px}.cal-avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--cal-raised);color:var(--cal-muted);font-size:11px;flex-shrink:0}.cal-away-cell{display:block;border-radius:6px;padding:6px;background:var(--cal-surface);color:var(--cal-accent)}.cal-partial{color:var(--yellow,var(--cal-accent))}
.cal-event-detail{display:flex;flex-wrap:wrap;gap:24px;align-items:center;border-top:1px solid var(--cal-line);padding:25px 0 6px;margin-top:27px}.cal-detail-title{flex:1;min-width:min(240px,100%)}.cal-event-detail h2{font-size:25px;font-weight:500;letter-spacing:-.6px;margin:7px 0}.cal-event-detail p{font-size:12px}.cal-detail-title>small{display:block;margin-top:7px}.cal-detail-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.cal-detail-actions button{font-size:12px}.cal-rsvp>div{display:flex;gap:5px;margin-top:5px}.cal-rsvp button{font-size:12px}.cal-rsvp button[aria-pressed=true],.cal-work-days button[aria-pressed=true]{background:color-mix(in srgb,var(--cal-accent) 9%,var(--cal-bg));color:var(--cal-accent)}.cal-rsvp .kp-select{font-size:11px}.cal-description{width:100%;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.cal-attendee-list{display:flex;flex-wrap:wrap;gap:15px;width:100%;padding-top:12px}.cal-attendee-list>span{font-size:12px}.cal-attendee-list small{display:block;margin-top:4px}.studio-calendar .cal-danger{color:var(--red,#e58086)}.cal-error{background:color-mix(in srgb,var(--red,#e58086) 8%,var(--cal-bg));color:var(--text);padding:12px 15px;border-radius:7px;margin:10px 0!important;font-size:12px!important;overflow-wrap:anywhere}.cal-secondary{border:1px solid var(--cal-line);border-radius:6px;padding:9px 12px;text-decoration:none;font-size:12px}.cal-inbox{padding:18px 0}.cal-inbox>h2,.cal-preferences>h2{font-weight:400;font-size:27px;margin-bottom:20px}.cal-inbox-row{display:flex!important;justify-content:space-between!important;gap:18px;width:100%;text-align:left;border-bottom:1px solid var(--cal-line)!important;border-radius:0!important;padding:15px 0!important}.cal-inbox-row b{font-weight:500;display:block}.cal-inbox-row small{display:block;margin-top:5px}.cal-inbox-row>span:last-child{font-size:11px;color:var(--cal-muted)}.cal-inbox-row.unread b:before{content:'•';color:var(--cal-accent);margin-right:8px}
.cal-compose-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px}.cal-fields{display:flex;flex-direction:column;gap:16px}.studio-calendar .cal-title-input{border:0;border-bottom:1px solid var(--cal-line);background:transparent;border-radius:0;font-size:23px;padding:5px 0 13px;letter-spacing:-.4px}.cal-form-row{display:flex;gap:15px;flex-wrap:wrap}.cal-form-row>label{flex:1;min-width:110px}.studio-calendar .cal-check{display:flex;align-items:center;gap:9px;color:var(--cal-text);min-height:35px}.cal-section-label,.cal-overlap-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11px;letter-spacing:.035em;color:var(--cal-muted);margin-bottom:13px}.cal-section-label>span{letter-spacing:0}.cal-planning{min-width:0}.cal-search-label{margin:15px 0 10px}.cal-pick-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px;max-height:180px;overflow:auto}.cal-pick-list button{font-size:12px;min-height:38px;padding:4px 8px}.cal-pick-list i{font-size:10px;color:var(--cal-muted)}.cal-pick-list .cal-avatar{width:22px;height:22px}.cal-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:22px}.cal-tags>span{font-size:11px;color:var(--cal-muted);margin-right:6px}.cal-tags button{font-size:11px;padding:5px 8px;min-height:26px;background:var(--cal-surface)}.cal-invite-row{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;min-height:80px;border-bottom:1px solid var(--cal-line)}.cal-invite-name{display:flex;align-items:center;gap:10px;min-width:0}.cal-invite-name b{font-size:12px;font-weight:500;overflow-wrap:anywhere}.cal-invite-name small{display:block;margin-top:3px;overflow-wrap:anywhere}.cal-invite-actions{display:flex;gap:10px}.cal-invite-actions button{padding:0;font-size:11px;color:var(--cal-accent);min-height:26px}.cal-local-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-self:stretch}.cal-local-grid>div{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:7px 1px;min-width:0;font-size:13px;font-variant-numeric:tabular-nums}.cal-local-grid small{text-align:center;overflow-wrap:anywhere}.cal-local-grid .selected{background:color-mix(in srgb,var(--teal,var(--cal-accent)) 7%,var(--cal-bg))}.cal-local-grid .available{color:var(--teal,var(--cal-accent))}.cal-local-grid .uncertain{color:var(--yellow,var(--cal-muted))}.cal-slot-row{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;margin-top:14px}.cal-slot-row>span{font-size:11px;color:var(--cal-muted)}.cal-slot-row>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.cal-slot-row button{font-size:12px;padding:8px 0}.cal-slot-row button[aria-pressed=true]{background:color-mix(in srgb,var(--teal,var(--cal-accent)) 9%,var(--cal-bg));color:var(--teal,var(--cal-accent))}.cal-planner-note{margin:20px 0!important;line-height:1.6}.cal-planning>label{margin-bottom:18px}.cal-compose-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--cal-line);margin-top:28px;padding:23px 0;flex-wrap:wrap}.cal-preferences{max-width:620px;padding:20px 0;display:flex;flex-direction:column;gap:20px}.cal-work-days{display:flex;flex-wrap:wrap;gap:7px}
.calendar-timeline{min-width:0;flex:1;container-type:inline-size;user-select:none}.cal-timeline-inner{display:flex;gap:8px;align-items:center;justify-content:flex-end}.cal-timeline-inner button{display:flex;gap:8px;align-items:center;border:0;background:transparent;color:var(--text);min-height:38px;padding:4px 9px;font-size:12px;border-radius:5px;cursor:pointer;min-width:0;text-align:left}.cal-timeline-inner button:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.cal-timeline-inner button>span:not(.cal-live-dot){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.cal-timeline-inner small{display:block;font-size:11px;color:var(--dim)}.cal-live-dot{width:5px;height:5px;background:var(--teal,var(--accent));border-radius:50%;flex-shrink:0}.cal-timeline-next small{color:var(--teal,var(--accent))}.cal-timeline-deadline>i{color:var(--accent)}.cal-timeline-away>i{color:var(--dim)}.cal-timeline-inner .cal-timeline-open>span{display:none}.main-head>.calendar-timeline{margin-left:12px;min-width:40px}
@container(max-width:510px){.cal-timeline-deadline{display:none!important}}
@container(max-width:350px){.cal-timeline-away{display:none!important}}
@container(max-width:220px){.cal-timeline-next{display:none!important}.cal-timeline-inner .cal-timeline-open>span{display:inline}}
@container(max-width:1050px){.cal-week{display:none}.cal-week-fallback{display:block}.cal-content{padding:24px 23px 0}.cal-compose-grid{grid-template-columns:220px minmax(0,1fr);gap:24px}.cal-invite-row,.cal-slot-row{grid-template-columns:115px minmax(0,1fr)}.cal-invite-name>.cal-avatar{display:none}}
@container(max-width:700px){.cal-compose-grid{grid-template-columns:1fr;gap:30px}.cal-content{padding:22px 18px 0}.cal-app-head{padding:0 16px;gap:5px}.cal-heading{flex-wrap:wrap}.cal-tabs{gap:18px}.cal-toolbar{gap:5px 10px}.cal-toolbar>.kp-select{width:100%}.cal-toolbar>.kp-select>button{width:100%}.cal-month-day{padding:4px;min-height:115px}.cal-month-day button{font-size:11px;padding:3px 1px}.cal-invite-row,.cal-slot-row{grid-template-columns:135px minmax(0,1fr)}.cal-section-head{flex-wrap:wrap}.cal-range-nav button{padding:5px 7px}.cal-people-table{margin-inline:-5px}.cal-detail-title{min-width:100%}.cal-inbox-row{flex-wrap:wrap}.cal-zone{display:block;margin:6px 0 0}.cal-footer>span:last-child{display:none}}
@container(max-width:430px){.cal-content{padding:20px 13px 0}.cal-app-head>span{font-size:11px}.cal-agenda-row{grid-template-columns:60px 1fr auto;gap:10px!important}.cal-agenda-row b{font-size:14px}.cal-invite-row,.cal-slot-row{grid-template-columns:90px minmax(0,1fr)}.cal-month-day>button{font-size:11px}.cal-month-day{min-height:95px}.cal-month-weekday{padding:3px}.cal-local-grid>div{font-size:12px}}
@media(pointer:coarse){.studio-calendar button,.cal-timeline-inner button{min-height:44px}.studio-calendar input:not([type=checkbox]),.studio-calendar textarea{font-size:16px}.cal-grid-event{min-height:0!important}}
@media(prefers-reduced-motion:no-preference){.studio-calendar button{transition:background .15s,color .15s}}
.studio-calendar-strip{display:flex;flex:0 0 43px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--bg-1)} .studio-calendar-strip>.calendar-timeline{width:100%}
.studio-calendar input.cal-title-input:not([type=checkbox]){border:0;border-bottom:1px solid var(--cal-line);background:transparent;border-radius:0;font-size:23px;padding:5px 0 13px;letter-spacing:-.4px}.cal-fields>label>.kp-select,.cal-planning>label>.kp-select{display:block}.cal-fields>label>.kp-select>button,.cal-planning>label>.kp-select>button{width:100%}.cal-local-grid .uncertain{color:var(--cal-muted)}.cal-local-grid .selected.uncertain{color:var(--cal-text)}

/* Calendar controls use the shared Kelp Pup input and menu geometry. */
.studio-calendar .kp-date-trigger{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--bg-1);padding:9px 12px;font-size:13px;justify-content:space-between}.studio-calendar .kp-time{background:var(--bg-1);font-size:13px}.studio-calendar .kp-time>.kp-select{display:inline-flex;margin-top:0}.studio-calendar .kp-time .kp-select-trigger{min-height:38px;justify-content:space-between}.studio-calendar .kp-select-trigger{border-radius:10px;justify-content:space-between}.studio-calendar .kp-date-trigger[aria-expanded=true],.studio-calendar .kp-date-trigger:focus-visible{border-color:var(--accent)}.cal-fields>.cal-form-row>label{min-width:118px}.cal-fields .kp-date-trigger,.cal-fields .kp-time{width:100%}.cal-preferences .kp-time{max-width:230px}

/* Event editor: distinct surfaces separate details, schedule, people and notes. */
.cal-composer{max-width:1280px;margin:0 auto 28px}.cal-editor-heading{margin:24px 0 18px;align-items:center}.cal-editor-heading h2{margin:0;font-size:23px}.cal-composer .cal-compose-grid{grid-template-columns:360px minmax(0,1fr);gap:20px;align-items:start}.cal-editor-column{display:flex;flex-direction:column;gap:18px;min-width:0}.cal-editor-panel{background:var(--bg-2);border:1px solid color-mix(in srgb,var(--text) 13%,var(--line));border-radius:12px;padding:20px;box-shadow:0 2px 7px #0000000c;min-width:0}.cal-editor-panel h3{font-size:14px;font-weight:600;color:var(--text);margin:0}.cal-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.cal-panel-heading>span{font-size:11px;color:var(--dim)}.cal-editor-panel.cal-fields{gap:15px}.cal-editor-panel label{color:var(--text);font-size:12px}.studio-calendar .cal-editor-panel input:not([type=checkbox]),.studio-calendar .cal-editor-panel textarea,.studio-calendar .cal-editor-panel .kp-select-trigger,.studio-calendar .cal-editor-panel .kp-date-trigger,.studio-calendar .cal-editor-panel .kp-time{background:var(--bg-0);border-color:color-mix(in srgb,var(--text) 13%,var(--line))}.studio-calendar .cal-editor-panel .kp-select,.cal-editor-panel label>.kp-select{display:block;width:100%}.studio-calendar .cal-editor-panel .kp-time>.kp-select{display:inline-flex;width:auto}.studio-calendar .cal-editor-panel input.cal-event-name{font-size:18px;font-weight:500;padding:11px 12px}.cal-editor-panel .cal-form-row{gap:12px}.cal-editor-panel .cal-form-row>label{min-width:120px}.cal-editor-panel .cal-check{margin:0;min-height:28px;line-height:1.5}.cal-duration-summary{align-self:flex-start;font-size:11px;color:var(--dim);padding:4px 9px;background:var(--bg-1);border:1px solid var(--line);border-radius:6px;margin-top:-5px}.cal-repeat-fields{padding-top:15px;border-top:1px solid var(--line)}.cal-people-panel .cal-search-label{margin-top:20px}.cal-people-panel .cal-pick-list{gap:6px;margin-top:12px}.cal-people-panel .cal-pick-list button{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;min-height:34px}.cal-people-panel .cal-tags{margin-bottom:20px}.cal-attendee-heading{display:flex;justify-content:space-between;padding:12px 0 9px;border-top:1px solid var(--line);font-size:11px;color:var(--dim)}.cal-people-panel .cal-invite-row{grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:14px 0;min-height:84px}.cal-people-panel .cal-invite-name>.cal-avatar{display:inline-flex}.cal-people-panel .cal-invite-name b{font-size:13px}.cal-invite-local{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:100px}.cal-invite-local strong{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.cal-availability{font-size:10px;color:var(--dim);background:var(--bg-1);padding:3px 7px;border-radius:5px}.cal-availability.available{color:var(--teal,var(--accent));background:color-mix(in srgb,var(--teal,var(--accent)) 10%,var(--bg-1))}.cal-editor-note{margin-top:14px!important}.cal-notes-panel textarea{margin-top:15px!important;min-height:175px;line-height:1.6}.cal-compose-footer{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;margin-top:20px;padding:14px 18px}.cal-compose-footer>div{display:flex;gap:9px}.cal-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@container(max-width:1050px){.cal-composer .cal-compose-grid{grid-template-columns:320px minmax(0,1fr);gap:16px}.cal-editor-panel{padding:16px}.cal-people-panel .cal-invite-name>.cal-avatar{display:none}}
@container(max-width:760px){.cal-composer .cal-compose-grid{grid-template-columns:minmax(0,1fr)}.cal-editor-panel{padding:18px}.cal-people-panel .cal-invite-name>.cal-avatar{display:inline-flex}}
@container(max-width:430px){.cal-editor-panel{padding:13px}.cal-people-panel .cal-invite-name>.cal-avatar{display:none}.cal-people-panel .cal-invite-row{gap:10px}.cal-invite-local strong{font-size:12px}.cal-editor-panel .cal-form-row{gap:9px}.cal-compose-footer{padding:12px}.cal-compose-footer>span{display:none}}

/* Visible event kinds and paired start/end rows. */
.cal-event-types{min-width:0;border:0;padding:0;margin:0}.cal-event-types legend{padding:0;margin-bottom:8px;color:var(--text);font-size:12px}.cal-event-types>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.cal-editor-panel .cal-type-choice{position:relative;display:flex;align-items:center;gap:9px;min-height:42px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg-1);cursor:pointer;color:var(--dim);font-size:12px}.studio-calendar .cal-type-choice input[type=radio]{position:absolute;width:1px;height:1px;padding:0;opacity:0;margin:0;clip-path:inset(50%);overflow:hidden}.cal-type-choice>i:first-of-type{width:16px;text-align:center;font-size:13px}.cal-type-choice .cal-type-check{margin-left:auto;font-size:9px;visibility:hidden}.cal-editor-panel .cal-type-choice.is-selected{color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--bg-0));border-color:color-mix(in srgb,var(--accent) 65%,var(--line))}.cal-type-choice.is-selected>i{color:var(--accent)}.cal-type-choice.is-selected .cal-type-check{visibility:visible}.cal-type-choice:hover{border-color:var(--accent)}.cal-type-choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.cal-schedule-row{min-width:0}.cal-schedule-label{font-size:12px;color:var(--dim)}.cal-schedule-row>div{display:flex;gap:8px;align-items:flex-start}.cal-schedule-row .kp-date{flex:1;min-width:0}.cal-schedule-row .kp-time-field{flex:0 0 114px}.cal-schedule-row .kp-date-trigger{padding:9px 10px}.cal-duration-presets{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:-3px}.studio-calendar .cal-duration-presets button{font-size:11px;border:1px solid var(--line);background:var(--bg-1);border-radius:6px;padding:5px 8px;color:var(--dim)}.studio-calendar .cal-duration-presets button[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--bg-1))}.cal-duration-presets>span{font-size:11px;color:var(--dim);margin-left:auto;font-variant-numeric:tabular-nums}
@container(max-width:430px){.cal-schedule-row .kp-time-field{flex-basis:105px}.cal-event-types>div{gap:6px}.cal-editor-panel .cal-type-choice{padding:9px 7px;gap:6px}}

/* Focused event dialog. The calendar remains visible behind this single surface. */
.studio-calendar .cal-editor-dialog{width:min(1040px,calc(100vw - 48px));max-width:none;max-height:calc(var(--cal-viewport-height,100dvh) - 48px);padding:0;margin:auto;border:1px solid var(--line);border-radius:16px;background:var(--bg-1);color:var(--text);box-shadow:0 18px 50px #0004;overflow:visible;user-select:none;font-size:15px}.cal-editor-dialog::backdrop,.cal-discard-dialog::backdrop{background:#0908119c}.cal-event-form{display:flex;flex-direction:column;max-height:calc(var(--cal-viewport-height,100dvh) - 48px);min-height:0}.studio-calendar .cal-editor-header{display:flex;align-items:center;gap:14px;padding:18px 28px;border-bottom:1px solid var(--line);flex-shrink:0}.cal-editor-header>i{font-size:21px;color:var(--accent)}.studio-calendar .cal-editor-header h2{font-size:18px;font-weight:600;margin:0}.studio-calendar .cal-editor-close{margin-left:auto;width:36px;padding:6px;font-size:19px;color:var(--dim)}.studio-calendar .cal-editor-body{border:0;margin:0;padding:26px 28px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-template-areas:"title guests" "schedule guests" "meta guests" "notes guests" "settings guests";gap:24px 0;align-items:start;overflow:auto;overscroll-behavior:contain;min-height:0;min-width:0;scrollbar-gutter:stable}.cal-editor-body>*{min-width:0}.cal-editor-title{grid-area:title}.cal-editor-schedule{grid-area:schedule}.cal-editor-meta{grid-area:meta}.cal-editor-guests{grid-area:guests}.cal-editor-description{grid-area:notes}.cal-editor-settings{grid-area:settings}.studio-calendar .cal-editor-dialog h3{font-size:16px;font-weight:500;margin:0 0 12px}.studio-calendar .cal-editor-dialog label{font-size:15px;color:var(--text)}.studio-calendar .cal-editor-dialog input:not([type=checkbox]),.studio-calendar .cal-editor-dialog textarea{font-size:15px;background:transparent;border:1px solid var(--line);border-radius:8px;padding:11px 12px;margin-top:8px;color:var(--text)}.studio-calendar .cal-editor-dialog input::placeholder,.studio-calendar .cal-editor-dialog textarea::placeholder{color:var(--dim)}.studio-calendar .cal-editor-title input{font-size:30px;font-weight:600;letter-spacing:-.6px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 15px;margin:0;min-width:0;width:100%;text-overflow:ellipsis}.studio-calendar .cal-editor-title input:focus{outline:0;box-shadow:none;border-color:var(--accent)}.studio-calendar .cal-editor-dialog :is(button,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.studio-calendar .cal-editor-dialog .kp-select{width:100%;margin:8px 0 0;display:block;min-width:0}.studio-calendar .cal-editor-dialog .kp-select-trigger,.studio-calendar .cal-editor-dialog .kp-date-trigger{min-height:44px;padding:10px 12px;border-radius:8px;background:transparent;color:var(--text);font-size:15px;line-height:22px}.cal-editor-dialog .kp-select-trigger>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-editor-dialog .kp-date{margin-top:0}.studio-calendar .cal-editor-dialog .kp-time{margin:0;background:transparent;border-radius:8px;font-size:15px}.studio-calendar .cal-editor-dialog .kp-time input{padding:10px!important;min-height:42px}.studio-calendar .cal-editor-dialog .kp-time .kp-select{margin:0;display:flex;width:34px;flex:none}.studio-calendar .cal-editor-dialog .kp-time .kp-select-trigger{min-height:42px}.cal-editor-date-row{display:flex;align-items:center;gap:18px}.cal-editor-date-row>.kp-date{flex:1}.studio-calendar .cal-all-day-switch{display:flex;align-items:center;gap:9px;white-space:nowrap;position:relative;cursor:pointer}.cal-all-day-switch input{position:absolute;opacity:0;width:1px;height:1px}.cal-all-day-switch>span{width:36px;height:22px;border-radius:20px;background:var(--line);padding:3px;display:block;flex:none}.cal-all-day-switch>span::after{content:'';display:block;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .12s}.cal-all-day-switch input:checked+span{background:var(--accent)}.cal-all-day-switch input:checked+span::after{transform:translateX(14px);background:var(--bg-0)}.cal-all-day-switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}.studio-calendar .cal-add-end-date{font-size:12px;color:var(--dim);min-height:26px;padding:3px 0;margin-top:3px}.cal-editor-end-date{display:flex;align-items:end;gap:8px;margin-top:12px}.cal-editor-end-date>label{flex:1}.cal-editor-end-date .kp-date{margin-top:8px}.cal-editor-time-row{display:grid;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) auto;align-items:center;gap:12px;margin:10px 0 16px}.cal-editor-time-row>i{font-size:13px;color:var(--dim)}.cal-editor-duration{font-size:13px;color:var(--dim);min-width:45px}.cal-editor-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.cal-zone-picker{position:relative;min-width:0}.studio-calendar .cal-zone-picker>.kp-select{margin:0}.cal-zone-picker .kp-select-trigger>span{opacity:0}.cal-zone-picker>.cal-zone-label{position:absolute;left:12px;right:30px;top:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;font-size:14px}.cal-zone-picker>.cal-zone-label>i{margin-right:8px;color:var(--dim)}.studio-calendar .cal-recurrence-trigger{width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;gap:9px;text-align:left}.cal-recurrence-trigger>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-recurrence-trigger>i{color:var(--dim);font-size:12px}.cal-occurrence-note{font-size:13px;padding:12px;color:var(--dim)}.cal-recurrence-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;padding:16px 0;border-top:1px solid var(--line)}.studio-calendar .cal-editor-help{font-size:12px;line-height:1.5;color:var(--dim);margin:9px 0 0}.studio-calendar .cal-editor-description textarea{min-height:88px;resize:none;line-height:1.6;overflow:hidden}.cal-editor-settings{border-top:1px solid var(--line)}.studio-calendar .cal-editor-settings>label{display:grid;grid-template-columns:20px auto minmax(0,1fr);align-items:center;gap:12px;min-height:49px;border-bottom:1px solid var(--line);color:var(--dim);font-size:14px}.cal-editor-settings>label>i{font-size:17px}.studio-calendar .cal-editor-settings .kp-select{margin:0;justify-self:end;width:auto;max-width:100%}.studio-calendar .cal-editor-settings .kp-select-trigger{background:none;border:0;min-height:44px;padding:8px 0 8px 10px;font-size:14px}.cal-editor-guests{margin-left:28px;padding-left:26px;border-left:1px solid var(--line);align-self:stretch}.cal-guests-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.studio-calendar .cal-guests-heading h3{font-size:20px;font-weight:600;margin:0}.cal-guests-heading>span{color:var(--dim);font-size:13px;white-space:nowrap}.cal-guest-search{position:relative}.cal-guest-search>i{position:absolute;left:12px;top:15px;color:var(--dim);font-size:15px;pointer-events:none}.studio-calendar .cal-guest-search input{margin:0;padding-left:36px;min-height:44px;font-size:14px}.cal-guest-results{position:fixed;max-height:230px;overflow:auto;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px #0004;z-index:4;padding:5px}.cal-guest-results>[role=option]{position:relative;padding:9px 26px 9px 9px;border-radius:5px;cursor:pointer;overflow-wrap:anywhere}.cal-guest-results>[role=option][aria-selected=true]{background:var(--hover)}.cal-guest-results b{font-size:14px;font-weight:500;display:block}.cal-guest-results small{font-size:12px;display:block;margin-top:3px}.cal-guest-results i{position:absolute;right:9px;top:15px;color:var(--dim);font-size:11px}.cal-guest-results p{font-size:13px;color:var(--dim);padding:12px;line-height:1.5}.cal-guest-groups{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}.studio-calendar .cal-guest-groups button{border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:12px;color:var(--dim);min-height:30px}.cal-editor-guest-list{max-height:440px;overflow:auto;scrollbar-width:thin}.cal-guest{display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 10px;padding:12px 0;min-width:0}.cal-guest-avatar{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--accent) 20%,var(--bg-2));font-size:12px;color:var(--text);overflow:hidden}.cal-guest-avatar img{width:100%;height:100%;object-fit:cover}.cal-guest-name b{font-size:14px;font-weight:500;overflow-wrap:anywhere;display:block}.cal-guest-name small{font-size:12px;line-height:1.5;display:block;margin-top:3px}.cal-guest-actions{display:flex;gap:8px;align-items:center}.studio-calendar .cal-guest-actions button{min-height:28px;font-size:11px;padding:3px 0;color:var(--dim)}.studio-calendar .cal-guest-actions button:last-child{min-width:28px;margin-left:auto}.cal-guest-time{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;font-size:12px;color:var(--dim)}.cal-guest-time small{font-size:12px}.cal-guest-status{display:inline-flex;align-items:center;gap:5px;font-size:12px;line-height:1.5}.cal-guest-status>i{display:block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--dim)}.cal-guest-status.is-free>i{background:var(--green,#79bf8c)}.cal-guest-status.is-conflict>i{background:var(--yellow,#d0a568)}.cal-guest-summary{border-top:1px solid var(--line);margin-top:24px;padding-top:22px;display:flex;align-items:start;gap:12px}.cal-guest-summary>i{font-size:26px;color:var(--dim)}.cal-guest-summary.is-free>i{color:var(--green,#79bf8c)}.cal-guest-summary strong{font-size:14px;font-weight:500}.studio-calendar .cal-guest-summary p{font-size:13px;line-height:1.6;color:var(--dim);margin:6px 0 0}.studio-calendar .cal-editor-footer{padding:16px 24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;background:var(--bg-1);border-radius:0 0 16px 16px}.cal-editor-privacy{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--dim);min-width:0}.cal-editor-privacy>i{font-size:17px}.cal-editor-footer>div{display:flex;gap:12px;align-items:center}.studio-calendar .cal-editor-footer button{min-height:44px;padding:10px 18px;border:1px solid var(--line);border-radius:8px;font-size:14px}.studio-calendar .cal-editor-footer .cal-primary{border-color:transparent;background:var(--accent);color:var(--cal-bg);font-weight:500}.cal-save-error{flex:1 0 100%;font-size:13px}.studio-calendar .cal-discard-dialog{width:min(400px,calc(100vw - 32px));margin:auto;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);color:var(--text);box-shadow:0 15px 40px #0004}.cal-discard-dialog p{margin:12px 0 20px!important;font-size:14px;color:var(--dim)}.cal-discard-dialog>div{display:flex;justify-content:flex-end;gap:8px}.cal-create-slot{position:absolute!important;inset:0!important;width:100%;height:100%;border-radius:0!important;z-index:0}.cal-create-slot:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)!important}.cal-grid-event{z-index:1}.cal-now{pointer-events:none}.studio-calendar .cal-month-create{width:auto;min-height:26px;min-width:26px;padding:3px;border-radius:6px}
@media(min-width:1000px){.cal-guest{grid-template-columns:34px minmax(0,1fr) auto}.cal-guest-time{grid-column:3;grid-row:1/3;flex-direction:column;align-items:flex-end;max-width:122px;text-align:right}.cal-guest-avatar{grid-row:1}.cal-guest-name{grid-column:2}.cal-guest-status{justify-content:flex-end}}
@media(max-width:700px){.studio-calendar .cal-editor-dialog{width:100vw;height:var(--cal-viewport-height,100dvh);max-height:var(--cal-viewport-height,100dvh);top:var(--cal-viewport-top,0px);bottom:auto;border:0;border-radius:0}.cal-event-form{height:100%;max-height:var(--cal-viewport-height,100dvh)}.studio-calendar .cal-editor-header{padding:14px 18px}.studio-calendar .cal-editor-body{display:flex;flex-direction:column;padding:22px 18px;gap:24px;scrollbar-gutter:auto}.cal-editor-body>*{width:100%;flex-shrink:0}.cal-editor-guests{margin:0;padding:22px 0 0;border:0;border-top:1px solid var(--line)}.cal-editor-guest-list{max-height:none;overflow:visible}.studio-calendar .cal-editor-title input{font-size:28px}.cal-editor-two{grid-template-columns:minmax(0,1fr);gap:12px}.cal-editor-meta .cal-editor-two{gap:16px}.cal-editor-date-row{gap:12px}.cal-editor-time-row{gap:8px;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr) auto}.cal-editor-duration{min-width:38px;font-size:12px}.studio-calendar .cal-editor-dialog .kp-select-trigger,.studio-calendar .cal-editor-dialog .kp-date-trigger{font-size:14px;padding:10px}.studio-calendar .cal-editor-footer{border-radius:0;padding:12px 16px max(12px,env(safe-area-inset-bottom))}.cal-editor-privacy{font-size:11px;width:100%}.cal-editor-footer>div{width:100%;justify-content:flex-end}.studio-calendar .cal-editor-footer button{font-size:13px;padding:10px 13px}.cal-editor-header h2{font-size:17px}.cal-guest{grid-template-columns:36px minmax(0,1fr)}.studio-calendar .cal-editor-dialog input:not([type=checkbox]),.studio-calendar .cal-editor-dialog textarea{font-size:16px}.studio-calendar .cal-editor-dialog .kp-time input{padding:8px!important}.studio-calendar .cal-editor-settings>label{gap:8px;font-size:13px}.studio-calendar .cal-editor-settings .kp-select-trigger{font-size:13px}}
@media(prefers-reduced-motion:reduce){.cal-all-day-switch>span::after{transition:none}}

.cal-editor-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-gutter:stable}.studio-calendar .cal-editor-body{overflow:visible;scrollbar-gutter:auto}.studio-calendar .cal-editor-dialog .cal-editor-title input:not([type=checkbox]){font-size:30px;font-weight:600;letter-spacing:-.6px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:0 0 15px;margin:0}.studio-calendar .cal-editor-dialog .cal-guest-search input:not([type=checkbox]){margin:0;padding-left:36px;font-size:14px}.studio-calendar .cal-zone-picker>.kp-select{position:static}
@media(max-width:700px){.cal-editor-scroll{scrollbar-gutter:auto}.studio-calendar .cal-editor-dialog .cal-editor-title input:not([type=checkbox]){font-size:28px}.studio-calendar .cal-editor-dialog .cal-guest-search input:not([type=checkbox]){font-size:16px}}

.studio-calendar .cal-editor-dialog,.studio-calendar .cal-editor-footer{background:color-mix(in srgb,var(--bg-1) 76%,var(--bg-0))}.cal-editor-scroll{scroll-padding-block:16px}.cal-guest-results>[role=option]{scroll-margin-block:5px}

/* Recurrence days share the editor's focus, theme and motion conventions. */
.cal-repeat-days{grid-column:1/-1;min-width:0}.cal-repeat-days>span{font-size:14px}.cal-repeat-days>[role=group]{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:10px}.studio-calendar .cal-repeat-days button{min-width:0;min-height:38px;padding:8px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg-1);color:var(--dim);font-size:12px;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.studio-calendar .cal-repeat-days button:hover{border-color:var(--accent);color:var(--text)}.studio-calendar .cal-repeat-days button[aria-pressed=true]{border-color:color-mix(in srgb,var(--accent) 70%,var(--line));background:color-mix(in srgb,var(--accent) 19%,var(--bg-1));color:var(--text);box-shadow:inset 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}.studio-calendar .cal-repeat-days button:active{transform:scale(.95)}
@media(prefers-reduced-motion:reduce){.studio-calendar .cal-repeat-days button{transition:none;transform:none}}
/* Shared surfaces and control geometry with the event editor. */
.studio-calendar.cal-workspace{--cal-hour:70px;--cal-columns:106px repeat(7,minmax(118px,1fr));display:grid;grid-template-columns:270px minmax(0,1fr);overflow:hidden;position:relative;background:color-mix(in srgb,var(--bg-0) 86%,var(--bg-1));font-size:14px}.cal-workspace .source-studio{--event-color:var(--accent)}.cal-workspace .source-mine{--event-color:var(--teal,#71b9fa)}.cal-workspace button:focus-visible,.cal-workspace [tabindex]:focus-visible,.cal-workspace input:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cal-sidebar{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--cal-rule,var(--line));background:color-mix(in srgb,var(--bg-1) 76%,var(--bg-0));padding:24px 20px;gap:24px}.cal-sidebar-identity{display:flex;align-items:center;gap:14px;min-height:30px;font-size:16px}.cal-sidebar-identity>i{color:var(--accent);font-size:24px}.studio-calendar .cal-sidebar-create{width:100%;min-height:44px;font-size:14px;border-radius:8px;gap:10px;font-weight:500}.cal-sidebar-middle{overflow:auto;min-height:0;scrollbar-width:thin}.cal-mini{margin:4px 0 30px}.cal-mini-heading{display:flex;align-items:center;gap:2px;margin-bottom:16px}.studio-calendar .cal-mini-heading h2{font-size:14px;font-weight:500;margin:0;flex:1}.studio-calendar .cal-mini-heading button{min-height:28px;width:26px;padding:4px;font-size:10px;color:var(--dim)}.cal-mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px 0}.cal-mini-grid>[role=columnheader]{font-size:11px;color:var(--dim);text-align:center;padding:4px 0 10px}.studio-calendar .cal-mini-grid button{padding:0;min-height:29px;border-radius:0;position:relative;color:var(--text);font-size:12px;font-weight:400}.cal-mini-grid button>span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}.cal-mini-grid button.in-range{background:color-mix(in srgb,var(--accent) 9%,transparent)}.cal-mini-grid button.outside{color:color-mix(in srgb,var(--dim) 60%,transparent)}.cal-mini-grid button.today>span{background:var(--accent);color:var(--bg-0)}.cal-mini-grid button.selected:not(.today)>span{box-shadow:inset 0 0 0 1px var(--accent)}.cal-calendar-filters{border:0;margin:0;padding:0}.cal-calendar-filters legend{font-size:13px;color:var(--dim);padding:0;margin-bottom:14px}.studio-calendar .cal-calendar-filters label{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:14px;color:var(--text);cursor:pointer}.cal-calendar-filters input{accent-color:var(--event-color)!important;width:19px!important;height:19px!important;margin:0}.studio-calendar .cal-calendar-filters p{font-size:11px;line-height:1.5;color:var(--dim);margin-top:20px}.cal-main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;position:relative}.cal-main-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 18px;flex:none}.cal-main-heading{display:flex;align-items:flex-start;gap:22px;min-width:0;flex-wrap:wrap}.studio-calendar .cal-main-heading h1{font-size:28px;line-height:1.2;font-weight:600;margin:0;letter-spacing:-.6px}.studio-calendar .cal-main-heading p{margin:7px 0 0;color:var(--dim);font-size:13px}.cal-period-nav{display:flex;gap:8px;align-items:center;flex:none}.studio-calendar .cal-period-nav button{border:1px solid var(--cal-rule,var(--line));border-radius:8px;min-height:40px;font-size:14px;padding:8px 13px}.cal-period-nav button:first-child{margin-right:3px;min-width:72px}.cal-main-utilities{display:flex;gap:6px;align-items:center;flex:none}.studio-calendar .cal-main-utilities>button{position:relative;min-width:40px;min-height:40px;padding:8px;font-size:17px;color:var(--dim)}.cal-unread-dot{position:absolute;right:8px;top:6px;border-radius:50%;width:6px;height:6px;background:var(--accent)}.studio-calendar .cal-main-utilities>.cal-toolbar-create{display:none;font-size:13px;color:var(--bg-0);gap:7px;padding:8px 12px}.studio-calendar .cal-drawer-trigger{display:none;min-height:40px;min-width:40px;font-size:17px;padding:8px}.cal-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px 16px;border-bottom:1px solid var(--cal-rule,var(--line));flex:none}.cal-view-toolbar nav{display:flex;gap:4px}.studio-calendar .cal-view-toolbar nav button{border:1px solid transparent;border-radius:8px;font-size:14px;padding:8px 15px;min-height:38px;color:var(--dim)}.cal-view-toolbar nav button.active{background:color-mix(in srgb,var(--accent) 14%,var(--bg-1));border-color:color-mix(in srgb,var(--accent) 20%,var(--cal-rule,var(--line)));color:var(--accent);font-weight:500}.studio-calendar .cal-view-toolbar>.kp-select{margin:0;min-width:180px}.studio-calendar .cal-view-toolbar .kp-select-trigger{min-height:40px;background:transparent;border:1px solid var(--cal-rule,var(--line));border-radius:8px;font-size:13px;padding:9px 12px}.cal-view-stage{flex:1;min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}.cal-view-stage.is-scrollable{overflow:auto}.studio-calendar .cal-feed-state{font-size:12px;color:var(--dim);margin:0;padding:8px 24px;border-bottom:1px solid var(--cal-rule,var(--line));flex:none}.studio-calendar .cal-workspace-error{margin:8px 16px!important;flex:none}.cal-view-stage>.cal-inbox,.cal-view-stage>.cal-preferences,.cal-view-stage>.cal-people{padding:24px;max-width:none}.cal-view-stage .cal-section-head{margin-top:0}
/* One scroll surface keeps all seven columns aligned; header and gutter remain sticky. */
.cal-week-viewport{height:100%;overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}.cal-week-canvas{min-width:932px;position:relative;min-height:100%}.cal-week-sticky{position:sticky;top:0;z-index:10;background:var(--cal-bg);border-bottom:1px solid var(--cal-rule,var(--line))}.cal-day-headers,.cal-away-strip,.cal-daylong-grid,.cal-week-timegrid{display:grid;grid-template-columns:var(--cal-columns)}.cal-day-headers{height:100px;border-bottom:1px solid var(--cal-rule,var(--line))}.cal-timezone-cell{position:sticky;left:0;z-index:3;display:flex;flex-direction:column;justify-content:center;padding:12px 9px;gap:7px;background:var(--cal-bg);border-right:1px solid var(--cal-rule,var(--line));font-size:12px;min-width:0}.cal-timezone-cell b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-timezone-cell span{color:var(--dim);font-size:11px}.cal-day-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--cal-rule,var(--line));gap:3px;min-width:0}.cal-day-heading>span{text-transform:uppercase;font-size:11px;color:var(--dim)}.cal-day-heading>b{display:flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:24px;line-height:36px;font-weight:400;border-radius:50%}.cal-day-heading.today{background:color-mix(in srgb,var(--accent) 4%,transparent)}.cal-day-heading.today>b{background:var(--accent);color:var(--bg-0)}.cal-day-heading.weekend>span,.cal-day-heading.weekend>b{color:var(--dim)}.cal-day-heading.weekend.today>b{color:var(--bg-0)}.studio-calendar .cal-day-heading>button{font-size:10px;min-height:19px;padding:1px 6px;color:var(--dim)}.cal-day-heading>small{height:19px}.cal-grid-gutter{position:sticky;left:0;z-index:3;background:var(--cal-bg);padding:9px 10px;font-size:11px;color:var(--dim);border-right:1px solid var(--cal-rule,var(--line))}.cal-away-strip{min-height:34px;border-bottom:1px solid var(--cal-rule,var(--line));align-items:center}.cal-away-strip>div{padding:3px 5px;min-width:0}.cal-away-strip>p{grid-column:2/-1;font-size:12px;color:var(--dim);padding:6px 10px}.studio-calendar .cal-away-tag{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;min-height:25px;padding:4px 7px;border-radius:5px;border:0;background:color-mix(in srgb,var(--dim) 9%,transparent);color:var(--dim);font-size:11px;font-weight:400;line-height:17px;white-space:nowrap}.cal-away-tag>i{flex:none;font-size:10px}.cal-away-tag>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-away-tag:hover,.cal-away-tag[aria-expanded=true]{background:color-mix(in srgb,var(--dim) 15%,transparent)}.cal-daylong-grid{padding:3px 0;min-height:38px;position:relative}.studio-calendar .cal-daylong-slot{border-right:1px solid var(--cal-rule,var(--line));border-radius:0;padding:0;min-height:0;min-width:0;z-index:0}.studio-calendar .cal-daylong-event{z-index:1;margin:3px 3px;min-height:0;height:26px;min-width:0;display:flex;gap:7px;justify-content:flex-start;padding:3px 9px;border:1px solid color-mix(in srgb,var(--event-color) 45%,var(--cal-rule,var(--line)));border-left:3px solid var(--event-color);border-radius:6px;background:color-mix(in srgb,var(--event-color) 15%,var(--cal-bg));font-size:12px;color:var(--text)}.cal-daylong-event>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}.cal-daylong-event>i{font-size:10px}.studio-calendar .cal-all-day-more{display:block;margin-left:106px;padding:1px 9px;min-height:23px;color:var(--dim);font-size:11px}.cal-week-timegrid{height:1680px;position:relative}.cal-time-gutter{position:sticky;left:0;height:1680px;z-index:5;background:var(--cal-bg);border-right:1px solid var(--cal-rule,var(--line))}.cal-time-gutter>span{position:absolute;right:14px;font-size:12px;color:var(--dim);transform:translateY(5px);font-variant-numeric:tabular-nums}.cal-grid-track{position:relative;border-right:1px solid var(--cal-rule,var(--line));min-width:0;height:1680px}.cal-grid-track.today{background:color-mix(in srgb,var(--accent) 4%,transparent)}.cal-grid-track.weekend:not(.today){background:color-mix(in srgb,var(--bg-1) 16%,transparent)}.cal-hour-rule{position:absolute;left:0;right:0;height:70px;border-top:1px solid var(--cal-rule,var(--line));pointer-events:none}.cal-hour-rule:after{content:'';position:absolute;left:0;right:0;top:34px;border-top:1px dashed color-mix(in srgb,var(--cal-rule,var(--line)) 60%,transparent)}.studio-calendar .cal-empty-slot{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;min-height:0;z-index:0;background:transparent}.cal-slot-marker{display:none;position:absolute;left:0;right:0;height:17.5px;text-align:right;font-size:10px;padding-right:5px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent);pointer-events:none}.cal-empty-slot:hover>.cal-slot-marker,.cal-empty-slot:focus-visible>.cal-slot-marker{display:block}.studio-calendar .cal-timed-event{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;min-height:0!important;margin:0;border:1px solid color-mix(in srgb,var(--event-color) 35%,var(--cal-rule,var(--line)));border-left:3px solid var(--event-color);border-radius:6px;background:color-mix(in srgb,var(--event-color) 16%,var(--cal-bg));color:var(--text);padding:6px 9px;overflow:hidden;text-align:left;font-size:12px;line-height:16px;box-shadow:none}.cal-timed-event>b{font-weight:600;max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:0;line-height:16px}.cal-timed-event>small{font-size:11px;color:var(--dim);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;line-height:14px;flex-shrink:0}.cal-timed-event>i{position:absolute;right:5px;top:5px;font-size:10px;color:var(--dim)}.cal-timed-event:has(>i)>b{max-width:calc(100% - 13px)}.studio-calendar .cal-timed-event.short{padding:0 5px;border-top:0;border-bottom:0;border-radius:3px;line-height:12px}.cal-timed-event.short>b{font-size:10px;line-height:12px}.studio-calendar .cal-timed-event.selected{outline:2px solid var(--event-color);outline-offset:-1px;background:color-mix(in srgb,var(--event-color) 26%,var(--cal-bg))}.studio-calendar .cal-timed-event:hover{background:color-mix(in srgb,var(--event-color) 24%,var(--cal-bg))}.studio-calendar .cal-cluster-more{position:absolute;z-index:3;min-height:24px;border-radius:5px;padding:3px;background:var(--bg-2);color:var(--accent);border:1px solid var(--cal-rule,var(--line));font-size:11px}.cal-current-time{position:absolute;left:0;right:0;border-top:1px solid var(--accent);z-index:4;pointer-events:none}.cal-current-time:before{content:'';position:absolute;left:0;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.cal-current-time>span{position:absolute;top:-15px;left:8px;background:var(--cal-bg);padding:0 3px;color:var(--accent);font-size:10px;line-height:14px}
/* The same away popover is used in all views and stays inside the viewport. */
.cal-away-popover{position:fixed;z-index:100080;display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--cal-rule,var(--line));border-radius:10px;box-shadow:0 9px 24px #0004;color:var(--text);font-size:13px;font-family:inherit;overflow:hidden;user-select:none}.cal-away-popover:focus-visible,.cal-away-popover :focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cal-away-popover header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 12px 10px;gap:8px;flex:none;border-bottom:1px solid var(--cal-rule,var(--line))}.cal-away-popover h3{font-size:13px;line-height:1.5;font-weight:500;margin:0}.cal-away-popover button{min-width:28px;min-height:28px;background:none;border:0;border-radius:5px;color:var(--dim);cursor:pointer}.cal-away-popover button:hover{background:var(--hover)}.cal-away-popover ul{list-style:none;margin:0;padding:7px 12px;overflow:auto;min-height:0;overscroll-behavior:contain}.cal-away-popover li{display:flex;align-items:center;gap:10px;padding:8px 0;min-width:0}.cal-away-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;flex:none;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,var(--bg-1));font-size:11px}.cal-away-avatar img{width:100%;height:100%;object-fit:cover}.cal-away-popover li>span:last-child{min-width:0}.cal-away-popover b{font-size:13px;font-weight:500;display:block;overflow-wrap:anywhere}.cal-away-popover small{display:block;font-size:11px;color:var(--dim);line-height:1.5;margin-top:3px}.cal-away-state{padding:10px 20px;font-size:12px;color:var(--dim)}
/* Agenda, Month and People preserve the same date and absence model. */
.cal-agenda-days{padding:10px 24px 28px}.cal-agenda-day{padding:20px 0;border-bottom:1px solid var(--cal-rule,var(--line))}.cal-agenda-day>header{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.studio-calendar .cal-agenda-day h2{font-size:16px;font-weight:500;margin:0}.cal-agenda-day .cal-away-tag{max-width:300px}.studio-calendar .cal-agenda-event{display:grid;grid-template-columns:140px minmax(0,1fr) 20px;align-items:center;gap:18px;min-height:60px;border-radius:6px;width:100%;text-align:left;padding:10px 14px;margin:6px 0;border-left:3px solid var(--event-color);background:color-mix(in srgb,var(--event-color) 7%,transparent);font-size:13px}.cal-agenda-event>span:first-child{font-variant-numeric:tabular-nums;color:var(--dim)}.cal-agenda-event b{display:block;font-weight:500;font-size:14px;overflow-wrap:anywhere}.cal-agenda-event small{display:block;font-size:12px;color:var(--dim);margin-top:4px}.cal-agenda-event>i{color:var(--dim);font-size:11px}.studio-calendar .cal-agenda-empty{font-size:12px;color:var(--dim);padding:5px 0}.cal-month-scroll{overflow:auto;flex:1;min-height:0}.cal-workspace .cal-month-board{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));min-width:805px;min-height:100%;border:0;gap:0}.cal-month-board>.cal-month-weekday{position:sticky;top:0;z-index:2;text-align:center;background:var(--cal-bg);border-bottom:1px solid var(--cal-rule,var(--line));padding:12px;font-size:12px;color:var(--dim)}.cal-month-cell{min-width:0;min-height:135px;padding:5px;border-right:1px solid var(--cal-rule,var(--line));border-bottom:1px solid var(--cal-rule,var(--line));display:flex;flex-direction:column;gap:5px}.studio-calendar .cal-month-date{min-height:30px;width:30px;min-width:30px;margin-left:auto;padding:4px;border-radius:50%;font-size:13px}.cal-month-cell.today .cal-month-date{background:var(--accent);color:var(--bg-0)}.cal-month-cell.outside>.cal-month-date{color:var(--dim)}.cal-month-cell .cal-away-tag{font-size:10px;padding:3px 4px;gap:4px}.studio-calendar .cal-month-event{display:flex;align-items:center;justify-content:flex-start;min-height:25px;width:100%;gap:5px;font-size:11px;padding:4px 5px;margin:3px 0;border-radius:4px;text-align:left;border-left:2px solid var(--event-color);background:color-mix(in srgb,var(--event-color) 11%,transparent)}.cal-month-event>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-month-event>small{font-size:10px;color:var(--dim);flex:none}.cal-month-event>i{font-size:9px;margin-left:auto}.studio-calendar .cal-month-more{font-size:10px;min-height:24px;color:var(--dim);padding:3px 4px}.studio-calendar .cal-events-dialog{width:min(500px,calc(100vw - 32px));max-height:80dvh;background:var(--bg-1);color:var(--text);border:1px solid var(--cal-rule,var(--line));border-radius:12px;padding:0;overflow:hidden;box-shadow:0 14px 32px #0004}.cal-events-dialog::backdrop,.cal-navigation-drawer::backdrop{background:#09081199}.cal-events-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px;border-bottom:1px solid var(--cal-rule,var(--line))}.cal-events-dialog h2{font-size:18px;font-weight:500;margin:0}.cal-events-dialog>div{max-height:calc(80dvh - 80px);overflow:auto;padding:10px 18px 18px}.studio-calendar .cal-list-event{display:flex;flex-direction:column;align-items:flex-start;gap:5px;width:100%;text-align:left;border-left:3px solid var(--event-color);border-radius:5px;margin:8px 0;padding:10px 12px;background:color-mix(in srgb,var(--event-color) 9%,transparent)}.cal-list-event b{font-size:14px;font-weight:500;overflow-wrap:anywhere}.cal-list-event span,.cal-list-event small{font-size:12px;color:var(--dim)}.studio-calendar .cal-detail-panel{position:absolute;right:16px;top:130px;z-index:30;width:min(530px,calc(100% - 32px));max-height:calc(100% - 150px);overflow:auto;display:block;margin:0;padding:24px;background:var(--bg-1);border:1px solid var(--cal-rule,var(--line));border-radius:12px;box-shadow:0 12px 30px #0005}.cal-detail-panel>*+*{margin-top:15px}.studio-calendar .cal-close-detail{position:absolute;right:9px;top:7px;padding:7px;min-width:32px;min-height:32px;color:var(--dim)}.cal-detail-panel>.cal-detail-title{padding-right:20px}.cal-detail-panel .cal-detail-actions{margin-top:20px}.cal-detail-panel .cal-attendee-list{margin-top:20px}.cal-detail-panel:focus{outline:0}.studio-calendar .cal-navigation-drawer{position:fixed;inset:0 auto 0 0;margin:0;width:min(290px,calc(100vw - 30px));max-width:none;height:100dvh;max-height:none;background:var(--bg-1);color:var(--text);border:0;border-right:1px solid var(--cal-rule,var(--line));padding:22px 20px;display:none;overflow:auto}.cal-navigation-drawer[open]{display:flex!important;flex-direction:column;gap:24px}.studio-calendar .cal-close-drawer{position:absolute;right:8px;top:10px;min-width:28px;min-height:28px;padding:4px;color:var(--dim)}.cal-navigation-drawer .cal-sidebar-identity{font-size:15px;padding-right:14px}
@container(max-width:1150px){.cal-sidebar{display:none}.cal-workspace>.cal-main{grid-column:1/-1}.studio-calendar .cal-drawer-trigger{display:inline-flex}.studio-calendar .cal-main-utilities>.cal-toolbar-create{display:inline-flex}.cal-main-heading{gap:12px}.cal-main-header{padding:20px 18px 16px}.cal-view-toolbar{padding:0 18px 14px}.cal-main-utilities{gap:2px}}
@container(max-width:700px){.cal-main-header{padding:14px 12px 12px;gap:8px;flex-wrap:wrap}.cal-main-heading{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;flex:1;min-width:180px}.studio-calendar .cal-main-heading h1{font-size:22px}.studio-calendar .cal-main-heading p{font-size:12px}.cal-period-nav{grid-column:2;gap:6px}.studio-calendar .cal-period-nav button{min-height:34px;padding:6px 10px;font-size:12px}.studio-calendar .cal-drawer-trigger{min-width:32px;min-height:32px;padding:4px;font-size:15px}.cal-main-utilities{flex-wrap:wrap;justify-content:flex-end;max-width:112px}.studio-calendar .cal-main-utilities>.cal-toolbar-create{font-size:11px;min-height:34px;padding:6px 9px;gap:5px}.studio-calendar .cal-main-utilities>button{min-width:34px;min-height:34px;font-size:15px;padding:6px}.cal-main-utilities>.cal-toolbar-create{order:2}.cal-view-toolbar{padding:0 12px 12px;flex-wrap:wrap;gap:8px}.studio-calendar .cal-view-toolbar nav button{min-height:34px;padding:6px 10px;font-size:12px}.studio-calendar .cal-view-toolbar>.kp-select{min-width:0;width:100%;font-size:12px}.studio-calendar .cal-view-toolbar .kp-select-trigger{min-height:34px;font-size:12px;padding:6px 10px}.cal-week-canvas{min-width:932px}.cal-week-viewport{scrollbar-gutter:auto}.cal-agenda-days{padding:0 14px 22px}.studio-calendar .cal-agenda-event{grid-template-columns:80px minmax(0,1fr) 14px;gap:9px;padding:10px;font-size:11px}.cal-agenda-event b{font-size:13px}.cal-agenda-event small{font-size:11px}.cal-view-stage>.cal-inbox,.cal-view-stage>.cal-preferences,.cal-view-stage>.cal-people{padding:18px 14px}.studio-calendar .cal-detail-panel{top:12px;right:8px;width:calc(100% - 16px);max-height:calc(100% - 24px);padding:22px 18px}.cal-day-heading>b{font-size:22px}.cal-workspace .cal-current-time>span{font-size:10px}}

.studio-calendar .cal-timed-event.snug{padding:2px 7px;gap:1px}.cal-timed-event.snug>b{line-height:14px}.cal-timed-event.snug>small{line-height:12px}.cal-timed-event>b{font-size:13px}

/* Calendar finish: quiet charcoal surfaces, clear type and intentional motion. */
.studio-calendar.cal-workspace{--cal-bg:color-mix(in srgb,var(--bg-0) 22%,#15171e);--cal-surface:color-mix(in srgb,var(--bg-1) 27%,#1b1d26);--cal-raised:color-mix(in srgb,var(--bg-2) 28%,#242632);--cal-rule:color-mix(in srgb,var(--text) 12%,transparent);--cal-muted:color-mix(in srgb,var(--text) 68%,var(--cal-bg));--cal-studio:color-mix(in srgb,var(--accent) 62%,#a886f2);--cal-mine:color-mix(in srgb,var(--teal) 30%,#58abed);--cal-line:var(--cal-rule);background:var(--cal-bg);font-family:var(--sans);isolation:isolate}
[data-theme='light'] .studio-calendar.cal-workspace{--cal-bg:var(--bg-0);--cal-surface:var(--bg-1);--cal-raised:var(--bg-2);--cal-studio:var(--accent);--cal-mine:#327dc2;--cal-muted:var(--dim)}
.cal-workspace .source-studio{--event-color:var(--cal-studio)}.cal-workspace .source-mine{--event-color:var(--cal-mine)}
.cal-workspace .cal-sidebar{padding:24px;gap:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--cal-surface) 95%,var(--accent)),var(--cal-surface) 60%,var(--cal-bg));border-color:var(--cal-rule)}
.cal-workspace .cal-sidebar-identity{font-size:19px;gap:14px;letter-spacing:-.2px}.cal-sidebar-identity b{font-weight:600}.cal-sidebar-identity>i{font-size:26px;color:var(--cal-studio)}
.studio-calendar .cal-primary{background:linear-gradient(115deg,color-mix(in srgb,var(--cal-studio) 86%,white),var(--cal-studio));color:#171020;border:1px solid color-mix(in srgb,var(--cal-studio) 65%,white);box-shadow:inset 0 1px #ffffff22,0 3px 12px #00000014;transition:filter .18s,box-shadow .18s,transform .18s}
.studio-calendar .cal-primary:hover{background:linear-gradient(115deg,color-mix(in srgb,var(--cal-studio) 86%,white),var(--cal-studio));filter:brightness(1.06);box-shadow:inset 0 1px #ffffff33,0 4px 16px color-mix(in srgb,var(--cal-studio) 13%,transparent)}.studio-calendar .cal-primary:active{transform:translateY(1px);filter:brightness(.97)}
.studio-calendar .cal-sidebar-create{height:47px;font-size:15px;border-radius:9px;font-weight:600}.cal-workspace .cal-mini{margin:0 0 38px}.studio-calendar .cal-mini-heading h2{font-size:16px}.cal-mini-heading{margin-bottom:15px}.cal-mini-grid{gap:3px 0}.cal-mini-grid>[role=columnheader]{font-size:13px;color:var(--cal-muted)}.studio-calendar .cal-mini-grid button{font-size:14px;min-height:31px}.cal-mini-grid button>span{width:31px;height:31px;margin:auto}.cal-mini-grid button.in-range{background:color-mix(in srgb,var(--cal-studio) 10%,transparent)}.cal-mini-grid button.in-range:nth-child(7n+1){border-radius:7px 0 0 7px}.cal-mini-grid button.in-range:nth-child(7n){border-radius:0 7px 7px 0}.cal-mini-grid button.today>span{background:linear-gradient(135deg,color-mix(in srgb,var(--cal-studio) 72%,white),var(--cal-studio));color:#171020;box-shadow:0 2px 9px #0002}.cal-mini-grid button.outside{opacity:.48}.cal-mini-grid button:hover>span{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cal-studio) 55%,transparent)}
.cal-calendar-filters legend{font-size:14px;color:var(--cal-muted)}.studio-calendar .cal-calendar-filters label{font-size:16px;gap:12px;margin:16px 0}.cal-calendar-filters input{appearance:none;width:22px!important;height:22px!important;border:1px solid var(--cal-rule);border-radius:5px;background:var(--cal-bg);display:grid;place-content:center;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s}.cal-calendar-filters input:checked{background:linear-gradient(135deg,color-mix(in srgb,var(--event-color) 77%,white),var(--event-color));border-color:var(--event-color);box-shadow:inset 0 1px #fff2}.cal-calendar-filters input:checked:after{content:'';display:block;width:10px;height:6px;border-left:2px solid #13151d;border-bottom:2px solid #13151d;transform:rotate(-45deg) translateY(-1px)}
.cal-main-header{padding:24px 30px 18px;background:linear-gradient(100deg,color-mix(in srgb,var(--cal-surface) 35%,transparent),transparent 80%)}.studio-calendar .cal-main-heading h1{font-size:30px;letter-spacing:-.6px;line-height:1.22;font-weight:600}.studio-calendar .cal-main-heading p{font-size:16px;color:var(--cal-muted);margin-top:5px}.cal-main-heading{gap:30px}.studio-calendar .cal-period-nav button{background:linear-gradient(#ffffff02,#ffffff00);border-color:var(--cal-rule);min-height:38px;padding:7px 13px;box-shadow:inset 0 1px #ffffff04}.studio-calendar .cal-main-utilities>button{color:var(--cal-muted);font-size:19px}.cal-view-toolbar{padding:0 30px 14px}.studio-calendar .cal-view-toolbar nav button{font-size:15px;min-height:38px;padding:8px 18px;border-radius:8px;transition:color .16s,background .16s,border-color .16s,box-shadow .16s}.cal-view-toolbar nav button.active{background:linear-gradient(125deg,color-mix(in srgb,var(--cal-studio) 22%,var(--cal-bg)),color-mix(in srgb,var(--cal-studio) 13%,var(--cal-bg)));border-color:color-mix(in srgb,var(--cal-studio) 24%,var(--cal-rule));box-shadow:inset 0 1px #fff1,0 2px 5px #0001;color:color-mix(in srgb,var(--cal-studio) 70%,white)}.studio-calendar .cal-view-toolbar .kp-select-trigger{font-size:14px;min-height:42px;background:color-mix(in srgb,var(--cal-bg) 90%,var(--cal-surface));border-color:var(--cal-rule)}
.cal-day-headers{height:84px}.cal-day-heading{position:relative;gap:1px;padding-bottom:3px}.cal-day-heading>span{font-size:12px;color:var(--cal-muted)}.cal-day-heading>b{font-size:26px;width:40px;height:40px;line-height:40px}.cal-day-heading.today>b{background:linear-gradient(135deg,color-mix(in srgb,var(--cal-studio) 70%,white),var(--cal-studio));color:#171020;box-shadow:0 2px 10px #0002}.cal-day-heading.today,.cal-grid-track.today{background:color-mix(in srgb,var(--cal-studio) 5%,transparent)}.studio-calendar .cal-day-heading>button{position:absolute;bottom:0;opacity:0;transition:opacity .15s;font-size:10px;min-height:15px}.cal-day-heading:hover>button,.cal-day-heading:focus-within>button{opacity:1}.cal-day-heading>small{display:none}.cal-timezone-cell{font-size:14px;padding:13px 20px;gap:4px}.cal-timezone-cell span{font-size:13px;color:var(--cal-muted)}.cal-timezone-cell b{font-weight:600}.cal-grid-gutter{font-size:13px;padding:11px 20px;color:var(--cal-muted)}
.cal-daylong-grid{padding:9px 0;min-height:50px}.studio-calendar .cal-daylong-event{height:32px;margin:0 3px;font-size:14px;font-weight:500;border-radius:6px;padding:4px 12px;border-color:color-mix(in srgb,var(--event-color) 58%,var(--cal-rule));border-left-width:4px;background:linear-gradient(110deg,color-mix(in srgb,var(--event-color) 22%,var(--cal-bg)),color-mix(in srgb,var(--event-color) 12%,var(--cal-bg)));box-shadow:inset 0 1px #ffffff0a}.cal-daylong-grid>.cal-grid-gutter{margin:-9px 0;padding-top:13px}.cal-time-gutter>span{right:29px;font-size:14px;color:var(--cal-muted)}.cal-hour-rule{border-color:var(--cal-rule)}.cal-hour-rule:after{border-color:color-mix(in srgb,var(--text) 6%,transparent)}.cal-grid-track.weekend:not(.today){background:#00000005}.cal-day-heading.weekend>span,.cal-day-heading.weekend>b{color:var(--cal-muted)}
.studio-calendar .cal-timed-event{padding:6px 12px;border-left-width:4px;border-radius:6px;gap:2px;box-shadow:inset 0 1px #ffffff0c,0 2px 4px #00000012;background:linear-gradient(115deg,color-mix(in srgb,var(--event-color) 24%,var(--cal-bg)),color-mix(in srgb,var(--event-color) 14%,var(--cal-bg)));border-color:color-mix(in srgb,var(--event-color) 40%,var(--cal-rule));border-left-color:var(--event-color);transition:background .16s,box-shadow .16s,filter .16s,opacity .16s;will-change:auto}.cal-timed-event>b{font-size:14px;font-weight:600;line-height:18px}.cal-timed-event>small{font-size:13px;line-height:16px;color:color-mix(in srgb,var(--event-color) 23%,var(--cal-muted))}.cal-timed-event>i{font-size:12px;right:8px;top:9px;color:color-mix(in srgb,var(--event-color) 35%,var(--text))}.studio-calendar .cal-timed-event:hover{background:linear-gradient(115deg,color-mix(in srgb,var(--event-color) 32%,var(--cal-bg)),color-mix(in srgb,var(--event-color) 20%,var(--cal-bg)));box-shadow:inset 0 1px #ffffff16,0 4px 12px #0003}.studio-calendar .cal-timed-event.selected{outline:1px solid var(--event-color);outline-offset:1px;box-shadow:0 0 0 3px color-mix(in srgb,var(--event-color) 12%,transparent)}.studio-calendar .cal-timed-event.snug{padding:2px 12px;gap:0}.cal-timed-event.snug>b{font-size:13px;line-height:15px}.cal-timed-event.snug>small{font-size:12px;line-height:13px}.studio-calendar .cal-timed-event.short{padding:0 7px;border-radius:3px}.cal-timed-event.short>b{font-size:11px;line-height:12px}.cal-current-time{border-color:var(--cal-studio)}.cal-current-time:before{background:var(--cal-studio);box-shadow:0 0 0 3px color-mix(in srgb,var(--cal-studio) 10%,transparent)}.cal-current-time>span{font-size:11px;color:var(--cal-studio)}
.studio-calendar .cal-away-tag{background:color-mix(in srgb,var(--cal-muted) 7%,transparent);color:var(--cal-muted);font-size:12px;transition:background .16s,color .16s}.cal-away-strip{background:color-mix(in srgb,var(--cal-surface) 35%,var(--cal-bg))}.cal-away-popover,.cal-events-dialog,.cal-detail-panel{animation:cal-surface-in .18s cubic-bezier(.2,.8,.2,1)}.cal-workspace .cal-detail-panel,.cal-workspace .cal-events-dialog,.cal-workspace .cal-navigation-drawer{background:var(--cal-surface)}.cal-navigation-drawer[open]{animation:cal-drawer-in .22s cubic-bezier(.2,.8,.2,1)}.cal-workspace .cal-month-event{font-size:12px;transition:background .16s}.cal-month-event>small{font-size:11px}.cal-workspace .cal-month-date{font-size:14px}.cal-workspace .cal-agenda-event{transition:background .16s,box-shadow .16s}.cal-agenda-event:hover{box-shadow:inset 0 0 0 1px var(--cal-rule)}
.cal-workspace [data-cal-movable=true]{cursor:grab;touch-action:none}.cal-workspace[data-moving] [data-cal-movable=true]{cursor:progress}.cal-workspace .cal-is-dragging{opacity:.28!important}.cal-drag-active,.cal-drag-active *{cursor:grabbing!important}.cal-drag-preview{position:fixed;z-index:100100;pointer-events:none;padding:5px 10px;border:1px solid var(--accent);border-left:4px solid var(--accent);border-radius:7px;background:color-mix(in srgb,var(--accent) 24%,#191a24);box-shadow:0 9px 30px #0006,inset 0 1px #ffffff22;overflow:visible;color:var(--text);font-size:13px;line-height:18px;max-height:calc(100vh - 20px)}.cal-drag-preview b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-drag-preview>span{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--bg-2);border:1px solid var(--line);padding:6px 10px;border-radius:7px;white-space:nowrap;box-shadow:0 4px 16px #0004;color:var(--text);font-size:12px}.cal-move-toast{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--cal-rule);border-radius:10px;background:var(--cal-raised);box-shadow:0 8px 30px #0005;max-width:calc(100% - 32px);font-size:14px;animation:cal-toast-in .2s ease-out}.cal-move-toast>i{color:var(--green)}.cal-move-toast.failed>i{color:var(--orange)}.cal-move-toast button{padding:5px}.cal-workspace .cal-move-dialog{margin:auto;width:min(460px,calc(100vw - 32px));padding:26px;border:1px solid var(--cal-rule);border-radius:14px;background:var(--cal-surface);color:var(--text);box-shadow:0 18px 60px #0007;animation:cal-surface-in .2s ease-out}.cal-move-dialog::backdrop{background:#07081099;backdrop-filter:blur(3px)}.cal-move-dialog>i{color:var(--cal-studio);font-size:22px}.cal-move-dialog h2{font-size:22px;font-weight:600;margin:14px 0 10px}.cal-move-dialog p{font-size:14px;color:var(--cal-muted);margin:10px 0;line-height:1.6}.cal-move-destination{display:flex;align-items:center;gap:10px;font-size:14px;padding:12px 0}.cal-move-dialog>div:last-child{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:24px}.cal-move-dialog button{padding:9px 12px;font-size:13px;border:1px solid var(--cal-rule);border-radius:7px}
@keyframes cal-surface-in{from{opacity:0;transform:translateY(5px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cal-drawer-in{from{opacity:.6;transform:translateX(-18px)}to{opacity:1;transform:translateX(0)}}@keyframes cal-toast-in{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}
@container(max-width:1150px){.cal-main-header{padding:20px 20px 16px}.cal-main-heading{gap:16px}.cal-view-toolbar{padding:0 20px 14px}}
@container(max-width:700px){.cal-main-header{padding:14px 12px 12px}.studio-calendar .cal-main-heading h1{font-size:23px}.studio-calendar .cal-main-heading p{font-size:13px}.cal-main-heading{gap:8px}.cal-view-toolbar{padding:0 12px 12px}.studio-calendar .cal-view-toolbar nav button{font-size:13px;padding:7px 11px}.cal-workspace .cal-main-utilities>.cal-toolbar-create{color:#171020}.cal-timezone-cell{padding:12px;font-size:13px}.cal-grid-gutter{padding:10px 12px}.cal-time-gutter>span{right:22px;font-size:13px}.cal-daylong-grid>.cal-grid-gutter{padding-top:14px}.cal-move-toast{font-size:13px;bottom:12px}}
@media(prefers-reduced-motion:reduce){.cal-workspace *, .cal-away-popover,.cal-drag-preview{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.cal-workspace .cal-sidebar{gap:24px}.cal-workspace .cal-mini{margin-bottom:28px}.cal-timezone-cell{padding-inline:12px}.cal-workspace .cal-editor-dialog,.cal-workspace .cal-editor-footer{background:var(--cal-surface)}.cal-workspace .cal-editor-dialog{border-color:var(--cal-rule)}

.cal-week-transition{contain:paint;will-change:transform}.cal-week-transition .cal-view-stage{flex:none!important}.cal-week-loading{position:absolute;right:24px;bottom:22px;z-index:21;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--cal-rule);border-radius:8px;background:var(--cal-surface);box-shadow:0 4px 18px #0003;font-size:12px;color:var(--cal-muted)}

.cal-week-viewport{overflow-anchor:none}.cal-week-empty{position:absolute;right:22px;bottom:18px;z-index:11;font-size:12px;color:var(--cal-muted);padding:7px 11px;background:var(--cal-bg);border-radius:7px;pointer-events:none}

.cal-resize-handle{position:absolute;left:0;right:0;bottom:0;height:10px;cursor:ns-resize;touch-action:none;z-index:3;opacity:0}.cal-resize-handle:after{content:'';position:absolute;bottom:2px;left:calc(50% - 9px);width:18px;border-bottom:2px solid currentColor;border-radius:2px}.cal-resize-handle.horizontal{left:auto;top:0;right:0;width:12px;height:auto;cursor:ew-resize}.cal-resize-handle.horizontal:after{left:auto;right:3px;top:calc(50% - 6px);bottom:auto;width:0;height:12px;border-bottom:0;border-right:2px solid currentColor}.cal-timed-event:hover .cal-resize-handle,.cal-timed-event:focus-visible .cal-resize-handle,.cal-daylong-event:hover .cal-resize-handle,.cal-month-event:hover .cal-resize-handle{opacity:.8}.cal-month-event{position:relative}.cal-move-toast .cal-undo{color:var(--accent);font-weight:600;white-space:nowrap;padding:6px 10px;border:1px solid var(--line);border-radius:6px}@media(pointer:coarse){.cal-resize-handle{opacity:.75;height:14px}.cal-resize-handle.horizontal{width:16px;height:auto}}
.kp-document-tabs { display:flex; flex:none; align-items:center; gap:6px; min-width:0; height:46px; padding:0 10px; background:var(--bg-1); border-bottom:1px solid var(--line); color:var(--text); user-select:none; }
.kp-document-tabs button { font:inherit; color:inherit; border:0; cursor:pointer; }
.kp-document-tabs button:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; }
.kp-document-home,.kp-document-scroll,.kp-document-options { display:grid; place-items:center; width:32px; height:32px; flex:none; padding:0; border-radius:6px; background:transparent; color:var(--dim)!important; transition:color .14s; }
.kp-document-home:hover,.kp-document-scroll:hover,.kp-document-options:hover { color:var(--text)!important; }
.kp-document-home[aria-pressed=true] { color:var(--accent)!important; }
.kp-document-tabstrip { display:flex; align-self:stretch; gap:0; flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; position:relative; }
.kp-document-tabstrip::-webkit-scrollbar { display:none; }
.kp-document-tab { position:relative; display:flex; align-items:center; flex:0 0 196px; min-width:0; overflow:hidden; border:0; border-radius:0; background:transparent; color:var(--dim); animation:kp-tab-enter .18s cubic-bezier(.2,.8,.2,1); transition:color .14s,flex-basis .14s,opacity .14s; }
/* Fine separators and a restrained tint keep selection clear on one shared surface. */
.kp-document-tab:not(:last-child)::before { content:''; position:absolute; right:0; top:calc(50% - 8px); width:1px; height:16px; background:var(--line); opacity:.65; pointer-events:none; }
.kp-document-tab::after { content:''; position:absolute; left:14px; right:14px; bottom:0; height:2px; border-radius:2px 2px 0 0; background:var(--accent); opacity:0; transform:scaleX(.75); transition:opacity .14s,transform .18s; pointer-events:none; }
.kp-document-tab:hover,.kp-document-tab:focus-within,.kp-document-tab.is-active { color:var(--text); }
.kp-document-tab.is-active { background:color-mix(in srgb,var(--accent) 6%,transparent); }
.kp-document-tab.is-active::after { opacity:1; transform:scaleX(1); }
.kp-document-tab.is-closing { flex-basis:0; opacity:0; pointer-events:none; }
.kp-document-tab-label { display:flex; align-items:center; gap:10px; flex:1; min-width:0; height:100%; padding:0 8px 0 16px; background:transparent; text-align:left; font-size:13px!important; font-weight:400!important; line-height:1.3; }
.kp-document-tab.is-active .kp-document-tab-label { font-weight:600!important; }
.kp-document-tab-label>i { flex:none; width:14px; text-align:center; font-size:12px; opacity:.7; }
.kp-document-tab.is-active .kp-document-tab-label>i { color:var(--accent); opacity:1; }
.kp-document-tab-label>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kp-document-close { flex:none; width:24px; height:24px; margin-right:10px; padding:0; display:grid; place-items:center; border-radius:5px; background:transparent; opacity:.4; font-size:11px!important; transition:background .12s,opacity .12s; }
.kp-document-tab.is-active .kp-document-close { opacity:.7; }
.kp-document-tab:hover .kp-document-close,.kp-document-tab:focus-within .kp-document-close { opacity:1; }
.kp-document-close:hover { background:color-mix(in srgb,var(--text) 9%,transparent); }
.kp-document-close:disabled { opacity:.3; cursor:wait; }
.kp-document-tab.drop-before { box-shadow:inset 3px 0 var(--accent); }
.kp-document-tab.drop-after { box-shadow:inset -3px 0 var(--accent); }
.kp-document-no-tabs { align-self:center; color:var(--dim); font-size:12px; padding:0 8px; }
.kp-document-panel { display:flex; flex-direction:column; flex:1; min-width:0; min-height:0; }
.kp-document-panel[hidden] { display:none!important; }
.kp-document-workspace { display:flex; flex-direction:column; flex:1; min-width:0; min-height:0; }
.kp-document-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.kp-document-tab-menu { min-width:245px; }
.kp-document-tab-menu .ctx-item { transition:background .12s,color .12s; animation:kp-tab-option .15s ease-out both; }
.kp-document-tab-menu .ctx-item:nth-child(2) { animation-delay:15ms; }.kp-document-tab-menu .ctx-item:nth-child(3) { animation-delay:25ms; }.kp-document-tab-menu .ctx-item:nth-child(n+4) { animation-delay:35ms; }
.kp-document-tab-menu.exiting .ctx-item { animation:none; }
@keyframes kp-tab-enter { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
@keyframes kp-tab-option { from { opacity:0; translate:0 3px; } to { opacity:1; translate:0 0; } }
@media(max-width:600px) { .kp-document-tabs { padding-inline:5px; gap:2px; } .kp-document-tab { flex-basis:166px; } .kp-document-tab-label { padding-left:12px; gap:8px; } .kp-document-tab::after { left:10px; right:10px; } .kp-document-close { opacity:1; width:28px; height:28px; margin-right:5px; } }
@media(pointer:coarse) { .kp-document-tabs { height:48px; } .kp-document-home,.kp-document-scroll,.kp-document-options { width:36px; height:44px; } .kp-document-close { width:32px; height:44px; opacity:1; } }
@media(forced-colors:active) { .kp-document-tab.is-active::after { background:Highlight; forced-color-adjust:none; } .kp-document-tabs button:focus-visible { outline-color:Highlight; } }
@media(prefers-reduced-motion:reduce) { .kp-document-tabs *,.kp-document-tabs *::after,.kp-document-tabs *::before,.kp-document-tab-menu .ctx-item { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
/* Shared library presentation. Opt-in classes keep Currents' current UI intact. */
.kp-library-host,.kp-library-launcher { display:flex; flex:1; min-width:0; min-height:0; flex-direction:column; }
.kp-library-launcher[hidden] { display:none; }
.kp-library { --library-ease:cubic-bezier(.2,.8,.2,1); display:flex; flex:1; min-height:0; min-width:0; position:relative; isolation:isolate; background:var(--bg-2); color:var(--text); user-select:none; }
.kp-library *, .kp-library *::before,.kp-library *::after { box-sizing:border-box; }
.kp-library button { font:inherit; cursor:pointer; color:inherit; }
.kp-library input { user-select:text; }
.kp-library button:focus-visible,.kp-library input:focus-visible,.kp-library-star:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.kp-library-nav { flex:0 0 208px; min-width:0; padding:26px 12px; overflow:auto; border-right:1px solid var(--line); background:var(--bg-1); }
.kp-library-nav-title { padding:0 10px 22px; color:var(--dim); font-size:12px; font-weight:650; letter-spacing:.06em; text-transform:uppercase; display:flex; align-items:center; justify-content:space-between; }
.kp-library-nav-item { display:flex; width:100%; min-width:0; align-items:center; gap:10px; padding:10px; border:0; border-radius:8px; background:transparent; text-align:left; font-size:13px!important; transition:background .18s,color .18s; }
.kp-library-nav-item:hover { background:var(--hover); }
.kp-library-nav-item[aria-current=page] { background:color-mix(in srgb,var(--accent) 16%,var(--bg-1)); color:var(--accent); }
.kp-library-nav-item>i { width:16px; flex:none; text-align:center; }
.kp-library-nav-item>span:not(.kp-library-count) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kp-library-count { margin-left:auto; color:var(--dim); font-size:12px; }
.kp-library-nav-section { margin:30px 10px 9px; font-size:11px; font-weight:650; letter-spacing:.08em; color:var(--dim); text-transform:uppercase; }
.kp-library-department { display:flex; align-items:center; }
.kp-library-department>.kp-library-nav-item { flex:1; }
.kp-library-dept-expand { width:28px; height:32px; flex:none; border:0; background:transparent; border-radius:6px; color:var(--dim)!important; font-size:10px!important; }
.kp-library-dept-expand:hover { background:var(--hover); }
.kp-library-manage { display:flex; gap:8px; align-items:center; margin-top:24px; padding:10px; border:0; background:transparent; color:var(--dim)!important; font-size:12px!important; text-align:left; }
.kp-library-main { min-width:0; flex:1; display:flex; flex-direction:column; }
.kp-library-header { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:26px 28px 18px; flex-wrap:wrap; }
.kp-library-heading { display:flex; align-items:center; gap:12px; min-width:0; flex:1; }
.kp-library-heading>div { min-width:0; }
.kp-library h1 { margin:0; font-size:26px; line-height:1.2; font-weight:650; letter-spacing:-.6px; overflow-wrap:anywhere; }
.kp-library-heading p { margin:6px 0 0; font-size:12px; color:var(--dim); }
.kp-library-breadcrumbs { margin-bottom:8px; color:var(--dim); font-size:12px; overflow-wrap:anywhere; }
.kp-library-breadcrumbs button { padding:2px 0; border:0; background:transparent; }
.kp-library-breadcrumbs button:hover { color:var(--accent); }
.kp-library-create { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.kp-library-control { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:36px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:var(--bg-1); font-size:13px!important; white-space:nowrap; transition:background .18s,border-color .18s,box-shadow .18s; }
.kp-library-control:hover { border-color:var(--accent); background:var(--hover); }
.kp-library-control.is-primary { background:var(--accent); color:var(--bg-1); border-color:var(--accent); }
.kp-library-control.is-primary:hover { filter:brightness(1.08); }
.kp-library-control[aria-pressed=true] { background:color-mix(in srgb,var(--accent) 16%,var(--bg-1)); color:var(--accent); }
.kp-library-create-destination { flex-basis:100%; text-align:right; font-size:11px; color:var(--dim); overflow-wrap:anywhere; }
.kp-library-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:0 28px 20px; border-bottom:1px solid var(--line); }
.kp-library-search { display:flex; align-items:center; gap:10px; padding:0 12px; min-width:180px; flex:1; border:1px solid var(--line); border-radius:9px; background:var(--bg-1); color:var(--dim); }
.kp-library-search:focus-within { border-color:var(--accent); outline:2px solid var(--accent); outline-offset:2px; }
.kp-library-search input:focus-visible { outline:none; }
.kp-library-search input { min-width:0; width:100%; padding:10px 0; font-size:14px; color:var(--text); background:transparent; border:0; outline-offset:0; }
.kp-library-view-controls { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.kp-library-view-controls .kp-select-trigger { min-height:36px; font-size:12px; }
.kp-library-view-switch { display:flex; padding:3px; border:1px solid var(--line); background:var(--bg-1); border-radius:8px; gap:2px; }
.kp-library-view-switch button { padding:6px 8px; display:flex; align-items:center; gap:6px; border:0; background:transparent; color:var(--dim); border-radius:5px; font-size:12px; transition:background .18s,color .18s; }
.kp-library-view-switch button[aria-pressed=true] { background:color-mix(in srgb,var(--accent) 18%,var(--bg-1)); color:var(--text); }
.kp-library-content { flex:1; min-height:0; overflow:auto; overflow-anchor:none; padding:24px 28px 36px; }
.kp-library-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.kp-library-section-heading h2 { display:flex; gap:9px; align-items:center; margin:0; font-size:14px; font-weight:650; }
.kp-library-section-heading h2>i { color:var(--accent); }
.kp-library-section-heading h2>span,.kp-library-section-heading>span { color:var(--dim); font-size:12px; font-weight:400; }
.kp-library-section-heading>button { padding:4px 0; border:0; background:transparent; font-size:12px; color:var(--accent); }
.kp-library-shelf { padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid var(--line); animation:kp-library-enter .26s var(--library-ease); }
.kp-library-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.kp-library-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:16px; align-items:start; }
.kp-library-item { min-width:0; border:1px solid var(--line); background:var(--bg-1); border-radius:11px; transition:border-color .18s,box-shadow .18s; position:relative; }
.kp-library-item:hover,.kp-library-item:focus-within { border-color:color-mix(in srgb,var(--accent) 65%,var(--line)); }
.kp-library-open { min-width:0; border:0; background:transparent; text-align:left; padding:0; color:var(--text); }
.kp-library-open:focus-visible { outline-offset:-3px!important; border-radius:10px; }
.kp-library-thumb { position:relative; display:flex; flex:none; align-items:center; justify-content:center; overflow:hidden; background-color:var(--bg-3); background-image:radial-gradient(color-mix(in srgb,var(--dim) 23%,transparent) .7px,transparent .7px); background-size:10px 10px; color:var(--dim); }
.kp-library-thumb>i { font-size:27px; opacity:.65; }
.kp-library-thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .34s var(--library-ease); }
.kp-library-thumb img.is-loaded { opacity:1; }
.kp-library-thumb.is-folder { background:color-mix(in srgb,var(--accent) 13%,var(--bg-1)); color:var(--accent); }
.kp-library-item.is-card { display:grid; grid-template-columns:minmax(0,1fr) auto; overflow:hidden; }
.kp-library-item.is-card .kp-library-open { display:flex; flex-direction:column; grid-column:1 / -1; width:100%; }
.kp-library-item.is-card .kp-library-thumb { width:100%; aspect-ratio:1.9; border-bottom:1px solid var(--line); }
.kp-library-item-copy { display:block; min-width:0; }
.kp-library-item.is-card .kp-library-item-copy { padding:12px 13px 4px; width:100%; }
.kp-library-name { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; font-size:14px; line-height:1.4; font-weight:600; }
.kp-library-item.is-card .kp-library-name { min-height:39px; }
.kp-library-item-subtitle { display:block; color:var(--dim); font-size:12px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; margin-top:5px; }
.kp-library-item-date { font-size:11px; color:var(--dim); padding:0 13px 8px; align-self:center; }
.kp-library-item-dept { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--dim); font-size:12px; }
.kp-library-item-dept>i { margin-right:7px; }
.kp-library-item:not(.is-row) .kp-library-item-dept { display:none; }
.kp-library-item-actions { display:flex; align-items:center; gap:2px; padding:0 6px 6px; }
.kp-library-star,.kp-library-more { display:inline-flex; flex:none; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:0; border-radius:7px; background:transparent; color:var(--dim); cursor:pointer; transition:color .18s,background .18s; }
.kp-library-star:hover,.kp-library-more:hover { background:color-mix(in srgb,var(--accent) 13%,var(--bg-1)); color:var(--text); }
.kp-library-star.is-starred { color:var(--accent); }
.kp-library-star.is-starred>i { animation:kp-library-star-pop .25s var(--library-ease,cubic-bezier(.2,.8,.2,1)); }
.kp-library-star[aria-disabled=true] { opacity:.6; cursor:progress; }
.kp-library-folders { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; margin-bottom:20px; }
.kp-library-item.is-folder-tile,.kp-library-item.is-shortcut { display:flex; align-items:center; padding:8px; gap:6px; }
.kp-library-item.is-folder-tile .kp-library-open,.kp-library-item.is-shortcut .kp-library-open { display:flex; flex:1; align-items:center; gap:10px; }
.kp-library-item.is-folder-tile .kp-library-thumb,.kp-library-item.is-shortcut .kp-library-thumb { width:40px; height:40px; border-radius:7px; }
.kp-library-item.is-shortcut .kp-library-name { -webkit-line-clamp:1; font-size:13px; }
.kp-library-item.is-folder-tile .kp-library-name { font-size:13px; }
.kp-library-item.is-folder-tile .kp-library-item-date { display:none; }
.kp-library-item.is-folder-tile .kp-library-item-actions,.kp-library-item.is-shortcut .kp-library-item-actions { padding:0; }
.kp-library-list-head,.kp-library-item.is-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(90px,18%) 76px 70px; align-items:center; gap:14px; }
.kp-library-list-head { font-size:11px; color:var(--dim); padding:0 12px 10px; }
.kp-library-item.is-row { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; padding:7px 10px; min-height:60px; transition:background .18s; }
.kp-library-item.is-row:hover { background:var(--hover); }
.kp-library-item.is-row .kp-library-open { display:flex; gap:11px; align-items:center; }
.kp-library-item.is-row .kp-library-thumb { width:38px; height:38px; border-radius:6px; }
.kp-library-item.is-row .kp-library-name { -webkit-line-clamp:1; font-size:13px; }
.kp-library-item.is-row .kp-library-item-date,.kp-library-item.is-row .kp-library-item-actions { padding:0; }
.kp-library-results { animation:kp-library-enter .24s var(--library-ease); }
.kp-library-group { margin-bottom:26px; }
.kp-library-group-toggle { display:flex; align-items:center; gap:9px; border:0; background:transparent; padding:8px 0 14px; color:var(--dim)!important; font-size:12px!important; text-align:left; }
.kp-library-group-toggle i { width:14px; font-size:10px; }
.kp-library-group-toggle span { opacity:.75; }
.kp-library-empty { display:flex; align-items:center; text-align:center; flex-direction:column; gap:13px; padding:65px 20px; }
.kp-library-empty>i { color:var(--accent); font-size:30px; }
.kp-library-empty h2 { margin:0; font-size:18px; }
.kp-library-empty p { margin:0 0 7px; max-width:380px; font-size:14px; color:var(--dim); }
.kp-library-error { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 28px; background:var(--bg-1); border-bottom:1px solid var(--line); font-size:13px; }
.kp-library-error button { background:transparent; color:var(--accent); border:0; padding:6px; }
.kp-library-skeleton { overflow:hidden; background:var(--bg-1); border:1px solid var(--line); border-radius:11px; }
.kp-library-skeleton-image { aspect-ratio:1.9; background:var(--bg-3); }
.kp-library-skeleton-copy { padding:16px 13px 18px; display:flex; flex-direction:column; gap:10px; }
.kp-library-skeleton-copy>span { display:block; height:12px; border-radius:4px; background:var(--bg-3); width:80%; }
.kp-library-skeleton-copy>span:nth-child(2) { width:58%; }
.kp-library-skeleton-copy>span:nth-child(3) { width:32%; height:9px; margin-top:3px; }
.kp-library-skeleton-image,.kp-library-skeleton-copy>span,.kp-library-thumb.is-loading { position:relative; overflow:hidden; }
.kp-library-skeleton-image::after,.kp-library-skeleton-copy>span::after,.kp-library-thumb.is-loading::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--text) 7%,transparent) 50%,transparent 80%); transform:translateX(-100%); animation:kp-library-shimmer 1.7s ease-in-out infinite; pointer-events:none; }
.kp-library-skeleton-list { display:flex; flex-direction:column; gap:8px; }
.kp-library-skeleton-list .kp-library-skeleton { display:flex; align-items:center; border-radius:7px; }
.kp-library-skeleton-list .kp-library-skeleton-image { width:40px; height:40px; margin:10px; border-radius:5px; }
.kp-library-skeleton-list .kp-library-skeleton-copy { flex:1; padding:10px; }
.kp-library-skeleton-list .kp-library-skeleton-copy>span:nth-child(3) { display:none; }
.kp-library-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.kp-library.is-compact .kp-library-grid,.kp-library.is-compact .kp-library-folders { grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; }
.kp-library.is-compact .is-card .kp-library-thumb { aspect-ratio:2.5; }
.kp-library.is-compact .is-row { min-height:50px; padding-block:4px; }
.kp-library-legacy-banner { display:flex; justify-content:space-between; padding:8px 16px; font-size:12px; background:var(--bg-1); color:var(--dim); }
.kp-library-legacy-banner button { background:transparent; border:0; color:var(--accent); cursor:pointer; }
.kp-library-browse,.kp-library-nav-close,.kp-library-nav-scrim { display:none; }
@keyframes kp-library-enter { from { opacity:.35; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@keyframes kp-library-shimmer { to { transform:translateX(100%); } }
@keyframes kp-library-star-pop { 50% { transform:scale(1.18); } }
@media(min-width:1700px) { .kp-library-grid { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); } }
@media(max-width:1200px) { .kp-library-nav { flex-basis:184px; padding-inline:9px; } .kp-library-header { padding:22px 22px 18px; } .kp-library-toolbar { padding-inline:22px; } .kp-library-content { padding:22px; } .kp-library-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); } .kp-library-shortcuts>.is-shortcut:nth-child(n+3) { display:none; } .kp-library-view-switch span { display:none; } }
@media(max-width:950px) { .kp-library-browse { display:inline-flex; } .kp-library-nav { position:absolute; z-index:6; inset:0 auto 0 0; width:240px; max-width:85%; transform:translateX(-100%); visibility:hidden; transition:transform .24s var(--library-ease),visibility .24s; } .kp-library-nav.is-open { transform:translateX(0); visibility:visible; } .kp-library-nav-close { display:block; background:transparent; border:0; width:32px; height:32px; } .kp-library-nav-scrim { display:block; position:absolute; z-index:5; inset:0; background:color-mix(in srgb,var(--bg-1) 75%,transparent); border:0; animation:kp-library-enter .18s; } }
@media(max-width:640px) { .kp-library-header { padding:16px; gap:15px; } .kp-library-heading { flex-basis:100%; } .kp-library h1 { font-size:22px; } .kp-library-create { justify-content:flex-start; } .kp-library-create-destination { text-align:left; } .kp-library-toolbar { padding:0 16px 16px; gap:10px; } .kp-library-search { flex-basis:100%; } .kp-library-content { padding:18px 16px; } .kp-library-grid,.kp-library.is-compact .kp-library-grid,.kp-library-folders,.kp-library.is-compact .kp-library-folders { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .kp-library-shortcuts { grid-template-columns:minmax(0,1fr); } .kp-library-shortcuts>.is-shortcut:nth-child(n+2) { display:none; } .kp-library-item.is-folder-tile { grid-column:1 / -1; } .kp-library-name { font-size:13px; } .kp-library-item.is-card .kp-library-item-copy { padding:10px 10px 4px; } .kp-library-item.is-card .kp-library-item-date { display:none; } .kp-library-item.is-card .kp-library-item-actions { grid-column:1 / -1; justify-content:flex-end; } .kp-library-item.is-row,.kp-library-list-head { grid-template-columns:minmax(0,1fr) 70px; gap:8px; padding-inline:0; } .kp-library-item.is-row>.kp-library-item-dept,.kp-library-item.is-row>.kp-library-item-date,.kp-library-list-head>span:nth-child(2),.kp-library-list-head>span:nth-child(3) { display:none; } .kp-library-view-controls { gap:6px; } }
@media(max-width:360px) { .kp-library-grid,.kp-library.is-compact .kp-library-grid { grid-template-columns:minmax(0,1fr); } }
@media(pointer:coarse) { .kp-library-star,.kp-library-more { width:44px; height:44px; } .kp-library-control,.kp-library-nav-item,.kp-library-view-switch button,.kp-library-dept-expand { min-height:44px; } .kp-library-dept-expand { width:36px; } .kp-library-search input { font-size:16px; } .kp-library-item.is-row,.kp-library-list-head { grid-template-columns:minmax(0,1fr) 92px; } .kp-library-item.is-row>.kp-library-item-dept,.kp-library-item.is-row>.kp-library-item-date,.kp-library-list-head>span:nth-child(2),.kp-library-list-head>span:nth-child(3) { display:none; } }
@media(prefers-reduced-motion:reduce) { .kp-library *,.kp-library *::before,.kp-library *::after,.kp-library-star,.kp-library-star>i { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.kp-current-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kp-current-board-filters{flex-shrink:0;flex-wrap:wrap;padding:10px 16px;background:var(--bg-1);border-bottom:1px solid var(--line);user-select:none}.kp-library-toolbar{flex-wrap:wrap}.kp-library-control[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.kp-library-name>i{margin-left:8px;font-size:11px;color:var(--dim)}.kbm-main{border:0;min-width:0;margin:0}.kp-current-board-filters input{user-select:text}

/* Shared selection and drop targets in both library browsers. */
.kp-library-item.is-selected { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--bg-1)); box-shadow:inset 0 0 0 1px var(--accent); }
.kp-library-select { position:absolute; z-index:2; left:12px; top:12px; width:23px; height:23px; padding:0; display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:6px; background:var(--bg-1); opacity:0; transition:opacity .15s; }
.kp-library-select>i { opacity:0; font-size:11px; }
.kp-library-select[aria-checked=true] { background:var(--accent); border-color:var(--accent); color:var(--bg-1); }
.kp-library-select[aria-checked=true]>i { opacity:1; }
.kp-library-item:hover>.kp-library-select,.kp-library-item:focus-within>.kp-library-select,.kp-library.has-selection .kp-library-select { opacity:1; }
.kp-library-item:not(.is-card)>.kp-library-select { top:50%; transform:translateY(-50%); left:16px; }
.kp-library [data-drop-active] { outline:2px solid var(--accent); outline-offset:-2px; background:color-mix(in srgb,var(--accent) 20%,var(--bg-1)); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent); }
.kp-library-selection { flex:none; display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:12px 28px; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--accent) 6%,var(--bg-1)); font-size:12px; }
.kp-library-selection-count { display:flex; align-items:center; gap:8px; font-weight:600; white-space:nowrap; }
.kp-library-selection-count>i { color:var(--accent); }
.kp-library-selection .kp-select { max-width:260px; min-width:150px; }
.kp-library-selection .kp-select-trigger { min-height:32px; font-size:12px; }
.kp-library-selection-hint { flex:1; color:var(--dim); font-size:11px; }
.kp-library button:disabled { cursor:default; opacity:.5; }
.kp-library-drag-label { position:fixed; left:-10000px; top:0; max-width:300px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; padding:10px 16px; border:1px solid var(--accent); border-radius:9px; background:var(--bg-1); color:var(--text); font:600 13px system-ui; box-shadow:0 8px 24px #0004; }
@media (hover:none) { .kp-library-select { opacity:1; } }
@media (max-width:600px) { .kp-library-selection { padding:10px 16px; gap:8px; } .kp-library-selection-hint { display:none; } .kp-library-selection .kp-select { min-width:0; flex:1 1 140px; max-width:none; } }

.kp-library.has-selection .kp-library-item:not(.is-card) .kp-library-thumb>*,
.kp-library-item:not(.is-card):hover .kp-library-thumb>*,
.kp-library-item:not(.is-card):focus-within .kp-library-thumb>* { opacity:0; }
@media (hover:none) { .kp-library-item:not(.is-card) .kp-library-thumb>* { opacity:0; } }

.kp-library-selection.is-floating { position:absolute; z-index:5; bottom:12px; left:224px; right:16px; border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px #0003; pointer-events:none; }
@media (max-width:950px) { .kp-library-selection.is-floating { left:16px; } }
.dd-local{animation:dd-local-in .18s ease-out}.dd-local h3{margin:8px 0}.dd-local p{overflow-wrap:anywhere}.dd-local .ds-row{flex-wrap:wrap}.dd-local-progress{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}.dd-local-progress progress{width:100%;height:5px;accent-color:var(--accent)}.dd-local-progress small{display:block;overflow-wrap:anywhere;color:var(--dim);margin-top:6px}.dd-local-filter{display:grid;gap:6px;margin:16px 0 10px}.dd-local-changes{max-height:340px;overflow:auto}.dd-local-changes>div{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.dd-local-changes span{flex:1;min-width:0;overflow-wrap:anywhere}.dd-local-changes small{color:var(--dim);max-width:35%}@keyframes dd-local-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.dd-local{animation:none}}

.dd-local .ds-row{justify-content:flex-start}.dd-local input{width:100%;box-sizing:border-box;background:var(--bg-0);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit}.dd-local input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dd-local p{font-size:13px;line-height:1.6;margin:8px 0 14px}.dd-local-filter{font-size:12px}.dd-local-changes{font-size:13px}

.dd-local>.ds-row>.ds-grow{flex:1 1 260px;min-width:0}
/* Tutorial hint dot (tutorialHints.tsx) — Discord-style pulsing "new!" badge.
   The host element must be position:relative. */
.tut-dot {
  position: absolute; top: -3px; right: -3px; width: 11px; height: 11px;
  border-radius: 50%; background: #f0b232;
  box-shadow: 0 0 0 2px var(--bg-2), 0 0 8px color-mix(in srgb, #f0b232 70%, transparent);
  animation: tut-blink 1.5s ease-in-out infinite;
  z-index: 3; cursor: pointer;
}
@keyframes tut-blink {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.78); }
}
@media (prefers-reduced-motion: reduce) {
  .tut-dot { animation: none; }
}
/* Charts — the team wiki (live co-edited pages). */

/* H3 toolbar button (icon-less; H1/H2 use FA glyphs). */
.ch-tool-h3 { font-size: 11px; font-weight: 800; letter-spacing: -0.5px; }
/* Highlight for a word jumped-to from search (CSS Custom Highlight API). */
::highlight(ch-search-hit) { background-color: #ffe066; color: #111; }

/* Editor images: click opens the lightbox; drag the corner handle to scale. */
.ch-sheet img { cursor: zoom-in; }
.ch-img { display: table; position: relative; max-width: 100%; margin: 8px 0; }
.ch-img img { display: block; max-width: 100%; height: auto; border-radius: 6px; }
.ch-img-handle {
  position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; border-radius: 3px;
  background: var(--accent); border: 2px solid var(--bg-2); cursor: nwse-resize; opacity: 0;
  transition: opacity .12s; touch-action: none;
}
.ch-img:hover .ch-img-handle { opacity: 1; }

/* Page cover banner at the top of the document. */
.ch-cover { position: relative; height: 190px; border-radius: 12px; margin-bottom: 14px; background-size: cover; background-position: center; background-color: var(--bg-1); }
.ch-cover-actions { position: absolute; top: 10px; right: 10px; display: flex; gap: 6px; opacity: 0; transition: opacity .12s; }
.ch-cover:hover .ch-cover-actions { opacity: 1; }
.ch-cover-btn { background: rgba(0,0,0,.6); color: #fff; border: none; border-radius: 7px; padding: 5px 10px; font-size: 12px; cursor: pointer; }
.ch-cover-btn:hover { background: rgba(0,0,0,.82); }
.ch-add-cover { align-self: flex-start; margin-bottom: 10px; background: transparent; border: none; color: var(--faint); font-size: 13px; cursor: pointer; padding: 4px 6px; border-radius: 6px; }
.ch-add-cover:hover { background: var(--hover); color: var(--text); }
.ch-recent-cover { flex: none; width: 26px; height: 26px; border-radius: 5px; background-size: cover; background-position: center; background-color: var(--bg-1); }

/* Wiki page-link chip inside the document. */
.ch-plink {
  color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent);
  border-radius: 4px; padding: 0 4px; cursor: pointer; text-decoration: none; white-space: nowrap;
}
/* NOTE: the self-hosted Font Awesome is v7 — its family is "Font Awesome 7
   Free" (with v6/v5 alias fallbacks here for safety). Using the wrong family
   silently renders tofu boxes. */
.ch-plink::before { content: '\f0c1'; font-family: 'Font Awesome 7 Free', 'Font Awesome 6 Free', 'Font Awesome 5 Free'; font-weight: 900; font-size: .8em; margin-right: 4px; opacity: .7; }
.ch-plink:hover { background: color-mix(in srgb, var(--accent) 24%, transparent); }

/* @mention chip in the page body (same family as .ch-plink) */
.ch-mention {
  color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent);
  border-radius: 4px; padding: 0 4px; font-weight: 600; white-space: nowrap;
}

/* @mention autocomplete dropdown (appended to <body>, placed at the caret) */
.ch-mention-menu {
  position: fixed; z-index: 12000; min-width: 200px; max-width: 240px;
  background: var(--bg-3); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35); padding: 4px; display: flex; flex-direction: column;
}
.ch-mention-item {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 7px;
  color: var(--text); text-align: left; font-size: 13.5px; width: 100%;
}
.ch-mention-item:hover, .ch-mention-item.sel { background: var(--hover); }
.ch-mention-av {
  width: 20px; height: 20px; border-radius: 50%; overflow: hidden; flex: 0 0 20px;
  background: color-mix(in srgb, var(--accent) 25%, transparent);
  display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700;
}
.ch-mention-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ch-mention-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-mention-empty { padding: 8px 10px; font-size: 12.5px; opacity: .6; }

/* "/" command menu (same family as the mention dropdown, with hint text) */
.ch-slash-menu {
  position: fixed; z-index: 12000; width: 280px; max-height: 340px; overflow-y: auto;
  background: var(--bg-3); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35); padding: 4px; display: flex; flex-direction: column;
}
.ch-slash-item {
  display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 7px;
  color: var(--text); text-align: left; width: 100%;
}
.ch-slash-item:hover, .ch-slash-item.sel { background: var(--hover); }
.ch-slash-ic {
  width: 28px; height: 28px; flex: 0 0 28px; border-radius: 7px; display: grid; place-items: center;
  background: var(--bg-1); border: 1px solid var(--line); color: var(--dim); font-size: 12px;
}
.ch-slash-tx { display: flex; flex-direction: column; min-width: 0; }
.ch-slash-tx b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-slash-tx span { font-size: 11px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---- Structured blocks ---- */
/* Callouts */
.ch-callout { position: relative; border-radius: 10px; border: 1px solid; padding: 12px 14px 12px 44px; margin: 0.6em 0; }
.ch-callout::before { font-family: 'Font Awesome 7 Free', 'Font Awesome 6 Free', 'Font Awesome 5 Free'; font-weight: 900; position: absolute; left: 15px; top: 13px; font-size: 15px; }
.ch-callout > p:last-child { margin-bottom: 0; }
.ch-callout-info { background: color-mix(in srgb, #3b82f6 9%, transparent); border-color: color-mix(in srgb, #3b82f6 35%, transparent); }
.ch-callout-info::before { content: '\f05a'; color: #3b82f6; }
.ch-callout-warning { background: color-mix(in srgb, #f59e0b 9%, transparent); border-color: color-mix(in srgb, #f59e0b 38%, transparent); }
.ch-callout-warning::before { content: '\f071'; color: #f59e0b; }
.ch-callout-success { background: color-mix(in srgb, #3ba55d 9%, transparent); border-color: color-mix(in srgb, #3ba55d 38%, transparent); }
.ch-callout-success::before { content: '\f058'; color: #3ba55d; }
.ch-callout-error { background: color-mix(in srgb, #ed4245 9%, transparent); border-color: color-mix(in srgb, #ed4245 38%, transparent); }
.ch-callout-error::before { content: '\f057'; color: #ed4245; }
.ch-callout-decision { background: color-mix(in srgb, #8b5cf6 9%, transparent); border-color: color-mix(in srgb, #8b5cf6 38%, transparent); }
.ch-callout-decision::before { content: '\f0e3'; color: #8b5cf6; }

/* Expand (collapsible section) */
.ch-expand { position: relative; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px 8px 34px; margin: 0.6em 0; }
.ch-expand-caret {
  position: absolute; left: 6px; top: 9px; width: 22px; height: 22px; border-radius: 6px;
  display: grid; place-items: center; background: none; border: none; color: var(--dim); cursor: pointer;
}
.ch-expand-caret:hover { background: var(--hover); color: var(--text); }
.ch-expand-caret i { transition: transform .15s; }
.ch-expand[data-open='true'] .ch-expand-caret i { transform: rotate(90deg); }
.ch-expand-title { font-weight: 700; min-height: 22px; padding: 1px 0; }
.ch-expand-body { margin-top: 6px; }
.ch-expand-body > p:last-child { margin-bottom: 0; }
.ch-expand[data-open='false'] .ch-expand-body { display: none; }

/* Live-tool embed card (/currents, /whiteboard) */
.ch-embed {
  display: flex; align-items: center; gap: 12px; margin: 0.6em 0;
  border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px;
  background: var(--bg-2); user-select: none;
}
.ch-embed.ProseMirror-selectednode { outline: 2px solid var(--accent); }
.ch-embed.gone { opacity: .6; }
.ch-embed-cover {
  width: 56px; height: 40px; flex: 0 0 56px; border-radius: 7px;
  background: var(--bg-1) center/cover no-repeat; border: 1px solid var(--line);
  display: grid; place-items: center; color: var(--dim); font-size: 16px;
}
.ch-embed-main { flex: 1; min-width: 0; }
.ch-embed-title { font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-embed-sub { font-size: 12px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-embed-open {
  flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px;
  border-radius: 8px; border: 1px solid var(--line); background: var(--bg-1);
  color: var(--text); font-size: 12.5px; font-weight: 600; cursor: pointer;
}
.ch-embed-open:hover { border-color: var(--accent); color: var(--accent); }

/* Status lozenge */
.ch-status-badge {
  display: inline-block; padding: 1px 8px 2px; border-radius: 4px; font-size: 11.5px; font-weight: 800;
  letter-spacing: .04em; text-transform: uppercase; cursor: pointer; line-height: 1.5; vertical-align: baseline;
  border: 1px solid transparent; user-select: none;
}
.ch-status-badge.ProseMirror-selectednode { outline: 2px solid var(--accent); }
.sb-grey { background: color-mix(in srgb, #6b7280 22%, transparent); color: #9aa4b2; border-color: color-mix(in srgb, #6b7280 40%, transparent); }
.sb-blue { background: color-mix(in srgb, #3b82f6 18%, transparent); color: #3b82f6; border-color: color-mix(in srgb, #3b82f6 40%, transparent); }
.sb-green { background: color-mix(in srgb, #3ba55d 18%, transparent); color: #3ba55d; border-color: color-mix(in srgb, #3ba55d 40%, transparent); }
.sb-orange { background: color-mix(in srgb, #e8842b 18%, transparent); color: #e8842b; border-color: color-mix(in srgb, #e8842b 40%, transparent); }
.sb-red { background: color-mix(in srgb, #ed4245 18%, transparent); color: #ed4245; border-color: color-mix(in srgb, #ed4245 40%, transparent); }
.sb-purple { background: color-mix(in srgb, #8b5cf6 18%, transparent); color: #8b5cf6; border-color: color-mix(in srgb, #8b5cf6 40%, transparent); }

/* "Linked from" backlinks below the page body. */
.ch-backlinks { margin-top: 28px; padding-top: 14px; border-top: 1px solid var(--line); }
.ch-backlinks-head { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); margin-bottom: 8px; }
.ch-backlinks-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ch-backlink { display: inline-flex; align-items: center; gap: 6px; max-width: 260px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-1); color: var(--text); font-size: 13px; cursor: pointer; }
.ch-backlink span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-backlink:hover { border-color: var(--accent); }

.ch-sr-create .ch-sr-title, .ch-sr-create .ch-sr-icon { color: var(--accent); }

/* Page-link picker (reuses the search modal styling). */
.ch-linkpick { width: min(520px, 92vw); padding: 0; overflow: hidden; }
.ch-linkpick .ch-search-bar { border-bottom: 1px solid var(--line); }

/* ---- Margin comments (Google-Docs style) ---- */
.ch-comments-btn .ch-cm-count { background: var(--accent); color: #fff; border-radius: 9px; padding: 0 5px; font-size: 11px; margin-left: 3px; }
/* The sheet + its comment gutter share a positioned wrapper; when comments
   exist the wrapper widens and the sheet stays left so cards get the margin. */
/* width:100% matters: as a flex child (TOC open) the wrap otherwise shrinks
   to its content (the 840px sheet), the gutter at left:856 falls outside it,
   and comment cards collapse to zero width. */
.ch-sheetwrap { position: relative; width: 100%; max-width: 840px; margin: 0 auto; min-width: 0; }
.ch-sheetwrap.has-cm { max-width: 1132px; }
.ch-sheetwrap.has-cm .ch-sheet { margin: 0; }
.ch-margin { position: absolute; left: 856px; right: 4px; top: 0; bottom: 0; pointer-events: none; }
.ch-margin > * { pointer-events: auto; }
.ch-margin-pill {
  position: absolute; top: 0; left: 0; display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg-1);
  color: var(--dim); font-size: 12px; cursor: pointer;
}
.ch-margin-pill:hover { color: var(--text); border-color: var(--accent); }
.ch-cmm {
  position: absolute; left: 0; right: 4px; min-width: 200px; background: var(--bg-1); border: 1px solid var(--line);
  border-radius: 10px; padding: 10px 12px; cursor: pointer; transition: top .15s ease, box-shadow .15s;
}
.ch-cmm:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .22); }
.ch-cmm.active { border-color: #e8c34a; box-shadow: 0 6px 18px rgba(0, 0, 0, .28); }
.ch-cmm.resolved { opacity: .62; }
.ch-cmm-top { display: flex; align-items: center; gap: 8px; }
.ch-cmm-who { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 7px; overflow: hidden; }
.ch-cmm-who b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-cmm-act { background: none; border: none; color: var(--faint); cursor: pointer; padding: 2px 3px; font-size: 12px; flex: none; }
.ch-cmm-act:hover { color: var(--text); }
.ch-cmm-act.del:hover { color: var(--danger, #ed4245); }
.ch-cmm-reply { display: flex; gap: 7px; margin: 7px 0 0 6px; padding-left: 8px; border-left: 2px solid var(--line); }
.ch-cmm-reply-main { min-width: 0; flex: 1; }
.ch-cm-anchor { font-size: 12px; color: var(--dim); font-style: italic; border-left: 2px solid color-mix(in srgb, #e8c34a 70%, transparent); padding: 0 8px; margin: 0 0 6px 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ch-cm-anchor > i { font-size: 9px; margin-right: 4px; opacity: .6; }
.ch-cm-when { font-size: 11px; color: var(--faint); }
.ch-cm-body { font-size: 13px; white-space: pre-wrap; word-break: break-word; margin: 4px 0 0; }
.ch-cm-replybox { display: flex; gap: 6px; margin-top: 8px; }
.ch-cm-replybox input { flex: 1; min-width: 0; background: var(--bg-2); border: 1px solid var(--line); border-radius: 6px; padding: 5px 8px; color: var(--text); font-size: 13px; }
/* Narrow viewports: the gutter collapses; the focused thread floats instead. */
.ch-margin-solo { position: fixed; right: 12px; bottom: 16px; width: min(340px, 92vw); z-index: 60; }
.ch-cmm.solo { position: static; box-shadow: 0 12px 34px rgba(0, 0, 0, .4); cursor: default; }

/* Floating "comment on selection" button + inline composer in the gutter. */
.ch-addcm-btn {
  position: absolute; left: calc(min(100%, 840px) - 16px); width: 32px; height: 32px; border-radius: 50%;
  display: grid; place-items: center; background: var(--bg-1); border: 1px solid var(--line);
  color: var(--dim); cursor: pointer; z-index: 5; box-shadow: 0 3px 10px rgba(0, 0, 0, .25);
}
.ch-addcm-btn:hover { color: var(--accent); border-color: var(--accent); }
.ch-composer {
  position: absolute; left: 856px; right: 4px; min-width: 200px; z-index: 6;
  background: var(--bg-1); border: 1px solid #e8c34a; border-radius: 10px; padding: 10px 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .3); display: flex; flex-direction: column; gap: 8px;
}
.ch-composer textarea { resize: none; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 8px; color: var(--text); font-size: 13px; }
.ch-composer-acts { display: flex; justify-content: flex-end; gap: 6px; }
/* No room for the gutter (ChartsPage measures the canvas) → composer floats. */
.ch-composer.solo { position: fixed; right: 12px; bottom: 16px; left: auto; width: min(340px, 92vw); top: auto !important; }

/* Inline-comment highlight inside the document. */
.ch-comment-mark { background: color-mix(in srgb, #e8c34a 26%, transparent); border-bottom: 2px solid #e8c34a; cursor: pointer; border-radius: 2px; }
.ch-comment-mark:hover, .ch-comment-mark.cm-active { background: color-mix(in srgb, #e8c34a 42%, transparent); }
.ch-comment-mark.cm-resolved { background: none; border-bottom: 1px dotted color-mix(in srgb, #e8c34a 50%, transparent); }

/* ---- Create-page modal (Blank / from template) ---- */
.ch-create { width: min(460px, 94vw); }
.ch-create-title {
  width: 100%; background: var(--bg-1); border: 1px solid var(--line); border-radius: 9px;
  padding: 10px 12px; color: var(--text); font-size: 15px; font-weight: 600;
}
.ch-create-title:focus { outline: none; border-color: var(--accent); }
.ch-tpl-list { display: flex; flex-direction: column; gap: 5px; max-height: 300px; overflow-y: auto; }
.ch-tpl-row {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 9px;
  border: 1px solid var(--line); background: var(--bg-1); color: var(--text); text-align: left; cursor: pointer;
}
.ch-tpl-row.on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.ch-tpl-ic {
  width: 30px; height: 30px; flex: 0 0 30px; border-radius: 8px; display: grid; place-items: center;
  background: var(--bg-2); border: 1px solid var(--line); color: var(--dim); font-size: 13px;
}
.ch-tpl-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ch-tpl-main b { font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-tpl-main span { font-size: 11.5px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-tpl-rm { flex: none; color: var(--faint); padding: 3px 5px; border-radius: 6px; cursor: pointer; }
.ch-tpl-rm:hover { color: var(--danger, #ed4245); background: var(--hover); }
.ch-tpl-hint { font-size: 12px; color: var(--faint); padding: 8px 2px; }

/* Restricted/private page indicator in the tree. */
.ch-restricted-icon { flex: none; font-size: 10px; color: var(--faint); }

/* ---- Permissions modal ---- */
.ch-perms { width: min(500px, 94vw); }
.ch-perms-body { max-height: min(66vh, 560px); overflow-y: auto; overflow-x: hidden; }
.ch-perms-title { font-weight: 600; margin-bottom: 12px; color: var(--dim); }
.ch-perms-scope { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); padding: 2px 6px; border: 1px solid var(--line); border-radius: 6px; margin-left: 4px; }
.ch-perms-hint { font-size: 12px; color: var(--faint); margin: -6px 0 4px; }
/* ---- Department permissions picker ---- */
.ch-deptperms { width: min(440px, 94vw); }
.ch-deptperms-list { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.ch-deptperms-row { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-1); color: var(--text); cursor: pointer; text-align: left; }
.ch-deptperms-row:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.ch-deptperms-row .n { flex: 1; font-weight: 500; }
.ch-perms-lbl { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); margin: 12px 0 6px; }
.ch-perms-defaults { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ch-perms-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-1); color: var(--text); cursor: pointer; }
.ch-perms-opt span { font-size: 11px; color: var(--faint); }
.ch-perms-opt.on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); }
.ch-perms-grants { display: flex; flex-direction: column; gap: 4px; }
.ch-perms-row { display: flex; align-items: center; gap: 10px; padding: 5px 8px; border-radius: 8px; }
.ch-perms-row:hover { background: var(--hover); }
.ch-perms-name { flex: 1; min-width: 0; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-perms-level {
  flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--bg-1);
  color: var(--text); font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
}
.ch-perms-level:hover { border-color: var(--accent); }
.ch-perms-level i { font-size: 10px; opacity: .6; }
.ch-perms-roleic { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--bg-1); color: var(--dim); flex: none; }
.ch-perms-rm { background: none; border: none; color: var(--faint); cursor: pointer; padding: 2px 5px; flex: none; }
.ch-perms-rm:hover { color: var(--danger, #ed4245); }
/* Add-people search + results */
.ch-perms-search { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg-1); }
.ch-perms-search i { color: var(--faint); font-size: 12px; }
.ch-perms-search input { flex: 1; min-width: 0; background: none; border: none; outline: none; color: var(--text); font-size: 13px; }
.ch-perms-results { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.ch-perms-hit { display: flex; align-items: center; gap: 10px; padding: 5px 8px; border-radius: 8px; background: none; border: none; color: var(--text); cursor: pointer; text-align: left; }
.ch-perms-hit:hover { background: var(--hover); }
.ch-perms-addlbl { flex: none; font-size: 12px; color: var(--accent); display: inline-flex; align-items: center; gap: 4px; }

/* ---- Trash modal ---- */
.ch-trash { width: min(560px, 94vw); }
.ch-trash-body { max-height: min(60vh, 480px); overflow-y: auto; }
.ch-trash-row { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--line); }
.ch-trash-meta { flex: 1; min-width: 0; }
.ch-trash-title { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-trash-sub { font-size: 11px; color: var(--faint); }
.ch-trash-purge { color: var(--danger, #ed4245); }

/* ---- Sidebar: Favorites + Recently viewed sections ---- */
.ch-quick { padding: 4px 0 2px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.ch-quick-sec { margin-bottom: 4px; }
.ch-quick-head { display: flex; align-items: center; gap: 6px; padding: 4px 12px 2px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--faint); }
.ch-quick-head > i { font-size: 10px; }
.ch-fav-star { margin-left: auto; font-size: 10px; color: #f5b301; }
/* Page status: a small colored dot in the tree; dim archived/deprecated pages. */
.ch-status-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; }
.ch-node.ch-dim { opacity: .55; }
.ch-node.ch-dim:hover { opacity: 1; }
/* Header status select (colored pill) + owner chip. */
.ch-status-select {
  flex: none; display: inline-flex; align-items: center; gap: 5px;
  background: color-mix(in srgb, var(--st, var(--accent)) 16%, transparent);
  color: var(--st, var(--text)); border: 1px solid color-mix(in srgb, var(--st, var(--accent)) 45%, transparent);
  border-radius: 999px; padding: 3px 9px; font-size: 12px; font-weight: 600; cursor: pointer; outline: none;
}
.ch-status-select:hover { background: color-mix(in srgb, var(--st, var(--accent)) 26%, transparent); }
.ch-status-select:disabled { opacity: .55; cursor: default; }
.ch-status-select .fa-caret-down { font-size: 9px; opacity: .8; }
.ch-owner { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--dim); white-space: nowrap; }
.ch-owner > i { font-size: 10px; }
/* Page locking. */
.ch-lock-icon { flex: none; font-size: 10px; color: var(--faint); }
.ch-locked-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: #e8842b; white-space: nowrap; }
.ch-lock-banner {
  display: flex; align-items: center; gap: 8px; padding: 8px 12px; margin-bottom: 12px; border-radius: 8px; font-size: 13px;
  color: #e8842b; background: color-mix(in srgb, #e8842b 12%, transparent); border: 1px solid color-mix(in srgb, #e8842b 30%, transparent);
}
.ch-fav-btn.on { color: #f5b301; }

/* ---- Full-text search modal ---- */
.ch-search-modal { width: min(680px, 94vw); max-width: 680px; padding: 0; overflow: hidden; }
.ch-search-bar { display: flex; align-items: center; gap: 10px; padding: 13px 14px; }
.ch-search-bar > .fa-magnifying-glass { color: var(--faint); flex: none; }
.ch-search-input { flex: 1 1 auto; min-width: 0; background: transparent; border: none; outline: none; color: var(--text); font-size: 16px; }
/* Filters live on their own row so the search field always gets the full width. */
.ch-search-filter { display: flex; align-items: center; gap: 10px; padding: 0 14px 10px; border-bottom: 1px solid var(--line); }
.ch-search-filter-label { flex: none; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--faint); }
.ch-search-filter .df-wrap { flex: 1 1 auto; min-width: 0; }
.ch-search-results { max-height: min(60vh, 520px); overflow-y: auto; padding: 6px; }
.ch-sr { display: flex; gap: 10px; width: 100%; text-align: left; background: transparent; border: none; cursor: pointer; padding: 9px 10px; border-radius: 8px; }
.ch-sr:hover { background: var(--hover); }
.ch-sr-icon { margin-top: 2px; }
.ch-sr-body { min-width: 0; flex: 1; }
.ch-sr-title { font-weight: 600; font-size: 14px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-sr-sub { font-size: 12px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ch-sr-status { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin-left: 8px; }

/* Status filter chips in the search modal */
.ch-search-status { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 10px; }
.ch-status-chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--bg-1); color: var(--dim); font-size: 12px; cursor: pointer;
}
.ch-status-chip .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--st, var(--dim)); }
.ch-status-chip:hover { color: var(--text); }
.ch-status-chip.on { border-color: var(--st, var(--accent)); color: var(--text); background: color-mix(in srgb, var(--st, var(--accent)) 12%, transparent); }

/* "Show archived" toggle under the tree filter */
.ch-arch-toggle {
  display: flex; align-items: center; gap: 7px; margin: 0 10px 4px; padding: 4px 8px;
  border: none; background: none; border-radius: 7px; color: var(--faint); font-size: 11.5px; cursor: pointer; text-align: left;
}
.ch-arch-toggle:hover { color: var(--text); background: var(--hover); }
.ch-sr-excerpt { font-size: 12.5px; color: var(--dim); margin: 2px 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ch-sr-excerpt mark { background: color-mix(in srgb, var(--accent) 40%, transparent); color: var(--text); border-radius: 2px; padding: 0 1px; }
.ch-sr-meta { font-size: 11px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Confluence-style shell: persistent page tree + document area */
.ch-shell { flex: 1; display: grid; grid-template-columns: 264px 1fr; min-height: 0; min-width: 0; }
.ch-side { display: flex; flex-direction: column; min-height: 0; background: var(--bg-2); border-right: 1px solid var(--line); }
.ch-side-head { display: flex; align-items: center; gap: 2px; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.ch-side-btn { position: relative; width: 28px; height: 28px; border-radius: 6px; color: var(--dim); } /* relative: hosts .tut-dot */
.ch-side-btn:hover { background: var(--hover); color: var(--text); }
.ch-side-btn.on { background: var(--hover); color: var(--accent); }

/* Built-in "Charts guide" page (ChartsHelp.tsx) */
.ch-kbd {
  display: inline-block; padding: 0 7px; border-radius: 5px; border: 1px solid var(--line);
  border-bottom-width: 2px; background: var(--bg-2); font-family: inherit;
  font-size: 12.5px; font-weight: 700; line-height: 1.6; color: var(--text);
}
.ch-help h2 { margin-top: 1.1em; }
.ch-help .ch-status-badge { cursor: default; margin: 0 2px; }
.ch-help li { margin: 0.25em 0; }
.ch-help i.fa-solid, .ch-help i.fa-regular { font-size: 0.85em; opacity: 0.85; margin: 0 1px; }
.ch-search-wrap { position: relative; padding: 8px 10px; }
.ch-search-wrap > i { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); font-size: 11px; color: var(--faint); }
.ch-search { width: 100%; background: var(--bg-1); border: 1px solid var(--line); border-radius: 8px; color: var(--text); padding: 6px 10px 6px 28px; font-size: 13px; }
.ch-side-filter { padding: 0 10px 8px; border-bottom: 1px solid var(--line); }
.ch-side-filter .df-chip { padding: 2px 9px; font-size: 11.5px; }
.ch-tree { flex: 1; overflow-y: auto; padding: 4px 6px 20px; }
.ch-node { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 6px; cursor: pointer; font-size: 13px; color: var(--dim); white-space: nowrap; }
.ch-node:hover { background: var(--hover); color: var(--text); }
.ch-node .n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ch-node.ch-pnode.sel { background: color-mix(in srgb, var(--accent) 18%, transparent); color: var(--text); }
/* Drag-to-reorder drop indicator (line above a page, ring around a folder). */
.ch-node.ch-pnode.drop-target { box-shadow: inset 0 2px 0 var(--accent); }
.ch-node.ch-fnode.drop-target { box-shadow: inset 0 0 0 1.5px var(--accent); border-radius: 6px; }
.ch-caret { width: 12px; text-align: center; font-size: 10px; color: var(--faint); transition: transform 0.12s; }
.ch-caret.open { transform: rotate(90deg); }
.ch-caret.none { visibility: hidden; }
.ch-tree-empty { padding: 18px 12px; color: var(--faint); font-size: 13px; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: center; }
.ch-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; }

/* Home (nothing selected): recent pages */
.ch-home { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 24px; }
.ch-home img { width: 64px; height: 64px; opacity: 0.85; }
.ch-recent { margin-top: 18px; width: min(460px, 90%); display: flex; flex-direction: column; gap: 2px; }
.ch-recent-head { font-size: 11px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--faint); margin-bottom: 6px; }
.ch-recent-row { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 8px; color: var(--text); text-align: left; }
.ch-recent-row:hover { background: var(--hover); }
.ch-recent-row .n { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ch-recent-row .when { color: var(--faint); font-size: 12px; }

/* "Needs review" queue: approve / request-changes inline actions */
.ch-nr-row { cursor: pointer; }
.ch-nr-actions { display: flex; gap: 6px; opacity: 0; transition: opacity .12s; }
.ch-nr-row:hover .ch-nr-actions, .ch-nr-row:focus-within .ch-nr-actions { opacity: 1; }
.ch-nr-btn {
  display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 7px;
  font-size: 12px; font-weight: 600; color: var(--text);
  background: var(--hover); border: 1px solid var(--line); white-space: nowrap;
}
.ch-nr-btn:hover { border-color: var(--accent); }
.ch-nr-btn.ok { color: #3ba55d; }

/* Document header (inside the sheet) */
.ch-bar-title { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40%; }
.ch-doc-title {
  width: 100%; background: transparent; border: none; outline: none; color: var(--text);
  font-size: 30px; font-weight: 800; line-height: 1.25; padding: 0; margin: 0 0 2px;
}
.ch-doc-title::placeholder { color: var(--faint); }
.ch-byline { color: var(--faint); font-size: 12.5px; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }

.ch-page { display: flex; flex-direction: column; height: 100%; min-width: 0; }

.ch-live { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 3px 9px; }
.ch-live.connected { color: #3ba55d; background: color-mix(in srgb, #3ba55d 14%, transparent); }
.ch-live.connecting, .ch-live.offline { color: #f0b232; background: color-mix(in srgb, #f0b232 14%, transparent); }

.ch-peer { border-radius: 50%; box-shadow: 0 0 0 2px var(--peer, var(--accent)); display: inline-flex; }

/* Launcher page tiles */
.ch-thumb { display: flex; align-items: center; justify-content: center; position: relative; background: color-mix(in srgb, var(--cat, #64748b) 26%, var(--bg-1)); color: var(--cat, #64748b); font-size: 26px; }
.ch-thumb-when { position: absolute; right: 8px; bottom: 6px; font-size: 10px; color: var(--dim); }

/* Toolbar */
.ch-toolbar { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; padding: 6px 10px; border-bottom: 1px solid var(--line); background: var(--bg-2); }
.ch-tool { width: 30px; height: 30px; border-radius: 6px; color: var(--dim); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }
.ch-tool:hover { background: var(--hover); color: var(--text); }
.ch-tool.on { background: color-mix(in srgb, var(--accent) 22%, transparent); color: var(--accent); }
.ch-tool:disabled { opacity: 0.4; }

/* Page canvas. overflow-x hidden: oversized content (tables resized wider
   than the screen, huge images, long unbroken strings) must scroll INSIDE
   the sheet, never stretch the app layout. */
.ch-canvas { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 24px 16px 80px; scroll-padding-bottom: 140px; scroll-padding-top: 60px; }
.ch-sheet { max-width: 840px; margin: 0 auto; background: var(--bg-1); border: 1px solid var(--line); border-radius: 12px; padding: 36px 44px; min-height: 70vh; min-width: 0; }
.ch-sheet .tiptap { overflow-wrap: anywhere; }

/* Editor content */
.ch-sheet .tiptap { outline: none; color: var(--text); font-size: 15px; line-height: 1.65; }
.ch-sheet .tiptap p { margin: 0 0 0.6em; }
.ch-sheet .tiptap h1 { font-size: 26px; margin: 0.8em 0 0.4em; }
.ch-sheet .tiptap h2 { font-size: 21px; margin: 0.8em 0 0.4em; }
.ch-sheet .tiptap h3 { font-size: 17px; margin: 0.8em 0 0.4em; }
.ch-sheet .tiptap ul, .ch-sheet .tiptap ol { padding-left: 1.4em; margin: 0 0 0.6em; }
.ch-sheet .tiptap blockquote { border-left: 3px solid var(--accent); margin: 0.6em 0; padding: 2px 14px; color: var(--dim); }
.ch-sheet .tiptap code { background: var(--bg-2); border: 1px solid var(--line); border-radius: 4px; padding: 1px 5px; font-size: 13px; }
.ch-sheet .tiptap pre { background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; overflow-x: auto; margin: 0.6em 0; }
.ch-sheet .tiptap pre code { background: none; border: none; padding: 0; }
.ch-sheet .tiptap hr { border: none; border-top: 1px solid var(--line); margin: 1.2em 0; }
.ch-sheet .tiptap img { max-width: 100%; border-radius: 8px; display: block; margin: 0.6em 0; }
.ch-sheet .tiptap img.ProseMirror-selectednode { outline: 2px solid var(--accent); }
.ch-sheet .tiptap a { color: var(--accent); }

/* Tables. TipTap wraps each table in .tableWrapper — that wrapper scrolls
   horizontally when columns are resized wider than the page, so a huge table
   pans inside the document instead of breaking the layout. */
.ch-sheet .tiptap .tableWrapper { max-width: 100%; overflow-x: auto; margin: 0.8em 0; }
.ch-sheet .tiptap table { border-collapse: collapse; min-width: 100%; width: auto; margin: 0; table-layout: fixed; }
.ch-sheet .tiptap th, .ch-sheet .tiptap td { border: 1px solid var(--line); padding: 6px 10px; vertical-align: top; position: relative; }
.ch-sheet .tiptap th { background: var(--bg-2); font-weight: 700; text-align: left; }
.ch-sheet .tiptap .selectedCell::after { content: ''; position: absolute; inset: 0; background: color-mix(in srgb, var(--accent) 16%, transparent); pointer-events: none; }
.ch-sheet .tiptap .column-resize-handle { position: absolute; right: -2px; top: 0; bottom: 0; width: 4px; background: var(--accent); cursor: col-resize; }

/* Checklists */
.ch-sheet .tiptap ul[data-type='taskList'] { list-style: none; padding-left: 0.2em; }
.ch-sheet .tiptap ul[data-type='taskList'] li { display: flex; gap: 8px; align-items: flex-start; }
.ch-sheet .tiptap ul[data-type='taskList'] li > label { margin-top: 3px; }
.ch-sheet .tiptap ul[data-type='taskList'] li[data-checked='true'] > div { text-decoration: line-through; color: var(--dim); }

/* Page break: labeled dashed divider on screen, real break in print/PDF */
.ch-pagebreak {
  position: relative; margin: 1.6em -44px; border-top: 2px dashed var(--line); height: 0;
}
.ch-pagebreak::after {
  content: 'PAGE BREAK'; position: absolute; top: -0.7em; left: 50%; transform: translateX(-50%);
  font-size: 9px; font-weight: 800; letter-spacing: 0.12em; color: var(--faint);
  background: var(--bg-1); padding: 0 10px;
}
.ch-pagebreak.ProseMirror-selectednode { border-top-color: var(--accent); }
@media print {
  .ch-pagebreak { break-after: page; page-break-after: always; border: none; }
  .ch-pagebreak::after { content: none; }
  .ch-toolbar, .wb-bar { display: none !important; }
  .ch-margin, .ch-margin-solo, .ch-addcm-btn, .ch-composer { display: none !important; }
  .ch-canvas { overflow: visible; padding: 0; }
  .ch-sheetwrap { max-width: none; }
  .ch-sheet { border: none; max-width: none; padding: 0; }
}

/* Placeholder */
.ch-sheet .tiptap p.is-editor-empty:first-child::before { content: attr(data-placeholder); color: var(--faint); float: left; height: 0; pointer-events: none; }

/* Collaboration cursors (y-prosemirror renders these) */
.ch-sheet .tiptap .collaboration-cursor__caret {
  border-left: 1px solid; border-right: 1px solid; margin-left: -1px; margin-right: -1px;
  position: relative; word-break: normal; pointer-events: none;
}
.ch-sheet .tiptap .collaboration-cursor__label {
  position: absolute; top: -1.35em; left: -1px; font-size: 10px; font-weight: 700; color: #fff;
  padding: 1px 6px; border-radius: 4px 4px 4px 0; white-space: nowrap; user-select: none; pointer-events: none;
}

/* History modal */
.ch-history { display: flex; flex-direction: column; gap: 8px; max-height: 50vh; overflow-y: auto; }
.ch-rev { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; }
.ch-rev-meta { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ch-rev-meta .muted { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Page activity (audit trail) — admin-only section under the version list */
.ch-audit-head {
  margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  display: flex; align-items: center; gap: 6px; opacity: .75;
}
.ch-audit-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 3px 2px; font-size: 13px; }
.ch-audit-what { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ch-audit-when { font-size: 12px; white-space: nowrap; opacity: .65; }

/* ---- Auto table of contents (Confluence-style, built from headings) ---- */
.ch-canvas.has-toc { display: flex; align-items: flex-start; justify-content: center; gap: 30px; }
.ch-canvas.has-toc .ch-sheetwrap { margin: 0; }
.ch-toc {
  position: sticky; top: 0; flex: 0 0 220px; align-self: flex-start;
  max-height: calc(100vh - 180px); overflow-y: auto;
  padding: 2px 2px 8px; font-size: 13px;
}
.ch-toc-head { text-transform: uppercase; font-size: 11px; letter-spacing: .05em; color: var(--faint); font-weight: 700; padding: 6px 8px; }
.ch-toc-item {
  display: block; width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  color: var(--dim); padding: 4px 8px; border-left: 2px solid transparent;
  border-radius: 0 6px 6px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.4;
}
.ch-toc-item:hover { color: var(--text); background: var(--hover); }
.ch-toc-item.active { color: var(--text); border-left-color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); }
.ch-toc-item.lvl2 { padding-left: 20px; }
.ch-toc-item.lvl3 { padding-left: 32px; font-size: 12px; }
/* Narrow screens: keep the sheet full and hide the rail. */
@media (max-width: 980px) {
  .ch-toc { display: none; }
  .ch-canvas.has-toc { display: block; }
  .ch-canvas.has-toc .ch-sheetwrap { margin: 0 auto; }
}
/* When there's no room for the comment gutter, ChartsPage measures the canvas
   (accounting for the TOC rail) and switches to the floating solo view — no
   viewport media query, so collapsed/open side panels are handled correctly. */
/* Drydock — built-in version control. All colors from theme vars. */

.dd-pane { flex: 1; display: flex; flex-direction: column; min-width: 0; background: var(--main-bg, var(--bg-1)); position: relative; }
.dd-head { height: 52px; flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 0 16px; border-bottom: 1px solid var(--line); font-size: 15px; }
.dd-head h1 { font-size: 16px; margin: 0 10px 0 4px; }
.dd-head .hamburger { background: transparent; border: none; color: var(--dim); cursor: pointer; padding: 6px 8px; border-radius: 6px; }
.dd-head .hamburger:hover { color: var(--text); background: var(--hover); }
.dd-depot-sel { background: var(--bg-2); color: var(--text); border: 1px solid var(--line); border-radius: 8px; padding: 5px 8px; font-size: 13px; max-width: 220px; }
.dd-head-meta { font-size: 12px; color: var(--dim); margin-left: 10px; white-space: nowrap; }

.dd-tabs { display: flex; align-items: center; gap: 4px; padding: 6px 10px; border-bottom: 1px solid var(--line); }
.dd-tabs > button { background: transparent; border: none; color: var(--dim); font-weight: 600; font-size: 13px; padding: 6px 10px; border-radius: 8px; cursor: pointer; }
.dd-tabs > button.on { color: var(--text); background: var(--hover); }
.dd-filter { flex: 1; max-width: 340px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; color: var(--text); padding: 6px 10px; font-size: 13px; }
.dd-add-btn { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; margin-left: auto; }

.dd-files { flex: 1; overflow-y: auto; padding: 6px 8px 20px; }
/* The name column can NEVER collapse: minmax floor keeps names readable at any
   window size (the pane scrolls horizontally instead of hiding the name). */
.dd-row { display: grid; grid-template-columns: minmax(170px, 1fr) 56px 84px 140px 132px; gap: 8px; align-items: center; padding: 6px 10px; border-radius: 8px; font-size: 13px; }
.dd-files { overflow-x: auto; }
.dd-row:hover { background: color-mix(in srgb, var(--hover) 65%, transparent); }
.dd-row.head { color: var(--dim); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700; position: sticky; top: 0; background: var(--main-bg, var(--bg-1)); z-index: 1; }
.dd-row .p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, monospace; font-size: 12.5px; }
.dd-row .r, .dd-row .s { color: var(--dim); font-variant-numeric: tabular-nums; }
.dd-row .a { display: flex; gap: 2px; justify-content: flex-end; opacity: 0; }
.dd-row:hover .a { opacity: 1; }
.dd-row .a button, .dd-row .a a { background: transparent; border: none; color: var(--dim); cursor: pointer; padding: 4px 7px; border-radius: 6px; font-size: 12px; }
.dd-row .a button:hover, .dd-row .a a:hover { color: var(--text); background: var(--hover); }
.dd-lock { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; color: var(--accent); font-weight: 600; }
.dd-lock.mine { opacity: 0.85; }

.dd-changes { flex: 1; overflow-y: auto; padding: 10px 14px 20px; display: flex; flex-direction: column; gap: 6px; }
.dd-cl { display: grid; grid-template-columns: 84px 1fr auto; gap: 12px; align-items: center; text-align: left; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; color: var(--text); cursor: pointer; }
.dd-cl:hover { border-color: var(--accent); }
.dd-cl .num { font-weight: 800; color: var(--accent); font-variant-numeric: tabular-nums; }
.dd-cl .desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; }
.dd-cl .meta { color: var(--dim); font-size: 12px; white-space: nowrap; }

.dd-empty, .dd-off { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: var(--dim); text-align: center; padding: 24px; }
.dd-empty i, .dd-off i { font-size: 42px; opacity: 0.5; }
.dd-off h2 { color: var(--text); margin: 0; }
.dd-off p { max-width: 420px; line-height: 1.5; margin: 0; }

.dd-drop-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--bg-1) 72%, transparent); border: 2px dashed var(--accent); border-radius: 8px; font-weight: 800; font-size: 16px; color: var(--text); z-index: 30; pointer-events: none; }
.dd-toast { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); background: var(--bg-2); border: 1px solid var(--line); color: var(--text); border-radius: 999px; padding: 8px 18px; font-size: 13px; box-shadow: 0 8px 26px rgba(0,0,0,0.4); z-index: 40; }

.dd-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.55); display: flex; align-items: center; justify-content: center; z-index: 900; }
.dd-modal { width: min(640px, 94vw); max-height: 84vh; display: flex; flex-direction: column; background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px; padding: 18px; box-shadow: 0 24px 70px rgba(0,0,0,0.5); }
.dd-modal h2 { margin: 0 0 10px; font-size: 16px; display: flex; align-items: center; gap: 9px; }
.dd-modal h2 .muted { font-weight: 400; font-size: 12.5px; color: var(--dim); }
.dd-modal textarea { background: var(--bg-1); color: var(--text); border: 1px solid var(--line); border-radius: 8px; padding: 9px 11px; font-size: 13.5px; resize: vertical; margin-bottom: 10px; }
.dd-cl-desc { white-space: pre-wrap; color: var(--text); background: var(--bg-1); border-radius: 8px; padding: 9px 11px; font-size: 13.5px; margin: 0 0 10px; }
.dd-pend-list { overflow-y: auto; min-height: 0; display: flex; flex-direction: column; gap: 2px; }
.dd-pend { display: grid; grid-template-columns: 72px 1fr auto auto; gap: 10px; align-items: center; padding: 5px 8px; border-radius: 7px; font-size: 12.5px; }
.dd-pend:nth-child(odd) { background: color-mix(in srgb, var(--hover) 40%, transparent); }
.dd-pend .act { font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; }
.dd-pend .act.add { color: var(--green, #4caf6e); }
.dd-pend .act.edit { color: var(--accent); }
.dd-pend .act.delete { color: #e5534b; }
.dd-pend .p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, monospace; }
.dd-pend .p .muted { color: var(--dim); }
.dd-pend .s { color: var(--dim); font-variant-numeric: tabular-nums; }
.dd-pend .dl { color: var(--dim); padding: 3px 6px; border-radius: 6px; }
.dd-pend .dl:hover { color: var(--text); background: var(--hover); }
.dd-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }

/* Tools menu off-chip (owner sees Drydock even when the master switch is off) */
.dd-off-chip { margin-left: auto; font-size: 10px; font-weight: 800; letter-spacing: 0.04em; color: var(--dim); border: 1px solid var(--line); border-radius: 999px; padding: 1px 7px; }

/* Compact rows well before true mobile: the fixed columns total ~450px, so on
   any window under ~1100px the 1fr name column collapsed to nothing and rows
   showed only sizes ("nameless rows" bug). */
@media (max-width: 1100px) {
  .dd-row { grid-template-columns: minmax(170px, 1fr) 64px 110px; }
  .dd-row .l, .dd-row.head span:nth-child(4), .dd-row.head span:nth-child(5) { display: none; }
  .dd-row .s { grid-column: 2 / -1; }
  .dd-row .a { grid-column: 2 / -1; grid-row: 1; justify-content: flex-end; }
  .dd-row:hover .s { visibility: hidden; } /* on hover, the actions take the size's spot */
}

/* Workspace chip on pending changelist headers */
.dd-cl-ws {
  display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; color: var(--dim);
  border: 1px solid var(--line); border-radius: 999px; padding: 1px 8px; max-width: 220px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Files inside the depot tree (P4V-style) */
.dd-tnode.dd-tfile .dd-fic { color: var(--dim); }
.dd-tnode.dd-tfile .n { color: var(--dim); }
.dd-tnode.dd-tfile:hover .n { color: var(--text); }
.dd-tlock { margin-left: 6px; font-size: 10px; color: var(--accent); }

/* File viewer modal */
.dd-viewer { width: min(880px, 94vw); }
.dd-viewer h2 .muted { font-size: 12px; font-weight: 400; color: var(--dim); }
.dd-viewer-body {
  max-height: 62vh; overflow: auto; background: var(--bg-2); border: 1px solid var(--line);
  border-radius: 10px; padding: 12px 14px; margin: 10px 0 0;
  font-family: ui-monospace, monospace; font-size: 12px; line-height: 1.55; white-space: pre; color: var(--text);
}
.dd-viewer-img { display: flex; justify-content: center; padding: 14px; }
.dd-viewer-img img { max-width: 100%; max-height: 58vh; border-radius: 6px; }
.dd-viewer-load { display: flex; align-items: center; gap: 8px; color: var(--dim); font-family: inherit; }

/* Bulk folder import */
.dd-import { width: min(560px, 94vw); }
.dd-import-sum { margin: 4px 0 8px; font-size: 14px; font-weight: 600; }
.dd-import-note { margin: 0 0 10px; font-size: 12.5px; color: var(--dim); line-height: 1.5; }
.dd-import-err { margin: 0 0 10px; font-size: 12.5px; color: #e5534b; }
.dd-import-bar { height: 10px; border-radius: 999px; background: var(--bg-1); border: 1px solid var(--line); overflow: hidden; margin: 8px 0 4px; }
.dd-import-bar i { display: block; height: 100%; background: var(--accent); border-radius: 999px; transition: width 0.3s; }

/* ---- P4V-style layout ---- */
.dd-toolbar { display: flex; align-items: center; gap: 2px; padding: 4px 10px; border-bottom: 1px solid var(--line); background: var(--bg-2); }
.dd-tool { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; background: transparent; border: none; color: var(--dim); cursor: pointer; font-size: 10.5px; padding: 5px 10px; border-radius: 8px; min-width: 54px; }
.dd-tool i { font-size: 15px; }
.dd-tool:hover { background: var(--hover); color: var(--text); }
.dd-tool:disabled { opacity: 0.35; cursor: default; }
.dd-tool:disabled:hover { background: transparent; color: var(--dim); }
.dd-row.sel { background: color-mix(in srgb, var(--accent) 14%, transparent); }
.dd-tsep { width: 1px; height: 28px; background: var(--line); margin: 0 6px; }
.dd-toolbar .dd-filter { margin-left: auto; max-width: 260px; }

.dd-addr { display: flex; align-items: center; padding: 5px 12px; border-bottom: 1px solid var(--line); font-family: ui-monospace, monospace; font-size: 12.5px; color: var(--dim); background: var(--bg-1); white-space: nowrap; overflow-x: auto; }
.dd-addr button { background: transparent; border: none; color: var(--accent); cursor: pointer; padding: 1px 2px; font: inherit; }
.dd-addr button:hover { text-decoration: underline; }
.dd-addr-tail { opacity: 0.6; }

.dd-body { flex: 1; display: grid; grid-template-columns: 260px 1fr; min-height: 0; }
.dd-tree { border-right: 1px solid var(--line); overflow-y: auto; padding: 6px 4px 20px; background: var(--bg-2); }
.dd-tnode { display: flex; align-items: center; gap: 6px; padding: 3px 6px; border-radius: 6px; cursor: pointer; font-size: 13px; white-space: nowrap; }
.dd-tnode:hover { background: var(--hover); }
.dd-tnode.sel { background: color-mix(in srgb, var(--accent) 22%, transparent); }
.dd-tnode .n { overflow: hidden; text-overflow: ellipsis; }
.dd-tnode .c { margin-left: auto; font-size: 10.5px; color: var(--faint); }
.dd-caret { width: 12px; text-align: center; color: var(--dim); transition: transform 0.12s; font-size: 11px; }
.dd-caret.open { transform: rotate(90deg); }
.dd-caret.none { visibility: hidden; }
.dd-tnode .dd-fic { color: var(--accent); }
.dd-main { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.dd-main .dd-files, .dd-main .dd-changes { flex: 1; overflow-y: auto; }

.dd-fic { margin-right: 8px; opacity: 0.85; }
.dd-row .dd-fic { color: var(--dim); }
.dd-dir { cursor: pointer; }
.dd-dir .p { font-weight: 600; font-family: inherit; }
.dd-dir .dd-fic { color: var(--accent); }
.dd-ftype { margin-left: 8px; color: var(--faint); font-size: 11px; }
.dd-badge { margin-left: 6px; background: var(--accent); color: var(--bg-1); border-radius: 999px; font-size: 10px; font-weight: 800; padding: 1px 6px; }

/* Pending file rows (P4V-style: badged icon + depot path + #base/head).
   Same minmax floor as .dd-row so paths never collapse to nothing. */
.dd-row.phead, .dd-row.prow { grid-template-columns: minmax(170px, 1fr) 70px; }
.dd-pact.add { color: var(--green, #4caf6e); }
.dd-pact.edit { color: var(--accent); }
.dd-pact.delete { color: #e5534b; }
.dd-pdepot { color: var(--faint); }

/* Inline changelist-description editing */
.dd-clhead .desc.editable { cursor: text; border-radius: 6px; padding: 1px 6px; margin: -1px -6px; }
.dd-clhead .desc.editable:hover { background: var(--hover); }
.dd-desc-edit {
  flex: 1; min-width: 160px; background: var(--bg-1); border: 1px solid var(--accent);
  border-radius: 6px; color: var(--text); font-size: 12.5px; padding: 2px 8px; outline: none;
}
.dd-row.phead { color: var(--dim); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700; position: sticky; top: 0; background: var(--main-bg, var(--bg-1)); z-index: 1; }
.dd-row.prow { cursor: pointer; }
.dd-row .act { font-weight: 700; font-size: 11px; text-transform: uppercase; }
.dd-row .act.add { color: var(--green, #4caf6e); }
.dd-row .act.edit { color: var(--accent); }
.dd-row .act.delete { color: #e5534b; }
.dd-row .dim { color: var(--dim); font-size: 12px; }

@media (max-width: 760px) {
  .dd-body { grid-template-columns: 1fr; }
  .dd-tree { display: none; }
  .dd-tool span { display: none; }
}

/* ---- Pending tab: grouped changelists (P4V style) ---- */
.dd-pending { flex: 1; overflow-y: auto; padding: 4px 0 20px; }
.dd-ptoolbar { display: flex; align-items: center; gap: 6px; padding: 6px 12px; border-bottom: 1px solid var(--line); }
.dd-phint { margin-left: auto; font-size: 11.5px; color: var(--faint); }
.dd-clgroup { border-bottom: 1px solid color-mix(in srgb, var(--line) 55%, transparent); }
.dd-clgroup.sel .dd-clhead { background: color-mix(in srgb, var(--accent) 16%, transparent); }
.dd-clhead { display: flex; align-items: center; gap: 8px; padding: 7px 12px; cursor: pointer; font-size: 13px; user-select: none; }
.dd-clhead:hover { background: var(--hover); }
.dd-clhead .dd-cico { color: #e0a53b; font-size: 12px; }
.dd-clhead .num { font-weight: 800; color: var(--accent); font-variant-numeric: tabular-nums; }
.dd-clhead .who { color: var(--dim); }
.dd-clhead .desc { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dd-clhead .cnt { color: var(--faint); font-size: 11.5px; white-space: nowrap; }

/* ---- Right-click context menu ---- */
.dd-menu-scrim { position: fixed; inset: 0; z-index: 999; }
.dd-menu { position: fixed; z-index: 1000; min-width: 240px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 4px; box-shadow: 0 12px 34px rgba(0,0,0,0.5); }
.dd-menu-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; width: 100%; text-align: left; background: transparent; border: none; color: var(--text); font-size: 13px; padding: 7px 10px; border-radius: 6px; cursor: pointer; }
.dd-menu-item:hover:not(.disabled) { background: var(--accent); color: #fff; }
.dd-menu-item.disabled { color: var(--faint); cursor: default; }
.dd-menu-item.danger:hover:not(.disabled) { background: #e5534b; }
.dd-menu-item .sc { font-size: 11px; opacity: 0.7; }
