:root{--button-bg: #f8fafc;--button-border: #cbd5f5;--button-color: #475569;--button-hover-bg: #eef2ff;--button-hover-border: #a5b4fc;--button-hover-color: #1f2937;--button-focus-ring: rgba(37, 99, 235, .5);--button-shadow: 0 1px 2px rgba(15, 23, 42, .08);--button-primary-bg: #4f46e5;--button-primary-border: #4338ca;--button-primary-color: #ffffff;--button-primary-hover-bg: #4338ca;--button-primary-hover-border: #3730a3;--accent-button-bg: #2563eb;--accent-button-color: #ffffff;--accent-button-disabled-opacity: .7}:root{--span-icon-color: #1d4ed8;--span-connector-color: #8da2fd;--span-connector-highlight-color: #5465d6}:root{--input-border: #cbd5f5;--input-border-focus: #818cf8;--input-shadow-focus: rgba(129, 140, 248, .2);--input-bg-disabled: #f1f5f9;--input-text-disabled: #94a3b8}.ds-button{border-radius:10px;font-size:.95rem;font-weight:600;padding:10px 16px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:inherit}.ds-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.ds-button--neutral{border-color:var(--button-border, #cbd5f5);background:var(--button-bg, #f8fafc);color:var(--button-color, #475569);box-shadow:var(--button-shadow, 0 1px 2px rgba(15, 23, 42, .08))}.ds-button--neutral:not(:disabled):hover{background:var(--button-hover-bg, #eef2ff);border-color:var(--button-hover-border, #a5b4fc);color:var(--button-hover-color, #1f2937);box-shadow:var(--button-hover-shadow, 0 6px 18px rgba(15, 23, 42, .12))}.ds-button--neutral:focus-visible{outline:none;box-shadow:0 0 0 2px var(--button-focus-ring, rgba(37, 99, 235, .35))}.ds-button--accent{background:var(--accent-button-bg, #2563eb);color:var(--accent-button-color, #ffffff);border:none}.ds-button--accent:not(:disabled):hover{filter:brightness(.96);box-shadow:0 6px 18px #2563eb38}.ds-button--ghost{border-color:var(--button-border, #cbd5f5);background:var(--button-bg, #f8fafc);color:var(--button-color, #475569)}.ds-button--ghost:not(:disabled):hover{background:var(--button-hover-bg, #eef2ff);border-color:var(--button-hover-border, #a5b4fc);color:var(--button-hover-color, #1f2937);box-shadow:var(--button-hover-shadow, 0 6px 18px rgba(15, 23, 42, .12))}.ds-button--ghost:focus-visible{outline:none;box-shadow:0 0 0 2px var(--button-focus-ring, rgba(37, 99, 235, .35))}.ds-button--plain{border:none;background:transparent;box-shadow:none;color:var(--button-color, #475569)}.ds-button--plain:not(:disabled):hover{background:transparent;color:var(--button-hover-color, #1f2937)}.ds-button--icon{width:40px;height:40px;padding:0;border-radius:12px}.ds-button--icon:focus-visible{outline:none;box-shadow:0 0 0 2px var(--button-focus-ring, rgba(37, 99, 235, .3))}.ds-button--icon-small{width:38px;height:38px;padding:0}.ds-button--icon-plain{width:36px;height:36px;padding:0;border:none;background:transparent;box-shadow:none;border-radius:50%;color:var(--button-color, #475569)}.ds-button--icon-plain:disabled{opacity:.6;cursor:not-allowed}.ds-button--icon-plain:not(:disabled):hover{background:#6366f114;color:var(--button-hover-color, #1f2937)}.ds-button--icon-plain:focus-visible{outline:none;box-shadow:0 0 0 1.5px #94a3b8b3}.ds-input{width:100%;border:1px solid var(--input-border);border-radius:10px;padding:10px 12px;font-size:.95rem;font-family:inherit;background:#fff;color:#0f172a}.ds-input:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 2px var(--input-shadow-focus)}.ds-input:disabled{background:var(--input-bg-disabled);color:var(--input-text-disabled);cursor:not-allowed}.ds-icon{width:20px;height:20px;stroke:currentColor;fill:none;flex-shrink:0}.app-shell{width:100%;min-height:100vh;padding:32px;display:flex;flex-direction:column;gap:24px}.app-header{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:20px 28px;border-radius:24px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;color:#0f172a;box-shadow:0 12px 30px #0f172a14}.app-header__top-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-header__brand{display:inline-flex;align-items:center;gap:18px}.app-header__brand-text{display:flex;flex-direction:column;gap:6px;line-height:1}.app-header__brand-text h1{margin:0;font-size:1.75rem;letter-spacing:.04em;font-weight:600;color:#102347}.app-header__brand-text p{margin:0;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:#5f6f90;font-weight:500}.app-header__logo{position:relative;width:56px;height:56px}.app-header__logo-outer,.app-header__logo-inner{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.app-header__logo-outer{border:2px dashed #94a3b8;box-shadow:0 4px 12px #0f172a0d inset}.app-header__logo-inner{width:26px;height:26px;background:#1d4ed8;top:50%;left:50%;transform:translate(-50%,-50%)}.app-header__project-context{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-top:10px;border-top:1px solid #e2e8f0}.app-header__project-name{max-width:100%;color:#0f172a;font-size:1rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header__breadcrumbs{display:flex;align-items:flex-start;flex-wrap:wrap;gap:4px;width:100%;line-height:1.35;max-height:calc(1.35em * 3 + 8px);overflow:auto;padding-right:4px;color:#64748b;font-size:.78rem}.app-header__breadcrumb-group{display:inline-flex;align-items:center;gap:4px;max-width:100%}.app-header__breadcrumb{color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header__breadcrumb-button{border:none;margin:0;padding:0;background:transparent;color:#64748b;font:inherit;line-height:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.app-header__breadcrumb-button:hover{color:#334155;text-decoration:underline;text-underline-offset:2px}.app-header__breadcrumb-button:focus-visible{outline:none;border-radius:4px;box-shadow:0 0 0 2px #6366f140}.app-header__breadcrumb--current,.app-header__breadcrumb-button--current{color:#1e3a8a;font-weight:600}.app-header__breadcrumb--muted,.app-header__breadcrumb-separator{color:#94a3b8}.app-header__controls{display:inline-flex;align-items:center;gap:8px}.app-header__switch-project-button{--button-color: #0f172a;--button-hover-color: #1f2937;--button-hover-bg: #eef2ff;--button-hover-border: #c7d2fe}.app-header__switch-project-button.ds-button--neutral:not(:disabled):hover{transform:none;box-shadow:0 6px 18px #0f172a1f}.app-header__switch-project-button.ds-button--neutral:active:not(:disabled){transform:none}.app-header__switch-project-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.project-selector{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 15px 35px #0f172a14;padding:20px;display:flex;flex-direction:column;gap:12px}.project-selector__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.project-selector__header h2{margin:0;font-size:1.2rem}.project-selector__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.project-selector__item{border:1px solid #e2e8f0;border-radius:14px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.project-selector__item--interactive{cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.project-selector__item--interactive:hover{border-color:#c7d2fe;background:#f8fafc}.project-selector__item--interactive:focus-visible{outline:none;border-color:#818cf8;box-shadow:0 0 0 2px #6366f133}.project-selector__item--interactive[aria-disabled=true]{cursor:default;opacity:.8}.project-selector__item-main{min-width:0}.project-selector__item-main p{margin:4px 0 0}.project-selector__item-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.project-selector__action-button{--button-color: #334155;--button-hover-color: #0f172a;--button-hover-bg: #eef2ff;--button-hover-border: #c7d2fe}.project-selector__action-button--danger{--button-color: #b91c1c;--button-hover-color: #991b1b;--button-hover-bg: #fef2f2;--button-hover-border: #fecaca}.project-selector__action-icon{width:18px;height:18px;stroke:currentColor;fill:none}.project-selector__hint{margin:0;color:#475569}.project-selector__error{margin:0;color:#b91c1c}.app-header__logout-button{border:1px solid #dbeafe;background:#f8fafc;color:#0f172a;width:40px;height:40px;border-radius:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;box-shadow:0 1px 2px #0f172a14}.app-header__logout-button:hover:not(:disabled){background:#eef2ff;border-color:#c7d2fe;box-shadow:0 6px 18px #0f172a1f}.app-header__logout-button:active:not(:disabled){transform:translateY(1px)}.app-header__logout-button:disabled{opacity:.7;cursor:default}.app-header__logout-button:focus-visible{outline:none;box-shadow:0 0 0 2px #6366f159}.app-header__error{font-size:.85rem;color:#b91c1c}.app-header__logout-icon{width:18px;height:18px;stroke:currentColor}h1{margin:0 0 12px;font-size:1.75rem;color:#0f172a}p{margin:0;color:#475569;line-height:1.5}.chart-wrapper{flex:1;background:#fff;border-radius:20px;padding:16px;box-shadow:0 15px 35px #0f172a14;display:flex;flex-direction:column;gap:12px}.chart-wrapper__actions{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc;box-shadow:0 10px 30px #0f172a14}.chart-wrapper__actions-group{display:flex;align-items:center;gap:10px}.chart-wrapper__actions-group--right{margin-left:auto}.chart-wrapper__add-span{color:var(--chart-add-icon-color, var(--button-color, #475569))}.chart-wrapper__add-span-icon,.chart-wrapper__fullscreen-icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chart-wrapper--fullscreen{border-radius:0;box-shadow:none;padding:24px;height:100%;width:100%;gap:16px}.app-footer{color:#475569;display:flex;flex-direction:column;gap:8px;font-size:.85rem;margin-top:auto;padding:16px 12px 0;border-top:1px solid #e2e8f0;background:transparent}.app-footer__owner{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.app-footer__owner-value{font-weight:400}.app-footer__links{display:flex;flex-wrap:wrap;gap:16px}.app-footer__links a{color:#1d4ed8;text-decoration:none;font-weight:500}.app-footer__links a:hover,.app-footer__links a:focus-visible{text-decoration:underline}.app-footer__copyright{font-size:.8rem;color:#94a3b8}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}.workspace-panel{display:flex;flex-direction:column;gap:0;padding-top:4px;overflow:visible}.workspace-panel__body{padding-top:8px}.workspace-panel__view[hidden]{display:none}@media (max-width: 720px){.app-shell{padding:20px}.app-header{padding:18px;border-radius:20px}.app-header__top-row{width:100%;gap:10px}.app-header__project-context{padding-top:8px}.app-header__breadcrumbs{max-height:calc(1.35em * 3 + 6px)}.app-header__controls{margin-left:auto;justify-content:flex-end}.app-header__error{width:100%}}.dialog-form-actions{display:flex;justify-content:flex-end;gap:12px}.dialog-close-button{margin-left:auto;display:inline-flex;align-items:center;justify-content:center}.dialog-close-button__icon{width:22px;height:22px;stroke:currentColor;fill:none}.dialog-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.dialog-modal__card{background:#fff;border-radius:24px;width:min(var(--dialog-modal-max-width, 720px),100%);max-height:var(--dialog-modal-max-height, 90vh);overflow:auto;padding:28px;box-shadow:0 25px 60px #0f172a59;display:flex;flex-direction:column;gap:20px}.dialog-modal__header{display:flex;gap:16px;align-items:flex-start}.dialog-modal__header h2{margin:0 0 6px}.dialog-modal__description{margin:0;color:#475569}.dialog-modal__close{margin-left:auto;flex:0 0 auto;width:40px;height:40px;padding:0;border-radius:50%}.dialog-modal__close:disabled{cursor:not-allowed}.ds-select{width:100%;border:1px solid var(--input-border);border-radius:10px;padding:10px 36px 10px 12px;font-size:.95rem;font-family:inherit;background:#fff;color:#0f172a;cursor:default}.ds-select--editable{cursor:text}.ds-select:focus{outline:none;border-color:var(--input-border-focus);box-shadow:0 0 0 2px var(--input-shadow-focus)}.ds-select:disabled,.ds-select--editable:disabled{background:var(--input-bg-disabled);color:var(--input-text-disabled);cursor:not-allowed}.ds-select__wrapper{position:relative;width:100%}.ds-select__wrapper .ds-select{width:100%}.ds-select__value-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0;white-space:nowrap}.ds-select__toggle{position:absolute;top:0;right:0;width:40px;height:100%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.ds-select__toggle span{width:12px;height:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2363748b' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat}.ds-select__toggle:disabled{cursor:not-allowed;opacity:.4}.ds-select__dropdown{position:absolute;left:0;right:0;z-index:20;margin-top:6px;background:#fff;border:1px solid var(--input-border);border-radius:12px;box-shadow:0 20px 45px #0f172a26;max-height:220px;overflow-y:auto;padding:6px 0}.ds-select__option{width:100%;border:none;background:transparent;padding:8px 14px;text-align:left;font:inherit;color:inherit;cursor:pointer}.ds-select__option:hover,.ds-select__option:focus-visible{background:#63748b14;outline:none}.ds-select__option:disabled{cursor:not-allowed;color:#0f172a66}.ds-select__option--empty{color:#64748b;cursor:default}.add-operation-form{display:flex;flex-direction:column;gap:18px}.add-operation-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.add-operation-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.add-operation-form__field label{font-weight:600;color:#0f172a}.add-operation-form__field-error{color:#c2410c;font-size:.8rem}.add-operation-form__textarea{resize:vertical;min-height:120px}.add-operation-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.add-operation-form__status--error{background:#fee2e2;color:#b91c1c}.add-operation-form__status--success{background:#dcfce7;color:#15803d}.add-node-form{display:flex;flex-direction:column;gap:18px}.add-node-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.add-node-form__field label{font-weight:600;color:#0f172a}.add-node-form__field-error{color:#c2410c;font-size:.8rem}.add-node-form__textarea{resize:vertical;min-height:120px}.add-node-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.add-node-form__status--error{background:#fee2e2;color:#b91c1c}.add-node-form__status--success{background:#dcfce7;color:#15803d}.add-relay-form{display:flex;flex-direction:column;gap:18px}.add-relay-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.add-relay-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.add-relay-form__field label{font-weight:600;color:#0f172a}.add-relay-form__field-error{color:#c2410c;font-size:.8rem}.add-relay-form__hint{color:#475569;font-size:.85rem;margin:0}.add-relay-form__textarea{resize:vertical;min-height:120px}.add-relay-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.add-relay-form__status--error{background:#fee2e2;color:#b91c1c}.add-relay-form__status--success{background:#dcfce7;color:#15803d}.info-panel{background:#fff;border-radius:20px;padding:24px;box-shadow:0 15px 35px #0f172a14;display:flex;flex-direction:column;gap:20px}.info-panel__header p{margin-top:8px;color:#475569}.info-panel__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.info-panel__card{border:1px solid #e2e8f0;border-radius:16px;padding:16px 20px;background:#f8fafc;display:flex;flex-direction:column;gap:12px}.info-panel__card h3{margin:0;font-size:1.1rem;color:#0f172a}.info-panel__item{margin-bottom:12px}.info-panel__item:last-of-type{margin-bottom:0}.info-panel__item dt{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:4px}.info-panel__item dd{margin:0;font-size:.95rem;color:#0f172a}.info-panel__error{color:#b91c1c}.switch-field{display:flex;align-items:center;gap:12px;cursor:pointer;color:#0f172a}.switch-field__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:44px;height:24px;border-radius:999px;border:1px solid #cbd5e1;background:#e2e8f0;position:relative;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;flex-shrink:0}.switch-field__input:before{content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a40;transition:transform .2s ease}.switch-field__input:checked{background:#2563eb;border-color:#2563eb}.switch-field__input:checked:before{transform:translate(20px)}.switch-field__input:focus-visible{outline:none;box-shadow:0 0 0 2px #2563eb40}.switch-field__input:disabled{opacity:.7;cursor:not-allowed}.switch-field__input:disabled+.switch-field__label{opacity:.7}.switch-field__label{font-size:.95rem;line-height:1.35}.add-project-form{display:flex;flex-direction:column;gap:18px}.add-project-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.add-project-form__field label{font-weight:600;color:#0f172a}.add-project-form__field-error{color:#c2410c;font-size:.8rem}.add-project-form__textarea{resize:vertical;min-height:120px}.add-project-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.add-project-form__status--error{background:#fee2e2;color:#b91c1c}.delete-project-dialog{display:flex;flex-direction:column;gap:18px}.delete-project-dialog__text{margin:0;color:#0f172a}.delete-project-dialog__status{border-radius:12px;padding:10px 14px;font-weight:600}.delete-project-dialog__status--error{background:#fee2e2;color:#b91c1c}.delete-project-dialog__actions{display:flex;justify-content:flex-end;gap:12px}.delete-project-dialog__submit{--accent-button-bg: #dc2626;--accent-button-color: #ffffff}.delete-project-dialog__submit:not(:disabled):hover{--accent-button-bg: #b91c1c}.edit-project-form{display:flex;flex-direction:column;gap:18px}.edit-project-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.edit-project-form__field label{font-weight:600;color:#0f172a}.edit-project-form__field-error{color:#c2410c;font-size:.8rem}.edit-project-form__textarea{resize:vertical;min-height:120px}.edit-project-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.edit-project-form__status--error{background:#fee2e2;color:#b91c1c}.toolbar-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:12px;gap:0}.toolbar-button__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;pointer-events:none;color:inherit}.toolbar-button:disabled .toolbar-button__icon{opacity:.6}.panel-header-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.panel-header-actions__button{flex-shrink:0}.panel-header-actions__icon{width:22px;height:22px;stroke:currentColor}.panel-header-actions__button--add{color:var(--panel-header-add-icon-color, var(--button-color, #475569))}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.panel-header__info{display:flex;flex-direction:column;gap:4px;min-width:0}.panel-header__title,.panel-header__description{margin:0}.panel{background:#fff;border-radius:20px;padding:24px;box-shadow:0 15px 35px #0f172a14;display:flex;flex-direction:column;gap:16px}.panel__body{display:flex;flex-direction:column;gap:16px}.panel__table-wrapper{width:100%;overflow-x:auto;border-radius:16px;border:1px solid #e2e8f0}.panel__table{width:100%;border-collapse:collapse;font-size:.95rem}.panel__table thead th{background:#f8fafc;padding:12px;text-align:left;font-weight:600;color:#0f172a}.panel__table tbody td{padding:10px 12px;border-top:1px solid #e2e8f0;color:#334155}.panel__table tbody tr:last-of-type td{border-bottom:none}.context-menu{min-width:180px;padding:6px;border-radius:10px;background:#fff;border:1px solid #cbd5f5;box-shadow:0 18px 45px #0f172a33;display:flex;flex-direction:column;gap:4px}.context-menu--floating{position:fixed;z-index:1000}.context-menu__item{width:100%;display:block;border:none;background:transparent;padding:8px 12px;border-radius:8px;font-size:.9rem;font-weight:600;color:#0f172a;cursor:pointer;text-align:left}.context-menu__item:hover:not(:disabled),.context-menu__item:focus-visible:not(:disabled){background:#e2e8f0;color:#0f172a;outline:none}.context-menu__item:disabled{opacity:.6;cursor:progress}.context-menu__item--danger{color:#b91c1c}.context-menu__item--danger:hover:not(:disabled),.context-menu__item--danger:focus-visible:not(:disabled){background:#fee2e2;color:#991b1b}.context-menu__error{margin-top:6px;padding:6px 8px;border-radius:8px;background:#fee2e2;color:#7f1d1d;font-size:.8rem}.empty-state{width:100%;max-width:460px;margin:0 auto;padding:28px 24px;border-radius:16px;background:#fff;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.empty-state__visual{width:84px;height:84px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);display:flex;align-items:center;justify-content:center}.empty-state__illustration{width:72px;height:72px}.empty-state__title{margin:0;font-size:1.05rem;font-weight:600;color:#0f172a}.empty-state__description{margin:0;color:#475569;line-height:1.5}.empty-state__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.nodes-panel__search{display:flex;justify-content:flex-end}.nodes-panel__search-input{min-width:260px}.nodes-panel__search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:20px;width:20px;border-radius:999px;background-color:#eef2f6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 5 11 11M11 5 5 11' stroke='%2394a3b8' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:12px 12px;cursor:pointer;transition:background-color .15s ease;border:1px solid #d7dee9}.nodes-panel__search-input::-webkit-search-cancel-button:hover{background-color:#d6deeb}.nodes-panel__state{padding:12px 16px;border-radius:14px;background:#f8fafc;color:#475569}.nodes-panel__state--error{background:#fee2e2;color:#b91c1c}.sort-indicator-button{--sort-indicator-focus-color: #6366f1;border:none;background:none;padding:0;margin:0;font:inherit;color:inherit;display:inline-flex;align-items:center;gap:var(--sort-indicator-gap, 8px);cursor:pointer}.sort-indicator-button:focus-visible{outline:2px solid var(--sort-indicator-focus-color);outline-offset:2px}.sort-indicator-button__label{font-weight:600;display:inline-flex;align-items:center;line-height:1.2}.sort-indicator-button__indicator{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;flex-shrink:0}.sort-indicator-button__indicator--active{border-color:currentColor}.sort-indicator-button__icon{display:inline-flex;align-items:center;justify-content:center}.sort-indicator-button__arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent}.sort-indicator-button__arrow--up{border-bottom:6px solid currentColor}.sort-indicator-button__arrow--down{border-top:6px solid currentColor}.sort-indicator-button__bar{background:currentColor}.sort-indicator-button--minimal{--sort-indicator-focus-color: #2563eb}.sort-indicator-button--minimal .sort-indicator-button__indicator{--sort-indicator-arrow-up-opacity: .7;--sort-indicator-arrow-down-opacity: .7;--sort-indicator-bar-opacity: .7;--sort-indicator-color: #94a3b8;width:1.35em;height:1.35em;color:var(--sort-indicator-color);border:none}.sort-indicator-button--minimal .sort-indicator-button__indicator--active{--sort-indicator-color: #2563eb}.sort-indicator-button--minimal .sort-indicator-button__indicator--asc{--sort-indicator-arrow-up-opacity: 1;--sort-indicator-arrow-down-opacity: .25;--sort-indicator-bar-opacity: 0}.sort-indicator-button--minimal .sort-indicator-button__indicator--desc{--sort-indicator-arrow-up-opacity: .25;--sort-indicator-arrow-down-opacity: 1;--sort-indicator-bar-opacity: 0}.sort-indicator-button--minimal .sort-indicator-button__icon{flex-direction:column;gap:2px;width:12px}.sort-indicator-button--minimal .sort-indicator-button__arrow--up{opacity:var(--sort-indicator-arrow-up-opacity)}.sort-indicator-button--minimal .sort-indicator-button__arrow--down{opacity:var(--sort-indicator-arrow-down-opacity)}.sort-indicator-button--minimal .sort-indicator-button__bar{width:6px;height:2px;border-radius:999px;opacity:var(--sort-indicator-bar-opacity)}.ops-panel__state{padding:12px 16px;border-radius:14px;background:#f8fafc;color:#475569}.ops-panel__state--error{background:#fee2e2;color:#b91c1c}.ops-panel__filters{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.ops-panel__filter{display:flex;flex-direction:column;gap:6px}.ops-panel__filter--search{flex:1 1 260px}.ops-panel__filter-label{font-size:.85rem;color:#475569;font-weight:600}.ops-panel__filter-select{min-width:220px}.ops-panel__search-input{min-width:240px}.relay-panel__state{padding:14px 16px;background:#f8fafc;border-radius:12px;color:#475569;border:1px solid #e2e8f0}.relay-panel__state--error{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.relay-panel__filters{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.relay-panel__filter{display:flex;flex-direction:column;gap:6px}.relay-panel__filter--search{flex:1 1 260px}.relay-panel__filter-label{font-size:.85rem;color:#475569;font-weight:600}.relay-panel__filter-select{min-width:220px}.relay-panel__search-input{min-width:240px}.chart-tooltip{position:fixed;padding:8px 12px;border-radius:12px;background:#0f172aeb;color:#f8fafc;font-size:.8rem;white-space:normal;line-height:1.2;text-align:center;max-width:320px;pointer-events:none;transform:none;box-shadow:0 4px 14px #0f172a47;z-index:1000}.chart-tooltip:after{content:"";position:absolute;left:50%;transform:translate(-50%);border:6px solid transparent}.chart-tooltip--top:after{bottom:-6px;border-top-color:#0f172aeb}.chart-tooltip--bottom:after{top:-6px;border-bottom-color:#0f172aeb}.add-span-form{display:flex;flex-direction:column;gap:18px}.add-span-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.add-span-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.add-span-form__field label{font-weight:600;color:#0f172a}.add-span-form__field--full{grid-column:1 / -1}.add-span-form__grid input,.add-span-form__grid select{width:100%;border:1px solid #cbd5f5;border-radius:10px;padding:10px 12px;font-size:.95rem;font-family:inherit;background:#fff;color:#0f172a}.add-span-form__control-row{display:flex;gap:8px}.add-span-form__control-row input{flex:1}.add-span-form__field-error{color:#c2410c;font-size:.8rem}.add-span-form__hint{color:#475569;font-size:.8rem}.add-span-form__dictionary-state{background:#f8fafc;border:1px dashed #cbd5f5;border-radius:16px;padding:12px 16px;color:#475569;display:flex;flex-direction:column;gap:4px;font-size:.85rem}.add-span-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.add-span-form__status--error{background:#fee2e2;color:#b91c1c}.add-span-form__status--success{background:#dcfce7;color:#15803d}.add-span-form__warning{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px 14px;color:#c2410c;font-size:.9rem}.link-dialog-form{display:flex;flex-direction:column;gap:18px}.link-dialog-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.link-dialog-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.link-dialog-form__field label{font-weight:600;color:#0f172a}.link-dialog-form__field--full{grid-column:1 / -1}.link-dialog-form__grid input,.link-dialog-form__grid select{width:100%;border:1px solid #cbd5f5;border-radius:10px;padding:10px 12px;font-size:.95rem;font-family:inherit;background:#fff;color:#0f172a}.link-dialog-form__control-row{display:flex;gap:8px}.link-dialog-form__control-row input{flex:1}.link-dialog-form__field-error{color:#c2410c;font-size:.8rem}.link-dialog-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.link-dialog-form__status--error{background:#fee2e2;color:#b91c1c}.link-dialog-form__status--success{background:#dcfce7;color:#15803d}.link-dialog-form__sr-field{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:0}.link-dialog-form__hint{background:#f8fafc;border:1px dashed #cbd5f5;border-radius:16px;padding:12px 16px;color:#475569;font-size:.85rem}.add-source-form{display:flex;flex-direction:column;gap:18px}.add-source-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.add-source-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.add-source-form__field label{font-weight:600;color:#0f172a}.add-source-form__field--full{grid-column:1 / -1}.add-source-form__grid input,.add-source-form__grid select{width:100%;border:1px solid #cbd5f5;border-radius:10px;padding:10px 12px;font-size:.95rem;font-family:inherit;background:#fff;color:#0f172a}.add-source-form__control-row{display:flex;gap:8px}.add-source-form__control-row input{flex:1}.add-source-form__field-error{color:#c2410c;font-size:.8rem}.add-source-form__hint{color:#475569;font-size:.8rem}.add-source-form__dictionary-state{background:#f8fafc;border:1px dashed #cbd5f5;border-radius:16px;padding:12px 16px;color:#475569;display:flex;flex-direction:column;gap:4px;font-size:.85rem}.add-source-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.add-source-form__status--error{background:#fee2e2;color:#b91c1c}.add-source-form__status--success{background:#dcfce7;color:#15803d}.edit-span-form{display:flex;flex-direction:column;gap:18px}.edit-span-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.edit-span-form__field label{font-weight:600;color:#0f172a}.edit-span-form__field-error{color:#c2410c;font-size:.8rem}.edit-span-form__dictionary-state{font-size:.85rem;color:#475569;margin:0}.edit-span-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.edit-span-form__status--error{background:#fee2e2;color:#b91c1c}.edit-span-form__status--success{background:#dcfce7;color:#15803d}.edit-source-form{display:flex;flex-direction:column;gap:18px}.edit-source-form__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.edit-source-form__field label{font-weight:600;color:#0f172a}.edit-source-form__field-error{color:#c2410c;font-size:.8rem}.edit-source-form__hint{font-size:.85rem;color:#475569}.edit-source-form__dictionary-state{font-size:.85rem;color:#475569;margin:0}.edit-source-form__status{border-radius:12px;padding:10px 14px;font-weight:600}.edit-source-form__status--error{background:#fee2e2;color:#b91c1c}.edit-source-form__status--success{background:#dcfce7;color:#15803d}.delete-source-dialog{display:flex;flex-direction:column;gap:18px}.delete-source-dialog__text{margin:0;color:#0f172a}.delete-source-dialog__status{border-radius:12px;padding:10px 14px;font-weight:600}.delete-source-dialog__status--error{background:#fee2e2;color:#b91c1c}.delete-source-dialog__actions{display:flex;justify-content:flex-end;gap:12px}.delete-source-dialog__submit{--accent-button-bg: #dc2626;--accent-button-color: #ffffff}.delete-source-dialog__submit:not(:disabled):hover{--accent-button-bg: #b91c1c}.chart-wrapper--fullscreen .chart-scroll{flex:1;min-height:0}.chart-scroll-wrapper{position:relative;width:100%;overflow:hidden}.chart-wrapper--fullscreen .chart-scroll-wrapper{flex:1;min-height:0;display:flex;flex-direction:column}.chart-scroll{width:100%;overflow-x:scroll;padding:12px;border:1px solid rgba(148,163,184,.55);border-radius:16px;box-shadow:inset 0 1px 3px #0f172a1f;scrollbar-gutter:stable both-edges;scrollbar-width:none;-ms-overflow-style:none;position:relative;user-select:none;-webkit-user-select:none}.chart-scroll svg{user-select:none;-webkit-user-select:none}.chart-scroll__state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:10px 16px;border-radius:999px;background:#f8fafcf2;color:#475569;font-size:.9rem;text-align:center;pointer-events:none;box-shadow:0 6px 20px #0f172a1f}.chart-scroll__state--error{color:#b91c1c}.chart-scroll::-webkit-scrollbar{display:none}.chart-scroll-indicator{position:relative;width:100%;height:8px;margin-top:12px;border-radius:999px;background:#e2e8f0;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a1f;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0;opacity:1;transform:translateY(0)}.chart-scroll-indicator:active{cursor:grabbing}.chart-scroll-indicator--hidden{height:0;margin-top:0;border:0;box-shadow:none;opacity:0;pointer-events:none;transform:translateY(-6px)}.chart-scroll-indicator--dragging{cursor:grabbing}.chart-scroll-indicator__thumb{position:absolute;top:0;bottom:0;left:var(--indicator-left, 0%);width:var(--indicator-width, 100%);border-radius:inherit;background:#94a3b8;box-shadow:0 1px 4px #47556959}svg{min-height:160px}.toolbar-split-button{position:relative;display:inline-flex}.toolbar-split-button__toggle{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:0 12px;gap:8px;height:40px}.toolbar-split-button__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;overflow:hidden;pointer-events:none}.toolbar-split-button__icon>svg{display:block;width:100%;height:100%;overflow:hidden;pointer-events:none}.toolbar-split-button__caret{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:#94a3b8;pointer-events:none;flex-shrink:0}.toolbar-split-button__caret-icon{width:12px;height:12px;display:block}.toolbar-split-button__toggle:not(:disabled):hover .toolbar-split-button__caret,.toolbar-split-button__toggle--open .toolbar-split-button__caret{color:#475569}.toolbar-split-button__toggle--open .toolbar-split-button__caret-icon{transform:rotate(180deg)}.toolbar-split-button__menu{position:absolute;top:calc(100% + 8px);left:0;min-width:196px;border-radius:14px;border-color:#e2e8f0;box-shadow:0 18px 35px #0f172a2e;background:#fff;z-index:5}.toolbar-split-button__menu .context-menu__item{padding:10px 12px;border-radius:10px}.toolbar-split-button__menu .context-menu__item:focus-visible{outline:none;box-shadow:0 0 0 2px #6366f133}.toolbar-split-button__menu .context-menu__item:not(:disabled):hover{background:#eef2ff;color:#1f2937;transform:translate(2px)}.toolbar-split-button__menu .context-menu__item:disabled{opacity:.6;cursor:not-allowed}.scene-export-button__icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.node-circle-wrapper{transform-origin:center;transform-box:fill-box}.node{fill:#1d4ed8;cursor:pointer;-webkit-user-select:none;user-select:none}.node:hover{fill:#2563eb}.node--drag-source,.node--drag-target{stroke:#14b8a6;stroke-width:2.5px}.node-expanded,.node.node-expanded:hover{fill:#f97316}.node-label{font-size:11px;fill:#475569;text-anchor:middle;-webkit-user-select:none;user-select:none;opacity:1}.node-connector-hitbox{stroke:transparent;stroke-width:12px;opacity:0;fill:none;pointer-events:stroke}.node-connector{stroke:var(--span-connector-color, #8da2fd);stroke-width:2px;pointer-events:none}.node-connector--highlighted{stroke:var(--span-connector-highlight-color, #5465d6);opacity:1}.node-connector--lifeline-underlay{stroke:#a855f766;stroke-width:6px;opacity:.85;pointer-events:none;stroke-linecap:round}.node-connector-arrow{fill:var(--span-connector-color, #8da2fd);pointer-events:none}.node-connector-arrow--highlighted{fill:var(--span-connector-highlight-color, #5465d6);opacity:1}.lifeline-connector-underlay{stroke:#a855f733;stroke-width:6px;opacity:.75;pointer-events:none;stroke-linecap:round;fill:none}.node-connector-arrow--lifeline-underlay{fill:none;stroke:#a855f766;stroke-width:3px;opacity:.9;pointer-events:none;stroke-linejoin:round}.span-link-drag-preview{stroke:#22c55e;stroke-width:2.5px;stroke-dasharray:7 5;stroke-dashoffset:0;opacity:.95;fill:none;animation:span-link-drag-dash .85s linear infinite}.span-link-drag-preview--neutral{stroke:#22c55e}.span-link-drag-preview--context{stroke:#818cf8}.span-link-drag-preview--message{stroke:#f97316}.span-link-drag-origin,.span-link-drag-tip{fill:#22c55e;stroke:#16a34a;stroke-width:2px;opacity:1}.span-link-drag-arrow{pointer-events:none}.span-link-drag-arrow--neutral{fill:#22c55e}.span-link-drag-arrow--context{fill:#818cf8}.span-link-drag-arrow--message{fill:#f97316}@keyframes span-link-drag-dash{to{stroke-dashoffset:-24}}.source-space-wrapper{pointer-events:auto}.source-visual{cursor:pointer;pointer-events:auto;-webkit-user-select:none;user-select:none}.source-visual__circle{fill:transparent;stroke:#94a3b8;stroke-width:2px;stroke-dasharray:4 4}.source-visual__dot{fill:#475569}.source-label{font-size:11px;fill:#334155;text-anchor:middle;-webkit-user-select:none;user-select:none}.source-connector{stroke:#94a3b8;stroke-width:1px;stroke-dasharray:6 4;pointer-events:none}.source-connector-arrow{fill:#94a3b8}.source-parent-connector{stroke:#94a3b8;stroke-width:2px;stroke-dasharray:2 6;opacity:.9;pointer-events:none}.source-parent-connector-arrow{fill:#94a3b8}.context-connector-hitbox{fill:none;stroke:transparent;stroke-width:6px;opacity:0;pointer-events:stroke}.context-connector{stroke:#818cf8;stroke-width:2px;stroke-dasharray:4 5;opacity:.85;pointer-events:none;fill:none}.context-connector--highlighted{stroke-width:4px}.context-connector--lifeline-underlay{stroke:#a855f766;stroke-width:6px;stroke-dasharray:none;opacity:.85;pointer-events:none}.context-connector-arrow{fill:#818cf8}.context-connector-arrow--lifeline-underlay{fill:none;stroke:#a855f766;stroke-width:3px;opacity:.9;pointer-events:none;stroke-linejoin:round}.context-connector-origin{fill:#fff;stroke:#818cf8;stroke-width:2px;opacity:.95}.context-connector-origin--highlighted{stroke-width:3px}.context-connector-origin--lifeline-underlay{stroke:#a855f766;stroke-width:4px;opacity:.95;pointer-events:none}.context-connector--segment-highlighted{stroke:#f97316;opacity:.9}.message-connector-hitbox{fill:none;stroke:transparent;stroke-width:6px;opacity:0;pointer-events:stroke}.message-connector{stroke:#f97316;stroke-width:2px;stroke-dasharray:7 4 2 4;opacity:.9;pointer-events:none;fill:none}.message-connector--highlighted{stroke-width:4px}.message-connector--segment-highlighted{stroke-width:3px;opacity:1}.message-connector-arrow{fill:#f97316}.message-connector-origin{fill:#fff;stroke:#f97316;stroke-width:2px;opacity:.95}.message-connector-origin--highlighted{stroke-width:3px}.cross-scene-connector-hitbox{fill:none;stroke:transparent;stroke-width:10px;opacity:0;cursor:context-menu;pointer-events:stroke}.cross-scene-connector{stroke:#f97316;stroke-width:2px;stroke-dasharray:7 4 2 4;opacity:.9;fill:none;pointer-events:none}.cross-scene-connector--highlighted{opacity:1}.cross-scene-connector-origin{fill:#fff;stroke:#f97316;stroke-width:2px;opacity:.95}.cross-scene-connector-arrow{fill:#f97316}.cross-scene-circle{fill:#fff7ed;stroke:#f97316;stroke-width:2.5px}.cross-scene-circle--highlighted{fill:#ffedd5}.cross-scene-symbol{fill:none;stroke:#f97316;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.cross-scene-label{font-size:11px;fill:#c2410c;-webkit-user-select:none;user-select:none;pointer-events:none}.row-background{pointer-events:none;shape-rendering:geometricPrecision;vector-effect:non-scaling-stroke}.fractal-segment{stroke:var(--fractal-segment-color, #f97316);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.95;pointer-events:none}.fractal-segment-bar{cursor:pointer;transition:fill .15s ease,stroke .15s ease}.fractal-segment-hitbox{fill:transparent;stroke:none;cursor:pointer;pointer-events:fill}.fractal-segment-dashed{stroke:var(--fractal-segment-color, #f97316);stroke-width:1.5px;stroke-dasharray:4 3;stroke-linecap:round;fill:none;opacity:.55;pointer-events:none}.fractal-segment-endpoint{fill:var(--fractal-segment-color, #f97316);opacity:.85;pointer-events:none}.fractal-segment-collapsed .fractal-segment-endpoint{fill:#c2410c;opacity:.5}.fractal-segment-collapsed .fractal-segment-dashed{stroke:#c2410c;opacity:.35}.segment-connector-underlay{stroke:#f973164d;stroke-width:6px;opacity:.85;pointer-events:none;stroke-linecap:round;fill:none}.segment-spawning-underlay{stroke:#f973168c;stroke-width:7px;opacity:.9;pointer-events:none;stroke-linecap:round;fill:none}.fractal-external-path{pointer-events:none}.fractal-external-arc-hitbox{fill:none;stroke:transparent;stroke-width:6px;opacity:0;pointer-events:none}.fractal-external-arc{stroke:#f97316;stroke-width:2px;stroke-dasharray:4 5;stroke-dashoffset:0;opacity:.35;pointer-events:none;fill:none;animation:fractal-external-arc-march .6s linear infinite}.fractal-external-path--highlighted .fractal-external-arc{opacity:.9;stroke-width:2.5px}@keyframes fractal-external-arc-march{to{stroke-dashoffset:-9}}.fractal-external-arc-origin{fill:#fff;stroke:#f97316;stroke-width:2px;opacity:.4}.fractal-external-path--highlighted .fractal-external-arc-origin{opacity:.95}.fractal-external-arc-arrow{fill:#f97316;opacity:.4}.fractal-external-path--highlighted .fractal-external-arc-arrow{opacity:.9}.derived-span-icon-line{stroke:#f97316;stroke-width:2px;stroke-linecap:round}.derived-span-icon-dot{fill:#f97316}.scene-sticky-layer{position:absolute;top:0;left:0;width:0;height:0;pointer-events:none;overflow:visible;z-index:2;will-change:transform;transform:translate3d(0,var(--scene-sticky-translate-y, 0px),0)}.scene-sticky-layer__item{position:absolute;left:0;display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:0 18px 18px 0;background:#ffffffeb;color:#0f172a;font-size:.78rem;font-weight:600;line-height:1;letter-spacing:.01em;box-shadow:0 8px 28px #0f172a2e;opacity:0;pointer-events:none}.scene-sticky-layer__item--visible{opacity:1;pointer-events:auto}.scene-sticky-layer__item,.scene-sticky-layer__item *{user-select:none;-webkit-user-select:none}.scene-sticky-layer__icon{width:32px;height:32px;border-radius:50%;border:1px dashed #94a3b8;display:inline-flex;align-items:center;justify-content:center;background:#94a3b81f}.scene-sticky-layer__icon-dot{width:10px;height:10px;border-radius:50%;background:#475569}.scene-sticky-layer__text{display:flex;flex-direction:column;gap:2px;max-width:220px}.scene-sticky-layer__node,.scene-sticky-layer__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-sticky-layer__node{font-size:.7rem;font-weight:500;color:#475569}.scene-zoom-overlay{position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:1px;background:#f8fafc;border:1px solid #cbd5f5;border-radius:9px;padding:3px 5px;box-shadow:0 1px 2px #0f172a14;-webkit-user-select:none;user-select:none;pointer-events:all;z-index:10;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.scene-zoom-overlay:hover{background:#eef2ff;border-color:#a5b4fc;box-shadow:0 6px 18px #0f172a1f}.scene-zoom-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:6px;background:transparent;color:#475569;font-size:17px;font-weight:400;line-height:1;cursor:pointer;transition:background .11s ease,color .11s ease;outline:none}.scene-zoom-btn:hover{background:#6366f11a;color:#1f2937}.scene-zoom-btn:active{background:#6366f12e}.scene-zoom-reset{display:flex;align-items:center;justify-content:center;min-width:46px;height:26px;padding:0 5px;border:none;border-radius:6px;background:transparent;color:#475569;font-size:11px;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.04em;cursor:pointer;transition:background .11s ease,color .11s ease;outline:none}.scene-zoom-reset:hover{background:#6366f11a;color:#1f2937}.scene-zoom-reset:active{background:#6366f12e}.delete-scene-dialog{display:flex;flex-direction:column;gap:18px}.delete-scene-dialog__text{margin:0;color:#0f172a}.delete-scene-dialog__status{border-radius:12px;padding:10px 14px;font-weight:600}.delete-scene-dialog__status--error{background:#fee2e2;color:#b91c1c}.delete-scene-dialog__actions{display:flex;justify-content:flex-end;gap:12px}.delete-scene-dialog__submit{--accent-button-bg: #dc2626;--accent-button-color: #ffffff}.delete-scene-dialog__submit:not(:disabled):hover{--accent-button-bg: #b91c1c}.scenes-panel__search{display:flex;justify-content:flex-end}.scenes-panel__search-input{min-width:260px}.scenes-panel__search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:20px;width:20px;border-radius:999px;background-color:#eef2f6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 5 11 11M11 5 5 11' stroke='%2394a3b8' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;background-size:12px 12px;cursor:pointer;transition:background-color .15s ease;border:1px solid #d7dee9}.scenes-panel__search-input::-webkit-search-cancel-button:hover{background-color:#d6deeb}.scenes-panel__state{padding:12px 16px;border-radius:14px;background:#f8fafc;color:#475569}.scenes-panel__state--error{background:#fee2e2;color:#b91c1c}.tabbar{display:flex;align-items:flex-end;gap:12px;padding:4px 12px 0;border-bottom:1px solid #e2e8f0;background:transparent;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scroll-snap-type:x proximity;scrollbar-width:thin}.tabbar__item{border:none;background:transparent;padding:16px 20px 12px;border-radius:18px 18px 0 0;font:inherit;color:#64748b;cursor:pointer;border:1px solid transparent;border-bottom:none;display:inline-flex;align-items:center;gap:10px;flex-shrink:0;scroll-snap-align:start}.tabbar__item:focus-visible{outline:none;border-color:#94a3b8}.tabbar__item--active{color:#0f172a;background:#fff;border-color:#e2e8f0;box-shadow:0 6px 18px #0f172a14}.tabbar__item-label{font-weight:600}.tabbar__item-count{border-radius:999px;background:var(--span-icon-color, #475569);color:#fff;font-size:.75rem;font-weight:600;padding:2px 8px;line-height:1.2;min-width:28px;text-align:center}.tabbar__item--active .tabbar__item-count{background:var(--span-icon-color, #475569)}.tabbar::-webkit-scrollbar{height:6px}.tabbar::-webkit-scrollbar-track{background:transparent}.tabbar::-webkit-scrollbar-thumb{background:#64748b66;border-radius:3px}.scene-form-dialog__form{display:flex;flex-direction:column;gap:18px}.scene-form-dialog__field{display:flex;flex-direction:column;gap:8px;font-size:.9rem;color:#1f2937}.scene-form-dialog__field label{font-weight:600;color:#0f172a}.scene-form-dialog__field-error{color:#c2410c;font-size:.8rem}.scene-form-dialog__hint{font-size:.8rem;color:#6b7280;margin:-4px 0 0}.scene-form-dialog__textarea{resize:vertical;min-height:120px}.scene-form-dialog__status{border-radius:12px;padding:10px 14px;font-weight:600}.scene-form-dialog__status--error{background:#fee2e2;color:#b91c1c}.scene-form-dialog__status--success{background:#dcfce7;color:#15803d}.auth-page{width:100%;min-height:100vh;padding:32px;display:flex;flex-direction:column;gap:24px;background:#fff;color:#0f172a;font-family:Inter,Inter var,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.auth-page__header{display:flex;align-items:center;gap:24px;padding:20px 28px;border-radius:24px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;box-shadow:0 12px 30px #0f172a14}.auth-page__brand{display:flex;align-items:center;gap:18px}.auth-page__logo{position:relative;width:56px;height:56px;flex-shrink:0}.auth-page__logo-outer,.auth-page__logo-inner{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.auth-page__logo-outer{border:2px dashed #94a3b8;box-shadow:0 4px 12px #0f172a0d inset}.auth-page__logo-inner{width:26px;height:26px;background:#1d4ed8;top:50%;left:50%;transform:translate(-50%,-50%)}.auth-page__brand-text{display:flex;flex-direction:column;gap:6px;line-height:1}.auth-page__brand-text h1{margin:0;font-size:1.75rem;letter-spacing:.04em;font-weight:600;color:#102347;font-family:inherit}.auth-page__brand-text p{margin:0;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:#5f6f90;font-weight:500;font-family:inherit}.auth-page__main{flex:1;display:flex;align-items:center;justify-content:center;padding:16px 0}.auth-card{background:#fff;border-radius:20px;padding:32px 36px;width:100%;max-width:420px;box-shadow:0 20px 50px #0f172a1f;border:1px solid #e2e8f0}.auth-card__title{margin:0 0 16px;font-size:1.5rem;font-weight:600;color:#0f172a}.auth-card__error{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;font-size:.9rem;margin-bottom:16px}.auth-card__hint{margin:0 0 16px;font-size:.9rem;color:#475569;line-height:1.5}.auth-card__alt{margin:16px 0 0;font-size:.9rem;color:#64748b;text-align:center}.auth-card__alt a{color:#2563eb;font-weight:600;text-decoration:none}.auth-card__alt a:hover{text-decoration:underline}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form__field{display:flex;flex-direction:column;gap:6px}.auth-form__label{font-weight:600;font-size:.9rem;color:#0f172a}.auth-form__input{width:100%;padding:12px 14px;border:1px solid #cbd5f5;border-radius:10px;font-size:1rem;background:#f8fafc;color:#0f172a;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-form__input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;background:#fff}.auth-form__input:disabled{opacity:.6;cursor:not-allowed}.auth-form__submit{width:100%;margin-top:4px;padding:12px 16px;background:#2563eb;color:#fff;font-size:1rem;border:none;border-radius:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s ease,transform .15s ease,box-shadow .2s ease;box-shadow:0 12px 30px #2563eb4d}.auth-form__submit:hover:not(:disabled){background:#1d4ed8;box-shadow:0 18px 35px #1d4ed859}.auth-form__submit:active:not(:disabled){transform:translateY(1px)}.auth-form__submit:disabled{opacity:.7;cursor:not-allowed}.auth-page__footer{color:#475569;display:flex;flex-direction:column;gap:8px;font-size:.85rem;margin-top:auto;padding:16px 12px 0;border-top:1px solid #e2e8f0}.auth-page__footer-links{display:flex;flex-wrap:wrap;gap:16px}.auth-page__footer-links a{color:#1d4ed8;text-decoration:none;font-weight:500}.auth-page__footer-links a:hover,.auth-page__footer-links a:focus-visible{text-decoration:underline}.auth-page__footer-copyright{font-size:.8rem;color:#94a3b8}@media (max-width: 640px){.auth-page{padding:16px}.auth-page__header{flex-direction:column;align-items:flex-start}.auth-card{padding:24px}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#0f172a;background-color:#f8fafc}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f8fafc;overflow-y:auto}#root{min-height:100vh}
