.sdui-layout-dashboard{box-sizing:border-box;display:flex;flex-direction:column;height:auto!important;min-height:100%!important;overflow:visible!important;width:100%}.sdui-layout-dashboard .sdui-body{box-sizing:border-box;display:flex;flex:1 0 auto!important;min-height:0!important;overflow:visible!important;width:100%}.sdui-layout-dashboard .sdui-region-main{box-sizing:border-box;flex:1;min-height:min-content!important;overflow-y:visible!important}.sdui-layout-dashboard .sdui-region-main>*,.sdui-layout-dashboard .sdui-region-right>*,.sdui-layout-dashboard .sdui-region-left>*{flex-shrink:0!important;min-height:min-content!important}@media(min-width:768px){.sdui-layout-dashboard .sdui-region-right,.sdui-layout-dashboard .sdui-region-left{align-self:flex-start!important;overflow-y:visible!important;position:sticky!important;top:1.5rem!important}.sdui-layout-dashboard .sdui-sticky-cta,.sdui-sticky-cta{display:none!important}}@media(max-width:767.98px){.sdui-region-top-inner{padding:1.25rem 1rem!important}.sdui-layout-dashboard .sdui-body{flex-direction:column!important;overflow-y:visible!important}.sdui-layout-dashboard .sdui-region-left{border-bottom:1px solid var(--town-surface-border)!important;border-right:none!important;order:1!important;width:100%!important}.sdui-layout-dashboard .sdui-region-main{order:2!important;overflow-y:visible!important;padding:1rem!important;width:100%!important}.sdui-layout-dashboard .sdui-region-right{border-left:none!important;border-top:1px solid var(--town-surface-border)!important;order:3!important;overflow-y:visible!important;padding:1rem!important;position:static!important;width:100%!important}.sdui-layout-dashboard .sdui-sticky-cta,.sdui-sticky-cta{align-items:center!important;background:var(--town-surface)!important;border-top:1px solid var(--town-surface-border)!important;bottom:0!important;box-shadow:0 -4px 16px #00000073!important;box-sizing:border-box!important;display:flex!important;gap:1rem!important;justify-content:space-between!important;left:0!important;padding:.75rem 1.25rem!important;position:fixed!important;right:0!important;width:100%!important;z-index:1000!important}.platform-shell .sdui-layout-dashboard .sdui-sticky-cta,.platform-shell .sdui-sticky-cta{bottom:56px!important}}.sdui-text{margin:0;line-height:1.5}.sdui-text-h1{font-size:2.25rem;font-weight:800;letter-spacing:-.025em;color:var(--town-fg)}.sdui-text-h2{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;color:var(--town-fg)}.sdui-text-h3{font-size:1.35rem;font-weight:700;color:var(--town-fg)}.sdui-text-h4{font-size:1.1rem;font-weight:600;color:var(--town-fg)}.sdui-text-lead{font-size:1.125rem;color:var(--town-text-muted);line-height:1.6}.sdui-text-body{font-size:.95rem;color:var(--town-fg)}.sdui-text-caption{font-size:.8rem;color:var(--town-text-muted)}.sdui-text-color-muted{color:var(--town-text-muted)}.sdui-text-color-primary{color:var(--town-primary)}.sdui-text-color-accent{color:var(--town-accent)}.sdui-text-role-primary{color:var(--town-primary)}.sdui-text-role-secondary{color:var(--town-text-muted)}.sdui-text-role-tertiary{color:var(--town-secondary)}.sdui-text-role-error{color:var(--town-error)}.sdui-text-align-left{text-align:left}.sdui-text-align-center{text-align:center}.sdui-text-align-right{text-align:right}.sdui-text-align-justify{text-align:justify}.sdui-weight-normal,.sdui-text-weight-normal{font-weight:400}.sdui-weight-medium,.sdui-text-weight-medium{font-weight:500}.sdui-weight-semibold,.sdui-text-weight-semibold{font-weight:600}.sdui-weight-bold,.sdui-text-weight-bold{font-weight:700}.sdui-text-code{background:color-mix(in srgb,var(--town-fg) 7%,transparent);border:1px solid color-mix(in srgb,var(--town-fg) 10%,transparent);border-radius:var(--town-radius-sm);color:var(--town-accent);display:inline-block;font-family:var(--town-font-mono);max-width:100%;overflow-wrap:anywhere;padding:.2rem .4rem;word-break:break-all}.sdui-text-muted{color:var(--town-text-muted)}.sdui-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;white-space:nowrap}.sdui-badge-primary{background:color-mix(in srgb,var(--town-primary) 20%,transparent);color:var(--town-primary);border:1px solid color-mix(in srgb,var(--town-primary) 40%,transparent)}.sdui-badge-secondary{background:color-mix(in srgb,var(--town-secondary) 20%,transparent);color:var(--town-secondary);border:1px solid color-mix(in srgb,var(--town-secondary) 40%,transparent)}.sdui-badge-accent{background:color-mix(in srgb,var(--town-accent) 20%,transparent);color:var(--town-accent);border:1px solid color-mix(in srgb,var(--town-accent) 40%,transparent)}.sdui-badge-muted{background:color-mix(in srgb,var(--town-fg) 5%,transparent);color:var(--town-text-muted);border:1px solid var(--town-surface-border)}.sdui-badge-success{background:color-mix(in srgb,var(--town-success) 18%,transparent);color:var(--town-success);border:1px solid color-mix(in srgb,var(--town-success) 40%,transparent)}.sdui-badge-warning{background:color-mix(in srgb,var(--town-warning) 18%,transparent);color:var(--town-warning);border:1px solid color-mix(in srgb,var(--town-warning) 40%,transparent)}.sdui-badge-error{background:color-mix(in srgb,var(--town-error) 18%,transparent);color:var(--town-error);border:1px solid color-mix(in srgb,var(--town-error) 40%,transparent)}.sdui-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;border-radius:var(--town-radius-md);border:1px solid transparent;cursor:pointer;transition:all .15s ease-in-out;text-decoration:none;font-family:var(--town-font-family);-webkit-user-select:none;user-select:none;width:auto;max-width:fit-content}.sdui-button:active{transform:scale(.98)}.sdui-button-primary{background:linear-gradient(135deg,var(--town-primary),var(--town-primary-hover));color:var(--town-primary-fg, var(--town-bg));border-color:color-mix(in srgb,var(--town-primary-fg, var(--town-bg)) 15%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--town-primary) 35%,transparent);font-weight:600}.sdui-button-primary:hover{filter:brightness(1.05);box-shadow:0 6px 20px color-mix(in srgb,var(--town-primary) 50%,transparent);color:var(--town-primary-fg, var(--town-bg))}.sdui-button-secondary{background:var(--town-surface);color:var(--town-fg);border-color:var(--town-surface-border)}.sdui-button-secondary:hover{background:color-mix(in srgb,var(--town-fg) 8%,transparent);border-color:color-mix(in srgb,var(--town-fg) 20%,transparent)}.sdui-button-danger{background:linear-gradient(135deg,var(--town-error),color-mix(in srgb,var(--town-error) 80%,black));color:var(--town-fg)}.sdui-button-sm{padding:.35rem .75rem;font-size:.8125rem;font-weight:500;border-radius:var(--town-radius-sm);min-height:30px}.sdui-button-lg{padding:.875rem 1.75rem;font-size:1rem;font-weight:600;border-radius:var(--town-radius-lg);min-height:48px}.sdui-button-ghost{background:transparent;border-color:transparent;color:var(--town-text-muted);box-shadow:none;width:auto;max-width:fit-content;justify-content:flex-start;text-align:left}.sdui-button-ghost:hover{background:color-mix(in srgb,var(--town-fg) 8%,transparent);border-color:transparent;color:var(--town-fg)}.sdui-button-link{background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;color:var(--town-text-muted)!important;cursor:pointer;display:inline-flex;font-size:.8125rem;font-weight:500;gap:.35rem;height:auto!important;justify-content:flex-start!important;min-height:unset!important;padding:0!important;text-align:left!important;text-decoration:none;width:auto!important;width:fit-content!important;max-width:max-content!important;align-self:flex-start!important}.sdui-button-link:hover{background:transparent!important;color:var(--town-fg)!important;text-decoration:underline}.sdui-button-outline{background:transparent;border-color:var(--town-surface-border);color:var(--town-fg)}.sdui-button-outline:hover{background:color-mix(in srgb,var(--town-fg) 6%,transparent);border-color:color-mix(in srgb,var(--town-fg) 25%,transparent);color:var(--town-fg)}.sdui-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.sdui-link{color:var(--town-accent);text-decoration:none;font-weight:500;font-size:.875rem;transition:color .15s;display:inline-flex;align-items:center;gap:.25rem}.sdui-link:hover{color:var(--town-accent);text-decoration:underline}.sdui-link-default{color:var(--town-fg)}.sdui-link-default:hover{color:var(--town-fg);text-decoration:underline}.sdui-link-primary{color:var(--town-primary)}.sdui-link-primary:hover{color:var(--town-primary-hover);text-decoration:underline}.sdui-link-muted{color:var(--town-text-muted)}.sdui-link-muted:hover{color:var(--town-fg);text-decoration:underline}.sdui-link-subtle{color:var(--town-secondary)}.sdui-link-subtle:hover{color:var(--town-fg);text-decoration:underline}.sdui-link-underline{color:var(--town-primary);text-decoration:underline}.sdui-link-underline:hover{color:var(--town-primary-hover)}.sdui-label{display:block;font-size:.85rem;font-weight:600;color:var(--town-fg);margin-bottom:.35rem}.sdui-label.error{color:var(--town-error)}.sdui-label.disabled{opacity:.5;cursor:not-allowed}.sdui-input{width:100%;background:var(--town-bg);border:1px solid var(--town-surface-border);color:var(--town-fg);border-radius:var(--town-radius-md);padding:.625rem .875rem;font-family:var(--town-font-family);font-size:.9rem;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.sdui-input:focus{outline:none;border-color:var(--town-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--town-primary) 25%,transparent)}.sdui-input.error,.sdui-input.sdui-input-error,.sdui-input-error{background-color:var(--town-bg)!important;border-color:var(--town-error)!important;box-shadow:0 0 0 1px var(--town-error),0 0 12px color-mix(in srgb,var(--town-error) 25%,transparent)!important}.sdui-input.error:focus,.sdui-input.sdui-input-error:focus,.sdui-input-error:focus{background-color:var(--town-bg)!important;border-color:var(--town-error)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--town-error) 35%,transparent),0 0 16px color-mix(in srgb,var(--town-error) 30%,transparent)!important;outline:none}.sdui-input-wrapper{display:flex;flex-direction:column;gap:.35rem;width:100%}.sdui-input-error-msg{font-size:.775rem;color:var(--town-error);font-weight:500;display:flex;align-items:center;gap:.35rem;margin:.25rem 0 0}.sdui-currency-input-group{position:relative;display:flex;align-items:center;width:100%}.sdui-currency-symbol{position:absolute;left:.875rem;color:var(--town-text-muted);font-weight:600;font-size:.95rem;pointer-events:none;z-index:1}.sdui-input-currency{padding-left:1.75rem!important}.sdui-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--town-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem 1rem;color:var(--town-fg);color-scheme:dark;cursor:pointer;padding-right:2.25rem!important}.sdui-select option{background-color:var(--town-surface);color:var(--town-fg)}.sdui-select.sdui-input-error,.sdui-select.error{background-color:var(--town-bg)!important;border-color:var(--town-error)!important;color:var(--town-fg)!important}.sdui-select.sdui-input-error option,.sdui-select.error option{background-color:var(--town-surface)!important;color:var(--town-fg)!important}.sdui-input[type=date],.sdui-input[type=datetime-local],.sdui-input[type=time],.sdui-input[type=month],.sdui-input[type=week],input[type=date],input[type=datetime-local],input[type=time],input[type=month],input[type=week]{color-scheme:dark}.sdui-input::-webkit-calendar-picker-indicator,input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator,input[type=week]::-webkit-calendar-picker-indicator{cursor:pointer;filter:brightness(0) invert(1);opacity:.85;padding:.2rem;border-radius:var(--town-radius-sm);transition:opacity .15s ease,transform .15s ease,background-color .15s ease}.sdui-input::-webkit-calendar-picker-indicator:hover,input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,input[type=time]::-webkit-calendar-picker-indicator:hover,input[type=month]::-webkit-calendar-picker-indicator:hover,input[type=week]::-webkit-calendar-picker-indicator:hover{opacity:1;transform:scale(1.1);background-color:color-mix(in srgb,var(--town-fg) 12%,transparent)}.sdui-textarea{resize:vertical;min-height:5rem;line-height:1.5}.sdui-tags-container{min-height:2.75rem;padding:.375rem .5rem;display:flex;flex-wrap:wrap;align-items:center;cursor:text}.sdui-tags-list{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;width:100%}.sdui-tag-pill{display:inline-flex;align-items:center;gap:.25rem;background:color-mix(in srgb,var(--town-primary) 15%,transparent);border:1px solid color-mix(in srgb,var(--town-primary) 35%,transparent);color:var(--town-fg);padding:.2rem .5rem;border-radius:9999px;font-size:.775rem;font-weight:500;-webkit-user-select:none;user-select:none;animation:sduiFadeIn .15s ease-out}.sdui-tag-label{line-height:1}.sdui-tag-remove-btn{background:transparent;border:none;color:var(--town-text-muted);font-size:.9rem;line-height:1;padding:0 .15rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:color .15s,background-color .15s}.sdui-tag-remove-btn:hover{color:var(--town-fg);background:color-mix(in srgb,var(--town-error) 50%,transparent)}.sdui-tag-input{flex:1;min-width:6rem;background:transparent;border:none;color:var(--town-fg);font-size:.875rem;font-family:inherit;outline:none;padding:.25rem}.sdui-form-title{font-size:1.15rem;font-weight:700;color:var(--town-fg);margin:0 0 .5rem;padding-bottom:.5rem;border-bottom:1px solid var(--town-surface-border)}.sdui-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:1rem;border-top:1px solid var(--town-surface-border)}.sdui-form-error-banner{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--town-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--town-error) 35%,transparent);border-radius:var(--town-radius-md);color:var(--town-error);font-size:.85rem;font-weight:500;animation:sduiFadeIn .2s ease-out}@keyframes sduiFadeIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.sdui-toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.sdui-toggle-track{width:42px;height:24px;background:var(--town-surface-border);border:1px solid var(--town-surface-border);border-radius:9999px;position:relative;transition:background .2s}.sdui-toggle-active .sdui-toggle-track{background:var(--town-primary);border-color:var(--town-primary);box-shadow:0 0 10px color-mix(in srgb,var(--town-primary) 40%,transparent)}.sdui-toggle-thumb{width:18px;height:18px;background:var(--town-fg);border-radius:9999px;position:absolute;top:2px;left:3px;transition:transform .2s}.sdui-toggle-active .sdui-toggle-thumb{transform:translate(18px)}.sdui-dropdown{position:relative;display:inline-block;width:100%}.sdui-dropdown-trigger,.sdui-dropdown-btn{width:100%;background:var(--town-surface);border:1px solid var(--town-surface-border);color:var(--town-fg);padding:.65rem .95rem;border-radius:var(--town-radius-md);font-family:inherit;font-size:.875rem;font-weight:500;display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer;outline:none;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 6px #0003}.sdui-dropdown-trigger:hover,.sdui-dropdown-btn:hover{border-color:var(--town-primary);background:color-mix(in srgb,var(--town-surface) 90%,var(--town-primary))}.sdui-dropdown.open .sdui-dropdown-trigger,.sdui-dropdown.open .sdui-dropdown-btn,.sdui-dropdown-trigger:focus-visible{border-color:var(--town-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--town-primary) 25%,transparent),0 4px 12px #00000059;background:var(--town-surface)}.sdui-dropdown.disabled .sdui-dropdown-trigger,.sdui-dropdown.disabled .sdui-dropdown-btn{opacity:.5;cursor:not-allowed;pointer-events:none}.sdui-dropdown-trigger-content{display:flex;align-items:center;gap:.6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdui-dropdown-trigger-icon{font-size:1.05rem;line-height:1;flex-shrink:0}.sdui-dropdown-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--town-fg)}.sdui-dropdown-label.is-placeholder{color:var(--town-text-muted)}.sdui-dropdown-trigger-controls{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.sdui-dropdown-clear-btn{background:color-mix(in srgb,var(--town-fg) 8%,transparent);border:none;color:var(--town-text-muted);width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;transition:all .15s ease}.sdui-dropdown-clear-btn:hover{background:color-mix(in srgb,var(--town-error) 25%,transparent);color:var(--town-error)}.sdui-dropdown-chevron{width:16px;height:16px;color:var(--town-text-muted);transition:transform .2s cubic-bezier(.16,1,.3,1),color .2s ease}.sdui-dropdown-chevron.open{transform:rotate(180deg);color:var(--town-primary)}.sdui-dropdown-menu{position:absolute;top:calc(100% + .35rem);left:0;width:100%;background:color-mix(in srgb,var(--town-bg) 95%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);box-shadow:0 16px 36px #000000a6,0 0 24px color-mix(in srgb,var(--town-primary) 15%,transparent);z-index:60;max-height:280px;overflow-y:auto;padding:.35rem;display:flex;flex-direction:column;gap:.2rem;animation:sdui-dropdown-fade .18s cubic-bezier(.16,1,.3,1)}@keyframes sdui-dropdown-fade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sdui-dropdown-item{width:100%;padding:.6rem .85rem;font-size:.85rem;color:var(--town-fg);background:transparent;border:1px solid transparent;border-radius:var(--town-radius-sm);display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer;text-align:left;transition:all .15s ease}.sdui-dropdown-item:hover,.sdui-dropdown-item.highlighted{background:color-mix(in srgb,var(--town-primary) 15%,transparent);border-color:color-mix(in srgb,var(--town-primary) 30%,transparent);color:var(--town-fg)}.sdui-dropdown-item.selected{background:color-mix(in srgb,var(--town-primary) 25%,transparent);border-color:var(--town-primary);color:var(--town-fg);font-weight:600}.sdui-dropdown-item.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.sdui-dropdown-item-info{display:flex;align-items:center;gap:.65rem}.sdui-dropdown-item-icon{font-size:1.1rem;line-height:1}.sdui-dropdown-item-label{font-size:.85rem;font-weight:500}.sdui-dropdown-item-desc{font-size:.72rem;color:var(--town-text-muted);font-weight:400;margin-top:.15rem}.sdui-dropdown-item-check{color:var(--town-primary);font-weight:700;font-size:.95rem}.sdui-dropdown-empty{padding:1rem;text-align:center;color:var(--town-text-muted);font-size:.8rem}.sdui-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px}.sdui-icon-primary{color:var(--town-primary)}.sdui-icon-secondary{color:var(--town-text-muted)}.sdui-icon-tertiary{color:var(--town-secondary)}.sdui-icon-error{color:var(--town-error)}.sdui-image-container{display:block;max-width:100%;overflow:hidden;position:relative}.sdui-image{max-width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s ease}.sdui-image-scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--town-bg) 0%,transparent),color-mix(in srgb,var(--town-bg) 85%,transparent));transition:opacity .2s ease}.sdui-divider{box-sizing:border-box;flex-shrink:0}.sdui-divider-horizontal{width:100%;height:0}.sdui-divider-vertical{display:inline-block;vertical-align:middle;min-height:1rem;height:100%;width:0}.sdui-divider-dashed{border-color:color-mix(in srgb,var(--town-primary) 40%,transparent)!important;border-style:dashed!important}.sdui-divider-dotted{border-style:dotted!important}.sdui-divider-solid{border-style:solid!important}.sdui-divider-tear-off,.sdui-ticket-tear-off{box-sizing:border-box;margin:10px 0;position:relative;width:100%}.sdui-divider-tear-off{border-top:1px dashed color-mix(in srgb,var(--town-primary) 40%,transparent)!important}.sdui-camera-feed{position:relative;width:100%;overflow:hidden;background:var(--town-bg);display:flex;align-items:center;justify-content:center;box-shadow:var(--sdui-elevation-low, 0 4px 12px rgba(0, 0, 0, .35));border:1px solid var(--town-surface-border)}.sdui-camera-feed-video{width:100%;height:100%;object-fit:cover;position:absolute;top:0;right:0;bottom:0;left:0}.sdui-camera-feed-video.is-mirrored{transform:scaleX(-1)}.sdui-camera-feed-fallback{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background:color-mix(in srgb,var(--town-bg) 94%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center;gap:.5rem;color:var(--town-fg)}.sdui-camera-feed-fallback-icon{font-size:1.75rem;line-height:1}.sdui-camera-feed-fallback-msg{margin:0;font-size:.825rem;color:var(--town-text-muted);max-width:280px;line-height:1.4}.sdui-card{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-med);box-sizing:border-box;min-height:min-content;overflow:hidden;padding:1.5rem;position:relative;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,border-color .25s}.sdui-card:hover{border-color:var(--town-primary);box-shadow:var(--sdui-elevation-high);transform:translateY(-2px)}.sdui-card-content{box-sizing:border-box;display:flex;flex-direction:column;gap:1rem;width:100%}.sdui-hero{background-color:var(--town-surface);background-position:center;background-size:cover;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-med);overflow:hidden;padding:2.75rem 2.25rem;position:relative;transition:border-color .25s ease,box-shadow .25s ease}.sdui-hero:hover{border-color:var(--town-primary);box-shadow:var(--sdui-elevation-high)}.sdui-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,color-mix(in srgb,var(--town-bg) 88%,transparent),color-mix(in srgb,var(--town-bg) 50%,transparent) 55%,color-mix(in srgb,var(--town-bg) 20%,transparent));z-index:0}.sdui-hero-content{position:relative;z-index:1;max-width:780px;display:flex;flex-direction:column;gap:1rem}.sdui-hero .sdui-text-lead{white-space:nowrap}.sdui-tabs{display:flex;flex-direction:column;width:100%}.sdui-tab-list{display:flex;gap:.5rem;border-bottom:1px solid var(--town-surface-border);margin-bottom:1.25rem;padding-bottom:.25rem;overflow-x:auto}.sdui-tab-trigger{background:transparent;border:none;padding:.6rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--town-text-muted);border-radius:var(--town-radius-sm);cursor:pointer;transition:all .2s ease;font-family:var(--town-font-family);border-bottom:2px solid transparent;white-space:nowrap}.sdui-tab-trigger:hover{color:var(--town-fg);background:color-mix(in srgb,var(--town-fg) 4%,transparent)}.sdui-tab-trigger.active{background:color-mix(in srgb,var(--town-primary) 12%,transparent);color:var(--town-accent);font-weight:700;border-bottom:2px solid var(--town-primary);box-shadow:inset 0 -1px 0 var(--town-primary)}.sdui-tab-panel{padding:.5rem 0;animation:sdui-fade-in .25s ease-out}.sdui-flex{box-sizing:border-box}.sdui-flex-scrollable{scrollbar-width:none;-webkit-overflow-scrolling:touch}.sdui-flex-scrollable::-webkit-scrollbar{display:none}.sdui-grid{--sdui-current-columns: var(--grid-columns, 1);box-sizing:border-box;width:100%}.sdui-repeater-empty{align-items:center;background:color-mix(in srgb,var(--town-surface) 60%,transparent);border:1px dashed var(--town-surface-border);border-radius:var(--town-radius-md);color:var(--town-text-muted);display:flex;font-size:.875rem;justify-content:center;padding:2rem 1rem;text-align:center;width:100%}.sdui-carousel{position:relative;width:100%;overflow:hidden;border-radius:var(--town-radius-md)}.sdui-carousel-track{cursor:grab;display:flex;gap:1.25rem;overflow-x:auto;padding:.5rem .25rem 1rem;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;user-select:none;-webkit-overflow-scrolling:touch;-webkit-user-select:none}.sdui-carousel-track.is-dragging{cursor:grabbing;scroll-behavior:auto}.sdui-carousel-track.is-dragging *{cursor:grabbing}.sdui-carousel-track::-webkit-scrollbar{display:none}.sdui-carousel-slide{flex:0 0 calc(100% - 2rem);max-width:500px}.sdui-carousel-multiple .sdui-carousel-slide{flex:0 0 calc((100% - ((var(--carousel-visible-count, 3) - 1) * 1.25rem)) / var(--carousel-visible-count, 3));min-width:250px}.sdui-carousel-track:focus-visible,.sdui-carousel-single:focus-visible{outline:2px solid var(--town-primary);outline-offset:-2px}.sdui-carousel-slide .sdui-event-card-portrait,.sdui-carousel-slide .sdui-venue-card-portrait,.sdui-carousel-slide .sdui-user-ticket-card,.sdui-carousel-slide .sdui-ticket-card-outer{max-width:100%}@media(max-width:768px){.sdui-carousel-multiple .sdui-carousel-slide{flex:0 0 82%;min-width:250px}}.sdui-carousel-item-active{width:100%;transition:opacity .3s ease}.sdui-carousel-controls{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:.75rem;pointer-events:none;z-index:10}.sdui-carousel-controls-overlay{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;padding:0 .5rem;pointer-events:none;z-index:10}.sdui-carousel-arrow{pointer-events:auto;background:color-mix(in srgb,var(--town-surface) 82%,transparent);border:1px solid var(--town-surface-border);color:var(--town-fg);width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;cursor:pointer;transition:all .22s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 24px #0000008c}.sdui-carousel-arrow:hover:not(:disabled){background:var(--town-primary);color:var(--town-primary-fg, var(--town-bg));border-color:var(--town-primary-hover);transform:scale(1.12);box-shadow:0 12px 30px color-mix(in srgb,var(--town-primary) 45%,transparent)}.sdui-carousel-arrow-disabled,.sdui-carousel-arrow:disabled{opacity:.18;pointer-events:none!important;cursor:default;box-shadow:none}.sdui-dialog-overlay,.sdui-modal-overlay,.sdui-drawer-overlay,.sdui-dialog-backdrop{align-items:center;animation:sdui-fade-in .2s ease-out;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:color-mix(in srgb,var(--town-bg) 80%,transparent);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:1.5rem;position:fixed;z-index:2500!important}.sdui-dialog,.sdui-dialog-panel,.sdui-modal,.sdui-modal-panel,.sdui-user-ticket-dialog{animation:sdui-scale-in .2s cubic-bezier(.16,1,.3,1);background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-high);box-sizing:border-box!important;display:flex!important;flex-direction:column!important;max-height:calc(100dvh - 2rem)!important;max-width:500px;padding:1.75rem;width:100%}.sdui-dialog-panel:has(.sdui-permission-matrix){max-width:680px}.sdui-dialog-header,.sdui-modal-header,.sdui-ticket-dialog-header{align-items:center;border-bottom:1px solid var(--town-surface-border);display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:1rem;padding-bottom:.875rem}.sdui-dialog-title,.sdui-modal-title,.sdui-ticket-dialog-title{color:var(--town-fg);font-size:1.15rem;font-weight:700;margin:0}.sdui-modal-message{color:var(--town-text-muted);flex:1 1 auto;font-size:.9rem;line-height:1.5;margin:.75rem 0 1.5rem;min-height:0;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.sdui-modal-actions,.sdui-ticket-dialog-footer{display:flex;flex-shrink:0;gap:.75rem;justify-content:flex-end}.sdui-modal-btn{padding:.5rem 1.25rem;border-radius:var(--town-radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.sdui-modal-btn-cancel{background:color-mix(in srgb,var(--town-fg) 5%,transparent);color:var(--town-text-muted);border-color:var(--town-surface-border)}.sdui-modal-btn-cancel:hover{color:var(--town-fg);background:color-mix(in srgb,var(--town-fg) 8%,transparent)}.sdui-modal-btn-confirm{background:linear-gradient(135deg,var(--town-primary),var(--town-primary-hover));color:var(--town-primary-fg, var(--town-bg));box-shadow:0 2px 8px color-mix(in srgb,var(--town-primary) 35%,transparent)}.sdui-modal-btn-confirm:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--town-primary) 50%,transparent)}.sdui-dialog-close-btn,.sdui-drawer-close-btn,.sdui-modal-close-btn{background:transparent;border:none;color:var(--town-text-muted);font-size:1.1rem;cursor:pointer;padding:.25rem .5rem;border-radius:var(--town-radius-sm);transition:color .15s}.sdui-dialog-close-btn:hover,.sdui-drawer-close-btn:hover,.sdui-modal-close-btn:hover{color:var(--town-fg);background:color-mix(in srgb,var(--town-fg) 6%,transparent)}.sdui-dialog-content,.sdui-ticket-dialog-body{color:var(--town-text-muted);flex:1 1 auto;line-height:1.5;min-height:0;overflow-y:auto!important;-webkit-overflow-scrolling:touch}.sdui-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0}.sdui-drawer-panel{background:var(--town-surface);border:1px solid var(--town-surface-border);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-high);display:flex;flex-direction:column;height:100%;padding:1.5rem;position:relative;z-index:10}.sdui-drawer-left{margin-right:auto;border-right:1px solid var(--town-surface-border);animation:sdui-slide-left .25s cubic-bezier(.16,1,.3,1)}.sdui-drawer-right{margin-left:auto;border-left:1px solid var(--town-surface-border);animation:sdui-slide-right .25s cubic-bezier(.16,1,.3,1)}.sdui-drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.875rem;border-bottom:1px solid var(--town-surface-border);margin-bottom:1rem}.sdui-drawer-title{font-size:1.15rem;font-weight:700;color:var(--town-fg);margin:0}.sdui-drawer-body{flex:1;overflow-y:auto;color:var(--town-text-muted)}.sdui-table-wrapper{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-low);cursor:grab;overflow-x:auto;position:relative;touch-action:pan-x pan-y;transition:border-color .25s ease,box-shadow .25s ease;user-select:none;-webkit-overflow-scrolling:touch;-webkit-user-select:none;width:100%}.sdui-table-action-menu-btn{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm);box-shadow:none;color:var(--town-text-muted);cursor:pointer;display:inline-flex;font-size:1.15rem;font-weight:700;height:28px;justify-content:center;line-height:1;min-width:unset;outline:none;padding:0;transition:background-color .15s ease,color .15s ease;width:28px}.sdui-table-action-menu-btn:hover{background:color-mix(in srgb,var(--town-fg) 8%,transparent);color:var(--town-fg)}.sdui-table-action-popup{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:var(--town-surface);border:1px solid var(--town-surface-border);box-shadow:var(--sdui-elevation-high)}.sdui-card-stack,.sdui-card-content-stack{display:grid!important;grid-template-areas:"stack"!important;position:relative!important}.sdui-card-stack>*,.sdui-card-content-stack>*{grid-area:stack!important}.sdui-card-portrait{aspect-ratio:var(--sdui-card-portrait-aspect-ratio, 3 / 4);background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-med);box-sizing:border-box;max-width:var(--sdui-card-portrait-max-width, 320px);overflow:hidden;padding:0!important;position:relative;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .25s;width:100%}.sdui-card-portrait:hover{border-color:var(--town-primary);box-shadow:var(--sdui-elevation-high);transform:translateY(-4px)}.sdui-card-standard{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-med);overflow:hidden;padding:0!important;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .25s}.sdui-card-standard:hover{border-color:var(--town-primary);box-shadow:var(--sdui-elevation-high);transform:translateY(-4px)}.sdui-card-overlay-mode{overflow:hidden!important;position:relative!important}.sdui-card-overlay-mode>.sdui-card-content,.sdui-card-content-overlay{box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:space-between!important;min-height:100%;position:relative;width:100%}.sdui-card-content-overlay>.sdui-studio-node-wrapper:first-child,.sdui-card-content-overlay>.sdui-studio-node-wrapper:first-child .sdui-image-container,.sdui-card-content-overlay>.sdui-image-container,.sdui-card-overlay-mode>.sdui-image-container{aspect-ratio:unset!important;border-radius:inherit;height:100%!important;top:0!important;right:0!important;bottom:0!important;left:0!important;pointer-events:none;position:absolute!important;width:100%!important;z-index:0!important}.sdui-card-content-overlay>.sdui-studio-node-wrapper:not(:first-child){box-sizing:border-box!important;position:relative!important;width:100%!important;z-index:2!important}.sdui-card-overlay-mode .sdui-image-container img,.sdui-card-content-overlay .sdui-image-container img{height:100%!important;object-fit:cover!important;width:100%!important}.sdui-card-overlay-mode .sdui-card-header-bar,.sdui-card-content-overlay .sdui-card-header-bar{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:12px 14px!important;position:relative!important;width:100%!important;z-index:2!important}.sdui-card-overlay-mode .sdui-card-actions,.sdui-card-content-overlay .sdui-card-actions,.sdui-card-header-bar .sdui-card-actions{align-items:center;display:flex;gap:8px;margin-left:auto;width:auto}.sdui-card-overlay-mode .sdui-card-floating-panel,.sdui-card-content-overlay .sdui-card-floating-panel{box-sizing:border-box!important;margin:auto 10px 10px!important;position:relative!important;width:calc(100% - 20px)!important;z-index:2!important}.sdui-venue-location-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;width:100%}.sdui-venue-location-panel{box-sizing:border-box;display:flex;flex:1 1 300px;flex-direction:column;gap:.75rem;min-width:260px}@media(max-width:640px){.sdui-venue-location-panel{flex:1 1 100%;min-width:100%}}@media(min-width:768px)and (max-width:1023px){.sdui-grid{--sdui-current-columns: min(var(--grid-columns, 2), 2)}}@media(max-width:767px){.sdui-grid{--sdui-current-columns: 1 !important}.sdui-flex-toolbar,.sdui-filter-bar,[id*=actionbar],[id*=filter-toolbar],[id*=filter-bar]{flex-direction:column!important;align-items:stretch!important;gap:.75rem!important}[id*=actionbar]>*,[id*=filter-toolbar]>*,[id*=filter-bar]>*{width:100%!important}.sdui-flex-scrollable::-webkit-scrollbar{display:none}.sdui-dialog-overlay,.sdui-modal-overlay,.sdui-dialog-backdrop{align-items:flex-end!important;padding:0!important}.sdui-dialog-panel,.sdui-modal-panel,.sdui-user-ticket-dialog{border-bottom:none!important;border-radius:16px 16px 0 0!important;box-sizing:border-box!important;max-height:calc(100dvh - 3rem)!important;max-width:100%!important;padding:1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom,0px))!important;width:100%!important}.sdui-hero{padding:1.5rem 1.25rem!important}.sdui-hero-content .sdui-text-h1{font-size:1.65rem!important;line-height:1.25!important}}.sdui-form{display:flex;flex-direction:column;gap:1.25rem;width:100%}.sdui-form-error-banner{background:#ef44441f;border:1px solid var(--town-error);color:var(--town-error);border-radius:var(--town-radius-md);padding:.75rem 1rem;font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:.6rem;box-shadow:0 0 16px #ef444426;margin-bottom:.75rem}.sdui-form-error-icon{flex-shrink:0;color:var(--town-error)}.sdui-form-fields{display:flex;flex-direction:column;gap:1rem;width:100%}.sdui-form-actions{display:flex;justify-content:flex-end;padding-top:.5rem}.sdui-field{display:flex;flex-direction:column;gap:.35rem;width:100%}.sdui-field.error .sdui-field-label{color:var(--town-error)}.sdui-field.error .sdui-input{background-color:var(--town-bg)!important;border-color:var(--town-error)!important;box-shadow:0 0 0 1px var(--town-error),0 0 10px #ef444433!important}.sdui-field-label{font-size:.825rem;font-weight:600;color:var(--town-fg);display:flex;align-items:center;gap:.25rem}.sdui-field-required,.sdui-label-required{color:var(--town-error);font-weight:700}.sdui-field-help{font-size:.75rem;color:var(--town-text-muted)}.sdui-field-message.error{font-size:.75rem;color:var(--town-error);font-weight:500}.sdui-event-card-portrait,.sdui-vendor-card-portrait,.sdui-venue-card-portrait{position:relative;width:100%;max-width:var(--sdui-card-portrait-max-width, 300px);aspect-ratio:var(--sdui-card-portrait-aspect-ratio, 3 / 4);margin-inline:auto;border-radius:1.25rem;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:1.15rem;border:1px solid var(--town-surface-border);box-shadow:0 16px 36px #00000073;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .25s ease,box-shadow .3s ease;cursor:pointer;box-sizing:border-box;background:var(--town-surface)}.sdui-event-card-portrait:hover,.sdui-vendor-card-portrait:hover,.sdui-venue-card-portrait:hover{transform:translateY(-5px);border-color:var(--town-primary);box-shadow:0 24px 52px #0009,0 0 28px #6366f140}.sdui-card-media-wrap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;z-index:1}.sdui-card-bg-image{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.16,1,.3,1)}.sdui-event-card-portrait:hover .sdui-card-bg-image,.sdui-vendor-card-portrait:hover .sdui-card-bg-image,.sdui-venue-card-portrait:hover .sdui-card-bg-image{transform:scale(1.06)}.sdui-card-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0b11207a,#0b11201f 32%,#0b1120a6 68%,#0b1120f5);pointer-events:none}.sdui-card-header-bar{display:flex;align-items:center;justify-content:space-between;width:100%;position:relative;z-index:2;padding:12px 14px}.sdui-card-badge-price{background:var(--town-success);color:var(--town-bg);font-size:.85rem;font-weight:800;padding:5px 13px;border-radius:9999px;box-shadow:0 4px 14px #6ee7b759;letter-spacing:-.01em;display:inline-flex;align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sdui-card-badge-tag{background:#0f172ac7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16);color:var(--town-accent);font-size:.75rem;font-weight:700;text-transform:uppercase;padding:5px 12px;border-radius:9999px;letter-spacing:.05em;display:inline-flex;align-items:center;box-shadow:0 4px 12px #0000004d}.sdui-card-actions{display:flex;align-items:center;gap:8px;margin-left:auto;width:auto}.sdui-card-action-btn,.sdui-button-icon{background:#0f172ab3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16);color:var(--town-fg);width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 4px 12px #00000059;padding:0;min-width:36px;max-width:36px}.sdui-card-action-btn:hover,.sdui-button-icon:hover{background:#1e293be6;border-color:#ffffff59;transform:scale(1.1);color:var(--town-fg)}.sdui-card-like-btn.active,.sdui-card-like-btn.is-active,.sdui-button-icon.sdui-button-error.active,.sdui-button-icon.sdui-button-error.is-active{color:var(--town-error);border-color:#f43f5e73;background:#f43f5e33;box-shadow:0 0 16px #f43f5e59}.sdui-card-planner-btn.active,.sdui-card-planner-btn.is-active{color:var(--town-accent);border-color:#38bdf873;background:#38bdf833;box-shadow:0 0 16px #38bdf859}.sdui-card-btn-svg,.sdui-button-icon .sdui-icon,.sdui-button-icon svg{width:18px;height:18px;display:block}.sdui-card-floating-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172ad1;border:1px solid rgba(255,255,255,.12);border-radius:12px;border-top:1px solid rgba(255,255,255,.2);box-shadow:var(--sdui-elevation-med);box-sizing:border-box;display:flex;flex-direction:column;gap:.32rem;margin:auto 10px 10px;min-height:110px;padding:.75rem .85rem;position:relative;transition:background .2s ease,border-color .2s ease,box-shadow .25s ease;z-index:2}.sdui-card-floating-panel .sdui-text,.sdui-card-floating-panel .sdui-text-role-primary,.sdui-card-floating-panel .sdui-text-h3,.sdui-card-floating-panel .sdui-text-h4,.sdui-card-floating-panel .sdui-text-body{color:var(--town-fg)!important}.sdui-card-floating-panel .sdui-text-role-secondary{color:var(--town-text-muted)!important}.sdui-card-floating-panel .sdui-text-caption{color:var(--town-accent)!important}.sdui-event-card-portrait:hover .sdui-card-floating-panel,.sdui-vendor-card-portrait:hover .sdui-card-floating-panel,.sdui-venue-card-portrait:hover .sdui-card-floating-panel{background:#0f172ae6;border-color:#ffffff40;box-shadow:var(--sdui-elevation-high)}.sdui-card-date-badge{display:flex;align-items:center;gap:.35rem;color:var(--town-accent);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.sdui-card-mini-icon{width:13px;height:13px;flex-shrink:0}.sdui-card-event-name,.sdui-venue-title,.sdui-card-floating-panel .sdui-text-h4,.sdui-card-floating-panel h4{margin:0;font-size:1.1rem;font-weight:700;color:var(--town-fg);line-height:1.3;min-height:calc(1.1rem * 1.3 * 2);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.sdui-vendor-card-portrait .sdui-card-event-name{min-height:auto}.sdui-vendor-card-description,.sdui-card-floating-panel .sdui-vendor-card-description{margin:0!important;font-size:.8125rem!important;line-height:1.4!important;color:var(--color-text-secondary, var(--town-text-muted, var(--town-text-muted)))!important;display:-webkit-box!important;-webkit-line-clamp:2!important;line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;text-overflow:ellipsis!important}.sdui-card-venue-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;gap:.4rem;margin-top:.02rem}.sdui-card-venue-row>:first-child,.sdui-card-venue-left{display:flex;align-items:center;gap:.35rem;color:var(--town-text-muted);font-size:.8rem;overflow:hidden;flex:1 1 auto;min-width:0}.sdui-card-venue-left .sdui-icon{flex-shrink:0}.sdui-card-venue-text{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.sdui-card-distance-pill{background:#38bdf826;border:1px solid rgba(56,189,248,.35);color:var(--town-accent);font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:5px;flex-shrink:0}.sdui-card-rating-pill{background:#fbbf2426;border:1px solid rgba(251,191,36,.35);color:var(--town-warning);font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:6px;flex-shrink:0;display:inline-flex;align-items:center;gap:3px}.sdui-card-description-text{margin:.15rem 0 0;color:var(--town-text-muted);font-size:.78rem;line-height:1.45;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.sdui-event-card{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);overflow:hidden;box-shadow:0 12px 32px #00000059;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .25s;cursor:pointer;display:flex;flex-direction:column}.sdui-event-card:hover{transform:translateY(-3px);border-color:var(--town-primary);box-shadow:0 16px 40px #00000080,0 0 20px #6366f133}.sdui-event-cover-container{height:200px;width:100%;position:relative;overflow:hidden;background:#ffffff08}.sdui-event-cover-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.sdui-event-card:hover .sdui-event-cover-img{transform:scale(1.05)}.sdui-event-status-badge{position:absolute;top:14px;right:14px;background:#090d16e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--town-accent);border:1px solid rgba(56,189,248,.4);font-size:.7rem;font-weight:700;padding:4px 10px;border-radius:9999px;text-transform:uppercase;letter-spacing:.06em;box-shadow:0 2px 8px #0006}.sdui-event-body{padding:1.35rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.sdui-event-title{font-size:1.15rem;font-weight:700;color:var(--town-fg);line-height:1.3;margin:0}.sdui-event-card:hover .sdui-event-title{color:var(--town-accent)}.sdui-event-meta-item{font-size:.825rem;color:var(--town-text-muted);display:flex;align-items:center;gap:.5rem;margin:0}.sdui-meta-icon{font-size:.95rem}.sdui-event-description{font-size:.825rem;color:var(--town-text-muted);line-height:1.55;margin-top:.35rem;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sdui-event-footer{margin-top:auto;padding-top:1.1rem;border-top:1px solid var(--town-surface-border);display:flex;align-items:center;justify-content:space-between}.sdui-event-details-link{font-size:.825rem;font-weight:500;color:var(--town-text-muted);transition:color .15s}.sdui-event-card:hover .sdui-event-details-link{color:var(--town-fg)}.sdui-event-action-btn{background:linear-gradient(135deg,var(--town-primary),var(--town-primary-hover));color:var(--town-primary-fg, var(--town-bg));border:none;padding:7px 16px;border-radius:var(--town-radius-sm);font-size:.825rem;font-weight:600;cursor:pointer;box-shadow:0 3px 10px #6366f159;transition:all .15s ease}.sdui-event-action-btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px #6366f18c}.sdui-event-related-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--town-surface-border);display:flex;flex-direction:column;gap:1.25rem;width:100%}.sdui-venue-card{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);overflow:hidden;box-shadow:0 12px 32px #00000059;display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .25s;cursor:pointer}.sdui-venue-card:hover{transform:translateY(-3px);border-color:var(--town-primary);box-shadow:0 16px 40px #00000080,0 0 20px #6366f133}.sdui-venue-cover-container{height:180px;width:100%;position:relative;overflow:hidden;background:#ffffff08}.sdui-venue-cover-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.sdui-venue-card:hover .sdui-venue-cover-img{transform:scale(1.05)}.sdui-venue-cover-placeholder{height:140px;display:flex;align-items:center;justify-content:center;font-size:3rem;background:linear-gradient(135deg,#ffffff08,#6366f11a)}.sdui-venue-body{padding:1.35rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.sdui-venue-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--town-fg);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.sdui-venue-card:hover .sdui-venue-title{color:var(--town-accent)}.sdui-venue-meta-item{font-size:.825rem;color:var(--town-text-muted);display:flex;align-items:center;gap:.5rem;margin:0}.sdui-venue-footer{margin-top:auto;padding-top:1.1rem;border-top:1px solid var(--town-surface-border);display:flex;align-items:center;justify-content:space-between}.sdui-venue-explore-link{font-size:.825rem;font-weight:500;color:var(--town-text-muted);transition:color .15s}.sdui-venue-card:hover .sdui-venue-explore-link{color:var(--town-fg)}.sdui-venue-action-btn{background:#ffffff12;border:1px solid var(--town-surface-border);color:var(--town-fg);padding:7px 16px;border-radius:var(--town-radius-sm);font-size:.825rem;font-weight:600;cursor:pointer;transition:all .15s ease}.sdui-venue-action-btn:hover{background:#ffffff1f;border-color:#fff3;color:var(--town-fg)}.sdui-user-ticket-card{background:var(--town-surface);border:1px solid rgba(99,102,241,.4);border-radius:var(--town-radius-lg);box-shadow:0 16px 40px #00000073;container-type:inline-size;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:transform .25s ease,border-color .2s,box-shadow .25s}.sdui-user-ticket-card:hover{border-color:var(--town-primary);box-shadow:0 20px 48px #0000008c,0 0 24px #6366f140;transform:translateY(-3px)}.sdui-ticket-header{align-items:center;background:linear-gradient(135deg,#6366f140,#131d2e99);border-bottom:1px dashed rgba(99,102,241,.4);display:flex;gap:.75rem;justify-content:space-between;padding:1.1rem 1.35rem}.sdui-ticket-header-info{display:flex;flex:1 1 auto;flex-direction:column;min-width:0}.sdui-ticket-tier{color:var(--town-accent);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.sdui-ticket-event-name{color:var(--town-fg);font-size:1rem;font-weight:700;line-height:1.3;margin:3px 0 0;overflow-wrap:anywhere;word-break:break-word}.sdui-ticket-status-pill{border-radius:9999px;flex-shrink:0;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:3px 9px;text-transform:uppercase}.sdui-ticket-status-pill.status-valid{background:#10b9812e;color:var(--town-success);border:1px solid rgba(16,185,129,.4)}.sdui-ticket-status-pill.status-inactive{background:#94a3b826;color:var(--town-text-muted);border:1px solid rgba(148,163,184,.3)}.sdui-ticket-body{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:1.25rem 1.35rem}.sdui-ticket-details{display:flex;flex:1 1 auto;flex-direction:column;gap:.4rem;font-size:.825rem;min-width:0}.sdui-ticket-detail-item{color:var(--town-fg);margin:0;min-width:0;overflow-wrap:anywhere;word-break:break-word}.sdui-ticket-detail-label{color:var(--town-text-muted)}.sdui-ticket-detail-value{color:var(--town-fg);font-weight:600}.sdui-ticket-seat-value{color:var(--town-primary);font-family:var(--town-font-mono);font-weight:700;overflow-wrap:anywhere;word-break:break-word}.sdui-ticket-id{color:var(--town-text-muted);font-family:var(--town-font-mono);font-size:.725rem;margin:4px 0 0;overflow-wrap:anywhere;word-break:break-word}.sdui-ticket-seat-value,.sdui-ticket-id{overflow-wrap:anywhere;word-break:break-word}.sdui-ticket-qr-container{align-items:center;background:#00000059;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);display:flex;flex-direction:column;flex-shrink:0;justify-content:center;padding:.5rem .75rem}.sdui-ticket-qr-icon{align-items:center;color:var(--town-fg);display:flex;height:44px;justify-content:center;width:44px}.sdui-qr-svg{height:38px;width:38px}.sdui-ticket-qr-signature{color:var(--town-success);font-family:var(--town-font-mono);font-size:.65rem;font-weight:700;margin-top:2px;overflow-wrap:anywhere;word-break:break-all}.sdui-ticket-footer{align-items:center;border-top:1px dashed rgba(99,102,241,.25);display:flex;justify-content:flex-end;padding:.65rem 1.25rem .85rem}.sdui-ticket-present-qr-btn{font-size:.75rem}@container (max-width: 260px){.sdui-ticket-header{flex-wrap:wrap!important;gap:.5rem!important;padding:.85rem 1rem!important}.sdui-ticket-body{align-items:flex-start!important;flex-direction:column!important;gap:.75rem!important;padding:1rem!important}.sdui-ticket-qr-container{align-self:center!important;max-width:140px!important;width:100%!important}}@media(max-width:320px){.sdui-ticket-header{flex-wrap:wrap!important;gap:.5rem!important;padding:.85rem 1rem!important}.sdui-ticket-body{align-items:flex-start!important;flex-direction:column!important;gap:.75rem!important;padding:1rem!important}.sdui-ticket-qr-container{align-self:center!important;max-width:140px!important;width:100%!important}}.sdui-carousel-slide .sdui-user-ticket-card,.sdui-carousel-slide .sdui-ticket-card-outer{max-width:100%!important}.sdui-purchasable-card{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);padding:1.35rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;transition:transform .2s ease,border-color .2s,box-shadow .2s;box-shadow:0 4px 16px #0003}.sdui-purchasable-card:hover{transform:translateY(-2px);border-color:var(--town-primary);box-shadow:0 8px 24px #00000059,0 0 16px #6366f126}.sdui-purchasable-header{display:flex;align-items:center;justify-content:space-between}.sdui-purchasable-badge{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--town-accent);background:#38bdf81f;border:1px solid rgba(56,189,248,.35);padding:3px 8px;border-radius:var(--town-radius-sm)}.sdui-purchasable-stock{font-size:.75rem;color:var(--town-text-muted);font-family:var(--town-font-mono)}.sdui-purchasable-body{display:flex;flex-direction:column;gap:.35rem}.sdui-purchasable-title{font-size:1rem;font-weight:700;color:var(--town-fg);margin:0}.sdui-purchasable-description{font-size:.8rem;color:var(--town-text-muted);line-height:1.45;margin:0}.sdui-purchasable-footer{padding-top:1rem;border-top:1px solid var(--town-surface-border);display:flex;align-items:center;justify-content:space-between}.sdui-purchasable-price-container{display:flex;align-items:baseline;font-family:var(--town-font-mono)}.sdui-purchasable-currency{font-size:.9rem;font-weight:700;color:var(--town-accent);margin-right:2px}.sdui-purchasable-price-val{font-size:1.45rem;font-weight:800;color:var(--town-fg)}.sdui-purchasable-btn{background:linear-gradient(135deg,var(--town-primary),var(--town-primary-hover));color:var(--town-primary-fg, var(--town-bg));border:none;padding:8px 16px;border-radius:var(--town-radius-sm);font-size:.825rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #6366f159;transition:all .15s ease}.sdui-purchasable-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #6366f18c}.sdui-cart{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);padding:1.35rem;display:flex;flex-direction:column;gap:1.1rem;box-shadow:0 12px 32px #00000059}.sdui-cart-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.85rem;border-bottom:1px solid var(--town-surface-border)}.sdui-cart-title{font-size:1rem;font-weight:700;color:var(--town-fg);display:flex;align-items:center;gap:.5rem;margin:0}.sdui-cart-item-count{font-size:.725rem;font-weight:700;background:#ffffff14;color:var(--town-fg);padding:2px 8px;border-radius:9999px}.sdui-cart-hold-pill{font-size:.7rem;font-weight:600;color:var(--town-warning);background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);padding:3px 9px;border-radius:9999px}.sdui-cart-items-list{display:flex;flex-direction:column;gap:.5rem;max-height:240px;overflow-y:auto}.sdui-cart-empty{text-align:center;padding:1.75rem 0;font-size:.825rem;color:var(--town-text-muted);font-style:italic;margin:0}.sdui-cart-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:.825rem}.sdui-cart-item-info{display:flex;flex-direction:column;gap:2px}.sdui-cart-item-name{font-weight:600;color:var(--town-fg)}.sdui-cart-item-qty{font-size:.725rem;color:var(--town-text-muted)}.sdui-cart-item-price{font-family:var(--town-font-mono);font-weight:600;color:var(--town-fg)}.sdui-cart-footer{padding-top:.85rem;border-top:1px solid var(--town-surface-border);display:flex;flex-direction:column;gap:.85rem}.sdui-cart-total-row{display:flex;align-items:center;justify-content:space-between}.sdui-cart-total-label{font-size:.9rem;font-weight:600;color:var(--town-text-muted)}.sdui-cart-subtotal-price{font-size:1.25rem;font-weight:800;font-family:var(--town-font-mono);color:var(--town-accent)}.sdui-cart-checkout-btn{width:100%;background:linear-gradient(135deg,var(--town-primary),var(--town-primary-hover));color:var(--town-primary-fg, var(--town-bg));border:none;padding:11px;border-radius:var(--town-radius-sm);font-size:.875rem;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #6366f166;transition:all .15s ease}.sdui-cart-checkout-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #6366f199}.sdui-cart-checkout-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}@keyframes sdui-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes sdui-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes sdui-slide-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes sdui-slide-right{0%{transform:translate(100%)}to{transform:translate(0)}}.sdui-card-gradient-ticket,.sdui-ticket-card-outer{background:var(--town-surface)!important;border:1px solid rgba(99,102,241,.4);border-radius:16px;box-shadow:0 16px 40px #00000073;max-width:440px;overflow:hidden}.sdui-ticket-status-pill.status-valid,.sdui-ticket-header .sdui-badge-success{background:#10b9812e!important;border:1px solid rgba(16,185,129,.4)!important;box-shadow:0 0 12px #10b98140!important;color:var(--town-success)!important;font-weight:700!important;letter-spacing:.05em!important;text-transform:uppercase!important}.sdui-ticket-scanner{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:480px;margin:0 auto}.sdui-scanner-viewport{position:relative;width:100%;aspect-ratio:1 / 1;min-height:280px;max-height:420px;background:var(--town-bg);border-radius:var(--town-radius-lg, 16px);overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:var(--sdui-elevation-high, 0 20px 48px -8px rgba(0, 0, 0, .65));border:1px solid rgba(255,255,255,.1);border-top:1px solid rgba(255,255,255,.18)}.sdui-scanner-video{width:100%;height:100%;object-fit:cover;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.sdui-scanner-reticle{position:absolute;width:220px;height:220px;z-index:2;pointer-events:none;transition:all .3s cubic-bezier(.16,1,.3,1)}.sdui-scanner-corner{position:absolute;width:28px;height:28px;border-color:var(--town-primary);border-style:solid;transition:border-color .25s ease,box-shadow .25s ease}.sdui-scanner-corner.top-left{top:0;left:0;border-width:3px 0 0 3px;border-top-left-radius:8px}.sdui-scanner-corner.top-right{top:0;right:0;border-width:3px 3px 0 0;border-top-right-radius:8px}.sdui-scanner-corner.bottom-left{bottom:0;left:0;border-width:0 0 3px 3px;border-bottom-left-radius:8px}.sdui-scanner-corner.bottom-right{bottom:0;right:0;border-width:0 3px 3px 0;border-bottom-right-radius:8px}.sdui-scanner-laser{position:absolute;left:6px;right:6px;height:2px;background:linear-gradient(90deg,transparent,var(--town-primary) 20%,var(--town-primary) 50%,var(--town-primary) 80%,transparent);box-shadow:0 0 14px 3px #6366f1d9;animation:sdui-laser-sweep 2.2s cubic-bezier(.4,0,.2,1) infinite alternate;pointer-events:none}@keyframes sdui-laser-sweep{0%{top:10px;opacity:.6}50%{opacity:1}to{top:calc(100% - 12px);opacity:.6}}.sdui-scanner-overlay{position:absolute;bottom:0;left:0;right:0;padding:1.25rem 1rem;background:linear-gradient(to top,rgba(9,13,22,.92) 0%,transparent 100%);display:flex;flex-direction:column;align-items:center;gap:.35rem;z-index:2;pointer-events:none}.sdui-scanner-prompt{margin:0;font-size:.875rem;font-weight:600;color:var(--town-fg);text-shadow:0 2px 4px rgba(0,0,0,.8);letter-spacing:.01em}.sdui-scanner-facing{font-size:.725rem;font-weight:600;color:var(--town-text-muted);text-transform:uppercase;letter-spacing:.08em;background:#0f172a99;padding:2px 8px;border-radius:9999px;border:1px solid var(--town-surface-border)}.sdui-scanner-controls,.sdui-scanner-floating-toolbar{display:flex;gap:.5rem;justify-content:center;align-items:center;flex-wrap:wrap;width:100%;margin-top:.25rem;padding:.5rem .85rem;background:#0f172abf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:9999px;box-shadow:0 8px 24px -4px #00000073}.sdui-scanner-control-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .95rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:9999px;color:var(--town-fg);font-size:.825rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);box-shadow:0 2px 6px #0003;-webkit-user-select:none;user-select:none}.sdui-scanner-control-pill:hover{background:#ffffff24;border-color:#ffffff40;color:var(--town-fg);transform:translateY(-1.5px);box-shadow:0 6px 14px #00000059}.sdui-scanner-control-pill:active{transform:translateY(0)}.sdui-scanner-control-pill.is-active{background:var(--town-primary);border-color:#ffffff4d;color:var(--town-primary-fg, var(--town-bg));box-shadow:0 0 14px #6366f173}.sdui-scanner-pill-icon{font-size:.95rem;line-height:1;display:inline-flex;align-items:center}.sdui-scanner-permission-prompt{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background:#090d16f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;gap:.75rem;color:var(--town-fg)}.sdui-scanner-prompt-icon{font-size:2rem;line-height:1}.sdui-scanner-prompt-title{font-size:1.1rem;font-weight:700;color:var(--town-fg)}.sdui-scanner-prompt-desc{margin:0;font-size:.825rem;line-height:1.4;color:var(--town-text-muted);max-width:320px}.sdui-scanner-manual-entry{display:flex;gap:.5rem;width:100%;max-width:340px;margin-top:.5rem;pointer-events:auto}.sdui-scanner-manual-input{flex:1;padding:.5rem .75rem;background:#0f172ad9;border:1px solid rgba(255,255,255,.18);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg);font-size:.825rem;font-family:monospace;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.sdui-scanner-manual-input:focus{border-color:var(--town-primary);box-shadow:0 0 0 2px #6366f14d}.sdui-scanner-manual-submit-btn{padding:.5rem .9rem;background:var(--town-primary);color:var(--town-primary-fg, var(--town-bg));border:none;border-radius:var(--town-radius-sm, 6px);font-size:.825rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .15s ease}.sdui-scanner-manual-submit-btn:hover{background:var(--town-primary-hover);transform:translateY(-1px)}.sdui-scanner-feedback{display:flex;align-items:center;gap:.75rem;width:100%;padding:.85rem 1rem;border-radius:var(--town-radius-md, 10px);font-size:.85rem;animation:sdui-fade-in .25s ease-out}.sdui-scanner-feedback.is-success{background:#10b98126;border:1px solid rgba(16,185,129,.4);color:var(--town-success);box-shadow:0 0 16px #10b98133}.sdui-scanner-feedback.is-error{background:#ef444426;border:1px solid rgba(239,68,68,.4);color:var(--town-error);box-shadow:0 0 16px #ef444433}.sdui-scanner-feedback.is-already-redeemed,.sdui-scanner-feedback.is-expired{background:#f59e0b26;border:1px solid rgba(245,158,11,.4);color:var(--town-warning);box-shadow:0 0 16px #f59e0b33}.sdui-scanner-feedback-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-weight:700;font-size:.9rem;background:currentColor;color:var(--town-bg);flex-shrink:0}.sdui-scanner-feedback-text{display:flex;flex-direction:column;gap:.25rem;width:100%}.sdui-scanner-feedback-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.sdui-scanner-verified-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .65rem;background:#10b98133;border:1px solid rgba(16,185,129,.5);border-radius:9999px;font-size:.725rem;font-weight:700;color:var(--town-success);letter-spacing:.02em}.sdui-scanner-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .65rem;border-radius:9999px;font-size:.725rem;font-weight:700;letter-spacing:.02em}.sdui-scanner-status-badge.is-warning{background:#f59e0b33;border:1px solid rgba(245,158,11,.5);color:var(--town-warning)}.sdui-scanner-status-badge.is-error{background:#ef444433;border:1px solid rgba(239,68,68,.5);color:var(--town-error)}.sdui-scanner-redemption-metadata{display:flex;flex-direction:column;gap:.25rem;margin-top:.4rem;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.1);font-size:.75rem;color:var(--town-text-muted)}.sdui-scanner-meta-item{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sdui-scanner-meta-status{text-transform:uppercase;font-size:.7rem;letter-spacing:.04em}.sdui-scanner-meta-id,.sdui-scanner-meta-ticket{font-family:monospace;font-size:.725rem;background:#00000059;padding:1px 6px;border-radius:4px;border:1px solid var(--town-surface-border);color:var(--town-fg)}.sdui-scanner-meta-time{font-family:monospace;font-size:.725rem;color:var(--town-text-muted)}.sdui-scanner-feedback-tier{font-size:.75rem;opacity:.85;font-weight:500}.sdui-featured-hero-card{background-color:var(--town-bg)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:24px!important;border-top:1px solid rgba(255,255,255,.25)!important;box-shadow:0 20px 50px -10px #000000b3,0 0 30px #0006!important;isolation:isolate!important;min-height:480px!important;overflow:hidden!important;position:relative!important;transform:translateZ(0)!important;width:100%!important}.sdui-featured-hero-bg{background-position:center top!important;background-repeat:no-repeat!important;background-size:cover!important;border-radius:inherit!important;top:0!important;right:0!important;bottom:0!important;left:0!important;overflow:hidden!important;pointer-events:none!important;position:absolute!important;z-index:0!important}.sdui-featured-hero-card:before{background:linear-gradient(to top,var(--town-bg) 0%,var(--town-bg) 18%,rgba(9,13,24,.85) 45%,rgba(9,13,24,.25) 60%,transparent 100%),linear-gradient(to right,rgba(9,13,24,.6) 0%,transparent 15%,transparent 85%,rgba(9,13,24,.6) 100%)!important;border-radius:inherit;content:"";top:0!important;right:0!important;bottom:0!important;left:0!important;pointer-events:none;position:absolute;z-index:1}.sdui-featured-hero-card>.sdui-card-content,.sdui-featured-hero-card.sdui-card-overlay-mode>.sdui-card-content{box-sizing:border-box!important;display:flex!important;flex-direction:column!important;height:100%!important;justify-content:flex-end!important;min-height:480px!important;padding:2.25rem 4rem!important;position:relative!important;z-index:2!important}.sdui-featured-nav-controls{align-items:center!important;box-sizing:border-box!important;display:flex!important;justify-content:space-between!important;left:0!important;padding:0 .5rem!important;pointer-events:none!important;position:absolute!important;right:0!important;top:50%!important;transform:translateY(-50%)!important;width:100%!important;z-index:5!important}.sdui-featured-arrow-btn{align-items:center!important;background:#0f172abf!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;border:1px solid rgba(255,255,255,.25)!important;border-radius:50%!important;box-shadow:0 4px 20px #00000073!important;color:var(--town-fg)!important;cursor:pointer!important;display:inline-flex!important;font-size:1.25rem!important;font-weight:600!important;height:44px!important;justify-content:center!important;min-width:44px!important;padding:0!important;pointer-events:auto!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important;width:44px!important}.sdui-featured-arrow-btn:hover{background:#ffffff38!important;border-color:#ffffff80!important;box-shadow:0 6px 24px #0009!important;transform:scale(1.1)!important}.sdui-featured-bottom-overlay{align-items:flex-start!important;display:flex!important;flex-direction:column!important;gap:.9rem!important;max-width:760px!important;width:100%!important}.sdui-featured-pill-row{align-items:center!important;display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;gap:.65rem!important}.sdui-featured-pill-category{background:#ff7e5f2e!important;border:1px solid rgba(255,126,95,.45)!important;border-radius:9999px!important;color:var(--town-primary)!important;font-size:.75rem!important;font-weight:700!important;letter-spacing:.06em!important;padding:.35rem .85rem!important;text-transform:uppercase!important}.sdui-featured-pill-price{background:#10b98129!important;border:1px solid rgba(16,185,129,.4)!important;border-radius:9999px!important;color:var(--town-success)!important;font-size:.75rem!important;font-weight:700!important;padding:.35rem .85rem!important}.sdui-featured-pill-date{backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:9999px!important;color:var(--town-fg)!important;font-size:.75rem!important;font-weight:600!important;padding:.35rem .85rem!important}.sdui-featured-title{color:var(--town-fg)!important;font-size:clamp(1.75rem,3.2vw,2.75rem)!important;font-weight:800!important;letter-spacing:-.025em!important;line-height:1.15!important;margin:0!important;text-shadow:0 3px 12px rgba(0,0,0,.6)!important}.sdui-featured-description{display:-webkit-box!important;line-clamp:2;line-clamp:2!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#ffffffe6!important;font-size:.975rem!important;line-height:1.5!important;margin:.25rem 0 .5rem!important;max-width:680px!important}.sdui-featured-actions-row{display:flex!important;flex-direction:row!important;align-items:center!important;gap:.85rem!important;padding-top:.25rem!important}.sdui-featured-btn-primary{display:inline-flex!important;align-items:center!important;white-space:nowrap!important;width:auto!important;background:linear-gradient(135deg,var(--town-primary) 0%,var(--town-primary-hover) 100%)!important;color:var(--town-primary-fg, var(--town-bg))!important;border:none!important;font-weight:700!important;font-size:.95rem!important;padding:.75rem 1.6rem!important;border-radius:9999px!important;box-shadow:0 4px 18px #ff7e5f73!important;cursor:pointer!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important}.sdui-featured-btn-primary:hover{transform:translateY(-2px)!important;box-shadow:0 6px 24px #ff7e5f99!important;filter:brightness(1.05)}.sdui-featured-btn-secondary{display:inline-flex!important;align-items:center!important;white-space:nowrap!important;width:auto!important;background:#ffffff14!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid rgba(255,255,255,.25)!important;color:var(--town-fg)!important;font-weight:600!important;font-size:.95rem!important;padding:.75rem 1.5rem!important;border-radius:9999px!important;cursor:pointer!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important}.sdui-featured-btn-secondary:hover{background:#ffffff29!important;border-color:#ffffff73!important;transform:translateY(-2px)!important}.sdui-featured-pagination-dots{align-items:center!important;display:flex!important;flex-direction:row!important;gap:.45rem!important;margin-top:.25rem!important}.sdui-featured-pagination-dot{background:#ffffff59!important;border:none!important;border-radius:9999px!important;cursor:pointer!important;height:6px!important;padding:0!important;transition:all .25s cubic-bezier(.16,1,.3,1)!important;width:6px!important}.sdui-featured-pagination-dot:hover{background:#ffffffb3!important}.sdui-featured-pagination-dot.active{background:linear-gradient(135deg,var(--town-primary) 0%,var(--town-primary-hover) 100%)!important;box-shadow:0 0 10px #ff7e5f99!important;width:22px!important}@media(max-width:768px){.sdui-featured-hero-card{border-radius:20px!important;min-height:440px!important}.sdui-featured-hero-card:before{background:linear-gradient(to top,var(--town-bg) 0%,rgba(9,13,24,.95) 28%,rgba(9,13,24,.65) 45%,rgba(9,13,24,.15) 58%,transparent 78%),linear-gradient(to right,rgba(9,13,24,.35) 0%,transparent 15%,transparent 85%,rgba(9,13,24,.35) 100%)!important}.sdui-featured-hero-card>.sdui-card-content,.sdui-featured-hero-card.sdui-card-overlay-mode>.sdui-card-content{min-height:440px!important;padding:1.25rem 1.15rem!important}.sdui-featured-nav-controls{display:none!important}.sdui-featured-bottom-overlay{gap:.65rem!important;max-width:100%!important}.sdui-featured-pill-row{gap:.45rem!important}.sdui-featured-pill-category,.sdui-featured-pill-price,.sdui-featured-pill-date{font-size:.7rem!important;padding:.25rem .6rem!important}.sdui-featured-title{font-size:1.45rem!important;line-height:1.2!important;text-shadow:0 2px 8px rgba(0,0,0,.8)!important}.sdui-featured-description{-webkit-line-clamp:1!important;font-size:.85rem!important;line-clamp:1!important;line-height:1.4!important;margin:.1rem 0 .25rem!important}.sdui-featured-actions-row{align-items:center!important;flex-wrap:nowrap!important;gap:.55rem!important;padding-top:.15rem!important;width:100%!important}.sdui-featured-btn-primary{flex:1 1 auto!important;font-size:.875rem!important;justify-content:center!important;padding:.65rem 1.1rem!important}.sdui-featured-btn-secondary{flex:0 0 auto!important;font-size:.875rem!important;justify-content:center!important;padding:.65rem 1.1rem!important}.sdui-featured-pagination-dots{margin-top:.35rem!important}}.discover-contextual-search{display:flex!important;flex-direction:row!important;align-items:center!important;background:#0f172abf!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:9999px!important;padding:6px 8px 6px 16px!important;box-shadow:0 10px 30px #0006,0 0 0 1px #ffffff0d!important;max-width:680px!important;width:100%!important;margin:1.5rem auto 1rem!important;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box!important}.discover-contextual-search:focus-within{border-color:#ff7e5f80!important;box-shadow:0 12px 36px #00000080,0 0 0 2px #ff7e5f40!important}.discover-contextual-search .sdui-input-wrapper{flex:1 1 auto!important;min-width:0!important;width:auto!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important}.discover-contextual-search .sdui-input{background:transparent!important;border:none!important;box-shadow:none!important;color:var(--town-fg)!important;font-size:.95rem!important;padding:.5rem .75rem .5rem 0!important;width:100%!important;outline:none!important}.discover-contextual-search .sdui-input::placeholder{color:#ffffff73!important}.discover-contextual-search .sdui-button{flex-shrink:0!important;flex-grow:0!important;width:auto!important;min-width:100px!important;white-space:nowrap!important;border-radius:9999px!important;padding:.6rem 1.4rem!important;font-weight:600!important;font-size:.875rem!important;background:linear-gradient(135deg,var(--town-primary) 0%,var(--town-primary-hover) 100%)!important;color:var(--town-primary-fg, var(--town-bg))!important;border:none!important;box-shadow:0 2px 10px #ff7e5f59!important;cursor:pointer!important;transition:transform .15s ease,box-shadow .15s ease}.discover-contextual-search .sdui-button:hover{transform:translateY(-1px)!important;box-shadow:0 4px 14px #ff7e5f80!important}.sdui-grid-title,.sdui-carousel-title{font-size:1.5rem;font-weight:600;margin-bottom:1rem;color:var(--town-fg)}.sdui-ticket-dialog-placeholder{align-items:center;background:var(--town-surface);border:1px dashed var(--town-surface-border);border-radius:var(--town-radius-sm);color:var(--town-text-muted);cursor:pointer;display:flex;font-size:.8rem;gap:8px;justify-content:space-between;padding:10px 14px;transition:border-color .15s ease,background .15s ease}.sdui-ticket-dialog-placeholder:hover{background:var(--town-surface-border);border-color:var(--town-primary);color:var(--town-fg)}.sdui-ticket-dialog-placeholder-hint{color:var(--town-accent);font-size:.72rem}.sdui-featured-hero-card .sdui-skeleton-heading{margin-top:1rem}.sdui-featured-hero-card .sdui-skeleton-pill{border-radius:9999px}.sdui-badge-live,.sdui-card-badge-live{background:#ef444426;border:1px solid var(--town-error);color:var(--town-error);box-shadow:0 0 12px var(--town-error)}.stripe-checkout-overlay{align-items:center;animation:stripeModalFadeIn .2s cubic-bezier(.16,1,.3,1);background:#090d16bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:10000}@keyframes stripeModalFadeIn{0%{opacity:0}to{opacity:1}}.stripe-checkout-modal{animation:stripeModalSlideUp .25s cubic-bezier(.16,1,.3,1);background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-lg);box-shadow:0 25px 50px -12px #000000b3,0 0 0 1px #ffffff0d;color:var(--town-fg);display:flex;flex-direction:column;font-family:var(--town-font-family);gap:20px;max-height:90vh;max-width:480px;overflow-y:auto;padding:24px;position:relative;width:100%}@keyframes stripeModalSlideUp{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.stripe-checkout-header{align-items:flex-start;display:flex;justify-content:space-between}.stripe-checkout-title-wrap{display:flex;flex-direction:column;gap:4px}.stripe-checkout-title{color:var(--town-fg);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;margin:0}.stripe-checkout-subtitle{color:var(--town-text-muted);font-size:.85rem;margin:0}.stripe-checkout-close-btn{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm);color:var(--town-text-muted);cursor:pointer;display:flex;font-size:1.25rem;height:32px;justify-content:center;padding:0;transition:all .15s ease;width:32px}.stripe-checkout-close-btn:hover{background:var(--town-surface-border);color:var(--town-fg)}.stripe-checkout-summary{background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);display:flex;flex-direction:column;gap:14px;padding:16px}.stripe-summary-event{display:flex;flex-direction:column;gap:2px}.stripe-event-name{color:var(--town-accent);font-size:.95rem;font-weight:600}.stripe-tier-name{color:var(--town-fg);font-size:.85rem}.stripe-qty-row{align-items:center;border-bottom:1px solid var(--town-surface-border);border-top:1px solid var(--town-surface-border);display:flex;justify-content:space-between;padding:10px 0}.stripe-qty-label{color:var(--town-text-muted);font-size:.85rem;font-weight:500}.stripe-qty-controls{align-items:center;display:flex;gap:10px}.stripe-qty-btn{align-items:center;background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);color:var(--town-fg);cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:28px;justify-content:center;line-height:1;transition:all .15s ease;width:28px}.stripe-qty-btn:hover:not(:disabled){background:var(--town-surface-border);border-color:var(--town-secondary)}.stripe-qty-btn:disabled{cursor:not-allowed;opacity:.4}.stripe-qty-value{color:var(--town-fg);font-size:.95rem;font-weight:600;min-width:20px;text-align:center}.stripe-price-breakdown{display:flex;flex-direction:column;gap:6px}.stripe-breakdown-row{display:flex;font-size:.85rem;justify-content:space-between}.stripe-breakdown-label{color:var(--town-text-muted)}.stripe-breakdown-value{color:var(--town-fg);font-weight:500}.stripe-breakdown-row.total{border-top:1px dashed var(--town-surface-border);font-size:1rem;font-weight:700;margin-top:4px;padding-top:8px}.stripe-breakdown-row.total .stripe-breakdown-label{color:var(--town-fg)}.stripe-breakdown-row.total .stripe-breakdown-value{color:var(--town-accent)}.stripe-buyer-info{align-items:center;background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);display:flex;font-size:.78rem;gap:6px;padding:6px 10px}.stripe-buyer-label{color:var(--town-secondary)}.stripe-buyer-email{color:var(--town-text-muted);font-family:var(--town-font-mono)}.stripe-payment-container{display:flex;flex-direction:column;gap:12px}.stripe-badge-banner{align-items:center;background:#6366f11f;border:1px solid rgba(99,102,241,.3);border-radius:var(--town-radius-sm);color:var(--town-primary);display:flex;font-size:.78rem;font-weight:600;gap:8px;padding:8px 12px}.stripe-badge-banner.simulated{background:#10b9811a;border-color:#10b9814d;color:var(--town-success)}.stripe-sim-card-box{background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);display:flex;flex-direction:column;overflow:hidden}.stripe-sim-input-row{align-items:center;border-bottom:1px solid var(--town-surface-border);display:flex;padding:10px 14px}.stripe-sim-input-row:last-child{border-bottom:none}.stripe-sim-split{display:grid;grid-template-columns:1fr 1fr 1fr}.stripe-sim-split .stripe-sim-input-row{border-bottom:none;border-right:1px solid var(--town-surface-border)}.stripe-sim-split .stripe-sim-input-row:last-child{border-right:none}.stripe-sim-label{color:var(--town-secondary);font-size:.72rem;font-weight:600;text-transform:uppercase;width:50px}.stripe-sim-input{background:transparent;border:none;color:var(--town-fg);flex:1;font-family:var(--town-font-mono);font-size:.88rem;outline:none}.stripe-sim-input::placeholder{color:var(--town-secondary)}.stripe-error-banner{background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:var(--town-radius-sm);color:var(--town-error);font-size:.82rem;padding:10px 14px}.stripe-actions{display:flex;gap:12px;margin-top:4px}.stripe-btn-cancel{background:transparent;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);color:var(--town-fg);cursor:pointer;flex:1;font-size:.9rem;font-weight:600;padding:12px 16px;transition:all .15s ease}.stripe-btn-cancel:hover:not(:disabled){background:var(--town-surface-border);color:var(--town-fg)}.stripe-btn-pay{align-items:center;background:linear-gradient(135deg,var(--town-primary) 0%,var(--town-primary-hover) 100%);border:none;border-radius:var(--town-radius-md);box-shadow:0 4px 12px #6366f159;color:var(--town-primary-fg, var(--town-bg));cursor:pointer;display:flex;flex:2;font-size:.95rem;font-weight:700;justify-content:center;padding:12px 16px;transition:all .15s ease}.stripe-btn-pay:hover:not(:disabled){background:linear-gradient(135deg,var(--town-primary-hover) 0%,var(--town-primary) 100%);box-shadow:0 6px 16px #6366f180;transform:translateY(-1px)}.stripe-btn-pay:disabled,.stripe-btn-cancel:disabled{cursor:not-allowed;opacity:.6}.stripe-spinner{animation:stripeSpin .7s linear infinite;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:var(--town-fg);display:inline-block;height:16px;margin-right:8px;width:16px}@keyframes stripeSpin{to{transform:rotate(360deg)}}.sdui-permission-matrix{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);display:flex;flex-direction:column;gap:1rem;padding:1.25rem;width:100%;box-sizing:border-box}.sdui-pm-header{display:flex;flex-direction:column;gap:.875rem;padding-bottom:.875rem;border-bottom:1px solid var(--town-surface-border)}.sdui-pm-preset-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.sdui-pm-preset-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--town-text-muted);margin-right:.25rem}.sdui-pm-preset-btn{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);color:var(--town-fg);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.375rem .75rem;transition:all .15s ease-in-out}.sdui-pm-preset-btn:hover{background:var(--town-surface-border);border-color:var(--town-primary);color:var(--town-fg)}.sdui-pm-preset-btn.active{background:#6366f12e;border-color:var(--town-primary);color:var(--town-primary);font-weight:600;box-shadow:0 0 0 1px var(--town-primary)}.sdui-pm-clear-btn{background:#ef444414;border-color:#ef444447;color:var(--town-error);margin-left:auto}.sdui-pm-clear-btn:hover{background:#ef444433;border-color:var(--town-error);color:var(--town-fg)}.sdui-pm-search-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.sdui-pm-search-input{background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);color:var(--town-fg);font-size:.8125rem;padding:.45rem .75rem;flex:1;min-width:200px;max-width:320px;outline:none;transition:border-color .15s ease}.sdui-pm-search-input:focus{border-color:var(--town-accent)}.sdui-pm-toolbar-actions{display:flex;align-items:center;gap:.75rem}.sdui-pm-expand-controls{display:flex;align-items:center;gap:.25rem}.sdui-pm-text-btn{background:transparent;border:none;color:var(--town-text-muted);cursor:pointer;font-size:.75rem;font-weight:500;padding:.2rem .4rem;border-radius:4px;transition:all .15s ease}.sdui-pm-text-btn:hover{background:#ffffff14;color:var(--town-fg)}.sdui-pm-divider{color:var(--town-surface-border);font-size:.75rem;-webkit-user-select:none;user-select:none}.sdui-pm-total-badge{font-size:.75rem;color:var(--town-text-muted);background:var(--town-bg);padding:.25rem .625rem;border-radius:9999px;border:1px solid var(--town-surface-border);white-space:nowrap}.sdui-pm-groups{display:flex;flex-direction:column;gap:.75rem;max-height:480px;overflow-y:auto;overscroll-behavior:contain;padding-right:.375rem;scrollbar-width:thin;scrollbar-color:var(--town-surface-border) var(--town-surface)}.sdui-pm-groups::-webkit-scrollbar{width:6px}.sdui-pm-groups::-webkit-scrollbar-track{background:var(--town-surface);border-radius:3px}.sdui-pm-groups::-webkit-scrollbar-thumb{background:var(--town-surface-border);border-radius:3px}.sdui-pm-groups::-webkit-scrollbar-thumb:hover{background:var(--town-primary)}.sdui-pm-group{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);overflow:hidden;transition:all .2s ease;flex-shrink:0}.sdui-pm-group:hover{border-color:var(--town-primary)}.sdui-pm-group.is-collapsed{background:var(--town-bg)}.sdui-pm-group-header{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;background:var(--town-surface);border-bottom:1px solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease,border-color .15s ease;flex-shrink:0;min-height:42px;box-sizing:border-box}.sdui-pm-group.is-expanded .sdui-pm-group-header{border-bottom-color:var(--town-surface-border)}.sdui-pm-group-header:hover{background:var(--town-surface-border)}.sdui-pm-group-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:var(--town-fg)}.sdui-pm-accordion-chevron{font-size:.75rem;color:var(--town-text-muted);display:inline-block;transition:transform .2s ease;transform:rotate(-90deg)}.sdui-pm-accordion-chevron.open{transform:rotate(0)}.sdui-pm-group-count{font-size:.75rem;color:var(--town-text-muted);font-weight:500;padding:.1rem .35rem;border-radius:9999px;transition:all .15s ease}.sdui-pm-group-count.has-selected{background:#6366f12e;color:var(--town-primary);font-weight:600}.sdui-pm-group-actions{display:flex;align-items:center}.sdui-pm-group-toggle-btn{background:transparent;border:1px solid var(--town-surface-border);color:var(--town-text-muted);cursor:pointer;font-size:.75rem;padding:.2rem .55rem;border-radius:4px;transition:all .15s ease}.sdui-pm-group-toggle-btn:hover{background:#ffffff14;border-color:var(--town-primary);color:var(--town-fg)}.sdui-pm-action-grid{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;max-height:240px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--town-surface-border) var(--town-surface)}.sdui-pm-action-grid::-webkit-scrollbar{width:5px}.sdui-pm-action-grid::-webkit-scrollbar-track{background:var(--town-surface);border-radius:3px}.sdui-pm-action-grid::-webkit-scrollbar-thumb{background:var(--town-surface-border);border-radius:3px}.sdui-pm-action-grid::-webkit-scrollbar-thumb:hover{background:var(--town-primary)}.sdui-pm-action-card{display:flex;align-items:flex-start;gap:.625rem;padding:.5rem .625rem;background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:5px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none;flex-shrink:0}.sdui-pm-action-card:hover{background:var(--town-surface);border-color:var(--town-primary)}.sdui-pm-action-card.checked{background:#6366f117;border-color:var(--town-primary)}.sdui-pm-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;margin-top:2px;border:1.5px solid var(--town-text-muted);border-radius:3px;background:transparent;cursor:pointer;flex-shrink:0;display:grid;place-content:center;transition:all .15s ease}.sdui-pm-checkbox:checked{background:var(--town-primary);border-color:var(--town-primary)}.sdui-pm-checkbox:checked:before{content:"";width:8px;height:5px;border-left:2px solid var(--town-fg);border-bottom:2px solid var(--town-fg);transform:rotate(-45deg) translate(1px,-1px)}.sdui-pm-action-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.sdui-pm-action-header{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.sdui-pm-action-name{font-size:.8125rem;font-weight:500;color:var(--town-fg)}.sdui-pm-verb-badge{font-size:.6875rem;font-weight:600;padding:.1rem .35rem;border-radius:3px;text-transform:uppercase;letter-spacing:.03em}.sdui-pm-verb-create{background:#10b9812e;color:var(--town-success)}.sdui-pm-verb-read{background:#38bdf82e;color:var(--town-accent)}.sdui-pm-verb-update{background:#f59e0b2e;color:var(--town-warning)}.sdui-pm-verb-delete,.sdui-pm-verb-cancel,.sdui-pm-verb-revoke{background:#ef44442e;color:var(--town-error)}.sdui-pm-verb-publish,.sdui-pm-verb-redeem{background:#6366f12e;color:var(--town-primary)}.sdui-pm-action-key{font-family:var(--town-font-mono);font-size:.6875rem;color:var(--town-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdui-pm-action-desc{font-size:.6875rem;color:var(--town-secondary);line-height:1.25;margin-top:.125rem}.sdui-entity-selector{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);display:flex;flex-direction:column;gap:.875rem;padding:1.25rem;width:100%;box-sizing:border-box}.sdui-es-mode-switch{display:flex;background:var(--town-bg);padding:.25rem;border-radius:var(--town-radius-sm);border:1px solid var(--town-surface-border);gap:.25rem}.sdui-es-mode-btn{flex:1;background:transparent;border:none;border-radius:4px;color:var(--town-text-muted);cursor:pointer;font-size:.8125rem;font-weight:500;padding:.45rem .75rem;text-align:center;transition:all .15s ease}.sdui-es-mode-btn:hover{color:var(--town-fg)}.sdui-es-mode-btn.active{background:#6366f133;border:1px solid var(--town-primary);color:var(--town-primary);font-weight:600}.sdui-es-account-wide-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#10b98114;border:1px solid rgba(16,185,129,.25);border-radius:var(--town-radius-sm);color:var(--town-success);font-size:.8125rem}.sdui-es-account-wide-icon{font-size:1.125rem}.sdui-es-selected-tray{display:flex;flex-direction:column;gap:.375rem;padding:.625rem;background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm)}.sdui-es-selected-header{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--town-text-muted)}.sdui-es-chips{display:flex;flex-wrap:wrap;gap:.375rem}.sdui-es-chip{display:inline-flex;align-items:center;gap:.375rem;background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:4px;padding:.2rem .5rem;font-size:.75rem;color:var(--town-fg)}.sdui-es-chip-kind{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:.05rem .25rem;border-radius:2px;background:#6366f140;color:var(--town-primary)}.sdui-es-chip-remove{background:transparent;border:none;color:var(--town-text-muted);cursor:pointer;font-size:.875rem;line-height:1;padding:0;margin-left:.25rem}.sdui-es-chip-remove:hover{color:var(--town-error)}.sdui-es-toolbar{display:flex;flex-direction:column;gap:.5rem}.sdui-es-search-input{background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);color:var(--town-fg);font-size:.8125rem;padding:.45rem .75rem;width:100%;box-sizing:border-box;outline:none;transition:border-color .15s ease}.sdui-es-search-input:focus{border-color:var(--town-accent)}.sdui-es-filters{display:flex;gap:.375rem}.sdui-es-filter-btn{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:4px;color:var(--town-text-muted);cursor:pointer;font-size:.75rem;font-weight:500;padding:.25rem .625rem;transition:all .15s ease}.sdui-es-filter-btn:hover{background:var(--town-surface-border);color:var(--town-fg)}.sdui-es-filter-btn.active{background:#38bdf826;border-color:var(--town-accent);color:var(--town-accent);font-weight:600}.sdui-es-list{display:flex;flex-direction:column;gap:.375rem;max-height:260px;overflow-y:auto;padding-right:.25rem;scrollbar-width:thin;scrollbar-color:var(--town-surface-border) var(--town-surface)}.sdui-es-list::-webkit-scrollbar{width:5px}.sdui-es-list::-webkit-scrollbar-track{background:var(--town-surface);border-radius:3px}.sdui-es-list::-webkit-scrollbar-thumb{background:var(--town-surface-border);border-radius:3px}.sdui-es-list::-webkit-scrollbar-thumb:hover{background:var(--town-primary)}.sdui-es-empty{font-size:.8125rem;color:var(--town-text-muted);text-align:center;padding:1.5rem 1rem}.sdui-es-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;background:var(--town-bg);border:1px solid var(--town-surface-border);border-radius:5px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.sdui-es-item:hover{background:var(--town-surface);border-color:var(--town-primary)}.sdui-es-item.checked{background:#6366f117;border-color:var(--town-primary)}.sdui-es-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.5px solid var(--town-text-muted);border-radius:3px;background:transparent;cursor:pointer;flex-shrink:0;display:grid;place-content:center;transition:all .15s ease}.sdui-es-checkbox:checked{background:var(--town-primary);border-color:var(--town-primary)}.sdui-es-checkbox:checked:before{content:"";width:8px;height:5px;border-left:2px solid var(--town-fg);border-bottom:2px solid var(--town-fg);transform:rotate(-45deg) translate(1px,-1px)}.sdui-es-item-details{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.sdui-es-item-header{display:flex;align-items:center;gap:.5rem}.sdui-es-item-title{font-size:.8125rem;font-weight:500;color:var(--town-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdui-es-kind-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:.1rem .35rem;border-radius:3px}.sdui-es-kind-venue{background:#10b9812e;color:var(--town-success)}.sdui-es-kind-event{background:#38bdf82e;color:var(--town-accent)}.sdui-es-kind-vendor{background:#f59e0b2e;color:var(--town-warning)}.sdui-es-item-urn{font-family:var(--town-font-mono);font-size:.6875rem;color:var(--town-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdui-es-item-subtitle{font-size:.6875rem;color:var(--town-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root,.sdui-theme-root{color-scheme:dark;--town-bg: #0f1031;--town-fg: #f8fafc;--town-text-muted: #bbbdbf;--town-surface: #17183e;--town-surface-border: #282752;--town-primary: #f8b789;--town-primary-fg: #0f1031;--town-primary-hover: #e8a474;--town-secondary: #8f80b1;--town-accent: #8f80b1;--town-success: #71c6a9;--town-warning: #f59e0b;--town-error: #ef4444;--town-radius-sm: 6px;--town-radius-md: 10px;--town-radius-lg: 16px;--town-font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--town-font-mono: "JetBrains Mono", "Fira Code", monospace;--sdui-border-specular: 1px solid rgba(255, 255, 255, .09);--sdui-card-portrait-max-width: 320px;--sdui-card-portrait-aspect-ratio: 3 / 4;--sdui-elevation-high: 0 20px 48px -8px rgba(0, 0, 0, .65), 0 8px 24px -4px rgba(0, 0, 0, .4);--sdui-elevation-low: 0 4px 12px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .2);--sdui-elevation-med: 0 10px 28px -4px rgba(0, 0, 0, .5), 0 4px 12px -2px rgba(0, 0, 0, .3)}.sdui-theme-root{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;width:100%;background-color:var(--town-bg);color:var(--town-fg);font-family:var(--town-font-family)}.sdui-layout-dashboard,.sdui-layout-single-column,.sdui-layout-workspace{background-color:var(--town-bg);box-sizing:border-box;color:var(--town-fg);display:flex;flex:1;flex-direction:column;font-family:var(--town-font-family);height:auto;min-height:100%;overflow:visible}.sdui-single-column-center{max-width:960px;margin:0 auto;width:100%}.sdui-slot-header{position:sticky;top:0;z-index:40;background-color:var(--town-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--town-surface-border);padding:.875rem 2rem;display:flex;align-items:center;justify-content:space-between}.sdui-slot-footer{border-top:1px solid var(--town-surface-border);background-color:var(--town-surface);padding:1rem 2rem;font-size:.85rem;color:var(--town-text-muted)}.sdui-region-top{box-sizing:border-box;width:100%}.sdui-region-top-inner{box-sizing:border-box;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem 2rem;width:100%}.sdui-body{display:flex;flex:1 0 auto;min-height:0;overflow:visible;width:100%}.sdui-region-left{width:280px;flex-shrink:0;border-right:1px solid var(--town-surface-border);background-color:color-mix(in srgb,var(--town-surface) 60%,transparent);padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.sdui-region-main{display:flex;flex:1;flex-direction:column;gap:1.75rem;min-height:min-content;min-width:0;overflow-y:visible;padding:2rem}.sdui-region-right{width:340px;flex-shrink:0;border-left:1px solid var(--town-surface-border);background-color:color-mix(in srgb,var(--town-surface) 60%,transparent);padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.sdui-region-left>*,.sdui-region-main>*,.sdui-region-right>*,.sdui-region-top-inner>*{flex-shrink:0;min-height:min-content}.sdui-region-bottom{border-top:1px solid var(--town-surface-border);background-color:var(--town-surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.75rem 2rem;display:flex;align-items:center;justify-content:space-between}@media(max-width:767px){.sdui-region-main{gap:1.25rem!important;padding:1rem!important}.sdui-region-top-inner{gap:1rem!important;padding:1rem!important}}.sdui-region-skeleton{border:1px dashed var(--town-surface-border);background:color-mix(in srgb,var(--town-surface) 35%,transparent);border-radius:var(--town-radius-md);box-sizing:border-box}.sdui-skeleton-bottom{height:56px;width:100%;display:flex;align-items:center;padding:0 1.5rem;gap:1rem}.sdui-skeleton-left{width:100%;height:100%;min-height:320px;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.sdui-skeleton-main{width:100%;height:100%;min-height:420px;padding:2rem;display:flex;flex-direction:column;gap:1.75rem}.sdui-skeleton-right{width:100%;height:100%;min-height:320px;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.sdui-skeleton-top{height:64px;width:100%;display:flex;align-items:center;padding:0 2rem;justify-content:space-between}.sdui-skeleton-bar,.sdui-skeleton-block,.sdui-skeleton-circle,.sdui-skeleton-shimmer{background:linear-gradient(90deg,color-mix(in srgb,var(--town-surface-border) 50%,transparent),color-mix(in srgb,var(--town-primary) 18%,transparent),color-mix(in srgb,var(--town-surface-border) 50%,transparent));background-size:200% 100%;animation:sdui-shimmer 1.8s infinite ease-in-out}.sdui-skeleton-bar{height:1rem;border-radius:var(--town-radius-sm)}.sdui-skeleton-block{border-radius:var(--town-radius-md);width:100%}.sdui-skeleton-circle{width:2rem;height:2rem;border-radius:9999px;flex-shrink:0}.sdui-skeleton-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;width:100%}.sdui-skeleton-card{background:color-mix(in srgb,var(--town-surface) 50%,transparent);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);padding:1.25rem;height:180px;display:flex;flex-direction:column;justify-content:space-between}.sdui-skeleton-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.sdui-skeleton-w-20{width:5rem}.sdui-skeleton-w-24{width:6rem}.sdui-skeleton-w-32{width:8rem}.sdui-skeleton-w-36{width:9rem}.sdui-skeleton-w-1-3{width:33.333%}.sdui-skeleton-w-1-2{width:50%}.sdui-skeleton-w-2-3{width:66.666%}.sdui-skeleton-w-3-4{width:75%}.sdui-skeleton-w-5-6{width:83.333%}.sdui-skeleton-w-4-6{width:66.666%}.sdui-skeleton-w-full{width:100%}.sdui-skeleton-h-7{height:1.75rem}.sdui-skeleton-h-8{height:2rem}.sdui-skeleton-h-10{height:2.5rem}.sdui-skeleton-h-32{height:8rem}.sdui-skeleton-ml-auto{margin-left:auto}.sdui-skeleton-mb-2{margin-bottom:.5rem}.sdui-skeleton-mt-auto{margin-top:auto}@keyframes sdui-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes sdui-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sdui-button-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid currentColor;border-top-color:transparent;border-radius:9999px;animation:sdui-spin .75s linear infinite}.sdui-error-boundary{border-radius:var(--town-radius-md);border:1px solid rgba(239,68,68,.4);background:#ef444414;padding:1rem;color:#fca5a5;font-family:var(--town-font-mono);font-size:.8rem;box-shadow:0 4px 12px #ef44441a}.sdui-error-boundary-header{font-weight:600;margin-bottom:.35rem;display:flex;align-items:center;gap:.5rem}.sdui-error-boundary-dot{width:8px;height:8px;border-radius:9999px;background:var(--town-error);box-shadow:0 0 6px var(--town-error)}.sdui-error-boundary-msg{color:#fca5a5d9;margin-bottom:.75rem;font-size:.75rem}.sdui-error-boundary-retry{font-size:.75rem;background:#ef444433;border:1px solid rgba(239,68,68,.5);color:#fecaca;border-radius:var(--town-radius-sm);padding:.25rem .65rem;cursor:pointer;transition:all .2s ease}.sdui-error-boundary-retry:hover{background:#ef444459;border-color:#ef4444cc}.sdui-error-layout-unregistered{padding:1.5rem;margin:1rem;border-radius:var(--town-radius-md);background:#ef44441a;border:1px solid rgba(239,68,68,.4);color:#fca5a5;font-family:var(--town-font-mono);font-size:.85rem}.sdui-error-title{font-weight:700;margin-bottom:.25rem}.sdui-error-desc{font-size:.75rem;color:#f87171}.sdui-fallback-card{border:2px dashed rgba(245,158,11,.45);background:#f59e0b14;color:#fde68a;border-radius:var(--town-radius-md);padding:.75rem 1rem;font-size:.75rem;font-family:var(--town-font-mono);margin:.35rem 0;display:flex;flex-direction:column;gap:.35rem}.sdui-fallback-header{display:flex;align-items:center;justify-content:space-between}.sdui-fallback-title{font-weight:700;color:var(--town-warning)}.sdui-fallback-type{background:#f59e0b40;padding:.15rem .45rem;border-radius:var(--town-radius-sm);font-size:.65rem;color:#fef3c7}.sdui-fallback-reason{color:#fef0c7cc}.sdui-studio-node-wrapper{position:relative;transition:all .15s ease;border-radius:var(--town-radius-sm)}.sdui-studio-node-wrapper:hover{outline:1px dashed rgba(99,102,241,.4);outline-offset:2px}.sdui-studio-node-wrapper:hover:not(:has(.sdui-studio-node-wrapper:hover)){outline:1.5px solid rgba(99,102,241,.85);outline-offset:2px}.sdui-studio-badge-id{color:var(--town-accent)}.sdui-alert{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 1.35rem;border-radius:var(--town-radius-md);box-shadow:0 8px 24px #0000004d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-width:1px;border-style:solid}.sdui-alert-icon-pill{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;flex-shrink:0;background:#ffffff1f}.sdui-alert-content{flex:1;display:flex;flex-direction:column;gap:2px}.sdui-alert-title{font-size:.95rem;font-weight:700;margin:0;color:#fff}.sdui-alert-description{font-size:.825rem;margin:0;line-height:1.5;opacity:.92}.sdui-alert-info{background:#06b6d41f;border-color:#06b6d459;color:#cffafe}.sdui-alert-info .sdui-alert-icon-pill{color:#38bdf8;border:1px solid rgba(56,189,248,.3)}.sdui-alert-success{background:#10b9811f;border-color:#10b98159;color:#d1fae5}.sdui-alert-success .sdui-alert-icon-pill{color:#34d399;border:1px solid rgba(52,211,153,.3)}.sdui-alert-warning{background:#f59e0b1f;border-color:#f59e0b59;color:#fef3c7}.sdui-alert-warning .sdui-alert-icon-pill{color:#fbbf24;border:1px solid rgba(251,191,36,.3)}.sdui-alert-error{background:#ef44441f;border-color:#ef444459;color:#fee2e2}.sdui-alert-error .sdui-alert-icon-pill{color:#f87171;border:1px solid rgba(248,113,113,.3)}.sdui-table-wrapper{background:linear-gradient(180deg,#1a2438a6,#0f172ad9);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);border-top:var(--sdui-border-specular);box-shadow:var(--sdui-elevation-low);cursor:grab;overflow-x:auto;position:relative;touch-action:pan-x pan-y;transition:border-color .25s ease,box-shadow .25s ease;user-select:none;-webkit-overflow-scrolling:touch;-webkit-user-select:none;width:100%}.sdui-table-wrapper.is-dragging{cursor:grabbing;scroll-behavior:auto}.sdui-table-wrapper:hover{box-shadow:var(--sdui-elevation-med)}.sdui-table{border-collapse:separate;border-spacing:0;font-size:.85rem;min-width:580px;text-align:left;width:100%}.sdui-table thead th{background:#0f172a;position:sticky;top:0;z-index:10}.sdui-table-th{background:#0f172a;border-bottom:1px solid var(--town-surface-border);color:var(--town-text-muted);font-size:.725rem;font-weight:600;letter-spacing:.05em;padding:.85rem 1.1rem;text-transform:uppercase;white-space:nowrap}.sdui-table-th-select,.sdui-table-td-select{border-bottom:1px solid var(--town-surface-border);padding:.85rem .5rem;text-align:center;width:44px}.sdui-table-td{border-bottom:1px solid rgba(255,255,255,.04);color:var(--town-fg);padding:.875rem 1.1rem;white-space:nowrap}.sdui-table-row{cursor:pointer;transition:background-color .15s ease}.sdui-table-row:hover td{background:#6366f117}.sdui-table-row.has-actions:hover td{background:#6366f121}.sdui-table-row.selected td{background:#6366f129}.sdui-table-row.active-row td{background:#6366f138}.sdui-table-empty{padding:2.5rem;text-align:center;color:var(--town-text-muted);font-style:italic}.sdui-table-checkbox{accent-color:var(--town-primary);cursor:pointer;width:16px;height:16px}.sdui-table-action-popup{min-width:175px;width:max-content;border-radius:var(--town-radius-md);box-shadow:0 16px 36px #000000bf,0 0 20px #6366f133}.sdui-table-action-item{justify-content:flex-start;gap:.65rem}.sdui-table-action-item.sdui-dropdown-item-error{color:#f87171}.sdui-table-action-item.sdui-dropdown-item-error:hover{background:#ef444426;border-color:#ef444459;color:#fca5a5}.sdui-table-empty-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;gap:.85rem}.sdui-table-empty-icon{font-size:2.75rem;line-height:1;margin-bottom:.25rem}.sdui-table-empty-title{font-size:1.25rem;font-weight:700;color:var(--town-text, #f8fafc);margin:0}.sdui-table-empty-desc{font-size:.9rem;color:var(--town-text-muted, #94a3b8);max-width:420px;margin:0;line-height:1.5}.sdui-table-row-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sdui-table-action-btn{padding:.35rem .65rem;font-size:.75rem;gap:.35rem}.sdui-urn-badge{display:inline-flex;align-items:center;gap:.35rem;background:#1e293bb3;border:1px solid rgba(148,163,184,.2);border-radius:4px;padding:.15rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;color:var(--town-text-muted, #94a3b8);max-width:100%}.sdui-urn-badge-code{font-family:inherit;color:#38bdf8;white-space:nowrap}.sdui-urn-badge-copy{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:0 .1rem;font-size:.75rem;opacity:.6;transition:opacity .15s ease,transform .1s ease;color:inherit;line-height:1}.sdui-urn-badge-copy:hover{opacity:1;transform:scale(1.1)}@media(max-width:768px){.sdui-table{font-size:.8125rem;min-width:520px}.sdui-table-th,.sdui-table-td{padding:.75rem .85rem}.sdui-table-action-menu-btn{height:32px;width:32px}}.sdui-pagination{display:flex;align-items:center;justify-content:space-between;padding:.85rem .5rem;font-size:.825rem;color:var(--town-text-muted);border-top:1px solid var(--town-surface-border)}.sdui-pagination-left{display:flex;align-items:center;gap:.6rem}.sdui-pagination-select{background:var(--town-bg);border:1px solid var(--town-surface-border);color:var(--town-fg);padding:.35rem .75rem;border-radius:var(--town-radius-sm);font-size:.8rem;outline:none}.sdui-pagination-select:focus{border-color:var(--town-primary)}.sdui-pagination-right{display:flex;align-items:center;gap:.6rem}.sdui-pagination-btn{background:var(--town-bg);border:1px solid var(--town-surface-border);color:var(--town-fg);padding:.35rem .85rem;border-radius:var(--town-radius-sm);cursor:pointer;font-size:.85rem;font-weight:700;transition:all .15s ease}.sdui-pagination-btn:hover:not(:disabled){border-color:var(--town-primary);color:var(--town-primary);background:#6366f11a}.sdui-pagination-btn:disabled{opacity:.35;cursor:not-allowed}.sdui-pagination-page-indicator{font-weight:600;color:var(--town-fg)}.sdui-list{padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem;color:var(--town-fg);font-size:.875rem;width:100%}.sdui-list-ordered{list-style:none;counter-reset:sdui-list-counter}.sdui-list-ordered .sdui-list-item{counter-increment:sdui-list-counter;display:flex;align-items:flex-start;gap:.75rem;padding:.5rem .75rem;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:var(--town-radius-sm);transition:all .15s ease}.sdui-list-ordered .sdui-list-item:before{content:counter(sdui-list-counter);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#6366f133;border:1px solid rgba(99,102,241,.4);color:#a5b4fc;font-family:var(--town-font-mono);font-size:.72rem;font-weight:700;flex-shrink:0;margin-top:.05rem}.sdui-list-unordered{list-style:none}.sdui-list-unordered .sdui-list-item{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem .75rem;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:var(--town-radius-sm);transition:all .15s ease}.sdui-list-unordered .sdui-list-item:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--town-primary);box-shadow:0 0 8px var(--town-primary);flex-shrink:0;margin-top:.45rem}.sdui-list-item:hover{background:#6366f114;border-color:#6366f140;color:var(--town-fg);transform:translate(3px)}.sdui-list-item-content{line-height:1.5;flex:1}.sdui-video{width:100%;overflow:hidden;border-radius:var(--town-radius-md);border:1px solid var(--town-surface-border);background:#000;box-shadow:0 8px 24px #0006}.sdui-video-player{width:100%;height:auto;display:block}.sdui-audio{width:100%;padding:.75rem 1rem;background:var(--town-surface);border-radius:var(--town-radius-md);border:1px solid var(--town-surface-border);box-shadow:0 4px 16px #00000040}.sdui-audio-player{width:100%;display:block}.demo-app-root{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background-color:var(--town-bg);color:var(--town-fg);font-family:var(--town-font-family);-webkit-font-smoothing:antialiased}.demo-top-header{height:56px;flex-shrink:0;position:sticky;top:0;z-index:50;background:#131d2ef2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--town-surface-border);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 20px #0006}.demo-brand-container{display:flex;align-items:center;gap:.875rem}.demo-brand-icon{width:34px;height:34px;border-radius:var(--town-radius-md);background:linear-gradient(135deg,var(--town-primary),var(--town-accent));display:flex;align-items:center;justify-content:center;font-size:1.15rem;box-shadow:0 0 16px #6366f159}.demo-title-row{display:flex;align-items:center;gap:.5rem}.demo-title{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.01em;color:#fff}.demo-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.15rem .5rem;border-radius:9999px;background:#6366f12e;border:1px solid rgba(99,102,241,.4);color:#a5b4fc}.demo-subtitle{margin:0;font-size:.7rem;color:var(--town-text-muted)}.demo-header-actions{display:flex;align-items:center;gap:.875rem}.demo-stream-pill{display:flex;align-items:center;gap:.5rem;padding:.3rem .75rem;border-radius:9999px;background:#090d16;border:1px solid var(--town-surface-border);font-size:.75rem}.demo-indicator-dot{width:8px;height:8px;border-radius:9999px}.demo-indicator-streaming{background-color:var(--town-warning);box-shadow:0 0 8px var(--town-warning);animation:demo-pulse 1.5s infinite ease-in-out}.demo-indicator-done{background-color:var(--town-success);box-shadow:0 0 8px var(--town-success)}@keyframes demo-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.demo-status-streaming{color:#fde68a;font-weight:500}.demo-status-done{color:#a7f3d0;font-weight:500}.demo-latency-picker{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--town-text-muted)}.demo-select{background:#090d16;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);color:var(--town-fg);padding:.25rem .5rem;font-size:.75rem;outline:none;cursor:pointer;transition:border-color .15s}.demo-select:focus{border-color:var(--town-primary)}.demo-button{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--town-radius-sm);border:1px solid transparent;cursor:pointer;transition:all .15s ease-in-out;-webkit-user-select:none;user-select:none;font-family:var(--town-font-family)}.demo-button:active{transform:scale(.97)}.demo-button-replay{background:linear-gradient(135deg,var(--town-primary),var(--town-primary-hover));color:var(--town-primary-fg, #0f1031);box-shadow:0 2px 8px #f8b78966;font-weight:600}.demo-button-replay:hover{filter:brightness(1.1)}.demo-button-toggle{background:#090d16;border-color:var(--town-surface-border);color:var(--town-fg)}.demo-button-toggle:hover{background:var(--town-surface);border-color:var(--town-primary)}.demo-button-retry{background:#991b1b;color:#fee2e2;border-radius:var(--town-radius-sm);padding:.25rem .6rem;font-size:.75rem}.demo-body-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;width:100%;scroll-behavior:smooth}.demo-canvas-viewport{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;position:relative;background-color:var(--town-bg)}.demo-inspector-drawer{width:320px;flex-shrink:0;border-left:1px solid var(--town-surface-border);background:var(--town-surface);display:flex;flex-direction:column;overflow-y:auto;padding:1rem;gap:.75rem}.demo-inspector-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.5rem;border-bottom:1px solid var(--town-surface-border)}.demo-inspector-title{margin:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--town-fg)}.demo-inspector-count{font-size:.7rem;color:var(--town-text-muted);font-family:var(--town-font-mono)}.demo-inspector-content{display:flex;flex-direction:column;gap:.6rem}.demo-inspector-region-card{background:#090d16;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);padding:.6rem .75rem}.demo-inspector-region-title{display:flex;justify-content:space-between;font-size:.75rem;font-weight:700;color:var(--town-accent);margin-bottom:.4rem}.demo-inspector-node-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.demo-inspector-node-item{display:flex;justify-content:space-between;font-size:.7rem;font-family:var(--town-font-mono)}.demo-inspector-node-type{color:#cffafe}.demo-inspector-node-id{color:var(--town-text-muted);font-size:.65rem}.demo-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:4rem 1rem}.demo-spinner{width:44px;height:44px;border-radius:9999px;border:3px solid var(--town-surface-border);border-top-color:var(--town-primary);animation:demo-spin .8s linear infinite;margin-bottom:1.25rem}@keyframes demo-spin{to{transform:rotate(360deg)}}.demo-loading-text{margin:0;font-size:.95rem;font-weight:600;color:var(--town-fg)}.demo-loading-subtext{margin:.25rem 0 0;font-size:.75rem;color:var(--town-text-muted)}.demo-error-banner{margin:1rem 1.5rem;padding:1rem 1.25rem;border-radius:var(--town-radius-md);background:#991b1b40;border:1px solid rgba(239,68,68,.4);display:flex;align-items:center;justify-content:space-between}.demo-error-title{margin:0;font-size:.85rem;font-weight:700;color:#fee2e2}.demo-error-message{margin:.2rem 0 0;font-size:.75rem;color:#fca5a5}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.w-full{width:100%}.w-auto{width:auto}.h-full{height:100%}.h-auto{height:auto}.min-h-screen{min-height:100vh}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-lg{max-width:32rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mt-auto{margin-top:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-auto{overflow-x:auto}.rounded,.rounded-md{border-radius:var(--town-radius-sm)}.rounded-lg{border-radius:var(--town-radius-md)}.rounded-xl{border-radius:12px}.rounded-2xl{border-radius:var(--town-radius-lg)}.rounded-full{border-radius:9999px}.border{border-width:1px;border-style:solid;border-color:var(--town-surface-border)}.border-t{border-top-width:1px;border-top-style:solid;border-top-color:var(--town-surface-border)}.border-b{border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:var(--town-surface-border)}.border-l{border-left-width:1px;border-left-style:solid;border-left-color:var(--town-surface-border)}.border-r{border-right-width:1px;border-right-style:solid;border-right-color:var(--town-surface-border)}.border-transparent{border-color:transparent}.font-sans{font-family:var(--town-font-family)}.font-mono{font-family:var(--town-font-mono)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.tracking-tight{letter-spacing:-.025em}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-1{display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.text-white{color:#fff}.text-slate-100{color:var(--town-fg)}.text-slate-200{color:#e2e8f0}.text-slate-300{color:#cbd5e1}.text-slate-400{color:var(--town-text-muted)}.text-slate-500{color:#64748b}.text-indigo-300{color:#a5b4fc}.text-indigo-400{color:#818cf8}.text-cyan-300{color:var(--town-accent)}.text-emerald-400{color:var(--town-success)}.text-amber-400{color:var(--town-warning)}.text-red-400{color:var(--town-error)}.bg-slate-900{background-color:var(--town-surface)}.bg-slate-950{background-color:var(--town-bg)}.bg-slate-800{background-color:#ffffff0d}.bg-indigo-600{background-color:var(--town-primary)}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow-md{box-shadow:0 4px 6px -1px #0000004d}.shadow-lg{box-shadow:0 10px 15px -3px #0006}.shadow-xl{box-shadow:0 20px 25px -5px #00000080}.shadow-2xl{box-shadow:0 25px 50px -12px #000000a6}.sdui-testbench-wrapper{max-width:1060px;margin:0 auto;width:100%;padding:1.75rem 1.5rem 5rem;display:flex;flex-direction:column;gap:1.5rem;flex-shrink:0;box-sizing:border-box}.sdui-testbench-toolbar{background:#131d2ee6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.875rem;box-shadow:0 4px 16px #0000004d;flex-shrink:0}.sdui-testbench-search-row{display:flex;align-items:center;gap:1rem}.sdui-testbench-search-input{flex:1;background:#090d16;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);padding:.55rem .85rem;color:var(--town-fg);font-family:var(--town-font-family);font-size:.85rem;transition:all .2s ease}.sdui-testbench-search-input:focus{outline:none;border-color:var(--town-primary);box-shadow:0 0 0 2px #6366f140}.sdui-testbench-filter-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.sdui-testbench-filter-group{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sdui-testbench-filter-pill{background:#ffffff0a;border:1px solid var(--town-surface-border);border-radius:9999px;padding:.25rem .75rem;color:var(--town-text-muted);font-size:.75rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .15s ease}.sdui-testbench-filter-pill:hover{background:#ffffff14;color:var(--town-fg)}.sdui-testbench-filter-pill.active{background:#6366f133;border-color:var(--town-primary);color:#c7d2fe;font-weight:600}.sdui-testbench-card{background:var(--town-surface);border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);overflow:hidden;display:flex;flex-direction:column;flex-shrink:0;width:100%;min-height:fit-content;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease;box-shadow:0 4px 12px #00000040}.sdui-testbench-card:hover{border-color:#6366f166;box-shadow:0 6px 20px #00000059,0 0 12px #6366f11a}.sdui-testbench-card-header{padding:.75rem 1.25rem;background:#090d1673;border-bottom:1px solid var(--town-surface-border);display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.sdui-testbench-card-identity{display:flex;align-items:center;gap:.65rem}.sdui-testbench-type-badge{font-family:var(--town-font-mono);font-size:.8rem;font-weight:700;color:#a5b4fc;background:#6366f129;border:1px solid rgba(99,102,241,.3);padding:.2rem .6rem;border-radius:var(--town-radius-sm)}.sdui-testbench-id-badge{font-family:var(--town-font-mono);font-size:.7rem;color:var(--town-text-muted)}.sdui-testbench-cat-pill{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .5rem;border-radius:9999px;background:#ffffff0d;color:var(--town-text-muted);border:1px solid var(--town-surface-border)}.sdui-testbench-card-actions{display:flex;align-items:center;gap:.5rem}.sdui-testbench-btn{background:#ffffff0d;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);padding:.25rem .65rem;color:var(--town-fg);font-size:.75rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .15s ease}.sdui-testbench-btn:hover{background:#ffffff1a;border-color:#fff3}.sdui-testbench-btn.active{background:#6366f140;border-color:var(--town-primary);color:#c7d2fe}.sdui-testbench-preview-frame{background:#090d16a6;padding:2rem 1.5rem;min-height:80px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:visible}.sdui-testbench-editor-section{border-top:1px solid var(--town-surface-border);background:#090d16;display:flex;flex-direction:column}.sdui-testbench-editor-bar{padding:.45rem 1.25rem;background:#131d2e80;border-bottom:1px solid var(--town-surface-border);display:flex;align-items:center;justify-content:space-between}.sdui-testbench-editor-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--town-text-muted);display:flex;align-items:center;gap:.5rem}.sdui-testbench-editor-status{font-size:.7rem;font-family:var(--town-font-mono)}.sdui-testbench-status-valid{color:var(--town-success)}.sdui-testbench-status-error{color:var(--town-error)}.sdui-testbench-textarea{width:100%;box-sizing:border-box;background:#090d16;color:#e2e8f0;font-family:var(--town-font-mono);font-size:.8rem;line-height:1.5;padding:.85rem 1.25rem;border:none;resize:vertical;min-height:120px;outline:none;transition:box-shadow .15s ease}.sdui-testbench-textarea:focus{box-shadow:inset 0 0 0 1px var(--town-primary)}.sdui-testbench-quick-bar{padding:.5rem 1.25rem;background:#131d2e4d;border-top:1px solid var(--town-surface-border);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sdui-testbench-quick-label{font-size:.65rem;color:var(--town-text-muted);text-transform:uppercase;letter-spacing:.05em}.sdui-testbench-quick-chip{background:#ffffff0a;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);padding:.15rem .5rem;color:var(--town-fg);font-size:.7rem;cursor:pointer;transition:all .15s ease}.sdui-testbench-quick-chip:hover{background:#6366f133;border-color:var(--town-primary);color:#c7d2fe}.sdui-testbench-select-group{display:inline-flex;align-items:center;gap:.4rem;background:#0f172ab3;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);padding:.2rem .5rem;transition:border-color .15s ease}.sdui-testbench-select-group:focus-within{border-color:var(--town-primary);box-shadow:0 0 0 2px #6366f140}.sdui-testbench-select-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--town-text-muted);-webkit-user-select:none;user-select:none;white-space:nowrap}.sdui-testbench-select{background:#0b1120;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#f1f5f9;font-family:inherit;font-size:.75rem;font-weight:500;padding:.2rem .5rem;outline:none;cursor:pointer;transition:all .15s ease}.sdui-testbench-select:hover{border-color:#6366f180;background:#111827}.sdui-testbench-select:focus{border-color:var(--town-primary);box-shadow:0 0 0 2px #6366f159}.sdui-testbench-select option{background:#0f172a;color:#f8fafc;padding:.35rem}.sdui-testbench-event-pill{font-family:var(--town-font-mono);font-size:.7rem;background:#10b98126;border:1px solid rgba(16,185,129,.4);color:#6ee7b7;padding:.15rem .5rem;border-radius:9999px;animation:demo-pulse 1s ease-in-out}.sdui-testbench-data-drawer{position:fixed;top:56px;right:0;bottom:0;width:440px;background:var(--town-surface);border-left:1px solid var(--town-surface-border);box-shadow:-8px 0 32px #00000080;z-index:60;display:flex;flex-direction:column;animation:sdui-slide-in-right .25s cubic-bezier(.16,1,.3,1)}@keyframes sdui-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.sdui-testbench-data-header{padding:1rem 1.25rem;border-bottom:1px solid var(--town-surface-border);display:flex;align-items:center;justify-content:space-between}.sdui-testbench-data-title{margin:0;font-size:.95rem;font-weight:700;color:var(--town-fg);display:flex;align-items:center;gap:.5rem}.sdui-testbench-data-content{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.sdui-testbench-closed-placeholder{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;background:#131d2e73;border:1px dashed var(--town-surface-border);border-radius:var(--town-radius-md);margin-bottom:.5rem}.sdui-testbench-closed-info{display:flex;align-items:center;gap:.85rem}.sdui-testbench-closed-icon{font-size:1.4rem}.sdui-testbench-closed-title{margin:0 0 .2rem;font-size:.85rem;font-weight:600;color:var(--town-fg)}.sdui-testbench-closed-desc{margin:0;font-size:.75rem;color:var(--town-text-muted)}.sdui-icon-showcase{display:flex;flex-direction:column;gap:1.25rem;width:100%}.sdui-icon-active-display{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#131d2e99;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);gap:1rem;flex-wrap:wrap}.sdui-icon-active-preview{display:flex;align-items:center;gap:1rem}.sdui-icon-active-bubble{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#6366f126;border:1px solid rgba(99,102,241,.35);border-radius:var(--town-radius-md);box-shadow:0 0 16px #6366f133}.sdui-icon-active-bubble .sdui-icon{width:24px;height:24px}.sdui-icon-active-details h4{margin:0;font-size:.95rem;font-weight:700;color:var(--town-fg);font-family:var(--town-font-mono)}.sdui-icon-active-details p{margin:.2rem 0 0;font-size:.75rem;color:var(--town-text-muted)}.sdui-icon-gallery-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.sdui-icon-gallery-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--town-text-muted)}.sdui-icon-search-input{background:#090d16;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-sm);padding:.35rem .75rem;font-size:.8rem;color:var(--town-fg);outline:none;min-width:200px;transition:border-color .15s ease}.sdui-icon-search-input:focus{border-color:var(--town-primary)}.sdui-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:.65rem;max-height:360px;overflow-y:auto;padding:.5rem .25rem}.sdui-icon-card{background:#0f172a99;border:1px solid var(--town-surface-border);border-radius:var(--town-radius-md);padding:.85rem .5rem .65rem;display:flex;flex-direction:column;align-items:center;gap:.45rem;cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1);text-align:center}.sdui-icon-card:hover{background:#6366f126;border-color:var(--town-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d,0 0 10px #6366f133}.sdui-icon-card.active{background:#6366f140;border-color:var(--town-primary);box-shadow:0 0 12px #6366f14d}.sdui-icon-card-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#c7d2fe}.sdui-icon-card-caption{font-size:.75rem;font-family:var(--town-font-mono);color:var(--town-fg);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sdui-icon-card-code{font-size:.62rem;font-family:var(--town-font-mono);color:#94a3b8;background:#0006;border:1px solid rgba(255,255,255,.05);padding:.1rem .35rem;border-radius:4px;white-space:nowrap}.studio-root{background-color:var(--town-bg, #090d16);color:var(--town-fg, #f8fafc);display:flex;flex-direction:column;font-family:var(--town-font-family, "Inter", sans-serif);height:100vh;overflow:hidden;-webkit-user-select:none;user-select:none;width:100vw;--scrollbar-radius: var(--town-radius-sm, 6px);--scrollbar-size: 6px;--scrollbar-size-thin: 4px;--scrollbar-thumb: rgba(148, 163, 184, .22);--scrollbar-thumb-active: var(--town-secondary, #64748b);--scrollbar-thumb-hover: rgba(148, 163, 184, .45);--scrollbar-track: var(--town-bg, rgba(15, 23, 42, .4))}.studio-header{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:var(--town-surface, #131d2e);border-bottom:1px solid var(--town-surface-border, #1f293d);z-index:50;gap:16px;flex-shrink:0}.studio-header-left,.studio-header-center,.studio-header-right{display:flex;align-items:center;gap:12px}.studio-brand{display:flex;align-items:center;gap:10px}.studio-brand-icon{width:28px;height:28px;background:linear-gradient(135deg,var(--town-primary, #6366f1),var(--town-accent, #38bdf8));border-radius:var(--town-radius-sm, 6px);display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px #6366f140}.studio-brand-meta{display:flex;flex-direction:column}.studio-brand-title{font-size:.9rem;font-weight:700;color:var(--town-fg, #f8fafc);line-height:1.1}.studio-brand-subtitle{font-size:.72rem;color:var(--town-text-muted, #94a3b8)}.studio-screen-picker-wrap{margin-left:12px}.studio-screen-select{background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 10px);color:var(--town-fg, #f8fafc);font-size:.8rem;font-weight:500;padding:5px 10px;outline:none;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.studio-screen-select:hover{border-color:var(--town-primary, #6366f1)}.studio-screen-select:focus{border-color:var(--town-primary, #6366f1);box-shadow:0 0 0 2px #6366f140}.studio-screen-select optgroup{background:var(--town-surface, #131d2e);color:var(--town-accent, #38bdf8);font-weight:600}.studio-screen-select option{background:var(--town-surface, #131d2e);color:var(--town-fg, #f8fafc);font-weight:400}.studio-device-switcher{display:flex;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 10px);padding:2px;gap:2px}.studio-device-btn{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--town-radius-sm, 6px);border:none;background:transparent;color:var(--town-secondary, #64748b);font-size:.78rem;cursor:pointer;transition:all .15s ease}.studio-device-btn:hover{color:var(--town-fg, #f8fafc)}.studio-device-btn.active{background:var(--town-surface, #131d2e);color:var(--town-primary, #6366f1);font-weight:600;box-shadow:0 1px 3px #0000004d}.studio-mode-toggle{display:flex;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 10px);padding:2px;gap:2px}.studio-mode-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--town-radius-sm, 6px);border:none;background:transparent;color:var(--town-text-muted, #94a3b8);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.studio-mode-btn:hover{color:var(--town-fg, #f8fafc)}.studio-mode-btn.active{background:#6366f126;color:var(--town-primary, #6366f1);border:1px solid var(--town-primary, #6366f1);font-weight:600}.studio-history-group{display:flex;align-items:center;gap:4px}.studio-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--town-radius-sm, 6px);color:var(--town-text-muted, #94a3b8);cursor:pointer;transition:all .15s ease}.studio-icon-btn:hover:not(:disabled){background:var(--town-surface, #131d2e);color:var(--town-fg, #f8fafc);border-color:var(--town-surface-border, #1f293d)}.studio-icon-btn:disabled{opacity:.35;cursor:not-allowed}.studio-icon-btn-sm{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 4px);color:var(--town-fg, #f8fafc);cursor:pointer}.studio-icon-btn-sm:hover{background:#6366f126;border-color:var(--town-primary, #6366f1)}.studio-action-divider{width:1px;height:20px;background:var(--town-surface-border, #1f293d)}.studio-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;font-weight:600;border-radius:var(--town-radius-sm, 6px);cursor:pointer;border:none;transition:all .15s ease}.studio-btn-primary{background:var(--town-primary, #f8b789);color:var(--town-primary-fg, #0f1031);box-shadow:0 0 10px #f8b78940;font-weight:600}.studio-btn-primary:hover{background:var(--town-primary-hover, #4f46e5)}.studio-btn-secondary{background:var(--town-surface, #131d2e);color:var(--town-fg, #f8fafc);border:1px solid var(--town-surface-border, #1f293d)}.studio-btn-secondary:hover{background:#6366f11f;border-color:var(--town-primary, #6366f1)}.studio-workspace{display:flex;flex:1;height:calc(100vh - 52px);overflow:hidden}.studio-layout-editor{flex:1;background-color:var(--town-bg, #090d16);background-image:radial-gradient(var(--town-surface-border, #1f293d) 1px,transparent 1px);background-size:20px 20px;overflow:auto;display:flex;flex-direction:column}.studio-editor-stage{flex:1;display:flex;padding:32px 24px;min-height:min-content;min-width:100%;width:max-content;box-sizing:border-box}.studio-viewport-container{display:flex;flex-direction:column;align-items:center;margin:0 auto;transition:max-width .25s ease}.studio-viewport-container.tablet,.studio-viewport-container.mobile{background:var(--town-surface, #131d2e);border:12px solid var(--town-surface-border, #1f293d);border-radius:36px;box-shadow:0 25px 50px -12px #000000b3;padding:12px 6px}.studio-device-bezel-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.studio-bezel-speaker{width:48px;height:4px;background:var(--town-surface-border, #334155);border-radius:2px}.studio-bezel-camera{width:8px;height:8px;background:var(--town-surface-border, #334155);border-radius:50%}.studio-viewport-canvas{background:var(--town-surface, #131d2e);border-radius:var(--town-radius-md, 8px);min-height:600px;box-shadow:var(--town-shadow-md, 0 4px 20px rgba(0, 0, 0, .5));border:1px solid var(--town-surface-border, #1f293d);display:flex;flex-direction:column}.studio-canvas-layout-root{padding:16px;display:flex;flex-direction:column;gap:16px;width:100%}.studio-canvas-region-section{border:1px dashed var(--town-surface-border, rgba(51, 65, 85, .7));border-radius:var(--town-radius-sm, 6px);background:#131d2e59;display:flex;flex-direction:column;transition:all .15s ease}.studio-canvas-region-section:hover{border-color:var(--town-primary-subtle, rgba(99, 102, 241, .45))}.studio-canvas-region-section.is-section-over{border-color:var(--town-primary, #6366f1)!important;border-style:dashed;background-color:var(--town-primary-subtle, rgba(99, 102, 241, .08));box-shadow:0 0 20px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-canvas-section-header{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;border-bottom:1px dashed var(--town-surface-border, rgba(51, 65, 85, .6));background:#131d2e80;border-top-left-radius:var(--town-radius-sm, 6px);border-top-right-radius:var(--town-radius-sm, 6px)}.studio-canvas-section-tag{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--town-secondary, #64748b)}.studio-canvas-section-body{padding:8px 12px;display:flex;flex-direction:column;gap:6px;min-height:50px}.studio-canvas-middle-row{display:flex;gap:16px;align-items:stretch;width:100%}.studio-region-left-col{width:240px;flex-shrink:0}.studio-region-main-col{flex:1;min-width:0}.studio-region-sidebar-col{width:280px;flex-shrink:0}.studio-canvas-section-empty{padding:24px 12px;text-align:center}.studio-section-empty-text{font-size:.76rem;color:var(--town-secondary, #64748b);font-style:italic}.studio-canvas-empty{padding:48px 16px;text-align:center;color:var(--town-text-muted, #94a3b8);font-size:.9rem}.studio-drop-zone{min-height:12px;border:1px dashed transparent;border-radius:var(--town-radius-sm, 4px);transition:all .15s ease;display:flex;align-items:center;justify-content:center}.studio-drop-zone-text{display:none;font-size:.72rem;color:var(--town-primary, #6366f1);font-weight:600}.studio-drop-zone.active{min-height:38px;background:var(--town-primary-subtle, rgba(99, 102, 241, .12));border-color:var(--town-primary, #6366f1)}.studio-drop-zone.active .studio-drop-zone-text{display:block}.studio-canvas-node-wrapper{position:relative;border-radius:var(--town-radius-sm, 6px);outline:1px dashed transparent;outline-offset:-1px;transition:outline-color .15s ease,opacity .15s ease,background-color .15s ease;-webkit-user-select:none;user-select:none;cursor:grab}.studio-canvas-node-wrapper:active{cursor:grabbing}.studio-canvas-node-wrapper.is-dragging{opacity:.45;cursor:grabbing}.studio-canvas-node-wrapper.is-container-hover{outline:2px dashed var(--town-primary, #6366f1)!important;outline-offset:-2px;background-color:var(--town-primary-subtle, rgba(99, 102, 241, .08));box-shadow:0 0 16px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-drop-target-active{outline:2px dashed var(--town-primary, #6366f1)!important;outline-offset:-2px;background-color:var(--town-primary-subtle, rgba(99, 102, 241, .08))!important;box-shadow:0 0 16px var(--town-focus-ring, rgba(99, 102, 241, .25))!important;border-radius:var(--town-radius-sm, 6px);position:relative;transition:outline-color .15s ease,background-color .15s ease,box-shadow .15s ease}.studio-drop-target-active.studio-drop-zone{padding-top:8px;padding-bottom:8px;margin-top:4px;margin-bottom:4px}.studio-drop-target-active.studio-canvas-node-wrapper,.studio-drop-target-active.sdui-studio-node-wrapper{padding:4px}.studio-pointer-dragging .studio-drop-target-active{pointer-events:auto!important}.studio-pointer-dragging .studio-drop-target-active>*{pointer-events:none!important}.studio-canvas-node-wrapper.is-repeater{border:1px dashed var(--town-warning, #f59e0b);border-radius:var(--town-radius-md, 8px);padding:10px;background-color:#f59e0b08;margin-top:6px;margin-bottom:6px;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;position:relative}.studio-canvas-node-wrapper.is-repeater:hover{border-color:var(--town-warning, #f59e0b);background-color:#f59e0b0f}.studio-canvas-node-wrapper.is-repeater.selected{border-color:var(--town-warning, #f59e0b);border-style:solid;outline:2px solid var(--town-warning, #f59e0b);box-shadow:0 0 16px #f59e0b40}.studio-repeater-empty-drop-target{transition:border-color .15s ease,background-color .15s ease}.studio-repeater-empty-drop-target:hover{border-color:var(--town-warning, #f59e0b)!important;background-color:#f59e0b14!important}.studio-repeater-repetition-ghost{display:flex;align-items:center;justify-content:center;margin-top:8px;padding:12px 16px;border:1px dashed rgba(245,158,11,.45);border-radius:var(--town-radius-md, 8px);background:repeating-linear-gradient(-45deg,#f59e0b08,#f59e0b08 10px,#f59e0b0f 10px,#f59e0b0f 20px);opacity:.65;pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .2s ease}.studio-repeater-ghost-silhouette{display:flex;align-items:center;justify-content:center;width:100%}.studio-repeater-ghost-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;color:var(--town-warning, #fbbf24);background:#131d2ed9;padding:3px 10px;border-radius:9999px;border:1px solid rgba(245,158,11,.35);text-transform:uppercase;letter-spacing:.03em;box-shadow:0 2px 8px #00000059}.studio-canvas-node-wrapper.is-drop-before{position:relative}.studio-canvas-node-wrapper.is-drop-before:before{content:"";position:absolute;top:0;left:-4px;width:4px;height:100%;background:var(--town-primary, #6366f1);border-radius:2px;box-shadow:0 0 10px var(--town-focus-ring, rgba(99, 102, 241, .6));z-index:20;pointer-events:none}.studio-canvas-node-wrapper.is-drop-after{position:relative}.studio-canvas-node-wrapper.is-drop-after:after{content:"";position:absolute;top:0;right:-4px;width:4px;height:100%;background:var(--town-primary, #6366f1);border-radius:2px;box-shadow:0 0 10px var(--town-focus-ring, rgba(99, 102, 241, .6));z-index:20;pointer-events:none}.studio-canvas-node-wrapper:hover{outline-color:var(--town-primary-subtle, rgba(99, 102, 241, .45))}.studio-canvas-node-wrapper.selected{outline:2px solid var(--town-primary, #6366f1);outline-offset:-2px;box-shadow:0 0 16px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-canvas-node-content{pointer-events:auto}.studio-node-loop-indicator{position:absolute;top:-10px;right:8px;background:var(--town-warning, #f59e0b);color:#000;font-size:.65rem;font-weight:700;padding:1px 6px;border-radius:var(--town-radius-sm, 4px);z-index:10;text-transform:uppercase}.studio-quick-actions-bar{position:absolute;top:-30px;left:0;display:flex;align-items:center;gap:4px;background:var(--town-surface, #131d2e);border:1px solid var(--town-primary, #6366f1);padding:2px 6px;border-radius:var(--town-radius-sm, 4px);z-index:40;box-shadow:var(--town-shadow-md, 0 4px 12px rgba(0, 0, 0, .5))}.studio-node-tag{font-size:.7rem;font-weight:700;color:var(--town-primary, #6366f1);text-transform:uppercase;margin-right:4px}.studio-quick-btn{background:var(--town-surface-border, #1f293d);border:none;color:var(--town-fg, #ffffff);font-size:.7rem;padding:3px 6px;border-radius:var(--town-radius-sm, 3px);cursor:pointer;display:flex;align-items:center;gap:4px;transition:background .15s ease}.studio-quick-btn:hover{background:var(--town-surface-hover, #1a263c)}.studio-quick-danger:hover{background:var(--town-error, #ef4444)}.studio-quick-drag{cursor:grab}.studio-quick-drag:active{cursor:grabbing}.studio-mock-node{width:100%}.studio-mock-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.72rem;font-weight:700;text-transform:uppercase}.studio-mock-badge.primary{background:var(--town-primary-subtle, rgba(99, 102, 241, .2));color:var(--town-primary, #6366f1)}.studio-mock-badge.secondary{background:#64748b33;color:var(--town-text-muted, #cbd5e1)}.studio-mock-badge.success{background:#10b98133;color:var(--town-success, #34d399)}.studio-mock-badge.warning{background:#f59e0b33;color:var(--town-warning, #fbbf24)}.studio-mock-badge.error{background:#ef444433;color:var(--town-error, #f87171)}.studio-mock-btn{padding:8px 18px;border-radius:var(--town-radius-sm, 6px);font-size:.84rem;font-weight:600;border:none;cursor:default}.studio-mock-btn.primary{background:var(--town-primary, #6366f1);color:var(--town-fg, #ffffff)}.studio-mock-btn.secondary{background:var(--town-surface, #131d2e);color:var(--town-fg, #ffffff);border:1px solid var(--town-surface-border, #1f293d)}.studio-mock-btn.outline{background:transparent;color:var(--town-primary, #6366f1);border:1px solid var(--town-primary, #6366f1)}.studio-mock-btn.full{width:100%}.studio-mock-icon-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--town-radius-sm, 4px);background:var(--town-bg, #090d16);font-size:.8rem}.studio-mock-input{width:100%;padding:8px 12px;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc)}.studio-mock-label{display:block;font-size:.8rem;font-weight:600;color:var(--town-fg, #f8fafc)}.studio-mock-required{color:var(--town-error, #ef4444);margin-left:4px}.studio-mock-link{color:var(--town-primary, #6366f1);text-decoration:underline;font-size:.84rem}.studio-mock-text.size-xs{font-size:.72rem}.studio-mock-text.size-sm{font-size:.8rem}.studio-mock-text.size-md{font-size:.9rem}.studio-mock-text.size-lg{font-size:1.1rem;font-weight:600}.studio-mock-text.size-xl{font-size:1.35rem;font-weight:700}.studio-mock-text.size-2xl{font-size:1.7rem;font-weight:800}.studio-mock-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.84rem}.studio-toggle-track{width:34px;height:20px;background:var(--town-surface-border, #1f293d);border-radius:10px;position:relative}.studio-toggle-track.checked{background:var(--town-primary, #6366f1)}.studio-toggle-thumb{width:16px;height:16px;background:var(--town-fg, #ffffff);border-radius:50%;position:absolute;top:2px;left:2px}.studio-toggle-track.checked .studio-toggle-thumb{left:16px}.studio-mock-alert{padding:12px 16px;border-radius:var(--town-radius-md, 8px);border-left:4px solid;background:var(--town-surface, #131d2e)}.studio-mock-alert.info{border-color:var(--town-accent, #38bdf8)}.studio-mock-alert.success{border-color:var(--town-success, #10b981)}.studio-mock-alert.warning{border-color:var(--town-warning, #f59e0b)}.studio-mock-alert.error{border-color:var(--town-error, #ef4444)}.studio-alert-title{font-weight:700;font-size:.86rem}.studio-alert-message{font-size:.78rem;color:var(--town-text-muted, #94a3b8);margin-top:2px}.studio-mock-audio{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--town-surface, #131d2e);border-radius:var(--town-radius-md, 8px)}.studio-audio-play{width:32px;height:32px;border-radius:50%;background:var(--town-primary, #6366f1);color:var(--town-fg, #ffffff);display:flex;align-items:center;justify-content:center;font-size:.8rem}.studio-audio-meta{flex:1}.studio-audio-title{font-size:.8rem;font-weight:600;display:block;margin-bottom:4px}.studio-audio-bar{height:4px;background:var(--town-bg, #090d16);border-radius:2px}.studio-audio-progress{width:45%;height:100%;background:var(--town-primary, #6366f1)}.studio-mock-dropdown{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);font-size:.82rem;color:var(--town-text-muted, #94a3b8)}.studio-mock-field{display:flex;flex-direction:column;gap:4px}.studio-mock-list{padding-left:20px;font-size:.84rem;color:var(--town-fg, #f8fafc)}.studio-mock-table{width:100%;border-collapse:collapse;font-size:.8rem}.studio-mock-table th{background:var(--town-surface, #131d2e);padding:8px 12px;text-align:left;border-bottom:1px solid var(--town-surface-border, #1f293d)}.studio-mock-table td{padding:8px 12px;border-bottom:1px solid var(--town-surface-border, #1f293d)}.studio-mock-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 8px)}.studio-mock-card-title{font-weight:700;font-size:.95rem;margin-bottom:10px}.studio-mock-carousel{width:100%;overflow-x:auto}.studio-carousel-track{display:flex;gap:16px}.studio-mock-loop-group{display:contents}.studio-mock-repeated-item{opacity:.85;filter:brightness(.95)}.studio-mock-flex{display:flex;width:100%}.studio-mock-grid{display:grid;width:100%}.studio-mock-hero{background:linear-gradient(180deg,var(--town-primary-subtle, rgba(99, 102, 241, .15)) 0%,rgba(19,29,46,.8) 100%);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-lg, 12px);padding:32px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.studio-hero-title{font-size:1.8rem;font-weight:800;color:var(--town-fg, #ffffff);letter-spacing:-.02em}.studio-hero-subtitle{font-size:.95rem;color:var(--town-text-muted, #94a3b8);margin-top:8px;max-width:600px}.studio-mock-event-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:10px;overflow:hidden;box-shadow:var(--town-shadow-md, 0 4px 12px rgba(0, 0, 0, .3));display:flex;flex-direction:column;min-width:240px}.studio-event-image-wrap{position:relative;height:140px;background:var(--town-bg, #090d16)}.studio-event-img{width:100%;height:100%;object-fit:cover}.studio-event-date-badge{position:absolute;top:10px;left:10px;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);padding:4px 8px;font-size:.7rem;font-weight:800;color:var(--town-primary, #6366f1)}.studio-event-details{padding:12px}.studio-event-title{font-size:.92rem;font-weight:700;color:var(--town-fg, #ffffff)}.studio-event-loc{font-size:.76rem;color:var(--town-secondary, #64748b);margin:4px 0 10px}.studio-event-footer{display:flex;align-items:center;justify-content:space-between}.studio-event-price{font-weight:700;color:var(--town-success, #10b981);font-size:.88rem}.studio-event-action-tag{font-size:.74rem;color:var(--town-primary, #6366f1);font-weight:600}.studio-mock-venue-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:10px;overflow:hidden;min-width:240px}.studio-venue-image-wrap{position:relative;height:120px}.studio-venue-img{width:100%;height:100%;object-fit:cover}.studio-venue-cap-badge{position:absolute;bottom:8px;right:8px;background:#131d2ed9;font-size:.68rem;padding:2px 6px;border-radius:var(--town-radius-sm, 4px);color:var(--town-fg, #ffffff)}.studio-venue-details{padding:10px 12px}.studio-venue-name{font-size:.9rem;font-weight:700}.studio-venue-addr{font-size:.74rem;color:var(--town-secondary, #64748b);margin-top:2px}.studio-mock-user-ticket{background:linear-gradient(135deg,var(--town-surface, #131d2e),var(--town-bg, #090d16));border:1px dashed var(--town-accent, #38bdf8);border-radius:var(--town-radius-lg, 12px);padding:16px;display:flex;align-items:center;justify-content:space-between}.studio-ticket-event{font-size:.95rem;font-weight:700;color:var(--town-fg, #ffffff)}.studio-ticket-seat{font-size:.78rem;color:var(--town-text-muted, #94a3b8);margin:4px 0 8px}.studio-ticket-status-pill{font-size:.65rem;padding:2px 6px;background:#10b98133;color:var(--town-success, #10b981);border-radius:var(--town-radius-sm, 4px);font-weight:700}.studio-ticket-barcode-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.studio-mock-qr-grid{width:54px;height:54px;background-color:#fff;background-image:linear-gradient(45deg,#000 25%,transparent 25%),linear-gradient(-45deg,#000 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#000 75%),linear-gradient(-45deg,transparent 75%,#000 75%);background-size:10px 10px;border-radius:4px}.studio-mock-qr-code{font-size:.65rem;font-family:var(--town-font-mono, monospace);color:var(--town-secondary, #64748b)}.studio-mock-scanner-frame{background:#000;border-radius:var(--town-radius-lg, 12px);padding:36px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.studio-scanner-reticle{width:140px;height:140px;position:relative}.studio-reticle-corner{position:absolute;width:20px;height:20px;border-color:var(--town-accent, #38bdf8);border-style:solid}.studio-reticle-corner.top-left{top:0;left:0;border-width:3px 0 0 3px}.studio-reticle-corner.top-right{top:0;right:0;border-width:3px 3px 0 0}.studio-reticle-corner.bottom-left{bottom:0;left:0;border-width:0 0 3px 3px}.studio-reticle-corner.bottom-right{bottom:0;right:0;border-width:0 3px 3px 0}.studio-scanner-scanline{position:absolute;left:0;right:0;top:50%;height:2px;background:var(--town-error, #ef4444);box-shadow:0 0 8px var(--town-error, #ef4444)}.studio-scanner-label{font-size:.78rem;color:var(--town-text-muted, #94a3b8)}.studio-mock-calendar-widget{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:10px;padding:14px}.studio-cal-header{display:flex;justify-content:space-between;font-size:.84rem;font-weight:700;margin-bottom:10px}.studio-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.studio-cal-col-header{font-size:.7rem;color:var(--town-secondary, #64748b);padding:4px 0}.studio-cal-cell{background:var(--town-bg, #090d16);border-radius:var(--town-radius-sm, 4px);padding:6px 2px;font-size:.74rem;min-height:48px;display:flex;flex-direction:column;align-items:center}.studio-cal-cell.has-event{border:1px solid var(--town-primary, #6366f1)}.studio-cal-event-pill{font-size:.6rem;background:var(--town-primary, #6366f1);color:#fff;border-radius:2px;padding:1px 2px;font-weight:700;margin-top:4px}.studio-mock-cart-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px}.studio-cart-header{display:flex;justify-content:space-between;font-weight:700;font-size:.88rem}.studio-cart-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--town-text-muted, #94a3b8)}.studio-cart-total{display:flex;justify-content:space-between;font-size:.95rem;font-weight:700;border-top:1px solid var(--town-surface-border, #1f293d);padding-top:8px}.studio-mock-purchasable-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:10px;overflow:hidden}.studio-prod-img{width:100%;height:130px;object-fit:cover}.studio-prod-details{padding:12px}.studio-prod-desc{font-size:.74rem;color:var(--town-secondary, #64748b);margin:4px 0 10px}.studio-prod-bottom{display:flex;align-items:center;justify-content:space-between}.studio-prod-price{font-weight:700;color:var(--town-success, #10b981)}.studio-mock-module-shell{border:1px dashed var(--town-primary-subtle, rgba(99, 102, 241, .4));border-radius:var(--town-radius-md, 8px);padding:10px;background:var(--town-primary-subtle, rgba(99, 102, 241, .03))}.studio-module-bar{font-size:.7rem;font-weight:700;color:var(--town-primary, #6366f1);text-transform:uppercase;margin-bottom:8px}.studio-mock-unknown{padding:16px;background:#ef44441a;border:1px solid var(--town-error, #ef4444);border-radius:var(--town-radius-sm, 6px);color:var(--town-error, #ef4444);font-size:.8rem}.studio-error-boundary-card{margin:40px auto;max-width:520px;padding:32px 24px;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-lg, 12px);text-align:center;box-shadow:var(--town-shadow-lg, 0 16px 36px rgba(0, 0, 0, .4))}.studio-error-boundary-icon{color:var(--town-warning, #f59e0b);margin-bottom:16px}.studio-error-boundary-title{font-size:1.1rem;font-weight:700;color:var(--town-fg, #f8fafc);margin-bottom:8px}.studio-error-boundary-message{font-size:.85rem;color:var(--town-text-muted, #94a3b8);margin-bottom:24px;font-family:var(--town-font-mono, monospace);background:#0000004d;padding:8px 12px;border-radius:var(--town-radius-sm, 6px);word-break:break-word}body.studio-pointer-dragging{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}body.studio-pointer-dragging *{-webkit-user-select:none!important;user-select:none!important}.studio-drag-ghost-container{pointer-events:none;position:fixed;top:0;left:0;z-index:999999;will-change:transform}.studio-drag-ghost{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#131d2ef0;border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 8px);box-shadow:var(--town-shadow-lg, 0 12px 28px rgba(0, 0, 0, .6)),0 0 12px var(--town-focus-ring, rgba(99, 102, 241, .25));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;pointer-events:none}.studio-drag-ghost.has-target{border-color:var(--town-primary, #6366f1);box-shadow:0 14px 32px #000000b3,0 0 20px var(--town-focus-ring, rgba(99, 102, 241, .45));transform:scale(1.04)}.studio-drag-ghost-icon{width:24px;height:24px;background:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1);border-radius:var(--town-radius-sm, 4px);display:flex;align-items:center;justify-content:center;flex-shrink:0}.studio-drag-ghost-info{display:flex;flex-direction:column;gap:1px}.studio-drag-ghost-title{font-size:.82rem;font-weight:600;color:var(--town-fg, #f8fafc);white-space:nowrap}.studio-drag-ghost-status{font-size:.68rem;font-weight:500;color:var(--town-primary, #6366f1);white-space:nowrap}.sdui-studio-node-wrapper{position:relative;border-radius:var(--town-radius-sm, 4px);transition:outline .15s ease}.sdui-studio-node-wrapper:hover{outline:1px dashed var(--town-primary-subtle, rgba(99, 102, 241, .4))}.sdui-studio-node-wrapper:hover:not(:has(.sdui-studio-node-wrapper:hover)){outline:1.5px solid var(--town-primary, #6366f1)}.sdui-studio-badge{display:none!important}.studio-canvas-breadcrumb-bar{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#131d2ee6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--town-surface-border, rgba(56, 189, 248, .28));border-radius:9999px;box-shadow:0 8px 32px #0000008c,0 0 1px var(--town-focus-ring, rgba(99, 102, 241, .35));z-index:9999;max-width:calc(100vw - 640px);overflow-x:auto;scrollbar-width:none;animation:breadcrumbBarIn .18s cubic-bezier(.16,1,.3,1);pointer-events:auto}.studio-canvas-breadcrumb-bar::-webkit-scrollbar{display:none}@keyframes breadcrumbBarIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.studio-breadcrumb-region{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:700;letter-spacing:.05em;color:var(--town-text-muted, #94a3b8);padding:2px 8px;background:var(--town-surface, rgba(30, 41, 59, .7));border-radius:9999px;border:1px solid var(--town-surface-border, rgba(148, 163, 184, .2))}.studio-breadcrumb-region-dot{width:5px;height:5px;border-radius:50%;background:var(--town-accent, #38bdf8);box-shadow:0 0 6px var(--town-accent, #38bdf8)}.studio-breadcrumb-separator{color:var(--town-secondary, #64748b);font-size:.8rem;-webkit-user-select:none;user-select:none;font-weight:400}.studio-breadcrumb-item{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid transparent;border-radius:var(--town-radius-sm, 6px);padding:3px 7px;color:var(--town-text-muted, #cbd5e1);font-size:.72rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.studio-breadcrumb-item:hover{background:var(--town-primary-subtle, rgba(99, 102, 241, .12));border-color:var(--town-primary-subtle, rgba(99, 102, 241, .3));color:var(--town-fg, #f8fafc)}.studio-breadcrumb-item.is-leaf{color:var(--town-accent, #38bdf8);font-weight:600}.studio-breadcrumb-item.is-selected{background:var(--town-primary-subtle, rgba(99, 102, 241, .18));border-color:var(--town-primary, #6366f1);color:#fff}.studio-breadcrumb-item.is-hovered{border-color:var(--town-primary, #6366f1);box-shadow:0 0 8px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-breadcrumb-icon{flex-shrink:0;opacity:.85}.studio-breadcrumb-type{text-transform:capitalize}.studio-breadcrumb-id{font-family:var(--town-font-mono, monospace);font-size:.68rem;color:var(--town-text-muted, #94a3b8);opacity:.85}.studio-breadcrumb-badge{font-size:.7rem;line-height:1}.studio-breadcrumb-target-hover{outline:2px solid var(--town-accent, #38bdf8)!important;outline-offset:2px!important;box-shadow:0 0 16px #38bdf859!important}@keyframes studioNodePulse{0%{outline:3px solid var(--town-primary, rgba(99, 102, 241, .95));box-shadow:0 0 18px var(--town-focus-ring, rgba(99, 102, 241, .7))}50%{outline:3px solid var(--town-primary, #6366f1);box-shadow:0 0 28px var(--town-focus-ring, rgba(99, 102, 241, .9))}to{outline:2px solid transparent;box-shadow:none}}.studio-node-highlight-pulse{animation:studioNodePulse 1.6s ease-out!important}.studio-left-sidebar{position:relative;background:var(--town-surface, #131d2e);border-right:1px solid var(--town-surface-border, #1f293d);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.studio-sidebar-resizer-right{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:50;transition:background .15s ease}.studio-sidebar-resizer-right:hover,.studio-left-sidebar.dragging-h .studio-sidebar-resizer-right{background:var(--town-primary, #6366f1);box-shadow:0 0 8px #6366f199}.studio-left-top{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.studio-left-bottom{display:flex;flex-direction:column;flex-shrink:0;background:var(--town-bg, #090d16);overflow:hidden}.studio-objects-sidebar,.studio-data-integrations{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.studio-sources-list{flex:1;overflow-y:auto;min-height:0;padding:10px;display:flex;flex-direction:column;gap:8px}.studio-source-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);padding:8px 10px;cursor:pointer;transition:all .15s ease}.studio-source-card.expanded{border-color:var(--town-primary, #6366f1);background:var(--town-bg, #090d16)}.studio-source-meta{display:flex;align-items:center;gap:6px;min-width:0}.studio-source-dot{width:6px;height:6px;border-radius:50%;background:var(--town-success, #10b981);box-shadow:0 0 6px var(--town-success, #10b981);flex-shrink:0}.studio-source-key{font-size:.78rem;font-family:var(--town-font-mono, monospace);font-weight:600;color:var(--town-accent, #38bdf8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-source-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.studio-source-badge{font-size:.65rem;padding:1px 5px;background:#6366f11f;color:var(--town-primary, #6366f1);border-radius:3px;font-weight:600}.studio-source-del-btn{background:transparent;border:none;color:var(--town-secondary, #64748b);cursor:pointer;padding:2px;display:flex;align-items:center}.studio-source-preview{margin-top:8px;padding-top:8px;border-top:1px solid var(--town-surface-border, #1f293d);max-height:140px;overflow-y:auto}.studio-code-snippet{font-family:var(--town-font-mono, monospace);font-size:.68rem;color:var(--town-accent, #38bdf8);margin:0;white-space:pre-wrap;word-break:break-all}.studio-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--town-surface-border, #1f293d);background:var(--town-surface, #131d2e);flex-shrink:0}.studio-sidebar-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--town-secondary, #64748b)}.studio-sidebar-count{font-size:.72rem;padding:2px 6px;background:var(--town-bg, #090d16);border-radius:10px;color:var(--town-text-muted, #94a3b8)}.studio-header-title-group{display:flex;align-items:center;gap:8px}.studio-search-bar{display:flex;align-items:center;gap:8px;margin:10px 14px;padding:6px 10px;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);color:var(--town-secondary, #64748b);flex-shrink:0}.studio-search-input{background:transparent;border:none;outline:none;color:var(--town-fg, #f8fafc);font-size:.82rem;width:100%}.studio-search-input::placeholder{color:var(--town-secondary, #64748b)}.studio-clear-btn{background:transparent;border:none;color:var(--town-secondary, #64748b);font-size:1rem;cursor:pointer;line-height:1}.studio-objects-scroll{flex:1;overflow-y:auto;padding:0 10px 16px}.studio-accordion{display:flex;flex-direction:column;gap:6px}.studio-accordion-item{border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);background:var(--town-surface, #131d2e);overflow:hidden}.studio-accordion-header{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;background:transparent;border:none;color:var(--town-fg, #f8fafc);font-size:.8rem;font-weight:600;text-align:left;cursor:pointer;transition:background .15s}.studio-accordion-header:hover{background:var(--town-bg, #090d16)}.studio-accordion-header.expanded{background:#6366f114;border-bottom:1px solid var(--town-surface-border, #1f293d)}.studio-accordion-title{flex:1}.studio-accordion-badge{font-size:.7rem;padding:1px 6px;background:var(--town-bg, #090d16);border-radius:8px;color:var(--town-primary, #6366f1)}.studio-accordion-content{padding:8px}.studio-catalog-grid{display:flex;flex-direction:column;gap:4px}.studio-object-item{display:flex;align-items:center;gap:10px;padding:6px 8px;background:var(--town-bg, #090d16);border:1px solid transparent;border-radius:var(--town-radius-sm, 6px);cursor:grab;transition:all .15s ease;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;touch-action:none}.studio-object-item:hover{background:var(--town-surface, #131d2e);border-color:var(--town-surface-border, #1f293d)}.studio-object-item:active{cursor:grabbing}.studio-object-icon,.studio-object-info,.studio-object-name,.studio-object-desc{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.studio-object-add-btn{pointer-events:auto}.studio-object-icon{width:26px;height:26px;background:#6366f11f;color:var(--town-primary, #6366f1);border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.studio-object-info{display:flex;flex-direction:column;flex:1;min-width:0}.studio-object-name{font-size:.8rem;font-weight:600;color:var(--town-fg, #f8fafc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-object-desc{font-size:.68rem;color:var(--town-secondary, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-object-add-btn{background:transparent;border:none;color:var(--town-secondary, #64748b);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.studio-object-add-btn:hover{background:var(--town-primary, #6366f1);color:#fff}.studio-subcategory-pills{display:flex;gap:4px;margin-bottom:8px;overflow-x:auto;padding-bottom:4px}.studio-sub-pill{padding:3px 8px;border-radius:12px;font-size:.72rem;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);color:var(--town-text-muted, #94a3b8);cursor:pointer;white-space:nowrap}.studio-sub-pill.active{background:var(--town-primary, #6366f1);color:#fff;border-color:var(--town-primary, #6366f1);font-weight:600}.studio-sources-list{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.studio-source-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);padding:6px 8px;cursor:pointer;transition:all .15s}.studio-source-card:hover{border-color:var(--town-primary, #6366f1)}.studio-source-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.studio-source-meta{display:flex;align-items:center;gap:6px;overflow:hidden}.studio-source-dot{width:6px;height:6px;border-radius:50%;background:var(--town-success, #10b981);box-shadow:0 0 6px var(--town-success, #10b981)}.studio-source-key{font-size:.76rem;font-family:var(--town-font-mono, monospace);color:var(--town-accent, #38bdf8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-source-actions{display:flex;align-items:center;gap:6px}.studio-source-badge{font-size:.65rem;padding:1px 4px;background:var(--town-bg, #090d16);border-radius:4px;color:var(--town-secondary, #64748b);text-transform:uppercase}.studio-source-count{font-size:.68rem;color:var(--town-secondary, #64748b)}.studio-source-del-btn{background:transparent;border:none;color:var(--town-secondary, #64748b);cursor:pointer;padding:2px}.studio-source-del-btn:hover{color:var(--town-error, #ef4444)}.studio-source-preview{margin-top:6px;padding-top:6px;border-top:1px solid var(--town-surface-border, #1f293d)}.studio-code-snippet{font-family:var(--town-font-mono, monospace);font-size:.68rem;color:var(--town-accent, #38bdf8);max-height:120px;overflow-y:auto;white-space:pre-wrap}.studio-right-sidebar{position:relative;background:var(--town-surface, #131d2e);border-left:1px solid var(--town-surface-border, #1f293d);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.studio-sidebar-resizer-left{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:50;transition:background .15s ease}.studio-sidebar-resizer-left:hover,.studio-right-sidebar.dragging-h .studio-sidebar-resizer-left{background:var(--town-primary, #6366f1);box-shadow:0 0 8px var(--town-focus-ring, rgba(99, 102, 241, .4))}.studio-right-top{flex:1;display:flex;flex-direction:column;min-height:0}.studio-splitter-horizontal{height:8px;width:100%;cursor:row-resize;background:var(--town-bg, #090d16);border-top:1px solid var(--town-surface-border, #1f293d);border-bottom:1px solid var(--town-surface-border, #1f293d);display:flex;align-items:center;justify-content:center;z-index:15;flex-shrink:0;transition:background .15s ease}.studio-splitter-horizontal:hover,.studio-left-sidebar.dragging-v .studio-splitter-horizontal,.studio-right-sidebar.dragging-v .studio-splitter-horizontal{background:var(--town-surface-hover, #1a263c)}.studio-splitter-handle{width:36px;height:3px;border-radius:2px;background:var(--town-secondary, #64748b);transition:all .15s ease}.studio-splitter-horizontal:hover .studio-splitter-handle,.studio-left-sidebar.dragging-v .studio-splitter-handle,.studio-right-sidebar.dragging-v .studio-splitter-handle{background:var(--town-primary, #6366f1);width:48px}.studio-right-bottom{display:flex;flex-direction:column;flex-shrink:0;background:var(--town-bg, #090d16);overflow:hidden}.studio-properties-sidebar{display:flex;flex-direction:column;height:100%}.studio-node-type-badge{font-size:.7rem;padding:2px 6px;background:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1);border-radius:var(--town-radius-sm, 4px);font-weight:600}.studio-node-section-badge{font-size:.68rem;padding:2px 6px;background:#10b98126;color:var(--town-success, #10b981);border:1px solid rgba(16,185,129,.35);border-radius:var(--town-radius-sm, 4px);font-weight:600}.studio-tabs-bar{display:flex;border-bottom:1px solid var(--town-surface-border, #1f293d);background:var(--town-surface, #131d2e);flex-shrink:0}.studio-tab-btn{flex:1;padding:8px 4px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--town-secondary, #64748b);font-size:.78rem;font-weight:600;cursor:pointer;text-align:center;transition:all .15s ease}.studio-tab-btn:hover{color:var(--town-fg, #f8fafc)}.studio-tab-btn.active{color:var(--town-primary, #6366f1);border-bottom-color:var(--town-primary, #6366f1);background:var(--town-primary-subtle, rgba(99, 102, 241, .08))}.studio-properties-body{flex:1;overflow-y:auto;padding:14px}.studio-tab-content{display:flex;flex-direction:column;gap:16px}.studio-prop-section{display:flex;flex-direction:column;gap:10px}.studio-prop-heading{font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--town-text-muted, #94a3b8);font-weight:700;margin-bottom:2px}.studio-form-group{display:flex;flex-direction:column;gap:4px}.studio-label{font-size:.76rem;color:var(--town-fg, #f8fafc);font-weight:500;display:flex;align-items:center;gap:6px}.studio-label-desc{color:var(--town-secondary, #64748b);cursor:help;font-size:.7rem}.studio-input,.studio-select,.studio-textarea{width:100%;padding:6px 10px;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);font-size:.8rem;outline:none;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.studio-input:focus,.studio-select:focus,.studio-textarea:focus{border-color:var(--town-primary, #6366f1);box-shadow:0 0 0 2px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-hint{font-size:.68rem;color:var(--town-secondary, #64748b)}.studio-hint code{color:var(--town-accent, #38bdf8)}.studio-tags-container{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);min-height:38px;transition:border-color .15s ease}.studio-tags-container:focus-within{border-color:var(--town-primary, #6366f1);box-shadow:0 0 0 2px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-tag-chip{display:inline-flex;align-items:center;gap:4px;background:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1);border:1px solid var(--town-primary-subtle, rgba(99, 102, 241, .3));padding:2px 8px;border-radius:12px;font-size:.74rem;font-weight:500}.studio-tag-text{line-height:1}.studio-tag-remove-btn{background:transparent;border:none;color:var(--town-primary, #6366f1);cursor:pointer;font-size:.85rem;line-height:1;padding:0 2px;border-radius:50%;display:flex;align-items:center;justify-content:center}.studio-tag-remove-btn:hover{background:#ef444433;color:var(--town-error, #ef4444)}.studio-tag-input{flex:1;min-width:80px;background:transparent;border:none;outline:none;color:var(--town-fg, #f8fafc);font-size:.8rem;padding:4px 2px}.studio-tag-input::placeholder{color:var(--town-secondary, #64748b);font-size:.74rem}.studio-color-picker-row{display:flex;align-items:center;gap:8px}.studio-color-input{width:32px;height:32px;padding:0;border:none;background:transparent;cursor:pointer;border-radius:var(--town-radius-sm, 4px)}.studio-switch-row{display:flex;align-items:center;gap:8px;cursor:pointer}.studio-switch-input{display:none}.studio-switch-track{width:32px;height:18px;background:var(--town-surface-border, #1f293d);border-radius:9px;position:relative;transition:background .2s}.studio-switch-thumb{width:14px;height:14px;background:var(--town-fg, #ffffff);border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .2s}.studio-switch-input:checked+.studio-switch-track{background:var(--town-primary, #6366f1)}.studio-switch-input:checked+.studio-switch-track .studio-switch-thumb{transform:translate(14px)}.studio-switch-text{font-size:.78rem;color:var(--town-fg, #f8fafc)}.studio-hierarchy-tree{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.studio-tree-scroll{flex:1;overflow-y:auto;min-height:0;padding:6px 4px}.studio-tree-item{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--town-radius-sm, 4px);cursor:pointer;color:var(--town-text-muted, #94a3b8);font-size:.78rem;transition:all .15s;position:relative;-webkit-user-select:none;user-select:none;touch-action:none}.studio-tree-item:hover{background:var(--town-surface-hover, #1a263c);color:var(--town-fg, #ffffff)}.studio-tree-item.selected{background:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1);font-weight:600}.studio-tree-section{margin-bottom:6px}.studio-tree-section-header{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;background:#131d2eb3;border-top:1px solid var(--town-surface-border, #1f293d);border-bottom:1px solid var(--town-surface-border, #1f293d);margin-top:4px;margin-bottom:2px;border-radius:var(--town-radius-sm, 2px);transition:all .15s ease}.studio-tree-section-header.active{background:var(--town-primary-subtle, rgba(99, 102, 241, .18));border-color:var(--town-primary, #6366f1)}.studio-tree-section-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--town-secondary, #64748b)}.studio-tree-section-count{font-size:.64rem;color:var(--town-secondary, #64748b);background:var(--town-surface, #131d2e);padding:1px 5px;border-radius:8px}.studio-tree-section-empty{padding:6px 12px;font-size:.7rem;color:var(--town-secondary, #64748b);font-style:italic;border:1px dashed var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 4px);margin:2px 6px;text-align:center;transition:all .15s ease}.studio-tree-section-empty.active{border-color:var(--town-primary, #6366f1);background:var(--town-primary-subtle, rgba(99, 102, 241, .1));color:var(--town-primary, #6366f1)}.studio-tree-item.drop-before{box-shadow:inset 0 2px 0 var(--town-primary, #6366f1)}.studio-tree-item.drop-after{box-shadow:inset 0 -2px 0 var(--town-primary, #6366f1)}.studio-tree-item.drop-inside{outline:1px solid var(--town-primary, #6366f1);background:var(--town-primary-subtle, rgba(99, 102, 241, .15))}.studio-tree-icon{display:flex;align-items:center;color:var(--town-primary, #6366f1)}.studio-tree-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.studio-loop-badge{font-size:.62rem;font-weight:700;background:#f59e0b33;color:var(--town-warning, #f59e0b);border:1px solid rgba(245,158,11,.4);padding:1px 4px;border-radius:var(--town-radius-sm, 3px);display:flex;align-items:center;gap:2px}.studio-template-tag{font-size:.62rem;font-weight:700;background:#10b98133;color:var(--town-success, #10b981);border:1px solid rgba(16,185,129,.4);padding:1px 4px;border-radius:var(--town-radius-sm, 3px);text-transform:uppercase}.studio-tree-del-btn{background:transparent;border:none;color:var(--town-secondary, #64748b);cursor:pointer;padding:2px;display:none}.studio-tree-item:hover .studio-tree-del-btn{display:block}.studio-tree-del-btn:hover{color:var(--town-error, #ef4444)}.studio-input-group,.studio-input-with-token{position:relative;display:flex;align-items:center;width:100%;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);transition:border-color .15s ease,box-shadow .15s ease;overflow:hidden}.studio-input-group:focus-within,.studio-input-with-token:focus-within{border-color:var(--town-primary, #6366f1);box-shadow:0 0 0 2px var(--town-focus-ring, rgba(99, 102, 241, .25))}.studio-input-group.has-dynamic-token,.studio-input-with-token.has-dynamic-token{background:var(--town-accent-subtle, rgba(56, 189, 248, .08));border-color:var(--town-accent, #38bdf8);box-shadow:0 0 6px #38bdf826}.studio-input-group>.studio-input,.studio-input-with-token>.studio-input{background:transparent!important;border:none!important;box-shadow:none!important;outline:none!important;flex:1;min-width:0;padding:6px 10px}.studio-dynamic-badge{align-items:center;background:#38bdf826;border:1px solid rgba(56,189,248,.4);border-radius:var(--town-radius-sm, 4px);color:var(--town-accent, #38bdf8);display:inline-flex;font-size:.65rem;font-weight:600;gap:3px;line-height:1.2;padding:1px 6px}.studio-input-adornments-right,.studio-input-token-trigger{position:static;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0 4px}.studio-var-token-btn{background:var(--town-primary-subtle, rgba(99, 102, 241, .12));border:1px solid var(--town-primary-subtle, rgba(99, 102, 241, .3));color:var(--town-primary, #6366f1);font-family:var(--town-font-mono, monospace);font-size:.72rem;font-weight:700;border-radius:var(--town-radius-sm, 4px);padding:3px 6px;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;line-height:1}.studio-var-token-btn:hover,.studio-var-token-btn.active{background:var(--town-primary, #6366f1);color:var(--town-fg, #ffffff);box-shadow:0 0 8px var(--town-focus-ring, rgba(99, 102, 241, .5))}.studio-variable-popover{position:absolute;top:100%;right:0;margin-top:6px;width:320px;max-width:90vw;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 8px);box-shadow:var(--town-shadow-lg, 0 16px 36px rgba(0, 0, 0, .75));z-index:9999;display:flex;flex-direction:column;overflow:hidden;animation:popoverFadeIn .15s ease-out}.studio-variable-popover-portal{margin-top:0}@keyframes popoverFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.studio-variable-popover-header{padding:8px 10px;background:var(--town-bg, #090d16);border-bottom:1px solid var(--town-surface-border, #1f293d);display:flex;flex-direction:column;gap:6px}.studio-variable-popover-title{font-size:.72rem;font-weight:700;color:var(--town-text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.05em}.studio-variable-search{font-size:.76rem!important;padding:4px 8px!important}.studio-variable-popover-body{max-height:280px;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:6px}.studio-variable-group{display:flex;flex-direction:column;gap:2px}.studio-variable-group-title{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;font-size:.68rem;font-weight:700;color:var(--town-secondary, #64748b);text-transform:uppercase}.studio-badge-subtle{font-size:.62rem;padding:1px 4px;background:var(--town-surface, #131d2e);border-radius:var(--town-radius-sm, 3px);color:var(--town-accent, #38bdf8)}.studio-variable-item{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;background:transparent;border:1px solid transparent;border-radius:var(--town-radius-sm, 4px);cursor:pointer;text-align:left;transition:all .12s ease;width:100%}.studio-variable-item:hover{background:var(--town-primary-subtle, rgba(99, 102, 241, .12));border-color:var(--town-primary-subtle, rgba(99, 102, 241, .3))}.studio-variable-item-meta{display:flex;flex-direction:column;overflow:hidden}.studio-variable-item-path{font-family:var(--town-font-mono, monospace);font-size:.74rem;font-weight:600;color:var(--town-accent, #38bdf8)}.studio-variable-item-label{font-size:.68rem;color:var(--town-text-muted, #94a3b8)}.studio-variable-item-preview{font-family:var(--town-font-mono, monospace);font-size:.68rem;color:var(--town-success, #10b981);max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;margin-left:6px}.studio-filter-pills-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.studio-filter-pill{font-size:.66rem;font-weight:600;padding:2px 8px;border-radius:12px;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);color:var(--town-text-muted, #94a3b8);cursor:pointer;transition:all .15s ease;white-space:nowrap}.studio-filter-pill:hover{color:var(--town-fg, #f8fafc);border-color:var(--town-secondary, #64748b)}.studio-filter-pill.active{background:var(--town-primary-subtle, rgba(99, 102, 241, .2));border-color:var(--town-primary, #6366f1);color:var(--town-primary, #6366f1);box-shadow:0 0 6px var(--town-focus-ring, rgba(99, 102, 241, .3))}.studio-type-badge{font-size:.58rem;font-weight:700;padding:1px 4px;border-radius:var(--town-radius-sm, 3px);text-transform:uppercase;letter-spacing:.02em}.badge-array{background:#38bdf833;color:var(--town-accent, #38bdf8)}.badge-number{background:#10b98133;color:var(--town-success, #10b981)}.badge-string{background:#94a3b826;color:var(--town-text-muted, #94a3b8)}.badge-boolean{background:#a855f733;color:#c084fc}.studio-format-shortcuts-view{display:flex;flex-direction:column;padding:8px 10px}.studio-format-shortcut-btn{align-items:center;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;text-align:left;transition:all .15s ease;width:100%}.studio-format-shortcut-btn:hover{background:var(--town-primary-subtle, rgba(99, 102, 241, .18));border-color:var(--town-primary, #6366f1);box-shadow:0 0 8px var(--town-focus-ring, rgba(99, 102, 241, .3))}.studio-format-badge{background:#38bdf826;border:1px solid rgba(56,189,248,.3);border-radius:var(--town-radius-sm, 3px);color:var(--town-accent, #38bdf8);font-size:.6rem;font-weight:600;padding:1px 5px}.studio-var-target-tag{font-size:.65rem;color:var(--town-text-muted, #94a3b8);background:var(--town-surface, #131d2e);padding:2px 6px;border-radius:var(--town-radius-sm, 4px)}.studio-var-target-tag strong{color:var(--town-accent, #38bdf8)}.studio-source-pills-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:4px;padding-top:4px;border-top:1px solid var(--town-surface-border, #1f293d)}.studio-sub-pill{font-size:.62rem;font-weight:600;padding:1px 6px;border-radius:var(--town-radius-sm, 4px);background:transparent;border:1px solid var(--town-surface-border, #1f293d);color:var(--town-secondary, #64748b);cursor:pointer;transition:all .15s ease}.studio-sub-pill:hover{color:var(--town-fg, #cbd5e1);border-color:var(--town-secondary, #64748b)}.studio-sub-pill.active{background:var(--town-surface-hover, #1a263c);border-color:var(--town-text-muted, #94a3b8);color:var(--town-fg, #f8fafc)}.studio-var-type-badge{font-size:.58rem;font-weight:700;padding:1px 4px;border-radius:var(--town-radius-sm, 3px);text-transform:uppercase;letter-spacing:.02em}.badge-image{background:#a855f733;color:#c084fc}.badge-date{background:#f59e0b33;color:var(--town-warning, #fbbf24)}.badge-location{background:#38bdf833;color:#7dd3fc}.studio-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.studio-modal-card{width:100%;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-lg, 12px);box-shadow:var(--town-shadow-lg, 0 20px 40px rgba(0, 0, 0, .6));display:flex;flex-direction:column;max-height:85vh;overflow:hidden}.studio-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--town-surface-border, #1f293d)}.studio-modal-title{font-size:1rem;font-weight:700;color:var(--town-fg, #ffffff)}.studio-modal-close{background:transparent;border:none;color:var(--town-text-muted, #94a3b8);cursor:pointer;padding:4px}.studio-modal-close:hover{color:var(--town-fg, #ffffff)}.studio-modal-body{padding:20px;overflow-y:auto}.studio-modal-footer{padding:12px 20px;border-top:1px solid var(--town-surface-border, #1f293d);background:#090d1680;display:flex;justify-content:flex-end}.studio-modal-actions{display:flex;gap:10px}.studio-form-grid{display:flex;flex-direction:column;gap:14px}.studio-code-block{font-family:var(--town-font-mono, monospace);font-size:.76rem;background:var(--town-bg, #090d16);padding:14px;border-radius:var(--town-radius-sm, 6px);border:1px solid var(--town-surface-border, #1f293d);color:var(--town-accent, #38bdf8);max-height:380px;overflow-y:auto;white-space:pre-wrap}.studio-code-textarea{font-family:var(--town-font-mono, monospace);font-size:.78rem;color:var(--town-accent, #38bdf8)}.studio-dialog-tabs{display:flex;gap:6px;background:var(--town-surface, #131d2e);padding:4px;border-radius:var(--town-radius-sm, 6px);margin-bottom:16px;border:1px solid var(--town-surface-border, #1f293d)}.studio-dialog-tab{flex:1;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--town-text-muted, #94a3b8);background:transparent;border:none;border-radius:var(--town-radius-sm, 4px);cursor:pointer;transition:all .15s ease;text-align:center}.studio-dialog-tab:hover{color:var(--town-fg, #ffffff)}.studio-dialog-tab.active{background:var(--town-bg, #090d16);color:var(--town-primary, #6366f1);box-shadow:0 1px 3px #0000004d}.studio-pill-group{display:flex;gap:8px;margin-bottom:12px}.studio-pill-btn{padding:5px 12px;font-size:.78rem;font-weight:600;border-radius:14px;border:1px solid var(--town-surface-border, #1f293d);background:var(--town-surface, #131d2e);color:var(--town-text-muted, #94a3b8);cursor:pointer;transition:all .15s ease}.studio-pill-btn:hover:not(:disabled){border-color:var(--town-primary, #6366f1);color:var(--town-fg, #ffffff)}.studio-pill-btn.active{background:var(--town-primary-subtle, rgba(99, 102, 241, .15));border-color:var(--town-primary, #6366f1);color:var(--town-primary, #6366f1)}.studio-pill-btn:disabled{opacity:.4;cursor:not-allowed}.studio-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 16px;border:2px dashed var(--town-surface-border, #334155);border-radius:var(--town-radius-md, 8px);background:#131d2e99;cursor:pointer;transition:all .2s ease;text-align:center}.studio-drop-zone:hover,.studio-drop-zone.dragging{border-color:var(--town-primary, #6366f1);background:var(--town-primary-subtle, rgba(99, 102, 241, .08))}.studio-drop-zone-icon{font-size:1.8rem;color:var(--town-primary, #6366f1)}.studio-drop-zone-text{font-size:.85rem;font-weight:500;color:var(--town-fg, #f8fafc)}.studio-drop-zone-hint{font-size:.72rem;color:var(--town-text-muted, #94a3b8)}.studio-summary-card{margin-top:14px;padding:12px 16px;background:#131d2ee6;border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 8px);display:flex;flex-direction:column;gap:8px}.studio-summary-header{display:flex;align-items:center;justify-content:space-between}.studio-summary-title{font-size:.88rem;font-weight:700;color:var(--town-fg, #ffffff)}.studio-summary-badge{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase}.studio-summary-badge.json{background:#38bdf833;color:var(--town-accent, #38bdf8);border:1px solid rgba(56,189,248,.4)}.studio-summary-badge.jsonl{background:#a855f733;color:#c084fc;border:1px solid rgba(168,85,247,.4)}.studio-summary-badge.component{background:#10b98133;color:var(--town-success, #34d399);border:1px solid rgba(16,185,129,.4)}.studio-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:6px;border-top:1px solid var(--town-surface-border, #1f293d)}.studio-summary-item{display:flex;flex-direction:column}.studio-summary-label{font-size:.68rem;color:var(--town-text-muted, #94a3b8);text-transform:uppercase}.studio-summary-value{font-size:.8rem;font-weight:600;color:var(--town-fg, #f8fafc)}.studio-placement-select{margin-top:4px;padding:5px 8px;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);font-size:.78rem;font-family:inherit;cursor:pointer;outline:none;transition:border-color .15s ease}.studio-placement-select:focus{border-color:var(--town-primary, #6366f1)}.studio-validation-banner{margin-top:8px;padding:8px 12px;border-radius:var(--town-radius-sm, 6px);font-size:.76rem;display:flex;align-items:center;gap:8px}.studio-validation-banner.valid{background:#10b98126;border:1px solid rgba(16,185,129,.35);color:var(--town-success, #34d399)}.studio-validation-banner.warning{background:#f59e0b26;border:1px solid rgba(245,158,11,.35);color:var(--town-warning, #fbbf24)}.studio-validation-banner.invalid{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:var(--town-error, #f87171);flex-direction:column;align-items:flex-start}.studio-validation-error-list{margin:4px 0 0 16px;padding:0;max-height:100px;overflow-y:auto;font-family:var(--town-font-mono, monospace);font-size:.72rem}.studio-export-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.studio-toggle-label{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:500;color:var(--town-fg, #f8fafc);cursor:pointer;-webkit-user-select:none;user-select:none}.studio-toggle-label input[type=checkbox]{cursor:pointer;accent-color:var(--town-primary, #6366f1);width:15px;height:15px}.studio-toast{position:fixed;bottom:24px;right:24px;background:var(--town-success, #10b981);color:#fff;padding:10px 18px;border-radius:var(--town-radius-md, 8px);font-size:.84rem;font-weight:600;box-shadow:0 10px 25px #10b98166;z-index:200;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.studio-notification-toast{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:12px;padding:12px 18px;border-radius:var(--town-radius-md, 8px);font-size:.84rem;font-weight:500;z-index:10000;animation:slideUp .2s ease-out;box-shadow:var(--town-shadow-lg, 0 10px 30px rgba(0, 0, 0, .5));max-width:460px;border:1px solid transparent;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.studio-notification-toast.error{background:#7f1d1df2;color:#fee2e2;border-color:var(--town-error, #ef4444)}.studio-notification-toast.warning{background:#78350ff2;color:#fef3c7;border-color:var(--town-warning, #f59e0b)}.studio-notification-toast.info{background:#0c4a6ef2;color:#e0f2fe;border-color:var(--town-accent, #0ea5e9)}.studio-notification-icon{font-size:1.1rem;line-height:1;flex-shrink:0}.studio-notification-message{flex:1;line-height:1.4;word-break:break-word}.studio-notification-queue-badge{background:#fff3;color:currentColor;padding:2px 7px;border-radius:10px;font-size:.72rem;font-weight:700;margin-left:4px}.studio-notification-close-btn{background:transparent;border:none;color:currentColor;cursor:pointer;font-size:1.25rem;line-height:1;padding:0 4px;margin-left:8px;opacity:.75;transition:opacity .15s ease;flex-shrink:0}.studio-notification-close-btn:hover{opacity:1}.studio-preflight-badge{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border-radius:9999px;font-size:.75rem;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:all .18s ease-in-out;outline:none;background:transparent}.studio-preflight-badge:hover{transform:translateY(-1px)}.studio-preflight-badge.status-valid{background:#10b9811f;border-color:#10b98159;color:var(--town-success, #34d399)}.studio-preflight-badge.status-valid:hover{background:#10b98133;border-color:#10b9818c;box-shadow:0 0 10px #10b98140}.studio-preflight-badge.status-warning{background:#f59e0b1f;border-color:#f59e0b59;color:var(--town-warning, #fbbf24)}.studio-preflight-badge.status-warning:hover{background:#f59e0b33;border-color:#f59e0b8c;box-shadow:0 0 10px #f59e0b40}.studio-preflight-badge.status-error{background:#ef44441f;border-color:#ef444459;color:var(--town-error, #f87171)}.studio-preflight-badge.status-error:hover{background:#ef444433;border-color:#ef44448c;box-shadow:0 0 10px #ef444440}.studio-preflight-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.studio-preflight-dot.valid{background:var(--town-success, #10b981);box-shadow:0 0 6px #10b981d9}.studio-preflight-dot.warning{background:var(--town-warning, #f59e0b);box-shadow:0 0 6px #f59e0bd9}.studio-preflight-dot.error{background:var(--town-error, #ef4444);box-shadow:0 0 6px #ef4444d9}.studio-preflight-label{white-space:nowrap;letter-spacing:.02em}.studio-slide-over-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#090d16a6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:1000;display:flex;justify-content:flex-end}.studio-slide-over-drawer{width:480px;max-width:92vw;height:100%;background:var(--town-surface, #131d2e);border-left:1px solid var(--town-surface-border, #1f293d);display:flex;flex-direction:column;box-shadow:-16px 0 36px #000000a6;animation:studioSlideInRight .22s cubic-bezier(.16,1,.3,1);color:var(--town-fg, #f8fafc)}@keyframes studioSlideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.studio-drawer-header{padding:16px 20px;border-bottom:1px solid var(--town-surface-border, #1f293d);display:flex;justify-content:space-between;align-items:flex-start;gap:12px;background:var(--town-bg, #090d16)}.studio-drawer-title-group{display:flex;flex-direction:column;gap:4px}.studio-drawer-title-row{display:flex;align-items:center;gap:10px}.studio-drawer-title{font-size:1.05rem;font-weight:700;color:var(--town-fg, #f8fafc);margin:0;letter-spacing:-.01em}.studio-drawer-status-pill{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:9999px;border:1px solid transparent}.studio-drawer-status-pill.status-valid{background:#10b9811f;border-color:#10b98159;color:var(--town-success, #34d399)}.studio-drawer-status-pill.status-warning{background:#f59e0b1f;border-color:#f59e0b59;color:var(--town-warning, #fbbf24)}.studio-drawer-status-pill.status-error{background:#ef44441f;border-color:#ef444459;color:var(--town-error, #f87171)}.studio-drawer-subtitle{font-size:.78rem;color:var(--town-text-muted, #94a3b8);margin:0;line-height:1.4}.studio-drawer-close-btn{background:transparent;border:1px solid transparent;color:var(--town-text-muted, #94a3b8);border-radius:var(--town-radius-sm, 6px);padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.studio-drawer-close-btn:hover{background:#ffffff14;color:var(--town-fg, #f8fafc)}.studio-drawer-tabs{display:flex;padding:8px 16px;background:var(--town-bg, #090d16);border-bottom:1px solid var(--town-surface-border, #1f293d);gap:6px}.studio-drawer-tab{background:transparent;border:1px solid transparent;color:var(--town-text-muted, #94a3b8);padding:5px 12px;border-radius:var(--town-radius-sm, 6px);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease}.studio-drawer-tab:hover{background:#ffffff0d;color:var(--town-fg, #f8fafc)}.studio-drawer-tab.active{background:var(--town-surface, #131d2e);border-color:var(--town-surface-border, #1f293d);color:var(--town-primary, #6366f1);font-weight:600}.studio-drawer-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:18px}.studio-preflight-valid-card{background:#10b9810f;border:1px solid rgba(16,185,129,.3);border-radius:10px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-top:10px}.studio-valid-icon-wrap{width:56px;height:56px;border-radius:50%;background:#10b98126;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.studio-valid-title{font-size:1.05rem;font-weight:700;color:var(--town-success, #34d399);margin:0}.studio-valid-desc{font-size:.82rem;color:var(--town-text-muted, #cbd5e1);margin:0;line-height:1.5;max-width:360px}.studio-drawer-section{display:flex;flex-direction:column;gap:10px}.studio-section-heading{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.studio-section-heading.error-heading{color:var(--town-error, #f87171)}.studio-section-heading.warning-heading{color:var(--town-warning, #fbbf24)}.studio-section-indicator{width:6px;height:6px;border-radius:50%}.studio-section-indicator.error-indicator{background:var(--town-error, #ef4444);box-shadow:0 0 6px var(--town-error, #ef4444)}.studio-section-indicator.warning-indicator{background:var(--town-warning, #f59e0b);box-shadow:0 0 6px var(--town-warning, #f59e0b)}.studio-issue-list{display:flex;flex-direction:column;gap:10px}.studio-issue-card{background:var(--town-surface, #131d2e);border-radius:var(--town-radius-md, 8px);padding:12px 14px;border:1px solid var(--town-surface-border, #1f293d);display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease}.studio-issue-card.error-card{border-left:4px solid var(--town-error, #ef4444);background:linear-gradient(90deg,rgba(239,68,68,.06),var(--town-surface, #131d2e) 35%)}.studio-issue-card.warning-card{border-left:4px solid var(--town-warning, #f59e0b);background:linear-gradient(90deg,rgba(245,158,11,.06),var(--town-surface, #131d2e) 35%)}.studio-issue-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.studio-issue-severity-badge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:var(--town-radius-sm, 4px)}.studio-issue-severity-badge.error-badge{background:#ef444433;color:#fca5a5}.studio-issue-severity-badge.warning-badge{background:#f59e0b33;color:#fde68a}.studio-issue-region-badge{font-size:.7rem;color:var(--town-text-muted, #94a3b8)}.studio-issue-region-badge strong{color:var(--town-fg, #f1f5f9)}.studio-issue-message{font-size:.82rem;color:var(--town-fg, #f8fafc);line-height:1.45;margin:0;font-weight:500;word-break:break-word}.studio-issue-meta{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:.72rem;color:var(--town-text-muted, #94a3b8);padding-top:2px}.studio-meta-item code{color:var(--town-accent, #38bdf8);background:#38bdf81a;padding:1px 4px;border-radius:var(--town-radius-sm, 4px);font-size:.7rem}.studio-code-inline{color:var(--town-accent, #38bdf8);background:#38bdf81f;padding:1px 5px;border-radius:var(--town-radius-sm, 4px);font-family:var(--town-font-mono, monospace);font-size:.76rem}.studio-issue-actions{display:flex;justify-content:flex-end;padding-top:4px}.studio-jump-link-btn{display:inline-flex;align-items:center;gap:6px;background:var(--town-primary-subtle, rgba(99, 102, 241, .12));border:1px solid var(--town-primary-subtle, rgba(99, 102, 241, .35));color:var(--town-primary, #6366f1);font-size:.75rem;font-weight:600;padding:5px 11px;border-radius:var(--town-radius-sm, 6px);cursor:pointer;transition:all .15s ease}.studio-jump-link-btn:hover{background:var(--town-primary-subtle, rgba(99, 102, 241, .22));border-color:var(--town-primary, #6366f1);color:var(--town-fg, #ffffff);transform:translate(1px)}.studio-jump-link-btn.warning-jump{background:#f59e0b1f;border-color:#f59e0b59;color:var(--town-warning, #fbbf24)}.studio-jump-link-btn.warning-jump:hover{background:#f59e0b38;border-color:#f59e0b99;color:#fef08a}.studio-drawer-footer{padding:14px 20px;border-top:1px solid var(--town-surface-border, #1f293d);display:flex;justify-content:space-between;align-items:center;background:var(--town-bg, #090d16);gap:12px}.studio-drawer-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:600;border-radius:var(--town-radius-sm, 6px);cursor:pointer;transition:all .15s ease}.studio-drawer-btn.secondary{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);color:var(--town-fg, #e2e8f0)}.studio-drawer-btn.secondary:hover{background:var(--town-surface-hover, #1a263c);color:var(--town-fg, #ffffff)}.studio-drawer-btn.primary{background:var(--town-primary, #f8b789);border:1px solid var(--town-primary, #f8b789);color:var(--town-primary-fg, #0f1031);font-weight:600}.studio-drawer-btn.primary:hover{background:var(--town-primary-hover, #e8a474);color:var(--town-primary-fg, #0f1031)}.dev-persona-switcher{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 12px);box-shadow:0 10px 25px -5px #0006,0 8px 10px -6px #0006;font-family:inherit;margin-top:1.5rem;overflow:hidden;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.dev-persona-switcher:hover{border-color:var(--town-primary, #6366f1)}.dev-persona-switcher__header{align-items:center;background:var(--town-surface, #131d2e);border-bottom:1px solid var(--town-surface-border, #1f293d);cursor:pointer;display:flex;justify-content:space-between;padding:.85rem 1.15rem;-webkit-user-select:none;user-select:none}.dev-persona-switcher__title-group{align-items:center;display:flex;gap:.6rem}.dev-persona-switcher__icon{font-size:1.1rem;line-height:1}.dev-persona-switcher__title{color:var(--town-fg, #f8fafc);font-size:.9rem;font-weight:600;letter-spacing:-.01em;margin:0}.dev-persona-switcher__badge{background:#6366f126;border:1px solid rgba(99,102,241,.35);border-radius:9999px;color:var(--town-primary, #6366f1);font-size:.7rem;font-weight:600;letter-spacing:.04em;padding:.15rem .55rem;text-transform:uppercase}.dev-persona-switcher__toggle-btn{background:transparent;border:none;color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;font-size:.85rem;padding:.25rem;transition:transform .2s ease,color .2s ease}.dev-persona-switcher__toggle-btn:hover{color:var(--town-fg, #f8fafc)}.dev-persona-switcher__toggle-btn--expanded{transform:rotate(180deg)}.dev-persona-switcher__body{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.15rem}.dev-persona-switcher__meta{align-items:center;display:flex;justify-content:space-between}.dev-persona-switcher__desc{color:var(--town-text-muted, #94a3b8);font-size:.78rem;margin:0}.dev-persona-switcher__mode-selector{align-items:center;display:flex;gap:.35rem}.dev-persona-switcher__mode-pill{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);color:var(--town-text-muted, #94a3b8);cursor:pointer;font-size:.68rem;font-weight:500;padding:.2rem .5rem;transition:all .15s ease}.dev-persona-switcher__mode-pill:hover{border-color:var(--town-primary, #6366f1);color:var(--town-fg, #f8fafc)}.dev-persona-switcher__mode-pill--active{background:#6366f133;border-color:var(--town-primary, #6366f1);color:var(--town-primary, #6366f1)}.dev-persona-switcher__list{display:flex;flex-direction:column;gap:.5rem}.dev-persona-btn{align-items:center;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 8px);color:var(--town-fg, #f8fafc);cursor:pointer;display:flex;justify-content:space-between;padding:.65rem .85rem;text-align:left;transition:all .15s cubic-bezier(.4,0,.2,1);width:100%}.dev-persona-btn:hover:not(:disabled){background:var(--town-surface-border, #1f293d);border-color:var(--town-primary, #6366f1);box-shadow:0 4px 12px #6366f11f;transform:translateY(-1px)}.dev-persona-btn:active:not(:disabled){transform:translateY(0)}.dev-persona-btn:disabled{cursor:not-allowed;opacity:.6}.dev-persona-btn__content{align-items:center;display:flex;gap:.65rem}.dev-persona-btn__icon{font-size:1.15rem;line-height:1}.dev-persona-btn__text{display:flex;flex-direction:column;gap:.1rem}.dev-persona-btn__label{color:var(--town-fg, #f8fafc);font-size:.82rem;font-weight:600}.dev-persona-btn__email{color:var(--town-text-muted, #94a3b8);font-size:.72rem}.dev-persona-btn__badges{align-items:center;display:flex;gap:.45rem}.dev-persona-btn__tag{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 4px);color:var(--town-text-muted, #94a3b8);font-size:.68rem;font-weight:500;padding:.15rem .45rem}.dev-persona-btn__tag--admin{background:#ef44441f;border-color:#ef44444d;color:var(--town-error, #ef4444)}.dev-persona-btn__tag--account{background:#38bdf81f;border-color:#38bdf84d;color:var(--town-accent, #38bdf8)}.dev-persona-btn__tag--user{background:#10b9811f;border-color:#10b9814d;color:var(--town-success, #10b981)}.dev-persona-btn__arrow{color:var(--town-text-muted, #94a3b8);font-size:.8rem;transition:transform .15s ease,color .15s ease}.dev-persona-btn:hover:not(:disabled) .dev-persona-btn__arrow{color:var(--town-primary, #6366f1);transform:translate(2px)}.dev-persona-switcher__feedback{background:var(--town-surface, #131d2e);border-radius:var(--town-radius-sm, 6px);color:var(--town-primary, #6366f1);font-size:.75rem;padding:.45rem .65rem;text-align:center}.dev-persona-switcher__feedback--error{background:#ef44441f;color:var(--town-error, #ef4444)}:root{--town-border: var(--town-surface-border, #1f293d);--town-impersonation-height: 36px}.platform-shell{background-color:var(--town-bg, #090d16);color:var(--town-fg, #f8fafc);display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:100dvh;overflow:hidden;width:100vw}.platform-shell.platform-shell-impersonating{padding-top:var(--town-impersonation-height, 36px);height:calc(100vh - var(--town-impersonation-height, 36px));height:calc(100dvh - var(--town-impersonation-height, 36px));min-height:calc(100dvh - var(--town-impersonation-height, 36px))}.platform-shell.platform-shell-impersonating .platform-shell-header{top:0}.platform-shell.platform-shell-impersonating .platform-shell-body,.platform-shell.platform-shell-impersonating .platform-shell-sidebar{height:calc(100vh - 60px - var(--town-impersonation-height, 36px))}.platform-shell.platform-shell-impersonating .platform-shell-drawer,.platform-shell.platform-shell-impersonating .platform-shell-drawer-backdrop{bottom:0;top:var(--town-impersonation-height, 36px)}.platform-shell-header{align-items:center;background:var(--town-surface, #131d2e);border-bottom:1px solid var(--town-border, #1f293d);box-sizing:border-box;display:flex;flex-shrink:0;height:60px;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:1000}.platform-shell-header-left{align-items:center;display:flex;gap:12px}.platform-shell-hamburger{align-items:center;background:transparent;border:1px solid var(--town-border, #1e293b);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;line-height:1;padding:0;transition:background .15s ease,border-color .15s ease;width:36px}.platform-shell-hamburger:hover{background:var(--town-border, #1e293b)}.platform-shell-hamburger-desktop{align-items:center;display:none;justify-content:center}.platform-shell-hamburger-mobile{align-items:center;display:inline-flex;justify-content:center}.platform-shell-brand{align-items:center;color:var(--town-fg, #f8fafc);display:flex;font-weight:700;gap:8px;text-decoration:none;-webkit-user-select:none;user-select:none}.platform-shell-logo{font-size:1.25rem}.platform-shell-brand-text{font-family:var(--town-font-family, sans-serif);font-size:1.15rem;font-weight:700;letter-spacing:-.02em}.platform-shell-header-center{align-items:center;display:flex;flex:1;justify-content:center;max-width:440px}.platform-shell-header-right{align-items:center;display:flex;gap:10px}.platform-shell-portal-tabs{align-items:center;display:flex;gap:4px}.platform-shell-portal-tab{background:transparent;border:1px solid transparent;border-radius:var(--town-radius-sm, 6px);color:var(--town-text-muted, #94a3b8);cursor:pointer;font-family:var(--town-font-family, sans-serif);font-size:.85rem;font-weight:500;padding:6px 12px;transition:background .15s ease,color .15s ease}.platform-shell-portal-tab:hover{background:var(--town-border, #1e293b);color:var(--town-fg, #f8fafc)}.platform-shell-portal-tab.active{background:var(--town-border, #1e293b);color:var(--town-accent, #38bdf8);font-weight:600}.platform-shell-bell-btn{align-items:center;background:transparent;border:1px solid var(--town-border, #1e293b);border-radius:var(--town-radius-sm, 6px);color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;transition:background .15s ease,color .15s ease;width:36px}.platform-shell-bell-btn:hover{background:var(--town-border, #1e293b);color:var(--town-fg, #f8fafc)}.platform-shell-user-container{position:relative}.platform-shell-user-btn{align-items:center;background:transparent;border:1px solid var(--town-border, #1e293b);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);cursor:pointer;display:flex;gap:8px;padding:4px 8px;transition:background .15s ease}.platform-shell-user-btn:hover{background:var(--town-border, #1e293b)}.platform-shell-user-avatar{align-items:center;background:var(--town-primary, #f8b789);border-radius:9999px;color:var(--town-primary-fg, #0f1031);display:flex;font-size:.75rem;font-weight:700;height:26px;justify-content:center;width:26px}.platform-shell-user-chevron{color:var(--town-text-muted, #94a3b8);font-size:.65rem}.platform-shell-user-dropdown{background:var(--town-surface, #131d2e);border:1px solid var(--town-border, #1f293d);border-radius:var(--town-radius-md, 10px);box-shadow:0 10px 25px -5px #00000080;display:flex;flex-direction:column;min-width:190px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:1050}.platform-shell-user-header{border-bottom:1px solid var(--town-border, #1e293b);display:flex;flex-direction:column;gap:4px;margin-bottom:4px;padding:6px 8px 8px}.platform-shell-user-name{font-size:.85rem;font-weight:600}.platform-shell-user-role-badge{background:var(--town-border, #1e293b);border-radius:4px;color:var(--town-accent, #38bdf8);font-size:.68rem;font-weight:600;padding:2px 6px;text-transform:uppercase;width:fit-content}.platform-shell-dropdown-divider{background:var(--town-border, #1e293b);height:1px;margin:4px 0}.platform-shell-dropdown-item{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm, 6px);color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;font-family:var(--town-font-family, sans-serif);font-size:.8rem;gap:8px;padding:6px 8px;text-align:left;transition:background .15s ease,color .15s ease;width:100%}.platform-shell-dropdown-item:hover{background:var(--town-border, #1e293b);color:var(--town-fg, #f8fafc)}.platform-shell-signout-item{color:var(--town-error, #ef4444)}.platform-shell-signout-item:hover{background:#ef44441a;color:var(--town-error, #ef4444)}.platform-shell-body{display:flex;flex:1;min-height:0;overflow:hidden;width:100%}.platform-shell-sidebar{background:var(--town-surface, #131d2e);border-right:1px solid var(--town-border, #1f293d);box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;height:100%;overflow:hidden;position:relative;transition:width .2s cubic-bezier(.4,0,.2,1),opacity .15s ease,border-width .2s ease;width:240px;z-index:900}.platform-shell-sidebar.platform-shell-collapsed,.platform-shell-collapsed .platform-shell-sidebar{border-right-width:0;opacity:0;pointer-events:none;visibility:hidden;width:0}.platform-shell-sidebar-account{border-bottom:1px solid var(--town-border, #1e293b);box-sizing:border-box;padding:12px;width:100%}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-sidebar-account,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-sidebar-account{display:none}.platform-shell-nav{display:flex;flex:1;flex-direction:column;overflow-y:auto;padding:8px 0}.platform-shell-section{display:flex;flex-direction:column;margin-bottom:8px}.platform-shell-section-title{color:var(--town-text-muted, #94a3b8);font-family:var(--town-font-family, sans-serif);font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:10px 16px 4px;text-transform:uppercase;transition:opacity .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-section-title,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-section-title{display:none}.platform-shell-nav-item{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm, 6px);box-sizing:border-box;color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;font-family:var(--town-font-family, sans-serif);gap:12px;margin:2px 8px;padding:8px 12px;position:relative;text-align:left;transition:background .15s ease,color .15s ease;width:calc(100% - 16px)}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-nav-item,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-nav-item{justify-content:center;margin:2px 8px;padding:8px 0;width:calc(100% - 16px)}.platform-shell-nav-item:hover{background:var(--town-border, #1e293b);color:var(--town-fg, #f8fafc)}.platform-shell-nav-item.active{background:var(--town-primary, #f8b789);color:var(--town-primary-fg, #0f1031);font-weight:600}.platform-shell-nav-item.active .platform-shell-nav-icon{color:var(--town-primary-fg, #0f1031)}.platform-shell-nav-item.active:hover{background:var(--town-primary-hover, #e8a474);color:var(--town-primary-fg, #0f1031)}.platform-shell-nav-icon{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.platform-shell-nav-label{flex:1;font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-nav-label,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-nav-label,.platform-shell-sidebar.platform-shell-collapsed .platform-shell-nav-badge,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-nav-badge{display:none}.platform-shell-nav-badge{background:var(--town-border, #1e293b);border-radius:9999px;color:var(--town-accent, #38bdf8);font-size:.7rem;font-weight:600;padding:2px 6px}.platform-shell-tooltip{display:none}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-nav-item .platform-shell-tooltip,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-nav-item .platform-shell-tooltip{background:var(--town-surface, #131d2e);border:1px solid var(--town-border, #1f293d);border-radius:var(--town-radius-sm, 6px);box-shadow:0 4px 12px #0006;color:var(--town-fg, #f8fafc);display:block;font-family:var(--town-font-family, sans-serif);font-size:.75rem;font-weight:500;left:100%;margin-left:8px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%) translate(-4px);transition:opacity .15s ease,transform .15s ease;white-space:nowrap;z-index:1010}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-nav-item:hover .platform-shell-tooltip,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-nav-item:hover .platform-shell-tooltip{opacity:1;transform:translateY(-50%) translate(0)}.platform-shell-sidebar-footer{border-top:1px solid var(--town-border, #1e293b);box-sizing:border-box;margin-top:auto;padding:8px}.platform-shell-collapse-toggle{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm, 6px);box-sizing:border-box;color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;font-family:var(--town-font-family, sans-serif);gap:8px;justify-content:center;padding:8px;transition:background .15s ease,color .15s ease;width:100%}.platform-shell-collapse-toggle:hover{background:var(--town-border, #1e293b);color:var(--town-fg, #f8fafc)}.platform-shell-collapse-text{font-size:.8rem;font-weight:500}.platform-shell-sidebar.platform-shell-collapsed .platform-shell-collapse-text,.platform-shell-collapsed .platform-shell-sidebar .platform-shell-collapse-text{display:none}.platform-shell-main{-webkit-overflow-scrolling:touch;background:var(--town-bg, #090d16);box-sizing:border-box;flex:1;height:100%;min-width:0;overflow-y:auto;position:relative}.platform-shell-studio-banner{align-items:center;background:#f59e0b26;border-bottom:1px solid rgba(245,158,11,.35);box-sizing:border-box;color:var(--town-warning, #f59e0b);display:none;font-family:var(--town-font-family, sans-serif);font-size:.8rem;font-weight:500;justify-content:center;padding:8px 16px;text-align:center;width:100%;z-index:9999}@media(max-width:1023px){.platform-shell-studio-banner{display:flex}}.platform-shell-drawer-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#000000a6;display:block;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .4s ease,visibility .4s ease;visibility:hidden;z-index:1100}.platform-shell-drawer-backdrop.open{opacity:1;pointer-events:auto;visibility:visible}.platform-shell-drawer{background:var(--town-surface, #131d2e);border-right:1px solid var(--town-border, #1f293d);bottom:0;box-shadow:0 0 25px #0009;box-sizing:border-box;display:flex;flex-direction:column;left:0;max-width:320px;position:fixed;top:0;transform:translate(-100%);transition:transform .4s cubic-bezier(.16,1,.3,1);width:85vw;z-index:1200}.platform-shell-drawer.open{transform:translate(0)}.platform-shell-drawer-header{align-items:center;border-bottom:1px solid var(--town-border, #1e293b);box-sizing:border-box;display:flex;height:60px;justify-content:space-between;padding:0 16px}.platform-shell-drawer-brand{align-items:center;display:flex;font-weight:700;gap:8px;-webkit-user-select:none;user-select:none}.platform-shell-drawer-close{align-items:center;background:transparent;border:1px solid var(--town-border, #1e293b);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;line-height:1;padding:0;transition:background .15s ease;width:36px}.platform-shell-drawer-close:hover{background:var(--town-border, #1e293b)}.platform-shell-drawer-account{border-bottom:1px solid var(--town-border, #1e293b);padding:12px 16px}.platform-shell-drawer-nav{display:flex;flex:1;flex-direction:column;overflow-y:auto;padding:8px 0}.platform-shell-drawer-footer{border-top:1px solid var(--town-border, #1e293b);padding:12px 16px}.mobile-bottom-tab-bar{align-items:center;background:var(--town-surface, #131d2e);border-top:1px solid var(--town-border, #1f293d);bottom:0;box-sizing:border-box;display:none;height:56px;height:calc(56px + env(safe-area-inset-bottom,0px));justify-content:space-around;left:0;padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;right:0;width:100%;z-index:1000}.mobile-tab-btn{align-items:center;background:transparent;border:none;box-sizing:border-box;color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;flex:1;flex-direction:column;gap:2px;height:100%;justify-content:center;padding:6px 4px 4px;position:relative;text-decoration:none;transition:color .15s ease,background .15s ease;-webkit-user-select:none;user-select:none}.mobile-tab-btn:hover{background:var(--town-surface, #131d2e);color:var(--town-fg, #f8fafc)}.mobile-tab-btn.active{background:var(--town-surface, #131d2e);color:var(--town-primary, #6366f1)}.mobile-tab-btn.active:before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--town-primary, #6366f1);border-radius:0 0 2px 2px}.mobile-tab-icon{display:flex;align-items:center;justify-content:center;font-size:1.15rem;line-height:1}.mobile-tab-label{font-family:var(--town-font-family, sans-serif);font-size:.65rem;font-weight:500;line-height:1.1;text-align:center;white-space:nowrap}.mobile-tab-btn.active .mobile-tab-label{font-weight:700}@media(min-width:768px){.mobile-bottom-tab-bar,.platform-shell-drawer,.platform-shell-drawer-backdrop{display:none!important}.platform-shell-hamburger-desktop{display:inline-flex!important}.platform-shell-hamburger-mobile{display:none!important}}@media(max-width:767px){.platform-shell-sidebar,.platform-shell-hamburger-desktop{display:none!important}.platform-shell-hamburger-mobile{display:inline-flex!important}.mobile-bottom-tab-bar{display:flex!important}.platform-shell-main{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))!important}.platform-shell-header-center,.platform-shell-portal-tabs,.platform-shell-bell-btn{display:none!important}.platform-shell-console{margin-bottom:calc(56px + env(safe-area-inset-bottom,0px))!important}}.platform-shell-console{background:var(--town-surface, #131d2e);border-top:1px solid var(--town-border, #1f293d);box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);width:100%;z-index:950}.platform-shell-console.collapsed{min-height:38px}.platform-shell-console.expanded{min-height:358px}.platform-shell-console-drawer{animation:slideUpConsoleDrawer .25s cubic-bezier(.16,1,.3,1);height:320px;overflow:hidden}@keyframes slideUpConsoleDrawer{0%{max-height:0;opacity:0;transform:translateY(12px)}to{max-height:320px;opacity:1;transform:translateY(0)}}.platform-forbidden-container{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:2rem}.platform-forbidden-card{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 12px);box-shadow:0 10px 25px -5px #00000080;box-sizing:border-box;max-width:560px;padding:2.5rem;text-align:center;width:100%}.platform-forbidden-title{color:var(--town-fg, #f8fafc);font-family:var(--town-font-family, sans-serif);font-size:1.75rem;font-weight:700;margin-bottom:.75rem}.platform-forbidden-message{color:var(--town-text-muted, #94a3b8);font-family:var(--town-font-family, sans-serif);font-size:1rem;line-height:1.5;margin-bottom:2rem}.platform-forbidden-actions{display:flex;gap:1rem;justify-content:center}.platform-forbidden-btn-secondary{background:var(--town-secondary, #64748b);border:none;border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);cursor:pointer;font-family:var(--town-font-family, sans-serif);font-size:.875rem;font-weight:600;padding:.625rem 1.25rem;transition:background .15s ease,opacity .15s ease}.platform-forbidden-btn-secondary:hover{opacity:.9}.platform-forbidden-btn-primary{background:var(--town-primary, #f8b789);border:none;border-radius:var(--town-radius-sm, 6px);color:var(--town-primary-fg, #0f1031);cursor:pointer;font-family:var(--town-font-family, sans-serif);font-size:.875rem;font-weight:600;padding:.625rem 1.25rem;transition:background .15s ease}.platform-forbidden-btn-primary:hover{background:var(--town-primary-hover, #e8a474);color:var(--town-primary-fg, #0f1031)}.platform-impersonation-banner{align-items:center;background:var(--town-warning, #f59e0b);border-bottom:1px solid rgba(0,0,0,.15);box-sizing:border-box;color:var(--town-bg, #090d16);display:flex;flex-wrap:wrap;font-family:var(--town-font-family, sans-serif);font-size:.82rem;font-weight:600;gap:8px;height:auto;justify-content:center;left:0;min-height:36px;padding:6px 14px;position:fixed;right:0;top:0;z-index:2000}.platform-impersonation-banner span{display:flex;align-items:center;gap:4px}.platform-impersonation-banner strong{color:var(--town-bg, #000000);font-weight:700}.exit-impersonation-btn{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);cursor:pointer;font-family:var(--town-font-family, sans-serif);font-size:.75rem;font-weight:600;padding:3px 10px;transition:background .15s ease,transform .1s ease}.exit-impersonation-btn:hover{background:var(--town-surface-border, #1f293d);color:var(--town-accent, #38bdf8)}.exit-impersonation-btn:active{transform:scale(.97)}.account-picker-container{display:inline-flex;position:relative;-webkit-user-select:none;user-select:none}.account-picker-trigger{align-items:center;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:9999px;box-sizing:border-box;color:var(--town-fg, #f8fafc);cursor:pointer;display:inline-flex;font-family:var(--town-font-family, sans-serif);font-size:.82rem;font-weight:500;gap:8px;height:34px;max-width:320px;padding:0 14px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.account-picker-trigger:hover{background:var(--town-surface-border, #1f293d);border-color:var(--town-border, #334155)}.account-picker-trigger:focus-visible{border-color:var(--town-primary, #6366f1);box-shadow:0 0 0 2px var(--town-primary, #6366f1);outline:none}.account-picker-icon{display:flex;font-size:.95rem;flex-shrink:0}.account-picker-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-picker-chevron{color:var(--town-text-muted, #94a3b8);font-size:.62rem;transition:transform .15s ease}.account-picker-trigger[aria-expanded=true] .account-picker-chevron{transform:rotate(180deg)}.account-picker-badge{border-radius:var(--town-radius-sm, 4px);font-size:.65rem;font-weight:600;letter-spacing:.02em;padding:1px 5px;text-transform:uppercase}.account-picker-badge.granted{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:var(--town-success, #10b981)}.account-picker-badge.owner{background:#6366f126;border:1px solid rgba(99,102,241,.3);color:var(--town-primary, #6366f1)}.account-picker-badge.admin{background:#38bdf826;border:1px solid rgba(56,189,248,.3);color:var(--town-accent, #38bdf8)}.account-picker-badge.staff{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:var(--town-success, #10b981)}.account-picker-badge.member{background:#94a3b826;border:1px solid rgba(148,163,184,.3);color:var(--town-text-muted, #94a3b8)}.account-picker-popover{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 10px);box-shadow:0 14px 30px -4px #0009,0 4px 10px #0000004d;box-sizing:border-box;display:flex;flex-direction:column;left:50%;min-width:340px;max-width:400px;padding:8px;position:absolute;top:calc(100% + 8px);transform:translate(-50%);z-index:1050}.account-picker-search-box{align-items:center;background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);display:flex;gap:8px;margin-bottom:8px;padding:6px 10px;transition:border-color .15s ease}.account-picker-search-box:focus-within{border-color:var(--town-primary, #6366f1);box-shadow:0 0 0 1px var(--town-primary, #6366f1)}.account-picker-search-icon{color:var(--town-text-muted, #94a3b8);font-size:.85rem}.account-picker-search-input{background:transparent;border:none;box-sizing:border-box;color:var(--town-fg, #f8fafc);font-family:var(--town-font-family, sans-serif);font-size:.82rem;outline:none;width:100%}.account-picker-search-input::placeholder{color:var(--town-text-muted, #94a3b8)}.account-picker-list{display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto;padding:0}.account-picker-section-title{color:var(--town-text-muted, #94a3b8);font-family:var(--town-font-family, sans-serif);font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:6px 8px 3px;text-transform:uppercase;-webkit-user-select:none;user-select:none}.account-picker-item{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm, 6px);box-sizing:border-box;color:var(--town-fg, #f8fafc);cursor:pointer;display:flex;font-family:var(--town-font-family, sans-serif);gap:8px;justify-content:space-between;padding:8px 10px;text-align:left;transition:background .12s ease;width:100%}.account-picker-item:hover,.account-picker-item.highlighted{background:var(--town-surface-border, #1f293d)}.account-picker-item.active{background:#6366f11f;border-left:2px solid var(--town-primary, #6366f1)}.account-picker-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.account-picker-item-name{color:var(--town-fg, #f8fafc);font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-picker-item-id{color:var(--town-text-muted, #94a3b8);font-size:.72rem;font-family:monospace}.account-picker-item-meta{align-items:center;display:flex;flex-shrink:0;gap:6px}.account-picker-check{color:var(--town-primary, #6366f1);font-size:.85rem;font-weight:700}.account-picker-empty{color:var(--town-text-muted, #94a3b8);font-family:var(--town-font-family, sans-serif);font-size:.78rem;padding:16px 12px;text-align:center}.account-picker-container.account-picker-inline{box-sizing:border-box;display:flex;flex-direction:column;position:static;width:100%}.account-picker-container.account-picker-inline .account-picker-trigger{background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);box-sizing:border-box;display:flex;height:38px;justify-content:flex-start;max-width:100%;padding:0 12px;width:100%}.account-picker-container.account-picker-inline .account-picker-trigger:hover{background:var(--town-surface-border, #1f293d);border-color:var(--town-surface-border, #1f293d)}.account-picker-container.account-picker-inline .account-picker-name{flex:1;max-width:none;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.account-picker-container.account-picker-inline .account-picker-chevron{flex-shrink:0;margin-left:auto}.account-picker-container.account-picker-inline .account-picker-popover{background:var(--town-bg, #090d16);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-sm, 6px);box-shadow:none;box-sizing:border-box;left:auto;margin-top:8px;max-width:100%;min-width:0;position:static;top:auto;transform:none;width:100%;z-index:auto}.account-picker-container.account-picker-inline .account-picker-search-box{margin-bottom:6px;width:100%}.account-picker-container.account-picker-inline .account-picker-list{max-height:220px}.platform-toast-viewport{bottom:24px;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none;position:fixed;right:24px;width:calc(100vw - 48px);z-index:9999}.platform-toast-queue-counter{align-self:flex-end;background:var(--town-surface, #131d2e);border:1px solid var(--town-surface-border, #1f293d);border-radius:9999px;box-shadow:0 4px 12px #0006;color:var(--town-text-muted, #94a3b8);font-family:var(--town-font-family, sans-serif);font-size:.72rem;font-weight:600;letter-spacing:.02em;margin-bottom:2px;padding:3px 12px;pointer-events:auto}.platform-toast{animation:platform-toast-slide-in .25s cubic-bezier(.16,1,.3,1) forwards;background:var(--town-surface, #131d2e);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--town-surface-border, #1f293d);border-radius:var(--town-radius-md, 10px);box-shadow:0 10px 25px -5px #00000080,0 8px 10px -6px #0006;color:var(--town-fg, #f8fafc);font-family:var(--town-font-family, sans-serif);font-size:.875rem;line-height:1.4;overflow:hidden;pointer-events:auto;position:relative;transition:transform .2s ease,opacity .2s ease}.platform-toast-error{border-left:4px solid var(--town-error, #ef4444)}.platform-toast-info{border-left:4px solid var(--town-accent, #38bdf8)}.platform-toast-success{border-left:4px solid var(--town-success, #10b981)}.platform-toast-warning{border-left:4px solid var(--town-warning, #f59e0b)}.platform-toast-content{align-items:center;display:flex;gap:12px;padding:12px 14px 14px}.platform-toast-icon{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.platform-toast-icon-error{color:var(--town-error, #ef4444)}.platform-toast-icon-info{color:var(--town-accent, #38bdf8)}.platform-toast-icon-success{color:var(--town-success, #10b981)}.platform-toast-icon-warning{color:var(--town-warning, #f59e0b)}.platform-toast-icon-svg{display:block}.platform-toast-message{flex:1;font-weight:500;word-break:break-word}.platform-toast-action-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:var(--town-radius-sm, 6px);color:var(--town-fg, #f8fafc);cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 10px;transition:background .15s ease,border-color .15s ease;white-space:nowrap}.platform-toast-action-btn:hover{background:#fff3;border-color:#ffffff4d}.platform-toast-dismiss-btn{align-items:center;background:transparent;border:none;border-radius:var(--town-radius-sm, 4px);color:var(--town-text-muted, #94a3b8);cursor:pointer;display:flex;font-size:.95rem;height:24px;justify-content:center;line-height:1;margin-left:2px;padding:0;transition:color .15s ease,background .15s ease;width:24px}.platform-toast-dismiss-btn:hover{background:#ffffff1a;color:var(--town-fg, #ffffff)}.platform-toast-progress-bar{animation:platform-toast-progress-shrink linear forwards;bottom:0;height:3px;left:0;position:absolute;transform-origin:left;width:100%}.platform-toast-progress-error{background:var(--town-error, #ef4444)}.platform-toast-progress-info{background:var(--town-accent, #38bdf8)}.platform-toast-progress-success{background:var(--town-success, #10b981)}.platform-toast-progress-warning{background:var(--town-warning, #f59e0b)}@keyframes platform-toast-progress-shrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes platform-toast-slide-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:767px){.platform-toast-viewport{bottom:72px;left:16px;right:16px;width:calc(100vw - 32px)}}:root{--bg-app: var(--town-bg);--bg-panel: var(--town-surface);--bg-surface: var(--town-surface);--bg-surface-hover: #273549;--bg-input: var(--town-bg);--text-main: var(--town-fg);--text-muted: var(--town-text-muted);--text-dim: var(--town-secondary);--border-subtle: var(--town-surface-border);--border-strong: #334155;--border-focus: var(--town-accent);--accent-cyan: var(--town-accent);--accent-cyan-glow: rgba(56, 189, 248, .15);--accent-green: var(--town-success);--accent-green-glow: rgba(16, 185, 129, .15);--accent-red: var(--town-error);--accent-red-glow: rgba(239, 68, 68, .15);--accent-amber: var(--town-warning);--radius-sm: var(--town-radius-sm, 6px);--radius-md: var(--town-radius-md, 10px);--radius-lg: var(--town-radius-lg, 16px);--scrollbar-radius: 9999px;--scrollbar-size: 6px;--scrollbar-size-thin: 4px;--scrollbar-thumb: rgba(148, 163, 184, .22);--scrollbar-thumb-active: #64748b;--scrollbar-thumb-hover: rgba(148, 163, 184, .45);--scrollbar-track: rgba(15, 23, 42, .4);--font-sans: var(--town-font-family, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);--font-mono: var(--town-font-mono, "JetBrains Mono", "Fira Code", monospace);--sdui-border-specular: 1px solid rgba(255, 255, 255, .09);--sdui-elevation-high: 0 20px 48px -8px rgba(0, 0, 0, .65), 0 8px 24px -4px rgba(0, 0, 0, .4);--sdui-elevation-low: 0 4px 12px rgba(0, 0, 0, .35), 0 1px 2px rgba(0, 0, 0, .2);--sdui-elevation-med: 0 10px 28px -4px rgba(0, 0, 0, .5), 0 4px 12px -2px rgba(0, 0, 0, .3)}*{box-sizing:border-box;margin:0;padding:0;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}*::-webkit-scrollbar{height:var(--scrollbar-size);width:var(--scrollbar-size)}*::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:var(--scrollbar-radius)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:content-box;border:1.5px solid transparent;border-radius:var(--scrollbar-radius);transition:background-color .15s ease}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:content-box;border:1.5px solid transparent}*::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active);background-clip:content-box;border:1.5px solid transparent}*::-webkit-scrollbar-corner{background:transparent}.custom-scrollbar{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}.custom-scrollbar-thin{scrollbar-width:thin}.custom-scrollbar-thin::-webkit-scrollbar{height:var(--scrollbar-size-thin);width:var(--scrollbar-size-thin)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.scrollbar-gutter-stable{scrollbar-gutter:stable}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background-color:var(--bg-panel);border-bottom:1px solid var(--border-subtle);gap:20px}.brand-section{display:flex;align-items:center;gap:12px}.brand-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--town-primary, #6366f1),var(--town-accent, #38bdf8));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;box-shadow:0 0 12px var(--town-focus-ring, rgba(99, 102, 241, .3))}.brand-title{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--town-fg, #ffffff)}.brand-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:var(--radius-sm);background:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1);border:1px solid var(--town-primary-subtle, rgba(99, 102, 241, .3))}.endpoint-bar{display:flex;align-items:center;background-color:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:4px 12px;flex:1;max-width:520px;gap:8px}.endpoint-label{font-size:.8rem;color:var(--text-dim);font-weight:500;text-transform:uppercase}.endpoint-input{background:transparent;border:none;color:var(--text-main);font-family:var(--font-mono);font-size:.85rem;width:100%;outline:none}.status-indicator{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-muted)}.status-dot{width:8px;height:8px;border-radius:50%;background-color:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.workspace-container{display:grid;grid-template-columns:280px 1fr 1fr;flex:1;overflow:hidden}@media(max-width:1024px){.workspace-container{grid-template-columns:240px 1fr 1fr}}@media(max-width:768px){.workspace-container{display:flex;flex-direction:column;overflow-y:auto}.sidebar{max-height:260px;border-right:none!important;border-bottom:1px solid var(--border-subtle)}.app-header{flex-direction:column;align-items:stretch;padding:10px 14px;gap:10px}}.sidebar{background-color:var(--bg-panel);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow-y:auto}.sidebar-section{padding:16px;border-bottom:1px solid var(--border-subtle)}.sidebar-title{font-size:.75rem;text-transform:uppercase;color:var(--text-dim);font-weight:600;letter-spacing:.05em;margin-bottom:12px}.service-item{margin-bottom:6px}.rpc-button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-muted);font-size:.85rem;cursor:pointer;text-align:left;transition:all .15s ease}.rpc-button:hover{background-color:var(--bg-surface);color:var(--text-main)}.rpc-button.active{background-color:var(--bg-surface);color:#fff;border-color:var(--town-primary, #6366f1);box-shadow:0 0 10px var(--town-focus-ring, rgba(99, 102, 241, .3))}.method-tag{font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);background-color:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1)}.preset-chip{display:block;width:100%;text-align:left;background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-muted);padding:8px 10px;border-radius:var(--radius-sm);font-size:.8rem;margin-bottom:6px;cursor:pointer;transition:all .15s ease}.preset-chip:hover{background-color:var(--bg-surface-hover);color:var(--text-main);border-color:var(--border-strong)}.preset-name{font-weight:600;color:var(--text-main);margin-bottom:2px}.preset-desc{font-size:.7rem;color:var(--text-dim)}.panel{display:flex;flex-direction:column;overflow:hidden;background-color:var(--bg-app)}.panel-request{border-right:1px solid var(--border-subtle)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--bg-panel);border-bottom:1px solid var(--border-subtle)}.panel-tabs{display:flex;gap:4px}.tab-btn{background:transparent;border:none;color:var(--text-dim);font-size:.85rem;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{background-color:var(--bg-surface);color:var(--text-main);font-weight:600}.action-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);gap:12px}.rpc-path{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.btn-send{display:flex;align-items:center;gap:8px;padding:8px 18px;background:linear-gradient(135deg,var(--town-primary, #6366f1),var(--town-accent, #38bdf8));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px var(--town-focus-ring, rgba(99, 102, 241, .3))}.btn-send:hover{opacity:.92;transform:translateY(-1px)}.btn-send:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:7px 16px;background:linear-gradient(135deg,var(--town-primary, #f8b789),var(--town-primary-hover, #e8a474));color:var(--town-primary-fg, #0f1031);border:1px solid color-mix(in srgb,var(--town-primary-fg, #0f1031) 15%,transparent);border-radius:var(--radius-md, 6px);font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 10px color-mix(in srgb,var(--town-primary) 35%,transparent);line-height:1.2;-webkit-user-select:none;user-select:none}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#0369a1,#1d4ed8);border-color:#38bdf8;box-shadow:0 4px 16px #0284c780;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px #0284c74d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 13px;background-color:var(--bg-surface);border:1px solid var(--border-strong);color:var(--text-muted);border-radius:var(--radius-md, 6px);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease;line-height:1.2;-webkit-user-select:none;user-select:none}.btn-secondary:hover:not(:disabled){background-color:var(--bg-surface-hover);color:var(--text-main);border-color:var(--border-subtle)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.code-editor-container{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.code-textarea{flex:1;width:100%;padding:16px;background-color:var(--bg-input);color:#e2e8f0;font-family:var(--font-mono);font-size:.88rem;border:none;outline:none;resize:none;line-height:1.6}.code-viewer{flex:1;padding:16px;background-color:var(--bg-input);color:#e2e8f0;font-family:var(--font-mono);font-size:.88rem;overflow:auto;white-space:pre-wrap;line-height:1.6}.validation-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:.8rem;border-top:1px solid var(--border-subtle);background-color:var(--bg-panel)}.badge-valid{display:inline-flex;align-items:center;gap:6px;color:var(--accent-green);font-weight:600}.badge-invalid{display:inline-flex;align-items:center;gap:6px;color:var(--accent-red);font-weight:600}.error-banner{margin:12px 16px;padding:12px 16px;background:var(--accent-red-glow);border:1px solid rgba(239,68,68,.4);border-radius:var(--radius-md);color:#fca5a5;font-size:.85rem}.error-title{font-weight:700;color:#f87171;margin-bottom:4px}.meta-stats{display:flex;align-items:center;gap:12px;font-size:.8rem}.stat-badge{padding:3px 8px;border-radius:var(--radius-sm);font-weight:600;font-size:.75rem}.stat-success{background-color:var(--accent-green-glow);color:var(--accent-green);border:1px solid rgba(16,185,129,.3)}.stat-error{background-color:var(--accent-red-glow);color:var(--accent-red);border:1px solid rgba(239,68,68,.3)}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-dim);gap:8px;padding:40px;text-align:center}.empty-icon{font-size:2rem;opacity:.5}.response-content-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.panel-tab-group{display:flex;background-color:var(--bg-input);padding:2px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);gap:2px}.panel-tab{background:transparent;border:none;color:var(--text-muted);font-size:.78rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.panel-tab:hover{color:var(--text-main);background-color:#ffffff0d}.panel-tab.active{background-color:var(--bg-surface);color:#fff;font-weight:600;box-shadow:0 1px 3px #0000004d}.stream-log-container{flex:1;display:flex;flex-direction:column;overflow-y:auto;background-color:var(--bg-input);padding:16px;gap:12px}.stream-summary-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background-color:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.8rem;color:var(--text-muted)}.stream-counter{font-weight:600;display:flex;align-items:center;gap:6px}.streaming-pulse{color:var(--accent-red);animation:pulse-op 1.2s infinite}@keyframes pulse-op{0%,to{opacity:1}50%{opacity:.4}}.stream-chunk-list{display:flex;flex-direction:column;gap:10px}.stream-chunk-item{background-color:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;transition:border-color .2s ease}.stream-chunk-item:hover{border-color:var(--border-strong)}.stream-chunk-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.chunk-seq-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:700;padding:2px 6px;background-color:#ffffff14;border-radius:var(--radius-sm);color:var(--text-main)}.chunk-type-badge{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);letter-spacing:.04em}.chunk-type-theme{background-color:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.3)}.chunk-type-layout{background-color:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.chunk-type-region{background-color:var(--town-primary-subtle, rgba(99, 102, 241, .15));color:var(--town-primary, #6366f1);border:1px solid var(--town-primary-subtle, rgba(99, 102, 241, .3))}.chunk-type-data{background-color:#f59e0b26;color:var(--accent-amber);border:1px solid rgba(245,158,11,.3)}.chunk-type-done{background-color:#10b98126;color:var(--accent-green);border:1px solid rgba(16,185,129,.3)}.chunk-region-badge{font-size:.72rem;color:var(--text-dim)}.chunk-region-badge strong{color:var(--town-primary, #6366f1)}.chunk-time-badge{font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim)}.stream-chunk-body{padding:10px 12px;font-family:var(--font-mono);font-size:.78rem;color:#cbd5e1;background-color:var(--bg-input);overflow-x:auto;line-height:1.5;margin:0}.sdui-preview-canvas{flex:1;display:flex;flex-direction:column;overflow-y:auto;background-color:var(--sdui-bg, #090d16);color:var(--sdui-text, #f8fafc);padding:16px;gap:12px}.sdui-preview-topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#ffffff08;border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:.75rem}.sdui-tenant-pill{font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sdui-primary, #3b82f6)}.sdui-layout-tag{font-family:var(--font-mono);color:var(--text-dim);font-size:.7rem}.sdui-status-complete{color:var(--accent-green);font-weight:600}.sdui-status-streaming{color:var(--accent-cyan);font-weight:600}.sdui-embedded-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:var(--sdui-surface, #1e293b);border:1px solid var(--sdui-border, #334155);border-radius:var(--radius-md)}.sdui-header-logo{height:28px;object-fit:contain}.sdui-logo-fallback{font-size:1.3rem}.sdui-header-title{font-size:1rem;font-weight:700;line-height:1.2}.sdui-header-subtitle{font-size:.75rem;color:var(--text-dim)}.sdui-avatar{width:28px;height:28px;border-radius:50%;background:var(--sdui-primary, #3b82f6);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center}.sdui-icon-btn{cursor:pointer;font-size:.9rem}.sdui-region{position:relative;background:#ffffff05;border:1px dashed var(--sdui-border, #334155);border-radius:var(--radius-md);padding:12px;display:flex;flex-direction:column;gap:10px}.region-label-badge{position:absolute;top:4px;right:6px;font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);opacity:.6;pointer-events:none}.sdui-region-top{width:100%}.sdui-viewport-row{display:flex;gap:12px;flex:1;min-height:240px}.sdui-region-left{width:200px;flex-shrink:0}.sdui-region-main{flex:1;background:#ffffff08}.sdui-region-right{width:220px;flex-shrink:0}.sdui-region-bottom{width:100%}.sdui-region-skeleton{padding:12px;display:flex;flex-direction:column;justify-content:center}.sdui-skeleton-shimmer{background:linear-gradient(90deg,#ffffff08 25%,#ffffff14,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sdui-node-wrapper{width:100%}.sdui-card{background-color:var(--sdui-surface, #1e293b);border:1px solid var(--sdui-border, #334155);border-radius:var(--radius-md);padding:14px;box-shadow:0 2px 4px #0003}.sdui-card-title{font-size:.92rem;font-weight:600;margin-bottom:4px;color:var(--sdui-text, #f8fafc)}.sdui-card-subtitle{font-size:.78rem;color:var(--text-dim)}.sdui-button{width:auto;max-width:fit-content;padding:8px 14px;border-radius:var(--radius-md);font-weight:600;font-size:.82rem;cursor:pointer;border:none;transition:all .15s ease}.sdui-button--primary{background:var(--sdui-primary, #3b82f6);color:#fff}.sdui-button--primary:hover{opacity:.9;box-shadow:0 0 10px #3b82f666}.sdui-button--secondary{background:transparent;border:1px solid var(--sdui-border, #334155);color:var(--sdui-text, #f8fafc)}.sdui-button--secondary:hover{background:#ffffff0d}.sdui-table-container{background-color:var(--sdui-surface, #1e293b);border:1px solid var(--sdui-border, #334155);border-radius:var(--radius-md);overflow:hidden}.sdui-table-title{padding:10px 14px;font-size:.88rem;font-weight:600;border-bottom:1px solid var(--sdui-border, #334155)}.sdui-table{width:100%;border-collapse:collapse;font-size:.82rem;text-align:left}.sdui-table th{padding:8px 12px;background:#0003;color:var(--text-dim);font-weight:600;font-size:.75rem;text-transform:uppercase;border-bottom:1px solid var(--sdui-border, #334155)}.sdui-table td{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.04)}.sdui-table tbody tr:hover{background-color:#ffffff08}.sdui-table-empty{text-align:center;color:var(--text-dim);padding:24px}.sdui-text{line-height:1.5}.sdui-text--body{font-size:.85rem}.sdui-text--title{font-size:1.15rem;font-weight:700}.sdui-text-color--muted{color:var(--text-dim)}.sdui-unknown-node{padding:8px 12px;background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);color:#fca5a5;font-size:.78rem}.visually-hidden{border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.explorer-context-bar{background-color:var(--bg-panel);border-bottom:1px solid var(--border-subtle)}.explorer-context-summary{align-items:center;cursor:pointer;display:flex;flex-wrap:wrap;font-size:.78rem;gap:12px;justify-content:space-between;list-style:none;padding:7px 24px;-webkit-user-select:none;user-select:none}.explorer-context-summary::-webkit-details-marker{display:none}.explorer-context-title{align-items:center;color:var(--text-main);display:inline-flex;font-weight:600;gap:8px}.explorer-context-title:before{color:var(--accent-cyan);content:"▸";display:inline-block;font-size:.85rem;transition:transform .15s ease}.explorer-context-bar[open] .explorer-context-title:before{transform:rotate(90deg)}.explorer-context-pills{align-items:center;display:inline-flex;flex-wrap:wrap;gap:8px}.explorer-pill{border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;font-weight:600;padding:2px 8px}.explorer-pill-active{background-color:#10b98124;border:1px solid rgba(16,185,129,.4);color:var(--accent-green)}.explorer-pill-muted{background-color:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-dim)}.explorer-context-grid{border-top:1px solid var(--border-subtle);display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));max-height:290px;overflow-y:auto;padding:12px 24px 16px}.explorer-context-card{background-color:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px 12px}.explorer-context-legend{color:var(--text-main);font-size:.75rem;font-weight:700;letter-spacing:.03em;padding:0 4px;text-transform:uppercase}.explorer-card-hint{color:var(--text-dim);font-size:.72rem}.explorer-checkbox-row,.explorer-radio-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.explorer-checkbox-item,.explorer-radio-item{align-items:center;color:var(--text-muted);display:inline-flex;font-size:.75rem;gap:6px}.explorer-checkbox-item input,.explorer-radio-item input,.explorer-kv-row input[type=checkbox]{accent-color:var(--accent-cyan);cursor:pointer}.explorer-field-group{display:flex;flex-direction:column;gap:4px}.explorer-field-label{color:var(--text-muted);font-size:.72rem;font-weight:500}.explorer-jwt-input-row{align-items:center;display:flex;gap:6px}.explorer-text-input{background-color:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-main);flex:1;font-family:var(--font-mono);font-size:.78rem;min-width:0;padding:5px 8px}.explorer-text-input:focus-visible{border-color:var(--accent-cyan);outline:2px solid var(--accent-cyan);outline-offset:1px}.explorer-timeout-input{max-width:140px}.explorer-kv-list{display:flex;flex-direction:column;gap:6px}.explorer-kv-row{align-items:center;display:grid;gap:6px;grid-template-columns:auto 1fr 1.2fr auto}.explorer-btn-compact{align-self:flex-start;font-size:.72rem;padding:4px 9px}
