/* Собрано из inline <style> футерных компонентов скриптом
   storage/app/extract-footer-css.php (волна 2 веса страницы, 16.09.2026).
   Грузится асинхронно после app.css; всё здесь — ниже сгиба или скрыто
   до действия пользователя, поэтому короткий FOUC на первом визите
   невидим. Правки — в ЭТОМ файле, компоненты больше не несут CSS. */

/* ── tool-rating ─────────────────────────────────────────────── */
.rw{max-width:var(--tool-page-width,900px);margin:32px auto 0}
.rw-card{background:rgba(255,255,255,.04);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:24px;position:relative;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.05)}
.rw-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-gradient);opacity:.8}
.rw-card::after{content:'';position:absolute;top:3px;left:0;right:0;height:40px;background:linear-gradient(180deg,rgba(56,189,248,.03),transparent);pointer-events:none}
[data-theme=light] .rw-card{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.07);box-shadow:0 4px 24px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.8)}
[data-theme=light] .rw-card::after{background:linear-gradient(180deg,rgba(37,99,235,.02),transparent)}

/* Header: title + avg inline */
.rw-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.rw-title{color:var(--text-primary);font-size:1.05rem;font-weight:600;margin:0}
.rw-avg{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.9rem}
.rw-avg-num{font-weight:700;font-size:1.1rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.rw-avg .rs{--rs-size:14px;--rs-gap:1px;--rs-fill:var(--warning);--rs-empty:var(--border)}

/* Interactive stars row */
.rw-rate{display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 0}
.rw-star{background:none;border:none;cursor:pointer;padding:2px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:relative}
.rw-star:hover{transform:scale(1.25)}
.rw-star svg{width:32px;height:32px;color:var(--border);transition:color .2s,filter .2s}
.rw-star.active svg,.rw-star.hover svg{color:var(--warning);filter:drop-shadow(0 0 6px rgba(251,191,36,.4))}
.rw-star .rw-tip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--bg-secondary);color:var(--text-primary);font-size:.75rem;padding:2px 6px;border-radius:4px;border:1px solid var(--border);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s}
.rw-star:hover .rw-tip{opacity:1}

/* Star colors */
.sf{color:var(--warning)}.se{color:var(--border)}

/* Status messages */
.rw-msg{text-align:center;padding:6px 0;font-size:.88rem;display:none}
.rw-msg-ok{color:var(--success)}
.rw-msg-err{color:var(--danger)}
.rw-msg svg{width:16px;height:16px;vertical-align:middle;margin-inline-end:4px}

/* Change rating link */
.rw-change{text-align:center;padding:2px 0;display:none}
.rw-change a{color:var(--text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}
.rw-change a:hover{color:var(--accent)}

/* Toggle comment link */
.rw-toggle{text-align:center;padding:8px 0;margin-top:8px}
.rw-toggle a{color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:color .2s;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:4px}
.rw-toggle a:hover{color:var(--accent)}

/* Comment form */
.rw-comment{display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.rw-comment-hint{color:var(--text-muted);font-size:.85rem;margin-bottom:12px}
.rw-fields{display:flex;gap:10px;margin-bottom:10px;align-items:flex-start;flex-wrap:wrap}
.rw-fields input{flex:0 0 160px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 12px;color:var(--text-primary);font-family:inherit;font-size:.9rem;transition:all .2s}
.rw-fields textarea{flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 12px;color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:vertical;min-height:60px;transition:all .2s}
.rw-fields input:focus,.rw-fields textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(56,189,248,.1);background:rgba(255,255,255,.06)}
[data-theme=light] .rw-fields input,[data-theme=light] .rw-fields textarea{background:rgba(0,0,0,.02);border-color:rgba(0,0,0,.1)}
[data-theme=light] .rw-fields input:focus,[data-theme=light] .rw-fields textarea:focus{box-shadow:0 0 0 3px rgba(37,99,235,.08);background:rgba(255,255,255,.8)}
.rw-comment-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}
.rw-comment-actions .rw-emoji-btn{margin-right:auto}
.rw-reply-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rw-reply-btns .rw-emoji-btn{margin-right:auto}
.rw-comment-btn{background:var(--accent-gradient);color:var(--on-accent);border:none;border-radius:8px;padding:8px 20px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px rgba(56,189,248,.2)}
.rw-comment-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(56,189,248,.35)}
.rw-comment-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* Comments list */
.rw-cmts{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.rw-cmts-title{color:var(--text-secondary);font-size:.9rem;font-weight:600;margin:0 0 12px}

/* Comment card — glassmorphism */
.rw-cmt{padding:14px 16px;margin-bottom:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);transition:all .25s cubic-bezier(.4,0,.2,1)}
.rw-cmt:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.05);box-shadow:0 2px 12px rgba(0,0,0,.06)}
.rw-cmt:last-child{margin-bottom:0}
[data-theme=light] .rw-cmt{background:rgba(0,0,0,.02);border-color:rgba(0,0,0,.06)}
[data-theme=light] .rw-cmt:hover{background:rgba(0,0,0,.03);border-color:rgba(0,0,0,.1);box-shadow:0 2px 12px rgba(0,0,0,.04)}
.rw-cmt-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.rw-cmt-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;font-size:18px;line-height:1;flex-shrink:0;user-select:none;transition:transform .2s;background:var(--bg-tertiary,rgba(148,163,184,.14))}
.rw-cmt-avatar img,.rw-cmt-avatar video{width:100%;height:100%;object-fit:cover;display:block}
.rw-cmt:hover .rw-cmt-avatar{transform:scale(1.08)}
.rw-cmt-info{flex:1;min-width:0}
.rw-cmt-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rw-cmt-author{font-weight:700;color:var(--text-primary);font-size:.9rem}
.rw-cmt-stars{display:flex;gap:1px;align-items:center}
.rw-cmt-stars svg{width:12px;height:12px}
.rw-cmt-date{color:var(--text-muted);font-size:.75rem}
.rw-cmt-name-row .rw-cmt-date::before{content:"·";margin:0 5px;opacity:.6}
.rw-cmt-text{color:var(--text-secondary);font-size:.88rem;line-height:1.5;margin:0;padding:4px 0;white-space:pre-line}
.rw-cmt--av>.rw-cmt-text{padding-inline-start:46px}
.rw-cmt-text a{color:var(--accent);text-decoration:underline;word-break:break-word}
.rw-cmt-text a:hover{text-decoration:none}
/* @mention (Instagram-style): the "@Имя" reply prefix renders as the name
   itself — accent link for registered authors, bold plain for anonymous. */
.rw-mention{font-weight:700;color:var(--text-primary)}
.rw-cmt-text a.rw-mention{color:var(--accent);text-decoration:none;font-weight:700}
.rw-cmt-text a.rw-mention:hover{text-decoration:underline}
div.rw-cmt-text{white-space:normal}
div.rw-cmt-text p{margin:0 0 8px}
div.rw-cmt-text p:last-child{margin-bottom:0}
div.rw-cmt-text ul,div.rw-cmt-text ol{margin:6px 0;padding-inline-start:22px}
div.rw-cmt-text li{margin:2px 0}
div.rw-cmt-text strong{color:var(--text-primary);font-weight:700}
.rw-cmt-badge{display:inline-flex;align-items:center;gap:3px;background:rgba(251,191,36,.12);color:var(--warning);font-size:.75rem;font-weight:600;padding:1px 7px;border-radius:10px;border:1px solid rgba(251,191,36,.2)}
/* Tier/role badges (admin/pro/verified/unverified/Премиум) now come from the
   single source (App\Support\UserBadge / the shared user-badge component), styled
   in critical.css. The old .rw-admin-badge/.rw-verified-badge/.rw-pro-badge lived
   here and drifted from it — removed 2026-07-16. .rw-cmt-badge above is the
   pending chip (not a tier badge), so it stays. */
.rw-posting-as{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted);margin-bottom:8px;padding:6px 10px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap}
.rw-posting-as-sm{font-size:.75rem;padding:5px 8px;margin-bottom:6px}
.rw-posting-label{text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.rw-posting-name{color:var(--text-primary);font-weight:700}
[data-theme="light"] .rw-posting-as{background:rgba(0,0,0,.02)}
.rw-broken-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;font-size:.78rem;font-family:inherit;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s;min-height:32px}
.rw-broken-btn:hover{color:var(--text-secondary);border-color:var(--border-hover)}
.rw-broken-btn svg{width:13px;height:13px;flex-shrink:0;opacity:.7}
.rw-signin-hint{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted);text-decoration:none;padding:4px 10px;border:1px dashed rgba(245,158,11,.4);border-radius:6px;transition:all .15s;margin-inline-start:auto}
.rw-signin-hint:hover{color:#f59e0b;border-color:#f59e0b;border-style:solid;background:rgba(245,158,11,.06)}
.rw-cmt-admin{border-inline-start:2px solid var(--accent);padding-inline-start:8px;background:linear-gradient(90deg,rgba(56,189,248,.04),transparent 60%);border-radius:4px}
/* Admin markdown editor — shared with admin panel */
.md-toolbar{display:flex;gap:4px;margin:0;flex-wrap:wrap;align-self:flex-start}
.md-btn{padding:4px 10px;font-size:.78rem;border:1px solid var(--border);background:var(--glass);color:var(--text-secondary);border-radius:4px;cursor:pointer;min-width:30px;line-height:1.2;transition:all .15s}
.md-btn:hover{border-color:var(--accent);color:var(--accent)}
.md-btn b,.md-btn i{font-family:inherit;font-style:normal}
.md-btn b{font-weight:700}
.md-btn i{font-style:italic}
.md-preview{width:100%;margin:0;padding:10px 12px;border:1px dashed var(--border);border-radius:6px;background:rgba(56,189,248,.04);font-size:.85rem;color:var(--text-secondary);line-height:1.5;box-sizing:border-box}
.md-preview p{margin:0 0 6px}
.md-preview p:last-child{margin-bottom:0}
.md-preview a{color:var(--accent);text-decoration:underline}
.md-preview strong{color:var(--text-primary);font-weight:700}
.md-preview ul,.md-preview ol{margin:4px 0;padding-inline-start:22px}
.rw-cmt-level{display:inline-flex;align-items:center;gap:3px;background:var(--accent-gradient);color:var(--on-accent);font-size:12px;font-weight:600;padding:2px 7px;border-radius:8px;vertical-align:middle}
.rw-char-count{font-size:12px;color:var(--text-muted);text-align:end;min-height:16px;margin-top:-6px;flex-basis:100%}
.rw-cmt-new{animation:rwSlideIn .4s ease}
@keyframes rwSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
/* Anchor focus from "you have a new reply" email — short, gentle pulse so the
   user sees WHERE the reply is without an aggressive flash. Auto-fades after
   3.5s (timer is in the JS handler). */
.rw-cmt-focus{box-shadow:0 0 0 2px var(--accent,#6366f1),0 4px 16px rgba(99,102,241,.18);animation:rwFocusPulse 1.4s ease-out;border-color:var(--accent,#6366f1) !important}
@keyframes rwFocusPulse{0%{box-shadow:0 0 0 0 rgba(99,102,241,.55)}60%{box-shadow:0 0 0 10px rgba(99,102,241,0)}100%{box-shadow:0 0 0 2px var(--accent,#6366f1),0 4px 16px rgba(99,102,241,.18)}}

/* Comment actions (reply, edit) */
.rw-cmt-actions{display:flex;gap:12px;margin-top:4px;padding-left:42px}
.rw-cmt-reply-btn,.rw-cmt-edit-btn,.rw-cmt-save-btn,.rw-cmt-cancel-btn{background:none;border:none;font-size:.78rem;cursor:pointer;padding:0;font-weight:600;transition:color .15s}
.rw-cmt-reply-btn{color:var(--text-muted)}.rw-cmt-reply-btn:hover{color:var(--accent)}
.rw-cmt-edit-btn{color:var(--text-muted)}.rw-cmt-edit-btn:hover{color:var(--accent)}
.rw-cmt-save-btn{color:var(--accent)}.rw-cmt-cancel-btn{color:var(--text-muted)}

/* Reply form (inline) — vertical stack, full width */
.rw-reply-form{display:none;margin-top:10px;margin-left:42px;padding:12px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:10px}
.rw-reply-form.show{display:flex;flex-direction:column;gap:8px}
.rw-reply-form input{width:100%;max-width:260px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:rgba(255,255,255,.04);color:var(--text-primary);font-size:.82rem;font-family:inherit;box-sizing:border-box}
.rw-reply-form textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:6px;background:rgba(255,255,255,.04);color:var(--text-primary);font-size:.88rem;line-height:1.5;font-family:inherit;resize:vertical;min-height:74px;max-height:300px;overflow-y:auto;box-sizing:border-box}
.rw-reply-form input:focus,.rw-reply-form textarea:focus{outline:none;border-color:var(--accent)}
.rw-reply-form .rw-posting-as{margin-bottom:0;flex:0 0 auto}
.rw-reply-btns{display:flex;flex-direction:row;gap:6px;align-items:center;justify-content:flex-end;margin-top:2px}
.rw-reply-form button[data-send-reply]{padding:7px 16px;background:var(--accent-gradient);color:var(--on-accent);border:none;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;min-height:34px;position:relative}
.rw-reply-form button[data-send-reply].is-loading{color:transparent;pointer-events:none;opacity:.85}
.rw-reply-form button[data-send-reply].is-loading::after{content:'';position:absolute;inset:0;margin:auto;width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:rw-spin .7s linear infinite}
@keyframes rw-spin{to{transform:rotate(360deg)}}
.rw-reply-cancel{color:var(--text-muted);background:none;border:none;cursor:pointer;font-size:13px;padding:7px 10px;font-family:inherit;transition:color .15s;min-height:34px;border-radius:6px}
.rw-reply-cancel:hover{color:var(--text-secondary);background:rgba(255,255,255,.04)}
[data-theme="light"] .rw-reply-form{background:rgba(0,0,0,.02)}
[data-theme="light"] .rw-reply-cancel:hover{background:rgba(0,0,0,.04)}

/* Replies thread */
.rw-replies{margin-top:8px;padding-left:42px;border-left:2px solid var(--border);margin-left:16px}
.rw-replies .rw-cmt{background:transparent;border:none;padding:8px 12px;margin-bottom:4px}
.rw-replies .rw-cmt-avatar{width:24px;height:24px;font-size:12px}
.rw-replies .rw-cmt-text{padding-left:34px;font-size:.84rem}
.rw-replies .rw-cmt-actions{padding-left:34px}

/* View replies toggle */
.rw-view-replies{background:none;border:none;color:var(--text-muted);font-size:.78rem;font-weight:600;cursor:pointer;padding:4px 0 4px 42px;transition:color .15s;display:flex;align-items:center;gap:4px}
.rw-view-replies:hover{color:var(--accent)}
.rw-view-replies svg{width:14px;height:14px}
.rw-load-more-btn{display:block;width:100%;padding:10px;margin-top:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--glass);color:var(--text-secondary);font-size:.88rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}
.rw-load-more-btn:hover{border-color:var(--accent);color:var(--accent)}
.rw-load-more-btn:disabled{opacity:.6;cursor:default}

/* Edit fields */
.rw-cmt-edit-area{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--text-primary);font-family:inherit;font-size:.88rem;resize:vertical;min-height:50px;margin-top:4px}
.rw-cmt-edit-area:focus{outline:none;border-color:var(--accent)}
.rw-cmt-edit-name{width:auto;max-width:200px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:6px;padding:4px 8px;color:var(--text-primary);font-family:inherit;font-size:.85rem;margin-inline-end:6px}
.rw-cmt-edit-name:focus{outline:none;border-color:var(--accent)}

@@media(max-width:640px){
    .rw{margin-top:24px}
    .rw-card{padding:16px}
    /* Приглашение делит строку с «Отправить» и на телефоне сжимается до
       168px — текст рассыпается на четыре строки поверх кнопки (замер на
       390px). Отдаём ему целую строку: ряд переносится, плашка читается. */
    .rw-comment-actions{flex-wrap:wrap}
    .rw-comment-actions .rw-signin-hint{flex-basis:100%;justify-content:center;margin-inline-start:0}
    .rw-head{flex-direction:column;align-items:flex-start;gap:4px}
    .rw-star svg{width:28px;height:28px}
    .rw-fields{flex-direction:column}
    .rw-fields input{flex:auto}
    .rw-cmt-date{margin-inline-start:0}
    .rw-cmt-text{padding-left:0}
    .rw-cmt-actions{padding-left:0}
    .rw-reply-form{margin-left:0;padding:10px}
    .rw-reply-form input{max-width:100%}
    .rw-replies{padding-left:12px;margin-left:8px}
    .rw-view-replies{padding-left:0}
}

/* 3-dot (kebab) menu */
.rw-menu{position:relative;margin-inline-start:auto;flex-shrink:0;align-self:flex-start}
.rw-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:8px;transition:all .15s;padding:0}
.rw-menu-btn:hover{color:var(--text-primary);background:rgba(255,255,255,.06)}
.rw-menu-btn svg{width:18px;height:18px}
[data-theme=light] .rw-menu-btn:hover{background:rgba(0,0,0,.05)}
/* shared portal popup (appended to body so the card's overflow:hidden can't clip it) */
.rw-menu-pop{position:fixed;z-index:1000;min-width:172px;background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.35);padding:6px;display:flex;flex-direction:column;gap:2px}
.rw-menu-pop[hidden]{display:none}
.rw-menu-item{display:flex;align-items:center;gap:8px;width:100%;text-align:start;background:none;border:none;color:var(--text-secondary);font-family:inherit;font-size:.86rem;padding:9px 10px;border-radius:6px;cursor:pointer;transition:background .15s}
.rw-menu-item:hover{background:rgba(255,255,255,.06);color:var(--text-primary)}
[data-theme=light] .rw-menu-item:hover{background:rgba(0,0,0,.05)}
.rw-menu-item svg{width:15px;height:15px;flex-shrink:0}
.rw-menu-del{color:var(--danger,#ef4444)}
.rw-menu-del:hover{background:rgba(239,68,68,.1);color:var(--danger,#ef4444)}
[data-theme=light] .rw-menu-pop{background:#fff}
/* report dialog */
.rw-report-ov{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1001;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px}
.rw-report-ov[hidden]{display:none}
.rw-report-box{width:100%;max-width:380px;background:var(--bg-secondary,#1a1a2e);border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:0 16px 48px rgba(0,0,0,.4)}
[data-theme=light] .rw-report-box{background:#fff}
.rw-report-box h4{margin:0 0 14px;font-size:1rem;color:var(--text-primary)}
.rw-report-reasons{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.rw-report-reasons label{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.88rem;color:var(--text-secondary);transition:background .15s}
.rw-report-reasons label:hover{background:rgba(255,255,255,.04)}
[data-theme=light] .rw-report-reasons label:hover{background:rgba(0,0,0,.04)}
.rw-report-reasons input{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0;margin:0}
.rw-report-note{width:100%;box-sizing:border-box;min-height:64px;max-height:160px;resize:vertical;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--text-primary);font-family:inherit;font-size:.88rem;margin-bottom:14px}
.rw-report-note:focus{outline:none;border-color:var(--accent)}
.rw-report-actions{display:flex;justify-content:flex-end;gap:10px}
.rw-report-cancel{background:none;border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;padding:8px 16px;font-size:.85rem;cursor:pointer;font-family:inherit}
.rw-report-cancel:hover{border-color:var(--border-hover);color:var(--text-primary)}
.rw-report-send{background:var(--accent-gradient);color:var(--on-accent);border:none;border-radius:8px;padding:8px 18px;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit}
.rw-report-send:disabled{opacity:.5;cursor:not-allowed}

/* Like button */
.rw-like-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:13px;padding:8px 12px;min-height:44px;border-radius:6px;transition:all .2s;font-family:inherit}
.rw-like-btn:hover{color:var(--danger,#ef4444);background:rgba(239,68,68,.08)}
.rw-like-btn.liked{color:var(--danger,#ef4444)}
.rw-like-btn.liked svg{fill:currentColor}
.rw-like-btn svg{width:16px;height:16px;transition:transform .2s}
.rw-like-btn:active svg{transform:scale(1.3)}

/* ── feedback-widget ─────────────────────────────────────────────── */
/* The cookie-consent banner is fixed to the bottom at --z-consent (9998) and by
   law has to stay on top of everything — so a dialog cannot outrank it, it can
   only dock ABOVE it. The banner publishes its own height (layouts/app.blade.php
   → publishInset), and every bottom-anchored surface subtracts it.
   Without this the sticky action row below pinned «Send» and «Cancel» straight
   into the banner's band: on 411×803 and 360×640, for any visitor who had not
   yet answered the banner, a real click on «Send» was swallowed by #ccBanner —
   i.e. the site's only channel for telling us anything was unusable on a phone.
   Guard: tests/playwright/consent-banner-covers-the-page.mjs. */
.feedback-modal {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.85); z-index: 2000; justify-content: center;
    align-items: center; padding: 16px; box-sizing: border-box;
    padding-bottom: calc(16px + var(--cc-bottom-inset, 0px));
}
.feedback-modal.active { display: flex; }
.feedback-modal-content {
    /* The sticky action bar has to span this padding and sit flush with the
       bottom edge, and the padding shrinks to 24px under the 640px media query
       below — so it is a variable, not a number repeated in three places.
       Measured at 400px wide with the number hardcoded at 32: the bar hung 7px
       past the modal on each side. */
    --fb-pad: 32px;
    background: var(--bg-secondary, #1a1a2e); border-radius: 16px;
    /* No bottom padding: it belongs to whichever panel is showing, so the action
       row reaches the bottom edge of the box. */
    padding: var(--fb-pad) var(--fb-pad) 0; position: relative;
    max-width: 480px; width: 100%;
    /* …minus the consent banner, for the reason spelled out on .feedback-modal:
       the padding alone only moves the centre, a centred box taller than the
       padding-box still spills back over the banner. */
    max-height: calc(100vh - 32px - var(--cc-bottom-inset, 0px));
    /* Прокручивается не сам диалог, а тело формы (.feedback-form-body) — так
       ряд кнопок остаётся видимым обычной колонкой флекса, без position:sticky. */
    display: flex; flex-direction: column; overflow: hidden;
    border: 1px solid var(--border, rgba(255,255,255,0.1));
    box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
/* Цепочка «высота диалога → тело формы»: без min-height:0 флекс-элемент не даёт
   себя сжать ниже содержимого, и прокрутка не появляется вовсе. */
#global-feedback-form-container,
#global-feedback-form { display: flex; flex-direction: column; min-height: 0; }
#global-feedback-form-container[hidden],
#global-feedback-success[hidden] { display: none; }
.feedback-form-body,
#global-feedback-success { overflow-y: auto; min-height: 0; }
.feedback-modal h3 { margin: 0 0 8px 0; color: var(--text-primary, #fff); font-size: 20px; padding-right: 32px; }
.feedback-close-x {
    position: absolute; top: 16px; right: 16px; width: 32px; height: 32px;
    background: rgba(255,255,255,0.08); border: none; border-radius: 8px;
    color: var(--text-muted); cursor: pointer; display: flex;
    align-items: center; justify-content: center; transition: all 0.2s;
}
.feedback-close-x:hover { background: rgba(255,255,255,0.15); color: var(--text-primary); }
[data-theme=light] .feedback-close-x { background: rgba(0,0,0,0.06); }
[data-theme=light] .feedback-close-x:hover { background: rgba(0,0,0,0.12); }
.feedback-modal p { color: var(--text-secondary); margin: 0 0 20px 0; font-size: 14px; }
.feedback-form-group { margin-bottom: 16px; }
.feedback-form-group label { display: block; color: var(--text-secondary); font-size: 13px; margin-bottom: 6px; }
.feedback-form-group input,
.feedback-form-group textarea,
.feedback-form-group select {
    width: 100%; background: var(--glass, rgba(255,255,255,0.05)); border: 1px solid var(--border, rgba(255,255,255,0.15));
    border-radius: 8px; padding: 12px; color: var(--text-primary, #fff); font-size: 14px; font-family: inherit; box-sizing: border-box;
}
.feedback-form-group textarea { min-height: 120px; resize: vertical; }
.feedback-form-group input:focus,
.feedback-form-group textarea:focus,
.feedback-form-group select:focus { outline: none; border-color: var(--accent, #e74c3c); background: rgba(255,255,255,0.08); }
.feedback-form-group select option { background: var(--bg-secondary, #1a1a2e); color: var(--text-primary, #fff); }
.feedback-hint {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 6px; font-size: 13px; color: var(--text-muted);
}
.feedback-hint .feedback-counter { font-variant-numeric: tabular-nums; }
.feedback-hint.feedback-hint--short .feedback-counter { color: var(--danger); }
.feedback-hint.feedback-hint--ok .feedback-counter { color: var(--success); }
.feedback-error-banner {
    display: none; background: rgba(231,76,60,0.15); border: 1px solid rgba(231,76,60,0.3);
    border-radius: 8px; padding: 10px 14px; margin-bottom: 16px; font-size: 13px; color: var(--danger);
}
.feedback-error-banner.active { display: block; }
.feedback-form-group.has-error input,
.feedback-form-group.has-error textarea,
.feedback-form-group.has-error select { border-color: var(--danger); }
/* «Отправить» обязана быть видна без прокрутки: измерено 2026-09-06 — контент
   на 741px, и кнопка стояла ниже сгиба (top=687) на любом экране ниже ~740px,
   включая 380px-планшет из отчёта и телефоны в альбомной ориентации.
   Держит это НЕ position:sticky, а обычная колонка флекса: прокручивается
   .feedback-form-body, а этот ряд — просто последняя строка колонки, поэтому
   он не «отрывается» и не накладывается на содержимое. Отрицательные боковые
   поля дают подложке перекрыть padding контейнера — отсюда --fb-pad, а не
   литерал, который вылезал за модалку на 7px с каждой стороны, когда медиазапрос
   640px сужал padding. */
.feedback-actions {
    display: flex; gap: 12px; justify-content: flex-end; margin-top: 24px;
    flex: 0 0 auto;
    background: var(--bg-secondary, #1a1a2e);
    margin-left: calc(-1 * var(--fb-pad)); margin-right: calc(-1 * var(--fb-pad));
    padding: 12px var(--fb-pad) var(--fb-pad);
    border-top: 1px solid var(--border, rgba(255,255,255,0.1));
}
.feedback-cancel {
    background: transparent; border: 1px solid var(--border);
    color: var(--text-secondary); padding: 10px 20px; border-radius: 8px; cursor: pointer; font-size: 14px; font-family: inherit;
}
.feedback-cancel:hover { background: var(--glass-hover); color: var(--text-primary); }
.feedback-submit {
    background: var(--accent, #e74c3c); border: none; color: var(--on-accent);
    padding: 10px 24px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 500;
}
.feedback-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.feedback-email-fallback {
    margin-top: 12px; padding: 12px 14px; border-radius: 8px;
    background: var(--glass, rgba(255,255,255,0.04));
    border: 1px solid var(--border, rgba(255,255,255,0.10));
    color: var(--text-primary, #fff); font-size: 13px; line-height: 1.5;
}
.feedback-email-fallback > div { color: var(--text-secondary, #aaa); margin-bottom: 6px; }
.feedback-email-link {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px;
    border-radius: 6px; background: var(--accent, #e74c3c); color: var(--on-accent);
    text-decoration: none; font-weight: 500; font-size: 13px;
}
.feedback-email-link:hover { opacity: 0.9; }
.feedback-success { text-align: center; padding: 20px 0 var(--fb-pad); }
.feedback-success svg { width: 64px; height: 64px; color: var(--success); margin-bottom: 16px; }
.feedback-success h4 { color: var(--text-primary, #fff); margin: 0 0 8px 0; }
.feedback-success p { margin: 0; color: var(--text-secondary); }
@@media (max-width: 640px) {
    .feedback-modal-content { --fb-pad: 24px; margin: 16px; }
    .feedback-modal h3 { font-size: 18px; }
    .feedback-form-group textarea { min-height: 100px; }
    .feedback-actions { flex-direction: column-reverse; }
    .feedback-actions button { width: 100%; }
}

/* ── tool-faq ─────────────────────────────────────────────── */
.tool-faq{max-width:var(--tool-page-width,900px);margin:32px auto 0}
.tool-faq-title{font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0 0 14px;padding:0 4px}
.tool-faq-list{display:flex;flex-direction:column;gap:8px}
.tool-faq-item{background:rgba(255,255,255,.03);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-md);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}
.tool-faq-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-gradient);opacity:0;transition:opacity .3s;border-radius:2px 0 0 2px}
.tool-faq-item:hover,.tool-faq-item[open]{border-color:rgba(56,189,248,.15);box-shadow:0 4px 20px rgba(0,0,0,.08),0 0 12px rgba(56,189,248,.04)}
.tool-faq-item[open]::before{opacity:1}
.tool-faq-item[open]{background:rgba(255,255,255,.05)}
.tool-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}
.tool-faq-item summary::-webkit-details-marker{display:none}
.tool-faq-item summary::marker{display:none;content:''}
.tool-faq-q{font-size:.95rem;font-weight:500;color:var(--text-primary);line-height:1.45;flex:1;margin:0}
.tool-faq-arrow{width:18px;height:18px;color:var(--accent);flex-shrink:0;transition:transform .25s ease;opacity:.7}
.tool-faq-item[open] .tool-faq-arrow{transform:rotate(180deg);opacity:1}
.tool-faq-a{padding:0 18px 16px;color:var(--text-secondary);font-size:.9rem;line-height:1.7;margin:0}
.tool-faq-a a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(56,189,248,.3);text-underline-offset:2px;transition:text-decoration-color .2s}
.tool-faq-a a:hover{text-decoration-color:var(--accent)}
[data-theme=light] .tool-faq-item{background:rgba(255,255,255,.5);border-color:rgba(0,0,0,.07)}
[data-theme=light] .tool-faq-item:hover,[data-theme=light] .tool-faq-item[open]{border-color:rgba(37,99,235,.15);box-shadow:0 4px 20px rgba(0,0,0,.04),0 0 12px rgba(37,99,235,.03)}
[data-theme=light] .tool-faq-item[open]{background:rgba(255,255,255,.7)}
[dir="rtl"] .tool-faq-q{text-align:right}
[dir="rtl"] .tool-faq-a{text-align:right}
[dir="rtl"] .tool-faq-item::before{left:auto;right:0;border-radius:0 2px 2px 0}
@media(max-width:600px){.tool-faq-item summary{padding:12px 14px}.tool-faq-a{padding:0 14px 14px;font-size:.85rem}.tool-faq-q{font-size:.9rem}}

/* ── tool-related ─────────────────────────────────────────────── */
.tool-related{max-width:var(--tool-page-width,900px);margin:32px auto 0;box-sizing:border-box;width:100%}
.tool-related-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0 0 16px;padding:0 4px}
.tool-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.tool-related-card{display:flex;align-items:center;gap:10px;padding:14px 16px;background:rgba(255,255,255,.04);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);text-decoration:none;color:var(--text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);min-width:0;position:relative;overflow:hidden}
.tool-related-card::before{content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(56,189,248,.0),rgba(129,140,248,.0));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:background .4s;pointer-events:none}
.tool-related-card:hover::before{background:linear-gradient(135deg,rgba(56,189,248,.4),rgba(129,140,248,.3))}
.tool-related-card:hover{background:rgba(255,255,255,.07);transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 20px rgba(56,189,248,.08);border-color:transparent}
.tool-related-icon{font-size:22px;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border-radius:var(--radius-sm);transition:all .3s}
.tool-related-card:hover .tool-related-icon{background:rgba(56,189,248,.12);transform:scale(1.1)}
.tool-related-name{font-size:.88rem;font-weight:500;line-height:1.35;min-width:0}
[data-theme=light] .tool-related-card{background:rgba(255,255,255,.6);border-color:rgba(0,0,0,.08)}
[data-theme=light] .tool-related-card::before{background:linear-gradient(135deg,rgba(37,99,235,.0),rgba(124,58,237,.0))}
[data-theme=light] .tool-related-card:hover::before{background:linear-gradient(135deg,rgba(37,99,235,.3),rgba(124,58,237,.2))}
[data-theme=light] .tool-related-card:hover{background:rgba(255,255,255,.8);box-shadow:0 8px 32px rgba(0,0,0,.08),0 0 20px rgba(37,99,235,.06);border-color:transparent}
[data-theme=light] .tool-related-icon{background:rgba(0,0,0,.04)}
[data-theme=light] .tool-related-card:hover .tool-related-icon{background:rgba(37,99,235,.1)}
@media(max-width:768px){.tool-related-grid{grid-template-columns:repeat(2,1fr);gap:10px}.tool-related-card{padding:12px 14px}}
@media(max-width:400px){.tool-related-grid{grid-template-columns:1fr}.tool-related-card{padding:12px 14px}.tool-related-name{font-size:.85rem}}

/* ── tool-audiences ─────────────────────────────────────────────── */
.tool-audience-wrap{max-width:var(--tool-page-width,900px);margin:24px auto 24px;text-align:center}
.tool-audience-label{display:inline-block;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;opacity:.92}
.tool-audience-tags{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.tool-audience-tag{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:rgba(255,255,255,.75);line-height:1.4;padding:12px 22px;min-height:44px;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.12);border-radius:20px;text-decoration:none;transition:all .35s;cursor:pointer;box-sizing:border-box;position:relative;overflow:hidden;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:4px 6px 16px rgba(0,0,0,.25),1px 2px 4px rgba(0,0,0,.15),inset 0 1px 1px rgba(255,255,255,.1)}
.tool-audience-tag::before{content:'';position:absolute;top:-30%;left:-10%;width:50%;height:60%;background:radial-gradient(ellipse at center,rgba(255,255,255,.2) 0%,rgba(255,255,255,.08) 40%,transparent 70%);border-radius:50%;pointer-events:none;transform:rotate(-15deg);transition:opacity .3s;opacity:.7}
.tool-audience-tag::after{content:'';position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,rgba(0,0,0,.06),transparent);border-radius:inherit;pointer-events:none}
.tool-audience-tag:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);color:#fff;transform:translateY(-2px);box-shadow:6px 10px 24px rgba(0,0,0,.3),2px 3px 6px rgba(0,0,0,.2),inset 0 1px 1px rgba(255,255,255,.15)}
.tool-audience-tag:hover::before{opacity:1}
.tool-audience-tag:active{transform:translateY(0);box-shadow:2px 3px 8px rgba(0,0,0,.2),inset 0 2px 4px rgba(0,0,0,.15)}
.tool-audience-icon{font-size:14px;line-height:1;flex-shrink:0}
[data-theme=light] .tool-audience-tag{background:rgba(255,255,255,.45);border:2px solid rgba(255,255,255,.6);color:var(--text-secondary);box-shadow:3px 5px 14px rgba(0,0,0,.08),1px 2px 3px rgba(0,0,0,.04),inset 0 1px 1px rgba(255,255,255,.7)}
[data-theme=light] .tool-audience-tag::before{background:radial-gradient(ellipse at center,rgba(255,255,255,.7) 0%,rgba(255,255,255,.3) 40%,transparent 70%)}
[data-theme=light] .tool-audience-tag::after{background:linear-gradient(to top,rgba(0,0,0,.02),transparent)}
[data-theme=light] .tool-audience-tag:hover{background:rgba(255,255,255,.6);border-color:rgba(255,255,255,.8);color:var(--text-primary);box-shadow:4px 8px 20px rgba(0,0,0,.1),2px 3px 5px rgba(0,0,0,.05),inset 0 1px 1px rgba(255,255,255,.9)}
[data-theme=light] .tool-audience-tag:active{box-shadow:1px 2px 4px rgba(0,0,0,.06),inset 0 2px 6px rgba(0,0,0,.05)}
@media(max-width:480px){.tool-audience-wrap{margin-top:16px}.tool-audience-tags{gap:6px}.tool-audience-tag{font-size:13px;padding:8px 12px;min-height:44px}}

/* ── tool-suggestion ─────────────────────────────────────────────── */
.tool-suggestion{margin:32px auto 0;padding:28px 24px;background:linear-gradient(135deg,rgba(56,189,248,.06),rgba(168,85,247,.06));border:1px solid rgba(56,189,248,.12);border-radius:var(--radius-lg,16px);text-align:center}
.tool-suggestion-title{font-size:20px;font-weight:700;color:var(--text-primary);margin-bottom:10px;line-height:1.4}
.tool-suggestion-desc{font-size:14px;color:var(--text-secondary);max-width:660px;margin:0 auto 18px;line-height:1.7}
.tool-suggestion-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--accent-gradient);color:var(--on-accent);border:none;border-radius:var(--radius-md,10px);font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .2s;min-height:44px}
.tool-suggestion-btn:hover{opacity:.9}
.tool-suggestion-btn svg{width:18px;height:18px;flex-shrink:0}
@media(max-width:600px){.tool-suggestion{padding:22px 18px}.tool-suggestion-title{font-size:17px}.tool-suggestion-desc{font-size:13px}}

/* ── tool-guide ─────────────────────────────────────────────── */
.tool-guide{max-width:var(--tool-page-width,900px);margin:28px auto 0;color:var(--text-secondary);font-size:.92rem;line-height:1.75}
.tool-guide-section{margin-bottom:24px}
.tool-guide h2{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0 0 12px}
.tool-guide ol,.tool-guide ul{margin:0;padding-left:22px}
.tool-guide li{margin-bottom:8px}
.tool-guide li strong{color:var(--text-primary);font-weight:600}
.tool-guide p{margin:0 0 10px}
.tool-guide a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(56,189,248,.3);text-underline-offset:2px;transition:text-decoration-color .2s}
.tool-guide a:hover{text-decoration-color:var(--accent)}
[dir="rtl"] .tool-guide ol,[dir="rtl"] .tool-guide ul{padding-right:22px;padding-left:0}
@media(max-width:600px){.tool-guide{font-size:.87rem;margin-top:20px}}

/* ── tool-noscript-form ─────────────────────────────────────────────── */
.noscript-form{max-width:480px;margin:20px auto;padding:24px 28px;background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left}
.noscript-form h2{color:var(--text-primary);font-size:1.1rem;margin:0 0 16px;text-align:center}
.noscript-field{margin-bottom:16px}
.noscript-field label{display:block;color:var(--text-secondary);font-size:13px;margin-bottom:6px;font-weight:500}
.noscript-field input[type="file"]{width:100%;padding:10px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;box-sizing:border-box}
.noscript-field select,.noscript-field input[type="number"]{width:100%;padding:10px 12px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;box-sizing:border-box}
.noscript-field textarea{width:100%;padding:10px 12px;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;box-sizing:border-box;min-height:80px;resize:vertical;font-family:inherit}
.noscript-field select option{background:var(--bg-primary,#1a1a2e);color:var(--text-primary)}
.noscript-submit{display:block;width:100%;padding:12px;background:var(--accent-gradient,var(--accent));border:none;border-radius:8px;color:var(--on-accent);font-size:15px;font-weight:600;cursor:pointer;margin-top:20px}
.noscript-submit:hover{opacity:.9}
@media(max-width:480px){.noscript-form{padding:16px;margin:12px auto}}

/* ── tool-measured ─────────────────────────────────────────────── */
.tool-measured{max-width:var(--tool-page-width,900px);margin:32px auto 0;border:1px solid var(--border);
    border-radius:var(--radius-lg);background:var(--glass);overflow:hidden}
.tm-head{padding:18px 24px 14px;border-bottom:1px solid var(--border)}
.tm-title{font-size:1.15rem;font-weight:700;color:var(--text-primary);margin:0 0 6px;line-height:1.3}
.tm-stamp{font-size:.8rem;color:var(--text-muted);line-height:1.5;font-variant-numeric:tabular-nums}
.tm-body{padding:6px 24px 20px}
.tm-find{padding:18px 0;border-bottom:1px solid var(--border)}
.tm-find:last-of-type{border-bottom:none}
.tm-claim{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 6px;line-height:1.4}
.tm-text{font-size:.92rem;color:var(--text-secondary);line-height:1.6;margin:0 0 12px}
.tm-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px}
.tm-table{border-collapse:collapse;width:100%;min-width:min(540px,100%);font-size:.86rem}
.tm-table th:first-child,.tm-table td:first-child{padding-left:2px}
.tm-table th:last-child,.tm-table td:last-child{padding-right:2px}
.tm-table th{text-align:left;font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;
    color:var(--text-muted);padding:8px 10px;border-bottom:1px solid var(--border-hover);white-space:nowrap}
.tm-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-secondary);
    font-variant-numeric:tabular-nums;white-space:nowrap}
.tm-table td:first-child{color:var(--text-primary);font-weight:500}
.tm-table tr:last-child td{border-bottom:none}
.tm-table b{color:var(--text-primary);font-weight:600}
.tm-note{font-size:.85rem;color:var(--text-muted);line-height:1.6;margin:10px 0 0}
.tm-foot{padding:14px 24px 18px;border-top:1px solid var(--border);background:var(--glass-hover);
    display:flex;flex-direction:column;gap:8px}
.tm-foot p{margin:0;font-size:.84rem;color:var(--text-muted);line-height:1.6}
.tm-foot b{color:var(--text-secondary);font-weight:600}
.tm-foot code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;
    background:var(--bg-tertiary);padding:1px 6px;border-radius:4px;color:var(--text-secondary);
    overflow-wrap:anywhere}
@media(max-width:640px){
    .tm-head,.tm-body,.tm-foot{padding-left:16px;padding-right:16px}
    .tm-table{font-size:.82rem}
}
