:root,[data-tx-theme=light]{color-scheme:light;--tx-bg: #f3f5fa;--tx-surface: #ffffff;--tx-surface-alt: #f7f9fc;--tx-text: #172339;--tx-muted: #53627a;--tx-border: #c7d0df;--tx-accent: #365bc6;--tx-accent-text: #ffffff;--tx-hover: #e9eefb;--tx-selection: #e1eaff;--tx-danger: #b42338;--tx-success: #137553;--tx-focus: #315dd6;--tx-shadow: 0 20px 70px #17233926;--tx-backdrop: #101b386b}[data-tx-theme=dark]{color-scheme:dark;--tx-bg: #101725;--tx-surface: #182236;--tx-surface-alt: #1d2a40;--tx-text: #edf2fc;--tx-muted: #b0bfd6;--tx-border: #465974;--tx-accent: #a9beff;--tx-accent-text: #132348;--tx-hover: #283c5c;--tx-selection: #2b416b;--tx-danger: #ff9cad;--tx-success: #7bdbb4;--tx-focus: #b5c8ff;--tx-shadow: 0 20px 70px #00000066;--tx-backdrop: #020714a6}.tx-choice{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tx-vertical{flex-direction:column;align-items:stretch}.tx-choice .tx-active,[role=option][aria-selected=true]{background:var(--tx-selection);border-color:var(--tx-accent)}.tx-options{display:flex;flex-direction:column;max-height:360px;overflow:auto;gap:4px}.tx-option{font:inherit;text-align:start;padding:10px;border:0;background:transparent;color:var(--tx-text);cursor:pointer;flex:1}.tx-option:hover{background:var(--tx-hover)}.tx-option small{display:block;color:var(--tx-muted)}.tx-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:var(--tx-selection);border-radius:var(--tx-radius)}.tx-tag button{border:0;background:transparent;color:inherit;cursor:pointer}.tx-list-row,.tx-file-entry{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--tx-border)}.tx-gallery-stage{display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--tx-surface-alt)}.tx-gallery img{max-width:100%;max-height:100%;object-fit:contain}.tx-fab{position:fixed;z-index:900;display:flex;flex-direction:column;gap:8px}.tx-bottom-right{bottom:24px;right:24px}.tx-bottom-left{bottom:24px;left:24px}.tx-top-right{top:24px;right:24px}.tx-top-left{top:24px;left:24px}.tx-fab-trigger{width:56px;height:56px;align-self:flex-end;border-radius:50%;background:var(--tx-accent);color:var(--tx-accent-text);border:0;font-size:28px;box-shadow:var(--tx-shadow)}.tx-context-backdrop{position:fixed;inset:0;z-index:1200}.tx-context-menu{position:absolute;min-width:220px;max-width:250px;max-height:320px;overflow:auto;background:var(--tx-surface);color:var(--tx-text);border:1px solid var(--tx-border);border-radius:var(--tx-radius);padding:8px;box-shadow:var(--tx-shadow)}.tx-range{padding:12px;min-width:180px}.tx-range-track{position:relative;height:36px;background:linear-gradient(transparent 15px,var(--tx-border) 15px,var(--tx-border) 21px,transparent 21px)}.tx-range-selection{position:absolute;top:15px;height:6px;background:var(--tx-accent);cursor:grab;touch-action:none}.tx-range-input{position:absolute;left:0;top:0;width:100%;height:36px;margin:0;pointer-events:none;appearance:none;background:transparent}.tx-range-input::-webkit-slider-thumb{pointer-events:auto;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--tx-accent);cursor:ew-resize}.tx-range-input::-moz-range-thumb{pointer-events:auto;background:var(--tx-accent);border:0}.tx-range-labels{display:flex;justify-content:space-between;color:var(--tx-muted)}.tx-range-chart{width:100%;height:100px;display:block}.tx-uploader{padding:16px;border:1px dashed var(--tx-border);border-radius:var(--tx-radius)}.tx-uploader li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px}.tx-file-manager{padding:16px;border:1px solid var(--tx-border);background:var(--tx-surface);border-radius:var(--tx-radius)}.tx-file-manager nav{margin-bottom:12px}.tx-file-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.tx-file-tiles .tx-file-entry{flex-wrap:wrap;border:1px solid var(--tx-border);padding:12px}.tx-load-panel{position:absolute;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center}.tx-load-fullscreen{position:fixed}.tx-load-shading{background:var(--tx-backdrop)}.tx-load-content{display:flex;gap:12px;align-items:center;background:var(--tx-surface);color:var(--tx-text);padding:20px;border-radius:var(--tx-radius);box-shadow:var(--tx-shadow)}.tx-notification{position:fixed;z-index:2000;display:flex;align-items:center;gap:12px;max-width:min(420px,90vw);padding:16px;background:var(--tx-surface);color:var(--tx-text);border:1px solid var(--tx-border);border-inline-start:4px solid var(--tx-accent);border-radius:var(--tx-radius);box-shadow:var(--tx-shadow)}.tx-toast-warning{border-inline-start-color:#bd7900}.tx-map{position:relative;overflow:hidden;background:var(--tx-surface-alt);touch-action:none;border:1px solid var(--tx-border)}.tx-map-tile{position:absolute;width:256px;height:256px;-webkit-user-select:none;user-select:none}.tx-map-routes{position:absolute;inset:0;pointer-events:none}.tx-map-marker{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;color:var(--tx-accent);font-size:28px;cursor:pointer}.tx-map-controls{position:absolute;top:8px;left:8px;display:flex;flex-direction:column}.tx-map-controls button{font-size:22px;width:36px;height:36px}.tx-map-popup{position:absolute;top:8px;right:8px;padding:12px;background:var(--tx-surface);box-shadow:var(--tx-shadow)}.tx-map-attribution{position:absolute;bottom:0;right:0;background:var(--tx-surface);padding:3px}.tx-map-placeholder{position:absolute;inset:30% 15%;text-align:center;color:var(--tx-muted)}@media(prefers-reduced-motion:reduce){.tx-gallery *,.tx-fab *{animation:none!important;transition:none!important}}.tx-notification-stack{position:fixed;z-index:2000;display:flex;flex-direction:column;gap:8px;max-height:90dvh;overflow:auto;pointer-events:none}.tx-notification-stack .tx-notification{position:relative;pointer-events:auto}.tx-popup-top{align-items:flex-start}.tx-popup-bottom{align-items:flex-end}.tx-toast-host.tx-top-left,.tx-toast-host.tx-top-right{bottom:auto}.tx-toast-host.tx-bottom-left,.tx-toast-host.tx-top-left{right:auto}.tx-lookup button:not(.tx-control),.tx-gallery button,.tx-file-manager button,.tx-uploader button,.tx-context-menu button,.tx-list button:not(.tx-option),.tx-map-controls button,.tx-notification button{font:inherit;padding:7px 10px;border:1px solid var(--tx-border);border-radius:var(--tx-radius);background:var(--tx-surface);color:var(--tx-text);cursor:pointer}.tx-lookup button:disabled,.tx-gallery button:disabled,.tx-file-manager button:disabled,.tx-uploader button:disabled,.tx-list button:disabled{opacity:.45;cursor:default}.tx-directory-tree{list-style:none;padding-inline-start:16px}.tx-directory-tree button{margin:2px}.tx-radio-group .tx-button{display:inline-flex;align-items:center;gap:8px;border-color:transparent;background:transparent}.tx-radio-group [role=radio]:before{content:"";width:16px;height:16px;border:2px solid var(--tx-border);border-radius:50%}.tx-radio-group [aria-checked=true]:before{border-color:var(--tx-accent);background:radial-gradient(circle,var(--tx-accent) 0 4px,transparent 5px)}.tx-gallery-stage{animation:tx-gallery-reveal .2s ease-out}@keyframes tx-gallery-reveal{0%{opacity:.4}to{opacity:1}}.tx-list-row:has(.tx-list-group){flex-wrap:wrap}.tx-list-group{flex-basis:100%;padding:8px;color:var(--tx-muted);font-weight:600}.tx-scheduler{font-family:var(--tx-font);font-size:var(--tx-font-size);color:var(--tx-text);background:var(--tx-surface);border:1px solid var(--tx-border);border-radius:12px;overflow:hidden;--tx-scheduler-slot-height: 36px}.tx-scheduler *,.tx-scheduler *:before,.tx-scheduler *:after{box-sizing:border-box}.tx-scheduler-toolbar,.tx-scheduler-navigation,.tx-scheduler-actions,.tx-scheduler-views{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tx-scheduler-toolbar{padding:20px;justify-content:space-between;gap:16px}.tx-scheduler-navigation .tx-button,.tx-scheduler-actions .tx-button{min-height:34px;font-size:12px;padding:7px 11px}.tx-scheduler-date .tx-control{min-height:34px;width:148px;font-size:12px;padding:5px 8px}.tx-scheduler-views{gap:3px;padding:3px;border-radius:9px;background:var(--tx-surface-alt);border:1px solid var(--tx-border)}.tx-scheduler-views .tx-button{border-color:transparent;background:transparent}.tx-scheduler-views .tx-button-default{background:var(--tx-accent)}.tx-scheduler-period{padding:0 20px 18px;font-size:17px;font-weight:650;text-transform:capitalize}.tx-scheduler-scroll{overflow:auto;max-height:660px;border-top:1px solid var(--tx-border)}.tx-scheduler-time{display:grid;min-width:890px}.tx-scheduler-single{min-width:320px}.tx-scheduler-day-header{position:sticky;top:0;z-index:3;display:grid;gap:2px;text-align:center;padding:12px 5px;background:var(--tx-surface-alt);border-right:1px solid var(--tx-border);border-bottom:1px solid var(--tx-border)}.tx-scheduler-day-header span{font-size:10px;color:var(--tx-muted)}.tx-scheduler-day-header strong{font-size:13px;font-weight:600}.tx-scheduler-time-label{align-items:center;font-size:10px;font-weight:500;color:var(--tx-muted)}.tx-scheduler-today{background:var(--tx-hover)}.tx-scheduler-day-header.tx-scheduler-today strong{color:var(--tx-accent)}.tx-scheduler-allday-label{padding:12px 4px;font-size:9px;color:var(--tx-muted);text-align:center;border-bottom:1px solid var(--tx-border)}.tx-scheduler-allday-cell{min-height:44px;padding:4px;border-right:1px solid var(--tx-border);border-bottom:1px solid var(--tx-border);display:flex;flex-direction:column;gap:3px;background:var(--tx-surface-alt)}.tx-scheduler-allday-add{align-self:flex-end;border:0;background:transparent;color:var(--tx-muted);padding:1px 7px;cursor:pointer;font:inherit;border-radius:4px}.tx-scheduler-day-column{position:relative;height:calc(var(--tx-scheduler-slot-count) * var(--tx-scheduler-slot-height));border-right:1px solid var(--tx-border)}.tx-scheduler-cell{display:block;width:100%;height:var(--tx-scheduler-slot-height);border:0;border-bottom:1px solid var(--tx-border);background:transparent;padding:0;cursor:pointer}.tx-scheduler-cell:nth-child(2n){border-bottom-style:dashed}.tx-scheduler-cell:hover:not(:disabled),.tx-scheduler-cell:focus-visible{background:var(--tx-hover)}.tx-scheduler-cell:focus-visible{outline:2px solid var(--tx-focus);outline-offset:-3px}.tx-scheduler-hours{height:calc(var(--tx-scheduler-slot-count) * var(--tx-scheduler-slot-height));background:var(--tx-surface-alt)}.tx-scheduler-hour{height:var(--tx-scheduler-slot-height);padding:3px 10px;text-align:right;font-size:10px;color:var(--tx-muted);border-right:1px solid var(--tx-border)}.tx-appointment{display:flex;flex-direction:column;gap:3px;border:1px solid var(--tx-accent);border-left:3px solid var(--tx-accent);background:var(--tx-selection);color:var(--tx-text);border-radius:6px;padding:5px 7px;font:inherit;text-align:left;overflow:hidden;min-width:0;cursor:pointer;z-index:1}.tx-appointment strong{font-size:11px;font-weight:650;overflow:hidden;text-overflow:ellipsis}.tx-appointment>span{font-size:9px;color:var(--tx-muted);white-space:nowrap}.tx-appointment:hover:not(:disabled){background:var(--tx-hover);box-shadow:inset 0 0 0 1px var(--tx-accent)}.tx-appointment:focus-visible{outline:3px solid var(--tx-focus);outline-offset:1px;z-index:4}.tx-appointment:disabled{cursor:not-allowed;opacity:.55}.tx-appointment-compact{position:static;width:100%;min-height:26px;flex-direction:row;align-items:baseline;gap:5px;flex-wrap:wrap;padding:3px 5px}.tx-appointment-allday{border-left-style:double;background:var(--tx-hover)}.tx-scheduler-month{min-width:780px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.tx-scheduler-weekday{text-align:center;background:var(--tx-surface-alt);font-size:11px;font-weight:600;padding:12px;border-bottom:1px solid var(--tx-border);color:var(--tx-muted);position:sticky;top:0;z-index:3}.tx-scheduler-month-day{min-height:108px;padding:7px;border-right:1px solid var(--tx-border);border-bottom:1px solid var(--tx-border);display:flex;flex-direction:column;align-items:stretch;gap:4px}.tx-scheduler-outside{background:var(--tx-surface-alt)}.tx-scheduler-outside .tx-scheduler-day-number{color:var(--tx-muted)}.tx-scheduler-day-number{border:0;border-radius:50%;background:transparent;color:var(--tx-text);font:inherit;width:28px;height:28px;align-self:flex-end;cursor:pointer;font-size:12px}.tx-scheduler-today .tx-scheduler-day-number{background:var(--tx-accent);color:var(--tx-accent-text)}.tx-scheduler-day-number:hover:not(:disabled),.tx-scheduler-allday-add:hover:not(:disabled){background:var(--tx-selection);color:var(--tx-text)}.tx-scheduler-day-number:disabled{cursor:default}.tx-scheduler-day-number:focus-visible,.tx-scheduler-allday-add:focus-visible{outline:3px solid var(--tx-focus);outline-offset:1px}.tx-scheduler-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 20px;color:var(--tx-muted);font-size:10px;border-top:1px solid var(--tx-border)}.tx-scheduler-form{display:grid;gap:17px}.tx-scheduler-form-dates{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tx-scheduler-form p{margin:0}.tx-scheduler .tx-popup-footer{flex-wrap:wrap}.tx-scheduler-loading{padding:80px 20px;text-align:center;border-top:1px solid var(--tx-border)}@media(max-width:580px){.tx-scheduler-toolbar{padding:14px}.tx-scheduler-period{padding:0 14px 14px;font-size:15px}.tx-scheduler-actions{justify-content:space-between;width:100%}.tx-scheduler-navigation{gap:5px}.tx-scheduler-form-dates{grid-template-columns:1fr}.tx-scheduler .tx-popup-content{padding:18px}.tx-scheduler .tx-popup-footer{padding:14px}}.tx-card,.tx-cardview,.tx-chat{font-family:var(--tx-font);font-size:var(--tx-font-size);color:var(--tx-text);box-sizing:border-box;min-width:0}.tx-card *,.tx-cardview *,.tx-chat *{box-sizing:border-box}.tx-card{display:flex;flex-direction:column;border:1px solid var(--tx-border);border-radius:12px;background:var(--tx-surface);overflow:hidden}.tx-card-elevated{box-shadow:var(--tx-shadow)}.tx-card-filled{background:var(--tx-surface-alt)}.tx-card-media{overflow:hidden;border-bottom:1px solid var(--tx-border)}.tx-card-media img{width:100%;height:180px;object-fit:cover;display:block}.tx-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 20px 0}.tx-card-heading{min-width:0}.tx-card-title{font-size:16px;line-height:1.4;font-weight:650;margin:0;overflow-wrap:anywhere}.tx-card-subtitle{color:var(--tx-muted);font-size:12px;margin:6px 0 0;overflow-wrap:anywhere}.tx-card-actions{display:flex;gap:6px;flex-shrink:0}.tx-card-body{padding:20px;flex:1;overflow-wrap:anywhere}.tx-card-body>:first-child{margin-top:0}.tx-card-body>:last-child{margin-bottom:0}.tx-card-footer{border-top:1px solid var(--tx-border);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px}.tx-card-fields{margin:0;display:grid;gap:11px}.tx-card-fields>div{display:flex;justify-content:space-between;gap:12px}.tx-card-fields dt{font-size:11px;color:var(--tx-muted)}.tx-card-fields dd{margin:0;font-size:12px;text-align:right;overflow-wrap:anywhere;min-width:0}.tx-cardview-toolbar{display:flex;justify-content:flex-end;margin-bottom:18px}.tx-cardview-toolbar .tx-control{width:min(100%,320px);font-size:12px}.tx-cardview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:18px;padding:0;margin:0;list-style:none}.tx-cardview-item{min-width:0;position:relative;border-radius:12px}.tx-cardview-item>.tx-card{height:100%}.tx-cardview-selected{outline:2px solid var(--tx-accent);outline-offset:2px}.tx-cardview-selection{position:absolute;top:12px;right:12px;z-index:1;background:var(--tx-surface);border-radius:6px;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--tx-border)}.tx-cardview-selection input{width:16px;height:16px;margin:0;accent-color:var(--tx-accent);cursor:pointer}.tx-cardview-selectable .tx-card-header{padding-right:48px}.tx-cardview-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;align-items:center;color:var(--tx-muted);font-size:11px;padding:20px 0 0}.tx-cardview-empty{text-align:center;padding:60px 20px;color:var(--tx-muted);border:1px dashed var(--tx-border);border-radius:12px;background:var(--tx-surface)}.tx-chat{display:flex;flex-direction:column;height:560px;min-height:340px;border:1px solid var(--tx-border);border-radius:12px;background:var(--tx-surface);overflow:hidden}.tx-chat-header{display:flex;gap:12px;align-items:center;padding:18px 20px;border-bottom:1px solid var(--tx-border);flex-shrink:0}.tx-chat-header h3{font-size:15px;margin:0;font-weight:650}.tx-chat-header p{font-size:11px;margin:4px 0 0;color:var(--tx-muted)}.tx-chat-symbol{display:grid;place-items:center;background:var(--tx-hover);color:var(--tx-accent);border-radius:10px;width:38px;height:38px;font-size:21px;flex-shrink:0}.tx-chat-local-user{margin-left:auto;font-size:11px;color:var(--tx-muted);text-align:right}.tx-chat-conversation{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.tx-chat-log{overflow:auto;padding:20px;flex:1;min-height:0;background:var(--tx-surface-alt);overscroll-behavior:contain;overflow-anchor:none}.tx-chat-log:focus-visible{outline:2px solid var(--tx-focus);outline-offset:-4px}.tx-chat-day{display:flex;justify-content:center;color:var(--tx-muted);font-size:10px;padding:4px 0 18px}.tx-chat-day span{background:var(--tx-surface);border:1px solid var(--tx-border);padding:4px 12px;border-radius:20px}.tx-chat-message{display:flex;align-items:flex-start;gap:9px;margin-bottom:18px}.tx-chat-own{flex-direction:row-reverse}.tx-chat-avatar{width:30px;height:30px;flex-shrink:0;object-fit:cover;display:grid;place-items:center;border-radius:50%;background:var(--tx-hover);color:var(--tx-accent);font-size:10px;font-weight:700}.tx-chat-message-content{display:flex;flex-direction:column;gap:5px;max-width:min(82%,580px);min-width:0}.tx-chat-own .tx-chat-message-content{align-items:flex-end}.tx-chat-author{color:var(--tx-muted);font-size:10px}.tx-chat-bubble{border:1px solid var(--tx-border);background:var(--tx-surface);border-radius:0 12px 12px;padding:10px 13px;max-width:100%;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.tx-chat-own .tx-chat-bubble{border-color:var(--tx-accent);background:var(--tx-selection);border-radius:12px 0 12px 12px}.tx-chat-bubble p{margin:0;white-space:pre-wrap}.tx-chat-message-error .tx-chat-bubble{border-color:var(--tx-danger)}.tx-chat-message-meta{display:flex;gap:8px;color:var(--tx-muted);font-size:9px;flex-wrap:wrap}.tx-chat-message-error .tx-chat-message-status{color:var(--tx-danger)}.tx-chat-typing{min-height:26px;padding:4px 20px;font-size:10px;color:var(--tx-muted)}.tx-chat-composer{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:end;padding:0 16px 12px}.tx-chat-input{min-height:48px;max-height:140px;resize:vertical;font-size:12px}.tx-chat-composer>.tx-button{font-size:12px}.tx-chat-composer-hint{grid-column:1 / -1;display:flex;justify-content:space-between;gap:12px;color:var(--tx-muted);font-size:9px}.tx-chat-empty{min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--tx-muted);gap:12px;font-size:12px;padding:20px}.tx-chat-empty>span{font-size:36px;color:var(--tx-accent)}.tx-chat-empty p{margin:0}.tx-chat-unread{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:11px;white-space:nowrap;box-shadow:var(--tx-shadow);min-height:32px}.tx-chat-error{padding:0 16px 12px;margin:0}.tx-cardview input:focus-visible{outline:3px solid var(--tx-focus);outline-offset:3px}@media(max-width:580px){.tx-chat-header,.tx-chat-log{padding:16px}.tx-chat-local-user{display:none}.tx-chat-message-content{max-width:86%}.tx-chat-avatar{width:24px;height:24px}.tx-chat-composer{gap:8px;padding:0 12px 12px}.tx-chat-composer>.tx-button{padding:8px}.tx-card-header{padding:16px 16px 0}.tx-card-body{padding:16px}.tx-card-footer{padding:12px 16px}}:root{--tx-font: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--tx-font-size: 14px;--tx-radius: 8px;--tx-space: 8px;--tx-control-height: 40px}:where(.tx-button,.tx-field,.tx-tabs,.tx-toolbar,.tx-menu,.tx-popup,.tx-tooltip-anchor,.tx-toast-host,.tx-load-indicator,.tx-grid){font-family:var(--tx-font);font-size:var(--tx-font-size);color:var(--tx-text);box-sizing:border-box}:where(.tx-grid,.tx-field,.tx-popup) *,:where(.tx-grid,.tx-field,.tx-popup) *:before,:where(.tx-grid,.tx-field,.tx-popup) *:after{box-sizing:border-box}.tx-button,.tx-tab,.tx-sort{font:inherit;cursor:pointer}.tx-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--tx-space);min-height:var(--tx-control-height);padding:8px 15px;border:1px solid var(--tx-border);border-radius:var(--tx-radius);background:var(--tx-surface);color:var(--tx-text);font-weight:600;line-height:1.3}.tx-button:hover:not(:disabled){background:var(--tx-hover)}.tx-button-default{background:var(--tx-accent);border-color:var(--tx-accent);color:var(--tx-accent-text)}.tx-button-default:hover:not(:disabled){background:var(--tx-accent);filter:brightness(.93)}.tx-button-danger{color:var(--tx-danger);border-color:currentColor}.tx-button-success{color:var(--tx-success);border-color:currentColor}:where(.tx-button,.tx-control,.tx-tab,.tx-sort,.tx-tooltip-anchor,.tx-tabpanel,.tx-grid input):focus-visible{outline:3px solid var(--tx-focus);outline-offset:3px}.tx-button:disabled,.tx-control:disabled,.tx-tab:disabled,.tx-sort:disabled{opacity:.55;cursor:not-allowed}.tx-field{display:flex;flex-direction:column;gap:7px;min-width:0}.tx-label{font-size:13px;font-weight:600}.tx-control{font:inherit;color:var(--tx-text);background:var(--tx-surface);border:1px solid var(--tx-border);border-radius:var(--tx-radius);width:100%;min-height:var(--tx-control-height);padding:9px 11px;line-height:1.4}.tx-control::placeholder{color:var(--tx-muted);opacity:1}textarea.tx-control{resize:vertical}.tx-control[readonly]{background:var(--tx-surface-alt)}.tx-invalid .tx-control{border-color:var(--tx-danger)}.tx-error{font-size:12px;color:var(--tx-danger)}.tx-toggle-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:var(--tx-control-height);position:relative}.tx-toggle-input{width:18px;height:18px;min-height:18px;margin:0;padding:0;accent-color:var(--tx-accent)}.tx-disabled .tx-toggle-label{cursor:not-allowed;color:var(--tx-muted)}.tx-switch .tx-toggle-input{position:absolute;opacity:0;width:42px;height:24px}.tx-switch-track{width:42px;height:24px;border-radius:24px;background:var(--tx-muted);display:inline-flex;padding:3px;flex-shrink:0;pointer-events:none}.tx-switch-track:before{content:"";width:18px;height:18px;background:var(--tx-surface);border-radius:50%;transition:transform .15s}.tx-switch input:checked+.tx-switch-track{background:var(--tx-accent)}.tx-switch input:checked+.tx-switch-track:before{transform:translate(18px);background:var(--tx-accent-text)}.tx-switch input:focus-visible+.tx-switch-track{outline:3px solid var(--tx-focus);outline-offset:3px}.tx-switch input:disabled+.tx-switch-track{opacity:.55}.tx-toolbar,.tx-toolbar-start,.tx-toolbar-end,.tx-menu{display:flex;gap:var(--tx-space);align-items:center;flex-wrap:wrap}.tx-toolbar{justify-content:space-between}.tx-menu .tx-button{border-color:transparent;background:transparent;font-weight:500}.tx-tablist{display:flex;gap:8px;border-bottom:1px solid var(--tx-border);overflow-x:auto}.tx-tab{padding:13px 17px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--tx-muted);white-space:nowrap}.tx-tab:hover:not(:disabled){background:var(--tx-hover)}.tx-tab.tx-active{color:var(--tx-accent);border-bottom-color:var(--tx-accent);font-weight:700}.tx-tabpanel{padding:20px 0}.tx-backdrop{position:fixed;inset:0;z-index:1000;background:var(--tx-backdrop);display:flex;align-items:center;justify-content:center;padding:20px}.tx-popup{background:var(--tx-surface);border:1px solid var(--tx-border);box-shadow:var(--tx-shadow);border-radius:16px;max-width:100%;max-height:calc(100dvh - 40px);overflow:auto}.tx-popup-header,.tx-popup-footer{display:flex;align-items:center;gap:12px;padding:18px 24px}.tx-popup-header{justify-content:space-between;border-bottom:1px solid var(--tx-border)}.tx-popup-header h2{margin:0;font-size:19px}.tx-popup-content{padding:24px}.tx-popup-footer{border-top:1px solid var(--tx-border);justify-content:flex-end}.tx-tooltip-anchor{display:inline-flex;position:relative}.tx-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);width:max-content;max-width:min(260px,80vw);padding:9px 12px;border-radius:var(--tx-radius);color:var(--tx-accent-text);background:var(--tx-accent);z-index:1100;font-size:12px}.tx-tooltip[hidden]{display:none}.tx-toast-host{position:fixed;bottom:24px;right:24px;z-index:1200;max-width:calc(100vw - 48px)}.tx-toast{display:flex;align-items:center;gap:20px;padding:12px 14px 12px 20px;background:var(--tx-surface);border:1px solid var(--tx-border);border-left:4px solid var(--tx-accent);border-radius:var(--tx-radius);box-shadow:var(--tx-shadow)}.tx-toast-success .tx-toast{border-left-color:var(--tx-success)}.tx-toast-error .tx-toast{border-left-color:var(--tx-danger)}.tx-load-indicator{display:inline-flex;align-items:center;gap:10px;color:var(--tx-muted)}.tx-spinner{width:18px;height:18px;border:2px solid var(--tx-border);border-top-color:var(--tx-accent);border-radius:50%;animation:tx-spin .8s linear infinite}@keyframes tx-spin{to{transform:rotate(360deg)}}.tx-grid{border:1px solid var(--tx-border);border-radius:12px;overflow:hidden;background:var(--tx-surface)}.tx-grid-scroll{overflow:auto}.tx-table{border-collapse:collapse;width:100%;text-align:left;font-size:var(--tx-font-size)}.tx-table th{background:var(--tx-surface-alt);color:var(--tx-muted);font-size:12px;font-weight:600}.tx-table th,.tx-table td{border-bottom:1px solid var(--tx-border);padding:14px 18px}.tx-sort{padding:0;border:0;width:100%;background:transparent;color:inherit;font:inherit;text-align:inherit;display:inline-flex;justify-content:space-between;gap:18px}.tx-sort-icon{color:var(--tx-muted)}.tx-filter-row td{padding:8px 12px;background:var(--tx-surface-alt)}.tx-filter-row .tx-control{min-height:32px;padding:6px 8px;font-size:12px;min-width:100px}.tx-table tbody tr:hover{background:var(--tx-hover)}.tx-table tbody tr.tx-row-selected{background:var(--tx-selection)}.tx-table .tx-selection-cell{width:48px;padding-right:8px}.tx-grid input[type=checkbox]{width:16px;height:16px;accent-color:var(--tx-accent);cursor:pointer}.tx-table .tx-grid-empty{text-align:center;padding:48px 20px;color:var(--tx-muted)}.tx-grid-footer,.tx-pager{display:flex;align-items:center;gap:12px}.tx-grid-footer{justify-content:space-between;padding:12px 18px;color:var(--tx-muted);font-size:12px;flex-wrap:wrap}.tx-pager .tx-button{min-height:30px;padding:4px 10px}.tx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.tx-spinner{animation:none}.tx-switch-track:before{transition:none}}*{box-sizing:border-box}body{margin:0;background:var(--tx-bg);color:var(--tx-text);font:14px system-ui}main{padding:24px}header{display:flex;justify-content:space-between;gap:16px;align-items:center}button{cursor:pointer;padding:8px 12px;border:1px solid var(--tx-border);border-radius:6px;background:var(--tx-surface);color:inherit}.hint{color:var(--tx-muted);margin:16px 0 28px}.stage{min-height:260px;padding:12px;overflow:auto}.stage>.tx-data-grid{min-width:500px}
