*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#17191c;background:#f4f6f8}
header{background:#0a8f69;color:#fff;padding:10px 16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:8px;font-size:18px}.brand img{width:32px;height:32px}
nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
main{max-width:860px;margin:0 auto;padding:16px}
h1{font-size:22px}
.card{background:#fff;border-radius:10px;padding:16px;margin:12px 0;box-shadow:0 1px 3px #0002}
.center{text-align:center}
label{display:block;margin:10px 0}
input:not([type]),input[type=password]{display:block;width:100%;padding:9px;margin-top:4px;border:1px solid #c5cbd2;border-radius:6px;font-size:16px}
button{padding:9px 16px;border:1px solid #0a7a5a;background:#0a8f69;color:#fff;border-radius:6px;cursor:pointer;font-size:15px}
button:disabled{opacity:.5;cursor:default}
button.ghost{background:transparent;border-color:#ffffff99;color:inherit}
.bar button.ghost,.list button.ghost{border-color:#0a8f69;color:#0a8f69}
button.red{background:#c62828;border-color:#a11}
.msg{padding:10px 14px;border-radius:8px;background:#e8f5e9}
.msg.err{background:#fde7e7;color:#8a1111}
.hint{color:#5c6670;font-size:14px}
.drop{border:3px dashed #0DBD8B;border-radius:14px;background:#fff;padding:36px 16px;text-align:center;outline:none}
.drop.over{background:#e3f8f1;border-color:#0a8f69}
.drop .big{font-size:20px;margin:0 0 6px}
.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}
progress{width:100%;height:14px}
.bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:14px 0}
.check{display:flex;gap:6px;align-items:center;margin:0}
.list{list-style:none;padding:0;margin:0}
.item{background:#fff;border-radius:10px;padding:12px 14px;margin:8px 0;box-shadow:0 1px 3px #0002}
.item .top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.item .name{font-weight:600;word-break:break-all;flex:1;min-width:160px}
.item .sub{color:#5c6670;font-size:13px;margin-top:4px}
.item .acts{display:flex;gap:8px}
.item ul{margin:8px 0 0;padding-left:20px;font-size:14px;color:#333;word-break:break-all}
.item li{margin:3px 0}
.item li a{color:#0a8f69;cursor:pointer;text-decoration:underline}
.danger summary{cursor:pointer;color:#8a1111}
#k-qr{width:260px;height:260px;image-rendering:pixelated;max-width:100%}
code{font-size:17px;word-break:break-all;background:#eef1f4;padding:4px 6px;border-radius:5px;letter-spacing:.5px}
ol{padding-left:22px}
[hidden]{display:none!important}
.ic{font-size:11px;font-weight:700;color:#fff;background:#5c6670;border-radius:4px;padding:2px 6px}.ic.folder{background:#0a8f69}
.events{list-style:none;padding:0!important;margin:8px 0 0;word-break:normal!important;overflow-wrap:anywhere}.events li{margin:4px 0}.events time{color:#5c6670;font-variant-numeric:tabular-nums;margin-right:4px}
.ev-up::before{content:"↑ ";color:#0a8f69}.ev-down::before{content:"↓ ";color:#1565c0}.ev-del::before,.ev-exp::before{content:"× ";color:#8a1111}
.ev-share::before{content:"⇄ ";color:#0a8f69}.ev-unshare::before{content:"× ";color:#8a1111}.ev-lnk::before{content:"↓ ";color:#6a1b9a}
button.ghost2,a.btn{padding:9px 14px;border:1px solid #0a8f69;background:#fff;color:#0a8f69;border-radius:6px;cursor:pointer;font-size:15px;text-decoration:none;display:inline-block}
.row.left{justify-content:flex-start;margin-top:8px}
.step{font-weight:600;margin:18px 0 6px}
input[readonly]{background:#f4f6f8;font-size:14px}
code.pw{font-size:26px;letter-spacing:3px;padding:6px 12px}
.wrap{word-break:break-all}
.files{font-size:14px;color:#333;word-break:break-all;padding-left:20px}
.card .top{display:flex;gap:8px;align-items:center}
textarea{display:block;width:100%;padding:9px;margin-top:4px;border:1px solid #c5cbd2;border-radius:6px;font-size:16px;font-family:inherit;resize:vertical}
.item .warn{color:#8a5a00}.ic.inb{background:#6a1b9a}
.ev-inb::before{content:"↑ ";color:#6a1b9a}.ev-req::before{content:"⇄ ";color:#6a1b9a}.ev-unreq::before,.ev-reqexp::before{content:"× ";color:#8a1111}
.card ol.left{text-align:left;max-width:560px;margin:8px auto;padding-left:22px}
