html{height:100%;padding:0;margin:0}
.aix-cms-body,.tool-form{font-family:-apple-system,BlinkMacSystemFont,'Inter','PingFang SC','Microsoft YaHei',sans-serif;color:#1e293b;font-size:14px;overflow-wrap:break-word;word-break:normal;line-height:1.6}
.aix-cms-body input[type=button],.aix-cms-body input[type=reset],.aix-cms-body input[type=submit],.aix-cms-body textarea{-webkit-appearance:none}
.aix-cms-body button:focus,.aix-cms-body input:focus,.aix-cms-body select:focus,.aix-cms-body textarea:focus{outline:0}
.aix-cms-body input[type=text]:focus,.aix-cms-body textarea:focus,.tool-form input[type=text]:focus,.tool-form textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}
/* daisyUI 的隐藏式标签页用 <input type="radio" class="tab"> + aria-label 当标签，
   若这里连带把 .tab 也压成 16px 圆点，标签文字（::after 的 attr(aria-label)）就会消失，
   整个 tab 头部只剩几个空白胶囊。所以只还原非 .tab 的普通单选项。 */
.aix-cms-body input[type=radio]:not(.tab),.tool-form input[type=radio]:not(.tab){-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:1px solid #cbd5e1;border-radius:20px;outline:0;position:relative;vertical-align:middle;cursor:pointer;background:#fff}
.aix-cms-body input[type=radio]:not(.tab):checked,.tool-form input[type=radio]:not(.tab):checked{border-color:#4f46e5}
.aix-cms-body input[type=radio]:not(.tab)::after,.tool-form input[type=radio]:not(.tab)::after{content:'';display:block;width:8px;height:8px;background:#4f46e5;border-radius:12px;position:absolute;top:3px;left:3px;transform:scale(0);transition:transform ease-in-out .12s}
.aix-cms-body input[type=radio]:not(.tab):checked::after,.tool-form input[type=radio]:not(.tab):checked::after{transform:scale(1)}
/* daisyUI 的 tabs-lifted 用 <input class="tab"> 做 grid 标签页，但 Bulma 也定义了 `.tabs`（display:flex、
   justify-content:space-between），且 Bulma 在 daisyUI 之后加载，会把标签页压成横向 flex、tab-content 退化成
   一条窄栏（右侧大片空白）。这里只对 daisyUI 的 tabs-lifted 还原为 grid 布局。 */
.aix-cms-body .tabs.tabs-lifted,.tool-form .tabs.tabs-lifted{display:grid;justify-content:normal;overflow:visible;white-space:normal}
.aix-cms-body input[type=checkbox],.tool-form input[type=checkbox]{margin-right:4px;cursor:pointer;width:16px;height:16px;position:relative;vertical-align:middle;accent-color:#4f46e5}
label.checkbox{margin:0 .75rem 0 0;color:#334155;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:4px}
/* 站点自带的 daisyUI 里有 `.radio` / `.checkbox`，会把 Bulma 的
   <label class="radio"> / <label class="checkbox"> 整体压成 24px 方块，文字逐字换行。
   这里在正文作用域内把 label.radio / label.checkbox 还原为正常行内标签（只作用于 label，不影响 input）。 */
.aix-cms-body label.radio,.tool-form label.radio,.aix-cms-body label.checkbox,.tool-form label.checkbox{width:auto;height:auto;min-width:0;min-height:0;border-radius:0;border-width:0;background:none;flex-shrink:0;white-space:nowrap;margin:0 .75rem 0 0;color:#334155;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;line-height:1.6;cursor:pointer}
.aix-cms-body label.radio input[type=radio],.tool-form label.radio input[type=radio],.aix-cms-body label.checkbox input[type=checkbox],.tool-form label.checkbox input[type=checkbox]{flex:0 0 auto;margin:0}
/* daisyUI 的 .select 会作用在 Bulma 的外层 <div class="select"> 上：强加 min-height、
   左右内边距、白底+边框，并用自己的 background-image 画箭头，和 Bulma 的 ::after 箭头叠成双箭头。 */
.aix-cms-body .select,.tool-form .select{min-height:0;padding:0;border-width:0;border-radius:0;background:transparent;background-image:none}
/* 正文里 <span class="btn tag is-danger"> 借用了 .btn；daisyUI .btn 的 min-height:3rem
   会把这些小标签撑到 48px，还带上阴影与动效。 */
.aix-cms-body .btn,.tool-form .btn{min-height:0;box-shadow:none;animation:none}
/* daisyUI 有 .alert 而 Bulma 没有；其 display:grid + 居中会改动提示条排版，还原为块级左对齐。 */
.aix-cms-body .alert,.tool-form .alert{display:block;text-align:left}
.hide{display:none}.show{display:block}
.aix-cms-body a:not(.button):not(.tag){color:#4f46e5;text-decoration:none;transition:color .15s ease}
.aix-cms-body a:not(.button):not(.tag):hover{color:#4338ca;text-decoration:none}
.aix-cms-body pre,.tool-form pre{white-space:pre-wrap;word-wrap:break-word;padding:1rem 1.25rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-family:'JetBrains Mono','Fira Code',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;color:#0f172a}
/* Bulma 默认为 <code> 铺浅灰底(#f5f5f5)+酱红字。新正文里大量 <code> 直接放在深色卡片上
   （只带 text-blue-100 之类的浅色文字类、没有自己的底色），浅底浅字会直接看不见。
   用 :where() 把优先级降到元素选择器同级：只兜底去掉 Bulma 的默认底色/字色，
   内容里显式写了 bg-/text- 工具类的 <code>（以及下方 ql-syntax 代码块）仍按原文样式显示。 */
:where(.aix-cms-body,.tool-form) code{background-color:transparent;color:inherit;padding:0}
/* 面包屑 */
.breadcrumb a,.tool-form a{color:#475569}
.breadcrumb a:hover,.tool-form a:hover{color:#4f46e5;text-decoration:none}
.aix-cms-body .box{box-shadow:none;border-radius:12px;border:1px solid #e2e8f0;background:#fff;padding:1.25rem}
.user-form,.min-modal{max-width:400px;margin:0 auto}
.is-active .modal-content{border-radius:10px}
.is-grouped-centered .button{min-width:140px;margin-bottom:8px}
.aix-cms-body .button,.tool-form .button{border-radius:8px;font-size:13px;font-weight:600;height:2.4em;padding:0 1rem;border-color:#cbd5e1;color:#334155;transition:all .15s ease;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.aix-cms-body .button:hover,.tool-form .button:hover{border-color:#94a3b8;color:#0f172a;background-color:#f8fafc}
.aix-cms-body .button.is-success,.aix-cms-body .button.is-primary,.aix-cms-body .button.is-link,.tool-form .button.is-success,.tool-form .button.is-primary{background:#4f46e5;border-color:transparent;color:#fff;box-shadow:0 1px 2px rgba(79,70,229,.2)}
.aix-cms-body .button.is-success:hover,.aix-cms-body .button.is-primary:hover,.aix-cms-body .button.is-link:hover,.tool-form .button.is-success:hover,.tool-form .button.is-primary:hover{background:#4338ca;border-color:transparent;color:#fff}
.aix-cms-body .button.is-info,.tool-form .button.is-info{background:#334155;border-color:transparent;color:#fff}
.aix-cms-body .button.is-info:hover,.tool-form .button.is-info:hover{background:#1e293b;border-color:transparent;color:#fff}
.aix-cms-body .tag:not(body){border-radius:6px;font-weight:600;font-size:12px}
.aix-cms-body .tag:not(body).is-primary,.aix-cms-body .tag:not(body).is-success{background-color:#eef2ff;color:#4f46e5;border:1px solid #c7d2fe}
.aix-cms-body .input,.aix-cms-body .textarea,.aix-cms-body .select select,.tool-form .input,.tool-form .textarea,.tool-form .select select{border:1px solid #cbd5e1;border-radius:8px;background-color:#f8fafc;color:#0f172a;box-shadow:none;font-size:13.5px;line-height:1.6;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}
.aix-cms-body .textarea,.tool-form .textarea{font-family:'JetBrains Mono','Fira Code',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;padding:.75rem 1rem}
.aix-cms-body .input:focus,.aix-cms-body .textarea:focus,.aix-cms-body .select select:focus,.tool-form .input:focus,.tool-form .textarea:focus,.tool-form .select select:focus{background-color:#fff;border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.modal-background{background:rgba(15,23,42,.5)}
.modal-card-title{font-size:1rem}.modal-card-body{padding:5px}.modal-card-head{border-bottom:none}.modal-card-foot,.modal-card-head{padding:10px}
.ajax-message{text-align:center}
.ajax-message .message{text-align:center;margin-bottom:1rem}
.menu-list a.is-active{background-color:#4f46e5;color:#fff}
/* 输入框禁止输入背景颜色 */
.aix-cms-body input[disabled],.aix-cms-body input[readonly],.tool-form input[disabled],.tool-form input[readonly]{background-color:#f1f5f9;color:#64748b;cursor:not-allowed}
.CodeMirror{border:1px solid #cbd5e1;border-radius:8px;font-family:'JetBrains Mono','Fira Code',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13.5px;line-height:1.6;background:#f8fafc}
/* 下拉框箭头颜色 */
.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border-color:#4f46e5}
.tips-box{border:1px dashed #cbd5e1;border-radius:10px;padding:24px 16px;background:#f8fafc}
.main{display:block;height:100%;margin-left:220px}
.inner{width:90%;margin:0 auto;padding-top:1.5rem}
/* 头部 */
.header{width:170px;height:100%;background-color:#0f172a;border-right:1px solid #1e293b;position:fixed;left:0;top:0;z-index:30;overflow:hidden}
.header-int{overflow-y:scroll;height:100%;margin-right:-18px}
.header-int::-webkit-scrollbar-thumb{background:rgba(148,163,184,.4)}
.logo{text-align:center;padding:1.6rem 0 1rem}
.logo img{width:100px}
.logo p{color:#94a3b8;font-size:14px}
.left-menu a{color:#94a3b8}
.left-menu dt{padding:.5rem 0;color:#94a3b8;cursor:pointer;border-bottom:1px solid #0f172a;line-height:50px;text-align:center}
.left-menu dt.current{border-bottom:1px solid #1e293b}
.left-menu dt.current a{color:#fff}
.left-menu dd{padding:.5rem 0;text-align:center;background-color:#1e293b}
.left-menu dd a:hover,.menu dd.current a{color:#818cf8}
.left-menu dd a{font-size:12px}
.left-menu .link{text-align:center;padding:.5rem 0;color:#94a3b8}
.left-menu .link a{color:#94a3b8}
.left-menu .link a.current,.left-menu .link a:hover{color:#818cf8}
#menu-btn{display:none}
.web-full{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background:#fff}
.tool-logo{margin-right:1rem}
.tool-logo img{border-radius:.5rem}
/* tab切换 */
.tabs ul{flex-wrap:wrap;border-bottom-color:#e2e8f0}
.tabs li.is-active a{color:#4f46e5;border-color:#4f46e5;font-weight:600}
.tabs li a:hover{color:#4f46e5;border-color:#4f46e5}
.tabs.is-boxed li.is-active a{background-color:#eef2ff;border-color:#c7d2fe;color:#4f46e5}
.tabs.is-boxed li.is-active .icon{color:#4f46e5}
/* 卡片 */
.main-content{margin-bottom:2rem}
.main-title{padding-bottom:20px}
.tool-cate{margin-left:1rem;font-size:14px;color:#64748b}
.tool-box{padding:10px 0}
.tool-box:after{clear:both;content:"";display:table}
.tool-box li{display:block;float:left;width:33%}
.tool-box li>a{display:block}
.tool-card{background:#fff;margin:0 1rem 1rem;padding:.85rem;border-radius:10px;border:1px solid #e2e8f0;box-shadow:0 1px 2px rgba(15,23,42,.04);font-size:12px;transition:all .18s ease}
.tool-card:hover{cursor:pointer;border-color:#6366f1;box-shadow:0 4px 12px rgba(79,70,229,.08);transform:translate3d(0,-2px,0)}
.tool-card .item{display:flex}
.tool-card img{height:52px;width:52px;border-radius:10px;margin-top:2px}
.tool-card h3{font-size:14px;font-weight:600;color:#0f172a}
.tool-card .info{margin-left:10px}
.tool-card .info p{height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#64748b}
.tool-card .hits{display:flex;justify-content:space-between;color:#94a3b8}
/* 表单 */
.form-input{border:1px solid #cbd5e1;border-radius:8px;color:#0f172a;background-color:#f8fafc;max-width:100%;padding:6px 10px;font-size:13px}
.form-btn .btn,.form-btn .form-input{margin:5px 6px 8px 0}
.tips{font-size:12.5px;line-height:1.6;color:#64748b;padding:16px 0 0}
.views{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}
.views h5,.content.views h5{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:10px}
.views p{font-size:13.5px;line-height:1.7;color:#475569}
.is-normal a{color:#4f46e5}
.is-normal p{font-size:14px;line-height:1.7;color:#334155}
code[class*=ql-syntax],pre[class*=ql-syntax]{color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-family:'JetBrains Mono','Fira Code',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:13px}
/* 返回结果 */
.result{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;font-family:'JetBrains Mono','Fira Code',ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13.5px;line-height:1.6;color:#0f172a;background-image:none;margin:16px 0}
.result pre{overflow-x:auto;background:transparent;border:0;padding:0}
/* 按钮 */
.btn{border-radius:8px;display:inline-block;font-weight:600;text-align:center;white-space:nowrap;border:1px solid transparent;padding:6px 14px;font-size:13px;height:36px;line-height:1;transition:all .15s ease-in-out;cursor:pointer;user-select:none}
.alert{padding:10px 14px;margin-bottom:15px;border:1px solid transparent;border-radius:8px;font-size:13.5px}
.alert-success{color:#065f46;background-color:#ecfdf5;border-color:#a7f3d0}
.alert-warning{color:#92400e;background-color:#fffbeb;border-color:#fde68a}
.alert-info{color:#1e40af;background-color:#eff6ff;border-color:#bfdbfe}
.alert-error{color:#991b1b;background-color:#fef2f2;border-color:#fecaca}
.label-default{background-color:#64748b}
.label-primary{background-color:#4f46e5}
.label-success{background-color:#10b981}
.label-warning{background-color:#f59e0b}
.label-danger{background-color:#ef4444}
div.grippie{background:#f1f5f9 url(../img/grippie.png) no-repeat scroll center 2px;border-color:#cbd5e1;border-style:solid;border-width:0 1px 1px;border-radius:0 0 8px 8px;cursor:s-resize;height:9px;overflow:hidden;margin-bottom:10px}
.resizable-textarea textarea,div.resizable-textarea{display:block;margin-bottom:0!important}
/* 评论 */
#comments{overflow:hidden;clear:both}
.comment.depth-1{opacity:.95}
.comment-respond{clear:both;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;margin-top:20px}
ol.commentList li{clear:both;margin:0 0 20px 0;list-style-type:none}
.commentList li .avatar{float:left;width:auto;border:1px solid #e2e8f0;padding:3px;margin:5px 5px 0 0}
.comment-body .comment-text{margin:10px 0 8px 3px}
.comment-body .comment-meta{color:#64748b}
#comments textarea{width:100%;min-height:150px;padding:10px;border:1px solid #cbd5e1;border-radius:8px;margin:1rem auto}
#comments li.even{background:#f8fafc}
#comments li.odd{background:#f1f5f9}
#comments ol>li{margin:20px 0}
#comments li{border-radius:8px;padding:1rem}
p.input{margin:10px 0}
#comments .avatar{float:left;margin-right:10px;border-radius:50px}
.bypostauthor>div .fn:after{content:"管理员";background-color:#4f46e5;color:#fff;padding:1px 6px;border-radius:4px;font-size:12px;margin:0 3px}
.single-topic .bypostauthor>div .fn:after{content:"楼主"}
cite.fn{margin-right:5px;color:#4f46e5;font-weight:700}
.children{border-left:2px solid #4f46e5;border-bottom:1px solid #e2e8f0;margin:5px 0;padding:5px;background-color:#fff}
#comments ol>li>ol>li{margin:0}
.comments-header{position:relative;text-align:center;overflow:hidden;margin:1rem auto}
.comments-heading{position:relative;display:inline-block}
.comments-heading:before{content:'';width:40px;height:2px;background-color:#e2e8f0;position:absolute;top:50%;margin-right:2rem;right:100%;margin-top:-1px}
.comments-heading:after{content:'';width:40px;height:2px;background-color:#e2e8f0;position:absolute;top:50%;left:100%;margin-left:2rem;margin-top:-1px}
.comment-respond .comment-reply-title{text-align:center}
.comment-form .comment-notes,.comment-form .logged-in-as{color:#64748b;text-align:center}
.comment-form-author,.comment-form-email,.comment-form-url{float:left;width:50%;margin-bottom:1.25rem}
.comment-form-url input{border:0}
.comment-form-comment textarea{margin-bottom:1.25rem}
.comment-form-submit{text-align:right}
.ajax-comment-message{background:#4f46e5;border-radius:6px;box-shadow:0 1px 2px rgba(79,70,229,.25);display:inline-block;font-size:14px;margin-bottom:0;padding:12px 25px;color:#fff}
#comments .submit{display:block;cursor:pointer;background:#4f46e5;color:#fff;border:none;margin:10px auto;padding:10px 20px;box-shadow:0 1px 2px rgba(79,70,229,.2);border-radius:8px;min-width:200px;font-weight:600}
.pagination{text-align:center;clear:both;width:100%;margin:20px auto}
/* 回顶部 */
#go-top{position:fixed;right:16px;bottom:16px;z-index:1010;opacity:.9;width:36px;min-height:36px;overflow:hidden;border-radius:8px;text-align:center;background-color:#0f172a}
#go-top a{display:block;cursor:pointer}
#go-top i{width:100%;line-height:36px;vertical-align:middle;color:#cbd5e1}
#go-top:hover{background:#4f46e5}
#go-top:hover i{color:#fff}
/* 底部 */
.footer{border-top:1px solid #e2e8f0;color:#64748b;margin-top:1rem;background:#fff;padding:1rem 0}
@media screen and (max-width:1023px){
    .header{width:160px}
    .main{margin-left:180px}
    .tool-box li{width:50%}
}@media screen and (max-width:768px){
    .header{width:100%;height:50px;border-right:0}
    .logo{height:50px;padding-top:0}
    .logo img{width:auto;height:45px;padding-top:5px}
    .logo h1,.logo p{display:none}
    .left-menu{display:none!important;background-color:#0f172a;border-bottom:10px solid #0f172a;padding-top:.5rem}
    .left-menu dt{border-bottom:1px solid #1e293b}
    .left-menu.on{display:block!important}
    #menu-btn{position:absolute;top:14px;right:18px;display:block}
    #menu-btn i{color:#fff;font-size:22px}
    .main{padding-top:50px;margin-left:0}
    .tool-cate{margin-left:0}
    .tool-box li{display:block;width:100%}
    .tool-card{margin:0 0 1rem}
    #comments li{padding:.5rem}
    .bypostauthor>div .fn:after{content:"";background-color:unset}
    .single-topic .bypostauthor>div .fn:after{content:""}
    .mobile-mb{margin-bottom:1rem!important}
}
@media screen and (min-width:768px){
    code[class*=ql-syntax],pre[class*=ql-syntax]{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap}
}
#right-sidebar{
    display:none;
}
@media screen and (min-width:769px),print{
    #right-sidebar{
        display:block;
    }
}

.i-tabler-user{
    display:inline-block;
    width:1em;
    height:1em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/%3E%3C/svg%3E")
}
.i-tabler-brand-wechat{
    display:inline-block;
    width:1em;
    height:1em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M16.5 10c3.038 0 5.5 2.015 5.5 4.5c0 1.397-.778 2.645-2 3.47V20l-1.964-1.178A6.649 6.649 0 0 1 16.5 19c-3.038 0-5.5-2.015-5.5-4.5s2.462-4.5 5.5-4.5'/%3E%3Cpath d='M11.197 15.698c-.69.196-1.43.302-2.197.302a8.008 8.008 0 0 1-2.612-.432L4 17v-2.801C2.763 13.117 2 11.635 2 10c0-3.314 3.134-6 7-6c3.782 0 6.863 2.57 7 5.785v.233M10 8h.01M7 8h.01M15 14h.01M18 14h.01'/%3E%3C/g%3E%3C/svg%3E")
}
.i-tabler-brand-google{
    display:inline-block;
    width:1em;
    height:1em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%2232%22+height%3D%2232%22+viewBox%3D%220+0+24+24%22%3E%3Cpath+fill%3D%22none%22+stroke%3D%22currentColor%22+stroke-linecap%3D%22round%22+stroke-linejoin%3D%22round%22+stroke-width%3D%222%22+d%3D%22M20.945+11a9+9+0+1+1-3.284-5.997l-2.655+2.392A5.5+5.5+0+1+0+17.125+14H13v-3z%22%2F%3E%3C%2Fsvg%3E")
}
.i-tabler-heart{
    display:inline-block;
    width:1.4em;
    height:1.4em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19.5 12.572L12 20l-7.5-7.428A5 5 0 1 1 12 6.006a5 5 0 1 1 7.5 6.572'/></svg>")
}
.i-tabler-eye{
    display:inline-block;
    width:1.5em;
    height:1.5em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'><g fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'><path d='M10 12a2 2 0 1 0 4 0a2 2 0 0 0-4 0'/><path d='M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6'/></g></svg>")
}
.i-tabler-clock{
    display:inline-block;
    width:1.3em;
    height:1.3em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m9 0H8.5M12 7v5'/></svg>")
}
.i-tabler-heart-filled{
    display:inline-block;
    width:1.3em;
    height:1.3em;
    background-color:currentColor;
    -webkit-mask-image:var(--svg);
    mask-image:var(--svg);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    --svg:url("data:image/svg+xml","<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'><path fill='currentColor' d='M6.979 3.074a6 6 0 0 1 4.988 1.425l.037.033l.034-.03a6 6 0 0 1 4.733-1.44l.246.036a6 6 0 0 1 3.364 10.008l-.18.185l-.048.041l-7.45 7.379a1 1 0 0 1-1.313.082l-.094-.082l-7.493-7.422A6 6 0 0 1 6.979 3.074'/></svg>")
}
/* —— 减压放松（/relax）——
   正文把视频、场景缩略图和「全屏」按钮都用绝对定位叠在 #content.tool-content 上。
   旧站里 .tool-content 自身就是定位容器，迁入新主题后缺了这一层定位上下文，
   绝对定位元素会逃出卡片改按视口定位（缩略图飘到页面右上角、视频铺满整屏、
   卡片被抽空到 0 高），表现就是「错位」。这里补回定位上下文与画布尺寸，
   正文内联脚本仍会用 window 宽度覆写高度。 */
.aix-cms-body .tool-content{position:relative;width:100%;aspect-ratio:5 / 3;overflow:hidden;border-radius:.75rem;background-color:#0f172a}
.aix-cms-body .tool-content>#video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}