@livx.cc/bare-v3 0.1.0-alpha.159 → 0.1.0-alpha.161

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bare.css CHANGED
@@ -359,7 +359,10 @@
359
359
  @supports (animation-timeline: scroll(self inline)) {
360
360
  .b3-reel:has( > .b3-badge) {
361
361
  mask-image: linear-gradient(to right, #000 calc(100% - var(--b3-reel-fade)), #0000);
362
- animation: linear both b3-reel-fade scroll(self inline);
362
+ animation-name: b3-reel-fade;
363
+ animation-timing-function: linear;
364
+ animation-fill-mode: both;
365
+ animation-timeline: scroll(self inline);
363
366
  }
364
367
 
365
368
  .b3-reel:has( > .b3-badge):dir(rtl) {
@@ -1253,6 +1256,43 @@
1253
1256
  overflow-x: auto;
1254
1257
  }
1255
1258
 
1259
+ @supports (animation-timeline: scroll(self inline)) {
1260
+ .b3-tablist:not([aria-orientation="vertical"]) {
1261
+ --b3-tablist-l: var(--b3-tablist-start);
1262
+ --b3-tablist-r: var(--b3-tablist-end);
1263
+ mask-image: linear-gradient(to right, #0000, #000 var(--b3-tablist-l), #000 calc(100% - var(--b3-tablist-r)), #0000);
1264
+ animation-name: b3-tablist-fade;
1265
+ animation-timing-function: linear;
1266
+ animation-fill-mode: both;
1267
+ animation-timeline: scroll(self inline);
1268
+ }
1269
+
1270
+ .b3-tablist:not([aria-orientation="vertical"]):dir(rtl) {
1271
+ --b3-tablist-l: var(--b3-tablist-end);
1272
+ --b3-tablist-r: var(--b3-tablist-start);
1273
+ }
1274
+
1275
+ @keyframes b3-tablist-fade {
1276
+ from {
1277
+ --b3-tablist-start: 0rem;
1278
+ --b3-tablist-end: 2.5rem;
1279
+ }
1280
+
1281
+ 10% {
1282
+ --b3-tablist-start: 2.5rem;
1283
+ }
1284
+
1285
+ 90% {
1286
+ --b3-tablist-end: 2.5rem;
1287
+ }
1288
+
1289
+ to {
1290
+ --b3-tablist-start: 2.5rem;
1291
+ --b3-tablist-end: 0rem;
1292
+ }
1293
+ }
1294
+ }
1295
+
1256
1296
  .b3-tab {
1257
1297
  appearance: none;
1258
1298
  color: var(--b3-color-muted);
@@ -2897,3 +2937,15 @@
2897
2937
  inherits: false;
2898
2938
  initial-value: 2.5rem;
2899
2939
  }
2940
+
2941
+ @property --b3-tablist-start {
2942
+ syntax: "<length>";
2943
+ inherits: false;
2944
+ initial-value: 0;
2945
+ }
2946
+
2947
+ @property --b3-tablist-end {
2948
+ syntax: "<length>";
2949
+ inherits: false;
2950
+ initial-value: 0;
2951
+ }
package/dist/bare.min.css CHANGED
@@ -1 +1 @@
1
- @layer bare.reset{:where(.b3-root),:where(.b3-root *){box-sizing:border-box}:where(.b3-root){font-family:var(--b3-font-body);background:var(--b3-color-canvas);color:var(--b3-color-text);color-scheme:light;margin:0;font-size:1rem;line-height:1.5}:where(.b3-root>body){margin:0}:where(b3-tabs,b3-dropdown,b3-dialog,b3-sheet,b3-command,b3-composer){display:contents}:where(b3-reel,b3-toast-region,b3-toc,b3-board,b3-date-picker,b3-image-viewer){display:block}:where(.b3-root) :where(button,input,select,textarea){font:inherit}:where(.b3-root) :where(button:not(:disabled)){color:inherit}:where(.b3-root) :where(button:not(:disabled),a[href],select,summary,[role=button],[role=option],[role=tab],[role=menuitem],[role=link]){cursor:pointer}:where(.b3-root) :where(h1,h2,h3,h4,h5,h6,p){margin:0}:where(.b3-root) :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:inset 0 0 0 2px}:where(.b3-root) :where([tabindex="-1"]:not(:is(button,a,input,select,textarea,summary,[role=button],[role=link]))):focus-visible{box-shadow:none}@media (forced-colors:active){:where(.b3-root) :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline-offset:-2px;outline:1px solid highlight}}:where(.b3-root) :where(img,svg:not([width])){max-inline-size:100%}:where(.b3-root) :where(svg:not([width])){block-size:1em;inline-size:1em}@media (prefers-reduced-motion:reduce){:where(.b3-root *),:where(.b3-root *):before,:where(.b3-root *):after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-b3-motion=reduce] *,[data-b3-motion=reduce] :before,[data-b3-motion=reduce] :after,[data-b3-motion=reduce] ::backdrop{scroll-behavior:auto!important;transition:none!important;animation:none!important}:where(.b3-root [hidden]):not([hidden=until-found]){display:none!important}:where(.b3-root) :where(input[type=checkbox],input[type=radio],input[type=range]){accent-color:var(--b3-color-accent)}:where(.b3-root) :where(input[type=checkbox],input[type=radio]){flex-shrink:0}}@layer bare.tokens{.b3-root:where(:not(.b3-root .b3-root)),.b3-root[data-b3-theme=light]{--b3-color-canvas:#f6f5f0;--b3-color-surface:#fff;--b3-color-text:#202923;--b3-color-muted:#59655d;--b3-color-border:#d5dbd3;--b3-color-border-strong:#838d86;--b3-color-accent:#245c42;--b3-color-on-accent:#fff;--b3-color-danger:#a62c35;--b3-color-focus:#276bdd;--b3-font-body:ui-sans-serif, system-ui, sans-serif;--b3-font-display:var(--b3-font-body);--b3-radius:.75rem;--b3-space:1rem;--b3-content:68rem}.b3-root[data-b3-theme=dark]{color-scheme:dark;--b3-color-canvas:#141c19;--b3-color-surface:#202c26;--b3-color-text:#edf3ec;--b3-color-muted:#a8b9ad;--b3-color-border:#415348;--b3-color-border-strong:#74877b;--b3-color-accent:#aadbb8;--b3-color-on-accent:#132b1b;--b3-color-danger:#ffadb1;--b3-color-focus:#9ac4ff}.b3-root:where(:not(.b3-root .b3-root)),.b3-root[data-b3-theme=light]{--b3-space-1:.25rem;--b3-space-2:.5rem;--b3-space-3:.75rem;--b3-space-4:1rem;--b3-space-6:1.5rem;--b3-space-8:2rem;--b3-space-12:3rem;--b3-radius-small:.375rem;--b3-radius-large:1.25rem;--b3-shadow:0 8px 32px #14231b14;--b3-shadow-raised:0 16px 56px #14231b24;--b3-color-success:#256443;--b3-color-warning:#805100;--b3-color-info:#275f99;--b3-duration:.16s}.b3-root[data-b3-theme=dark]{--b3-shadow:0 8px 32px #0004;--b3-shadow-raised:0 16px 56px #0007;--b3-color-success:#99d9ab;--b3-color-warning:#f2c76c;--b3-color-info:#a2cfff}.b3-root[data-b3-density=compact]{--b3-d-control:2.25rem;--b3-d-control-small:1.875rem;--b3-d-pad-block:.4375rem;--b3-d-pad-inline:.875rem;--b3-d-label:.875rem;--b3-d-heading:1.0625rem;--b3-d-avatar:2.25rem;--b3-d-message-pad:.625rem .875rem;--b3-d-meta:.75rem;--b3-d-gap:1rem;--b3-d-surface-pad:1rem}@media (pointer:fine) and (width>=48rem){.b3-root[data-b3-density=auto]{--b3-d-control:2.25rem;--b3-d-control-small:1.875rem;--b3-d-pad-block:.4375rem;--b3-d-pad-inline:.875rem;--b3-d-label:.875rem;--b3-d-heading:1.0625rem;--b3-d-avatar:2.25rem;--b3-d-message-pad:.625rem .875rem;--b3-d-meta:.75rem;--b3-d-gap:1rem;--b3-d-surface-pad:1rem}}}@layer bare.layout{.b3-shell{inline-size:min(100%, var(--b3-content));margin-inline:auto;padding:clamp(1rem,4vw,3rem)}.b3-stack{gap:var(--b3-space);flex-direction:column;min-inline-size:0;display:flex}.b3-stack:where(dialog:not([open])){display:none}.b3-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;min-block-size:0;min-inline-size:0;overflow:auto}dialog.b3-stack>.b3-scroll{min-block-size:min(6rem,30dvh)}.b3-stack:has(>.b3-scroll)>:not(.b3-scroll){flex-shrink:0}.b3-cluster{align-items:center;gap:var(--b3-space);flex-wrap:wrap;min-inline-size:0;display:flex}.b3-cluster>*,.b3-split>*{min-inline-size:0}.b3-inline{vertical-align:middle;align-items:center;gap:.5em;min-inline-size:0;max-inline-size:100%;display:inline-flex}.b3-inline>*{min-inline-size:0}.b3-inline:has(>.b3-badge){flex-wrap:wrap}.b3-inline>.b3-badge{flex-shrink:0}.b3-inline:has(>.b3-badge)>:not(.b3-badge,.b3-icon,svg){flex:1 1 min-content}.b3-grid{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--b3-grid-min,17rem)), 1fr));gap:var(--b3-space);display:grid}.b3-split{justify-content:space-between;align-items:center;gap:var(--b3-space);flex-wrap:wrap;display:flex}.b3-page{flex-direction:column;min-block-size:100svh;display:flex}.b3-page-body{flex:1;min-inline-size:0}.b3-app-layout{flex-wrap:wrap;min-block-size:100svh;display:flex;container:b3-app/inline-size}.b3-app-layout>.b3-sidebar{flex:16rem}.b3-app-layout>:not(.b3-sidebar){flex:999 32rem;min-inline-size:0}.b3-sidebar{padding:var(--b3-space-6);border-inline-end:1px solid var(--b3-color-border);background:var(--b3-color-surface);min-inline-size:0}.b3-center{padding:var(--b3-space-6);place-items:center;display:grid}.b3-cover{min-block-size:min(42rem,85svh);padding-block:var(--b3-space-12);flex-direction:column;justify-content:center;display:flex}.b3-reel{gap:var(--b3-space);scroll-snap-type:x proximity;padding-block-end:var(--b3-space-2);display:flex;overflow-x:auto}.b3-reel>*{scroll-snap-align:start;flex:0 0 min(85%,20rem)}@container b3-app (width<48rem){.b3-app-layout>.b3-sidebar{border-inline-end:0;border-block-end:1px solid var(--b3-color-border)}}.b3-reel:has(>.b3-badge){scrollbar-width:none;align-items:center;gap:.5rem;padding-block:.625rem}.b3-reel:has(>.b3-badge)::-webkit-scrollbar{display:none}.b3-reel>.b3-badge{flex:none}.b3-stack>.b3-reel{flex-shrink:0}@supports (animation-timeline:scroll(self inline)){.b3-reel:has(>.b3-badge){mask-image:linear-gradient(to right, #000 calc(100% - var(--b3-reel-fade)), #0000);animation:linear both b3-reel-fade scroll(self inline)}.b3-reel:has(>.b3-badge):dir(rtl){mask-image:linear-gradient(to left, #000 calc(100% - var(--b3-reel-fade)), #0000)}@keyframes b3-reel-fade{90%{--b3-reel-fade:2.5rem}to{--b3-reel-fade:0rem}}}}@layer bare.components{.b3-title{font-family:var(--b3-font-display);letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(1.75rem,7vw,4rem);line-height:1.05}.b3-heading{font-family:var(--b3-font-display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.375rem;font-weight:650;line-height:1.25}.b3-muted{color:var(--b3-color-muted)}.b3-label{letter-spacing:.06em;text-transform:uppercase;font-size:.8125rem;font-weight:650}.b3-surface{background:var(--b3-color-surface);color:var(--b3-color-text);border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);padding:clamp(1rem,3vw,2rem)}.b3-button{border-radius:var(--b3-radius);background:var(--b3-color-accent);min-block-size:2.75rem;color:var(--b3-color-on-accent);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-weight:650;text-decoration:none;display:inline-flex}.b3-button :where(svg){flex-shrink:0;display:block}.b3-button>:where([aria-hidden=true]):has(>svg){flex-shrink:0}.b3-button[data-b3-emphasis=quiet]{color:var(--b3-color-text);border-color:var(--b3-color-border);background:0 0}.b3-button:disabled{opacity:.5;cursor:not-allowed}.b3-field{align-content:start;gap:.375rem;min-inline-size:0;display:grid}.b3-input:where(:not([type=checkbox],[type=radio])){border:1px solid var(--b3-color-border-strong);border-radius:var(--b3-radius);background:var(--b3-color-surface);min-block-size:2.75rem;inline-size:100%;min-inline-size:0;color:var(--b3-color-text);padding:.625rem .75rem}.b3-error{color:var(--b3-color-danger);font-size:.875rem}select.b3-input:not([multiple]):not([size]),select.b3-input[size="1"]:not([multiple]){appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:right calc(1rem + 5px) center,right 1rem center;background-repeat:no-repeat;background-size:5px 5px;padding-inline-end:2.5rem}select.b3-input:not([multiple]):not([size]):dir(rtl),select.b3-input[size="1"]:not([multiple]):dir(rtl){background-position:1rem,calc(1rem + 5px)}@media (forced-colors:active){select.b3-input:not([multiple]):not([size]),select.b3-input[size="1"]:not([multiple]){appearance:auto;background-image:none}}:where(ul,ol):has(>.b3-row){margin:0;padding-inline-start:0}.b3-row{border-block-end:1px solid var(--b3-color-border);align-items:center;gap:.75rem;padding-block:1rem;display:flex}.b3-row:where(.b3-stack){align-items:stretch;gap:var(--b3-space)}:is(a,button,[role=button]).b3-row{padding-inline:var(--b3-space-4);color:inherit;text-align:start;cursor:pointer;transition:background-color var(--b3-duration);text-decoration:none}button.b3-row{appearance:none;border:0;border-block-end:1px solid var(--b3-color-border);background:0 0;inline-size:100%}@media (hover:hover){:is(a,button,[role=button]).b3-row:hover{background:color-mix(in srgb, var(--b3-color-text) 4%, transparent)}}:is(a,button,[role=button]).b3-row:focus-visible{background:color-mix(in srgb, var(--b3-color-text) 4%, transparent)}:is(a,button,[role=button]).b3-row:active{background:color-mix(in srgb, var(--b3-color-text) 8%, transparent)}.b3-clamp{-webkit-line-clamp:var(--b3-clamp,2);line-clamp:var(--b3-clamp,2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.b3-count{box-sizing:border-box;background:var(--b3-color-danger);block-size:1.25rem;min-inline-size:1.25rem;color:var(--b3-color-canvas);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:100vmax;flex:none;place-items:center;padding-inline:.3125rem;font-size:.6875rem;font-weight:700;line-height:1;display:inline-grid}.b3-count[data-b3-tone=accent]{background:var(--b3-color-accent);color:var(--b3-color-on-accent)}.b3-nav-link>.b3-count{margin-inline-start:auto}.b3-bottom-link{position:relative}.b3-bottom-link:has(>.b3-count){min-inline-size:max(var(--b3-touch,44px), 2.25rem)}.b3-bottom-link>.b3-count{box-shadow:0 0 0 2px var(--b3-color-surface);position:absolute;inset-block-start:.125rem;inset-inline-end:max(.125rem,50% - 2rem)}:is(a,button,[role=button]).b3-row:is([aria-current]:not([aria-current=false]),[aria-selected=true]){background:color-mix(in srgb, var(--b3-color-accent) 12%, transparent)}@media (forced-colors:active){:is(a,button,[role=button]).b3-row{border-inline-start:3px solid canvas}:is(a,button,[role=button]).b3-row:is([aria-current]:not([aria-current=false]),[aria-selected=true]){border-inline-start-color:highlight}}.b3-badge{overflow-wrap:anywhere;border:1px solid var(--b3-color-border);border-radius:100vmax;align-items:center;inline-size:fit-content;max-inline-size:100%;padding:.125rem .5rem;font-size:.75rem;font-weight:650;display:inline-flex}.b3-progress{block-size:.5rem;inline-size:100%;accent-color:var(--b3-color-accent)}.b3-button{transition:box-shadow var(--b3-duration), border-color var(--b3-duration)}@media (hover:hover){.b3-button:not(:disabled):hover{box-shadow:inset 0 0 0 100vmax #00000012}}.b3-button:not(:disabled):active{box-shadow:inset 0 0 0 100vmax #00000024}.b3-button[data-b3-emphasis=ghost]:not(:disabled):active{color:var(--b3-color-text)}.b3-button[data-b3-emphasis=outline]{color:var(--b3-color-accent);background:0 0;border-color:currentColor}.b3-button[data-b3-emphasis=danger]{background:var(--b3-color-danger);color:var(--b3-color-canvas)}.b3-button[data-b3-size=small]{padding:.5rem .75rem;font-size:.875rem}.b3-button[data-b3-size=large]{min-block-size:3.25rem;padding:.875rem 1.5rem}.b3-button[aria-busy=true]{cursor:progress}.b3-icon{vertical-align:-.2em;flex:none;block-size:1.25em;inline-size:1.25em;display:inline-block}[data-b3-confirm][data-b3-armed]{outline:2px solid var(--b3-color-danger)!important;outline-offset:2px!important}.b3-button[data-b3-armed]{background:var(--b3-color-danger);color:var(--b3-color-canvas);border-color:var(--b3-color-danger)}.b3-input:disabled{opacity:.6;cursor:not-allowed}.b3-input[readonly]{background:var(--b3-color-canvas)}.b3-input::placeholder{color:var(--b3-color-muted);opacity:.8}.b3-input-group{border:1px solid var(--b3-color-border-strong);border-radius:var(--b3-radius);background:var(--b3-color-canvas);flex-wrap:wrap;align-items:stretch;min-inline-size:0;display:flex;overflow:clip}.b3-input-group>.b3-input{border:0;border-radius:0;flex:12ch}.b3-input-group>.b3-button{overflow-wrap:anywhere;flex-wrap:wrap;min-inline-size:0;max-inline-size:100%;margin-inline-start:auto;padding-inline:.75rem}.b3-input-group:focus-within{outline:none;box-shadow:inset 0 0 0 2px}.b3-input-affix{overflow-wrap:anywhere;min-inline-size:0;max-inline-size:100%;color:var(--b3-color-muted);background:var(--b3-color-canvas);align-items:center;padding-inline:.75rem;display:flex}.b3-choice{cursor:pointer;flex-wrap:wrap;align-items:start;gap:.75rem;padding-block:.5rem;display:flex}.b3-choice>:not(input){overflow-wrap:anywhere;flex:12ch;min-inline-size:0}.b3-choice input{--b3-choice-control:1.125rem;inline-size:var(--b3-choice-control);block-size:var(--b3-choice-control);flex:none;margin:0;margin-block-start:max(0px, calc((1lh - var(--b3-choice-control)) / 2))}.b3-choice>.b3-switch{--b3-choice-control:1.625rem}.b3-switch{appearance:none;background:var(--b3-color-muted);border:2px solid var(--b3-color-muted);cursor:pointer;border-radius:2rem;position:relative;block-size:1.625rem!important;inline-size:2.75rem!important}.b3-switch:before{content:"";background:var(--b3-color-surface);border-radius:50%;block-size:1.125rem;inline-size:1.125rem;position:absolute;inset-block-start:.125rem;inset-inline-start:.125rem}.b3-switch:checked{background:var(--b3-color-accent);border-color:var(--b3-color-accent)}.b3-switch:checked:before{background:var(--b3-color-on-accent);inset-inline-start:calc(100% - 1.25rem)}.b3-switch:disabled{opacity:.5;cursor:not-allowed}@media (forced-colors:active){.b3-switch{forced-color-adjust:none;background:canvas;border-color:buttontext}.b3-switch:before{background:buttontext}.b3-switch:checked{background:highlight;border-color:highlight}.b3-switch:checked:before{background:highlighttext}.b3-switch:disabled{opacity:1;background:canvas;border-color:graytext}.b3-switch:disabled:before{background:graytext}}.b3-input[type=number]{appearance:textfield}.b3-input[type=number]::-webkit-inner-spin-button,.b3-input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.b3-input::-webkit-datetime-edit,.b3-input::-webkit-datetime-edit-fields-wrapper{padding-block:0}.b3-input:is([type=date],[type=time],[type=datetime-local],[type=month],[type=week]){appearance:none;max-inline-size:100%;display:block}.b3-input::-webkit-date-and-time-value{text-align:start;min-block-size:1lh}.b3-card-header,.b3-card-footer{justify-content:space-between;align-items:center;gap:var(--b3-space);flex-wrap:wrap;display:flex}.b3-card-header{margin-block-end:var(--b3-space-4)}.b3-card-footer{border-block-start:1px solid var(--b3-color-border);margin-block-start:var(--b3-space-4);padding-block-start:var(--b3-space-4)}.b3-stack>:is(.b3-card-header,.b3-card-footer){margin-block:0}.b3-surface[data-b3-elevation=raised]{box-shadow:var(--b3-shadow)}.b3-divider{border:0;border-block-start:1px solid var(--b3-color-border);inline-size:100%;margin-inline:0;margin-block:var(--b3-space)}.b3-stack>.b3-divider{margin-block:0}.b3-alert,.b3-toast{overflow-wrap:anywhere;min-inline-size:0}.b3-alert>*,.b3-toast>*{min-inline-size:0}.b3-alert pre{max-inline-size:100%;overflow-x:auto}.b3-alert{--b3-status-color:var(--b3-color-info);border:1px solid var(--b3-status-color);border-radius:var(--b3-radius-small);color:var(--b3-color-text);background:color-mix(in srgb, var(--b3-status-color) 8%, var(--b3-color-surface));border-inline-start-width:4px;align-items:start;gap:.75rem;padding:1rem;display:flex}.b3-alert[data-b3-tone=success],.b3-badge[data-b3-tone=success]{--b3-status-color:var(--b3-color-success)}.b3-alert[data-b3-tone=warning],.b3-badge[data-b3-tone=warning]{--b3-status-color:var(--b3-color-warning)}.b3-alert[data-b3-tone=danger],.b3-badge[data-b3-tone=danger]{--b3-status-color:var(--b3-color-danger)}.b3-badge[data-b3-tone]{color:var(--b3-status-color,var(--b3-color-info));background:color-mix(in srgb, currentColor 7%, transparent);border-color:currentColor}.b3-toast-region{z-index:100;inline-size:min(24rem,100% - 2rem);max-block-size:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overscroll-behavior:contain;pointer-events:none;gap:.75rem;display:grid;position:fixed;inset-block-end:calc(1rem + env(safe-area-inset-bottom,0px));inset-inline-end:1rem;overflow-y:auto}.b3-toast{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);color:var(--b3-color-text);box-shadow:var(--b3-shadow-raised);pointer-events:auto;flex-wrap:wrap;align-items:start;gap:1rem;padding:1rem;display:flex}.b3-toast>:not(button,.b3-button){flex:12rem}.b3-toast>:is(button,.b3-button){flex:none;max-inline-size:100%}.b3-spinner{vertical-align:-.125em;border:2px solid;border-inline-end-color:#0000;border-radius:50%;flex:none;block-size:1.125em;inline-size:1.125em;animation:.8s linear infinite b3-spin;display:inline-block}@keyframes b3-spin{to{transform:rotate(360deg)}}.b3-skeleton{background:var(--b3-color-border);border-radius:var(--b3-radius-small);min-block-size:1rem;animation:1.8s ease-in-out infinite b3-pulse}@keyframes b3-pulse{50%{opacity:.45}}:is(button,a).b3-badge{min-block-size:auto;color:var(--b3-color-text);cursor:pointer;background:0 0;gap:.25rem;text-decoration:none;position:relative}:is(button,a).b3-badge:after{content:"";position:absolute;inset:-10px 0}:is(button,a).b3-badge[data-b3-tone]{color:var(--b3-status-color,var(--b3-color-info))}:is(button,a).b3-badge:is([aria-pressed=true],[aria-current]:not([aria-current=false])){color:var(--b3-color-on-accent);background:var(--b3-color-accent);border-color:var(--b3-color-accent)}.b3-avatar{background:var(--b3-color-accent);block-size:2.5rem;inline-size:2.5rem;color:var(--b3-color-on-accent);border-radius:50%;flex:none;place-items:center;font-size:.875rem;font-weight:650;display:inline-grid;overflow:hidden}.b3-avatar>img{object-fit:cover;block-size:100%;inline-size:100%}.b3-avatar[data-b3-unread]{position:relative;overflow:visible}.b3-avatar[data-b3-unread]>img{border-radius:inherit}.b3-avatar[data-b3-unread]:after{content:"";background:var(--b3-color-accent);block-size:.75rem;inline-size:.75rem;box-shadow:0 0 0 2px var(--b3-color-surface);border-radius:50%;position:absolute;inset-block-start:-.0625rem;inset-inline-end:-.0625rem}.b3-avatar-stack{padding-inline-start:.5rem;display:flex}.b3-avatar-stack>.b3-avatar{border:2px solid var(--b3-color-surface);margin-inline-start:-.5rem}.b3-kbd{border:1px solid var(--b3-color-border);background:var(--b3-color-surface);color:var(--b3-color-muted);border-block-end-width:2px;border-radius:.25rem;padding:.15rem .35rem;font:.75rem ui-monospace,monospace}.b3-table-wrap{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);position:relative;overflow-x:auto}.b3-table{border-collapse:collapse;text-align:start;font-variant-numeric:tabular-nums;inline-size:100%}.b3-table th{color:var(--b3-color-muted);background:var(--b3-color-canvas);font-size:.75rem;font-weight:650}.b3-table :is(th,td){border-block-end:1px solid var(--b3-color-border);text-align:start;vertical-align:middle;padding:.875rem 1rem}.b3-table tbody tr:last-child td{border-block-end:0}.b3-table[data-b3-density=compact] :is(th,td){padding:.5rem .75rem}.b3-table tbody tr[aria-selected=true]{background:color-mix(in srgb, var(--b3-color-accent) 10%, var(--b3-color-surface))}.b3-definition{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.75rem 1.5rem;margin:0;display:grid;container:b3-definition/inline-size}.b3-definition dt{overflow-wrap:anywhere;min-inline-size:0;color:var(--b3-color-muted)}.b3-definition dd{overflow-wrap:anywhere;margin:0}@container b3-definition (width<=26rem){.b3-definition>:is(dt,dd){grid-column:1/-1}.b3-definition>dt:not(:first-child){margin-block-start:.75rem}}.b3-stat{grid-template-columns:minmax(0,1fr);gap:.5rem;display:grid}.b3-stat-value{overflow-wrap:anywhere;letter-spacing:-.045em;font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,5vw,3rem);font-weight:650;line-height:1.1}.b3-nav{border-block-end:1px solid var(--b3-color-border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem min(.75rem,3%);display:flex}.b3-nav[data-b3-orientation=vertical]{border-block-end:0;flex-direction:column;align-items:stretch}.b3-nav-link{overflow-wrap:anywhere;border-radius:var(--b3-radius-small);min-block-size:2.75rem;min-inline-size:0;max-inline-size:100%;color:var(--b3-color-muted);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.625rem min(.875rem,4%);text-decoration:none;display:flex}.b3-nav-link[aria-current=page]{background:color-mix(in srgb, var(--b3-color-accent) 10%, var(--b3-color-surface));color:var(--b3-color-accent);font-weight:650}.b3-nav-link:hover{background:var(--b3-color-surface);color:var(--b3-color-text)}.b3-breadcrumbs{color:var(--b3-color-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.b3-breadcrumbs li+li:before{content:"/";color:var(--b3-color-border);margin-inline-end:.5rem}.b3-tablist{border-block-end:1px solid var(--b3-color-border);gap:.25rem;display:flex;overflow-x:auto}.b3-tab{appearance:none;color:var(--b3-color-muted);font:inherit;white-space:normal;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;border-block-end:2px solid #0000;flex-shrink:0;min-block-size:2.75rem;max-inline-size:100%;padding:.75rem min(1rem,4vi)}.b3-tab[aria-selected=true]{color:var(--b3-color-accent);border-block-end-color:currentColor;font-weight:650}.b3-tab:disabled{opacity:.5;cursor:not-allowed}.b3-tabpanel{padding-block:var(--b3-space-4)}.b3-segmented{border-radius:var(--b3-radius);background:color-mix(in srgb, var(--b3-color-text) 7%, var(--b3-color-canvas));border:0;flex-wrap:wrap;gap:.25rem;min-inline-size:0;margin:0;padding:.25rem;display:flex}.b3-segmented>label{border-radius:calc(var(--b3-radius) - .25rem);min-block-size:2.75rem;max-inline-size:100%;color:var(--b3-color-muted);text-align:center;cursor:pointer;flex:1 0 auto;justify-content:center;align-items:center;gap:.375rem;padding-inline:.875rem;font-weight:600;display:inline-flex;position:relative}.b3-segmented>label>input{opacity:0;block-size:100%;inline-size:100%;cursor:inherit;margin:0;position:absolute;inset:0}.b3-segmented>label:has(input:checked){background:var(--b3-color-surface);color:var(--b3-color-text);box-shadow:0 1px 2px #0000001f, 0 0 0 1px var(--b3-color-border)}.b3-segmented>label:has(input:focus-visible){box-shadow:inset 0 0 0 2px}@media (forced-colors:active){.b3-segmented>label{border:2px solid canvas}.b3-segmented>label:has(input:checked){border-color:canvastext}.b3-segmented>label:has(input:focus-visible){outline-offset:1px;outline:2px solid highlight}}.b3-segmented>label:has(input:disabled){opacity:.5;cursor:not-allowed}.b3-filter-labels{overscroll-behavior-x:contain;scrollbar-width:none;gap:18px;display:flex;overflow-x:auto}.b3-filter-labels::-webkit-scrollbar{display:none}.b3-filter-labels>button{block-size:32px;box-shadow:none;color:var(--b3-color-muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;padding:0;font-size:15px;font-weight:500}.b3-filter-labels>button:hover{color:var(--b3-color-text)}.b3-filter-labels>button:is([aria-checked=true],[aria-pressed=true]){color:var(--b3-color-accent);font-weight:700}.b3-filter-labels>button:focus-visible{box-shadow:none;text-decoration:underline 2px var(--b3-color-accent);text-underline-offset:5px;outline:none}@media (forced-colors:active){.b3-filter-labels>button:is([aria-checked=true],[aria-pressed=true]){text-decoration:underline}.b3-filter-labels>button:focus-visible{outline:1px solid highlight}}.b3-accordion{border-block-end:1px solid var(--b3-color-border)}.b3-accordion>summary{cursor:pointer;padding:1rem .25rem;font-weight:650}.b3-accordion>:not(summary){padding:0 .25rem 1rem}.b3-dropdown{display:inline-block;position:relative}.b3-dropdown>summary{list-style:none}.b3-dropdown>summary::-webkit-details-marker{display:none}.b3-dropdown-panel{z-index:20;border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);max-block-size:70svh;inline-size:max-content;min-inline-size:min(12rem,85vw);max-inline-size:min(22rem,85vw);color:var(--b3-color-text);box-shadow:var(--b3-shadow-raised);padding:.5rem;position:absolute;inset-block-start:calc(100% + .5rem);inset-inline-start:0;overflow-y:auto}.b3-dialog{overscroll-behavior:contain;border:1px solid var(--b3-color-border);border-radius:var(--b3-radius-large);background:var(--b3-color-surface);max-block-size:calc(100svh - 2rem);inline-size:min(32rem,100% - 2rem);color:var(--b3-color-text);box-shadow:var(--b3-shadow-raised);padding:min(1.5rem,5vi);overflow:auto;container:b3-dialog/inline-size}.b3-dialog::backdrop{background:#101b17a6}.b3-dialog[data-b3-placement=end]{border-radius:0;block-size:100svh;max-block-size:100svh;inline-size:min(28rem,100%);max-inline-size:100%;margin:0;margin-inline-start:auto}@media (prefers-reduced-motion:no-preference){.b3-dialog[open]{animation:.28s cubic-bezier(.16,1,.3,1) b3-dialog-enter}.b3-dialog[open][data-b3-placement=end]{animation-name:b3-drawer-enter}.b3-dialog::backdrop,.b3-sheet::backdrop{transition:opacity .16s ease-out}.b3-dialog[data-b3-closing]::backdrop,.b3-sheet[data-b3-closing]::backdrop{opacity:0}@keyframes b3-dialog-enter{0%{opacity:0;transform:translateY(8px)scale(.96)}}@keyframes b3-drawer-enter{0%{opacity:0;translate:var(--b3-drawer-offset,1rem)}}.b3-dialog[dir=rtl][data-b3-placement=end],[dir=rtl] .b3-dialog[data-b3-placement=end]{--b3-drawer-offset:-1rem}}.b3-dialog>form{gap:var(--b3-space);flex-direction:column;margin:0;display:flex}.b3-dialog>form>header:has(>button:last-child){grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.75rem;display:grid}.b3-dialog>form>header:has(>button:last-child)>:not(:last-child){grid-column:1;min-inline-size:0}.b3-dialog>form>header>button:last-child:not(:first-child){grid-area:1/2}.b3-dialog>form>footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.b3-dialog>form>footer>[data-b3-emphasis=quiet]:first-child:not(:last-child){margin-inline-end:auto}@container b3-dialog (width<=16rem){.b3-dialog>form>header:has(>button:last-child){flex-direction:column;align-items:flex-start;display:flex}}.b3-tree,.b3-tree ul{overflow-wrap:anywhere;border-inline-start:1px solid var(--b3-color-border);padding-inline-start:min(1rem,5%);list-style:none}.b3-tree summary{cursor:pointer;padding-block:.5rem}.b3-prose{overflow-wrap:anywhere;max-inline-size:65ch;line-height:1.75}.b3-prose :is(p,ul,ol,blockquote,pre){margin-block:1rem}.b3-prose :is(h1,h2,h3,h4,h5,h6){margin-block:1.75rem .75rem;line-height:1.25}.b3-prose :is(h5,h6){font-size:1em}.b3-prose>:first-child{margin-block-start:0}.b3-prose :is(img,video,iframe){max-inline-size:100%;display:block}.b3-prose :is(img,video){block-size:auto}.b3-prose iframe{border:0}.b3-prose blockquote{border-inline-start:3px solid var(--b3-color-accent);color:var(--b3-color-muted);margin-inline:0;padding-inline-start:1rem}.b3-prose pre{background:var(--b3-color-surface);border:1px solid var(--b3-color-border);border-radius:var(--b3-radius-small);padding:1rem;overflow-x:auto}.b3-visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.b3-skip-link{z-index:1000;border-radius:var(--b3-radius-small);background:var(--b3-color-accent);max-inline-size:calc(100% - 1.5rem);color:var(--b3-color-on-accent);padding:.75rem 1rem;font-weight:650;position:fixed;inset-block-start:max(.75rem, env(safe-area-inset-top,0px));inset-inline-start:.75rem}.b3-skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;padding:0;overflow:hidden}.b3-hero{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(2rem,6vw,6rem);padding-block:clamp(3rem,8vw,7rem);display:grid}.b3-hero[data-b3-align=center]{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.b3-hero-copy{gap:1.5rem;max-inline-size:40rem;display:grid}.b3-feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,5vw,5rem);padding-block:clamp(2rem,6vw,5rem);display:grid}.b3-feature[data-b3-reverse=true]>:first-child{order:2}.b3-feature-icon{border-radius:var(--b3-radius);background:var(--b3-color-accent);block-size:3rem;inline-size:3rem;color:var(--b3-color-on-accent);place-items:center;display:inline-grid}.b3-pricing{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius-large);background:var(--b3-color-surface);color:var(--b3-color-text);flex-direction:column;gap:1.25rem;padding:clamp(1.25rem,3vw,2rem);display:flex}.b3-pricing[data-b3-featured=true]{border:2px solid var(--b3-color-accent);box-shadow:var(--b3-shadow)}.b3-pricing>.b3-button:last-child{margin-block-start:auto}.b3-price{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.375rem;display:flex}.b3-price>strong{letter-spacing:-.05em;font-size:3.25rem;line-height:1.1}.b3-checklist{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.b3-checklist>li{align-items:start;gap:.625rem;display:flex}.b3-checklist>li:before{content:"✓";color:var(--b3-color-accent);font-weight:700}.b3-quote{border-inline-start:3px solid var(--b3-color-accent);margin:0;padding:1.5rem}.b3-quote blockquote{margin:0 0 1rem;font-size:1.25rem;line-height:1.5}.b3-art{isolation:isolate;border-radius:var(--b3-radius-large);background:var(--b3-color-surface);position:relative;overflow:hidden}.b3-art:before{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.b3-art[data-b3-art=dots]:before{background-image:radial-gradient(var(--b3-color-border) 1px,transparent 1px);background-size:16px 16px}.b3-art[data-b3-art=glow]:before{background:radial-gradient(ellipse at 20% 20%,color-mix(in srgb,var(--b3-color-accent) 20%,transparent),transparent 65%)}.b3-art[data-b3-art=wash]:before{background:linear-gradient(135deg,color-mix(in srgb,var(--b3-color-accent) 14%,transparent),transparent 70%)}@media (width<=48rem){.b3-hero,.b3-feature{grid-template-columns:minmax(0,1fr)}.b3-feature[data-b3-reverse=true]>:first-child{order:initial}}.b3-reading{grid-template-columns:minmax(0,1fr) minmax(12rem,16rem);grid-template-areas:"content outline";align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.b3-reading>:not(.b3-toc){grid-area:content;min-inline-size:0}.b3-toc{max-block-size:calc(100svh - var(--b3-outline-top,1rem) - 1rem);border-inline-start:1px solid var(--b3-color-border);grid-area:outline;padding-inline-start:min(1rem,5%);font-size:.875rem;position:sticky;inset-block-start:var(--b3-outline-top,1rem);overflow-y:auto}.b3-toc ol{gap:.25rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.b3-toc ol ol{margin:.25rem 0;padding-inline-start:min(1rem,5%)}.b3-toc-link{border-radius:var(--b3-radius-small);color:var(--b3-color-muted);overflow-wrap:anywhere;padding:.625rem min(.75rem,5%);text-decoration:none;display:block}.b3-toc-link:hover{color:var(--b3-color-text);background:var(--b3-color-surface)}.b3-toc-link[aria-current=location]{color:var(--b3-color-accent);background:color-mix(in srgb, var(--b3-color-accent) 10%, var(--b3-color-surface));font-weight:650}@media (width<=48rem){.b3-reading{grid-template-columns:minmax(0,1fr);grid-template-areas:"outline""content";gap:2rem}.b3-toc{max-block-size:none;position:static}}.b3-command{inline-size:min(38rem,100% - 2rem);padding:0}.b3-command[open]:has(>.b3-scroll){grid-template-rows:auto minmax(0,1fr);display:grid}.b3-command>.b3-scroll>.b3-command-list{max-block-size:none;overflow:visible}.b3-command-search{border-block-end:1px solid var(--b3-color-border);flex-wrap:wrap;justify-content:end;align-items:center;gap:.75rem;padding:min(1rem,4vw);display:flex}.b3-command-search>input{flex:12ch;min-inline-size:0}.b3-command-list{overscroll-behavior:contain;max-block-size:50svh;padding:.5rem;overflow-y:auto}.b3-command-group+.b3-command-group{border-block-start:1px solid var(--b3-color-border);margin-block-start:.5rem;padding-block-start:.5rem}.b3-command-group>:first-child:not([role=option]){color:var(--b3-color-muted);padding:.5rem .75rem;font-size:.75rem;display:block}.b3-command-item{border-radius:var(--b3-radius-small);cursor:pointer;justify-content:space-between;align-items:center;gap:min(1rem,2vw);min-block-size:2.75rem;padding:min(.875rem,2svh) min(.75rem,3vw);display:flex}.b3-command .b3-command-item{border-radius:max(0px, calc(var(--b3-radius-large) - .5rem - 1px))}.b3-command-item>:first-child{overflow-wrap:anywhere;min-inline-size:0}.b3-command-item[aria-selected=true]{background:var(--b3-color-accent);color:var(--b3-color-on-accent)}.b3-command-item[aria-selected=true] .b3-muted{color:inherit}.b3-command-item[aria-disabled=true]{opacity:.5;cursor:not-allowed}.b3-command-item:not([aria-disabled=true]):hover{outline:1px solid var(--b3-color-border);outline-offset:-1px}.b3-form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));align-items:start;gap:1.25rem;display:grid}.b3-form-grid[data-b3-layout=inline]{flex-wrap:wrap;align-items:end;display:flex}.b3-form-grid[data-b3-layout=inline]>.b3-field{flex:12rem;min-inline-size:0}.b3-form-grid[data-b3-layout=inline]>.b3-button{overflow-wrap:anywhere;flex:0 auto;max-inline-size:100%}.b3-fieldset{border:0;min-inline-size:0;margin:0;padding:0}.b3-fieldset>legend{padding:0 0 .75rem;font-weight:650}.b3-help,.b3-error{overflow-wrap:anywhere}.b3-help{color:var(--b3-color-muted);font-size:.875rem}.b3-help[data-b3-tone=success]{color:var(--b3-color-success)}.b3-help[data-b3-tone=warning]{color:var(--b3-color-warning)}.b3-input:where(:not([type=checkbox],[type=radio]))[data-b3-size=small]{padding:.5rem .75rem}.b3-input:where(:not([type=checkbox],[type=radio]))[data-b3-size=large]{min-block-size:3.25rem;padding:.875rem 1rem}.b3-input[data-b3-emphasis=subtle]{background-color:var(--b3-color-canvas);border-color:#0000}.b3-input[data-b3-emphasis=outline]{background-color:#0000;border-width:2px}.b3-input[data-b3-tone=success]{border-color:var(--b3-color-success)}.b3-input[data-b3-tone=warning]{border-color:var(--b3-color-warning)}.b3-input[aria-invalid=true]{border-color:var(--b3-color-danger)}textarea.b3-input{resize:vertical}select.b3-input[multiple]{min-block-size:8rem}.b3-input[type=file]{padding:.375rem}.b3-input::file-selector-button{font:inherit;border-radius:max(0px, calc(var(--b3-radius) - .375rem - 1px));background:var(--b3-color-accent);color:var(--b3-color-on-accent);cursor:pointer;border:0;margin-inline-end:.75rem;padding:.5rem .75rem}.b3-input[data-b3-emphasis=outline]::file-selector-button{border-radius:max(0px, calc(var(--b3-radius) - .375rem - 2px))}.b3-input[type=color]{inline-size:5rem;padding:.25rem}.b3-range{min-block-size:2.75rem;inline-size:100%;accent-color:var(--b3-color-accent);margin:0}.b3-choice-card{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);color:var(--b3-color-text);cursor:pointer;flex-wrap:wrap;align-items:start;gap:.75rem;padding:1rem;display:flex}.b3-choice-card>:not(input){overflow-wrap:anywhere;flex:12ch;min-inline-size:0}.b3-choice-card>input{flex:none;block-size:1.125rem;inline-size:1.125rem;margin-block-start:.3rem}.b3-choice-card:has(input:checked){border-color:var(--b3-color-accent);background:color-mix(in srgb, var(--b3-color-accent) 7%, var(--b3-color-surface));box-shadow:inset 0 0 0 1px var(--b3-color-accent)}.b3-choice-card:has(input:focus-visible){outline:none;box-shadow:inset 0 0 0 2px}.b3-choice-card:has(input:disabled){opacity:.5;cursor:not-allowed}.b3-choice-card:has(input[aria-invalid=true]){border-color:var(--b3-color-danger)}.b3-range[aria-invalid=true]{accent-color:var(--b3-color-danger)}.b3-stepper{flex-wrap:wrap;gap:1rem 2rem;margin:0;padding:0;list-style:none;display:flex}.b3-step{color:var(--b3-color-muted);align-items:center;gap:.625rem;font-size:.875rem;display:flex}.b3-step-marker{border:1px solid var(--b3-color-border);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;block-size:2rem;inline-size:2rem;display:grid}.b3-step[aria-current=step]{color:var(--b3-color-text);font-weight:650}.b3-step[aria-current=step] .b3-step-marker{background:var(--b3-color-accent);color:var(--b3-color-on-accent);border-color:var(--b3-color-accent)}.b3-step[data-b3-complete=true] .b3-step-marker{border-color:var(--b3-color-success);color:var(--b3-color-success)}.b3-conversation{gap:1.5rem;min-inline-size:0;margin:0;padding:0;list-style:none;display:grid}.b3-message{grid-template-columns:minmax(0,1fr);justify-self:start;gap:.375rem;min-inline-size:0;max-inline-size:min(85%,38rem);display:grid}.b3-message[data-b3-side=self]{justify-self:end}.b3-message-body{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);color:var(--b3-color-text);white-space:pre-wrap;overflow-wrap:anywhere;padding:.75rem 1rem}.b3-message[data-b3-side=self]>.b3-message-body{background:var(--b3-color-accent);color:var(--b3-color-on-accent);border-color:#0000}.b3-message-meta{color:var(--b3-color-muted);flex-wrap:wrap;gap:.35rem .75rem;font-size:.8125rem;display:flex}.b3-message[data-b3-side=self]>.b3-message-meta{justify-content:end}.b3-conversation{align-content:start}.b3-message-body:has(>:is(div,p,ul,ol,table,pre,blockquote,b3-markdown-stream)){white-space:normal}.b3-composer{align-items:end;gap:var(--b3-space-2);padding:var(--b3-space-3);border-block-start:1px solid var(--b3-color-border);background:var(--b3-color-canvas);flex-wrap:wrap;display:flex}.b3-composer>.b3-input,.b3-composer>.b3-button{border-radius:var(--b3-radius);min-block-size:var(--b3-d-control,2.75rem)}.b3-composer>.b3-input{resize:none;min-inline-size:0;max-inline-size:100%;padding-block:calc((var(--b3-d-control,2.75rem) - 1.5em - 2px) / 2);flex:12ch;line-height:1.5}.b3-composer>.b3-button{block-size:var(--b3-d-control,2.75rem);min-inline-size:var(--b3-d-control,2.75rem);flex-shrink:0;margin-inline-start:auto}.b3-message-body :where(p,ul,ol,pre,table,blockquote,h1,h2,h3,h4,h5,h6,div,figure):first-child{margin-block-start:0}.b3-message-body :where(p,ul,ol,pre,table,blockquote,h1,h2,h3,h4,h5,h6,div,figure):last-child{margin-block-end:0}.b3-conversation[data-b3-layout=assistant]{gap:.75em}.b3-conversation[data-b3-layout=assistant]>.b3-message{gap:.45em}.b3-conversation[data-b3-layout=assistant]>.b3-message:not([data-b3-side=self]){justify-self:stretch;max-inline-size:none}.b3-conversation[data-b3-layout=assistant]>.b3-message[data-b3-side=self]{max-inline-size:88%}.b3-conversation[data-b3-layout=assistant]>.b3-message:not([data-b3-side=self])>.b3-message-body{background:0 0;border:0;padding:0}.b3-conversation[data-b3-layout=assistant]>.b3-message[data-b3-side=self]>.b3-message-body,.b3-root[data-b3-theme=dark] .b3-conversation[data-b3-layout=assistant]>.b3-message[data-b3-side=self]>.b3-message-body{background:var(--b3-message-self-bg,color-mix(in srgb, var(--b3-color-accent) 12%, var(--b3-color-surface)));color:var(--b3-message-self-text,var(--b3-color-text));unicode-bidi:plaintext;border:0;border-radius:1.075em 1.075em .3em;padding:.625em .9375em}.b3-message-body:has(>:is(div,p,ul,ol,table,pre,blockquote,h1,h2,h3,h4,h5,h6)){overflow-wrap:anywhere;line-height:1.5}.b3-message-body :where(p,ul,ol,pre,blockquote,table,.b3-table-wrap,.b3-alert){margin-block:0 .6em}.b3-message-body :where(h1,h2,h3,h4,h5,h6){margin-block:.9em .3em;font-size:1.1em;line-height:1.3}.b3-message-body :where(h1){font-size:1.2em}.b3-message-body :where(ul,ol){padding-inline-start:1.5em}.b3-message-body :where(a){color:var(--b3-color-accent);text-underline-offset:2px;text-decoration:underline}.b3-message-body :where(:not(pre)>code){background:color-mix(in srgb, var(--b3-color-text) 8%, transparent);border-radius:.3em;padding:.05em .3em;font-size:.92em}.b3-message-body :where(code,pre){font-family:var(--b3-font-mono,ui-monospace, monospace);text-align:start;direction:ltr;unicode-bidi:isolate}.b3-message-body :where(pre){background:color-mix(in srgb, var(--b3-color-text) 6%, transparent);border-radius:.6em;padding:.75em .9em;font-size:.92em;overflow-x:auto}.b3-message-body :where(blockquote){border-inline-start:3px solid var(--b3-color-border);color:var(--b3-color-muted);margin-inline:0;padding-inline-start:.75em}.b3-message-disclosure{font-size:.92em}.b3-message-disclosure>summary{max-inline-size:100%;color:var(--b3-color-muted);border-radius:.5em;align-items:center;gap:.5em;padding:.25em .5em;list-style:none;display:inline-flex;overflow:hidden}.b3-message-disclosure>summary::-webkit-details-marker{display:none}.b3-message-disclosure>summary:before{content:"›";transition:transform var(--b3-duration,.15s)}.b3-message-disclosure[open]>summary:before{transform:rotate(90deg)}@media (hover:hover){.b3-message-disclosure>summary:hover{background:color-mix(in srgb, var(--b3-color-text) 6%, transparent)}}.b3-message-disclosure>:not(summary){max-block-size:18em;color:var(--b3-color-muted);white-space:pre-wrap;padding:.35em .65em .35em 1.5em;font-style:italic;overflow-y:auto}.b3-composer[data-b3-layout=stacked]{border:1px solid var(--b3-color-border);background:var(--b3-color-surface);border-radius:.9375em;flex-flow:column;align-items:stretch;gap:.45em;padding:.625em}.b3-composer[data-b3-layout=stacked]:focus-within{border-color:var(--b3-color-accent)}.b3-composer[data-b3-layout=stacked]>textarea{max-block-size:15.4em;inline-size:100%;color:inherit;font:inherit;resize:none;background:0 0;border:0;padding:.15em;line-height:1.45;display:block}.b3-composer[data-b3-layout=stacked]>textarea:is(:focus,:focus-visible){box-shadow:none;outline:none}.b3-composer-bar{align-items:center;gap:.45em;min-inline-size:0;display:flex}.b3-composer-bar>.b3-button:last-child:not([data-b3-icon]){border-radius:.86em;flex:none;block-size:auto;min-block-size:2.46em;margin-inline-start:auto;padding:0 1.23em;font-size:.875em}.b3-mobile-app{--b3-touch:44px;min-block-size:100svh;max-inline-size:var(--b3-app-width,70rem);margin-inline:auto;padding-block-end:calc(5.5rem + env(safe-area-inset-bottom,0px))}.b3-mobile-app[data-b3-platform=android]{--b3-touch:48px}.b3-mobile-app :where(button,.b3-button,select,input:not([type=checkbox],[type=radio])){min-block-size:var(--b3-touch)}.b3-app-bar{padding:max(.75rem, env(safe-area-inset-top,0px)) 1.25rem .75rem;align-items:center;gap:.75rem;display:flex}.b3-app-bar>:last-child:not(:first-child){margin-inline-start:auto}.b3-bottom-nav{z-index:10;max-inline-size:var(--b3-app-width,70rem);padding:.5rem clamp(.5rem, 2vw, 1rem) max(.5rem, env(safe-area-inset-bottom,0px));background:var(--b3-color-surface);color:var(--b3-color-text);border-block-start:1px solid var(--b3-color-border);flex-wrap:wrap;justify-content:space-around;gap:.125rem;margin-inline:auto;display:flex;position:fixed;inset-block-end:0;inset-inline:0}.b3-bottom-link{appearance:none;cursor:pointer;overflow-wrap:anywhere;text-align:center;flex:1 1 max-content;min-block-size:var(--b3-touch,44px);min-inline-size:var(--b3-touch,44px);max-inline-size:100%;color:var(--b3-color-muted);background:0 0;border:0;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.25rem clamp(.125rem,1vw,.5rem);font-size:.75rem;text-decoration:none;display:flex}.b3-bottom-link:disabled{opacity:.5;cursor:not-allowed}.b3-bottom-link:has(svg){justify-content:flex-start}.b3-bottom-link[aria-current=page]{color:var(--b3-color-accent);font-weight:700}[data-b3-platform=android] .b3-bottom-link[aria-current=page]{background:var(--b3-color-canvas)}.b3-mobile-list{border:1px solid var(--b3-color-border);background:var(--b3-color-surface);border-radius:1rem;margin:0;padding:0;list-style:none;overflow:hidden}.b3-mobile-list>li+li{border-block-start:1px solid var(--b3-color-border)}.b3-mobile-row{min-block-size:var(--b3-touch,44px);color:var(--b3-color-text);align-items:center;gap:1rem;padding:.875rem 1rem;text-decoration:none;display:flex}.b3-mobile-row>:last-child:not(:first-child){margin-inline-start:auto}.b3-sheet{inline-size:min(100%, var(--b3-overlay-width,32rem));max-inline-size:none;max-block-size:min(85dvh, calc(100dvh - env(safe-area-inset-top,0px) - 1rem));overscroll-behavior:contain;border:1px solid var(--b3-color-border);padding:1.5rem min(1.5rem, 5vi) max(1.5rem, env(safe-area-inset-bottom,0px));background:var(--b3-color-surface);color:var(--b3-color-text);border-radius:1.5rem 1.5rem 0 0;margin:0 auto;inset:auto 0 0;overflow-y:auto}.b3-sheet::backdrop{background:#0007}.b3-sheet [data-b3-initial-focus]:focus{box-shadow:none;outline:none}.b3-sheet-handle{min-block-size:44px;inline-size:5rem;color:var(--b3-color-muted);touch-action:none;cursor:grab;background:0 0;border:0;border-radius:1rem;flex:none;align-self:center;place-items:center;margin-block:-1rem -.5rem;padding:0;display:grid}.b3-sheet-handle:before{content:"";background:currentColor;border-radius:1rem;block-size:.25rem;inline-size:2.25rem}.b3-sheet[data-b3-dragging]{animation:none}.b3-sheet[data-b3-dragging] .b3-sheet-handle{cursor:grabbing}[data-b3-platform=android] .b3-mobile-list{border-radius:1.5rem}@media (prefers-reduced-motion:no-preference){.b3-sheet[open]{animation:.32s cubic-bezier(.16,1,.3,1) b3-sheet-enter}@keyframes b3-sheet-enter{0%{opacity:0;transform:translateY(3rem)}to{opacity:1;transform:translateY(0)}}}.b3-root:has(dialog:modal){overflow:hidden}.b3-bottom-link[aria-current=page]{background:color-mix(in srgb, var(--b3-color-accent) 12%, transparent)}.b3-bottom-link :where(svg:not([width])){flex:none;block-size:1.375rem;inline-size:1.375rem}.b3-bottom-link>:where(span,strong):not(.b3-count){white-space:normal;overflow-wrap:anywhere;max-inline-size:100%;overflow:visible}:has(>.b3-bottom-link:nth-of-type(5))>.b3-bottom-link{padding-inline:.125rem;font-size:.6875rem}.b3-app-frame{inline-size:100%;block-size:var(--b3-frame-height,100dvh);min-block-size:0;max-inline-size:var(--b3-app-width,70rem);padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);grid-template-rows:auto minmax(0,1fr) auto;margin-inline:auto;display:grid;overflow:clip}.b3-app-frame>header{grid-row:1;min-inline-size:0}.b3-app-frame>main{overscroll-behavior:contain;grid-area:2/1;min-block-size:0;min-inline-size:0;overflow:hidden auto}.b3-app-frame>:is(nav,footer){grid-row:3;min-inline-size:0;position:relative}.b3-app-frame>.b3-toast-region{overscroll-behavior:contain;grid-area:2/1;place-self:end;min-block-size:0;max-block-size:calc(100% - 2rem);margin:1rem;position:relative;inset:auto;overflow-y:auto}.b3-app-frame>.b3-app-bar{padding-block-start:.75rem}.b3-app-frame:has(>.b3-bottom-nav,>footer .b3-bottom-nav){padding-block-end:0}.b3-app-frame .b3-bottom-nav{inline-size:100%;max-inline-size:none;padding-block-end:max(.5rem, env(safe-area-inset-bottom,0px));position:static}:where(.b3-root[data-b3-density]) .b3-button{min-block-size:var(--b3-d-control,2.75rem);padding:var(--b3-d-pad-block,.625rem) var(--b3-d-pad-inline,1rem);font-size:var(--b3-d-label,inherit)}:where(.b3-root[data-b3-density]) .b3-button[data-b3-size=small]{min-block-size:var(--b3-d-control-small,auto);padding:calc(var(--b3-d-pad-block,.5rem) - .125rem) calc(var(--b3-d-pad-inline,.75rem) - .25rem)}:where(.b3-root[data-b3-density]) .b3-input:where(:not([type=checkbox],[type=radio])){min-block-size:var(--b3-d-control,2.75rem);padding:calc((var(--b3-d-control,2.75rem) - 1.5em - 2px) / 2) .75rem;line-height:1.5}:where(.b3-root[data-b3-density]) .b3-nav-link{min-block-size:var(--b3-d-control,2.75rem);padding:var(--b3-d-pad-block,.625rem) min(var(--b3-d-pad-inline,.875rem), 4%);font-size:var(--b3-d-label,inherit)}:where(.b3-root[data-b3-density]) .b3-heading{font-size:var(--b3-d-heading,1.375rem)}:where(.b3-root[data-b3-density]) .b3-avatar{block-size:var(--b3-d-avatar,2.5rem);inline-size:var(--b3-d-avatar,2.5rem)}:where(.b3-root[data-b3-density]) .b3-conversation{gap:var(--b3-d-gap,1.5rem)}:where(.b3-root[data-b3-density]) .b3-message-body{padding:var(--b3-d-message-pad,.75rem 1rem)}:where(.b3-root[data-b3-density]) .b3-message-meta{font-size:var(--b3-d-meta,.8125rem)}.b3-button[data-b3-emphasis=ghost]{color:var(--b3-color-muted);background:0 0;border-color:#0000}.b3-button[data-b3-emphasis=ghost]:not(:disabled):hover{color:var(--b3-color-text);background:color-mix(in srgb, var(--b3-color-text) 10%, transparent);box-shadow:none}.b3-button[data-b3-emphasis=ghost][aria-pressed=true]{color:var(--b3-color-accent)}.b3-button[data-b3-icon]{min-inline-size:var(--b3-d-control,2.75rem);padding-inline:0}.b3-button[data-b3-icon] :where(svg:not([width])){block-size:1.375em;inline-size:1.375em}.b3-button[data-b3-icon][data-b3-size=small]{min-inline-size:var(--b3-d-control-small,2.75rem);min-block-size:var(--b3-d-control-small,2.75rem);block-size:var(--b3-d-control-small,2.75rem);padding:0}.b3-button:disabled{opacity:1;background:color-mix(in srgb, var(--b3-color-muted) 14%, var(--b3-color-surface));color:var(--b3-color-muted);border-color:#0000}.b3-button[data-b3-emphasis=ghost]:disabled{background:0 0}.b3-truncate{white-space:nowrap;text-overflow:ellipsis;min-inline-size:0;overflow:hidden}.b3-strong{font-size:inherit;font-weight:650}.b3-caption{color:var(--b3-color-muted);font-size:.8125rem;line-height:1.4}.b3-heading[data-b3-size=small]{font-size:1.0625rem;line-height:1.3}:is(a,button).b3-caption{color:var(--b3-color-accent);cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;padding:0}:is(a,button).b3-caption:is(:hover,:focus-visible){text-decoration:underline}:where(.b3-root[data-b3-density]) .b3-caption{font-size:var(--b3-d-meta,.8125rem)}.b3-badge{gap:.25rem}:where(.b3-root[data-b3-density]) .b3-surface{padding:var(--b3-d-surface-pad,clamp(1rem, 3vw, 2rem))}.b3-input-group,.b3-input-group>.b3-input-affix,.b3-input-group>.b3-input{background:var(--b3-color-surface)}.b3-root[data-b3-theme=dark] .b3-message[data-b3-side=self]>.b3-message-body{background:color-mix(in srgb, var(--b3-color-accent) 22%, var(--b3-color-surface));color:var(--b3-color-text)}.b3-empty{justify-items:center;gap:var(--b3-space-2);padding:var(--b3-space-12) var(--b3-space-4);text-align:center;color:var(--b3-color-muted);display:grid}.b3-empty>svg{color:var(--b3-color-muted)}}@property --b3-reel-fade{syntax:"<length>";inherits:false;initial-value:2.5rem}
1
+ @layer bare.reset{:where(.b3-root),:where(.b3-root *){box-sizing:border-box}:where(.b3-root){font-family:var(--b3-font-body);background:var(--b3-color-canvas);color:var(--b3-color-text);color-scheme:light;margin:0;font-size:1rem;line-height:1.5}:where(.b3-root>body){margin:0}:where(b3-tabs,b3-dropdown,b3-dialog,b3-sheet,b3-command,b3-composer){display:contents}:where(b3-reel,b3-toast-region,b3-toc,b3-board,b3-date-picker,b3-image-viewer){display:block}:where(.b3-root) :where(button,input,select,textarea){font:inherit}:where(.b3-root) :where(button:not(:disabled)){color:inherit}:where(.b3-root) :where(button:not(:disabled),a[href],select,summary,[role=button],[role=option],[role=tab],[role=menuitem],[role=link]){cursor:pointer}:where(.b3-root) :where(h1,h2,h3,h4,h5,h6,p){margin:0}:where(.b3-root) :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:inset 0 0 0 2px}:where(.b3-root) :where([tabindex="-1"]:not(:is(button,a,input,select,textarea,summary,[role=button],[role=link]))):focus-visible{box-shadow:none}@media (forced-colors:active){:where(.b3-root) :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline-offset:-2px;outline:1px solid highlight}}:where(.b3-root) :where(img,svg:not([width])){max-inline-size:100%}:where(.b3-root) :where(svg:not([width])){block-size:1em;inline-size:1em}@media (prefers-reduced-motion:reduce){:where(.b3-root *),:where(.b3-root *):before,:where(.b3-root *):after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-b3-motion=reduce] *,[data-b3-motion=reduce] :before,[data-b3-motion=reduce] :after,[data-b3-motion=reduce] ::backdrop{scroll-behavior:auto!important;transition:none!important;animation:none!important}:where(.b3-root [hidden]):not([hidden=until-found]){display:none!important}:where(.b3-root) :where(input[type=checkbox],input[type=radio],input[type=range]){accent-color:var(--b3-color-accent)}:where(.b3-root) :where(input[type=checkbox],input[type=radio]){flex-shrink:0}}@layer bare.tokens{.b3-root:where(:not(.b3-root .b3-root)),.b3-root[data-b3-theme=light]{--b3-color-canvas:#f6f5f0;--b3-color-surface:#fff;--b3-color-text:#202923;--b3-color-muted:#59655d;--b3-color-border:#d5dbd3;--b3-color-border-strong:#838d86;--b3-color-accent:#245c42;--b3-color-on-accent:#fff;--b3-color-danger:#a62c35;--b3-color-focus:#276bdd;--b3-font-body:ui-sans-serif, system-ui, sans-serif;--b3-font-display:var(--b3-font-body);--b3-radius:.75rem;--b3-space:1rem;--b3-content:68rem}.b3-root[data-b3-theme=dark]{color-scheme:dark;--b3-color-canvas:#141c19;--b3-color-surface:#202c26;--b3-color-text:#edf3ec;--b3-color-muted:#a8b9ad;--b3-color-border:#415348;--b3-color-border-strong:#74877b;--b3-color-accent:#aadbb8;--b3-color-on-accent:#132b1b;--b3-color-danger:#ffadb1;--b3-color-focus:#9ac4ff}.b3-root:where(:not(.b3-root .b3-root)),.b3-root[data-b3-theme=light]{--b3-space-1:.25rem;--b3-space-2:.5rem;--b3-space-3:.75rem;--b3-space-4:1rem;--b3-space-6:1.5rem;--b3-space-8:2rem;--b3-space-12:3rem;--b3-radius-small:.375rem;--b3-radius-large:1.25rem;--b3-shadow:0 8px 32px #14231b14;--b3-shadow-raised:0 16px 56px #14231b24;--b3-color-success:#256443;--b3-color-warning:#805100;--b3-color-info:#275f99;--b3-duration:.16s}.b3-root[data-b3-theme=dark]{--b3-shadow:0 8px 32px #0004;--b3-shadow-raised:0 16px 56px #0007;--b3-color-success:#99d9ab;--b3-color-warning:#f2c76c;--b3-color-info:#a2cfff}.b3-root[data-b3-density=compact]{--b3-d-control:2.25rem;--b3-d-control-small:1.875rem;--b3-d-pad-block:.4375rem;--b3-d-pad-inline:.875rem;--b3-d-label:.875rem;--b3-d-heading:1.0625rem;--b3-d-avatar:2.25rem;--b3-d-message-pad:.625rem .875rem;--b3-d-meta:.75rem;--b3-d-gap:1rem;--b3-d-surface-pad:1rem}@media (pointer:fine) and (width>=48rem){.b3-root[data-b3-density=auto]{--b3-d-control:2.25rem;--b3-d-control-small:1.875rem;--b3-d-pad-block:.4375rem;--b3-d-pad-inline:.875rem;--b3-d-label:.875rem;--b3-d-heading:1.0625rem;--b3-d-avatar:2.25rem;--b3-d-message-pad:.625rem .875rem;--b3-d-meta:.75rem;--b3-d-gap:1rem;--b3-d-surface-pad:1rem}}}@layer bare.layout{.b3-shell{inline-size:min(100%, var(--b3-content));margin-inline:auto;padding:clamp(1rem,4vw,3rem)}.b3-stack{gap:var(--b3-space);flex-direction:column;min-inline-size:0;display:flex}.b3-stack:where(dialog:not([open])){display:none}.b3-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;min-block-size:0;min-inline-size:0;overflow:auto}dialog.b3-stack>.b3-scroll{min-block-size:min(6rem,30dvh)}.b3-stack:has(>.b3-scroll)>:not(.b3-scroll){flex-shrink:0}.b3-cluster{align-items:center;gap:var(--b3-space);flex-wrap:wrap;min-inline-size:0;display:flex}.b3-cluster>*,.b3-split>*{min-inline-size:0}.b3-inline{vertical-align:middle;align-items:center;gap:.5em;min-inline-size:0;max-inline-size:100%;display:inline-flex}.b3-inline>*{min-inline-size:0}.b3-inline:has(>.b3-badge){flex-wrap:wrap}.b3-inline>.b3-badge{flex-shrink:0}.b3-inline:has(>.b3-badge)>:not(.b3-badge,.b3-icon,svg){flex:1 1 min-content}.b3-grid{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--b3-grid-min,17rem)), 1fr));gap:var(--b3-space);display:grid}.b3-split{justify-content:space-between;align-items:center;gap:var(--b3-space);flex-wrap:wrap;display:flex}.b3-page{flex-direction:column;min-block-size:100svh;display:flex}.b3-page-body{flex:1;min-inline-size:0}.b3-app-layout{flex-wrap:wrap;min-block-size:100svh;display:flex;container:b3-app/inline-size}.b3-app-layout>.b3-sidebar{flex:16rem}.b3-app-layout>:not(.b3-sidebar){flex:999 32rem;min-inline-size:0}.b3-sidebar{padding:var(--b3-space-6);border-inline-end:1px solid var(--b3-color-border);background:var(--b3-color-surface);min-inline-size:0}.b3-center{padding:var(--b3-space-6);place-items:center;display:grid}.b3-cover{min-block-size:min(42rem,85svh);padding-block:var(--b3-space-12);flex-direction:column;justify-content:center;display:flex}.b3-reel{gap:var(--b3-space);scroll-snap-type:x proximity;padding-block-end:var(--b3-space-2);display:flex;overflow-x:auto}.b3-reel>*{scroll-snap-align:start;flex:0 0 min(85%,20rem)}@container b3-app (width<48rem){.b3-app-layout>.b3-sidebar{border-inline-end:0;border-block-end:1px solid var(--b3-color-border)}}.b3-reel:has(>.b3-badge){scrollbar-width:none;align-items:center;gap:.5rem;padding-block:.625rem}.b3-reel:has(>.b3-badge)::-webkit-scrollbar{display:none}.b3-reel>.b3-badge{flex:none}.b3-stack>.b3-reel{flex-shrink:0}@supports (animation-timeline:scroll(self inline)){.b3-reel:has(>.b3-badge){mask-image:linear-gradient(to right, #000 calc(100% - var(--b3-reel-fade)), #0000);animation-name:b3-reel-fade;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(self inline)}.b3-reel:has(>.b3-badge):dir(rtl){mask-image:linear-gradient(to left, #000 calc(100% - var(--b3-reel-fade)), #0000)}@keyframes b3-reel-fade{90%{--b3-reel-fade:2.5rem}to{--b3-reel-fade:0rem}}}}@layer bare.components{.b3-title{font-family:var(--b3-font-display);letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(1.75rem,7vw,4rem);line-height:1.05}.b3-heading{font-family:var(--b3-font-display);letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.375rem;font-weight:650;line-height:1.25}.b3-muted{color:var(--b3-color-muted)}.b3-label{letter-spacing:.06em;text-transform:uppercase;font-size:.8125rem;font-weight:650}.b3-surface{background:var(--b3-color-surface);color:var(--b3-color-text);border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);padding:clamp(1rem,3vw,2rem)}.b3-button{border-radius:var(--b3-radius);background:var(--b3-color-accent);min-block-size:2.75rem;color:var(--b3-color-on-accent);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1rem;font-weight:650;text-decoration:none;display:inline-flex}.b3-button :where(svg){flex-shrink:0;display:block}.b3-button>:where([aria-hidden=true]):has(>svg){flex-shrink:0}.b3-button[data-b3-emphasis=quiet]{color:var(--b3-color-text);border-color:var(--b3-color-border);background:0 0}.b3-button:disabled{opacity:.5;cursor:not-allowed}.b3-field{align-content:start;gap:.375rem;min-inline-size:0;display:grid}.b3-input:where(:not([type=checkbox],[type=radio])){border:1px solid var(--b3-color-border-strong);border-radius:var(--b3-radius);background:var(--b3-color-surface);min-block-size:2.75rem;inline-size:100%;min-inline-size:0;color:var(--b3-color-text);padding:.625rem .75rem}.b3-error{color:var(--b3-color-danger);font-size:.875rem}select.b3-input:not([multiple]):not([size]),select.b3-input[size="1"]:not([multiple]){appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:right calc(1rem + 5px) center,right 1rem center;background-repeat:no-repeat;background-size:5px 5px;padding-inline-end:2.5rem}select.b3-input:not([multiple]):not([size]):dir(rtl),select.b3-input[size="1"]:not([multiple]):dir(rtl){background-position:1rem,calc(1rem + 5px)}@media (forced-colors:active){select.b3-input:not([multiple]):not([size]),select.b3-input[size="1"]:not([multiple]){appearance:auto;background-image:none}}:where(ul,ol):has(>.b3-row){margin:0;padding-inline-start:0}.b3-row{border-block-end:1px solid var(--b3-color-border);align-items:center;gap:.75rem;padding-block:1rem;display:flex}.b3-row:where(.b3-stack){align-items:stretch;gap:var(--b3-space)}:is(a,button,[role=button]).b3-row{padding-inline:var(--b3-space-4);color:inherit;text-align:start;cursor:pointer;transition:background-color var(--b3-duration);text-decoration:none}button.b3-row{appearance:none;border:0;border-block-end:1px solid var(--b3-color-border);background:0 0;inline-size:100%}@media (hover:hover){:is(a,button,[role=button]).b3-row:hover{background:color-mix(in srgb, var(--b3-color-text) 4%, transparent)}}:is(a,button,[role=button]).b3-row:focus-visible{background:color-mix(in srgb, var(--b3-color-text) 4%, transparent)}:is(a,button,[role=button]).b3-row:active{background:color-mix(in srgb, var(--b3-color-text) 8%, transparent)}.b3-clamp{-webkit-line-clamp:var(--b3-clamp,2);line-clamp:var(--b3-clamp,2);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.b3-count{box-sizing:border-box;background:var(--b3-color-danger);block-size:1.25rem;min-inline-size:1.25rem;color:var(--b3-color-canvas);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:100vmax;flex:none;place-items:center;padding-inline:.3125rem;font-size:.6875rem;font-weight:700;line-height:1;display:inline-grid}.b3-count[data-b3-tone=accent]{background:var(--b3-color-accent);color:var(--b3-color-on-accent)}.b3-nav-link>.b3-count{margin-inline-start:auto}.b3-bottom-link{position:relative}.b3-bottom-link:has(>.b3-count){min-inline-size:max(var(--b3-touch,44px), 2.25rem)}.b3-bottom-link>.b3-count{box-shadow:0 0 0 2px var(--b3-color-surface);position:absolute;inset-block-start:.125rem;inset-inline-end:max(.125rem,50% - 2rem)}:is(a,button,[role=button]).b3-row:is([aria-current]:not([aria-current=false]),[aria-selected=true]){background:color-mix(in srgb, var(--b3-color-accent) 12%, transparent)}@media (forced-colors:active){:is(a,button,[role=button]).b3-row{border-inline-start:3px solid canvas}:is(a,button,[role=button]).b3-row:is([aria-current]:not([aria-current=false]),[aria-selected=true]){border-inline-start-color:highlight}}.b3-badge{overflow-wrap:anywhere;border:1px solid var(--b3-color-border);border-radius:100vmax;align-items:center;inline-size:fit-content;max-inline-size:100%;padding:.125rem .5rem;font-size:.75rem;font-weight:650;display:inline-flex}.b3-progress{block-size:.5rem;inline-size:100%;accent-color:var(--b3-color-accent)}.b3-button{transition:box-shadow var(--b3-duration), border-color var(--b3-duration)}@media (hover:hover){.b3-button:not(:disabled):hover{box-shadow:inset 0 0 0 100vmax #00000012}}.b3-button:not(:disabled):active{box-shadow:inset 0 0 0 100vmax #00000024}.b3-button[data-b3-emphasis=ghost]:not(:disabled):active{color:var(--b3-color-text)}.b3-button[data-b3-emphasis=outline]{color:var(--b3-color-accent);background:0 0;border-color:currentColor}.b3-button[data-b3-emphasis=danger]{background:var(--b3-color-danger);color:var(--b3-color-canvas)}.b3-button[data-b3-size=small]{padding:.5rem .75rem;font-size:.875rem}.b3-button[data-b3-size=large]{min-block-size:3.25rem;padding:.875rem 1.5rem}.b3-button[aria-busy=true]{cursor:progress}.b3-icon{vertical-align:-.2em;flex:none;block-size:1.25em;inline-size:1.25em;display:inline-block}[data-b3-confirm][data-b3-armed]{outline:2px solid var(--b3-color-danger)!important;outline-offset:2px!important}.b3-button[data-b3-armed]{background:var(--b3-color-danger);color:var(--b3-color-canvas);border-color:var(--b3-color-danger)}.b3-input:disabled{opacity:.6;cursor:not-allowed}.b3-input[readonly]{background:var(--b3-color-canvas)}.b3-input::placeholder{color:var(--b3-color-muted);opacity:.8}.b3-input-group{border:1px solid var(--b3-color-border-strong);border-radius:var(--b3-radius);background:var(--b3-color-canvas);flex-wrap:wrap;align-items:stretch;min-inline-size:0;display:flex;overflow:clip}.b3-input-group>.b3-input{border:0;border-radius:0;flex:12ch}.b3-input-group>.b3-button{overflow-wrap:anywhere;flex-wrap:wrap;min-inline-size:0;max-inline-size:100%;margin-inline-start:auto;padding-inline:.75rem}.b3-input-group:focus-within{outline:none;box-shadow:inset 0 0 0 2px}.b3-input-affix{overflow-wrap:anywhere;min-inline-size:0;max-inline-size:100%;color:var(--b3-color-muted);background:var(--b3-color-canvas);align-items:center;padding-inline:.75rem;display:flex}.b3-choice{cursor:pointer;flex-wrap:wrap;align-items:start;gap:.75rem;padding-block:.5rem;display:flex}.b3-choice>:not(input){overflow-wrap:anywhere;flex:12ch;min-inline-size:0}.b3-choice input{--b3-choice-control:1.125rem;inline-size:var(--b3-choice-control);block-size:var(--b3-choice-control);flex:none;margin:0;margin-block-start:max(0px, calc((1lh - var(--b3-choice-control)) / 2))}.b3-choice>.b3-switch{--b3-choice-control:1.625rem}.b3-switch{appearance:none;background:var(--b3-color-muted);border:2px solid var(--b3-color-muted);cursor:pointer;border-radius:2rem;position:relative;block-size:1.625rem!important;inline-size:2.75rem!important}.b3-switch:before{content:"";background:var(--b3-color-surface);border-radius:50%;block-size:1.125rem;inline-size:1.125rem;position:absolute;inset-block-start:.125rem;inset-inline-start:.125rem}.b3-switch:checked{background:var(--b3-color-accent);border-color:var(--b3-color-accent)}.b3-switch:checked:before{background:var(--b3-color-on-accent);inset-inline-start:calc(100% - 1.25rem)}.b3-switch:disabled{opacity:.5;cursor:not-allowed}@media (forced-colors:active){.b3-switch{forced-color-adjust:none;background:canvas;border-color:buttontext}.b3-switch:before{background:buttontext}.b3-switch:checked{background:highlight;border-color:highlight}.b3-switch:checked:before{background:highlighttext}.b3-switch:disabled{opacity:1;background:canvas;border-color:graytext}.b3-switch:disabled:before{background:graytext}}.b3-input[type=number]{appearance:textfield}.b3-input[type=number]::-webkit-inner-spin-button,.b3-input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.b3-input::-webkit-datetime-edit,.b3-input::-webkit-datetime-edit-fields-wrapper{padding-block:0}.b3-input:is([type=date],[type=time],[type=datetime-local],[type=month],[type=week]){appearance:none;max-inline-size:100%;display:block}.b3-input::-webkit-date-and-time-value{text-align:start;min-block-size:1lh}.b3-card-header,.b3-card-footer{justify-content:space-between;align-items:center;gap:var(--b3-space);flex-wrap:wrap;display:flex}.b3-card-header{margin-block-end:var(--b3-space-4)}.b3-card-footer{border-block-start:1px solid var(--b3-color-border);margin-block-start:var(--b3-space-4);padding-block-start:var(--b3-space-4)}.b3-stack>:is(.b3-card-header,.b3-card-footer){margin-block:0}.b3-surface[data-b3-elevation=raised]{box-shadow:var(--b3-shadow)}.b3-divider{border:0;border-block-start:1px solid var(--b3-color-border);inline-size:100%;margin-inline:0;margin-block:var(--b3-space)}.b3-stack>.b3-divider{margin-block:0}.b3-alert,.b3-toast{overflow-wrap:anywhere;min-inline-size:0}.b3-alert>*,.b3-toast>*{min-inline-size:0}.b3-alert pre{max-inline-size:100%;overflow-x:auto}.b3-alert{--b3-status-color:var(--b3-color-info);border:1px solid var(--b3-status-color);border-radius:var(--b3-radius-small);color:var(--b3-color-text);background:color-mix(in srgb, var(--b3-status-color) 8%, var(--b3-color-surface));border-inline-start-width:4px;align-items:start;gap:.75rem;padding:1rem;display:flex}.b3-alert[data-b3-tone=success],.b3-badge[data-b3-tone=success]{--b3-status-color:var(--b3-color-success)}.b3-alert[data-b3-tone=warning],.b3-badge[data-b3-tone=warning]{--b3-status-color:var(--b3-color-warning)}.b3-alert[data-b3-tone=danger],.b3-badge[data-b3-tone=danger]{--b3-status-color:var(--b3-color-danger)}.b3-badge[data-b3-tone]{color:var(--b3-status-color,var(--b3-color-info));background:color-mix(in srgb, currentColor 7%, transparent);border-color:currentColor}.b3-toast-region{z-index:100;inline-size:min(24rem,100% - 2rem);max-block-size:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overscroll-behavior:contain;pointer-events:none;gap:.75rem;display:grid;position:fixed;inset-block-end:calc(1rem + env(safe-area-inset-bottom,0px));inset-inline-end:1rem;overflow-y:auto}.b3-toast{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);color:var(--b3-color-text);box-shadow:var(--b3-shadow-raised);pointer-events:auto;flex-wrap:wrap;align-items:start;gap:1rem;padding:1rem;display:flex}.b3-toast>:not(button,.b3-button){flex:12rem}.b3-toast>:is(button,.b3-button){flex:none;max-inline-size:100%}.b3-spinner{vertical-align:-.125em;border:2px solid;border-inline-end-color:#0000;border-radius:50%;flex:none;block-size:1.125em;inline-size:1.125em;animation:.8s linear infinite b3-spin;display:inline-block}@keyframes b3-spin{to{transform:rotate(360deg)}}.b3-skeleton{background:var(--b3-color-border);border-radius:var(--b3-radius-small);min-block-size:1rem;animation:1.8s ease-in-out infinite b3-pulse}@keyframes b3-pulse{50%{opacity:.45}}:is(button,a).b3-badge{min-block-size:auto;color:var(--b3-color-text);cursor:pointer;background:0 0;gap:.25rem;text-decoration:none;position:relative}:is(button,a).b3-badge:after{content:"";position:absolute;inset:-10px 0}:is(button,a).b3-badge[data-b3-tone]{color:var(--b3-status-color,var(--b3-color-info))}:is(button,a).b3-badge:is([aria-pressed=true],[aria-current]:not([aria-current=false])){color:var(--b3-color-on-accent);background:var(--b3-color-accent);border-color:var(--b3-color-accent)}.b3-avatar{background:var(--b3-color-accent);block-size:2.5rem;inline-size:2.5rem;color:var(--b3-color-on-accent);border-radius:50%;flex:none;place-items:center;font-size:.875rem;font-weight:650;display:inline-grid;overflow:hidden}.b3-avatar>img{object-fit:cover;block-size:100%;inline-size:100%}.b3-avatar[data-b3-unread]{position:relative;overflow:visible}.b3-avatar[data-b3-unread]>img{border-radius:inherit}.b3-avatar[data-b3-unread]:after{content:"";background:var(--b3-color-accent);block-size:.75rem;inline-size:.75rem;box-shadow:0 0 0 2px var(--b3-color-surface);border-radius:50%;position:absolute;inset-block-start:-.0625rem;inset-inline-end:-.0625rem}.b3-avatar-stack{padding-inline-start:.5rem;display:flex}.b3-avatar-stack>.b3-avatar{border:2px solid var(--b3-color-surface);margin-inline-start:-.5rem}.b3-kbd{border:1px solid var(--b3-color-border);background:var(--b3-color-surface);color:var(--b3-color-muted);border-block-end-width:2px;border-radius:.25rem;padding:.15rem .35rem;font:.75rem ui-monospace,monospace}.b3-table-wrap{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);position:relative;overflow-x:auto}.b3-table{border-collapse:collapse;text-align:start;font-variant-numeric:tabular-nums;inline-size:100%}.b3-table th{color:var(--b3-color-muted);background:var(--b3-color-canvas);font-size:.75rem;font-weight:650}.b3-table :is(th,td){border-block-end:1px solid var(--b3-color-border);text-align:start;vertical-align:middle;padding:.875rem 1rem}.b3-table tbody tr:last-child td{border-block-end:0}.b3-table[data-b3-density=compact] :is(th,td){padding:.5rem .75rem}.b3-table tbody tr[aria-selected=true]{background:color-mix(in srgb, var(--b3-color-accent) 10%, var(--b3-color-surface))}.b3-definition{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.75rem 1.5rem;margin:0;display:grid;container:b3-definition/inline-size}.b3-definition dt{overflow-wrap:anywhere;min-inline-size:0;color:var(--b3-color-muted)}.b3-definition dd{overflow-wrap:anywhere;margin:0}@container b3-definition (width<=26rem){.b3-definition>:is(dt,dd){grid-column:1/-1}.b3-definition>dt:not(:first-child){margin-block-start:.75rem}}.b3-stat{grid-template-columns:minmax(0,1fr);gap:.5rem;display:grid}.b3-stat-value{overflow-wrap:anywhere;letter-spacing:-.045em;font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,5vw,3rem);font-weight:650;line-height:1.1}.b3-nav{border-block-end:1px solid var(--b3-color-border);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem min(.75rem,3%);display:flex}.b3-nav[data-b3-orientation=vertical]{border-block-end:0;flex-direction:column;align-items:stretch}.b3-nav-link{overflow-wrap:anywhere;border-radius:var(--b3-radius-small);min-block-size:2.75rem;min-inline-size:0;max-inline-size:100%;color:var(--b3-color-muted);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.625rem min(.875rem,4%);text-decoration:none;display:flex}.b3-nav-link[aria-current=page]{background:color-mix(in srgb, var(--b3-color-accent) 10%, var(--b3-color-surface));color:var(--b3-color-accent);font-weight:650}.b3-nav-link:hover{background:var(--b3-color-surface);color:var(--b3-color-text)}.b3-breadcrumbs{color:var(--b3-color-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.b3-breadcrumbs li+li:before{content:"/";color:var(--b3-color-border);margin-inline-end:.5rem}.b3-tablist{border-block-end:1px solid var(--b3-color-border);gap:.25rem;display:flex;overflow-x:auto}@supports (animation-timeline:scroll(self inline)){.b3-tablist:not([aria-orientation=vertical]){--b3-tablist-l:var(--b3-tablist-start);--b3-tablist-r:var(--b3-tablist-end);mask-image:linear-gradient(to right, #0000, #000 var(--b3-tablist-l), #000 calc(100% - var(--b3-tablist-r)), #0000);animation-name:b3-tablist-fade;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(self inline)}.b3-tablist:not([aria-orientation=vertical]):dir(rtl){--b3-tablist-l:var(--b3-tablist-end);--b3-tablist-r:var(--b3-tablist-start)}@keyframes b3-tablist-fade{0%{--b3-tablist-start:0rem;--b3-tablist-end:2.5rem}10%{--b3-tablist-start:2.5rem}90%{--b3-tablist-end:2.5rem}to{--b3-tablist-start:2.5rem;--b3-tablist-end:0rem}}}.b3-tab{appearance:none;color:var(--b3-color-muted);font:inherit;white-space:normal;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;border-block-end:2px solid #0000;flex-shrink:0;min-block-size:2.75rem;max-inline-size:100%;padding:.75rem min(1rem,4vi)}.b3-tab[aria-selected=true]{color:var(--b3-color-accent);border-block-end-color:currentColor;font-weight:650}.b3-tab:disabled{opacity:.5;cursor:not-allowed}.b3-tabpanel{padding-block:var(--b3-space-4)}.b3-segmented{border-radius:var(--b3-radius);background:color-mix(in srgb, var(--b3-color-text) 7%, var(--b3-color-canvas));border:0;flex-wrap:wrap;gap:.25rem;min-inline-size:0;margin:0;padding:.25rem;display:flex}.b3-segmented>label{border-radius:calc(var(--b3-radius) - .25rem);min-block-size:2.75rem;max-inline-size:100%;color:var(--b3-color-muted);text-align:center;cursor:pointer;flex:1 0 auto;justify-content:center;align-items:center;gap:.375rem;padding-inline:.875rem;font-weight:600;display:inline-flex;position:relative}.b3-segmented>label>input{opacity:0;block-size:100%;inline-size:100%;cursor:inherit;margin:0;position:absolute;inset:0}.b3-segmented>label:has(input:checked){background:var(--b3-color-surface);color:var(--b3-color-text);box-shadow:0 1px 2px #0000001f, 0 0 0 1px var(--b3-color-border)}.b3-segmented>label:has(input:focus-visible){box-shadow:inset 0 0 0 2px}@media (forced-colors:active){.b3-segmented>label{border:2px solid canvas}.b3-segmented>label:has(input:checked){border-color:canvastext}.b3-segmented>label:has(input:focus-visible){outline-offset:1px;outline:2px solid highlight}}.b3-segmented>label:has(input:disabled){opacity:.5;cursor:not-allowed}.b3-filter-labels{overscroll-behavior-x:contain;scrollbar-width:none;gap:18px;display:flex;overflow-x:auto}.b3-filter-labels::-webkit-scrollbar{display:none}.b3-filter-labels>button{block-size:32px;box-shadow:none;color:var(--b3-color-muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;padding:0;font-size:15px;font-weight:500}.b3-filter-labels>button:hover{color:var(--b3-color-text)}.b3-filter-labels>button:is([aria-checked=true],[aria-pressed=true]){color:var(--b3-color-accent);font-weight:700}.b3-filter-labels>button:focus-visible{box-shadow:none;text-decoration:underline 2px var(--b3-color-accent);text-underline-offset:5px;outline:none}@media (forced-colors:active){.b3-filter-labels>button:is([aria-checked=true],[aria-pressed=true]){text-decoration:underline}.b3-filter-labels>button:focus-visible{outline:1px solid highlight}}.b3-accordion{border-block-end:1px solid var(--b3-color-border)}.b3-accordion>summary{cursor:pointer;padding:1rem .25rem;font-weight:650}.b3-accordion>:not(summary){padding:0 .25rem 1rem}.b3-dropdown{display:inline-block;position:relative}.b3-dropdown>summary{list-style:none}.b3-dropdown>summary::-webkit-details-marker{display:none}.b3-dropdown-panel{z-index:20;border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);max-block-size:70svh;inline-size:max-content;min-inline-size:min(12rem,85vw);max-inline-size:min(22rem,85vw);color:var(--b3-color-text);box-shadow:var(--b3-shadow-raised);padding:.5rem;position:absolute;inset-block-start:calc(100% + .5rem);inset-inline-start:0;overflow-y:auto}.b3-dialog{overscroll-behavior:contain;border:1px solid var(--b3-color-border);border-radius:var(--b3-radius-large);background:var(--b3-color-surface);max-block-size:calc(100svh - 2rem);inline-size:min(32rem,100% - 2rem);color:var(--b3-color-text);box-shadow:var(--b3-shadow-raised);padding:min(1.5rem,5vi);overflow:auto;container:b3-dialog/inline-size}.b3-dialog::backdrop{background:#101b17a6}.b3-dialog[data-b3-placement=end]{border-radius:0;block-size:100svh;max-block-size:100svh;inline-size:min(28rem,100%);max-inline-size:100%;margin:0;margin-inline-start:auto}@media (prefers-reduced-motion:no-preference){.b3-dialog[open]{animation:.28s cubic-bezier(.16,1,.3,1) b3-dialog-enter}.b3-dialog[open][data-b3-placement=end]{animation-name:b3-drawer-enter}.b3-dialog::backdrop,.b3-sheet::backdrop{transition:opacity .16s ease-out}.b3-dialog[data-b3-closing]::backdrop,.b3-sheet[data-b3-closing]::backdrop{opacity:0}@keyframes b3-dialog-enter{0%{opacity:0;transform:translateY(8px)scale(.96)}}@keyframes b3-drawer-enter{0%{opacity:0;translate:var(--b3-drawer-offset,1rem)}}.b3-dialog[dir=rtl][data-b3-placement=end],[dir=rtl] .b3-dialog[data-b3-placement=end]{--b3-drawer-offset:-1rem}}.b3-dialog>form{gap:var(--b3-space);flex-direction:column;margin:0;display:flex}.b3-dialog>form>header:has(>button:last-child){grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.75rem;display:grid}.b3-dialog>form>header:has(>button:last-child)>:not(:last-child){grid-column:1;min-inline-size:0}.b3-dialog>form>header>button:last-child:not(:first-child){grid-area:1/2}.b3-dialog>form>footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.b3-dialog>form>footer>[data-b3-emphasis=quiet]:first-child:not(:last-child){margin-inline-end:auto}@container b3-dialog (width<=16rem){.b3-dialog>form>header:has(>button:last-child){flex-direction:column;align-items:flex-start;display:flex}}.b3-tree,.b3-tree ul{overflow-wrap:anywhere;border-inline-start:1px solid var(--b3-color-border);padding-inline-start:min(1rem,5%);list-style:none}.b3-tree summary{cursor:pointer;padding-block:.5rem}.b3-prose{overflow-wrap:anywhere;max-inline-size:65ch;line-height:1.75}.b3-prose :is(p,ul,ol,blockquote,pre){margin-block:1rem}.b3-prose :is(h1,h2,h3,h4,h5,h6){margin-block:1.75rem .75rem;line-height:1.25}.b3-prose :is(h5,h6){font-size:1em}.b3-prose>:first-child{margin-block-start:0}.b3-prose :is(img,video,iframe){max-inline-size:100%;display:block}.b3-prose :is(img,video){block-size:auto}.b3-prose iframe{border:0}.b3-prose blockquote{border-inline-start:3px solid var(--b3-color-accent);color:var(--b3-color-muted);margin-inline:0;padding-inline-start:1rem}.b3-prose pre{background:var(--b3-color-surface);border:1px solid var(--b3-color-border);border-radius:var(--b3-radius-small);padding:1rem;overflow-x:auto}.b3-visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.b3-skip-link{z-index:1000;border-radius:var(--b3-radius-small);background:var(--b3-color-accent);max-inline-size:calc(100% - 1.5rem);color:var(--b3-color-on-accent);padding:.75rem 1rem;font-weight:650;position:fixed;inset-block-start:max(.75rem, env(safe-area-inset-top,0px));inset-inline-start:.75rem}.b3-skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;padding:0;overflow:hidden}.b3-hero{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(2rem,6vw,6rem);padding-block:clamp(3rem,8vw,7rem);display:grid}.b3-hero[data-b3-align=center]{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.b3-hero-copy{gap:1.5rem;max-inline-size:40rem;display:grid}.b3-feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,5vw,5rem);padding-block:clamp(2rem,6vw,5rem);display:grid}.b3-feature[data-b3-reverse=true]>:first-child{order:2}.b3-feature-icon{border-radius:var(--b3-radius);background:var(--b3-color-accent);block-size:3rem;inline-size:3rem;color:var(--b3-color-on-accent);place-items:center;display:inline-grid}.b3-pricing{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius-large);background:var(--b3-color-surface);color:var(--b3-color-text);flex-direction:column;gap:1.25rem;padding:clamp(1.25rem,3vw,2rem);display:flex}.b3-pricing[data-b3-featured=true]{border:2px solid var(--b3-color-accent);box-shadow:var(--b3-shadow)}.b3-pricing>.b3-button:last-child{margin-block-start:auto}.b3-price{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.375rem;display:flex}.b3-price>strong{letter-spacing:-.05em;font-size:3.25rem;line-height:1.1}.b3-checklist{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.b3-checklist>li{align-items:start;gap:.625rem;display:flex}.b3-checklist>li:before{content:"✓";color:var(--b3-color-accent);font-weight:700}.b3-quote{border-inline-start:3px solid var(--b3-color-accent);margin:0;padding:1.5rem}.b3-quote blockquote{margin:0 0 1rem;font-size:1.25rem;line-height:1.5}.b3-art{isolation:isolate;border-radius:var(--b3-radius-large);background:var(--b3-color-surface);position:relative;overflow:hidden}.b3-art:before{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0}.b3-art[data-b3-art=dots]:before{background-image:radial-gradient(var(--b3-color-border) 1px,transparent 1px);background-size:16px 16px}.b3-art[data-b3-art=glow]:before{background:radial-gradient(ellipse at 20% 20%,color-mix(in srgb,var(--b3-color-accent) 20%,transparent),transparent 65%)}.b3-art[data-b3-art=wash]:before{background:linear-gradient(135deg,color-mix(in srgb,var(--b3-color-accent) 14%,transparent),transparent 70%)}@media (width<=48rem){.b3-hero,.b3-feature{grid-template-columns:minmax(0,1fr)}.b3-feature[data-b3-reverse=true]>:first-child{order:initial}}.b3-reading{grid-template-columns:minmax(0,1fr) minmax(12rem,16rem);grid-template-areas:"content outline";align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.b3-reading>:not(.b3-toc){grid-area:content;min-inline-size:0}.b3-toc{max-block-size:calc(100svh - var(--b3-outline-top,1rem) - 1rem);border-inline-start:1px solid var(--b3-color-border);grid-area:outline;padding-inline-start:min(1rem,5%);font-size:.875rem;position:sticky;inset-block-start:var(--b3-outline-top,1rem);overflow-y:auto}.b3-toc ol{gap:.25rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.b3-toc ol ol{margin:.25rem 0;padding-inline-start:min(1rem,5%)}.b3-toc-link{border-radius:var(--b3-radius-small);color:var(--b3-color-muted);overflow-wrap:anywhere;padding:.625rem min(.75rem,5%);text-decoration:none;display:block}.b3-toc-link:hover{color:var(--b3-color-text);background:var(--b3-color-surface)}.b3-toc-link[aria-current=location]{color:var(--b3-color-accent);background:color-mix(in srgb, var(--b3-color-accent) 10%, var(--b3-color-surface));font-weight:650}@media (width<=48rem){.b3-reading{grid-template-columns:minmax(0,1fr);grid-template-areas:"outline""content";gap:2rem}.b3-toc{max-block-size:none;position:static}}.b3-command{inline-size:min(38rem,100% - 2rem);padding:0}.b3-command[open]:has(>.b3-scroll){grid-template-rows:auto minmax(0,1fr);display:grid}.b3-command>.b3-scroll>.b3-command-list{max-block-size:none;overflow:visible}.b3-command-search{border-block-end:1px solid var(--b3-color-border);flex-wrap:wrap;justify-content:end;align-items:center;gap:.75rem;padding:min(1rem,4vw);display:flex}.b3-command-search>input{flex:12ch;min-inline-size:0}.b3-command-list{overscroll-behavior:contain;max-block-size:50svh;padding:.5rem;overflow-y:auto}.b3-command-group+.b3-command-group{border-block-start:1px solid var(--b3-color-border);margin-block-start:.5rem;padding-block-start:.5rem}.b3-command-group>:first-child:not([role=option]){color:var(--b3-color-muted);padding:.5rem .75rem;font-size:.75rem;display:block}.b3-command-item{border-radius:var(--b3-radius-small);cursor:pointer;justify-content:space-between;align-items:center;gap:min(1rem,2vw);min-block-size:2.75rem;padding:min(.875rem,2svh) min(.75rem,3vw);display:flex}.b3-command .b3-command-item{border-radius:max(0px, calc(var(--b3-radius-large) - .5rem - 1px))}.b3-command-item>:first-child{overflow-wrap:anywhere;min-inline-size:0}.b3-command-item[aria-selected=true]{background:var(--b3-color-accent);color:var(--b3-color-on-accent)}.b3-command-item[aria-selected=true] .b3-muted{color:inherit}.b3-command-item[aria-disabled=true]{opacity:.5;cursor:not-allowed}.b3-command-item:not([aria-disabled=true]):hover{outline:1px solid var(--b3-color-border);outline-offset:-1px}.b3-form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));align-items:start;gap:1.25rem;display:grid}.b3-form-grid[data-b3-layout=inline]{flex-wrap:wrap;align-items:end;display:flex}.b3-form-grid[data-b3-layout=inline]>.b3-field{flex:12rem;min-inline-size:0}.b3-form-grid[data-b3-layout=inline]>.b3-button{overflow-wrap:anywhere;flex:0 auto;max-inline-size:100%}.b3-fieldset{border:0;min-inline-size:0;margin:0;padding:0}.b3-fieldset>legend{padding:0 0 .75rem;font-weight:650}.b3-help,.b3-error{overflow-wrap:anywhere}.b3-help{color:var(--b3-color-muted);font-size:.875rem}.b3-help[data-b3-tone=success]{color:var(--b3-color-success)}.b3-help[data-b3-tone=warning]{color:var(--b3-color-warning)}.b3-input:where(:not([type=checkbox],[type=radio]))[data-b3-size=small]{padding:.5rem .75rem}.b3-input:where(:not([type=checkbox],[type=radio]))[data-b3-size=large]{min-block-size:3.25rem;padding:.875rem 1rem}.b3-input[data-b3-emphasis=subtle]{background-color:var(--b3-color-canvas);border-color:#0000}.b3-input[data-b3-emphasis=outline]{background-color:#0000;border-width:2px}.b3-input[data-b3-tone=success]{border-color:var(--b3-color-success)}.b3-input[data-b3-tone=warning]{border-color:var(--b3-color-warning)}.b3-input[aria-invalid=true]{border-color:var(--b3-color-danger)}textarea.b3-input{resize:vertical}select.b3-input[multiple]{min-block-size:8rem}.b3-input[type=file]{padding:.375rem}.b3-input::file-selector-button{font:inherit;border-radius:max(0px, calc(var(--b3-radius) - .375rem - 1px));background:var(--b3-color-accent);color:var(--b3-color-on-accent);cursor:pointer;border:0;margin-inline-end:.75rem;padding:.5rem .75rem}.b3-input[data-b3-emphasis=outline]::file-selector-button{border-radius:max(0px, calc(var(--b3-radius) - .375rem - 2px))}.b3-input[type=color]{inline-size:5rem;padding:.25rem}.b3-range{min-block-size:2.75rem;inline-size:100%;accent-color:var(--b3-color-accent);margin:0}.b3-choice-card{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);color:var(--b3-color-text);cursor:pointer;flex-wrap:wrap;align-items:start;gap:.75rem;padding:1rem;display:flex}.b3-choice-card>:not(input){overflow-wrap:anywhere;flex:12ch;min-inline-size:0}.b3-choice-card>input{flex:none;block-size:1.125rem;inline-size:1.125rem;margin-block-start:.3rem}.b3-choice-card:has(input:checked){border-color:var(--b3-color-accent);background:color-mix(in srgb, var(--b3-color-accent) 7%, var(--b3-color-surface));box-shadow:inset 0 0 0 1px var(--b3-color-accent)}.b3-choice-card:has(input:focus-visible){outline:none;box-shadow:inset 0 0 0 2px}.b3-choice-card:has(input:disabled){opacity:.5;cursor:not-allowed}.b3-choice-card:has(input[aria-invalid=true]){border-color:var(--b3-color-danger)}.b3-range[aria-invalid=true]{accent-color:var(--b3-color-danger)}.b3-stepper{flex-wrap:wrap;gap:1rem 2rem;margin:0;padding:0;list-style:none;display:flex}.b3-step{color:var(--b3-color-muted);align-items:center;gap:.625rem;font-size:.875rem;display:flex}.b3-step-marker{border:1px solid var(--b3-color-border);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;block-size:2rem;inline-size:2rem;display:grid}.b3-step[aria-current=step]{color:var(--b3-color-text);font-weight:650}.b3-step[aria-current=step] .b3-step-marker{background:var(--b3-color-accent);color:var(--b3-color-on-accent);border-color:var(--b3-color-accent)}.b3-step[data-b3-complete=true] .b3-step-marker{border-color:var(--b3-color-success);color:var(--b3-color-success)}.b3-conversation{gap:1.5rem;min-inline-size:0;margin:0;padding:0;list-style:none;display:grid}.b3-message{grid-template-columns:minmax(0,1fr);justify-self:start;gap:.375rem;min-inline-size:0;max-inline-size:min(85%,38rem);display:grid}.b3-message[data-b3-side=self]{justify-self:end}.b3-message-body{border:1px solid var(--b3-color-border);border-radius:var(--b3-radius);background:var(--b3-color-surface);color:var(--b3-color-text);white-space:pre-wrap;overflow-wrap:anywhere;padding:.75rem 1rem}.b3-message[data-b3-side=self]>.b3-message-body{background:var(--b3-color-accent);color:var(--b3-color-on-accent);border-color:#0000}.b3-message-meta{color:var(--b3-color-muted);flex-wrap:wrap;gap:.35rem .75rem;font-size:.8125rem;display:flex}.b3-message[data-b3-side=self]>.b3-message-meta{justify-content:end}.b3-conversation{align-content:start}.b3-message-body:has(>:is(div,p,ul,ol,table,pre,blockquote,b3-markdown-stream)){white-space:normal}.b3-composer{align-items:end;gap:var(--b3-space-2);padding:var(--b3-space-3);border-block-start:1px solid var(--b3-color-border);background:var(--b3-color-canvas);flex-wrap:wrap;display:flex}.b3-composer>.b3-input,.b3-composer>.b3-button{border-radius:var(--b3-radius);min-block-size:var(--b3-d-control,2.75rem)}.b3-composer>.b3-input{resize:none;min-inline-size:0;max-inline-size:100%;padding-block:calc((var(--b3-d-control,2.75rem) - 1.5em - 2px) / 2);flex:12ch;line-height:1.5}.b3-composer>.b3-button{block-size:var(--b3-d-control,2.75rem);min-inline-size:var(--b3-d-control,2.75rem);flex-shrink:0;margin-inline-start:auto}.b3-message-body :where(p,ul,ol,pre,table,blockquote,h1,h2,h3,h4,h5,h6,div,figure):first-child{margin-block-start:0}.b3-message-body :where(p,ul,ol,pre,table,blockquote,h1,h2,h3,h4,h5,h6,div,figure):last-child{margin-block-end:0}.b3-conversation[data-b3-layout=assistant]{gap:.75em}.b3-conversation[data-b3-layout=assistant]>.b3-message{gap:.45em}.b3-conversation[data-b3-layout=assistant]>.b3-message:not([data-b3-side=self]){justify-self:stretch;max-inline-size:none}.b3-conversation[data-b3-layout=assistant]>.b3-message[data-b3-side=self]{max-inline-size:88%}.b3-conversation[data-b3-layout=assistant]>.b3-message:not([data-b3-side=self])>.b3-message-body{background:0 0;border:0;padding:0}.b3-conversation[data-b3-layout=assistant]>.b3-message[data-b3-side=self]>.b3-message-body,.b3-root[data-b3-theme=dark] .b3-conversation[data-b3-layout=assistant]>.b3-message[data-b3-side=self]>.b3-message-body{background:var(--b3-message-self-bg,color-mix(in srgb, var(--b3-color-accent) 12%, var(--b3-color-surface)));color:var(--b3-message-self-text,var(--b3-color-text));unicode-bidi:plaintext;border:0;border-radius:1.075em 1.075em .3em;padding:.625em .9375em}.b3-message-body:has(>:is(div,p,ul,ol,table,pre,blockquote,h1,h2,h3,h4,h5,h6)){overflow-wrap:anywhere;line-height:1.5}.b3-message-body :where(p,ul,ol,pre,blockquote,table,.b3-table-wrap,.b3-alert){margin-block:0 .6em}.b3-message-body :where(h1,h2,h3,h4,h5,h6){margin-block:.9em .3em;font-size:1.1em;line-height:1.3}.b3-message-body :where(h1){font-size:1.2em}.b3-message-body :where(ul,ol){padding-inline-start:1.5em}.b3-message-body :where(a){color:var(--b3-color-accent);text-underline-offset:2px;text-decoration:underline}.b3-message-body :where(:not(pre)>code){background:color-mix(in srgb, var(--b3-color-text) 8%, transparent);border-radius:.3em;padding:.05em .3em;font-size:.92em}.b3-message-body :where(code,pre){font-family:var(--b3-font-mono,ui-monospace, monospace);text-align:start;direction:ltr;unicode-bidi:isolate}.b3-message-body :where(pre){background:color-mix(in srgb, var(--b3-color-text) 6%, transparent);border-radius:.6em;padding:.75em .9em;font-size:.92em;overflow-x:auto}.b3-message-body :where(blockquote){border-inline-start:3px solid var(--b3-color-border);color:var(--b3-color-muted);margin-inline:0;padding-inline-start:.75em}.b3-message-disclosure{font-size:.92em}.b3-message-disclosure>summary{max-inline-size:100%;color:var(--b3-color-muted);border-radius:.5em;align-items:center;gap:.5em;padding:.25em .5em;list-style:none;display:inline-flex;overflow:hidden}.b3-message-disclosure>summary::-webkit-details-marker{display:none}.b3-message-disclosure>summary:before{content:"›";transition:transform var(--b3-duration,.15s)}.b3-message-disclosure[open]>summary:before{transform:rotate(90deg)}@media (hover:hover){.b3-message-disclosure>summary:hover{background:color-mix(in srgb, var(--b3-color-text) 6%, transparent)}}.b3-message-disclosure>:not(summary){max-block-size:18em;color:var(--b3-color-muted);white-space:pre-wrap;padding:.35em .65em .35em 1.5em;font-style:italic;overflow-y:auto}.b3-composer[data-b3-layout=stacked]{border:1px solid var(--b3-color-border);background:var(--b3-color-surface);border-radius:.9375em;flex-flow:column;align-items:stretch;gap:.45em;padding:.625em}.b3-composer[data-b3-layout=stacked]:focus-within{border-color:var(--b3-color-accent)}.b3-composer[data-b3-layout=stacked]>textarea{max-block-size:15.4em;inline-size:100%;color:inherit;font:inherit;resize:none;background:0 0;border:0;padding:.15em;line-height:1.45;display:block}.b3-composer[data-b3-layout=stacked]>textarea:is(:focus,:focus-visible){box-shadow:none;outline:none}.b3-composer-bar{align-items:center;gap:.45em;min-inline-size:0;display:flex}.b3-composer-bar>.b3-button:last-child:not([data-b3-icon]){border-radius:.86em;flex:none;block-size:auto;min-block-size:2.46em;margin-inline-start:auto;padding:0 1.23em;font-size:.875em}.b3-mobile-app{--b3-touch:44px;min-block-size:100svh;max-inline-size:var(--b3-app-width,70rem);margin-inline:auto;padding-block-end:calc(5.5rem + env(safe-area-inset-bottom,0px))}.b3-mobile-app[data-b3-platform=android]{--b3-touch:48px}.b3-mobile-app :where(button,.b3-button,select,input:not([type=checkbox],[type=radio])){min-block-size:var(--b3-touch)}.b3-app-bar{padding:max(.75rem, env(safe-area-inset-top,0px)) 1.25rem .75rem;align-items:center;gap:.75rem;display:flex}.b3-app-bar>:last-child:not(:first-child){margin-inline-start:auto}.b3-bottom-nav{z-index:10;max-inline-size:var(--b3-app-width,70rem);padding:.5rem clamp(.5rem, 2vw, 1rem) max(.5rem, env(safe-area-inset-bottom,0px));background:var(--b3-color-surface);color:var(--b3-color-text);border-block-start:1px solid var(--b3-color-border);flex-wrap:wrap;justify-content:space-around;gap:.125rem;margin-inline:auto;display:flex;position:fixed;inset-block-end:0;inset-inline:0}.b3-bottom-link{appearance:none;cursor:pointer;overflow-wrap:anywhere;text-align:center;flex:1 1 max-content;min-block-size:var(--b3-touch,44px);min-inline-size:var(--b3-touch,44px);max-inline-size:100%;color:var(--b3-color-muted);background:0 0;border:0;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.25rem clamp(.125rem,1vw,.5rem);font-size:.75rem;text-decoration:none;display:flex}.b3-bottom-link:disabled{opacity:.5;cursor:not-allowed}.b3-bottom-link:has(svg){justify-content:flex-start}.b3-bottom-link[aria-current=page]{color:var(--b3-color-accent);font-weight:700}[data-b3-platform=android] .b3-bottom-link[aria-current=page]{background:var(--b3-color-canvas)}.b3-mobile-list{border:1px solid var(--b3-color-border);background:var(--b3-color-surface);border-radius:1rem;margin:0;padding:0;list-style:none;overflow:hidden}.b3-mobile-list>li+li{border-block-start:1px solid var(--b3-color-border)}.b3-mobile-row{min-block-size:var(--b3-touch,44px);color:var(--b3-color-text);align-items:center;gap:1rem;padding:.875rem 1rem;text-decoration:none;display:flex}.b3-mobile-row>:last-child:not(:first-child){margin-inline-start:auto}.b3-sheet{inline-size:min(100%, var(--b3-overlay-width,32rem));max-inline-size:none;max-block-size:min(85dvh, calc(100dvh - env(safe-area-inset-top,0px) - 1rem));overscroll-behavior:contain;border:1px solid var(--b3-color-border);padding:1.5rem min(1.5rem, 5vi) max(1.5rem, env(safe-area-inset-bottom,0px));background:var(--b3-color-surface);color:var(--b3-color-text);border-radius:1.5rem 1.5rem 0 0;margin:0 auto;inset:auto 0 0;overflow-y:auto}.b3-sheet::backdrop{background:#0007}.b3-sheet [data-b3-initial-focus]:focus{box-shadow:none;outline:none}.b3-sheet-handle{min-block-size:44px;inline-size:5rem;color:var(--b3-color-muted);touch-action:none;cursor:grab;background:0 0;border:0;border-radius:1rem;flex:none;align-self:center;place-items:center;margin-block:-1rem -.5rem;padding:0;display:grid}.b3-sheet-handle:before{content:"";background:currentColor;border-radius:1rem;block-size:.25rem;inline-size:2.25rem}.b3-sheet[data-b3-dragging]{animation:none}.b3-sheet[data-b3-dragging] .b3-sheet-handle{cursor:grabbing}[data-b3-platform=android] .b3-mobile-list{border-radius:1.5rem}@media (prefers-reduced-motion:no-preference){.b3-sheet[open]{animation:.32s cubic-bezier(.16,1,.3,1) b3-sheet-enter}@keyframes b3-sheet-enter{0%{opacity:0;transform:translateY(3rem)}to{opacity:1;transform:translateY(0)}}}.b3-root:has(dialog:modal){overflow:hidden}.b3-bottom-link[aria-current=page]{background:color-mix(in srgb, var(--b3-color-accent) 12%, transparent)}.b3-bottom-link :where(svg:not([width])){flex:none;block-size:1.375rem;inline-size:1.375rem}.b3-bottom-link>:where(span,strong):not(.b3-count){white-space:normal;overflow-wrap:anywhere;max-inline-size:100%;overflow:visible}:has(>.b3-bottom-link:nth-of-type(5))>.b3-bottom-link{padding-inline:.125rem;font-size:.6875rem}.b3-app-frame{inline-size:100%;block-size:var(--b3-frame-height,100dvh);min-block-size:0;max-inline-size:var(--b3-app-width,70rem);padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);grid-template-rows:auto minmax(0,1fr) auto;margin-inline:auto;display:grid;overflow:clip}.b3-app-frame>header{grid-row:1;min-inline-size:0}.b3-app-frame>main{overscroll-behavior:contain;grid-area:2/1;min-block-size:0;min-inline-size:0;overflow:hidden auto}.b3-app-frame>:is(nav,footer){grid-row:3;min-inline-size:0;position:relative}.b3-app-frame>.b3-toast-region{overscroll-behavior:contain;grid-area:2/1;place-self:end;min-block-size:0;max-block-size:calc(100% - 2rem);margin:1rem;position:relative;inset:auto;overflow-y:auto}.b3-app-frame>.b3-app-bar{padding-block-start:.75rem}.b3-app-frame:has(>.b3-bottom-nav,>footer .b3-bottom-nav){padding-block-end:0}.b3-app-frame .b3-bottom-nav{inline-size:100%;max-inline-size:none;padding-block-end:max(.5rem, env(safe-area-inset-bottom,0px));position:static}:where(.b3-root[data-b3-density]) .b3-button{min-block-size:var(--b3-d-control,2.75rem);padding:var(--b3-d-pad-block,.625rem) var(--b3-d-pad-inline,1rem);font-size:var(--b3-d-label,inherit)}:where(.b3-root[data-b3-density]) .b3-button[data-b3-size=small]{min-block-size:var(--b3-d-control-small,auto);padding:calc(var(--b3-d-pad-block,.5rem) - .125rem) calc(var(--b3-d-pad-inline,.75rem) - .25rem)}:where(.b3-root[data-b3-density]) .b3-input:where(:not([type=checkbox],[type=radio])){min-block-size:var(--b3-d-control,2.75rem);padding:calc((var(--b3-d-control,2.75rem) - 1.5em - 2px) / 2) .75rem;line-height:1.5}:where(.b3-root[data-b3-density]) .b3-nav-link{min-block-size:var(--b3-d-control,2.75rem);padding:var(--b3-d-pad-block,.625rem) min(var(--b3-d-pad-inline,.875rem), 4%);font-size:var(--b3-d-label,inherit)}:where(.b3-root[data-b3-density]) .b3-heading{font-size:var(--b3-d-heading,1.375rem)}:where(.b3-root[data-b3-density]) .b3-avatar{block-size:var(--b3-d-avatar,2.5rem);inline-size:var(--b3-d-avatar,2.5rem)}:where(.b3-root[data-b3-density]) .b3-conversation{gap:var(--b3-d-gap,1.5rem)}:where(.b3-root[data-b3-density]) .b3-message-body{padding:var(--b3-d-message-pad,.75rem 1rem)}:where(.b3-root[data-b3-density]) .b3-message-meta{font-size:var(--b3-d-meta,.8125rem)}.b3-button[data-b3-emphasis=ghost]{color:var(--b3-color-muted);background:0 0;border-color:#0000}.b3-button[data-b3-emphasis=ghost]:not(:disabled):hover{color:var(--b3-color-text);background:color-mix(in srgb, var(--b3-color-text) 10%, transparent);box-shadow:none}.b3-button[data-b3-emphasis=ghost][aria-pressed=true]{color:var(--b3-color-accent)}.b3-button[data-b3-icon]{min-inline-size:var(--b3-d-control,2.75rem);padding-inline:0}.b3-button[data-b3-icon] :where(svg:not([width])){block-size:1.375em;inline-size:1.375em}.b3-button[data-b3-icon][data-b3-size=small]{min-inline-size:var(--b3-d-control-small,2.75rem);min-block-size:var(--b3-d-control-small,2.75rem);block-size:var(--b3-d-control-small,2.75rem);padding:0}.b3-button:disabled{opacity:1;background:color-mix(in srgb, var(--b3-color-muted) 14%, var(--b3-color-surface));color:var(--b3-color-muted);border-color:#0000}.b3-button[data-b3-emphasis=ghost]:disabled{background:0 0}.b3-truncate{white-space:nowrap;text-overflow:ellipsis;min-inline-size:0;overflow:hidden}.b3-strong{font-size:inherit;font-weight:650}.b3-caption{color:var(--b3-color-muted);font-size:.8125rem;line-height:1.4}.b3-heading[data-b3-size=small]{font-size:1.0625rem;line-height:1.3}:is(a,button).b3-caption{color:var(--b3-color-accent);cursor:pointer;text-underline-offset:.15em;background:0 0;border:0;padding:0}:is(a,button).b3-caption:is(:hover,:focus-visible){text-decoration:underline}:where(.b3-root[data-b3-density]) .b3-caption{font-size:var(--b3-d-meta,.8125rem)}.b3-badge{gap:.25rem}:where(.b3-root[data-b3-density]) .b3-surface{padding:var(--b3-d-surface-pad,clamp(1rem, 3vw, 2rem))}.b3-input-group,.b3-input-group>.b3-input-affix,.b3-input-group>.b3-input{background:var(--b3-color-surface)}.b3-root[data-b3-theme=dark] .b3-message[data-b3-side=self]>.b3-message-body{background:color-mix(in srgb, var(--b3-color-accent) 22%, var(--b3-color-surface));color:var(--b3-color-text)}.b3-empty{justify-items:center;gap:var(--b3-space-2);padding:var(--b3-space-12) var(--b3-space-4);text-align:center;color:var(--b3-color-muted);display:grid}.b3-empty>svg{color:var(--b3-color-muted)}}@property --b3-reel-fade{syntax:"<length>";inherits:false;initial-value:2.5rem}@property --b3-tablist-start{syntax:"<length>";inherits:false;initial-value:0}@property --b3-tablist-end{syntax:"<length>";inherits:false;initial-value:0}
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.1.0-alpha.159",
3
- "cssSha256": "87ac01d3a41ddd908697ea8c41eb589c54125e9130c4522aaa5b2d2417493c07",
2
+ "version": "0.1.0-alpha.161",
3
+ "cssSha256": "746ad5415b996f9aac0f521c3ad3ffe11c493bd941d16c657d9e8d3d29a92883",
4
4
  "classes": [
5
5
  "b3-accordion",
6
6
  "b3-alert",
@@ -112,8 +112,11 @@ export declare class MarkdownStream {
112
112
  /**
113
113
  * Keep a scroller pinned to the bottom while content grows, unless the reader scrolled up;
114
114
  * scrolling back near the bottom re-pins. `stick(true)` forces a pin (e.g. on send).
115
+ * Inner scrollers (`inner`, default: an open b3-message-disclosure's body — streaming Thinking) follow
116
+ * their own tail the same way: pinned until the reader scrolls one up, re-pinned near its bottom.
115
117
  */
116
- export declare function stickToBottom(scroller?: Element, { threshold }?: {
118
+ export declare function stickToBottom(scroller?: Element, { threshold, inner }?: {
119
+ inner?: string | undefined;
117
120
  threshold?: number | undefined;
118
121
  }): {
119
122
  readonly pinned: boolean;
@@ -1,12 +1,12 @@
1
- var q=Symbol.for("bare-v3.styles");function O(e,n,a){if(!e?.head||e.getElementById(n))return;let t=e[q]??=new Set;if(t.has(n))return;let r=e.defaultView;if(r&&"adoptedStyleSheets"in e&&"replaceSync"in r.CSSStyleSheet.prototype){let i=new r.CSSStyleSheet;i.replaceSync(a),e.adoptedStyleSheets=[...e.adoptedStyleSheets,i],t.add(n);return}let s=e.createElement("style");s.id=n,s.textContent=a,e.head.append(s)}var b=(e)=>String(e).replace(/[&<>"]/g,(n)=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[n]),P=(e)=>Object.fromEntries([...(e||"").matchAll(/(\w+)=(?:"([^"]*)"|(\S+))/g)].map((n)=>[n[1],n[2]??n[3]])),B=(e)=>/^[-+$€£]?[\d,.]+%?$/.test(String(e).trim()),R=(e)=>e?` data-b3-tone="${b(e)}"`:"",T={callout(e,n){let a=e.attrs.title?`<strong>${b(e.attrs.title)}</strong>`:"";return`<div class="b3-alert"${R(e.attrs.tone)}><div>${a}${n.parse(e.tokens)}</div></div>`},stats(e,n){let a=n?.inline??b;return`<div class="b3-md-stats">${e.body.split(`
2
- `).filter((r)=>r.trim()).map((r)=>{let[s="",i,o=""]=r.replace(/^\s*\|/,"").replace(/\|\s*$/,"").split("|").map((c)=>c.trim()),l=/^[↑+]/.test(o)?"success":/^[↓-]/.test(o)?"danger":"";return`<div class="b3-stat b3-surface"><span class="b3-label">${a(s)}</span><strong class="b3-stat-value">${i?a(i.replace(/^\*\*(.*)\*\*$/,"$1")):"…"}</strong>${o?`<span class="b3-badge"${R(l)}>${a(o)}</span>`:""}</div>`}).join("")}</div>`}},S={chart(e){let n=e.split(`
3
- `).map((t)=>t.split(":")).filter((t)=>t.length>1&&!isNaN(parseFloat(t[1]))),a=Math.max(...n.map((t)=>parseFloat(t[1])),1);return`<figure class="b3-md-bars b3-surface">${n.map(([t="",r=""])=>`<div class="b3-md-bar"><span>${b(t.trim())}</span><i style="inline-size:${Math.max(parseFloat(r),0)/a*100}%"></i><b>${b(r.trim())}</b></div>`).join("")}</figure>`}},U=(e,n)=>{let a=e.trim();if(!/^[[{]/.test(a))return S.chart(e,n);let t;try{t=JSON.parse(a)}catch{return(a.match(/[[{]/g)?.length??0)>(a.match(/[\]}]/g)?.length??0)?'<figure class="b3-md-chart b3-surface b3-md-pending"><div class="b3-skeleton"></div></figure>':j(e,"json")}let r=_(t);return r?Y(r):j(e,"json")};U.doc='```chart fence with JSON — `{"type":"bar|line|pie","title":"…","data":[{"label":"Jan","sales":120,"costs":80}]}` (numbers, not strings; every numeric field is a series; type is optional) — for trends over time (line), comparing groups/series (bar) or shares of a whole (pie). For a few single values, one `Label: number` per line gives simple bars.';var M=(e)=>typeof e==="number"&&Number.isFinite(e);function _(e){let n=Array.isArray(e)?{data:e}:e&&typeof e==="object"?e:null;if(!n)return null;let a=n.data??n.rows,t=n.series??n.values;if(!a&&t&&typeof t==="object"&&!Array.isArray(t)){let c=Object.keys(t);a=[...new Set(c.flatMap((m)=>Object.keys(t[m]||{})))].map((m)=>({label:m,...Object.fromEntries(c.map((g)=>[g,Number(t[g]?.[m]??0)]))}))}if(!Array.isArray(a)||!a.length||!a.every((c)=>c&&typeof c==="object"&&!Array.isArray(c)))return null;let r=[...new Set(a.flatMap((c)=>Object.keys(c)))],s=typeof n.x==="string"?n.x:r.find((c)=>a.some((d)=>d[c]!=null&&!M(d[c])))??"",i=n.y?[n.y].flat().map(String):r.filter((c)=>c!==s&&a.some((d)=>M(d[c])));if(!i.length)return null;let o=a.some((c)=>/^\d{4}-\d{2}/.test(String(c[s]??""))),l=["bar","line","pie"].includes(n.type)?n.type:o||a.length>12?"line":"bar";return{type:l,title:String(n.title??""),x:s,ys:l==="pie"?i.slice(0,1):i.slice(0,8),rows:a.slice(0,500)}}var A=(e)=>{try{return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1}).format(e)}catch{return String(e)}};function Y({type:e,title:n,x:a,ys:t,rows:r}){let s=(p,u)=>M(p[u])?p[u]:0,i=(p,u)=>String(a?p[a]??"":u+1),o=(p,u,h)=>`<title>${b(i(p,u))} · ${b(h)}: ${b(p[h]??"")}</title>`,l=n?`<figcaption>${b(n)}</figcaption>`:"",c=(p)=>`<div class="b3-md-legend">${p.map((u,h)=>`<span><i class="b3-md-c${h%8}"></i>${b(u)}</span>`).join("")}</div>`;if(e==="pie"){let p=t[0],u=r.map((k)=>Math.max(s(k,p),0)),h=u.reduce((k,y)=>k+y,0)||1,f=0,E=r.map((k,y)=>{let x=f+u[y]/h*Math.PI*2,C=(z)=>`${(16+15*Math.sin(z)).toFixed(3)} ${(16-15*Math.cos(z)).toFixed(3)}`,N=u[y]>=h?"M16 1a15 15 0 1 1 0 30a15 15 0 1 1 0-30Z":`M16 16L${C(f)}A15 15 0 ${x-f>Math.PI?1:0} 1 ${C(x)}Z`;return f=x,`<path class="b3-md-c${y%8}" d="${N}">${o(k,y,p)}</path>`});return`<figure class="b3-md-chart b3-surface">${l}<div class="b3-md-pie"><svg viewBox="0 0 32 32" role="img" aria-label="${b(n||p)}">${E.join("")}</svg>${c(r.map(i))}</div></figure>`}let d=r.flatMap((p)=>t.map((u)=>s(p,u))),m=Math.min(0,...d),g=Math.max(0,...d),H=g-m||1,v=(p)=>(100-(p-m)/H*100).toFixed(2),w=r.length,I=e==="line"?t.map((p,u)=>`<polyline class="b3-md-c${u%8}" vector-effect="non-scaling-stroke" points="${r.map((h,f)=>`${(w>1?f/(w-1)*100:50).toFixed(2)},${v(s(h,p))}`).join(" ")}"><title>${b(p)}</title></polyline>`).join(""):r.map((p,u)=>t.map((h,f)=>{let E=100/w*0.8/t.length,k=100/w*(u+0.1)+E*f,y=s(p,h),x=Math.min(+v(y),+v(0));return`<rect class="b3-md-c${f%8}" x="${k.toFixed(2)}" y="${x.toFixed(2)}" width="${E.toFixed(2)}" height="${Math.max(Math.abs(+v(y)-+v(0)),0.4).toFixed(2)}">${o(p,u,h)}</rect>`}).join("")).join(""),D=w>2?[0,Math.floor((w-1)/2),w-1]:[...Array(w).keys()];return`<figure class="b3-md-chart b3-surface">${l}<div class="b3-md-plot"><div class="b3-md-y"><span>${A(g)}</span><span>${A(m)}</span></div><svg viewBox="0 0 100 100" preserveAspectRatio="none" role="img" aria-label="${b(n||t.join(", "))}">${I}</svg><div class="b3-md-x">${D.map((p)=>`<span>${b(i(r[p],p))}</span>`).join("")}</div></div>${t.length>1?c(t):""}</figure>`}T.callout.doc='`:::callout{tone=info|success|warning|danger title="Short title"}` newline, markdown body, newline `:::` — a highlighted note, tip, warning or recommendation.';T.stats.doc="`:::stats` newline, one card per line `Label | Value | note`, newline `:::` — headline numbers; a note starting with ↑ or + shows as good, ↓ or - as bad.";S.chart.doc="```chart fence, one bar per line `Label: number` (plain number, no units) — a horizontal bar chart for comparing a few values.";function X(e={}){let n={...T,...e.directives,...S,...e.fences},a=Object.entries(e.tones??new L().tones).reduce((t,[r,s])=>((t[s]??=[]).push(r),t),{});return["Your replies are Markdown rendered live into UI components. Use GitHub-flavoured Markdown (headings, **bold**, lists, links, `inline code`, fenced code with a language, > quotes) plus:",`- Tables: GFM pipe tables with a header row and a \`| --- |\` delimiter row. Never add a Status column the data does not already have. Only when a row really has one of these states (e.g. an invoice that is paid), write the plain word alone in the cell and it is shown as a coloured badge automatically (no images, emoji or badge URLs): ${Object.entries(a).map(([t,r])=>`${r.join(", ")} (${t})`).join("; ")}. Numeric columns align right.`,"- Task lists: `- [x] done` and `- [ ] to do`.",...Object.values(n).filter((t)=>t?.doc).map((t)=>`- ${t.doc}`),"Use a component only when it makes the answer clearer; plain prose is fine. Put every block on its own lines with a blank line around it, always close ::: and ``` blocks, and never write raw HTML."].join(`
4
- `)}var j=(e,n)=>`<div class="b3-md-code"><header><span class="b3-muted">${b(n||"text")}</span><button type="button" class="b3-button" data-b3-emphasis="quiet" data-b3-md-copy>Copy</button></header><pre><code>${b(e)}</code></pre></div>`;function V(e){let n=e,a=n.split(`
5
- `),t=[];while(a.length&&/^\s*\|/.test(a.at(-1)))t.unshift(a.pop());let r=e.endsWith(`
6
- `)?t:t.slice(0,-1),s=!1;if(t.length&&!r.some((c)=>/^\s*\|?\s*:?-{2,}/.test(c)))s=!0,n=a.join(`
7
- `);if(n=n.replace(/(^|\n) {0,3}(`{3}[^\n]*|~{3}[^\n]*|:{3}[^\n]*|`{1,2}|~{1,2}|:{1,2})$/,"$1"),(n.match(/^ {0,3}(`{3}|~{3})/gm)||[]).length%2)return{src:n,pendingTable:s};n=n.replace(/\[([^\]\n]*)\]?\([^)\n]*$/,"$1").replace(/\[([^\]\n]*)$/,"$1").replace(/(\*{1,3}|_{1,3}|~{1,2}|`)$/,"");let i=[...n.matchAll(/^ {0,3}(`{3}|~{3})[^\n]*\n?/gm)].at(-1),o=n.slice(Math.max(n.lastIndexOf(`
1
+ var q=Symbol.for("bare-v3.styles");function F(e,n,a){if(!e?.head||e.getElementById(n))return;let t=e[q]??=new Set;if(t.has(n))return;let i=e.defaultView;if(i&&"adoptedStyleSheets"in e&&"replaceSync"in i.CSSStyleSheet.prototype){let r=new i.CSSStyleSheet;r.replaceSync(a),e.adoptedStyleSheets=[...e.adoptedStyleSheets,r],t.add(n);return}let s=e.createElement("style");s.id=n,s.textContent=a,e.head.append(s)}var u=(e)=>String(e).replace(/[&<>"]/g,(n)=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"})[n]),P=(e)=>Object.fromEntries([...(e||"").matchAll(/(\w+)=(?:"([^"]*)"|(\S+))/g)].map((n)=>[n[1],n[2]??n[3]])),B=(e)=>/^[-+$€£]?[\d,.]+%?$/.test(String(e).trim()),H=(e)=>e?` data-b3-tone="${u(e)}"`:"",S={callout(e,n){let a=e.attrs.title?`<strong>${u(e.attrs.title)}</strong>`:"";return`<div class="b3-alert"${H(e.attrs.tone)}><div>${a}${n.parse(e.tokens)}</div></div>`},stats(e,n){let a=n?.inline??u;return`<div class="b3-md-stats">${e.body.split(`
2
+ `).filter((i)=>i.trim()).map((i)=>{let[s="",r,o=""]=i.replace(/^\s*\|/,"").replace(/\|\s*$/,"").split("|").map((c)=>c.trim()),l=/^[↑+]/.test(o)?"success":/^[↓-]/.test(o)?"danger":"";return`<div class="b3-stat b3-surface"><span class="b3-label">${a(s)}</span><strong class="b3-stat-value">${r?a(r.replace(/^\*\*(.*)\*\*$/,"$1")):"…"}</strong>${o?`<span class="b3-badge"${H(l)}>${a(o)}</span>`:""}</div>`}).join("")}</div>`}},E={chart(e){let n=e.split(`
3
+ `).map((t)=>t.split(":")).filter((t)=>t.length>1&&!isNaN(parseFloat(t[1]))),a=Math.max(...n.map((t)=>parseFloat(t[1])),1);return`<figure class="b3-md-bars b3-surface">${n.map(([t="",i=""])=>`<div class="b3-md-bar"><span>${u(t.trim())}</span><i style="inline-size:${Math.max(parseFloat(i),0)/a*100}%"></i><b>${u(i.trim())}</b></div>`).join("")}</figure>`}},U=(e,n)=>{let a=e.trim();if(!/^[[{]/.test(a))return E.chart(e,n);let t;try{t=JSON.parse(a)}catch{return(a.match(/[[{]/g)?.length??0)>(a.match(/[\]}]/g)?.length??0)?'<figure class="b3-md-chart b3-surface b3-md-pending"><div class="b3-skeleton"></div></figure>':z(e,"json")}let i=_(t);return i?Y(i):z(e,"json")};U.doc='```chart fence with JSON — `{"type":"bar|line|pie","title":"…","data":[{"label":"Jan","sales":120,"costs":80}]}` (numbers, not strings; every numeric field is a series; type is optional) — for trends over time (line), comparing groups/series (bar) or shares of a whole (pie). For a few single values, one `Label: number` per line gives simple bars.';var C=(e)=>typeof e==="number"&&Number.isFinite(e);function _(e){let n=Array.isArray(e)?{data:e}:e&&typeof e==="object"?e:null;if(!n)return null;let a=n.data??n.rows,t=n.series??n.values;if(!a&&t&&typeof t==="object"&&!Array.isArray(t)){let c=Object.keys(t);a=[...new Set(c.flatMap((p)=>Object.keys(t[p]||{})))].map((p)=>({label:p,...Object.fromEntries(c.map((f)=>[f,Number(t[f]?.[p]??0)]))}))}if(!Array.isArray(a)||!a.length||!a.every((c)=>c&&typeof c==="object"&&!Array.isArray(c)))return null;let i=[...new Set(a.flatMap((c)=>Object.keys(c)))],s=typeof n.x==="string"?n.x:i.find((c)=>a.some((h)=>h[c]!=null&&!C(h[c])))??"",r=n.y?[n.y].flat().map(String):i.filter((c)=>c!==s&&a.some((h)=>C(h[c])));if(!r.length)return null;let o=a.some((c)=>/^\d{4}-\d{2}/.test(String(c[s]??""))),l=["bar","line","pie"].includes(n.type)?n.type:o||a.length>12?"line":"bar";return{type:l,title:String(n.title??""),x:s,ys:l==="pie"?r.slice(0,1):r.slice(0,8),rows:a.slice(0,500)}}var I=(e)=>{try{return new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1}).format(e)}catch{return String(e)}};function Y({type:e,title:n,x:a,ys:t,rows:i}){let s=(m,b)=>C(m[b])?m[b]:0,r=(m,b)=>String(a?m[a]??"":b+1),o=(m,b,w)=>`<title>${u(r(m,b))} · ${u(w)}: ${u(m[w]??"")}</title>`,l=n?`<figcaption>${u(n)}</figcaption>`:"",c=(m)=>`<div class="b3-md-legend">${m.map((b,w)=>`<span><i class="b3-md-c${w%8}"></i>${u(b)}</span>`).join("")}</div>`;if(e==="pie"){let m=t[0],b=i.map((x)=>Math.max(s(x,m),0)),w=b.reduce((x,v)=>x+v,0)||1,k=0,L=i.map((x,v)=>{let T=k+b[v]/w*Math.PI*2,R=(A)=>`${(16+15*Math.sin(A)).toFixed(3)} ${(16-15*Math.cos(A)).toFixed(3)}`,N=b[v]>=w?"M16 1a15 15 0 1 1 0 30a15 15 0 1 1 0-30Z":`M16 16L${R(k)}A15 15 0 ${T-k>Math.PI?1:0} 1 ${R(T)}Z`;return k=T,`<path class="b3-md-c${v%8}" d="${N}">${o(x,v,m)}</path>`});return`<figure class="b3-md-chart b3-surface">${l}<div class="b3-md-pie"><svg viewBox="0 0 32 32" role="img" aria-label="${u(n||m)}">${L.join("")}</svg>${c(i.map(r))}</div></figure>`}let h=i.flatMap((m)=>t.map((b)=>s(m,b))),p=Math.min(0,...h),f=Math.max(0,...h),M=f-p||1,g=(m)=>(100-(m-p)/M*100).toFixed(2),d=i.length,y=e==="line"?t.map((m,b)=>`<polyline class="b3-md-c${b%8}" vector-effect="non-scaling-stroke" points="${i.map((w,k)=>`${(d>1?k/(d-1)*100:50).toFixed(2)},${g(s(w,m))}`).join(" ")}"><title>${u(m)}</title></polyline>`).join(""):i.map((m,b)=>t.map((w,k)=>{let L=100/d*0.8/t.length,x=100/d*(b+0.1)+L*k,v=s(m,w),T=Math.min(+g(v),+g(0));return`<rect class="b3-md-c${k%8}" x="${x.toFixed(2)}" y="${T.toFixed(2)}" width="${L.toFixed(2)}" height="${Math.max(Math.abs(+g(v)-+g(0)),0.4).toFixed(2)}">${o(m,b,w)}</rect>`}).join("")).join(""),j=d>2?[0,Math.floor((d-1)/2),d-1]:[...Array(d).keys()];return`<figure class="b3-md-chart b3-surface">${l}<div class="b3-md-plot"><div class="b3-md-y"><span>${I(f)}</span><span>${I(p)}</span></div><svg viewBox="0 0 100 100" preserveAspectRatio="none" role="img" aria-label="${u(n||t.join(", "))}">${y}</svg><div class="b3-md-x">${j.map((m)=>`<span>${u(r(i[m],m))}</span>`).join("")}</div></div>${t.length>1?c(t):""}</figure>`}S.callout.doc='`:::callout{tone=info|success|warning|danger title="Short title"}` newline, markdown body, newline `:::` — a highlighted note, tip, warning or recommendation.';S.stats.doc="`:::stats` newline, one card per line `Label | Value | note`, newline `:::` — headline numbers; a note starting with ↑ or + shows as good, ↓ or - as bad.";E.chart.doc="```chart fence, one bar per line `Label: number` (plain number, no units) — a horizontal bar chart for comparing a few values.";function X(e={}){let n={...S,...e.directives,...E,...e.fences},a=Object.entries(e.tones??new O().tones).reduce((t,[i,s])=>((t[s]??=[]).push(i),t),{});return["Your replies are Markdown rendered live into UI components. Use GitHub-flavoured Markdown (headings, **bold**, lists, links, `inline code`, fenced code with a language, > quotes) plus:",`- Tables: GFM pipe tables with a header row and a \`| --- |\` delimiter row. Never add a Status column the data does not already have. Only when a row really has one of these states (e.g. an invoice that is paid), write the plain word alone in the cell and it is shown as a coloured badge automatically (no images, emoji or badge URLs): ${Object.entries(a).map(([t,i])=>`${i.join(", ")} (${t})`).join("; ")}. Numeric columns align right.`,"- Task lists: `- [x] done` and `- [ ] to do`.",...Object.values(n).filter((t)=>t?.doc).map((t)=>`- ${t.doc}`),"Use a component only when it makes the answer clearer; plain prose is fine. Put every block on its own lines with a blank line around it, always close ::: and ``` blocks, and never write raw HTML."].join(`
4
+ `)}var z=(e,n)=>`<div class="b3-md-code"><header><span class="b3-muted">${u(n||"text")}</span><button type="button" class="b3-button" data-b3-emphasis="quiet" data-b3-md-copy>Copy</button></header><pre><code>${u(e)}</code></pre></div>`;function V(e){let n=e,a=n.split(`
5
+ `),t=[];while(a.length&&/^\s*\|/.test(a.at(-1)))t.unshift(a.pop());let i=e.endsWith(`
6
+ `)?t:t.slice(0,-1),s=!1;if(t.length&&!i.some((c)=>/^\s*\|?\s*:?-{2,}/.test(c)))s=!0,n=a.join(`
7
+ `);if(n=n.replace(/(^|\n) {0,3}(`{3}[^\n]*|~{3}[^\n]*|:{3}[^\n]*|`{1,2}|~{1,2}|:{1,2})$/,"$1"),(n.match(/^ {0,3}(`{3}|~{3})/gm)||[]).length%2)return{src:n,pendingTable:s};n=n.replace(/\[([^\]\n]*)\]?\([^)\n]*$/,"$1").replace(/\[([^\]\n]*)$/,"$1").replace(/(\*{1,3}|_{1,3}|~{1,2}|`)$/,"");let r=[...n.matchAll(/^ {0,3}(`{3}|~{3})[^\n]*\n?/gm)].at(-1),o=n.slice(Math.max(n.lastIndexOf(`
8
8
 
9
- `)+1,i?i.index+i[0].length:0)),l="";for(let c of["`","~~"])if(o.split(c).length%2===0)l=c+l;return l+=G(o),{src:l?n.trimEnd()+l:n,pendingTable:s}}function G(e){let n=e.replace(/`[^`\n]*`?/g,"").replace(/\\[*_]/g,"").replace(/\]\([^)\n]*\)?|https?:\/\/\S*/g,"]"),a=[];for(let{0:t,index:r}of n.matchAll(/\*+|_+/g)){let s=n[r-1]??" ",i=n[r+t.length]??" ",o=t.length;if(/\S/.test(s)&&(t[0]==="*"||!/\w/.test(i)))while(o&&a.at(-1)?.[0]===t[0]){let c=a.pop(),d=Math.min(o,c.length);if(o-=d,c.length>d)a.push(c.slice(d))}let l=/[\p{L}\p{N}]/u.test(i)||t.length>1&&/\s/.test(s)&&/^[^\s\w*_-]\S*$/.test(n.slice(r+t.length));if(o&&l&&!(/\w/.test(s)&&(t[0]==="_"||o===1)))a.push(t.slice(0,o))}return a.reverse().join("")}var F={note:"info",info:"info",tip:"success",important:"info",warning:"warning",caution:"danger",danger:"danger"},J="b3-markdown-stream-style",W=`
9
+ `)+1,r?r.index+r[0].length:0)),l="";for(let c of["`","~~"])if(o.split(c).length%2===0)l=c+l;return l+=W(o),{src:l?n.trimEnd()+l:n,pendingTable:s}}function W(e){let n=e.replace(/`[^`\n]*`?/g,"").replace(/\\[*_]/g,"").replace(/\]\([^)\n]*\)?|https?:\/\/\S*/g,"]"),a=[];for(let{0:t,index:i}of n.matchAll(/\*+|_+/g)){let s=n[i-1]??" ",r=n[i+t.length]??" ",o=t.length;if(/\S/.test(s)&&(t[0]==="*"||!/\w/.test(r)))while(o&&a.at(-1)?.[0]===t[0]){let c=a.pop(),h=Math.min(o,c.length);if(o-=h,c.length>h)a.push(c.slice(h))}let l=/[\p{L}\p{N}]/u.test(r)||t.length>1&&/\s/.test(s)&&/^[^\s\w*_-]\S*$/.test(n.slice(i+t.length));if(o&&l&&!(/\w/.test(s)&&(t[0]==="_"||o===1)))a.push(t.slice(0,o))}return a.reverse().join("")}var D={note:"info",info:"info",tip:"success",important:"info",warning:"warning",caution:"danger",danger:"danger"},G="b3-markdown-stream-style",J=`
10
10
  .b3-prose > :is(.b3-md-stats,.b3-table-wrap,.b3-alert,.b3-md-code,.b3-md-bars){margin-block:1rem;}
11
11
  .b3-prose > :first-child{margin-block-start:0;}
12
12
  .b3-md-appear{animation:b3-md-in var(--b3-duration,.2s) ease-out;}
@@ -56,8 +56,8 @@ var q=Symbol.for("bare-v3.styles");function O(e,n,a){if(!e?.head||e.getElementBy
56
56
  .b3-md-pending>.b3-skeleton{block-size:1.5rem;}
57
57
  .b3-md-pending>.b3-skeleton+.b3-skeleton{inline-size:80%;}
58
58
  @media (prefers-reduced-motion:reduce){.b3-md-appear,.b3-md-caret{animation:none;}}
59
- `;class L{Marked=null;sanitize=null;directives=T;fences=S;code=j;tones={paid:"success",done:"success",ok:"success",active:"success",pending:"warning",overdue:"danger",failed:"danger",blocked:"danger",draft:"info"};html="escape";images="alt";markedOptions={}}class Z{el=null;buf="";nodes=[];ended=!1;options;#e;#t=(e)=>this.#n(e);constructor(e){this.options={...new L,...e},this.options.directives={...T,...e?.directives},this.options.fences={...S,...e?.fences};let{Marked:n,sanitize:a}=this.options;if(typeof n!=="function")throw TypeError('MarkdownStream: options.Marked (from "marked") is required');if(typeof a!=="function")throw TypeError("MarkdownStream: options.sanitize is required (e.g. html => DOMPurify.sanitize(html))");this.#e=this.#s()}attach(e){return this.detach(),this.el=e,e.replaceChildren(),this.buf="",this.nodes=[],this.ended=!1,O(e.ownerDocument,J,W),e.addEventListener("click",this.#t),this}detach(){this.el?.removeEventListener("click",this.#t),this.el=null}push(e){if(this.ended){console.warn("MarkdownStream: push() after end() ignored; call attach(el) to start a new stream");return}this.buf+=e,this.render(!0)}end(e){if(e!==void 0)this.buf=String(e);this.ended=!0,this.render(!1)}toHtml(e){return this.options.sanitize(this.#e.parse(e))}render(e){let{el:n}=this;if(!n)throw Error("MarkdownStream: call attach(el) before push()");let a=n.ownerDocument,{src:t,pendingTable:r}=e?V(this.buf):{src:this.buf,pendingTable:!1},s=this.#e.lexer(t).filter((i)=>i.type!=="space");if(s.forEach((i,o)=>{let l=this.nodes[o];if(l&&l.raw===i.raw)return;let c=a.createElement("div");c.innerHTML=this.options.sanitize(this.#e.parser([i]));let m=(c.childElementCount===1&&[...c.childNodes].every((g)=>g.nodeType===1||!g.textContent.trim())?c.firstElementChild:null)??c;if(!l)m.classList.add("b3-md-appear");l?l.el.replaceWith(m):n.append(m),this.nodes[o]={raw:i.raw,el:m}}),this.nodes.splice(s.length).forEach((i)=>i.el.remove()),n.querySelector(":scope .b3-md-caret, :scope > .b3-md-pending")?.remove(),r)n.insertAdjacentHTML("beforeend",'<div class="b3-md-pending" aria-hidden="true"><div class="b3-skeleton"></div><div class="b3-skeleton"></div></div>');else if(e){let i=this.nodes.at(-1)?.el;((i?.matches("p, li, td, th, pre"))?i:i?.querySelector("p:last-of-type, li:last-child, td:last-child")||i||n).insertAdjacentHTML("beforeend",'<span class="b3-md-caret" aria-hidden="true"></span>')}}#n(e){let n=e.target.closest?.("[data-b3-md-copy]");if(!n||!this.el?.contains(n))return;let a=n.closest(".b3-md-code")?.querySelector("code")?.textContent??"",t=(i)=>{n.textContent=i,setTimeout(()=>{n.textContent="Copy"},1200)},r=(i)=>{console.warn("MarkdownStream: copy failed",i),t("Copy failed")},s=this.el.ownerDocument.defaultView?.navigator?.clipboard;if(s?.writeText)s.writeText(a).then(()=>t("Copied"),r);else r(Error("navigator.clipboard is unavailable (insecure context?)"))}#s(){let e=this.options,n={name:"directive",level:"block",start:(t)=>t.match(/^:::/m)?.index,tokenizer(t){let r=/^:::(\w+)(?:\{([^}\n]*)\})?[^\n]*(?:\n|$)/.exec(t);if(!r)return;let s=t.slice(r[0].length).split(`
60
- `),i=null,o=s.length;for(let m=0;m<s.length;m++){let g=/^ {0,3}(`{3,}|~{3,})/.exec(s[m])?.[1];if(i){if(g&&g[0]===i[0]&&g.length>=i.length&&!s[m].trim().slice(g.length))i=null}else if(g)i=g;else if(/^:::[^\S\n]*$/.test(s[m])){o=m;break}}let l=s.slice(0,o).join(`
61
- `).replace(/\n$/,""),c=o<s.length;return{type:"directive",raw:r[0]+s.slice(0,c?o+1:o).join(`
59
+ `;class O{Marked=null;sanitize=null;directives=S;fences=E;code=z;tones={paid:"success",done:"success",ok:"success",active:"success",pending:"warning",overdue:"danger",failed:"danger",blocked:"danger",draft:"info"};html="escape";images="alt";markedOptions={}}class Z{el=null;buf="";nodes=[];ended=!1;options;#e;#t=(e)=>this.#n(e);constructor(e){this.options={...new O,...e},this.options.directives={...S,...e?.directives},this.options.fences={...E,...e?.fences};let{Marked:n,sanitize:a}=this.options;if(typeof n!=="function")throw TypeError('MarkdownStream: options.Marked (from "marked") is required');if(typeof a!=="function")throw TypeError("MarkdownStream: options.sanitize is required (e.g. html => DOMPurify.sanitize(html))");this.#e=this.#s()}attach(e){return this.detach(),this.el=e,e.replaceChildren(),this.buf="",this.nodes=[],this.ended=!1,F(e.ownerDocument,G,J),e.addEventListener("click",this.#t),this}detach(){this.el?.removeEventListener("click",this.#t),this.el=null}push(e){if(this.ended){console.warn("MarkdownStream: push() after end() ignored; call attach(el) to start a new stream");return}this.buf+=e,this.render(!0)}end(e){if(e!==void 0)this.buf=String(e);this.ended=!0,this.render(!1)}toHtml(e){return this.options.sanitize(this.#e.parse(e))}render(e){let{el:n}=this;if(!n)throw Error("MarkdownStream: call attach(el) before push()");let a=n.ownerDocument,{src:t,pendingTable:i}=e?V(this.buf):{src:this.buf,pendingTable:!1},s=this.#e.lexer(t).filter((r)=>r.type!=="space");if(s.forEach((r,o)=>{let l=this.nodes[o];if(l&&l.raw===r.raw)return;let c=a.createElement("div");c.innerHTML=this.options.sanitize(this.#e.parser([r]));let p=(c.childElementCount===1&&[...c.childNodes].every((f)=>f.nodeType===1||!f.textContent.trim())?c.firstElementChild:null)??c;if(!l)p.classList.add("b3-md-appear");l?l.el.replaceWith(p):n.append(p),this.nodes[o]={raw:r.raw,el:p}}),this.nodes.splice(s.length).forEach((r)=>r.el.remove()),n.querySelector(":scope .b3-md-caret, :scope > .b3-md-pending")?.remove(),i)n.insertAdjacentHTML("beforeend",'<div class="b3-md-pending" aria-hidden="true"><div class="b3-skeleton"></div><div class="b3-skeleton"></div></div>');else if(e){let r=this.nodes.at(-1)?.el;((r?.matches("p, li, td, th, pre"))?r:r?.querySelector("p:last-of-type, li:last-child, td:last-child")||r||n).insertAdjacentHTML("beforeend",'<span class="b3-md-caret" aria-hidden="true"></span>')}}#n(e){let n=e.target.closest?.("[data-b3-md-copy]");if(!n||!this.el?.contains(n))return;let a=n.closest(".b3-md-code")?.querySelector("code")?.textContent??"",t=(r)=>{n.textContent=r,setTimeout(()=>{n.textContent="Copy"},1200)},i=(r)=>{console.warn("MarkdownStream: copy failed",r),t("Copy failed")},s=this.el.ownerDocument.defaultView?.navigator?.clipboard;if(s?.writeText)s.writeText(a).then(()=>t("Copied"),i);else i(Error("navigator.clipboard is unavailable (insecure context?)"))}#s(){let e=this.options,n={name:"directive",level:"block",start:(t)=>t.match(/^:::/m)?.index,tokenizer(t){let i=/^:::(\w+)(?:\{([^}\n]*)\})?[^\n]*(?:\n|$)/.exec(t);if(!i)return;let s=t.slice(i[0].length).split(`
60
+ `),r=null,o=s.length;for(let p=0;p<s.length;p++){let f=/^ {0,3}(`{3,}|~{3,})/.exec(s[p])?.[1];if(r){if(f&&f[0]===r[0]&&f.length>=r.length&&!s[p].trim().slice(f.length))r=null}else if(f)r=f;else if(/^:::[^\S\n]*$/.test(s[p])){o=p;break}}let l=s.slice(0,o).join(`
61
+ `).replace(/\n$/,""),c=o<s.length;return{type:"directive",raw:i[0]+s.slice(0,c?o+1:o).join(`
62
62
  `)+(c&&o+1<s.length?`
63
- `:""),name:r[1],attrs:P(r[2]),body:l,tokens:this.lexer.blockTokens(l,[])}},renderer(t){return(e.directives[t.name]??e.directives.callout)(t,{parse:(s)=>this.parser.parse(s),parseInline:(s)=>this.parser.parseInline(s),inline:(s)=>a.parseInline(s),esc:b})}},a=new e.Marked({gfm:!0,extensions:[n]});if(a.use({renderer:{blockquote(t){let r=/^\s*(?:\[!(\w+)\][^\S\n]*\n?|\*\*(\w+):?\*\*:?[^\S\n]*)/.exec(t.text),s=(r?.[1]??r?.[2])?.toLowerCase();if(!s||!r||!Object.hasOwn(F,s))return!1;let i=s[0].toUpperCase()+s.slice(1);return e.directives.callout({attrs:{tone:F[s],title:i},tokens:a.lexer(t.text.slice(r[0].length))},{parse:(o)=>this.parser.parse(o),parseInline:(o)=>this.parser.parseInline(o),inline:(o)=>a.parseInline(o),esc:b})},table(t){let r=t.header.map((i,o)=>t.rows.length>0&&t.rows.every((l)=>B(l[o]?.text||"0"))),s=(i,o,l)=>{let c=this.parser.parseInline(i.tokens),d=l==="td"&&e.tones[i.text.trim().toLowerCase()],m=d?`<span class="b3-badge" data-b3-tone="${b(d)}">${c}</span>`:c;return`<${l}${l==="th"?' scope="col"':""}${r[o]?' class="b3-md-num"':""}>${m}</${l}>`};return`<div class="b3-table-wrap" tabindex="0" role="region" aria-label="Table"><table class="b3-table b3-md-table"><thead><tr>${t.header.map((i,o)=>s(i,o,"th")).join("")}</tr></thead><tbody>${t.rows.map((i)=>`<tr>${i.map((o,l)=>s(o,l,"td")).join("")}</tr>`).join("")}</tbody></table></div>`},code({text:t,lang:r}){let s=(r||"").trim().split(/\s/)[0],i=Object.hasOwn(e.fences,s)?e.fences[s]:null;return i?i(t,{esc:b,lang:s}):e.code(t,s)},html(t){return e.html==="render"?!1:t.block?`<p>${b(t.text.trim())}</p>`:b(t.text)},image({href:t,text:r}){return e.images==="render"||typeof e.images==="function"&&e.images(t??"")?!1:b(r)},list(t){if(!t.items.some((r)=>r.task))return!1;return`<ul class="b3-md-tasks">${t.items.map((r)=>{let s=r.tokens.filter((l)=>l.type!=="checkbox"),i=s.find((l)=>l.type==="text"||l.type==="paragraph");if(i?.tokens)i.tokens=i.tokens.filter((l)=>l.type!=="checkbox");let o=s.map((l)=>l.type==="text"&&!r.loose?this.parser.parseInline(l.tokens??[l]):this.parser.parse([l])).join("");return`<li><input type="checkbox" disabled${r.checked?" checked":""}>${o}</li>`}).join("")}</ul>`}}}),e.markedOptions&&Object.keys(e.markedOptions).length)a.use(e.markedOptions);return a}}function ee(e=document.scrollingElement,{threshold:n=80}={}){let a=e.ownerDocument,t=a.defaultView,r=e===a.scrollingElement?t:e,s=!0,i=e.scrollTop,o=()=>{let d=e.scrollTop;if(e.scrollHeight-d-e.clientHeight>=n)s=!1;else if(d>=i)s=!0;i=d},l=(d)=>{if(d.target?.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"])'))return;if(e.scrollTop>0&&((d.deltaY??0)<0||/^(ArrowUp|PageUp|Home)$/.test(d.key??"")))s=!1},c=[["scroll",o],["wheel",l],["keydown",l]];return c.forEach(([d,m])=>r.addEventListener(d,m,{passive:!0})),{get pinned(){return s},stick(d=!1){if(d||s)e.scrollTop=e.scrollHeight,s=!0},destroy(){c.forEach(([d,m])=>r.removeEventListener(d,m))}}}export{Z as MarkdownStream,L as MarkdownStreamOptions,j as codeBlock,T as directives,b as esc,S as fences,B as isNum,U as jsonChart,P as parseAttrs,X as promptGuide,V as settle,ee as stickToBottom};
63
+ `:""),name:i[1],attrs:P(i[2]),body:l,tokens:this.lexer.blockTokens(l,[])}},renderer(t){return(e.directives[t.name]??e.directives.callout)(t,{parse:(s)=>this.parser.parse(s),parseInline:(s)=>this.parser.parseInline(s),inline:(s)=>a.parseInline(s),esc:u})}},a=new e.Marked({gfm:!0,extensions:[n]});if(a.use({renderer:{blockquote(t){let i=/^\s*(?:\[!(\w+)\][^\S\n]*\n?|\*\*(\w+):?\*\*:?[^\S\n]*)/.exec(t.text),s=(i?.[1]??i?.[2])?.toLowerCase();if(!s||!i||!Object.hasOwn(D,s))return!1;let r=s[0].toUpperCase()+s.slice(1);return e.directives.callout({attrs:{tone:D[s],title:r},tokens:a.lexer(t.text.slice(i[0].length))},{parse:(o)=>this.parser.parse(o),parseInline:(o)=>this.parser.parseInline(o),inline:(o)=>a.parseInline(o),esc:u})},table(t){let i=t.header.map((r,o)=>t.rows.length>0&&t.rows.every((l)=>B(l[o]?.text||"0"))),s=(r,o,l)=>{let c=this.parser.parseInline(r.tokens),h=l==="td"&&e.tones[r.text.trim().toLowerCase()],p=h?`<span class="b3-badge" data-b3-tone="${u(h)}">${c}</span>`:c;return`<${l}${l==="th"?' scope="col"':""}${i[o]?' class="b3-md-num"':""}>${p}</${l}>`};return`<div class="b3-table-wrap" tabindex="0" role="region" aria-label="Table"><table class="b3-table b3-md-table"><thead><tr>${t.header.map((r,o)=>s(r,o,"th")).join("")}</tr></thead><tbody>${t.rows.map((r)=>`<tr>${r.map((o,l)=>s(o,l,"td")).join("")}</tr>`).join("")}</tbody></table></div>`},code({text:t,lang:i}){let s=(i||"").trim().split(/\s/)[0],r=Object.hasOwn(e.fences,s)?e.fences[s]:null;return r?r(t,{esc:u,lang:s}):e.code(t,s)},html(t){return e.html==="render"?!1:t.block?`<p>${u(t.text.trim())}</p>`:u(t.text)},image({href:t,text:i}){return e.images==="render"||typeof e.images==="function"&&e.images(t??"")?!1:u(i)},list(t){if(!t.items.some((i)=>i.task))return!1;return`<ul class="b3-md-tasks">${t.items.map((i)=>{let s=i.tokens.filter((l)=>l.type!=="checkbox"),r=s.find((l)=>l.type==="text"||l.type==="paragraph");if(r?.tokens)r.tokens=r.tokens.filter((l)=>l.type!=="checkbox");let o=s.map((l)=>l.type==="text"&&!i.loose?this.parser.parseInline(l.tokens??[l]):this.parser.parse([l])).join("");return`<li><input type="checkbox" disabled${i.checked?" checked":""}>${o}</li>`}).join("")}</ul>`}}}),e.markedOptions&&Object.keys(e.markedOptions).length)a.use(e.markedOptions);return a}}function ee(e=document.scrollingElement,{threshold:n=80,inner:a=".b3-message-disclosure[open] > :not(summary)"}={}){let t=e.ownerDocument,i=t.defaultView,s=e===t.scrollingElement?i:e,r=!0,o=e.scrollTop,l=new WeakSet,c=new WeakMap,h=(g)=>g.scrollHeight-g.scrollTop-g.clientHeight,p=(g)=>{let d=g.target===t?t.scrollingElement:g.target;if(d&&d!==e){if(!d.matches?.(a))return;let m=c.get(d)??0,b=d.scrollTop;if(h(d)<2||b>=m&&h(d)<n)l.delete(d);else if(b<m)l.add(d);c.set(d,b);return}let y=e.scrollTop,j=h(e);if(y<o&&j>1)r=!1;else if(j<n)r=!0;o=y},f=(g)=>{let d=g.target;if(d?.closest?.('input, textarea, select, [contenteditable]:not([contenteditable="false"])'))return;if(!((g.deltaY??0)<0||/^(ArrowUp|PageUp|Home)$/.test(g.key??"")))return;let y=d?.closest?.(a);if(y&&e.contains(y)&&y.scrollTop>0)l.add(y);else if(e.scrollTop>0)r=!1},M=[["scroll",p,!0],["wheel",f,!1],["keydown",f,!1]];return M.forEach(([g,d,y])=>s.addEventListener(g,d,{passive:!0,capture:y})),{get pinned(){return r},stick(g=!1){for(let d of e.querySelectorAll(a))if(!l.has(d))d.scrollTop=d.scrollHeight,c.set(d,d.scrollTop);if(g||r)e.scrollTop=e.scrollHeight,o=e.scrollTop,r=!0},destroy(){M.forEach(([g,d,y])=>s.removeEventListener(g,d,{capture:y}))}}}export{Z as MarkdownStream,O as MarkdownStreamOptions,z as codeBlock,S as directives,u as esc,E as fences,B as isNum,U as jsonChart,P as parseAttrs,X as promptGuide,V as settle,ee as stickToBottom};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livx.cc/bare-v3",
3
- "version": "0.1.0-alpha.159",
3
+ "version": "0.1.0-alpha.161",
4
4
  "type": "module",
5
5
  "thirdPartyNotices": "./dist/third-party.json",
6
6
  "files": [