:root{
  --bg:#0f1115; --panel:#171a21; --panel2:#1d212b; --line:#2a2f3d;
  --tx:#e7eaf0; --dim:#8b93a5; --acc:#5ec26a; --acc2:#e8b64c;
  --danger:#e5534b; --radius:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--tx);
  font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC","Hiragino Sans GB",sans-serif;
}
.accentline{height:3px;background:linear-gradient(90deg,var(--acc),var(--acc2));}
.wrap{width:min(780px,100% - 32px);margin:0 auto}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline}
code{
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;
  font-size:.88em;background:var(--panel2);border:1px solid var(--line);
  border-radius:5px;padding:1px 5px;color:var(--acc2);word-break:break-all;
}

.hero{padding:26px 0 6px}
.hero h1{margin:0;font-size:clamp(22px,4.6vw,30px);letter-spacing:.5px}
.tagline{margin:8px 0 0;color:var(--dim)}

.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 18px 20px;margin:16px 0;
}
.card h2{margin:0 0 12px;font-size:17px;font-weight:650}

.howto .steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.howto .steps li{display:flex;gap:11px;align-items:flex-start}
.howto .steps .n{
  flex:0 0 24px;width:24px;height:24px;border-radius:50%;
  background:var(--panel2);border:1px solid var(--line);color:var(--acc);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-top:2px;
}
.howto .steps p{margin:4px 0 0;color:var(--dim);font-size:14px}
.note{
  margin:14px 0 0;padding:10px 12px;border-left:3px solid var(--acc2);
  background:var(--panel2);border-radius:0 8px 8px 0;color:var(--dim);font-size:14px;
}
.note b{color:var(--tx)}

.field{margin:0 0 18px}
.field > label{display:block;font-weight:650;margin-bottom:7px;font-size:14.5px}
.idx{color:var(--acc);font-weight:700;margin-right:2px}
.req,.opt{font-size:12px;font-weight:600;padding:1px 7px;border-radius:99px;border:1px solid var(--line);margin-left:4px;vertical-align:1px}
.req{color:var(--acc);border-color:rgba(94,194,106,.45);background:rgba(94,194,106,.1)}
.opt{color:var(--dim);background:var(--panel2)}

input[type=text],textarea{
  width:100%;background:var(--panel2);color:var(--tx);
  border:1px solid var(--line);border-radius:9px;padding:11px 12px;
  font:inherit;font-size:14.5px;outline:none;
}
textarea{
  resize:vertical;min-height:96px;line-height:1.6;
  font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:13.5px;
}
input[type=text]:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(94,194,106,.14)}
input::placeholder,textarea::placeholder{color:#5d6478}

.hint{margin:7px 0 0;color:var(--dim);font-size:13px}
.hint.inline{margin:0}
.dim{color:var(--dim);font-size:12.5px}
.live.ok{color:var(--acc)}
.live.bad{color:var(--acc2)}
.warnline{display:block;color:var(--dim);font-size:12.5px;margin-top:2px}

.dropzone{position:relative}
.dropzone .dropmask{
  display:none;position:absolute;inset:0;border-radius:9px;
  border:1.5px dashed var(--acc);background:rgba(94,194,106,.08);
  color:var(--acc);align-items:center;justify-content:center;font-size:14px;font-weight:600;
}
.dropzone.over .dropmask{display:flex}

.filerow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:9px}
.filerow .dim{margin-left:auto}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font:inherit;font-size:14px;font-weight:600;line-height:1;
  padding:11px 16px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel2);color:var(--tx);cursor:pointer;
  text-decoration:none;transition:filter .15s,border-color .15s,opacity .15s;
}
.btn:hover{filter:brightness(1.15);text-decoration:none}
.btn:disabled{opacity:.6;cursor:default;filter:none}
.btn.primary{background:var(--acc);border-color:var(--acc);color:#0b1a0d}
.btn.ghost{background:transparent}
.btn.tiny{padding:7px 11px;font-size:12.5px;font-weight:600}
.btn.big{padding:13px 22px;font-size:15.5px}

.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px}
.btnrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}

.result{border-color:rgba(94,194,106,.5)}
.shortlink{
  background:var(--panel2);border:1px dashed var(--line);border-radius:10px;
  padding:14px 14px;margin:6px 0 4px;
}
.shortlink a{
  font-size:clamp(17px,3.6vw,24px);font-weight:700;color:var(--acc);
  word-break:break-all;letter-spacing:.2px;
}
.meta{margin:12px 0 0;color:var(--dim);font-size:13px}
.warns{margin:10px 0 0;padding-left:20px;color:var(--acc2);font-size:13px}
.errbox{border-color:rgba(229,83,75,.55)}
.errbox h2{color:var(--danger)}
.errtext{margin:0;font-size:15px;color:var(--tx);white-space:pre-wrap}
.errhint{margin:8px 0 0;color:var(--dim);font-size:12.5px}
.faq dl{margin:0}
.faq dt{font-weight:650;margin-top:12px}
.faq dt:first-child{margin-top:0}
.faq dd{margin:5px 0 0;color:var(--dim);font-size:13.5px}
.faq .foot{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--dim);font-size:12.5px}

.foot-bar{border-top:1px solid var(--line);margin-top:24px;padding:16px 0 30px;color:var(--dim);font-size:12.5px}
.foot-bar p{margin:0}

.fallback{
  background:rgba(229,83,75,.12);border-bottom:1px solid rgba(229,83,75,.5);
  color:var(--tx);padding:12px 16px;font-size:13.5px;
}

body.busy{opacity:.92}

@media (max-width:640px){
  .wrap{width:min(780px,100% - 20px)}
  .card{padding:15px 13px 17px;border-radius:10px}
  .hero{padding:18px 0 2px}
  .filerow .dim{margin-left:0;flex-basis:100%}
  .btn.tiny{flex:1 1 auto}
  .actions .btn.big{width:100%}
  .btnrow .btn{flex:1 1 auto}
}
