.fzde-tool{border:1px solid var(--c-line,#e2e6ea);border-radius:12px;padding:1.5rem;background:var(--c-bg,#fff);margin:1.5rem 0;display:flex;flex-direction:column;gap:.9rem}
.fzde-tool label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.95rem}
.fzde-tool input[type="text"],.fzde-tool input[type="number"],.fzde-tool input[type="search"],.fzde-tool select,.fzde-tool textarea{font:inherit;font-weight:400;padding:.6rem .7rem;border:1px solid var(--c-line,#e2e6ea);border-radius:8px;width:100%;box-sizing:border-box;min-height:44px}
.fzde-tool textarea{font-family:var(--mono,ui-monospace,monospace);font-size:.9rem;line-height:1.5}
.fzde-tool fieldset{border:1px solid var(--c-line,#e2e6ea);border-radius:8px;padding:.75rem 1rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.fzde-tool fieldset label{flex-direction:row;align-items:center;gap:.5rem;font-weight:500;min-height:44px}
.fzde-tool legend{font-weight:600;padding:0 .3rem}
.fzde-tool__row{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.fzde-tool__out{background:var(--c-bg-soft,#f4f6f8);border-radius:8px;padding:.9rem 1rem}
.fzde-tool__hint{margin:0;font-size:.9rem;color:var(--c-text-soft,#4b5563)}
.fzde-tool__copy{align-self:flex-start;background:var(--c-text,#1b2430);color:#fff;border:0;border-radius:8px;padding:.6rem 1rem;font:inherit;font-weight:600;cursor:pointer;min-height:44px}
.fzde-chmod__grid{width:auto;margin:0}
.fzde-chmod__grid th,.fzde-chmod__grid td{text-align:center;padding:.5rem .9rem}
.fzde-chmod__grid th[scope="row"]{text-align:left}
.fzde-chmod__grid input{width:22px;height:22px}
.fzde-errors__list{display:grid;gap:.75rem}
.fzde-errors__item{border:1px solid var(--c-line,#e2e6ea);border-radius:8px;padding:.9rem 1rem}
.fzde-errors__item code{font-size:.85rem;background:#fdecea;color:#8f1d16;border-radius:4px;padding:.15em .5em}
.fzde-errors__item h3{margin:.4rem 0 .3rem;font-size:1.05rem}
.fzde-errors__item p{margin:.2rem 0;font-size:.95rem}
.fzde-errors__empty{margin:0;color:var(--c-text-soft,#4b5563)}
.fzde-ct__form{display:flex;flex-direction:column;gap:.9rem}
.fzde-ct__form .btn{align-self:flex-start}
.fzde-ct__status{font-size:.9rem;color:var(--c-text-soft,#4b5563)}
.fzde-ct__verdict{border-radius:10px;padding:1rem 1.2rem;border:1px solid var(--c-line,#e2e6ea);border-left-width:5px}
.fzde-ct__verdict p{margin:.3rem 0 0}
.fzde-ct__verdict--ok{border-left-color:var(--c-ok,#1b7f4b);background:#eef7f1}
.fzde-ct__verdict--warn{border-left-color:var(--c-warn,#b36b00);background:#fff7e8}
.fzde-ct__verdict--fail{border-left-color:#b3261e;background:#fdecea}
.fzde-ct__steps{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.fzde-ct__steps li{display:flex;gap:.7rem;align-items:flex-start;padding:.6rem .8rem;border:1px solid var(--c-line,#e2e6ea);border-radius:8px}
.fzde-ct__icon{flex:none;width:20px;height:20px;border-radius:50%;margin-top:.15rem;display:grid;place-items:center;color:#fff;font-size:.75rem;font-weight:700}
.is-ok .fzde-ct__icon{background:var(--c-ok,#1b7f4b)}.is-ok .fzde-ct__icon::before{content:"✓"}
.is-warn .fzde-ct__icon{background:var(--c-warn,#b36b00)}.is-warn .fzde-ct__icon::before{content:"!"}
.is-fail .fzde-ct__icon{background:#b3261e}.is-fail .fzde-ct__icon::before{content:"×"}
.fzde-ct__detail{font-size:.92rem;color:var(--c-text-soft,#4b5563);font-family:var(--mono,ui-monospace,monospace);word-break:break-word}
.fzde-ct__fix{font-size:.95rem;margin-top:.3rem}
.fzde-ct__links{margin:1rem 0 0;font-weight:600}
.fzde-sftpcmd__out{display:flex;flex-direction:column;gap:.9rem}
.fzde-sftpcmd__item{display:grid;gap:.4rem}
.fzde-sftpcmd__label{font-weight:600;font-size:.95rem}
.fzde-sftpcmd__pre{margin:0;background:#1b2430;color:#e8edf2;border-radius:8px;padding:.8rem 1rem;font-size:.88rem;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-all}
.fzde-sftpcmd__copy{justify-self:start;padding:.4rem .8rem;min-height:36px;font-size:.9rem}
.fzde-htpasswd__gen{background:var(--c-bg-soft,#f4f6f8);color:var(--c-text,#1b2430);border:1px solid var(--c-line,#e2e6ea)}
.fzde-fn__table{width:100%;font-size:.9rem;margin:0}
.fzde-fn__table td,.fzde-fn__table th{padding:.5rem .6rem;vertical-align:top;text-align:left}
.fzde-fn__table code{font-size:.85rem;word-break:break-all}
.fzde-fn__table tr.is-warn td:nth-child(2){color:var(--c-warn,#b36b00)}
.fzde-fn__table tr.is-fail td:nth-child(2){color:#b3261e}
.fzde-fn__table tr.is-ok td:nth-child(2){color:var(--c-ok,#1b7f4b)}
.fzc__yes{color:var(--c-ok,#1b7f4b);font-weight:700}
.fzde-tool label:has(> input[type="checkbox"]){flex-direction:row;align-items:center;gap:.5rem;font-weight:500;min-height:44px}
.fzde-tool label > input[type="checkbox"]{width:20px;height:20px;flex:none}
