.tm-ui{margin:0;font:14px/1.5 var(--font);color:var(--text);background:var(--bg)}.tm-ui *{box-sizing:border-box}
.tm-ui .tm-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.tm-ui :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}
.tm-ui .tm-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 16px;border:1px solid var(--accent-text);border-radius:8px;background:var(--accent-btn);color:var(--on-accent);font:600 14px/20px var(--font);text-decoration:none;cursor:pointer}
.tm-ui .tm-button:hover{background:var(--accent-btn-hover)}.tm-ui .tm-button.secondary{background:var(--surface);color:var(--accent-text);border-color:var(--border)}
.tm-ui .tm-button:disabled{opacity:.55;cursor:not-allowed}.tm-ui .tm-button[aria-busy=true]{cursor:progress}
.tm-ui .tm-button.danger{background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-text)}
.tm-ui .tm-card{padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.tm-ui .tm-field{display:grid;gap:6px;color:var(--text)}.tm-ui .tm-field input,.tm-ui select,.tm-ui textarea{min-height:40px;max-width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface);font:14px/20px var(--font)}
.tm-ui input[aria-invalid=true]{border-color:var(--danger-text)}.tm-ui .tm-hint{font-size:13px;color:var(--muted)}.tm-ui .tm-error{font-size:13px;color:var(--danger-text)}
.tm-ui .tm-badge{display:inline-flex;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:600;background:var(--accent-soft);color:var(--accent-text)}
.tm-ui .tm-badge.success{background:var(--success-bg);color:var(--success-text)}.tm-ui .tm-badge.warning{background:var(--warning-bg);color:var(--warning-text)}.tm-ui .tm-badge.danger{background:var(--danger-bg);color:var(--danger-text)}
.tm-ui .tm-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--border);border-radius:12px}
.tm-ui table{width:100%;border-collapse:collapse;background:var(--surface)}.tm-ui :is(th,td){padding:12px 16px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}
.tm-ui th{font-size:12px;font-weight:600;color:var(--muted);background:var(--hover)}.tm-ui tr:last-child td{border-bottom:0}.tm-ui .tm-number{font-variant-numeric:tabular-nums}
.tm-ui .tm-tabs{display:flex;gap:8px;overflow:auto}.tm-ui .tm-tabs button{min-height:40px;padding:8px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:500 14px var(--font);cursor:pointer}.tm-ui .tm-tabs button[aria-selected=true]{border-color:var(--accent-text);color:var(--accent-text)}
.tm-ui dialog{width:420px;max-width:calc(100vw - 32px);padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text)}
.tm-ui dialog::backdrop{background:var(--overlay)}.tm-ui .tm-dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}
.tm-ui h1{font-size:28px;line-height:36px;margin:0 0 8px}.tm-ui h2{font-size:22px;line-height:30px;margin:0 0 12px}.tm-ui h3{font-size:18px;line-height:26px}
.tm-ui .tm-toast{position:fixed;bottom:24px;left:24px;padding:14px 18px;max-width:calc(100vw - 48px);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;z-index:1200}
@media(max-width:767px){.tm-ui :is(.tm-button,.tm-field input,select,.tm-tabs button){min-height:44px}.tm-ui h1{font-size:24px;line-height:32px}}

.tm-ui :is(.tm-field input,select,textarea){border-color:var(--control-border)}.tm-ui .tm-button.secondary{border-color:var(--control-border)}

/* Дополнения 2.3: сообщения, пустое состояние, загрузка, подсказка, меню аккаунта, пропуск навигации. */
.tm-ui .tm-skip{position:absolute;left:8px;top:-100px;z-index:2000;padding:10px 16px;border-radius:8px;background:var(--surface);color:var(--accent-text);border:2px solid var(--accent-text);font:600 14px/20px var(--font);text-decoration:none}.tm-ui .tm-skip:focus{top:8px}
.tm-ui .tm-alert{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border:1px solid var(--border);border-left-width:4px;border-radius:8px;background:var(--surface);color:var(--text)}
.tm-ui .tm-alert strong{display:block;font-weight:600}.tm-ui .tm-alert.success{border-color:var(--success-text);background:var(--success-bg)}.tm-ui .tm-alert.warning{border-color:var(--warning-text);background:var(--warning-bg)}.tm-ui .tm-alert.danger{border-color:var(--danger-text);background:var(--danger-bg)}
.tm-ui .tm-alert.success strong{color:var(--success-text)}.tm-ui .tm-alert.warning strong{color:var(--warning-text)}.tm-ui .tm-alert.danger strong{color:var(--danger-text)}
.tm-ui .tm-empty{display:grid;justify-items:center;gap:8px;padding:32px 16px;text-align:center;border:1px dashed var(--control-border);border-radius:12px;color:var(--muted)}.tm-ui .tm-empty strong{color:var(--text);font-size:16px}
.tm-ui .tm-spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:tm-spin .8s linear infinite;flex:none}
@keyframes tm-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.tm-ui .tm-spinner{animation:none;border-right-color:currentColor;opacity:.7}}
.tm-ui .tm-button[aria-busy=true]{pointer-events:none}
.tm-ui .tm-tooltip-host{position:relative;display:inline-flex}.tm-ui .tm-tooltip{display:none;position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);width:max-content;max-width:min(260px,80vw);padding:8px 12px;border-radius:8px;background:var(--text);color:var(--surface);font:13px/18px var(--font);z-index:30;box-shadow:0 4px 16px rgba(2,6,23,.25)}
.tm-ui .tm-tooltip-host:not([data-tip-dismissed]):is(:hover,:focus-within) .tm-tooltip{display:block}
.tm-ui .tm-account{position:relative}.tm-ui .tm-account-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px rgba(2,6,23,.18);z-index:40;display:grid;gap:2px}.tm-ui .tm-account-menu[hidden]{display:none}
.tm-ui .tm-account-menu :is(a,button){display:flex;align-items:center;min-height:40px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);font:500 14px/20px var(--font);text-align:left;text-decoration:none;cursor:pointer;width:100%}.tm-ui .tm-account-menu :is(a,button):hover{background:var(--hover)}.tm-ui .tm-account-menu .tm-account-who{padding:8px 12px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--border);margin-bottom:4px}
.tm-ui .tm-icon-button{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--control-border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer}.tm-ui .tm-icon-button:hover{background:var(--hover)}
.tm-ui .tm-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--danger-text);color:var(--surface);font:600 12px/20px var(--font);text-align:center}
.tm-ui .tm-tabs{border-bottom:1px solid var(--border)}.tm-ui .tm-tabpanel{padding-top:16px}.tm-ui .tm-tabpanel[hidden]{display:none}
.tm-ui textarea{width:100%;min-height:96px;resize:vertical}.tm-ui .tm-field>:is(input,select,textarea){width:100%}
.tm-ui .tm-field input:disabled,.tm-ui .tm-field textarea:disabled{background:var(--hover);color:var(--muted)}
.tm-ui .tm-button.danger-solid{background:var(--danger-text);color:var(--surface);border-color:var(--danger-text)}
@media(max-width:767px){.tm-ui :is(.tm-icon-button){width:44px;height:44px}.tm-ui .tm-account-menu :is(a,button){min-height:44px}}
@media(forced-colors:active){.tm-ui .tm-button,.tm-ui .tm-badge,.tm-ui .tm-alert{border:1px solid ButtonText}}
.tm-ui ::placeholder{color:var(--muted);opacity:1}
.tm-ui [tabindex]:not([tabindex="-1"]):focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}
.tm-ui main[tabindex="-1"]:focus{outline:none}
