/*zoPanel*/
:root{--font-main:'DM sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;--gap-page:1.6rem;--clr-gray:#b6b6b6;--gap-block:1.2rem;--gap-half:.6rem;--gap-tab:.4rem;--gap-round:.7rem;--clr-page:#fafafa;--clr-shade:#8881;--clr-main:#11b6aa;--clr-icon:#0eaf86;--clr-link:#444;--clr-button:#d16;--clr-input:#fffe;--clr-active:#d16;--clr-line:#d9d9d9;--clr-sticky:#fafafadd;--clr-block:#fff;--clr-text:#333;--clr-accent:#0eaf86;--clr-column:#f9f9f9dd;--clr-shadow:#0001;--clr-warning:#d86c46;--clr-success:#54d846}
html,body{margin:0;padding:0;width:100%;font-size:14px;height:100%;overflow-x:hidden;overflow-y:overlay}
html{overflow-y:auto;overflow-x:hidden}
body{color:var(--clr-text);position:relative;background-position:center;background-size:cover;background-color:var(--clr-page);font-family:var(--font-main);line-height:1.4}
h1,h2,h3,h4,ul,ol,li{margin:0;padding:0}
h1,h2,h3,h4{font-weight:500}
p,div,header,ul,ol,li,h1,h2,h3,h4{box-sizing:border-box}
p{margin:var(--gap-tab) 0}
p:empty{display:none;margin:0}
a{color:var(--clr-link);text-decoration:none;display:inline-block}
a:hover,a.active{color:var(--clr-active)}
a:has(.gi){display:inline-flex;align-items:center;gap:var(--gap-tab);vertical-align:middle}
ol{list-style-position:inside}
ul{list-style:none}
h1{font-size:1.4rem}
h2{font-size:1.3rem}
h3{font-size:1.2rem}
h4{font-size:1.1rem}
hr{border:.5px solid var(--clr-line);margin:var(--gap-block) 0}
img,svg{vertical-align:middle;border:0;background-position:center;background-size:cover;border-radius:calc(var(--gap-round)/2)}
span,small,label{display:inline-block}
code,.code{white-space:pre-wrap;word-break:break-all;color:#41884b;font-family:monospace}
/**/
header{background-color:var(--clr-sticky);z-index:1000;text-shadow:0 0 1px var(--clr-shadow);position:sticky;display:flex;align-items:center;gap:var(--gap-half);top:calc(var(--gap-half)/-.8);padding:var(--gap-page) var(--gap-page) var(--gap-half);backdrop-filter:saturate(.5) blur(5px);margin:calc(var(--gap-page)/-1);margin-bottom:0}
table{width:100%;border:0;border-collapse:collapse}
table tr td{font-size:1rem;white-space:nowrap;padding:var(--gap-half);border:1px solid var(--clr-line)}
table tr td.sort-col{background:#88888806}
table tr td img,table tr td svg{border-radius:calc(var(--gap-round)/2.5);background-color:var(--clr-input)}
table tr td code,table tr td .code{word-break:auto-phrase}
table thead tr th{text-align:left;font-weight:500;font-size:1rem;position:sticky;padding:var(--gap-half);background-color:var(--clr-column);border:1px solid var(--clr-line);white-space:nowrap}
table thead:not(:first-child) tr th,table tfoot tr td{border-top:1px solid var(--clr-line)}
table tbody tr:nth-child(even){background-color:var(--clr-column)}
table tbody tr:hover td:first-child input{color:var(--clr-button)}
table tbody tr:hover td{background-color:#00000006}
table.glass,table.glass tbody tr,table.glass tr td{border:none;background-color:transparent}
/**/
dl{background-color:var(--clr-block);margin:0;color:var(--clr-text);border-radius:var(--gap-round);box-sizing:border-box;width:100%;width:stretch;padding:var(--gap-half);border:1px solid rgb(from var(--clr-line) r g b/55%)}
dl dt>*{padding:var(--gap-half);white-space:nowrap}
dl dt h3{font-size:1.1rem;display:flex;gap:var(--gap-tab);align-items:center}
dl dt h3 .gi+span{position:absolute;margin-left:1.8em}
dl dt .gi{color:var(--clr-main)}
dl dd{margin:0;padding:var(--gap-half)}
dl dd:has(>table){overflow:auto}
dl dd dl{box-shadow:none;padding:0;margin:0}
dl.glass{background:0 0;box-shadow:none;padding:0;margin:var(--gap-half) calc(var(--gap-block)/-6);border:none}
dl.table{display:table;position:relative}
dl.table dt{display:table-row}
dl.table dt:first-child:empty{height:.5rem}
dl.table dd{display:table-cell;vertical-align:middle}
dl.table dd.th{border-bottom:1px solid var(--clr-line);padding:.5rem}
dl.table dt+dd,dl.table dt+dd+dd+dd{white-space:nowrap}
dl.table dd img,dl.table dd svg{background-color:var(--clr-input)}
dl dt:has(h3):not(:first-child):before{content:"";height:var(--gap-block);display:table-row}
dl:has(dd button,dd .button)>dt:last-of-type:not(:first-child){height:1rem;position:relative}
dl:has(dd button,dd .button)>dt:last-of-type:not(:first-child):before{content:"";position:absolute;margin-top:.5rem;left:var(--gap-half);right:var(--gap-half);border-top:1px solid var(--clr-line)}
dl:has(+dl,+form,+div),form:has(+form,+dl),.row:has(+*){margin-bottom:var(--gap-block)}
dl dd>table th,dl dd>table td{border-left:none;border-right:none}
/**/
form{margin:0px;padding:0px}
select,textarea,input,button,.button{position:relative;color:var(--clr-text);line-height:1.4;font-family:var(--font-main);max-width:100%;-webkit-appearance:none;font-size:1rem;border-radius:calc(var(--gap-round)/2);box-sizing:border-box;outline:none;padding:var(--gap-tab) var(--gap-half);background:var(--clr-input);border:1px solid rgb(from currentColor r g b/22%)}
select{padding-right:2em;background-image:url('data:image/svg+xml,<svg width="600" height="900" xmlns="http://www.w3.org/2000/svg"><path fill="%23887" d="m300,862.5l-251,-251l53,-54l198,199l199,-199l52,54l-251,251zm-199,-520l-52,-54l251,-251l251,251l-52,54l-199,-199l-199,199z"/></svg>');background-size:auto 45%;background-repeat:no-repeat;background-position:right var(--gap-half) center}
input:hover,select:hover,textarea:hover{border-color:var(--clr-button)}
input:focus,select:focus,textarea:focus{border-color:var(--clr-button);box-shadow:0 0 0 3px color-mix(in srgb, var(--clr-button) 39%, transparent 90%)}
input+i,textarea+i,select+i,label+i{display:inline-flex;color:#8888;font-style:normal;padding:.2rem;gap:.5rem}
input:required+i:before,textarea:required+i:before,select:required+i:before{white-space:nowrap;content:"*必填 ";color:var(--clr-warning)}
input[type=checkbox],input[type=radio]{font-size:1.4em;line-height:1em;height:1em;background:transparent;margin:.2em;padding:0;border:0;color:var(--clr-gray)}
input[type=checkbox]:checked,input[type=radio]:checked{color:var(--clr-accent);font-variation-settings:'FILL' 1,'wght'400,'GRAD'0,'opsz'48}
input[type=checkbox]:before,input[type=radio]:before{font-family:'Material Symbols Rounded'}
input[type=checkbox]:not(.gi):checked:before{content:"check_box"}
input[type=checkbox]:not(.gi):before{content:"check_box_outline_blank"}
input[type=radio]:not(.gi):before{content:"radio_button_unchecked"}
input[type=radio]:not(.gi):checked:before{content:"radio_button_checked"}
input[type=date]{padding:calc(.5em - 1px) var(--gap-half)}
input[type=date]::-webkit-calendar-picker-indicator{filter:invert(0.3) sepia(100%) saturate(1)}
input[type=range]{padding:0px;background-color:#8886;height:.5em;border-radius:1em}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:1em;width:1em;background:var(--clr-button);border-radius:1rem;box-shadow:0 0 .5em 0 rgba(0, 0, 0, .4)}
input[type=submit],.button,button{--bg-clr:var(--clr-button);justify-content:center;white-space:nowrap;display:inline-flex;gap:.4em;align-items:center;background-color:var(--clr-button);color:#fcfcfc;border-color:#0000}
input[type=submit]>.gi,.button>.gi,button>.gi,a>.gi{will-change:transform;transition:.2s all linear}
input[type=submit]:hover>.gi,.button:hover>.gi,button:hover>.gi,a:hover>.gi{transform:scale(1.1)}
input[type=submit]:hover,.button:hover,button:hover{color:#fff;filter:brightness(1.15) saturate(1.2)}
input[type=submit]:active,input[type=radio]:active,input[type=checkbox]:active,.button:active,button:active{filter:hue-rotate(30deg)}
input[type=file]{display:none}
input.full,textarea.full,select.full{width:100%}
input.medium,select.medium,textarea.medium{width:310px}
input.short,select.short{width:160px}
input.short[type=number]{width:80px}
textarea{height:auto;width:100%;line-height:1.5}
textarea:read-only+i:before{content:"#不可修改 ";color:#ccc}
input.toggle[type=checkbox]{background:var(--clr-gray);transition:.3s ease all 0s;border-radius:1em;display:inline-flex;align-items:center;box-shadow:0 0 4px 0 #0003 inset;width:1.8em;height:1em;justify-content:center}
input.toggle[type=checkbox]:before{display:none}
input.toggle[type=checkbox]:after{content:"";background:#fffc;transition:.2s ease all 0s;width:.7em;height:.7em;margin:0 .8em 0 0;box-shadow:0 1px 1px 0px #0002;border-radius:1em}
input.toggle[type=checkbox]:checked{background:var(--clr-accent);transform:scale(1)}
input.toggle[type=checkbox]:checked:after{background:#fff;margin:0 0 0 .8em}
input[type=checkbox]:disabled{background:#0000}
input[type=checkbox]:disabled:before{content:'select'}
input:disabled,button:disabled,select:disabled{filter:brightness(1.05) saturate(.3)}
label{display:inline-flex;align-items:center;gap:.2em}
label.tag:has(:checked){color:#fff;background-color:var(--clr-button)}
label.tag:has(input) input{display:none}
fieldset{border:1px solid rgb(from var(--clr-line) r g b/75%);border-radius:calc(var(--gap-round)/2);padding:var(--gap-block);margin:var(--gap-block) 0}
fieldset legend{padding:0 var(--gap-tab);font-weight:500;display:flex;align-items:center;gap:var(--gap-tab)}
details{margin:var(--gap-half) 0}
summary{margin:var(--gap-half)}
::placeholder{color:#8886}
.focus-grow{animation:grow .4s none;box-shadow:0 0 0 0 #0000}
/**/
.board-grid{display:flex;margin:calc(var(--gap-half)/-1);flex-wrap:wrap}
.board-cell{height:stretch;background-color:var(--clr-block);position:relative;overflow:hidden;padding:var(--gap-block);margin:var(--gap-half);transition:.3s ease all 0s;border-radius:var(--gap-round);border:1px solid rgb(from var(--clr-line) r g b/55%)}
.board-cell .gi{color:var(--clr-icon)}
.board-cell big{color:var(--clr-accent);line-height:1}
.board-cell:hover{transform:translateY(-3px)}
/**/
.board-list li{border-bottom:1px solid var(--clr-line);padding:var(--gap-half) 0}
.board-list li:last-child{border-bottom:none}
.board-list li a{display:flex;gap:var(--gap-tab);align-items:center}
.board-list li a i.gi:first-child{color:var(--clr-icon)}
.board-menu{margin:calc(var(--gap-tab)/-1) calc(var(--gap-half)/-1);display:flex;flex-wrap:wrap}
.board-menu a{display:flex;gap:var(--gap-half);padding:var(--gap-half);position:relative;align-items:center;justify-content:flex-start;border-radius:var(--gap-round);transition:.3s ease all 0s}
.board-menu a .gi{transition:.3s all ease 0s;color:var(--clr-icon)}
.board-menu a span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.board-menu a:hover{background-color:rgb(from currentColor r g b/9%)}
.board-menu a:hover .gi{color:var(--clr-active);background-color:#0000;transform:scale(1.2)}
/**/
.badge{background:var(--clr-accent);color:#fff;border-radius:1rem;line-height:1;padding:.2rem .4rem}
.badge:empty{display:none}
.badge.dot{width:0rem;height:.2rem;font-size:0}
.badge.gi{background:#0000}
.cutoff{text-align:center;margin:var(--gap-block) auto;position:relative}
.cutoff:after,.cutoff:before{content:"";border-top:1px solid #8881;position:absolute;top:50%;width:30%}
.cutoff:before{left:0}
.cutoff:after{right:0}
sup.badge,sub.badge{position:absolute;right:0}
sup.badge{top:0}
sub.badge{bottom:.2rem}
.gi.icon{height:1em;width:1em;flex-shrink:0;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:.5em;background-color:rgb(from currentColor r g b/20%);padding:.3em}
/**/
.grid{gap:0}
.grid-1>*{width:100%}
.grid-2>*{width:50%}
.grid-3>*{width:33.3333%}
.grid-4>*{width:25%}
.grid-5>*{width:20%}
/**/
.board-head{position:sticky;margin:calc(var(--gap-block)/-1) calc(var(--gap-half)/-1) var(--gap-half);padding:var(--gap-half);top:0;z-index:99;background:var(--clr-sticky);backdrop-filter:blur(5px)}
.board-head .row{align-items:center}
.board-head .title{position:relative;display:inline-block;background:linear-gradient(0deg,var(--clr-main),hsl(from var(--clr-main) h s calc(l*1.3)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;height:2em}
.board-head .title:after{content:attr(data-text);position:absolute;top:1em;left:0;transform:rotateX(180deg);background:linear-gradient(0deg,var(--clr-main) 0,#0000 60%);opacity:.5;-webkit-background-clip:text;color:transparent}
.board-head .icon{padding:.1em;background:linear-gradient(0deg,var(--clr-icon),hsl(from var(--clr-icon) h s calc(l*1.3)));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
/**/
#container{width:100vw;padding:var(--gap-page)}
#container:has(.login-page){height:100%}
.container-fluid{padding:0}
.content{padding:var(--gap-tab) 0}
/**/
.tooltip{color:var(--clr-warning);background:color-mix(in srgb, currentColor 20%, var(--clr-page));padding:.5rem 1rem;margin:var(--gap-block) 0;border:1px solid rgb(from currentColor r g b/35%);border-radius:calc(var(--gap-round)/2)}
.toolbar{display:flex;align-items:center;justify-content:flex-start;margin:calc(var(--gap-tab)/-2) calc(var(--gap-block)/-1.2);padding:calc(var(--gap-half)/.8) var(--gap-block);gap:var(--gap-half)}
.toolbar.fixed{background-color:var(--clr-sticky);position:sticky;backdrop-filter:saturate(.5) blur(5px);z-index:1001}
.toolbar.fixed.top{top:0}
.toolbar.fixed.bottom{bottom:0}
.toolbar form{display:flex;flex-wrap:wrap;gap:var(--gap-half);align-items:center}
.toolbar .paging,.toolbar .option,.toolbar .pages{display:flex;align-items:center;gap:var(--gap-tab);flex-wrap:wrap;justify-content:flex-start}
.toolbar .paging a,.toolbar .paging span{padding:var(--gap-tab);border-radius:calc(var(--gap-round)/2);color:var(--clr-accent)}
.toolbar .paging .current{color:var(--clr-active)}
.toolbar .paging .disabled{color:#8888}
.toolbar>*:last-child{margin-left:auto}
.toolbar>*:first-child:last-child{width:-webkit-fill-available}
/**/
.tag{display:inline-flex;border:1px solid rgb(from currentColor r g b/20%);border-radius:.4em;padding:.3em .5em;background:rgb(from currentColor r g b/25%);align-items:center;gap:var(--gap-tab)}
.tabs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap-tab)}
.tabs>*{flex-shrink:0}
.tabs a{position:relative;padding:var(--gap-tab);display:inline-flex;gap:var(--gap-tab);align-items:center;justify-content:center}
.tabs a:after{content:"";left:0;right:0;height:2px;position:absolute;bottom:0;border-radius:2px;transition:.2s all ease 0s}
.tabs a.active{color:var(--clr-active)}
.tabs a.active:after{left:30%;right:30%;background-color:currentColor}
.tabs.side{flex-direction:column;align-content:flex-start}
.tabs.side>*{width:-webkit-fill-available;flex:1}
.tabs.side>* a:after{display:none}

.step{counter-reset:step;display:flex;flex-wrap:nowrap;align-items:center;list-style:none;gap:var(--gap-half)}
.step li::before {content:counter(step);counter-increment:step;width:1em;height:1em;line-height:1em;border-radius:1rem;border:1px solid rgb(from currentColor r g b/43%);color:var(--clr-icon);text-align:center;padding:.3rem;background:rgb(from currentColor r g b/33%)}
.step li:not(:last-child)::after {content:'';width:2rem;height:1px;background:var(--clr-line)}
.step li:has(.active):before{color:var(--clr-active)}
.step li{gap:var(--gap-half);position:relative;display:flex;align-items:center}
.step li a.active{color:var(--clr-active)}

.gi{font-style:normal;font-family:'Material Symbols Rounded';font-size:1.2em;line-height:1;vertical-align:middle;font-variation-settings:'FILL'1,'wght'400,'GRAD'0,'opsz'48}
.gi-sm{font-size:.9em}
.gi-lg{font-size:1.5em}
.gi-xl{font-size:1.8em}
.gi-2x{font-size:2.4em}
.gi-3x{font-size:3.6em}
.gi-gw{width:1.2em;text-align:center;display:inline-block}
.gi-line{font-variation-settings:'FILL'0,'wght'400,'GRAD'0,'opsz'48}

.upload-grid{display:flex;flex-wrap:wrap;justify-content:flex-start;user-select:none;gap:calc(var(--gap-block)/1.5)}
.upload-grid>*{position:relative}
.upload-grid svg{height:10rem;transition:.3s ease all 0s;box-shadow:0 0 0 1px rgb(from currentColor r g b/18%) inset}
.upload-grid>*:hover svg{box-shadow:0 0 0px 1px var(--clr-button) inset}
.upload-grid sup,.upload-grid sub{margin:.5rem;position:absolute;right:0;display:flex;justify-content:center;gap:.4rem}
.upload-grid svg~sub{bottom:0;left:0}
.upload-grid svg~sup{top:0}
.upload-grid .progress{top:48%;position:absolute;z-index:1;left:1rem;right:1rem}

.thumb-grid{margin:0 calc(var(--gap-tab)/-2)}
.thumb-grid>*{padding:var(--gap-tab);position:relative}
.thumb-grid svg{box-shadow:0 0 .4rem 0 var(--clr-shadow);background-color:#8888}
.thumb-grid sub{position:absolute;bottom:var(--gap-half);right:var(--gap-half)}
.thumb-grid sup{position:absolute;padding:.2rem;top:var(--gap-half);right:var(--gap-half)}
/**/
.board-wide{background-color:var(--clr-block);overflow:auto;border-radius:calc(var(--gap-round)/1.3);border:1px solid var(--clr-line)}
.board-wide table tr td{white-space:nowrap;border-left:0;padding:var(--gap-block) var(--gap-half);border-right:0}
.board-wide table tr td:first-child,.board-wide table tr td:last-child,.board-wide table tr th:first-child,.board-wide table tr th:last-child{text-align:center}
.board-wide table tr td:first-child,.board-wide table tr td:last-child{position:sticky;z-index:9}
.board-wide table tr td:first-child{left:0}
.board-wide table tr td:last-child{right:0}
.board-wide table tr td:last-child:before,.board-wide table tr td:first-child:before,.board-wide table thead tr th:first-child:before,.board-wide table thead tr th:last-child:before{content:"";position:absolute;height:100%;top:0;left:0;width:100%;backdrop-filter:blur(5px);z-index:-1}
.board-wide table tr:last-child td{border-bottom:0}
.board-wide table thead tr th{padding:calc(var(--gap-half)/.7) var(--gap-half);border:0px}
.board-wide table thead tr th:first-child{left:0}
.board-wide table thead tr th:last-child{right:0}
.board-wide dl{margin:var(--gap-half);border-radius:calc(var(--gap-round)/2)}
/**/
.progress {margin:.4em 0;height:.5em;background:var(--clr-line);border-radius:1em;display:flex}
.progress .bar {background-color:var(--clr-button);text-align:right;position:relative;border-radius:1em;transition:.4s ease all 0s;animation:progress 1s ease-out forwards}
.progress .bar span {background:var(--clr-gray);position:absolute;color:#fff;border-radius:3px;padding:0px 3px;font-size:.7em;margin:-2em}
@keyframes progress {from {width:0}to {width:var(--percentage)}}
/**/
.fan{-webkit-animation:spin 1s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}
.load:after{content:"";position:fixed;left:50%;top:50%;background:var(--clr-shade);box-shadow:0 0 0 var(--gap-half) var(--clr-shade);opacity:0;animation:fade .9s ease .5s forwards,spin 1s linear infinite;width:1rem;height:1rem;border-radius:50%;border:.2rem solid var(--clr-main);border-left:.2rem solid rgba(0,0,0,0);z-index:1009}
.wait:after{content:"";position:absolute;animation:fade 1s ease 2s forwards,flow 4s linear infinite 1s;height:1px;background:linear-gradient(90deg,#0000,var(--clr-main),#0000);z-index:10000;top:0}
body.load:after{left:50%;top:50%;margin-top:-1.2em;margin-left:-1.2em;width:2em;height:2em}

.pop-menu{position:relative}
.pop-menu input:before{content:'more_horiz'}
.pop-menu ul{background:var(--clr-block);position:absolute;visibility:hidden;box-shadow:0 0 .5rem 0 var(--clr-shadow);z-index:99;border-radius:calc(var(--gap-round)/1.5);transition:.2s all ease .2s;opacity:0;margin:-999px;border:1px solid var(--clr-line);padding:var(--gap-half) 0}
.pop-menu ul li a{padding:var(--gap-tab) var(--gap-block);display:flex;align-items:center;gap:var(--gap-tab)}
.pop-menu ul li a i{color:var(--clr-icon)}
.pop-menu input:focus+ul{visibility:visible;opacity:1;transition:.3s opacity ease .3s}

/**/
.layui-layer-title{font-weight:bold;display:flex;gap:var(--gap-half);align-items:center;margin-bottom:calc(var(--gap-half)/-1)}
.layui-layer-title i{color:var(--clr-icon)}
.layui-layer-iframe{overflow:hidden}
.layui-layer-iframe.drawer{border-radius:0}
.layui-layer.modal .layui-layer-content{overflow:auto;margin:var(--gap-block);max-height:80vh}
.layui-layer .layui-layer-close:before{content:"close";font-family:'Material Symbols Rounded'}
.layui-layer .layui-layer-setwin{top:var(--gap-block);right:var(--gap-block);z-index:1}
.layui-layer .layui-layer-setwin a{background-image:none;position:initial;width:1em;line-height:1em;height:1em;font-size:1.5rem;transition:.3s ease all 0s}

.tree-horizontally ul{margin:1rem 0;overflow-wrap:break-word;text-align:center;white-space:nowrap;font-size:0}
.tree-horizontally ul li{padding:1rem;list-style:none;display:inline-block;font-size:1rem}
.tree-horizontally ul li ul{position:relative;margin-top:1rem}
.tree-horizontally ul li ul li{position:relative}
.tree-horizontally ul li ul:before{content:"";background:#ddd;width:1px;position:absolute;top:-1rem;left:50%;height:1rem}
.tree-horizontally ul li:after{content:"";background:#ddd;width:1px;position:absolute;top:0;height:1rem;left:50%}
.tree-horizontally ul li:before{content:"";background:#ddd;width:100%;position:absolute;top:0;left:0;height:1px}
.tree-horizontally ul li:first-child:before{left:50%;width:50%}
.tree-horizontally ul li:last-child:before{left:0;width:50%}
.tree-horizontally ul li .list-vertically ul{display:inline-block;margin:0 1rem;text-align:left}
.tree-horizontally ul li .list-vertically ul li{display:block;padding:.5rem 1rem}
.tree-horizontally ul li .list-vertically ul li:before{top:1.5rem;width:1rem}
.tree-horizontally ul li .list-vertically ul li:after{left:0;height:100%}
.tree-horizontally ul li .list-vertically ul:before{left:-1rem;width:1rem;height:1px;top:1.5rem}
.tree-horizontally ul li .list-vertically ul li:first-child:before{left:0}
.tree-horizontally ul li .list-vertically ul li:last-child:after{height:1.5rem}
.tree-horizontally ul li .list-vertically ul li:first-child:after{top:50%}
.tree-horizontally ul li .list-vertically>ul:before{top:-1rem;left:0;height:3rem;width:1px}
.tree-horizontally ul li .box{position:relative;display:inline-block;padding:0 1rem;border:1px solid #111;margin:0 .5rem}
.tree-horizontally ul li .box:before{content:"";display:inline-block;background:#000;top:-1rem;width:1px;position:absolute;height:1rem;left:50%}
.tree-horizontally ul li .box:after{content:"";display:inline-block;background:#000;bottom:-1rem;width:1px;position:absolute;height:1rem;left:50%}
.tree-horizontally ul li .box i{color:#07a02a;cursor:pointer;font-size:1.3rem}
.tree-horizontally ul li a{padding:0 1rem;display:inline-block;border:1px solid #ddd}

.tree-vertically ul{padding-left:2rem}
.tree-vertically ul li{position:relative;padding:var(--gap-tab)}
.tree-vertically ul li:before{content:"";border-left:1px solid var(--clr-line);height:100%;position:absolute;top:0}
.tree-vertically ul li:after{content:"";border-top:1px solid var(--clr-line);width:var(--gap-block);position:absolute;left:calc(var(--gap-block)/-1);top:1.5rem}
.tree-vertically ul li:before{left:calc(var(--gap-block)/-1)}
.tree-vertically ul li:first-child:after{border-left:none}
.tree-vertically ul li:last-child:before{height:2rem}

.guide-map ul li ul{margin:.5rem 0}
.guide-map ul li a{line-height:2rem;padding:.5rem;display:flex;align-items:center;overflow:hidden;font-size:1.2rem;border-bottom:1px solid var(--clr-line);color:var(--clr-main);gap:.5rem}
.guide-map ul li a:hover{color:var(--clr-active)}
.guide-map ul li ul li{display:flex;align-items:flex-start}
.guide-map ul li ul li a{font-size:1.1rem;border-bottom:none;color:var(--clr-icon);min-width:8rem}
.guide-map ul li ul li ul{display:flex;flex-wrap:wrap}
.guide-map ul li ul li ul li a{padding:0;color:#666;font-size:1rem;gap:var(--clr-tab)}

.login-page{display:flex;flex-direction:column;min-height:100%;justify-content:center;gap:2rem;align-items:center;position:relative}
.login-page header{padding:var(--gap-block) 0;top:0;background:#0000;position:absolute;width:100%;justify-content:space-between;backdrop-filter:none}
.login-page header .logo img{height:2.5rem}
.login-background{top:0;left:0;bottom:0;right:0;position:fixed;background-size:cover;background-position:center}
.login-shade{top:0;left:0;bottom:0;right:0;position:fixed;background-image:radial-gradient(circle, var(--clr-shadow) .5px, transparent 0px);background-size:3px 3px;background-position:center}
.login-box{padding:4rem 5rem;border-radius:var(--gap-block);box-shadow:0 0 1rem 0 var(--clr-shadow);backdrop-filter:saturate(150%) blur(7px);background:var(--clr-column);overflow:hidden;gap:2rem;display:flex;flex-direction:column}
.login-box h3{margin:var(--gap-block) 0}
.login-box ul{display:flex;flex-direction:column;gap:var(--gap-block)}
.login-box form input,.login-box form select{width:100%;background-color:var(--clr-shade)}
.login-box form button{width:100%}
.login-box form{display:flex;gap:6rem;justify-content:center}
.login-box .logo{align-items:center;justify-content:center;gap:1rem;display:flex}
.login-box .logo img{max-height:4rem;max-width:13rem}
.login-box .logo img+div{margin-right:auto}
.login-box .tabs{gap:0;width:8rem;right:-2.5rem;top:.5rem;position:absolute;transform:rotate(45deg);background:var(--clr-shade)}
.login-box .tabs li{transform:rotate(-45deg)}
.login-box .tabs li a.active{display:none}
.login-box .qrcode{width:12rem;position:relative;background:#fff;border:1px solid var(--clr-line);margin:auto;padding:.3rem}
.login-box .qrcode a{display:flex;position:absolute;justify-content:center;align-items:center;width:100%;height:100%;top:0;left:0;background:var(--clr-sticky);backdrop-filter:blur(2px)}

.dropmenu{position:absolute;visibility:hidden;margin:0}
.dropmenu ul{position:absolute;background-color:var(--clr-block);backdrop-filter:saturate(.5) blur(5px);white-space:nowrap;box-shadow:0 0 var(--gap-half) 0 var(--clr-shadow);border-radius:var(--gap-round);overflow:hidden;border:1px solid var(--clr-line)}
.dropmenu ul li a{padding:var(--gap-half) var(--gap-block);display:flex;gap:var(--gap-tab);align-items:center}
.dropmenu ul li a:hover{color:var(--clr-active);background:var(--clr-shade)}
.dropmenu ul li a .gi{color:var(--clr-icon)}

.panel{display:flex;flex-direction:column;height:100vh;margin:calc(var(--gap-page)/-1);overflow:hidden}
.panel-main{display:flex;flex:auto;min-height:0}
.panel-head{align-items:center;display:flex;padding:var(--gap-half) var(--gap-block);z-index:9;gap:var(--gap-half);box-shadow:0 1px 0 0 rgb(from var(--clr-line) r g b/55%)}
.panel-head-logo{margin:0 .2rem}
.panel-head-logo svg,.panel-head-logo img{max-height:2.4rem;max-width:6rem}
.panel-head-tabs{flex:auto;gap:var(--gap-tab);display:flex;align-items:center;overflow:hidden}
.panel-head-tabs li{display:flex;border-radius:var(--gap-tab);position:relative;align-items:center;gap:.2em;padding:var(--gap-tab) var(--gap-half)}
.panel-head-tabs li:has(>a.active),.panel-head-tabs li:hover{box-shadow:0 0 0 1px rgb(from var(--clr-line) r g b/55%) inset;background-color:var(--clr-shade)}
.panel-head-tabs li a{overflow:hidden;white-space:nowrap;max-width:6rem;text-overflow:ellipsis}
.panel-head-tabs li a.active{color:var(--clr-text)}
.panel-head-tabs li a~i{cursor:pointer;color:#8884}
.panel-head-tabs li a~i:hover{color:var(--clr-active)}
.panel-head-drop{display:flex;align-items:center;gap:var(--gap-tab)}
.panel-head-drop li a img{display:none}
.panel-head-drop li a+ul{display:none}

.panel-side{width:15rem;flex:none;display:flex;justify-content:space-between;flex-direction:column;transition:all .3s ease 0s;padding:var(--gap-block) 0;gap:var(--gap-half)}
.panel-side.fold{width:4rem}
.panel-side.fold ul li a{justify-content:center}
.panel-side.fold ul li a.active i{transform:scale(1.2)}
.panel-side.fold ul li a:after{display:none}
.panel-side.fold ul li a span{display:none}
.panel-side.fold ul li ul li a:before{display:none}
.panel-side.fold ul li ul li ul{display:none}
.panel-side.fold ul li ul li ul li{display:none}
.panel-side.fold .panel-side-find{display:none}

.panel-side-menu{flex-grow:1;padding:0 var(--gap-half);min-height:0;scrollbar-gutter:stable;overflow:auto}
.panel-side-menu a.load:after{display:block;content:"";width:.5em;height:.5em;margin:-.45rem 0 0 auto;box-shadow:0 0 0 .3rem var(--clr-shade)}
.panel-side-menu ul{display:flex;flex-direction:column;gap:var(--gap-tab)}
.panel-side-menu ul li{transition:.3s ease all 0s}
.panel-side-menu ul li a{gap:var(--gap-half);padding:var(--gap-half);display:flex;position:relative;align-items:center;justify-content:flex-start;border-radius:var(--gap-tab)}
.panel-side-menu ul li a i{width:1.4rem;color:var(--clr-main)}
.panel-side-menu ul li a:hover{background-color:#8882}
.panel-side-menu ul li a:hover i{color:var(--clr-active)}
.panel-side-menu ul li a.active{background:#8882;box-shadow:0 0 0 1px rgb(from currentColor r g b / 15%) inset;background:rgb(from currentColor r g b/13%);color:var(--clr-main)}
.panel-side-menu ul li a.active i{color:var(--clr-main)}
.panel-side-menu ul li ul{padding:0 var(--gap-tab);gap:calc(var(--gap-half)/2);line-height:1.2}
.panel-side-menu ul li ul li a.active{color:var(--clr-active)}
.panel-side-menu ul li ul li a.active i{color:var(--clr-active)}
.panel-side-menu ul li ul li a:after{display:none}
.panel-side-menu ul li ul li a i{font-size:1.1em;color:var(--clr-icon)}
.panel-side-menu ul li ul li ul{flex-wrap:wrap;flex-direction:initial;gap:calc(var(--gap-tab)/2);margin-top:calc(var(--gap-half)/2);padding:var(--gap-half) 0 var(--gap-half) 2.1rem;overflow:visible;position:relative;line-height:1}
.panel-side-menu ul li ul li ul li a{padding:var(--gap-tab);border-radius:calc(var(--gap-tab)/2)}
.panel-side-menu ul li ul li ul li a i{display:none}
.panel-side-menu ul>li{display:grid;grid-template-rows:0fr 0fr}
.panel-side-menu>ul>li:has(>a.active){grid-template-rows:0fr 1fr}
.panel-side-menu ul>li>a+ul{transition:.3s ease all 0s;overflow:hidden;margin:0;padding:0}
.panel-side-menu ul>li>a:after{content:"chevron_right";color:#8888;transition:.3s ease all .2s;position:absolute;right:var(--gap-half);font-family:'Material Symbols Rounded'}
.panel-side-menu ul>li>a.active:after{transform:rotate(90deg)}
.panel-side-menu ul>li>a.active+ul{padding:var(--gap-half) 0}：
.panel-side-menu ul>li>ul>li{display:flex;flex-direction:column;position:relative}
.panel-side-menu ul>li>a.active+ul>li>ul:before{content:'';position:absolute;bottom:0;left:1.2rem;top:0;background:rgb(from var(--clr-icon)r g b/33%);width:1px}
.panel-side-menu ul>li>ul>li>a.active+ul{padding:var(--gap-half) 0 var(--gap-half) 2.1rem}

.panel-side-foot{padding:0 .8rem;margin:0 .6rem}
.panel-side-foot ul{display:flex;align-items:center;gap:var(--gap-tab)}
.panel-side-foot ul li a.selected{color:var(--clr-main)}
.panel-side-find{margin:0 calc(var(--gap-block)/1.2) 0 var(--gap-half);background:var(--clr-shade);padding:var(--gap-tab) var(--gap-half);border-radius:var(--gap-tab)}

.panel-page{flex:auto;position:relative}
.panel-page>iframe{transition:opacity .4s ease;position:absolute;z-index:1}
.panel-page>iframe.hide{opacity:0;z-index:0}
.panel-hint{display:flex;flex-direction:column;justify-content:space-between;padding:.2rem;width:4rem;border-left:1px solid var(--clr-line);transition:.3s all ease 0s}
.panel-hint ul li{margin:var(--gap-block) 0}
.panel-hint ul li a{display:block;position:relative;text-align:center}
.panel-hint ul li a:hover i{color:var(--clr-main)}
.panel-hint ul li a i{color:var(--clr-icon)}
.panel-hint ul li a sup{background:#ef1e1e}
.panel-hint.fold{margin-right:-4rem}

.panel-search{width:60vw;display:none}
.panel-search form{display:flex;align-items:center}
.panel-search form i{position:absolute;z-index:1;width:3rem;text-align:center}
.panel-search form input{padding-left:3rem;border:0;width:100%;flex:1}
.panel-search ul{overflow:auto;max-height:50vh;display:flex;flex-wrap:wrap;gap:1rem;margin:var(--gap-page) 0}
.panel-search ul li a{display:flex;align-items:center;gap:.6rem}
.panel-search ul li a i{color:var(--clr-button)}

/**/
.left{float:left}
.right{float:right}
.center{text-align:center}
.block{display:block!important}
.round{border-radius:100%}
.big,big{font-size:1.5rem}
.large,large{font-size:1.2rem}
.small,small{font-size:.8rem}
.mini{font-size:.6rem}
.rem2{font-size:2rem}
.margin-v-5{margin:var(--gap-half) 0}
.no-margin{margin:0}
.no-padding{padding:0}
.row-between{justify-content:flex-start;display:flex;align-items:center;gap:var(--gap-half)}
.row-between>*:last-child{margin-left:auto}
.row-start{display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-half);justify-content:flex-start}
.clamp1,.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}
.hide{display:none}
button.small,.button.small,select.small,input.small,.small>.gi{line-height:1.1;font-size:1rem}
button.mini,.button.mini,select.mini,input.mini,.mini>.gi{line-height:1;font-size:.8rem}
button.taps,.button.taps{background:transparent;border-color:var(--clr-button);color:var(--clr-button)}
button.round,.button.round{border-radius:2em}
button.load:after{position:absolute;left:1.2rem;margin:-.7rem;border:.2rem solid rgb(from currentColor r g b/50%);border-top-color:#0000}
button.thin,.button.thin{background:rgb(from currentColor r g b/20%)!important;color:var(--clr-button);border-color:rgb(from currentColor r g b/63%)}
button.thin:hover,.button.thin:hover{border-color:rgb(from currentColor r g b/96%)}
/**/
.red{color:#de0000}
.orange{color:orange}
.orangered{color:orangered}
.black{color:black}
.blue{color:#2070ea}
.pink{color:pink}
.purple{color:purple}
.green{color:#0db71a}
.gray{color:#aaaaaa}
.yellow{color:yellow}
button.red,.button.red,.bar.red{--bg-clr:#de0000;background-color:var(--bg-clr);color:#fff}
button.orange,.button.orange,.bar.orange{--bg-clr:orange;background-color:orange;color:#fff}
button.orangered,.button.orangered,.bar.orangered{--bg-clr:orangered;background-color:orangered;color:#fff}
button.black,.button.black,.bar.black{background-color:black;color:#fff}
button.blue,.button.blue,.bar.blue{--bg-clr:#0992bb;background-color:#0992bb;color:#fff}
button.pink,.button.pink,.bar.pink{background-color:pink;color:#fff}
button.purple,.button.purple,.bar.purple{background-color:purple;color:#fff}
button.green,.button.green,.bar.green{--bg-clr:#0db71a;background-color:var(--bg-clr);color:#fff}
button.yellow,.button.yellow,.bar.yellow{background-color:yellow;color:#000}
button.orangered.thin,.button.orangered.thin{color:orangered}
button.orange.thin,.button.orange.thin{color:orange}
button.green.thin,.button.green.thin{color:#0db71a}
button.blue.thin,.button.blue.thin{color:#0992bb}
button.red.thin,.button.red.thin{color:#de0000}
/**/
*:fullscreen{display:flex;align-items:center;justify-content:center;flex-direction:column;background-color:var(--clr-page)}
*:fullscreen>*{width:100%}

.codex-editor{margin:var(--gap-half) 0;background-image:radial-gradient(circle, var(--clr-shade) .5px, transparent 0px);background-size:4px 4px}
.codex-editor__redactor{margin-left:4rem;padding:var(--gap-block) !important;background:var(--clr-input);border-radius:var(--gap-tab)}
.ce-header{line-height:inherit !important}
.ce-popover__container{--color-border:var(--clr-gray);--color-background:var(--clr-block);--color-text-primary:var(--clr-text);--color-background-item-hover:var(--clr-shade)}
.ce-toolbar__content,.ce-block__content{max-width:100%}
.ce-toolbar svg,.ce-block svg{background-color:#0000 !important}
.ce-toolbar__actions{padding:0;align-items:center;width:4rem;left:0;justify-content:center;right:unset}
.ce-toolbar__plus,.ce-toolbar__settings-btn{color:var(--clr-icon);margin:0;box-sizing:border-box}
.ce-toolbar__plus:hover,.ce-toolbar__settings-btn:hover{color:var(--clr-active)}
.ce-paragraph img{max-width:100%;height:auto}
.image-tool{position:relative;padding:0px}
.image-tool__image{margin-bottom:0}
.image-tool__caption{position:absolute;bottom:1rem;left:1rem;right:1rem;background:rgba(0,0,0,0.6);color:#fff;padding:4px 8px;width:auto;border:none}
.image-tool__caption::placeholder{color:rgba(255,255,255,0.6)}

/**/
@keyframes grow{
	0%{box-shadow:0 0 0 0 rgb(from var(--bg-clr , #888) r g b/80%)}
	100%{box-shadow:0 0 0 6px #0000}
}
@keyframes fade{
	0%{opacity:0}
	to{opacity:1}
}
@keyframes spin{
	0%{transform:rotate(0deg)}
	100%{transform:rotate(359deg)}
}
@keyframes flow{
	0%{width:0px}
	30%{width:100%}
	60%{width:100%;right:0px}
	100%{right:0px;width:0px}
}
@media (prefers-color-scheme:dark){
:root{--clr-page:#070807;--clr-shade:#8882;--clr-gray:#4d4d4d;--clr-block:#0d0e0df0;--clr-column:#121212cc;--clr-sticky:#08090866;--clr-input:#121312;--clr-text:oklch(66% 0 0);--clr-line:#252525f1;--clr-shadow:#00000028;--clr-link:#aaa}
}
@media all and (min-width:480px){
::-webkit-scrollbar{width:calc(var(--gap-block)/1.2);height:calc(var(--gap-block)/1.2)}
::-webkit-scrollbar-track{background-color:#00000000}
::-webkit-scrollbar-thumb{border-radius:1rem;background-color:#8882;border:calc(var(--gap-block)/3.5) solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background-color:#8886}

#menuSide::-webkit-scrollbar{width:.4rem}
#menuSide::-webkit-scrollbar-thumb{background-color:#0000;border-width:.1rem}
#menuSide:hover::-webkit-scrollbar-thumb{background-color:#8882}
#menuSide::-webkit-scrollbar-thumb:hover{background-color:#8885}
}
@media all and (max-width:768px){
	div[class*="col-"]:has(+[class*="col-"]){margin-bottom:var(--gap-block)}
	table tr td:last-child .button{font-size:0;padding:.4rem;gap:0;border-radius:calc(var(--gap-round)/2)}
	table tr td:last-child .button i{font-size:1rem}

	.panel-head-tabs{overflow:auto hidden}
	.panel-side{padding:var(--gap-block) var(--gap-tab)}
	.panel-side,.panel-side.fold{width:23rem}
	.panel-side.fold ul li a:after{display:inline-block}
	.panel-side.fold ul li a{justify-content:flex-start}
	.panel-side.fold ul li a span{display:initial}
	.panel-side.fold ul li ul li a:before{display:block}
	.panel-side.fold ul li ul li ul{display:flex}
	.panel-side.fold ul li ul li ul li{display:unset}
	.panel-side.fold ul li ul li a:after{display:none}
	.panel-side.fold .panel-side-find{display:block}
	.panel-main{margin-left:-23rem;	transition:all .3s ease 0s}
	.panel-main.full{margin-left:0;margin-right:-23rem}
	.panel-hint{z-index:99;right:-4rem;border:1px solid var(--clr-line);position:fixed;background-color:var(--clr-sticky);backdrop-filter:saturate(.5) blur(5px);bottom:2rem;border-radius:1rem 0 0 1rem;box-shadow:0 0 1rem 0 var(--clr-shadow)}
	.panel-hint.fold{right:0;margin-right:0}
	.panel-search{width:unset}
	.panel-search ul{min-height:9em}
}
@media all and (max-width:480px){
	:root{--gap-page:1.2rem}
	dl dd:last-of-type button,dl dd:last-of-type .button{width:-webkit-fill-available}
	dl.table{display:block}
	dl.table dt{display:block;padding:var(--gap-half) var(--gap-tab)}
	dl.table dt>*{padding:var(--gap-tab) 0}
	dl.table dd{display:block;padding:var(--gap-tab)}
	dl.table dt+dd:empty{padding:0}
	dl.table dt:empty:first-child{display:none}
	dl.table dt:empty:before{content:'';display:block;border-top:1px solid var(--clr-line);opacity:.8}

	.board-head .title{margin-bottom:-1rem}
	.panel-head{padding:var(--gap-half) 1rem}
	.panel-head-logo{margin:0 .2rem}
	.panel-side ul li{line-height:1.6}
	.board-head{top:-3rem}
	.board-grid{flex-wrap:nowrap;overflow:auto;scroll-snap-type:x mandatory}
	.board-grid li{scroll-snap-align:center;scroll-snap-stop:always}

	.toolbar.top *:has(>.gi){font-size:0;gap:0;padding:0}
	.toolbar.top *:has(>.gi) .gi{font-size:1.1rem;margin:var(--gap-half)}
	.toolbar.bottom{flex-direction:column;gap:1rem}
	.toolbar.bottom.fixed{bottom:-2rem}
	.toolbar.bottom>*{margin:0 auto;justify-content:center}

	.left,.right{float:none}

	.layui-layer.drawer .layui-layer-setwin{display:block}
	.login-box{width:90%;padding:3rem}
	.login-box form{flex-direction:column;gap:2rem}
}
